Identities between operations on the ring of Witt vectors #
In this file we derive common identities between the Frobenius and Verschiebung operators.
Main declarations #
frobenius_verschiebung: the composition of Frobenius and Verschiebung is multiplication bypverschiebung_mul_frobenius: the βprojection formulaβ:V(x * F y) = V x * yiterate_verschiebung_mul_coeff: an identity from [Haze09] 6.2
References #
[Hazewinkel, Witt Vectors][Haze09]
[Commelin and Lewis, Formalizing the Ring of Witt Vectors][CL21]
theorem
WittVector.frobenius_verschiebung
{p : β}
{R : Type u_1}
[hp : Fact (Nat.Prime p)]
[CommRing R]
(x : WittVector p R)
:
frobenius (verschiebung x) = x * βp
The composition of Frobenius and Verschiebung is multiplication by p.
theorem
WittVector.verschiebung_zmod
{p : β}
[hp : Fact (Nat.Prime p)]
(x : WittVector p (ZMod p))
:
verschiebung x = x * βp
Verschiebung is the same as multiplication by p on the ring of Witt vectors of ZMod p.
@[simp]
@[simp]
theorem
WittVector.p_nonzero
(p : β)
(R : Type u_1)
[hp : Fact (Nat.Prime p)]
[CommRing R]
[Nontrivial R]
[CharP R p]
:
βp β 0
theorem
WittVector.FractionRing.p_nonzero
(p : β)
(R : Type u_1)
[hp : Fact (Nat.Prime p)]
[CommRing R]
[Nontrivial R]
[CharP R p]
:
βp β 0
theorem
WittVector.verschiebung_mul_frobenius
{p : β}
{R : Type u_1}
[hp : Fact (Nat.Prime p)]
[CommRing R]
(x y : WittVector p R)
:
verschiebung (x * frobenius y) = verschiebung x * y
The βprojection formulaβ for Frobenius and Verschiebung.
theorem
WittVector.mul_charP_coeff_zero
{p : β}
{R : Type u_1}
[hp : Fact (Nat.Prime p)]
[CommRing R]
[CharP R p]
(x : WittVector p R)
:
(x * βp).coeff 0 = 0
theorem
WittVector.mul_charP_coeff_succ
{p : β}
{R : Type u_1}
[hp : Fact (Nat.Prime p)]
[CommRing R]
[CharP R p]
(x : WittVector p R)
(i : β)
:
theorem
WittVector.mul_pow_charP_coeff_zero
{p : β}
{R : Type u_1}
[hp : Fact (Nat.Prime p)]
[CommRing R]
[CharP R p]
(x : WittVector p R)
{m n : β}
(h : m < n)
:
(x * βp ^ n).coeff m = 0
theorem
WittVector.mul_pow_charP_coeff_succ
{p : β}
{R : Type u_1}
[hp : Fact (Nat.Prime p)]
[CommRing R]
[CharP R p]
(x : WittVector p R)
{m n : β}
:
theorem
WittVector.verschiebung_frobenius
{p : β}
{R : Type u_1}
[hp : Fact (Nat.Prime p)]
[CommRing R]
[CharP R p]
(x : WittVector p R)
:
verschiebung (frobenius x) = x * βp
Iteration lemmas #
theorem
WittVector.iterate_verschiebung_coeff_eq_zero
{p : β}
{R : Type u_1}
[hp : Fact (Nat.Prime p)]
[CommRing R]
(x : WittVector p R)
{n m : β}
(h : m < n)
:
((βverschiebung)^[n] x).coeff m = 0
theorem
WittVector.iterate_verschiebung_coeff
{p : β}
{R : Type u_1}
[hp : Fact (Nat.Prime p)]
[CommRing R]
(x : WittVector p R)
(n k : β)
:
((βverschiebung)^[n] x).coeff (k + n) = x.coeff k
theorem
WittVector.iterate_verschiebung_mul_left
{p : β}
{R : Type u_1}
[hp : Fact (Nat.Prime p)]
[CommRing R]
(x y : WittVector p R)
(i : β)
:
(βverschiebung)^[i] x * y = (βverschiebung)^[i] (x * (βfrobenius)^[i] y)
theorem
WittVector.iterate_verschiebung_mul
{p : β}
{R : Type u_1}
[hp : Fact (Nat.Prime p)]
[CommRing R]
[CharP R p]
(x y : WittVector p R)
(i j : β)
:
(βverschiebung)^[i] x * (βverschiebung)^[j] y = (βverschiebung)^[i + j] ((βfrobenius)^[j] x * (βfrobenius)^[i] y)
theorem
WittVector.iterate_verschiebung_mul_coeff
{p : β}
{R : Type u_1}
[hp : Fact (Nat.Prime p)]
[CommRing R]
[CharP R p]
(x y : WittVector p R)
(i j : β)
:
((βverschiebung)^[i] x * (βverschiebung)^[j] y).coeff (i + j) = x.coeff 0 ^ p ^ j * y.coeff 0 ^ p ^ i
This is a slightly specialized form of [Hazewinkel, Witt Vectors][Haze09] 6.2 equation 5.
theorem
WittVector.iterate_verschiebung_iterate_frobenius
{p : β}
{R : Type u_1}
[hp : Fact (Nat.Prime p)]
[CommRing R]
[CharP R p]
(x : WittVector p R)
(n : β)
: