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 < bb * 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 0b = 0a * b = 0
theorem Linarith.zero_mul_eq {α : Type u_1} {R : ααProp} [Semiring α] {a : α} {b : α} (h : a = 0) :
R b 0a * b = 0
theorem Linarith.natCast_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