Characteristic of semirings #
theorem
Commute.add_pow_prime_pow_eq'
{R : Type u_1}
[Semiring R]
{p : ℕ}
(hp : Nat.Prime p)
{x y : R}
(h : Commute x y)
(n : ℕ)
:
(x + y) ^ p ^ n = x ^ p ^ n + y ^ p ^ n + ↑p * ∑ k ∈ Finset.Ioo 0 (p ^ n), x ^ k * y ^ (p ^ n - k) * ↑((p ^ n).choose k / p)
theorem
Commute.add_pow_prime_pow_eq
{R : Type u_1}
[Semiring R]
{p : ℕ}
(hp : Nat.Prime p)
{x y : R}
(h : Commute x y)
(n : ℕ)
:
(x + y) ^ p ^ n = x ^ p ^ n + y ^ p ^ n + ↑p * x * y * ∑ k ∈ Finset.Ioo 0 (p ^ n), x ^ (k - 1) * y ^ (p ^ n - k - 1) * ↑((p ^ n).choose k / p)
theorem
Commute.add_pow_prime_eq'
{R : Type u_1}
[Semiring R]
{p : ℕ}
(hp : Nat.Prime p)
{x y : R}
(h : Commute x y)
:
(x + y) ^ p = x ^ p + y ^ p + ↑p * ∑ k ∈ Finset.Ioo 0 p, x ^ k * y ^ (p - k) * ↑(p.choose k / p)
theorem
Commute.add_pow_prime_eq
{R : Type u_1}
[Semiring R]
{p : ℕ}
(hp : Nat.Prime p)
{x y : R}
(h : Commute x y)
:
(x + y) ^ p = x ^ p + y ^ p + ↑p * x * y * ∑ k ∈ Finset.Ioo 0 p, x ^ (k - 1) * y ^ (p - k - 1) * ↑(p.choose k / p)
theorem
Commute.exists_add_pow_prime_pow_eq
{R : Type u_1}
[Semiring R]
{p : ℕ}
(hp : Nat.Prime p)
{x y : R}
(h : Commute x y)
(n : ℕ)
:
∃ (r : R), (x + y) ^ p ^ n = x ^ p ^ n + y ^ p ^ n + ↑p * x * y * r
theorem
Commute.exists_add_pow_prime_eq
{R : Type u_1}
[Semiring R]
{p : ℕ}
(hp : Nat.Prime p)
{x y : R}
(h : Commute x y)
:
∃ (r : R), (x + y) ^ p = x ^ p + y ^ p + ↑p * x * y * r
theorem
add_pow_prime_pow_eq'
{R : Type u_1}
[CommSemiring R]
{p : ℕ}
(hp : Nat.Prime p)
(x y : R)
(n : ℕ)
:
(x + y) ^ p ^ n = x ^ p ^ n + y ^ p ^ n + ↑p * ∑ k ∈ Finset.Ioo 0 (p ^ n), x ^ k * y ^ (p ^ n - k) * ↑((p ^ n).choose k / p)
theorem
add_pow_prime_pow_eq
{R : Type u_1}
[CommSemiring R]
{p : ℕ}
(hp : Nat.Prime p)
(x y : R)
(n : ℕ)
:
(x + y) ^ p ^ n = x ^ p ^ n + y ^ p ^ n + ↑p * x * y * ∑ k ∈ Finset.Ioo 0 (p ^ n), x ^ (k - 1) * y ^ (p ^ n - k - 1) * ↑((p ^ n).choose k / p)
theorem
add_pow_prime_eq'
{R : Type u_1}
[CommSemiring R]
{p : ℕ}
(hp : Nat.Prime p)
(x y : R)
:
(x + y) ^ p = x ^ p + y ^ p + ↑p * ∑ k ∈ Finset.Ioo 0 p, x ^ k * y ^ (p - k) * ↑(p.choose k / p)
theorem
add_pow_prime_eq
{R : Type u_1}
[CommSemiring R]
{p : ℕ}
(hp : Nat.Prime p)
(x y : R)
:
(x + y) ^ p = x ^ p + y ^ p + ↑p * x * y * ∑ k ∈ Finset.Ioo 0 p, x ^ (k - 1) * y ^ (p - k - 1) * ↑(p.choose k / p)
theorem
exists_add_pow_prime_pow_eq
{R : Type u_1}
[CommSemiring R]
{p : ℕ}
(hp : Nat.Prime p)
(x y : R)
(n : ℕ)
:
∃ (r : R), (x + y) ^ p ^ n = x ^ p ^ n + y ^ p ^ n + ↑p * x * y * r
theorem
exists_add_pow_prime_eq
{R : Type u_1}
[CommSemiring R]
{p : ℕ}
(hp : Nat.Prime p)
(x y : R)
:
∃ (r : R), (x + y) ^ p = x ^ p + y ^ p + ↑p * x * y * r
theorem
add_pow_expChar_of_commute
{R : Type u_1}
[Semiring R]
{x y : R}
(p : ℕ)
[hR : ExpChar R p]
(h : Commute x y)
:
(x + y) ^ p = x ^ p + y ^ p
theorem
add_pow_expChar_pow_of_commute
{R : Type u_1}
[Semiring R]
{x y : R}
(p n : ℕ)
[hR : ExpChar R p]
(h : Commute x y)
:
(x + y) ^ p ^ n = x ^ p ^ n + y ^ p ^ n
theorem
add_pow_eq_mul_pow_add_pow_div_expChar_of_commute
{R : Type u_1}
[Semiring R]
{x y : R}
(p n : ℕ)
[hR : ExpChar R p]
(h : Commute x y)
:
(x + y) ^ n = (x + y) ^ (n % p) * (x ^ p + y ^ p) ^ (n / p)
theorem
add_pow_expChar
{R : Type u_1}
[CommSemiring R]
(x y : R)
(p : ℕ)
[hR : ExpChar R p]
:
(x + y) ^ p = x ^ p + y ^ p
theorem
add_pow_expChar_pow
{R : Type u_1}
[CommSemiring R]
(x y : R)
(p n : ℕ)
[hR : ExpChar R p]
:
(x + y) ^ p ^ n = x ^ p ^ n + y ^ p ^ n
theorem
add_pow_eq_mul_pow_add_pow_div_expChar
{R : Type u_1}
[CommSemiring R]
(x y : R)
(p n : ℕ)
[hR : ExpChar R p]
:
(x + y) ^ n = (x + y) ^ (n % p) * (x ^ p + y ^ p) ^ (n / p)
theorem
add_pow_char
{R : Type u_1}
[CommSemiring R]
(x y : R)
(p : ℕ)
[hp : Fact (Nat.Prime p)]
[CharP R p]
:
(x + y) ^ p = x ^ p + y ^ p
theorem
add_pow_char_pow
{R : Type u_1}
[CommSemiring R]
(x y : R)
(p n : ℕ)
[hp : Fact (Nat.Prime p)]
[CharP R p]
:
(x + y) ^ p ^ n = x ^ p ^ n + y ^ p ^ n
theorem
add_pow_eq_mul_pow_add_pow_div_char
{R : Type u_1}
[CommSemiring R]
(x y : R)
(p n : ℕ)
[hp : Fact (Nat.Prime p)]
[CharP R p]
:
(x + y) ^ n = (x + y) ^ (n % p) * (x ^ p + y ^ p) ^ (n / p)
theorem
sub_pow_expChar_of_commute
{R : Type u_1}
[Ring R]
{x y : R}
(p : ℕ)
[hR : ExpChar R p]
(h : Commute x y)
:
(x - y) ^ p = x ^ p - y ^ p
theorem
sub_pow_expChar_pow_of_commute
{R : Type u_1}
[Ring R]
{x y : R}
(p n : ℕ)
[hR : ExpChar R p]
(h : Commute x y)
:
(x - y) ^ p ^ n = x ^ p ^ n - y ^ p ^ n
theorem
sub_pow_eq_mul_pow_sub_pow_div_expChar_of_commute
{R : Type u_1}
[Ring R]
{x y : R}
(p n : ℕ)
[hR : ExpChar R p]
(h : Commute x y)
:
(x - y) ^ n = (x - y) ^ (n % p) * (x ^ p - y ^ p) ^ (n / p)
theorem
neg_one_pow_expChar_pow
(R : Type u_1)
[Ring R]
(p n : ℕ)
[hR : ExpChar R p]
:
(-1) ^ p ^ n = -1
theorem
sub_pow_expChar
{R : Type u_1}
[CommRing R]
(x y : R)
{p : ℕ}
[hR : ExpChar R p]
:
(x - y) ^ p = x ^ p - y ^ p
theorem
sub_pow_expChar_pow
{R : Type u_1}
[CommRing R]
(x y : R)
(n : ℕ)
{p : ℕ}
[hR : ExpChar R p]
:
(x - y) ^ p ^ n = x ^ p ^ n - y ^ p ^ n
theorem
sub_pow_eq_mul_pow_sub_pow_div_expChar
{R : Type u_1}
[CommRing R]
(x y : R)
(n : ℕ)
{p : ℕ}
[hR : ExpChar R p]
:
(x - y) ^ n = (x - y) ^ (n % p) * (x ^ p - y ^ p) ^ (n / p)
theorem
Nat.Prime.dvd_add_pow_sub_pow_of_dvd
{R : Type u_1}
[CommRing R]
(x y : R)
{p : ℕ}
(hpri : Prime p)
{r : R}
(h₁ : r ∣ x ^ p)
(h₂ : r ∣ ↑p * x)
:
r ∣ (x + y) ^ p - y ^ p
theorem
CharP.char_ne_zero_of_finite
(R : Type u_1)
[NonAssocRing R]
(p : ℕ)
[CharP R p]
[Finite R]
:
p ≠ 0
The characteristic of a finite ring cannot be zero.
theorem
CharP.char_is_prime
(R : Type u_1)
[Ring R]
[NoZeroDivisors R]
[Nontrivial R]
[Finite R]
(p : ℕ)
[CharP R p]
:
The Frobenius map x ↦ x ^ p.
Instances For
The iterated Frobenius map x ↦ x ^ p ^ n.
Instances For
theorem
list_sum_pow_char
{R : Type u_3}
[CommSemiring R]
(p : ℕ)
[ExpChar R p]
(l : List R)
:
l.sum ^ p = (List.map (fun (x : R) => x ^ p) l).sum
theorem
multiset_sum_pow_char
{R : Type u_3}
[CommSemiring R]
(p : ℕ)
[ExpChar R p]
(s : Multiset R)
:
s.sum ^ p = (Multiset.map (fun (x : R) => x ^ p) s).sum
theorem
sum_pow_char
{R : Type u_3}
[CommSemiring R]
(p : ℕ)
[ExpChar R p]
{ι : Type u_4}
(s : Finset ι)
(f : ι → R)
:
(∑ i ∈ s, f i) ^ p = ∑ i ∈ s, f i ^ p
theorem
list_sum_pow_char_pow
{R : Type u_3}
[CommSemiring R]
(p n : ℕ)
[ExpChar R p]
(l : List R)
:
l.sum ^ p ^ n = (List.map (fun (x : R) => x ^ p ^ n) l).sum
theorem
multiset_sum_pow_char_pow
{R : Type u_3}
[CommSemiring R]
(p n : ℕ)
[ExpChar R p]
(s : Multiset R)
:
s.sum ^ p ^ n = (Multiset.map (fun (x : R) => x ^ p ^ n) s).sum
theorem
sum_pow_char_pow
{R : Type u_3}
[CommSemiring R]
(p n : ℕ)
[ExpChar R p]
{ι : Type u_4}
(s : Finset ι)
(f : ι → R)
:
(∑ i ∈ s, f i) ^ p ^ n = ∑ i ∈ s, f i ^ p ^ n