Documentation

Mathlib.Data.Nat.Pow

Nat.pow #

Results on the power operation on natural numbers.

pow #

theorem Nat.pow_le_pow_left {n : } {m : } (h : n m) (i : ) :
n ^ i m ^ i

Alias of Nat.pow_le_pow_of_le_left.

theorem Nat.pow_le_pow_right {n : } (hx : n > 0) {i : } {j : } :
i jn ^ i n ^ j

Alias of Nat.pow_le_pow_of_le_right.

theorem Nat.pow_lt_pow_left {n : } {x : } {y : } (h : x < y) (hn : n 0) :
x ^ n < y ^ n
theorem Nat.pow_lt_pow_succ {p : } (h : 1 < p) (n : ) :
p ^ n < p ^ (n + 1)
theorem Nat.le_self_pow {n : } (hn : n 0) (m : ) :
m m ^ n
theorem Nat.lt_pow_self {p : } (h : 1 < p) (n : ) :
n < p ^ n
theorem Nat.lt_two_pow (n : ) :
n < 2 ^ n
theorem Nat.one_le_pow (n : ) (m : ) (h : 0 < m) :
1 m ^ n
theorem Nat.one_le_pow' (n : ) (m : ) :
1 (m + 1) ^ n
theorem Nat.one_le_two_pow (n : ) :
1 2 ^ n
theorem Nat.one_lt_pow (n : ) (m : ) (h₀ : n 0) (h₁ : 1 < m) :
1 < m ^ n
theorem Nat.two_pow_pos (n : ) :
0 < 2 ^ n
theorem Nat.two_pow_succ (n : ) :
2 ^ (n + 1) = 2 ^ n + 2 ^ n
theorem Nat.one_lt_pow' (n : ) (m : ) :
1 < (m + 2) ^ (n + 1)
@[simp]
theorem Nat.one_lt_pow_iff {k : } {n : } (h : k 0) :
1 < n ^ k 1 < n
theorem Nat.one_lt_two_pow (n : ) (h₀ : n 0) :
1 < 2 ^ n
theorem Nat.one_lt_two_pow' (n : ) :
1 < 2 ^ (n + 1)
theorem Nat.pow_right_injective {x : } (hx : 2 x) :
Function.Injective fun (x_1 : ) => x ^ x_1
theorem Nat.pow_left_strictMono {n : } (hn : n 0) :
StrictMono fun (x : ) => x ^ n

See also pow_left_strictMonoOn.

theorem Nat.mul_lt_mul_pow_succ {n : } {a : } {q : } (a0 : 0 < a) (q1 : 1 < q) :
n * q < a * q ^ (n + 1)
theorem StrictMono.nat_pow {n : } (hn : n 0) {f : } (hf : StrictMono f) :
StrictMono fun (m : ) => f m ^ n
theorem Nat.pow_le_pow_iff_left {m : } {x : } {y : } (hm : m 0) :
x ^ m y ^ m x y
theorem Nat.pow_lt_pow_iff_left {m : } {x : } {y : } (hm : m 0) :
x ^ m < y ^ m x < y
theorem Nat.pow_left_injective {m : } (hm : m 0) :
Function.Injective fun (x : ) => x ^ m
theorem Nat.sq_sub_sq (a : ) (b : ) :
a ^ 2 - b ^ 2 = (a + b) * (a - b)
theorem Nat.pow_two_sub_pow_two (a : ) (b : ) :
a ^ 2 - b ^ 2 = (a + b) * (a - b)

Alias of Nat.sq_sub_sq.

pow and mod / dvd #

theorem Nat.pow_mod (a : ) (b : ) (n : ) :
a ^ b % n = (a % n) ^ b % n
theorem Nat.mod_pow_succ {b : } (w : ) (m : ) :
m % b ^ Nat.succ w = b * (m / b % b ^ w) + m % b
theorem Nat.pow_dvd_pow_iff_pow_le_pow {k : } {l : } {x : } :
0 < x(x ^ k x ^ l x ^ k x ^ l)
theorem Nat.pow_dvd_pow_iff_le_right {x : } {k : } {l : } (w : 1 < x) :
x ^ k x ^ l k l

If 1 < x, then x^k divides x^l if and only if k is at most l.

theorem Nat.pow_dvd_pow_iff_le_right' {b : } {k : } {l : } :
(b + 2) ^ k (b + 2) ^ l k l
theorem Nat.not_pos_pow_dvd {p : } {k : } :
1 < p1 < k¬p ^ k p
theorem Nat.pow_dvd_of_le_of_pow_dvd {p : } {m : } {n : } {k : } (hmn : m n) (hdiv : p ^ n k) :
p ^ m k
theorem Nat.dvd_of_pow_dvd {p : } {k : } {m : } (hk : 1 k) (hpk : p ^ k m) :
p m
theorem Nat.pow_div {x : } {m : } {n : } (h : n m) (hx : 0 < x) :
x ^ m / x ^ n = x ^ (m - n)
theorem Nat.lt_of_pow_dvd_right {p : } {i : } {n : } (hn : n 0) (hp : 2 p) (h : p ^ i n) :
i < n

Deprecated lemmas #

Those lemmas have been deprecated on 2023-12-23.

@[deprecated Nat.pow_lt_pow_left]
theorem Nat.pow_lt_pow_of_lt_left {n : } {x : } {y : } (h : x < y) (hn : n 0) :
x ^ n < y ^ n

Alias of Nat.pow_lt_pow_left.

@[deprecated Nat.pow_le_pow_iff_left]
theorem Nat.pow_le_iff_le_left {m : } {x : } {y : } (hm : m 0) :
x ^ m y ^ m x y

Alias of Nat.pow_le_pow_iff_left.

@[deprecated pow_lt_pow_right]
theorem Nat.pow_lt_pow_of_lt_right {R : Type u_3} [StrictOrderedSemiring R] {a : R} {n : } {m : } (h : 1 < a) (hmn : m < n) :
a ^ m < a ^ n

Alias of pow_lt_pow_right.

@[deprecated pow_right_strictMono]
theorem Nat.pow_right_strictMono {R : Type u_3} [StrictOrderedSemiring R] {a : R} (h : 1 < a) :
StrictMono fun (x : ) => a ^ x

Alias of pow_right_strictMono.


See also pow_right_strictMono'.

@[deprecated pow_le_pow_iff_right]
theorem Nat.pow_le_iff_le_right {R : Type u_3} [StrictOrderedSemiring R] {a : R} {n : } {m : } (h : 1 < a) :
a ^ n a ^ m n m

Alias of pow_le_pow_iff_right.

@[deprecated pow_lt_pow_iff_right]
theorem Nat.pow_lt_iff_lt_right {R : Type u_3} [StrictOrderedSemiring R] {a : R} {n : } {m : } (h : 1 < a) :
a ^ n < a ^ m n < m

Alias of pow_lt_pow_iff_right.