Documentation

Mathlib.Tactic.NormNum.Ineq

norm_num extensions for inequalities. #

Helper function to synthesize a typed OrderedSemiring α expression.

Equations
Instances For

    Helper function to synthesize a typed OrderedRing α expression.

    Equations
    Instances For

      Helper function to synthesize a typed LinearOrderedField α expression.

      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} [OrderedSemiring α] {a b : α} {a' b' : ℕ} :
        IsNat a a' → IsNat b b' → a'.ble b' = true → a ≤ b
        theorem Mathlib.Meta.NormNum.isNat_lt_false {α : Type u_1} [OrderedSemiring α] {a b : α} {a' b' : ℕ} (ha : IsNat a a') (hb : IsNat b b') (h : b'.ble a' = true) :
        ¬a < b
        theorem Mathlib.Meta.NormNum.isRat_le_true {α : Type u_1} [LinearOrderedRing α] {a b : α} {na nb : ℤ} {da db : ℕ} :
        IsRat a na da → IsRat b nb db → decide (na.mul (Int.ofNat db) ≤ nb.mul (Int.ofNat da)) = true → a ≤ b
        theorem Mathlib.Meta.NormNum.isRat_lt_true {α : Type u_1} [LinearOrderedRing α] [Nontrivial α] {a b : α} {na nb : ℤ} {da db : ℕ} :
        IsRat a na da → IsRat b nb db → decide (na * ↑db < nb * ↑da) = true → a < b
        theorem Mathlib.Meta.NormNum.isRat_le_false {α : Type u_1} [LinearOrderedRing α] [Nontrivial α] {a b : α} {na nb : ℤ} {da db : ℕ} (ha : IsRat a na da) (hb : IsRat b nb db) (h : decide (nb * ↑da < na * ↑db) = true) :
        ¬a ≤ b
        theorem Mathlib.Meta.NormNum.isRat_lt_false {α : Type u_1} [LinearOrderedRing α] {a b : α} {na nb : ℤ} {da db : ℕ} (ha : IsRat a na da) (hb : IsRat b nb db) (h : decide (nb * ↑da ≤ na * ↑db) = true) :
        ¬a < b

        (In)equalities #

        theorem Mathlib.Meta.NormNum.isNat_lt_true {α : Type u_1} [OrderedSemiring α] [CharZero α] {a b : α} {a' b' : ℕ} :
        IsNat a a' → IsNat b b' → b'.ble a' = false → a < b
        theorem Mathlib.Meta.NormNum.isNat_le_false {α : Type u_1} [OrderedSemiring α] [CharZero α] {a b : α} {a' b' : ℕ} (ha : IsNat a a') (hb : IsNat b b') (h : a'.ble b' = false) :
        ¬a ≤ b
        theorem Mathlib.Meta.NormNum.isInt_le_true {α : Type u_1} [OrderedRing α] {a b : α} {a' b' : ℤ} :
        IsInt a a' → IsInt b b' → decide (a' ≤ b') = true → a ≤ b
        theorem Mathlib.Meta.NormNum.isInt_lt_true {α : Type u_1} [OrderedRing α] [Nontrivial α] {a b : α} {a' b' : ℤ} :
        IsInt a a' → IsInt b b' → decide (a' < b') = true → a < b
        theorem Mathlib.Meta.NormNum.isInt_le_false {α : Type u_1} [OrderedRing α] [Nontrivial α] {a b : α} {a' b' : ℤ} (ha : IsInt a a') (hb : IsInt b b') (h : decide (b' < a') = true) :
        ¬a ≤ b
        theorem Mathlib.Meta.NormNum.isInt_lt_false {α : Type u_1} [OrderedRing α] {a b : α} {a' b' : ℤ} (ha : IsInt a a') (hb : IsInt b b') (h : decide (b' ≤ a') = true) :
        ¬a < b

        The norm_num extension which identifies expressions of the form a ≤ b, such that norm_num successfully recognises both a and b.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          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.

          Instances For
            def Mathlib.Meta.NormNum.evalLE.core.intArm {u : Lean.Level} {α : Q(Type u)} (lα : Q(LE «$α»)) {a b : Q(«$α»)} (ra : Result a) (rb : Result b) (e : Q(Prop)) :
            Equations
            • One or more equations did not get rendered due to their size.
            Instances For
              def Mathlib.Meta.NormNum.evalLE.core.ratArm {u : Lean.Level} {α : Q(Type u)} (lα : Q(LE «$α»)) {a b : Q(«$α»)} (ra : Result a) (rb : Result b) (e : Q(Prop)) :
              Equations
              • One or more equations did not get rendered due to their size.
              Instances For

                The norm_num extension which identifies expressions of the form a < b, such that norm_num successfully recognises both a and b.

                Equations
                • One or more equations did not get rendered due to their size.
                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.

                  Instances For
                    def Mathlib.Meta.NormNum.evalLT.core.intArm {u : Lean.Level} {α : Q(Type u)} (lα : Q(LT «$α»)) {a b : Q(«$α»)} (ra : Result a) (rb : Result b) (e : Q(Prop)) :
                    Equations
                    • One or more equations did not get rendered due to their size.
                    Instances For
                      def Mathlib.Meta.NormNum.evalLT.core.ratArm {u : Lean.Level} {α : Q(Type u)} (lα : Q(LT «$α»)) {a b : Q(«$α»)} (ra : Result a) (rb : Result b) (e : Q(Prop)) :
                      Equations
                      • One or more equations did not get rendered due to their size.
                      Instances For