Lemmas about the interaction of power operations with order in terms of CovariantClass
#
@[deprecated Left.nsmul_nonneg]
theorem
Left.pow_nonneg
{M : Type u_3}
[AddMonoid M]
[Preorder M]
[CovariantClass M M (fun (x1 x2 : M) => x1 + x2) fun (x1 x2 : M) => x1 ≤ x2]
{a : M}
(ha : 0 ≤ a)
(n : ℕ)
:
Alias of Left.nsmul_nonneg
.
@[deprecated Left.nsmul_nonpos]
theorem
Left.pow_nonpos
{M : Type u_3}
[AddMonoid M]
[Preorder M]
[CovariantClass M M (fun (x1 x2 : M) => x1 + x2) fun (x1 x2 : M) => x1 ≤ x2]
{a : M}
(ha : a ≤ 0)
(n : ℕ)
:
Alias of Left.nsmul_nonpos
.
@[deprecated Left.nsmul_neg]
theorem
Left.pow_neg
{M : Type u_3}
[AddMonoid M]
[Preorder M]
[CovariantClass M M (fun (x1 x2 : M) => x1 + x2) fun (x1 x2 : M) => x1 ≤ x2]
{a : M}
{n : ℕ}
(h : a < 0)
(hn : n ≠ 0)
:
Alias of Left.nsmul_neg
.
theorem
one_le_pow_of_one_le'
{M : Type u_3}
[Monoid M]
[Preorder M]
[CovariantClass M M (fun (x1 x2 : M) => x1 * x2) fun (x1 x2 : M) => x1 ≤ x2]
{a : M}
(ha : 1 ≤ a)
(n : ℕ)
:
Alias of Left.one_le_pow_of_le
.
theorem
pow_le_one'
{M : Type u_3}
[Monoid M]
[Preorder M]
[CovariantClass M M (fun (x1 x2 : M) => x1 * x2) fun (x1 x2 : M) => x1 ≤ x2]
{a : M}
(ha : a ≤ 1)
(n : ℕ)
:
Alias of Left.pow_le_one_of_le
.
theorem
pow_lt_one'
{M : Type u_3}
[Monoid M]
[Preorder M]
[CovariantClass M M (fun (x1 x2 : M) => x1 * x2) fun (x1 x2 : M) => x1 ≤ x2]
{a : M}
{n : ℕ}
(h : a < 1)
(hn : n ≠ 0)
:
Alias of Left.pow_lt_one_of_lt
.
theorem
nsmul_left_strictMono
{M : Type u_3}
[AddMonoid M]
[Preorder M]
[CovariantClass M M (fun (x1 x2 : M) => x1 + x2) fun (x1 x2 : M) => x1 < x2]
{a : M}
(ha : 0 < a)
:
StrictMono fun (x : ℕ) => x • a
theorem
pow_right_strictMono'
{M : Type u_3}
[Monoid M]
[Preorder M]
[CovariantClass M M (fun (x1 x2 : M) => x1 * x2) fun (x1 x2 : M) => x1 < x2]
{a : M}
(ha : 1 < a)
:
StrictMono fun (x : ℕ) => a ^ x
theorem
Right.nsmul_nonneg
{M : Type u_3}
[AddMonoid M]
[Preorder M]
[CovariantClass M M (Function.swap fun (x1 x2 : M) => x1 + x2) fun (x1 x2 : M) => x1 ≤ x2]
{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 (x1 x2 : M) => x1 * x2) fun (x1 x2 : M) => x1 ≤ x2]
{x : M}
(hx : 1 ≤ x)
{n : ℕ}
:
@[deprecated Right.nsmul_nonneg]
theorem
Right.pow_nonneg
{M : Type u_3}
[AddMonoid M]
[Preorder M]
[CovariantClass M M (Function.swap fun (x1 x2 : M) => x1 + x2) fun (x1 x2 : M) => x1 ≤ x2]
{x : M}
(hx : 0 ≤ x)
{n : ℕ}
:
Alias of Right.nsmul_nonneg
.
theorem
Right.nsmul_nonpos
{M : Type u_3}
[AddMonoid M]
[Preorder M]
[CovariantClass M M (Function.swap fun (x1 x2 : M) => x1 + x2) fun (x1 x2 : M) => x1 ≤ x2]
{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 (x1 x2 : M) => x1 * x2) fun (x1 x2 : M) => x1 ≤ x2]
{x : M}
(hx : x ≤ 1)
{n : ℕ}
:
@[deprecated Right.nsmul_nonpos]
theorem
Right.pow_nonpos
{M : Type u_3}
[AddMonoid M]
[Preorder M]
[CovariantClass M M (Function.swap fun (x1 x2 : M) => x1 + x2) fun (x1 x2 : M) => x1 ≤ x2]
{x : M}
(hx : x ≤ 0)
{n : ℕ}
:
Alias of Right.nsmul_nonpos
.
theorem
Right.nsmul_neg
{M : Type u_3}
[AddMonoid M]
[Preorder M]
[CovariantClass M M (Function.swap fun (x1 x2 : M) => x1 + x2) fun (x1 x2 : M) => x1 ≤ x2]
{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 (x1 x2 : M) => x1 * x2) fun (x1 x2 : M) => x1 ≤ x2]
{n : ℕ}
{x : M}
(hn : 0 < n)
(h : x < 1)
:
@[deprecated Right.nsmul_neg]
theorem
Right.pow_neg
{M : Type u_3}
[AddMonoid M]
[Preorder M]
[CovariantClass M M (Function.swap fun (x1 x2 : M) => x1 + x2) fun (x1 x2 : M) => x1 ≤ x2]
{n : ℕ}
{x : M}
(hn : 0 < n)
(h : x < 0)
:
Alias of Right.nsmul_neg
.
theorem
StrictMono.const_nsmul
{β : Type u_1}
{M : Type u_3}
[AddMonoid M]
[Preorder M]
[Preorder β]
[CovariantClass M M (fun (x1 x2 : M) => x1 + x2) fun (x1 x2 : M) => x1 < x2]
[CovariantClass M M (Function.swap fun (x1 x2 : M) => x1 + x2) fun (x1 x2 : M) => x1 < x2]
{f : β → M}
(hf : StrictMono f)
{n : ℕ}
:
n ≠ 0 → StrictMono fun (x : β) => n • f x
theorem
StrictMono.pow_const
{β : Type u_1}
{M : Type u_3}
[Monoid M]
[Preorder M]
[Preorder β]
[CovariantClass M M (fun (x1 x2 : M) => x1 * x2) fun (x1 x2 : M) => x1 < x2]
[CovariantClass M M (Function.swap fun (x1 x2 : M) => x1 * x2) fun (x1 x2 : M) => x1 < x2]
{f : β → M}
(hf : StrictMono f)
{n : ℕ}
:
n ≠ 0 → StrictMono fun (x : β) => f x ^ n
theorem
nsmul_right_strictMono
{M : Type u_3}
[AddMonoid M]
[Preorder M]
[CovariantClass M M (fun (x1 x2 : M) => x1 + x2) fun (x1 x2 : M) => x1 < x2]
[CovariantClass M M (Function.swap fun (x1 x2 : M) => x1 + x2) fun (x1 x2 : M) => x1 < x2]
{n : ℕ}
(hn : n ≠ 0)
:
StrictMono fun (x : M) => n • x
theorem
pow_left_strictMono
{M : Type u_3}
[Monoid M]
[Preorder M]
[CovariantClass M M (fun (x1 x2 : M) => x1 * x2) fun (x1 x2 : M) => x1 < x2]
[CovariantClass M M (Function.swap fun (x1 x2 : M) => x1 * x2) fun (x1 x2 : M) => x1 < x2]
{n : ℕ}
(hn : n ≠ 0)
:
StrictMono fun (x : M) => x ^ n
See also pow_left_strictMonoOn
.
theorem
nsmul_lt_nsmul_right
{M : Type u_3}
[AddMonoid M]
[Preorder M]
[CovariantClass M M (fun (x1 x2 : M) => x1 + x2) fun (x1 x2 : M) => x1 < x2]
[CovariantClass M M (Function.swap fun (x1 x2 : M) => x1 + x2) fun (x1 x2 : M) => x1 < x2]
{n : ℕ}
(hn : n ≠ 0)
{a : M}
{b : M}
(hab : a < b)
:
theorem
pow_lt_pow_left'
{M : Type u_3}
[Monoid M]
[Preorder M]
[CovariantClass M M (fun (x1 x2 : M) => x1 * x2) fun (x1 x2 : M) => x1 < x2]
[CovariantClass M M (Function.swap fun (x1 x2 : M) => x1 * x2) fun (x1 x2 : M) => x1 < x2]
{n : ℕ}
(hn : n ≠ 0)
{a : M}
{b : M}
(hab : a < b)
:
theorem
nsmul_le_nsmul_right
{M : Type u_3}
[AddMonoid M]
[Preorder M]
[CovariantClass M M (fun (x1 x2 : M) => x1 + x2) fun (x1 x2 : M) => x1 ≤ x2]
[CovariantClass M M (Function.swap fun (x1 x2 : M) => x1 + x2) fun (x1 x2 : M) => x1 ≤ x2]
{a : M}
{b : M}
(hab : a ≤ b)
(i : ℕ)
:
theorem
pow_le_pow_left'
{M : Type u_3}
[Monoid M]
[Preorder M]
[CovariantClass M M (fun (x1 x2 : M) => x1 * x2) fun (x1 x2 : M) => x1 ≤ x2]
[CovariantClass M M (Function.swap fun (x1 x2 : M) => x1 * x2) fun (x1 x2 : M) => x1 ≤ x2]
{a : M}
{b : M}
(hab : a ≤ b)
(i : ℕ)
:
theorem
Monotone.const_nsmul
{β : Type u_1}
{M : Type u_3}
[AddMonoid M]
[Preorder M]
[Preorder β]
[CovariantClass M M (fun (x1 x2 : M) => x1 + x2) fun (x1 x2 : M) => x1 ≤ x2]
[CovariantClass M M (Function.swap fun (x1 x2 : M) => x1 + x2) fun (x1 x2 : M) => x1 ≤ x2]
{f : β → M}
(hf : Monotone f)
(n : ℕ)
:
theorem
Monotone.pow_const
{β : Type u_1}
{M : Type u_3}
[Monoid M]
[Preorder M]
[Preorder β]
[CovariantClass M M (fun (x1 x2 : M) => x1 * x2) fun (x1 x2 : M) => x1 ≤ x2]
[CovariantClass M M (Function.swap fun (x1 x2 : M) => x1 * x2) fun (x1 x2 : M) => x1 ≤ x2]
{f : β → M}
(hf : Monotone f)
(n : ℕ)
:
theorem
nsmul_right_mono
{M : Type u_3}
[AddMonoid M]
[Preorder M]
[CovariantClass M M (fun (x1 x2 : M) => x1 + x2) fun (x1 x2 : M) => x1 ≤ x2]
[CovariantClass M M (Function.swap fun (x1 x2 : M) => x1 + x2) fun (x1 x2 : M) => x1 ≤ x2]
(n : ℕ)
:
theorem
pow_left_mono
{M : Type u_3}
[Monoid M]
[Preorder M]
[CovariantClass M M (fun (x1 x2 : M) => x1 * x2) fun (x1 x2 : M) => x1 ≤ x2]
[CovariantClass M M (Function.swap fun (x1 x2 : M) => x1 * x2) fun (x1 x2 : M) => x1 ≤ x2]
(n : ℕ)
:
theorem
nsmul_nonneg_iff
{M : Type u_3}
[AddMonoid M]
[LinearOrder M]
[CovariantClass M M (fun (x1 x2 : M) => x1 + x2) fun (x1 x2 : M) => x1 ≤ x2]
{x : M}
{n : ℕ}
(hn : n ≠ 0)
:
theorem
one_le_pow_iff
{M : Type u_3}
[Monoid M]
[LinearOrder M]
[CovariantClass M M (fun (x1 x2 : M) => x1 * x2) fun (x1 x2 : M) => x1 ≤ x2]
{x : M}
{n : ℕ}
(hn : n ≠ 0)
:
theorem
nsmul_nonpos_iff
{M : Type u_3}
[AddMonoid M]
[LinearOrder M]
[CovariantClass M M (fun (x1 x2 : M) => x1 + x2) fun (x1 x2 : M) => x1 ≤ x2]
{x : M}
{n : ℕ}
(hn : n ≠ 0)
:
theorem
pow_le_one_iff
{M : Type u_3}
[Monoid M]
[LinearOrder M]
[CovariantClass M M (fun (x1 x2 : M) => x1 * x2) fun (x1 x2 : M) => x1 ≤ x2]
{x : M}
{n : ℕ}
(hn : n ≠ 0)
:
theorem
nsmul_pos_iff
{M : Type u_3}
[AddMonoid M]
[LinearOrder M]
[CovariantClass M M (fun (x1 x2 : M) => x1 + x2) fun (x1 x2 : M) => x1 ≤ x2]
{x : M}
{n : ℕ}
(hn : n ≠ 0)
:
theorem
one_lt_pow_iff
{M : Type u_3}
[Monoid M]
[LinearOrder M]
[CovariantClass M M (fun (x1 x2 : M) => x1 * x2) fun (x1 x2 : M) => x1 ≤ x2]
{x : M}
{n : ℕ}
(hn : n ≠ 0)
:
theorem
nsmul_neg_iff
{M : Type u_3}
[AddMonoid M]
[LinearOrder M]
[CovariantClass M M (fun (x1 x2 : M) => x1 + x2) fun (x1 x2 : M) => x1 ≤ x2]
{x : M}
{n : ℕ}
(hn : n ≠ 0)
:
theorem
pow_lt_one_iff
{M : Type u_3}
[Monoid M]
[LinearOrder M]
[CovariantClass M M (fun (x1 x2 : M) => x1 * x2) fun (x1 x2 : M) => x1 ≤ x2]
{x : M}
{n : ℕ}
(hn : n ≠ 0)
:
theorem
nsmul_eq_zero_iff
{M : Type u_3}
[AddMonoid M]
[LinearOrder M]
[CovariantClass M M (fun (x1 x2 : M) => x1 + x2) fun (x1 x2 : M) => x1 ≤ x2]
{x : M}
{n : ℕ}
(hn : n ≠ 0)
:
theorem
pow_eq_one_iff
{M : Type u_3}
[Monoid M]
[LinearOrder M]
[CovariantClass M M (fun (x1 x2 : M) => x1 * x2) fun (x1 x2 : M) => x1 ≤ x2]
{x : M}
{n : ℕ}
(hn : n ≠ 0)
:
theorem
lt_of_nsmul_lt_nsmul_right
{M : Type u_3}
[AddMonoid M]
[LinearOrder M]
[CovariantClass M M (fun (x1 x2 : M) => x1 + x2) fun (x1 x2 : M) => x1 ≤ x2]
[CovariantClass M M (Function.swap fun (x1 x2 : M) => x1 + x2) fun (x1 x2 : M) => x1 ≤ x2]
{a : M}
{b : M}
(n : ℕ)
:
theorem
lt_of_pow_lt_pow_left'
{M : Type u_3}
[Monoid M]
[LinearOrder M]
[CovariantClass M M (fun (x1 x2 : M) => x1 * x2) fun (x1 x2 : M) => x1 ≤ x2]
[CovariantClass M M (Function.swap fun (x1 x2 : M) => x1 * x2) fun (x1 x2 : M) => x1 ≤ x2]
{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 (x1 x2 : M) => x1 + x2) fun (x1 x2 : M) => x1 ≤ x2]
[CovariantClass M M (Function.swap fun (x1 x2 : M) => x1 + x2) fun (x1 x2 : M) => x1 ≤ x2]
{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 (x1 x2 : M) => x1 * x2) fun (x1 x2 : M) => x1 ≤ x2]
[CovariantClass M M (Function.swap fun (x1 x2 : M) => x1 * x2) fun (x1 x2 : M) => x1 ≤ x2]
{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 (x1 x2 : M) => x1 + x2) fun (x1 x2 : M) => x1 ≤ x2]
[CovariantClass M M (Function.swap fun (x1 x2 : M) => x1 + x2) fun (x1 x2 : M) => x1 ≤ x2]
{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 (x1 x2 : M) => x1 * x2) fun (x1 x2 : M) => x1 ≤ x2]
[CovariantClass M M (Function.swap fun (x1 x2 : M) => x1 * x2) fun (x1 x2 : M) => x1 ≤ x2]
{a : M}
{b : M}
{c : M}
(h : a ^ 2 < b * c)
:
theorem
le_of_nsmul_le_nsmul_right
{M : Type u_3}
[AddMonoid M]
[LinearOrder M]
[CovariantClass M M (fun (x1 x2 : M) => x1 + x2) fun (x1 x2 : M) => x1 < x2]
[CovariantClass M M (Function.swap fun (x1 x2 : M) => x1 + x2) fun (x1 x2 : M) => x1 < x2]
{a : M}
{b : M}
{n : ℕ}
(hn : n ≠ 0)
:
theorem
le_of_pow_le_pow_left'
{M : Type u_3}
[Monoid M]
[LinearOrder M]
[CovariantClass M M (fun (x1 x2 : M) => x1 * x2) fun (x1 x2 : M) => x1 < x2]
[CovariantClass M M (Function.swap fun (x1 x2 : M) => x1 * x2) fun (x1 x2 : M) => x1 < x2]
{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 (x1 x2 : M) => x1 + x2) fun (x1 x2 : M) => x1 < x2]
[CovariantClass M M (Function.swap fun (x1 x2 : M) => x1 + x2) fun (x1 x2 : M) => x1 < x2]
{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 (x1 x2 : M) => x1 * x2) fun (x1 x2 : M) => x1 < x2]
[CovariantClass M M (Function.swap fun (x1 x2 : M) => x1 * x2) fun (x1 x2 : M) => x1 < x2]
{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 (x1 x2 : M) => x1 + x2) fun (x1 x2 : M) => x1 < x2]
[CovariantClass M M (Function.swap fun (x1 x2 : M) => x1 + x2) fun (x1 x2 : M) => x1 < x2]
{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 (x1 x2 : M) => x1 * x2) fun (x1 x2 : M) => x1 < x2]
[CovariantClass M M (Function.swap fun (x1 x2 : M) => x1 * x2) fun (x1 x2 : M) => x1 < x2]
{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 (x1 x2 : M) => x1 + x2) fun (x1 x2 : M) => x1 < x2]
{n : ℕ}
{x : M}
(hn : 0 < n)
:
theorem
Left.pow_lt_one_iff'
{M : Type u_3}
[Monoid M]
[LinearOrder M]
[CovariantClass M M (fun (x1 x2 : M) => x1 * x2) fun (x1 x2 : M) => x1 < x2]
{n : ℕ}
{x : M}
(hn : 0 < n)
:
theorem
Left.pow_lt_one_iff
{M : Type u_3}
[Monoid M]
[LinearOrder M]
[CovariantClass M M (fun (x1 x2 : M) => x1 * x2) fun (x1 x2 : M) => x1 < x2]
{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 (x1 x2 : M) => x1 + x2) fun (x1 x2 : M) => x1 < x2]
{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 (x1 x2 : M) => x1 * x2) fun (x1 x2 : M) => x1 < x2]
{n : ℕ}
{x : M}
(hn : 0 < n)
:
theorem
zsmul_nonneg
{G : Type u_2}
[SubNegMonoid G]
[Preorder G]
[CovariantClass G G (fun (x1 x2 : G) => x1 + x2) fun (x1 x2 : G) => x1 ≤ x2]
{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 (x1 x2 : G) => x1 * x2) fun (x1 x2 : G) => x1 ≤ x2]
{x : G}
(H : 1 ≤ x)
{n : ℤ}
(hn : 0 ≤ n)
: