File: Mathlib/Tactic/NormNum/DivMod.lean

full_name: Mathlib.Meta.NormNum.isInt_ediv_zero
code: lemma isInt_ediv_zero : ∀ {a b r : ℤ}, IsInt a r → IsNat b (nat_lit 0) → IsNat (a / b) (nat_lit 0)
  
goal: Mathlib.Meta.NormNum.IsInt a r → Mathlib.Meta.NormNum.IsNat b 0 → Mathlib.Meta.NormNum.IsNat (a / b) 0

full_name: Mathlib.Meta.NormNum.isInt_ediv
code: lemma 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₂ : Nat.blt r b' = true) :
    IsInt (a / b) q 
goal: Mathlib.Meta.NormNum.IsInt (a / b) q

full_name: Mathlib.Meta.NormNum.isInt_ediv_neg
code: lemma isInt_ediv_neg {a b q q' : ℤ} (h : IsInt (a / -b) q) (hq : -q = q') : IsInt (a / b) q' 
goal: Mathlib.Meta.NormNum.IsInt (a / b) q'

full_name: Mathlib.Meta.NormNum.isNat_neg_of_isNegNat
code: lemma isNat_neg_of_isNegNat {a : ℤ} {b : ℕ} (h : IsInt a (.negOfNat b)) : IsNat (-a) b 
goal: Mathlib.Meta.NormNum.IsNat (-a) b

full_name: Mathlib.Meta.NormNum.evalIntDiv
code: /-- The `norm_num` extension which identifies expressions of the form `Int.ediv a b`,
such that `norm_num` successfully recognises both `a` and `b`. -/
@[norm_num (_ : ℤ) / _, Int.ediv _ _]
partial def evalIntDiv : NormNumExt 
goal: Mathlib.Meta.NormNum.NormNumExt

full_name: Mathlib.Meta.NormNum.evalIntDiv.core
code: /-- The `norm_num` extension which identifies expressions of the form `Int.ediv a b`,
such that `norm_num` successfully recognises both `a` and `b`. -/
@[norm_num (_ : ℤ) / _, Int.ediv _ _]
partial def evalIntDiv : NormNumExt 
goal: ℤ × (q : Q(ℤ)) × Q(Mathlib.Meta.NormNum.IsInt («$a» / «$b») «$q»)

full_name: Mathlib.Meta.NormNum.isInt_emod_zero
code: lemma isInt_emod_zero : ∀ {a b r : ℤ}, IsInt a r → IsNat b (nat_lit 0) → IsInt (a % b) r
  
goal: Mathlib.Meta.NormNum.IsInt a r → Mathlib.Meta.NormNum.IsNat b 0 → Mathlib.Meta.NormNum.IsInt (a % b) r

full_name: Mathlib.Meta.NormNum.isInt_emod
code: lemma 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₂ : Nat.blt r b' = true) :
    IsNat (a % b) r 
goal: Mathlib.Meta.NormNum.IsNat (a % b) r

full_name: Mathlib.Meta.NormNum.isInt_emod_neg
code: lemma isInt_emod_neg {a b : ℤ} {r : ℕ} (h : IsNat (a % -b) r) : IsNat (a % b) r 
goal: Mathlib.Meta.NormNum.IsNat (a % b) r

full_name: Mathlib.Meta.NormNum.evalIntMod.go
code: /-- The `norm_num` extension which identifies expressions of the form `Int.emod a b`,
such that `norm_num` successfully recognises both `a` and `b`. -/
@[norm_num (_ : ℤ) % _, Int.emod _ _]
partial def evalIntMod : NormNumExt 
goal: Mathlib.Meta.NormNum.Result b → Option (Mathlib.Meta.NormNum.Result q(«$a» % «$b»))

full_name: Mathlib.Meta.NormNum.evalIntMod.core
code: /-- The `norm_num` extension which identifies expressions of the form `Int.emod a b`,
such that `norm_num` successfully recognises both `a` and `b`. -/
@[norm_num (_ : ℤ) % _, Int.emod _ _]
partial def evalIntMod : NormNumExt 
goal: (r : Q(ℕ)) × Q(Mathlib.Meta.NormNum.IsNat («$a» % «$b») «$r»)

full_name: Mathlib.Meta.NormNum.evalIntMod
code: /-- The `norm_num` extension which identifies expressions of the form `Int.emod a b`,
such that `norm_num` successfully recognises both `a` and `b`. -/
@[norm_num (_ : ℤ) % _, Int.emod _ _]
partial def evalIntMod : NormNumExt 
goal: Mathlib.Meta.NormNum.NormNumExt

full_name: Mathlib.Meta.NormNum.isInt_dvd_true
code: theorem isInt_dvd_true : {a b : ℤ} → {a' b' c : ℤ} →
    IsInt a a' → IsInt b b' → Int.mul a' c = b' → a ∣ b
  
goal: Mathlib.Meta.NormNum.IsInt a a' → Mathlib.Meta.NormNum.IsInt b b' → a'.mul c = b' → a ∣ b

full_name: Mathlib.Meta.NormNum.isInt_dvd_false
code: theorem isInt_dvd_false : {a b : ℤ} → {a' b' : ℤ} →
    IsInt a a' → IsInt b b' → Int.mod b' a' != 0 → ¬a ∣ b
  
goal: Mathlib.Meta.NormNum.IsInt a a' → Mathlib.Meta.NormNum.IsInt b b' → (b'.mod a' != 0) = true → ¬a ∣ b

full_name: Mathlib.Meta.NormNum.evalIntDvd
code: /-- The `norm_num` extension which identifies expressions of the form `(a : ℤ) ∣ b`,
such that `norm_num` successfully recognises both `a` and `b`. -/
@[norm_num (_ : ℤ) ∣ _] def evalIntDvd : NormNumExt 
goal: Mathlib.Meta.NormNum.NormNumExt