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_zero {a b r : ℤ} :
IsInt a r → IsNat b 0 → IsNat (a / b) 0
theorem Mathlib.Meta.NormNum.isInt_ediv {a b q m a' : ℤ} {b' r : ℕ} (ha : IsInt a a') (hb : IsNat b b') (hm : q * ↑b' = m) (h : ↑r + m = a') (h₂ : r.blt b' = true) :
IsInt (a / b) q
theorem Mathlib.Meta.NormNum.isInt_ediv_neg {a b q q' : ℤ} (h : IsInt (a / -b) q) (hq : -q = q') :
IsInt (a / b) 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
    theorem Mathlib.Meta.NormNum.isInt_emod_zero {a b r : ℤ} :
    IsInt a r → IsNat b 0 → IsInt (a % b) r
    theorem Mathlib.Meta.NormNum.isInt_emod {a b q m a' : ℤ} {b' r : ℕ} (ha : IsInt a a') (hb : IsNat b b') (hm : q * ↑b' = m) (h : ↑r + m = a') (h₂ : r.blt b' = true) :
    IsNat (a % b) r
    theorem Mathlib.Meta.NormNum.isInt_emod_neg {a b : ℤ} {r : ℕ} (h : IsNat (a % -b) r) :
    IsNat (a % b) r

    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
      theorem Mathlib.Meta.NormNum.isInt_dvd_true {a b a' b' c : ℤ} :
      IsInt a a' → IsInt b b' → a'.mul c = b' → a ∣ b
      theorem Mathlib.Meta.NormNum.isInt_dvd_false {a b a' b' : ℤ} :
      IsInt a a' → IsInt b b' → (b'.emod a' != 0) = 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