Documentation

Mathlib.Tactic.NormNum.Ineq

norm_num extensions for inequalities. #

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 α IsOrderedSemiring α 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 α IsOrderedSemiring α 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' : } :
        IsNat a a'IsNat b b'a'.ble b' = truea 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) :
        ¬a < b
        theorem Mathlib.Meta.NormNum.isRat_le_true {α : Type u_1} [Ring α] [LinearOrder α] [IsStrictOrderedRing α] {a b : α} {na nb : } {da db : } :
        IsRat a na daIsRat b nb dbdecide (na.mul (Int.ofNat db) nb.mul (Int.ofNat da)) = truea b
        theorem Mathlib.Meta.NormNum.isRat_lt_true {α : Type u_1} [Ring α] [LinearOrder α] [IsStrictOrderedRing α] [Nontrivial α] {a b : α} {na nb : } {da db : } :
        IsRat a na daIsRat b nb dbdecide (na * db < nb * da) = truea < b
        theorem Mathlib.Meta.NormNum.isRat_le_false {α : Type u_1} [Ring α] [LinearOrder α] [IsStrictOrderedRing α] [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} [Ring α] [LinearOrder α] [IsStrictOrderedRing α] {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} [Semiring α] [PartialOrder α] [IsOrderedRing α] [CharZero α] {a b : α} {a' b' : } :
        IsNat a a'IsNat b b'b'.ble a' = falsea < 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) :
        ¬a b
        theorem Mathlib.Meta.NormNum.isInt_le_true {α : Type u_1} [Ring α] [PartialOrder α] [IsOrderedRing α] {a b : α} {a' b' : } :
        IsInt a a'IsInt b b'decide (a' b') = truea b
        theorem Mathlib.Meta.NormNum.isInt_lt_true {α : Type u_1} [Ring α] [PartialOrder α] [IsOrderedRing α] [Nontrivial α] {a b : α} {a' b' : } :
        IsInt a a'IsInt b b'decide (a' < b') = truea < 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) :
        ¬a b
        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) :
        ¬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)} ( : 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
          Instances For
            def Mathlib.Meta.NormNum.evalLE.core.intArm {u : Lean.Level} {α : Q(Type u)} ( : Q(LE «$α»)) {a b : Q(«$α»)} (ra : Result a) (rb : Result b) :
            let e := q(«$a» «$b»); Lean.MetaM (Result e)
            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)} ( : Q(LE «$α»)) {a b : Q(«$α»)} (ra : Result a) (rb : Result b) :
              let e := q(«$a» «$b»); Lean.MetaM (Result e)
              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)} ( : 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
                  Instances For
                    def Mathlib.Meta.NormNum.evalLT.core.intArm {u : Lean.Level} {α : Q(Type u)} ( : Q(LT «$α»)) {a b : Q(«$α»)} (ra : Result a) (rb : Result b) :
                    let e := q(«$a» < «$b»); Lean.MetaM (Result e)
                    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)} ( : Q(LT «$α»)) {a b : Q(«$α»)} (ra : Result a) (rb : Result b) :
                      let e := q(«$a» < «$b»); Lean.MetaM (Result e)
                      Equations
                      • One or more equations did not get rendered due to their size.
                      Instances For