def WittVector.verschiebungFun {p : ℕ} {R : Type u_1} [CommRing R] (x : WittVector p R) :
WittVector p R
verschiebungFun x shifts the coefficients of x up by one,
by inserting 0 as the 0th coefficient.
x.coeff i then becomes (verschiebungFun x).coeff (i + 1).
verschiebungFun is the underlying function of the additive monoid hom WittVector.verschiebung.
Equations
- x.verschiebungFun = WittVector.mk p fun (n : ℕ) => if n = 0 then 0 else x.coeff (n - 1)
Instances For
theorem WittVector.verschiebungFun_coeff_zero {p : ℕ} {R : Type u_1} [CommRing R] (x : WittVector p R) :
@[simp]
theorem WittVector.verschiebungFun_coeff_succ {p : ℕ} {R : Type u_1} [CommRing R] (x : WittVector p R) (n : ℕ) :
theorem WittVector.ghostComponent_zero_verschiebungFun {p : ℕ} {R : Type u_1} [CommRing R] [hp : Fact (Nat.Prime p)] (x : WittVector p R) :
theorem WittVector.ghostComponent_verschiebungFun {p : ℕ} {R : Type u_1} [CommRing R] [hp : Fact (Nat.Prime p)] (x : WittVector p R) (n : ℕ) :
The 0th Verschiebung polynomial is 0. For n > 0, the nth Verschiebung polynomial is the
variable X (n-1).
Equations
- WittVector.verschiebungPoly n = if n = 0 then 0 else MvPolynomial.X (n - 1)
Instances For
theorem WittVector.aeval_verschiebung_poly' {p : ℕ} {R : Type u_1} [CommRing R] (x : WittVector p R) (n : ℕ) :
instance WittVector.verschiebungFun_isPoly (p : ℕ) :
IsPoly p fun (R : Type u_3) (_Rcr : CommRing R) => verschiebungFun
WittVector.verschiebung has polynomial structure given by WittVector.verschiebungPoly.
noncomputable def WittVector.verschiebung {p : ℕ} {R : Type u_1} [CommRing R] [hp : Fact (Nat.Prime p)] :
verschiebung x shifts the coefficients of x up by one, by inserting 0 as the 0th coefficient.
x.coeff i then becomes (verschiebung x).coeff (i + 1).
This is an additive monoid hom with underlying function verschiebung_fun.
Equations
- WittVector.verschiebung = { toFun := WittVector.verschiebungFun, map_zero' := ⋯, map_add' := ⋯ }
Instances For
theorem WittVector.verschiebung_isPoly {p : ℕ} [hp : Fact (Nat.Prime p)] :
IsPoly p fun (x : Type u_3) (x_1 : CommRing x) => ⇑verschiebung
WittVector.verschiebung is a polynomial function.
@[simp]
theorem WittVector.map_verschiebung {p : ℕ} {R : Type u_1} {S : Type u_2} [CommRing R] [CommRing S] [hp : Fact (Nat.Prime p)] (f : R →+* S) (x : WittVector p R) :
verschiebung is a natural transformation
theorem WittVector.ghostComponent_zero_verschiebung {p : ℕ} {R : Type u_1} [CommRing R] [hp : Fact (Nat.Prime p)] (x : WittVector p R) :
theorem WittVector.ghostComponent_verschiebung {p : ℕ} {R : Type u_1} [CommRing R] [hp : Fact (Nat.Prime p)] (x : WittVector p R) (n : ℕ) :
@[simp]
theorem WittVector.verschiebung_coeff_zero {p : ℕ} {R : Type u_1} [CommRing R] [hp : Fact (Nat.Prime p)] (x : WittVector p R) :
theorem WittVector.verschiebung_coeff_add_one {p : ℕ} {R : Type u_1} [CommRing R] [hp : Fact (Nat.Prime p)] (x : WittVector p R) (n : ℕ) :
@[simp]
theorem WittVector.verschiebung_coeff_succ {p : ℕ} {R : Type u_1} [CommRing R] [hp : Fact (Nat.Prime p)] (x : WittVector p R) (n : ℕ) :
theorem WittVector.aeval_verschiebungPoly {p : ℕ} {R : Type u_1} [CommRing R] [hp : Fact (Nat.Prime p)] (x : WittVector p R) (n : ℕ) :
@[simp]
theorem WittVector.bind₁_verschiebungPoly_wittPolynomial {p : ℕ} [hp : Fact (Nat.Prime p)] (n : ℕ) :
(MvPolynomial.bind₁ verschiebungPoly) (wittPolynomial p ℤ n) = if n = 0 then 0 else ↑p * wittPolynomial p ℤ (n - 1)