Documentation

Mathlib.Tactic.NormNum.DivMod

norm_num extension for integer div/mod and divides #

This file adds support for the %, /, and ∣ (divisibility) operators on ℤ to the norm_num tactic.

theorem Mathlib.Meta.NormNum.isInt_ediv {a : ℤ} {b : ℤ} {q : ℤ} {m : ℤ} {a' : ℤ} {b' : ℕ} {r : ℕ} (ha : Mathlib.Meta.NormNum.IsInt a a') (hb : Mathlib.Meta.NormNum.IsNat b b') (hm : q * ↑b' = m) (h : ↑r + m = a') (h₂ : Nat.blt r b' = true) :
theorem Mathlib.Meta.NormNum.isInt_ediv_neg {q' : ℤ} {a : ℤ} {b : ℤ} {q : ℤ} (h : Mathlib.Meta.NormNum.IsInt (a / -b) q) (hq : -q = q') :

The norm_num extension which identifies expressions of the form Int.ediv 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.evalIntDiv.core (a : Q(ℤ)) (na : Q(ℤ)) (za : ℤ) (pa : Q(Mathlib.Meta.NormNum.IsInt «$a» «$na»)) (b : Q(ℤ)) (nb : Q(ℕ)) (pb : Q(Mathlib.Meta.NormNum.IsNat «$b» «$nb»)) :
    ℤ × (q : Q(ℤ)) × Q(Mathlib.Meta.NormNum.IsInt («$a» / «$b») «$q»)

    Given a result for evaluating a b in ℤ where b > 0, evaluate a / b.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      theorem Mathlib.Meta.NormNum.isInt_emod {a : ℤ} {b : ℤ} {q : ℤ} {m : ℤ} {a' : ℤ} {b' : ℕ} {r : ℕ} (ha : Mathlib.Meta.NormNum.IsInt a a') (hb : Mathlib.Meta.NormNum.IsNat b b') (hm : q * ↑b' = m) (h : ↑r + m = a') (h₂ : Nat.blt r b' = true) :

      The norm_num extension which identifies expressions of the form Int.emod 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.evalIntMod.go (a : Q(ℤ)) (na : Q(ℤ)) (za : ℤ) (pa : Q(Mathlib.Meta.NormNum.IsInt «$a» «$na»)) (b : Q(ℤ)) :

        Given a result for evaluating a b in ℤ, evaluate a % b.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          def Mathlib.Meta.NormNum.evalIntMod.core (a : Q(ℤ)) (na : Q(ℤ)) (za : ℤ) (pa : Q(Mathlib.Meta.NormNum.IsInt «$a» «$na»)) (b : Q(ℤ)) (nb : Q(ℕ)) (pb : Q(Mathlib.Meta.NormNum.IsNat «$b» «$nb»)) :
          (r : Q(ℕ)) × Q(Mathlib.Meta.NormNum.IsNat («$a» % «$b») «$r»)

          Given a result for evaluating a b in ℤ where b > 0, evaluate a % b.

          Equations
          • One or more equations did not get rendered due to their size.
          Instances For
            theorem Mathlib.Meta.NormNum.isInt_dvd_true {a : ℤ} {b : ℤ} {a' : ℤ} {b' : ℤ} {c : ℤ} :

            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