Documentation

Mathlib.Tactic.NormNum.Inv

norm_num plugins for Rat.cast and ⁻¹. #

def Mathlib.Meta.NormNum.inferCharZeroOfRing {u : Lean.Level} {α : Q(Type u)} (_i : Q(Ring «$α») := by with_reducible assumption) :
Lean.MetaM Q(CharZero «$α»)

Helper function to synthesize a typed CharZero α expression given Ring α.

Equations
Instances For
    def Mathlib.Meta.NormNum.inferCharZeroOfRing? {u : Lean.Level} {α : Q(Type u)} (_i : Q(Ring «$α») := by with_reducible assumption) :

    Helper function to synthesize a typed CharZero α expression given Ring α, if it exists.

    Equations
    Instances For
      def Mathlib.Meta.NormNum.inferCharZeroOfAddMonoidWithOne {u : Lean.Level} {α : Q(Type u)} (_i : Q(AddMonoidWithOne «$α») := by with_reducible assumption) :
      Lean.MetaM Q(CharZero «$α»)

      Helper function to synthesize a typed CharZero α expression given AddMonoidWithOne α.

      Equations
      Instances For
        def Mathlib.Meta.NormNum.inferCharZeroOfAddMonoidWithOne? {u : Lean.Level} {α : Q(Type u)} (_i : Q(AddMonoidWithOne «$α») := by with_reducible assumption) :

        Helper function to synthesize a typed CharZero α expression given AddMonoidWithOne α, if it exists.

        Equations
        Instances For
          def Mathlib.Meta.NormNum.inferCharZeroOfDivisionRing {u : Lean.Level} {α : Q(Type u)} (_i : Q(DivisionRing «$α») := by with_reducible assumption) :
          Lean.MetaM Q(CharZero «$α»)

          Helper function to synthesize a typed CharZero α expression given DivisionRing α.

          Equations
          Instances For
            def Mathlib.Meta.NormNum.inferCharZeroOfDivisionSemiring? {u : Lean.Level} {α : Q(Type u)} (_i : Q(DivisionSemiring «$α») := by with_reducible assumption) :

            Helper function to synthesize a typed CharZero α expression given Divisionsemiring α, if it exists.

            Equations
            Instances For
              def Mathlib.Meta.NormNum.inferCharZeroOfDivisionRing? {u : Lean.Level} {α : Q(Type u)} (_i : Q(DivisionRing «$α») := by with_reducible assumption) :

              Helper function to synthesize a typed CharZero α expression given DivisionRing α, if it exists.

              Equations
              Instances For
                theorem Mathlib.Meta.NormNum.isRat_mkRat {a na n : ℤ} {b nb d : ℕ} :
                IsInt a na → IsNat b nb → IsRat (↑na / ↑nb) n d → IsRat (mkRat a b) n d
                theorem Mathlib.Meta.NormNum.isNNRat_divNat {a na n b nb d : ℕ} :
                IsNat a na → IsNat b nb → IsNNRat (↑na / ↑nb) n d → IsNNRat (NNRat.divNat a b) n d

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

                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 NNRat.divNat a b, such that norm_num successfully recognises both a and b, and returns a / b.

                  Equations
                  • One or more equations did not get rendered due to their size.
                  Instances For
                    theorem Mathlib.Meta.NormNum.isNat_ratCast {R : Type u_1} [DivisionRing R] {q : ℚ} {n : ℕ} :
                    IsNat q n → IsNat (↑q) n
                    theorem Mathlib.Meta.NormNum.isNat_nnratCast {R : Type u_1} [DivisionSemiring R] {q : ℚ≥0} {n : ℕ} :
                    IsNat q n → IsNat (↑q) n
                    theorem Mathlib.Meta.NormNum.isInt_ratCast {R : Type u_1} [DivisionRing R] {q : ℚ} {n : ℤ} :
                    IsInt q n → IsInt (↑q) n
                    theorem Mathlib.Meta.NormNum.isNNRat_ratCast {R : Type u_1} [DivisionRing R] [CharZero R] {q : ℚ} {n d : ℕ} :
                    IsNNRat q n d → IsNNRat (↑q) n d
                    theorem Mathlib.Meta.NormNum.isNNRat_nnratCast {R : Type u_1} [DivisionSemiring R] [CharZero R] {q : ℚ≥0} {n d : ℕ} :
                    IsNNRat q n d → IsNNRat (↑q) n d
                    theorem Mathlib.Meta.NormNum.isRat_ratCast {R : Type u_1} [DivisionRing R] [CharZero R] {q : ℚ} {n : ℤ} {d : ℕ} :
                    IsRat q n d → IsRat (↑q) n d

                    The norm_num extension which identifies an expression RatCast.ratCast q where norm_num recognizes q, returning the cast of q.

                    Equations
                    • One or more equations did not get rendered due to their size.
                    Instances For

                      The norm_num extension which identifies an expression NNRat.cast q where norm_num recognizes q, returning the cast of q.

                      Instances For
                        theorem Mathlib.Meta.NormNum.isNNRat_inv_pos {α : Type u_1} [DivisionSemiring α] [CharZero α] {a : α} {n d : ℕ} :
                        IsNNRat a n.succ d → IsNNRat a⁻¹ d n.succ
                        theorem Mathlib.Meta.NormNum.isRat_inv_pos {α : Type u_1} [DivisionRing α] [CharZero α] {a : α} {n d : ℕ} :
                        theorem Mathlib.Meta.NormNum.isNat_inv_one {α : Type u_1} [DivisionSemiring α] {a : α} :
                        IsNat a 1 → IsNat a⁻¹ 1
                        theorem Mathlib.Meta.NormNum.isRat_inv_neg {α : Type u_1} [DivisionRing α] [CharZero α] {a : α} {n d : ℕ} :
                        def Mathlib.Meta.NormNum.Result.inv {u : Lean.Level} {α : Q(Type u)} {a : Q(«$α»)} (ra : Result a) (dsα : Q(DivisionSemiring «$α»)) (czα? : Option Q(CharZero «$α»)) :

                        The result of inverting a norm_num result.

                        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⁻¹, such that norm_num successfully recognises a.

                          Equations
                          • One or more equations did not get rendered due to their size.
                          Instances For