Documentation

Mathlib.RingTheory.WittVector.Verschiebung

The Verschiebung operator #

References #

def WittVector.verschiebungFun {p : β„•} {R : Type u_1} [CommRing R] (x : 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.

Instances For
    theorem WittVector.verschiebungFun_coeff {p : β„•} {R : Type u_1} [CommRing R] (x : WittVector p R) (n : β„•) :
    x.verschiebungFun.coeff n = if n = 0 then 0 else x.coeff (n - 1)
    @[simp]
    theorem WittVector.verschiebungFun_coeff_succ {p : β„•} {R : Type u_1} [CommRing R] (x : WittVector p R) (n : β„•) :
    x.verschiebungFun.coeff n.succ = x.coeff n
    theorem WittVector.ghostComponent_verschiebungFun {p : β„•} {R : Type u_1} [CommRing R] [hp : Fact (Nat.Prime p)] (x : WittVector p R) (n : β„•) :
    (ghostComponent (n + 1)) x.verschiebungFun = ↑p * (ghostComponent n) x
    noncomputable def WittVector.verschiebungPoly (n : β„•) :
    MvPolynomial β„• β„€

    The 0th Verschiebung polynomial is 0. For n > 0, the nth Verschiebung polynomial is the variable X (n-1).

    Instances For
      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.

      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) :
        (map f) (verschiebung x) = verschiebung ((map f) x)

        verschiebung is a natural transformation

        theorem WittVector.ghostComponent_verschiebung {p : β„•} {R : Type u_1} [CommRing R] [hp : Fact (Nat.Prime p)] (x : WittVector p R) (n : β„•) :
        (ghostComponent (n + 1)) (verschiebung x) = ↑p * (ghostComponent n) x
        @[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 : β„•) :
        (verschiebung x).coeff (n + 1) = x.coeff n
        @[simp]
        theorem WittVector.verschiebung_coeff_succ {p : β„•} {R : Type u_1} [CommRing R] [hp : Fact (Nat.Prime p)] (x : WittVector p R) (n : β„•) :
        (verschiebung x).coeff n.succ = x.coeff n
        theorem WittVector.verschiebung_injective (p : β„•) (R : Type u_1) [CommRing R] [hp : Fact (Nat.Prime p)] :
        Function.Injective ⇑verschiebung
        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)