Lemmas about the interaction of power operations with order #
Note that some lemmas are in Algebra/GroupPower/Lemmas.lean
as they import files which
depend on this file.
theorem
nsmul_le_nsmul_of_le_right
{M : Type u_4}
[AddMonoid M]
[Preorder M]
[CovariantClass M M (fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1]
[CovariantClass M M (Function.swap fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1]
{a : M}
{b : M}
(hab : a ≤ b)
(i : ℕ)
:
Equations
- nsmul_le_nsmul_of_le_right.match_1 motive x h_1 h_2 = Nat.casesOn x (h_1 ()) fun n => h_2 n
Instances For
theorem
pow_le_pow_of_le_left'
{M : Type u_4}
[Monoid M]
[Preorder M]
[CovariantClass M M (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1]
[CovariantClass M M (Function.swap fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1]
{a : M}
{b : M}
(hab : a ≤ b)
(i : ℕ)
:
theorem
nsmul_strictMono_right
{M : Type u_4}
[AddMonoid M]
[Preorder M]
[CovariantClass M M (fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1]
[CovariantClass M M (fun x x_1 => x + x_1) fun x x_1 => x < x_1]
{a : M}
(ha : 0 < a)
:
StrictMono ((fun x x_1 => x_1 • x) a)
theorem
pow_strictMono_left
{M : Type u_4}
[Monoid M]
[Preorder M]
[CovariantClass M M (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1]
[CovariantClass M M (fun x x_1 => x * x_1) fun x x_1 => x < x_1]
{a : M}
(ha : 1 < a)
:
StrictMono ((fun x x_1 => x ^ x_1) a)
theorem
Right.pow_nonneg
{M : Type u_4}
[AddMonoid M]
[Preorder M]
[CovariantClass M M (Function.swap fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1]
{x : M}
(hx : 0 ≤ x)
{n : ℕ}
:
theorem
Right.one_le_pow_of_le
{M : Type u_4}
[Monoid M]
[Preorder M]
[CovariantClass M M (Function.swap fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1]
{x : M}
(hx : 1 ≤ x)
{n : ℕ}
:
theorem
Right.pow_nonpos
{M : Type u_4}
[AddMonoid M]
[Preorder M]
[CovariantClass M M (Function.swap fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1]
{x : M}
(hx : x ≤ 0)
{n : ℕ}
:
theorem
Right.pow_le_one_of_le
{M : Type u_4}
[Monoid M]
[Preorder M]
[CovariantClass M M (Function.swap fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1]
{x : M}
(hx : x ≤ 1)
{n : ℕ}
:
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem
StrictMono.nsmul_left
{β : Type u_1}
{M : Type u_4}
[AddMonoid M]
[Preorder M]
[Preorder β]
[CovariantClass M M (fun x x_1 => x + x_1) fun x x_1 => x < x_1]
[CovariantClass M M (Function.swap fun x x_1 => x + x_1) fun x x_1 => x < x_1]
{f : β → M}
(hf : StrictMono f)
{n : ℕ}
:
n ≠ 0 → StrictMono fun a => n • f a
theorem
StrictMono.pow_right'
{β : Type u_1}
{M : Type u_4}
[Monoid M]
[Preorder M]
[Preorder β]
[CovariantClass M M (fun x x_1 => x * x_1) fun x x_1 => x < x_1]
[CovariantClass M M (Function.swap fun x x_1 => x * x_1) fun x x_1 => x < x_1]
{f : β → M}
(hf : StrictMono f)
{n : ℕ}
:
n ≠ 0 → StrictMono fun a => f a ^ n
theorem
nsmul_strictMono_left
{M : Type u_4}
[AddMonoid M]
[Preorder M]
[CovariantClass M M (fun x x_1 => x + x_1) fun x x_1 => x < x_1]
[CovariantClass M M (Function.swap fun x x_1 => x + x_1) fun x x_1 => x < x_1]
{n : ℕ}
(hn : n ≠ 0)
:
StrictMono fun a => n • a
theorem
pow_strictMono_right'
{M : Type u_4}
[Monoid M]
[Preorder M]
[CovariantClass M M (fun x x_1 => x * x_1) fun x x_1 => x < x_1]
[CovariantClass M M (Function.swap fun x x_1 => x * x_1) fun x x_1 => x < x_1]
{n : ℕ}
(hn : n ≠ 0)
:
StrictMono fun a => a ^ n
See also pow_strictMono_right
theorem
Monotone.nsmul_left
{β : Type u_1}
{M : Type u_4}
[AddMonoid M]
[Preorder M]
[Preorder β]
[CovariantClass M M (fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1]
[CovariantClass M M (Function.swap fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1]
{f : β → M}
(hf : Monotone f)
(n : ℕ)
:
theorem
Monotone.pow_right
{β : Type u_1}
{M : Type u_4}
[Monoid M]
[Preorder M]
[Preorder β]
[CovariantClass M M (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1]
[CovariantClass M M (Function.swap fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1]
{f : β → M}
(hf : Monotone f)
(n : ℕ)
:
theorem
nsmul_mono_left
{M : Type u_4}
[AddMonoid M]
[Preorder M]
[CovariantClass M M (fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1]
[CovariantClass M M (Function.swap fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1]
(n : ℕ)
:
theorem
pow_mono_right
{M : Type u_4}
[Monoid M]
[Preorder M]
[CovariantClass M M (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1]
[CovariantClass M M (Function.swap fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1]
(n : ℕ)
:
theorem
Right.pow_neg
{M : Type u_4}
[AddMonoid M]
[Preorder M]
[CovariantClass M M (Function.swap fun x x_1 => x + x_1) fun x x_1 => x < x_1]
{n : ℕ}
{x : M}
(hn : 0 < n)
(h : x < 0)
:
theorem
Right.pow_lt_one_of_lt
{M : Type u_4}
[Monoid M]
[Preorder M]
[CovariantClass M M (Function.swap fun x x_1 => x * x_1) fun x x_1 => x < x_1]
{n : ℕ}
{x : M}
(hn : 0 < n)
(h : x < 1)
:
theorem
nsmul_nonneg_iff
{M : Type u_4}
[AddMonoid M]
[LinearOrder M]
[CovariantClass M M (fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1]
{x : M}
{n : ℕ}
(hn : n ≠ 0)
:
theorem
one_le_pow_iff
{M : Type u_4}
[Monoid M]
[LinearOrder M]
[CovariantClass M M (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1]
{x : M}
{n : ℕ}
(hn : n ≠ 0)
:
theorem
nsmul_nonpos_iff
{M : Type u_4}
[AddMonoid M]
[LinearOrder M]
[CovariantClass M M (fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1]
{x : M}
{n : ℕ}
(hn : n ≠ 0)
:
theorem
pow_le_one_iff
{M : Type u_4}
[Monoid M]
[LinearOrder M]
[CovariantClass M M (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1]
{x : M}
{n : ℕ}
(hn : n ≠ 0)
:
theorem
nsmul_pos_iff
{M : Type u_4}
[AddMonoid M]
[LinearOrder M]
[CovariantClass M M (fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1]
{x : M}
{n : ℕ}
(hn : n ≠ 0)
:
theorem
one_lt_pow_iff
{M : Type u_4}
[Monoid M]
[LinearOrder M]
[CovariantClass M M (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1]
{x : M}
{n : ℕ}
(hn : n ≠ 0)
:
theorem
nsmul_neg_iff
{M : Type u_4}
[AddMonoid M]
[LinearOrder M]
[CovariantClass M M (fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1]
{x : M}
{n : ℕ}
(hn : n ≠ 0)
:
theorem
pow_lt_one_iff
{M : Type u_4}
[Monoid M]
[LinearOrder M]
[CovariantClass M M (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1]
{x : M}
{n : ℕ}
(hn : n ≠ 0)
:
theorem
nsmul_eq_zero_iff
{M : Type u_4}
[AddMonoid M]
[LinearOrder M]
[CovariantClass M M (fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1]
{x : M}
{n : ℕ}
(hn : n ≠ 0)
:
theorem
pow_eq_one_iff
{M : Type u_4}
[Monoid M]
[LinearOrder M]
[CovariantClass M M (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1]
{x : M}
{n : ℕ}
(hn : n ≠ 0)
:
theorem
nsmul_le_nsmul_iff
{M : Type u_4}
[AddMonoid M]
[LinearOrder M]
[CovariantClass M M (fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1]
[CovariantClass M M (fun x x_1 => x + x_1) fun x x_1 => x < x_1]
{a : M}
{m : ℕ}
{n : ℕ}
(ha : 0 < a)
:
theorem
pow_le_pow_iff'
{M : Type u_4}
[Monoid M]
[LinearOrder M]
[CovariantClass M M (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1]
[CovariantClass M M (fun x x_1 => x * x_1) fun x x_1 => x < x_1]
{a : M}
{m : ℕ}
{n : ℕ}
(ha : 1 < a)
:
theorem
nsmul_lt_nsmul_iff
{M : Type u_4}
[AddMonoid M]
[LinearOrder M]
[CovariantClass M M (fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1]
[CovariantClass M M (fun x x_1 => x + x_1) fun x x_1 => x < x_1]
{a : M}
{m : ℕ}
{n : ℕ}
(ha : 0 < a)
:
theorem
pow_lt_pow_iff'
{M : Type u_4}
[Monoid M]
[LinearOrder M]
[CovariantClass M M (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1]
[CovariantClass M M (fun x x_1 => x * x_1) fun x x_1 => x < x_1]
{a : M}
{m : ℕ}
{n : ℕ}
(ha : 1 < a)
:
theorem
lt_of_nsmul_lt_nsmul
{M : Type u_4}
[AddMonoid M]
[LinearOrder M]
[CovariantClass M M (fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1]
[CovariantClass M M (Function.swap fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1]
{a : M}
{b : M}
(n : ℕ)
:
theorem
lt_of_pow_lt_pow'
{M : Type u_4}
[Monoid M]
[LinearOrder M]
[CovariantClass M M (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1]
[CovariantClass M M (Function.swap fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1]
{a : M}
{b : M}
(n : ℕ)
:
theorem
min_lt_of_add_lt_two_nsmul
{M : Type u_4}
[AddMonoid M]
[LinearOrder M]
[CovariantClass M M (fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1]
[CovariantClass M M (Function.swap fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1]
{a : M}
{b : M}
{c : M}
(h : a + b < 2 • c)
:
theorem
min_lt_of_mul_lt_sq
{M : Type u_4}
[Monoid M]
[LinearOrder M]
[CovariantClass M M (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1]
[CovariantClass M M (Function.swap fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1]
{a : M}
{b : M}
{c : M}
(h : a * b < c ^ 2)
:
theorem
lt_max_of_two_nsmul_lt_add
{M : Type u_4}
[AddMonoid M]
[LinearOrder M]
[CovariantClass M M (fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1]
[CovariantClass M M (Function.swap fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1]
{a : M}
{b : M}
{c : M}
(h : 2 • a < b + c)
:
theorem
lt_max_of_sq_lt_mul
{M : Type u_4}
[Monoid M]
[LinearOrder M]
[CovariantClass M M (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1]
[CovariantClass M M (Function.swap fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1]
{a : M}
{b : M}
{c : M}
(h : a ^ 2 < b * c)
:
theorem
le_of_nsmul_le_nsmul
{M : Type u_4}
[AddMonoid M]
[LinearOrder M]
[CovariantClass M M (fun x x_1 => x + x_1) fun x x_1 => x < x_1]
[CovariantClass M M (Function.swap fun x x_1 => x + x_1) fun x x_1 => x < x_1]
{a : M}
{b : M}
{n : ℕ}
(hn : n ≠ 0)
:
theorem
le_of_pow_le_pow'
{M : Type u_4}
[Monoid M]
[LinearOrder M]
[CovariantClass M M (fun x x_1 => x * x_1) fun x x_1 => x < x_1]
[CovariantClass M M (Function.swap fun x x_1 => x * x_1) fun x x_1 => x < x_1]
{a : M}
{b : M}
{n : ℕ}
(hn : n ≠ 0)
:
theorem
min_le_of_add_le_two_nsmul
{M : Type u_4}
[AddMonoid M]
[LinearOrder M]
[CovariantClass M M (fun x x_1 => x + x_1) fun x x_1 => x < x_1]
[CovariantClass M M (Function.swap fun x x_1 => x + x_1) fun x x_1 => x < x_1]
{a : M}
{b : M}
{c : M}
(h : a + b ≤ 2 • c)
:
theorem
min_le_of_mul_le_sq
{M : Type u_4}
[Monoid M]
[LinearOrder M]
[CovariantClass M M (fun x x_1 => x * x_1) fun x x_1 => x < x_1]
[CovariantClass M M (Function.swap fun x x_1 => x * x_1) fun x x_1 => x < x_1]
{a : M}
{b : M}
{c : M}
(h : a * b ≤ c ^ 2)
:
theorem
le_max_of_two_nsmul_le_add
{M : Type u_4}
[AddMonoid M]
[LinearOrder M]
[CovariantClass M M (fun x x_1 => x + x_1) fun x x_1 => x < x_1]
[CovariantClass M M (Function.swap fun x x_1 => x + x_1) fun x x_1 => x < x_1]
{a : M}
{b : M}
{c : M}
(h : 2 • a ≤ b + c)
:
theorem
le_max_of_sq_le_mul
{M : Type u_4}
[Monoid M]
[LinearOrder M]
[CovariantClass M M (fun x x_1 => x * x_1) fun x x_1 => x < x_1]
[CovariantClass M M (Function.swap fun x x_1 => x * x_1) fun x x_1 => x < x_1]
{a : M}
{b : M}
{c : M}
(h : a ^ 2 ≤ b * c)
:
theorem
Left.nsmul_neg_iff
{M : Type u_4}
[AddMonoid M]
[LinearOrder M]
[CovariantClass M M (fun x x_1 => x + x_1) fun x x_1 => x < x_1]
{n : ℕ}
{x : M}
(hn : 0 < n)
:
theorem
Left.pow_lt_one_iff'
{M : Type u_4}
[Monoid M]
[LinearOrder M]
[CovariantClass M M (fun x x_1 => x * x_1) fun x x_1 => x < x_1]
{n : ℕ}
{x : M}
(hn : 0 < n)
:
theorem
Left.pow_lt_one_iff
{M : Type u_4}
[Monoid M]
[LinearOrder M]
[CovariantClass M M (fun x x_1 => x * x_1) fun x x_1 => x < x_1]
{n : ℕ}
{x : M}
(hn : 0 < n)
:
theorem
Right.nsmul_neg_iff
{M : Type u_4}
[AddMonoid M]
[LinearOrder M]
[CovariantClass M M (Function.swap fun x x_1 => x + x_1) fun x x_1 => x < x_1]
{n : ℕ}
{x : M}
(hn : 0 < n)
:
theorem
Right.pow_lt_one_iff
{M : Type u_4}
[Monoid M]
[LinearOrder M]
[CovariantClass M M (Function.swap fun x x_1 => x * x_1) fun x x_1 => x < x_1]
{n : ℕ}
{x : M}
(hn : 0 < n)
:
theorem
zsmul_nonneg
{G : Type u_3}
[SubNegMonoid G]
[Preorder G]
[CovariantClass G G (fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1]
{x : G}
(H : 0 ≤ x)
{n : ℤ}
(hn : 0 ≤ n)
:
theorem
one_le_zpow
{G : Type u_3}
[DivInvMonoid G]
[Preorder G]
[CovariantClass G G (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1]
{x : G}
(H : 1 ≤ x)
{n : ℤ}
(hn : 0 ≤ n)
:
theorem
CanonicallyOrderedCommSemiring.pow_pos
{R : Type u_5}
[CanonicallyOrderedCommSemiring R]
{a : R}
(H : 0 < a)
(n : ℕ)
:
theorem
pow_le_pow_of_le_left
{R : Type u_5}
[OrderedSemiring R]
{a : R}
{b : R}
(ha : 0 ≤ a)
(hab : a ≤ b)
(i : ℕ)
:
theorem
strictMonoOn_pow
{R : Type u_5}
[StrictOrderedSemiring R]
{n : ℕ}
(hn : 0 < n)
:
StrictMonoOn (fun x => x ^ n) (Set.Ici 0)
theorem
pow_strictMono_right
{R : Type u_5}
[StrictOrderedSemiring R]
{a : R}
(h : 1 < a)
:
StrictMono fun n => a ^ n
theorem
self_lt_pow
{R : Type u_5}
[StrictOrderedSemiring R]
{a : R}
{m : ℕ}
(h : 1 < a)
(h2 : 1 < m)
:
theorem
strictAnti_pow
{R : Type u_5}
[StrictOrderedSemiring R]
{a : R}
(h₀ : 0 < a)
(h₁ : a < 1)
:
StrictAnti fun n => a ^ n
theorem
pow_lt_self_of_lt_one
{R : Type u_5}
[StrictOrderedSemiring R]
{a : R}
{n : ℕ}
(h₀ : 0 < a)
(h₁ : a < 1)
(hn : 1 < n)
:
theorem
lt_of_pow_lt_pow
{R : Type u_5}
[LinearOrderedSemiring R]
{a : R}
{b : R}
(n : ℕ)
(hb : 0 ≤ b)
(h : a ^ n < b ^ n)
:
a < b
theorem
lt_of_mul_self_lt_mul_self
{R : Type u_5}
[LinearOrderedSemiring R]
{a : R}
{b : R}
(hb : 0 ≤ b)
:
Alias of sq_nonneg
.
Alias of sq_pos_of_ne_zero
.
theorem
abs_lt_of_sq_lt_sq
{R : Type u_5}
[LinearOrderedRing R]
{x : R}
{y : R}
(h : x ^ 2 < y ^ 2)
(hy : 0 ≤ y)
:
|x| < y
theorem
abs_le_of_sq_le_sq
{R : Type u_5}
[LinearOrderedRing R]
{x : R}
{y : R}
(h : x ^ 2 ≤ y ^ 2)
(hy : 0 ≤ y)
:
|x| ≤ y
@[simp]
@[simp]
@[simp]
@[simp]
theorem
pow_four_le_pow_two_of_pow_two_le
{R : Type u_5}
[LinearOrderedRing R]
{x : R}
{y : R}
(h : x ^ 2 ≤ y)
:
Arithmetic mean-geometric mean (AM-GM) inequality for linearly ordered commutative rings.
Alias of two_mul_le_add_sq
.
Arithmetic mean-geometric mean (AM-GM) inequality for linearly ordered commutative rings.
theorem
pow_pos_iff
{M : Type u_4}
[LinearOrderedCommMonoidWithZero M]
[NoZeroDivisors M]
{a : M}
{n : ℕ}
(hn : 0 < n)
:
theorem
pow_lt_pow_succ
{M : Type u_4}
[LinearOrderedCommGroupWithZero M]
{a : M}
{n : ℕ}
(ha : 1 < a)
:
theorem
MonoidHom.map_neg_one
{M : Type u_4}
{R : Type u_5}
[Ring R]
[Monoid M]
[LinearOrder M]
[CovariantClass M M (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1]
(f : R →* M)
:
@[simp]
theorem
MonoidHom.map_neg
{M : Type u_4}
{R : Type u_5}
[Ring R]
[Monoid M]
[LinearOrder M]
[CovariantClass M M (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1]
(f : R →* M)
(x : R)
:
theorem
MonoidHom.map_sub_swap
{M : Type u_4}
{R : Type u_5}
[Ring R]
[Monoid M]
[LinearOrder M]
[CovariantClass M M (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1]
(f : R →* M)
(x : R)
(y : R)
: