Documentation

Mathlib.Tactic.NormNum.Eq

norm_num extension for equalities #

theorem Mathlib.Meta.NormNum.isNat_eq_false {α : Type u_1} [AddMonoidWithOne α] [CharZero α] {a b : α} {a' b' : ℕ} :
IsNat a a' → IsNat b b' → a'.beq b' = false → ¬a = b
theorem Mathlib.Meta.NormNum.isInt_eq_false {α : Type u_1} [Ring α] [CharZero α] {a b : α} {a' b' : ℤ} :
IsInt a a' → IsInt b b' → decide (a' = b') = false → ¬a = b
theorem Mathlib.Meta.NormNum.NNRat.invOf_denom_swap {α : Type u_1} [Semiring α] (n₁ n₂ : ℕ) (a₁ a₂ : α) [Invertible a₁] [Invertible a₂] :
↑n₁ * ⅟a₁ = ↑n₂ * ⅟a₂ ↔ ↑n₁ * a₂ = ↑n₂ * a₁
theorem Mathlib.Meta.NormNum.isNNRat_eq_false {α : Type u_1} [Semiring α] [CharZero α] {a b : α} {na nb da db : ℕ} :
IsNNRat a na da → IsNNRat b nb db → decide (na.mul db = nb.mul da) = false → ¬a = b
theorem Mathlib.Meta.NormNum.Rat.invOf_denom_swap {α : Type u_1} [Ring α] (n₁ n₂ : ℤ) (a₁ a₂ : α) [Invertible a₁] [Invertible a₂] :
↑n₁ * ⅟a₁ = ↑n₂ * ⅟a₂ ↔ ↑n₁ * a₂ = ↑n₂ * a₁
theorem Mathlib.Meta.NormNum.isRat_eq_false {α : Type u_1} [Ring α] [CharZero α] {a b : α} {na nb : ℤ} {da db : ℕ} :
IsRat a na da → IsRat b nb db → decide (na.mul (Int.ofNat db) = nb.mul (Int.ofNat da)) = false → ¬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