Documentation

Mathlib.Tactic.Linarith.Lemmas

Lemmas for linarith. #

Those in the Linarith namespace should stay here.

Those outside the Linarith namespace may be deleted as they are ported to mathlib4.

theorem Linarith.lt_irrefl {α : Type u} [Preorder α] {a : α} :
¬a < a
theorem Linarith.eq_of_eq_of_eq {α : Type u_1} [OrderedSemiring α] {a : α} {b : α} (ha : a = 0) (hb : b = 0) :
a + b = 0
theorem Linarith.le_of_eq_of_le {α : Type u_1} [OrderedSemiring α] {a : α} {b : α} (ha : a = 0) (hb : b ≤ 0) :
a + b ≤ 0
theorem Linarith.lt_of_eq_of_lt {α : Type u_1} [OrderedSemiring α] {a : α} {b : α} (ha : a = 0) (hb : b < 0) :
a + b < 0
theorem Linarith.le_of_le_of_eq {α : Type u_1} [OrderedSemiring α] {a : α} {b : α} (ha : a ≤ 0) (hb : b = 0) :
a + b ≤ 0
theorem Linarith.lt_of_lt_of_eq {α : Type u_1} [OrderedSemiring α] {a : α} {b : α} (ha : a < 0) (hb : b = 0) :
a + b < 0
theorem Linarith.mul_neg {α : Type u_1} [StrictOrderedRing α] {a : α} {b : α} (ha : a < 0) (hb : 0 < b) :
b * a < 0
theorem Linarith.mul_nonpos {α : Type u_1} [OrderedRing α] {a : α} {b : α} (ha : a ≤ 0) (hb : 0 < b) :
b * a ≤ 0
theorem Linarith.mul_eq {α : Type u_1} [OrderedSemiring α] {a : α} {b : α} (ha : a = 0) :
0 < b → b * a = 0
theorem Linarith.eq_of_not_lt_of_not_gt {α : Type u_1} [LinearOrder α] (a : α) (b : α) (h1 : ¬a < b) (h2 : ¬b < a) :
a = b
theorem Linarith.mul_zero_eq {α : Type u_1} {R : α → α → Prop} [Semiring α] {a : α} {b : α} :
R a 0 → b = 0 → a * b = 0
theorem Linarith.zero_mul_eq {α : Type u_1} {R : α → α → Prop} [Semiring α] {a : α} {b : α} (h : a = 0) :
R b 0 → a * b = 0
theorem Linarith.nat_cast_nonneg (α : Type u) [OrderedSemiring α] (n : ℕ) :
0 ≤ ↑n
theorem lt_zero_of_zero_gt {α : Type u_1} [Zero α] [LT α] {a : α} (h : 0 > a) :
a < 0
theorem le_zero_of_zero_ge {α : Type u_1} [Zero α] [LE α] {a : α} (h : 0 ≥ a) :
a ≤ 0