def Mathlib.Meta.NormNum.inferOrderedSemiring {u : Lean.Level} (α : Q(Type u)) :
Lean.MetaM ((x : Q(Semiring «$α»)) × (x_1 : Q(PartialOrder «$α»)) × Q(IsOrderedRing «$α»))
Helper function to synthesize typed Semiring α PartialOrder α IsOrderedRing α
expressions.
Equations
- One or more equations did not get rendered due to their size.
Instances For
def Mathlib.Meta.NormNum.inferOrderedRing {u : Lean.Level} (α : Q(Type u)) :
Lean.MetaM ((x : Q(Ring «$α»)) × (x_1 : Q(PartialOrder «$α»)) × Q(IsOrderedRing «$α»))
Helper function to synthesize typed Ring α PartialOrder α IsOrderedRing α
expressions.
Equations
- One or more equations did not get rendered due to their size.
Instances For
def Mathlib.Meta.NormNum.inferLinearOrderedSemifield {u : Lean.Level} (α : Q(Type u)) :
Lean.MetaM ((x : Q(Semifield «$α»)) × (x_1 : Q(LinearOrder «$α»)) × Q(IsStrictOrderedRing «$α»))
Helper function to synthesize typed Semifield α LinearOrder α IsStrictOrderedRing α
expressions.
Equations
- One or more equations did not get rendered due to their size.
Instances For
def Mathlib.Meta.NormNum.inferLinearOrderedField {u : Lean.Level} (α : Q(Type u)) :
Lean.MetaM ((x : Q(Field «$α»)) × (x_1 : Q(LinearOrder «$α»)) × Q(IsStrictOrderedRing «$α»))
Helper function to synthesize typed Field α LinearOrder α IsStrictOrderedRing α
expressions.
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem Mathlib.Meta.NormNum.isNat_le_true {α : Type u_1} [Semiring α] [PartialOrder α] [IsOrderedRing α] {a b : α} {a' b' : ℕ} :
theorem Mathlib.Meta.NormNum.isNat_lt_false {α : Type u_1} [Semiring α] [PartialOrder α] [IsOrderedRing α] {a b : α} {a' b' : ℕ} (ha : IsNat a a') (hb : IsNat b b') (h : b'.ble a' = true) :
(In)equalities #
theorem Mathlib.Meta.NormNum.isNat_lt_true {α : Type u_1} [Semiring α] [PartialOrder α] [IsOrderedRing α] [CharZero α] {a b : α} {a' b' : ℕ} :
theorem Mathlib.Meta.NormNum.isNat_le_false {α : Type u_1} [Semiring α] [PartialOrder α] [IsOrderedRing α] [CharZero α] {a b : α} {a' b' : ℕ} (ha : IsNat a a') (hb : IsNat b b') (h : a'.ble b' = false) :
theorem Mathlib.Meta.NormNum.isInt_le_true {α : Type u_1} [Ring α] [PartialOrder α] [IsOrderedRing α] {a b : α} {a' b' : ℤ} :
theorem Mathlib.Meta.NormNum.isInt_lt_true {α : Type u_1} [Ring α] [PartialOrder α] [IsOrderedRing α] [Nontrivial α] {a b : α} {a' b' : ℤ} :
theorem Mathlib.Meta.NormNum.isInt_le_false {α : Type u_1} [Ring α] [PartialOrder α] [IsOrderedRing α] [Nontrivial α] {a b : α} {a' b' : ℤ} (ha : IsInt a a') (hb : IsInt b b') (h : decide (b' < a') = true) :
theorem Mathlib.Meta.NormNum.isInt_lt_false {α : Type u_1} [Ring α] [PartialOrder α] [IsOrderedRing α] {a b : α} {a' b' : ℤ} (ha : IsInt a a') (hb : IsInt b b') (h : decide (b' ≤ a') = true) :
def Mathlib.Meta.NormNum.evalLE.core {u : Lean.Level} {α : Q(Type u)} (lα : Q(LE «$α»)) {a b : Q(«$α»)} (ra : Result a) (rb : Result b) :
Lean.MetaM (Result q(«$a» ≤ «$b»))
Identify (as true or false) expressions of the form a ≤ b, where a and b are numeric
expressions whose evaluations to NormNum.Result have already been computed.
Equations
- One or more equations did not get rendered due to their size.
- Mathlib.Meta.NormNum.evalLE.core lα (Mathlib.Meta.NormNum.Result'.isBool val proof) rb = failure
- Mathlib.Meta.NormNum.evalLE.core lα ra (Mathlib.Meta.NormNum.Result'.isBool val proof) = failure
- Mathlib.Meta.NormNum.evalLE.core lα (Mathlib.Meta.NormNum.Result'.isNegNat inst lit proof) rb = Mathlib.Meta.NormNum.evalLE.core.intArm✝ lα (Mathlib.Meta.NormNum.Result'.isNegNat inst lit proof) rb
- Mathlib.Meta.NormNum.evalLE.core lα ra (Mathlib.Meta.NormNum.Result'.isNegNat inst lit proof) = Mathlib.Meta.NormNum.evalLE.core.intArm✝ lα ra (Mathlib.Meta.NormNum.Result'.isNegNat inst lit proof)
Instances For
def Mathlib.Meta.NormNum.evalLT.core {u : Lean.Level} {α : Q(Type u)} (lα : Q(LT «$α»)) {a b : Q(«$α»)} (ra : Result a) (rb : Result b) :
Lean.MetaM (Result q(«$a» < «$b»))
Identify (as true or false) expressions of the form a < b, where a and b are numeric
expressions whose evaluations to NormNum.Result have already been computed.
Equations
- One or more equations did not get rendered due to their size.
- Mathlib.Meta.NormNum.evalLT.core lα (Mathlib.Meta.NormNum.Result'.isBool val proof) rb = failure
- Mathlib.Meta.NormNum.evalLT.core lα ra (Mathlib.Meta.NormNum.Result'.isBool val proof) = failure
- Mathlib.Meta.NormNum.evalLT.core lα (Mathlib.Meta.NormNum.Result'.isNegNat inst lit proof) rb = Mathlib.Meta.NormNum.evalLT.core.intArm✝ lα (Mathlib.Meta.NormNum.Result'.isNegNat inst lit proof) rb
- Mathlib.Meta.NormNum.evalLT.core lα ra (Mathlib.Meta.NormNum.Result'.isNegNat inst lit proof) = Mathlib.Meta.NormNum.evalLT.core.intArm✝ lα ra (Mathlib.Meta.NormNum.Result'.isNegNat inst lit proof)