mathlib documentation

tactic.​linarith.​lemmas

tactic.​linarith.​lemmas

Lemmas for linarith

This file contains auxiliary lemmas that linarith uses to construct proofs. If you find yourself looking for a theorem here, you might be in the wrong place.

theorem linarith.​nat_eq_subst {n1 n2 : ℕ} {z1 z2 : ℤ} :
n1 = n2 → ↑n1 = z1 → ↑n2 = z2 → z1 = z2

theorem linarith.​nat_le_subst {n1 n2 : ℕ} {z1 z2 : ℤ} :
n1 ≤ n2 → ↑n1 = z1 → ↑n2 = z2 → z1 ≤ z2

theorem linarith.​nat_lt_subst {n1 n2 : ℕ} {z1 z2 : ℤ} :
n1 < n2 → ↑n1 = z1 → ↑n2 = z2 → z1 < z2

theorem linarith.​eq_of_eq_of_eq {α : Type u_1} [ordered_semiring α] {a b : α} :
a = 0 → b = 0 → a + b = 0

theorem linarith.​le_of_eq_of_le {α : Type u_1} [ordered_semiring α] {a b : α} :
a = 0 → b ≤ 0 → a + b ≤ 0

theorem linarith.​lt_of_eq_of_lt {α : Type u_1} [ordered_semiring α] {a b : α} :
a = 0 → b < 0 → a + b < 0

theorem linarith.​le_of_le_of_eq {α : Type u_1} [ordered_semiring α] {a b : α} :
a ≤ 0 → b = 0 → a + b ≤ 0

theorem linarith.​lt_of_lt_of_eq {α : Type u_1} [ordered_semiring α] {a b : α} :
a < 0 → b = 0 → a + b < 0

theorem linarith.​mul_neg {α : Type u_1} [ordered_ring α] {a b : α} :
a < 0 → 0 < b → b * a < 0

theorem linarith.​mul_nonpos {α : Type u_1} [ordered_ring α] {a b : α} :
a ≤ 0 → 0 < b → b * a ≤ 0

@[nolint]
theorem linarith.​mul_eq {α : Type u_1} [ordered_semiring α] {a b : α} :
a = 0 → 0 < b → b * a = 0

theorem linarith.​eq_of_not_lt_of_not_gt {α : Type u_1} [linear_order α] (a b : α) :
¬a < b → ¬b < a → a = b

@[nolint]
theorem linarith.​mul_zero_eq {α : Type u_1} {R : α → α → Prop} [semiring α] {a b : α} :
R a 0 → b = 0 → a * b = 0

@[nolint]
theorem linarith.​zero_mul_eq {α : Type u_1} {R : α → α → Prop} [semiring α] {a b : α} :
a = 0 → R b 0 → a * b = 0