Lemmas about the interaction of power operations with order in terms of CovariantClass #
More lemmas with bundled algebra+order typeclasses are in Algebra/GroupPower/Order.lean
and Algebra/GroupPower/Lemmas.lean
.
theorem
nsmul_le_nsmul_of_le_right
{M : Type u_3}
[AddMonoid M]
[Preorder M]
[CovariantClass M M (fun (x x_1 : M) => x + x_1) fun (x x_1 : M) => x ≤ x_1]
[CovariantClass M M (Function.swap fun (x x_1 : M) => x + x_1) fun (x x_1 : M) => x ≤ x_1]
{a : M}
{b : M}
(hab : a ≤ b)
(i : ℕ)
:
theorem
pow_le_pow_of_le_left'
{M : Type u_3}
[Monoid M]
[Preorder M]
[CovariantClass M M (fun (x x_1 : M) => x * x_1) fun (x x_1 : M) => x ≤ x_1]
[CovariantClass M M (Function.swap fun (x x_1 : M) => x * x_1) fun (x x_1 : M) => x ≤ x_1]
{a : M}
{b : M}
(hab : a ≤ b)
(i : ℕ)
:
theorem
nsmul_strictMono_right
{M : Type u_3}
[AddMonoid M]
[Preorder M]
[CovariantClass M M (fun (x x_1 : M) => x + x_1) fun (x x_1 : M) => x ≤ x_1]
[CovariantClass M M (fun (x x_1 : M) => x + x_1) fun (x x_1 : M) => x < x_1]
{a : M}
(ha : 0 < a)
:
StrictMono ((fun (x : M) (x_1 : ℕ) => x_1 • x) a)
theorem
pow_strictMono_left
{M : Type u_3}
[Monoid M]
[Preorder M]
[CovariantClass M M (fun (x x_1 : M) => x * x_1) fun (x x_1 : M) => x ≤ x_1]
[CovariantClass M M (fun (x x_1 : M) => x * x_1) fun (x x_1 : M) => x < x_1]
{a : M}
(ha : 1 < a)
:
StrictMono ((fun (x : M) (x_1 : ℕ) => x ^ x_1) a)
theorem
Right.pow_nonneg
{M : Type u_3}
[AddMonoid M]
[Preorder M]
[CovariantClass M M (Function.swap fun (x x_1 : M) => x + x_1) fun (x x_1 : M) => x ≤ x_1]
{x : M}
(hx : 0 ≤ x)
{n : ℕ}
:
theorem
Right.one_le_pow_of_le
{M : Type u_3}
[Monoid M]
[Preorder M]
[CovariantClass M M (Function.swap fun (x x_1 : M) => x * x_1) fun (x x_1 : M) => x ≤ x_1]
{x : M}
(hx : 1 ≤ x)
{n : ℕ}
:
theorem
Right.pow_nonpos
{M : Type u_3}
[AddMonoid M]
[Preorder M]
[CovariantClass M M (Function.swap fun (x x_1 : M) => x + x_1) fun (x x_1 : M) => x ≤ x_1]
{x : M}
(hx : x ≤ 0)
{n : ℕ}
:
theorem
Right.pow_le_one_of_le
{M : Type u_3}
[Monoid M]
[Preorder M]
[CovariantClass M M (Function.swap fun (x x_1 : M) => x * x_1) fun (x x_1 : M) => x ≤ x_1]
{x : M}
(hx : x ≤ 1)
{n : ℕ}
:
theorem
StrictMono.nsmul_left
{β : Type u_1}
{M : Type u_3}
[AddMonoid M]
[Preorder M]
[Preorder β]
[CovariantClass M M (fun (x x_1 : M) => x + x_1) fun (x x_1 : M) => x < x_1]
[CovariantClass M M (Function.swap fun (x x_1 : M) => x + x_1) fun (x x_1 : M) => x < x_1]
{f : β → M}
(hf : StrictMono f)
{n : ℕ}
:
n ≠ 0 → StrictMono fun (a : β) => n • f a
Equations
- (_ : motive x✝ x) = (_ : motive x✝ x)
Instances For
theorem
StrictMono.pow_right'
{β : Type u_1}
{M : Type u_3}
[Monoid M]
[Preorder M]
[Preorder β]
[CovariantClass M M (fun (x x_1 : M) => x * x_1) fun (x x_1 : M) => x < x_1]
[CovariantClass M M (Function.swap fun (x x_1 : M) => x * x_1) fun (x x_1 : M) => x < x_1]
{f : β → M}
(hf : StrictMono f)
{n : ℕ}
:
n ≠ 0 → StrictMono fun (a : β) => f a ^ n
theorem
nsmul_strictMono_left
{M : Type u_3}
[AddMonoid M]
[Preorder M]
[CovariantClass M M (fun (x x_1 : M) => x + x_1) fun (x x_1 : M) => x < x_1]
[CovariantClass M M (Function.swap fun (x x_1 : M) => x + x_1) fun (x x_1 : M) => x < x_1]
{n : ℕ}
(hn : n ≠ 0)
:
StrictMono fun (a : M) => n • a
theorem
pow_strictMono_right'
{M : Type u_3}
[Monoid M]
[Preorder M]
[CovariantClass M M (fun (x x_1 : M) => x * x_1) fun (x x_1 : M) => x < x_1]
[CovariantClass M M (Function.swap fun (x x_1 : M) => x * x_1) fun (x x_1 : M) => x < x_1]
{n : ℕ}
(hn : n ≠ 0)
:
StrictMono fun (a : M) => a ^ n
See also pow_strictMono_right
theorem
Monotone.nsmul_left
{β : Type u_1}
{M : Type u_3}
[AddMonoid M]
[Preorder M]
[Preorder β]
[CovariantClass M M (fun (x x_1 : M) => x + x_1) fun (x x_1 : M) => x ≤ x_1]
[CovariantClass M M (Function.swap fun (x x_1 : M) => x + x_1) fun (x x_1 : M) => x ≤ x_1]
{f : β → M}
(hf : Monotone f)
(n : ℕ)
:
theorem
Monotone.pow_right
{β : Type u_1}
{M : Type u_3}
[Monoid M]
[Preorder M]
[Preorder β]
[CovariantClass M M (fun (x x_1 : M) => x * x_1) fun (x x_1 : M) => x ≤ x_1]
[CovariantClass M M (Function.swap fun (x x_1 : M) => x * x_1) fun (x x_1 : M) => x ≤ x_1]
{f : β → M}
(hf : Monotone f)
(n : ℕ)
:
theorem
nsmul_mono_left
{M : Type u_3}
[AddMonoid M]
[Preorder M]
[CovariantClass M M (fun (x x_1 : M) => x + x_1) fun (x x_1 : M) => x ≤ x_1]
[CovariantClass M M (Function.swap fun (x x_1 : M) => x + x_1) fun (x x_1 : M) => x ≤ x_1]
(n : ℕ)
:
theorem
pow_mono_right
{M : Type u_3}
[Monoid M]
[Preorder M]
[CovariantClass M M (fun (x x_1 : M) => x * x_1) fun (x x_1 : M) => x ≤ x_1]
[CovariantClass M M (Function.swap fun (x x_1 : M) => x * x_1) fun (x x_1 : M) => x ≤ x_1]
(n : ℕ)
:
theorem
Right.pow_neg
{M : Type u_3}
[AddMonoid M]
[Preorder M]
[CovariantClass M M (Function.swap fun (x x_1 : M) => x + x_1) fun (x x_1 : M) => x < x_1]
{n : ℕ}
{x : M}
(hn : 0 < n)
(h : x < 0)
:
theorem
Right.pow_lt_one_of_lt
{M : Type u_3}
[Monoid M]
[Preorder M]
[CovariantClass M M (Function.swap fun (x x_1 : M) => x * x_1) fun (x x_1 : M) => x < x_1]
{n : ℕ}
{x : M}
(hn : 0 < n)
(h : x < 1)
:
theorem
nsmul_nonneg_iff
{M : Type u_3}
[AddMonoid M]
[LinearOrder M]
[CovariantClass M M (fun (x x_1 : M) => x + x_1) fun (x x_1 : M) => x ≤ x_1]
{x : M}
{n : ℕ}
(hn : n ≠ 0)
:
theorem
one_le_pow_iff
{M : Type u_3}
[Monoid M]
[LinearOrder M]
[CovariantClass M M (fun (x x_1 : M) => x * x_1) fun (x x_1 : M) => x ≤ x_1]
{x : M}
{n : ℕ}
(hn : n ≠ 0)
:
theorem
nsmul_nonpos_iff
{M : Type u_3}
[AddMonoid M]
[LinearOrder M]
[CovariantClass M M (fun (x x_1 : M) => x + x_1) fun (x x_1 : M) => x ≤ x_1]
{x : M}
{n : ℕ}
(hn : n ≠ 0)
:
theorem
pow_le_one_iff
{M : Type u_3}
[Monoid M]
[LinearOrder M]
[CovariantClass M M (fun (x x_1 : M) => x * x_1) fun (x x_1 : M) => x ≤ x_1]
{x : M}
{n : ℕ}
(hn : n ≠ 0)
:
theorem
nsmul_pos_iff
{M : Type u_3}
[AddMonoid M]
[LinearOrder M]
[CovariantClass M M (fun (x x_1 : M) => x + x_1) fun (x x_1 : M) => x ≤ x_1]
{x : M}
{n : ℕ}
(hn : n ≠ 0)
:
theorem
one_lt_pow_iff
{M : Type u_3}
[Monoid M]
[LinearOrder M]
[CovariantClass M M (fun (x x_1 : M) => x * x_1) fun (x x_1 : M) => x ≤ x_1]
{x : M}
{n : ℕ}
(hn : n ≠ 0)
:
theorem
nsmul_neg_iff
{M : Type u_3}
[AddMonoid M]
[LinearOrder M]
[CovariantClass M M (fun (x x_1 : M) => x + x_1) fun (x x_1 : M) => x ≤ x_1]
{x : M}
{n : ℕ}
(hn : n ≠ 0)
:
theorem
pow_lt_one_iff
{M : Type u_3}
[Monoid M]
[LinearOrder M]
[CovariantClass M M (fun (x x_1 : M) => x * x_1) fun (x x_1 : M) => x ≤ x_1]
{x : M}
{n : ℕ}
(hn : n ≠ 0)
:
theorem
nsmul_eq_zero_iff
{M : Type u_3}
[AddMonoid M]
[LinearOrder M]
[CovariantClass M M (fun (x x_1 : M) => x + x_1) fun (x x_1 : M) => x ≤ x_1]
{x : M}
{n : ℕ}
(hn : n ≠ 0)
:
theorem
pow_eq_one_iff
{M : Type u_3}
[Monoid M]
[LinearOrder M]
[CovariantClass M M (fun (x x_1 : M) => x * x_1) fun (x x_1 : M) => x ≤ x_1]
{x : M}
{n : ℕ}
(hn : n ≠ 0)
:
theorem
nsmul_le_nsmul_iff
{M : Type u_3}
[AddMonoid M]
[LinearOrder M]
[CovariantClass M M (fun (x x_1 : M) => x + x_1) fun (x x_1 : M) => x ≤ x_1]
[CovariantClass M M (fun (x x_1 : M) => x + x_1) fun (x x_1 : M) => x < x_1]
{a : M}
{m : ℕ}
{n : ℕ}
(ha : 0 < a)
:
theorem
pow_le_pow_iff'
{M : Type u_3}
[Monoid M]
[LinearOrder M]
[CovariantClass M M (fun (x x_1 : M) => x * x_1) fun (x x_1 : M) => x ≤ x_1]
[CovariantClass M M (fun (x x_1 : M) => x * x_1) fun (x x_1 : M) => x < x_1]
{a : M}
{m : ℕ}
{n : ℕ}
(ha : 1 < a)
:
theorem
nsmul_lt_nsmul_iff
{M : Type u_3}
[AddMonoid M]
[LinearOrder M]
[CovariantClass M M (fun (x x_1 : M) => x + x_1) fun (x x_1 : M) => x ≤ x_1]
[CovariantClass M M (fun (x x_1 : M) => x + x_1) fun (x x_1 : M) => x < x_1]
{a : M}
{m : ℕ}
{n : ℕ}
(ha : 0 < a)
:
theorem
pow_lt_pow_iff'
{M : Type u_3}
[Monoid M]
[LinearOrder M]
[CovariantClass M M (fun (x x_1 : M) => x * x_1) fun (x x_1 : M) => x ≤ x_1]
[CovariantClass M M (fun (x x_1 : M) => x * x_1) fun (x x_1 : M) => x < x_1]
{a : M}
{m : ℕ}
{n : ℕ}
(ha : 1 < a)
:
theorem
lt_of_nsmul_lt_nsmul
{M : Type u_3}
[AddMonoid M]
[LinearOrder M]
[CovariantClass M M (fun (x x_1 : M) => x + x_1) fun (x x_1 : M) => x ≤ x_1]
[CovariantClass M M (Function.swap fun (x x_1 : M) => x + x_1) fun (x x_1 : M) => x ≤ x_1]
{a : M}
{b : M}
(n : ℕ)
:
theorem
lt_of_pow_lt_pow'
{M : Type u_3}
[Monoid M]
[LinearOrder M]
[CovariantClass M M (fun (x x_1 : M) => x * x_1) fun (x x_1 : M) => x ≤ x_1]
[CovariantClass M M (Function.swap fun (x x_1 : M) => x * x_1) fun (x x_1 : M) => x ≤ x_1]
{a : M}
{b : M}
(n : ℕ)
:
theorem
min_lt_of_add_lt_two_nsmul
{M : Type u_3}
[AddMonoid M]
[LinearOrder M]
[CovariantClass M M (fun (x x_1 : M) => x + x_1) fun (x x_1 : M) => x ≤ x_1]
[CovariantClass M M (Function.swap fun (x x_1 : M) => x + x_1) fun (x x_1 : M) => x ≤ x_1]
{a : M}
{b : M}
{c : M}
(h : a + b < 2 • c)
:
theorem
min_lt_of_mul_lt_sq
{M : Type u_3}
[Monoid M]
[LinearOrder M]
[CovariantClass M M (fun (x x_1 : M) => x * x_1) fun (x x_1 : M) => x ≤ x_1]
[CovariantClass M M (Function.swap fun (x x_1 : M) => x * x_1) fun (x x_1 : M) => 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_3}
[AddMonoid M]
[LinearOrder M]
[CovariantClass M M (fun (x x_1 : M) => x + x_1) fun (x x_1 : M) => x ≤ x_1]
[CovariantClass M M (Function.swap fun (x x_1 : M) => x + x_1) fun (x x_1 : M) => x ≤ x_1]
{a : M}
{b : M}
{c : M}
(h : 2 • a < b + c)
:
theorem
lt_max_of_sq_lt_mul
{M : Type u_3}
[Monoid M]
[LinearOrder M]
[CovariantClass M M (fun (x x_1 : M) => x * x_1) fun (x x_1 : M) => x ≤ x_1]
[CovariantClass M M (Function.swap fun (x x_1 : M) => x * x_1) fun (x x_1 : M) => x ≤ x_1]
{a : M}
{b : M}
{c : M}
(h : a ^ 2 < b * c)
:
theorem
le_of_nsmul_le_nsmul
{M : Type u_3}
[AddMonoid M]
[LinearOrder M]
[CovariantClass M M (fun (x x_1 : M) => x + x_1) fun (x x_1 : M) => x < x_1]
[CovariantClass M M (Function.swap fun (x x_1 : M) => x + x_1) fun (x x_1 : M) => x < x_1]
{a : M}
{b : M}
{n : ℕ}
(hn : n ≠ 0)
:
theorem
le_of_pow_le_pow'
{M : Type u_3}
[Monoid M]
[LinearOrder M]
[CovariantClass M M (fun (x x_1 : M) => x * x_1) fun (x x_1 : M) => x < x_1]
[CovariantClass M M (Function.swap fun (x x_1 : M) => x * x_1) fun (x x_1 : M) => x < x_1]
{a : M}
{b : M}
{n : ℕ}
(hn : n ≠ 0)
:
theorem
min_le_of_add_le_two_nsmul
{M : Type u_3}
[AddMonoid M]
[LinearOrder M]
[CovariantClass M M (fun (x x_1 : M) => x + x_1) fun (x x_1 : M) => x < x_1]
[CovariantClass M M (Function.swap fun (x x_1 : M) => x + x_1) fun (x x_1 : M) => x < x_1]
{a : M}
{b : M}
{c : M}
(h : a + b ≤ 2 • c)
:
theorem
min_le_of_mul_le_sq
{M : Type u_3}
[Monoid M]
[LinearOrder M]
[CovariantClass M M (fun (x x_1 : M) => x * x_1) fun (x x_1 : M) => x < x_1]
[CovariantClass M M (Function.swap fun (x x_1 : M) => x * x_1) fun (x x_1 : M) => 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_3}
[AddMonoid M]
[LinearOrder M]
[CovariantClass M M (fun (x x_1 : M) => x + x_1) fun (x x_1 : M) => x < x_1]
[CovariantClass M M (Function.swap fun (x x_1 : M) => x + x_1) fun (x x_1 : M) => x < x_1]
{a : M}
{b : M}
{c : M}
(h : 2 • a ≤ b + c)
:
theorem
le_max_of_sq_le_mul
{M : Type u_3}
[Monoid M]
[LinearOrder M]
[CovariantClass M M (fun (x x_1 : M) => x * x_1) fun (x x_1 : M) => x < x_1]
[CovariantClass M M (Function.swap fun (x x_1 : M) => x * x_1) fun (x x_1 : M) => x < x_1]
{a : M}
{b : M}
{c : M}
(h : a ^ 2 ≤ b * c)
:
theorem
Left.nsmul_neg_iff
{M : Type u_3}
[AddMonoid M]
[LinearOrder M]
[CovariantClass M M (fun (x x_1 : M) => x + x_1) fun (x x_1 : M) => x < x_1]
{n : ℕ}
{x : M}
(hn : 0 < n)
:
theorem
Left.pow_lt_one_iff'
{M : Type u_3}
[Monoid M]
[LinearOrder M]
[CovariantClass M M (fun (x x_1 : M) => x * x_1) fun (x x_1 : M) => x < x_1]
{n : ℕ}
{x : M}
(hn : 0 < n)
:
theorem
Left.pow_lt_one_iff
{M : Type u_3}
[Monoid M]
[LinearOrder M]
[CovariantClass M M (fun (x x_1 : M) => x * x_1) fun (x x_1 : M) => x < x_1]
{n : ℕ}
{x : M}
(hn : 0 < n)
:
theorem
Right.nsmul_neg_iff
{M : Type u_3}
[AddMonoid M]
[LinearOrder M]
[CovariantClass M M (Function.swap fun (x x_1 : M) => x + x_1) fun (x x_1 : M) => x < x_1]
{n : ℕ}
{x : M}
(hn : 0 < n)
:
theorem
Right.pow_lt_one_iff
{M : Type u_3}
[Monoid M]
[LinearOrder M]
[CovariantClass M M (Function.swap fun (x x_1 : M) => x * x_1) fun (x x_1 : M) => x < x_1]
{n : ℕ}
{x : M}
(hn : 0 < n)
:
theorem
zsmul_nonneg
{G : Type u_2}
[SubNegMonoid G]
[Preorder G]
[CovariantClass G G (fun (x x_1 : G) => x + x_1) fun (x x_1 : G) => x ≤ x_1]
{x : G}
(H : 0 ≤ x)
{n : ℤ}
(hn : 0 ≤ n)
:
theorem
one_le_zpow
{G : Type u_2}
[DivInvMonoid G]
[Preorder G]
[CovariantClass G G (fun (x x_1 : G) => x * x_1) fun (x x_1 : G) => x ≤ x_1]
{x : G}
(H : 1 ≤ x)
{n : ℤ}
(hn : 0 ≤ n)
: