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.add_nonpos {α : Type u_1} [OrderedSemiring α] {a b : α} (ha : a 0) (hb : b 0) :
a + b 0
theorem Linarith.add_lt_of_le_of_neg {α : Type u_1} [StrictOrderedSemiring α] {a b c : α} (hbc : b c) (ha : a < 0) :
b + a < c
theorem Linarith.add_lt_of_neg_of_le {α : Type u_1} [StrictOrderedSemiring α] {a b c : α} (ha : a < 0) (hbc : b c) :
a + b < c
theorem Linarith.add_neg {α : Type u_1} [StrictOrderedSemiring α] {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

Finds the name of a multiplicative lemma corresponding to an inequality strength.

Equations
Instances For
    theorem Linarith.sub_nonpos_of_le {α : Type u_1} [OrderedRing α] {a b : α} :
    a ba - b 0
    theorem Linarith.sub_neg_of_lt {α : Type u_1} [OrderedRing α] {a b : α} :
    a < ba - b < 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∀ (h : b = 0), a * 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
    @[deprecated Linarith.natCast_nonneg]
    theorem Linarith.nat_cast_nonneg (α : Type u) [OrderedSemiring α] (n : ) :
    0 n

    Alias of Linarith.natCast_nonneg.

    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