Instances For
Return true only when the following condition is satisfied:
- 0 < e := _ ∈ hypothesisContext.hypothesisMap
Equations
- One or more equations did not get rendered due to their size.
Instances For
Return true only when the following condition is satisfied:
- 0 = e := _ ∈ hypothesisContext.hypothesisMap
Equations
- One or more equations did not get rendered due to their size.
Instances For
Return true only when one of the following conditions is satisfied:
- 0 < e := _ ∈ hypothesisContext.hypothesisMap; or
- ¬ (0 = e) := _ ∈ hypothesisContext.hypothesisMap
Equations
- One or more equations did not get rendered due to their size.
Instances For
Return true only when the following condition is satisfied:
- e < 0 := _ ∈ hypothesisContext.hypothesisMap
Equations
- One or more equations did not get rendered due to their size.
Instances For
Return true only when the following condition is satisfied:
- 0 < e := _ ∈ hypothesisContext.hypothesisMap
Equations
- One or more equations did not get rendered due to their size.
Instances For
Return true only when one of the following conditions is satisfied:
- 0 < e := _ ∈ hypothesisContext.hypothesisMap; or
- e < 0 := _ ∈ hypothesisContext.hypothesisMap; or
- ¬ (0 = e) := _ ∈ hypothesisContext.hypothesisMap
Equations
- One or more equations did not get rendered due to their size.
Instances For
Return true only when one of the following conditions is satisfied:
- 0 < e := _ ∈ hypothesisContext.hypothesisMap; or
- 0 = e := _ ∈ hypothesisContext.hypothesisMap; or
- ¬ (e < 0) := _ ∈ hypothesisContext.hypothesisMap
Equations
- One or more equations did not get rendered due to their size.
Instances For
Return true only when one of the following conditions is satisfied:
- e < 0 := _ ∈ hypothesisContext.hypothesisMap; or
- 0 = e := _ ∈ hypothesisContext.hypothesisMap; or
- ¬ (0 < e) := _ ∈ hypothesisContext.hypothesisMap
Equations
- One or more equations did not get rendered due to their size.
Instances For
Perform the following actions: Let hyps := (← get).optEnv.options.hypothesisContext Let hMap := hyps.hypothesisMap
- When Type(e) = Prop:
let hMap' := hMap ∪ [ e := h | ¬ ∃ e := h' ∈ hMap ] ∪ [ e₁ := Blaster.and_left e₁ e₂ h | e := e₁ ∧ e₂, ¬ ∃ e₁ := h' ∈ hMap ] ∪ [ e₂ := Blaster.and_right e₁ e₂ h | e := e₁ ∧ e₂, ¬ ∃ e₂ := h' ∈ hMap ]
return (hMap' ≠ hMap, {hypothesisMap := hMap', equalityMap := default}) Otherwise:
- return (false, hyps) Note: flag isNotPropBody is set only when a forall body is not of type Prop.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Blaster.Optimize.addHypotheses.updateHypMap h e fv = match Std.HashMap.get? h.snd e with | none => (true, Std.HashMap.insert h.snd e fv) | x => h
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Given e and hypothesis map h perform the following:
When
e := p ∈ h:- return
some p
- return
When `e := ¬ (a = b) ∧ Type(a) = Int ∧ a < b := p ∈ h
- return
some Blaster.int_not_eq_of_lt_left a b p
- return
When `e := ¬ (a = b) ∧ Type(a) = Int ∧ b < a := p ∈ h
- return
some Blaster.int_not_eq_of_lt_right a b p
- return
When `e := ¬ (0 = a) ∧ Type(a) = Int ∧ a < 0 := p ∈ h
- return
some Blaster.int_not_zero_eq_of_lt_zero a p
- return
When `e := ¬ (0 = a) ∧ Type(a) = Int ∧ 0 < a := p ∈ h
- return
some Blaster.int_not_zero_eq_of_zero_lt a p
- return
When `e := ¬ (a = b) ∧ Type(a) = Nat ∧ a < b := p ∈ h
- return
some Blaster.nat_not_eq_of_lt_left a b p
- return
When `e := ¬ (a = b) ∧ Type(a) = Nat ∧ b < a := p ∈ h
- return
some Blaster.nat_not_eq_of_lt_right a b p
- return
When `e := ¬ (0 = a) ∧ Type(a) = Nat ∧ 0 < a := p ∈ h
- return
some Blaster.nat_not_zero_eq_of_zero_lt a p
- return
When `e := ¬ (a < b) ∧ Type(a) = Int ∧ a = b := p ∈ h
- return
some Blaster.int_not_lt_left_of_eq a b p
- return
When `e := ¬ (a < b) ∧ Type(a) = Int ∧ b = a := p ∈ h
- return
some Blaster.int_not_lt_right_of_eq b a p
- return
When `e := ¬ (a < b) ∧ Type(a) = Int ∧ b < a := p ∈ h
- return
some Blaster.int_not_lt_of_lt b a p
- return
When `e := ¬ (a < b) ∧ Type(a) = Nat ∧ a = b := p ∈ h
- return
some Blaster.nat_not_lt_left_of_eq a b p
- return
When `e := ¬ (a < b) ∧ Type(a) = Nat ∧ b = a := p ∈ h
- return
some Blaster.nat_not_lt_right_of_eq b a p
- return
When `e := ¬ (a < b) ∧ Type(a) = Nat ∧ b < a := p ∈ h
- return
some Blaster.nat_not_lt_of_lt b a p
- return
When `e := 0 < a ∧ Type(a) = Nat ∧ ¬ 0 = a := p ∈ h
- return
some Blaster.nat_zero_lt_of_not_zero_eq a p
- return
Otherwise:
- return
none
- return
Note that:
a ≤ bis normalized to¬ (b < a)whenType(a) ∈ [Int, Nat]0 = -ais normalized to0 = a whenType(a) = Int`
Equations
- One or more equations did not get rendered due to their size.
Instances For
Perform the following:
- When `e := 0 < a ∧ Type(a) = Nat ∧ ¬ 0 = a := p ∈ h
- return
some Blaster.nat_zero_lt_of_not_zero_eq a p
- return
- Otherwise:
- return
none
- return
Equations
- One or more equations did not get rendered due to their size.
Instances For
Perform the following:
When `e := ¬ (a = b) ∧ Type(a) = Int ∧ a < b := p ∈ h
- return
some Blaster.int_not_eq_of_lt_left a b p
- return
When `e := ¬ (a = b) ∧ Type(a) = Int ∧ b < a := p ∈ h
- return
some Blaster.int_not_eq_of_lt_right a b p
- return
When `e := ¬ (0 = a) ∧ Type(a) = Int ∧ a < 0 := p ∈ h
- return
some Blaster.int_not_zero_eq_of_lt_zero a p
- return
When `e := ¬ (0 = a) ∧ Type(a) = Int ∧ 0 < a := p ∈ h
- return
some Blaster.int_not_zero_eq_of_zero_lt a p
- return
When `e := ¬ (a = b) ∧ Type(a) = Nat ∧ a < b := p ∈ h
- return
some Blaster.nat_not_eq_of_lt_left a b p
- return
When `e := ¬ (a = b) ∧ Type(a) = Nat ∧ b < a := p ∈ h
- return
some Blaster.nat_not_eq_of_lt_right a b p
- return
When `e := ¬ (0 = a) ∧ Type(a) = Nat ∧ 0 < a := p ∈ h
- return
some Blaster.nat_not_zero_eq_of_zero_lt a p
- return
Otherwise:
- return
none
- return
Equations
- One or more equations did not get rendered due to their size.
Instances For
Perform the following:
When `e := ¬ (a < b) ∧ Type(a) = Int ∧ a = b := p ∈ h
- return
some Blaster.int_not_lt_left_of_eq a b p
- return
When `e := ¬ (a < b) ∧ Type(a) = Int ∧ b = a := p ∈ h
- return
some Blaster.int_not_lt_right_of_eq b a p
- return
When `e := ¬ (a < b) ∧ Type(a) = Int ∧ b < a := p ∈ h
- return
some Blaster.int_not_lt_of_lt b a p
- return
When `e := ¬ (a < b) ∧ Type(a) = Nat ∧ a = b := p ∈ h
- return
some Blaster.nat_not_lt_left_of_eq a b p
- return
When `e := ¬ (a < b) ∧ Type(a) = Nat ∧ b = a := p ∈ h
- return
some Blaster.nat_not_lt_right_of_eq b a p
- return
When `e := ¬ (a < b) ∧ Type(a) = Nat ∧ b < a := p ∈ h
- return
some Blaster.nat_not_lt_of_lt b a p
- return
Otherwise:
- return
none
- return
Equations
- One or more equations did not get rendered due to their size.
Instances For
Given e and hypothesis map h perform the following:
- When
some p := inHypMap (← optimizeNot (¬ e)) h- return
some p
- return
Equations
- Blaster.Optimize.notInHypMap e h = do let __do_lift ← Blaster.Optimize.mkPropNotOp let not_e ← Blaster.Optimize.optimizeNot __do_lift #[e] false Blaster.Optimize.inHypMap not_e h