File: Mathlib/RingTheory/WittVector/Identities.lean

full_name: WittVector._aux_Mathlib_RingTheory_WittVector_Identities___macroRules_WittVector_term𝕎_1
code: local notation "𝕎" => WittVector p
goal: Lean.Macro

full_name: WittVector._aux_Mathlib_RingTheory_WittVector_Identities___unexpand_WittVector_1
code: local notation "𝕎" => WittVector p
goal: Lean.PrettyPrinter.Unexpander

full_name: WittVector.frobenius_verschiebung
code: /-- The composition of Frobenius and Verschiebung is multiplication by `p`. -/
theorem frobenius_verschiebung (x : 𝕎 R) : frobenius (verschiebung x) = x * p 
goal: WittVector.frobenius (WittVector.verschiebung x) = x * ↑p

full_name: WittVector.verschiebung_zmod
code: /-- Verschiebung is the same as multiplication by `p` on the ring of Witt vectors of `ZMod p`. -/
theorem verschiebung_zmod (x : 𝕎 (ZMod p)) : verschiebung x = x * p 
goal: WittVector.verschiebung x = x * ↑p

full_name: WittVector.coeff_p_pow
code: theorem coeff_p_pow [CharP R p] (i : ℕ) : ((p : 𝕎 R) ^ i).coeff i = 1 
goal: (↑p ^ i).coeff i = 1

full_name: WittVector.coeff_p_pow_eq_zero
code: theorem coeff_p_pow_eq_zero [CharP R p] {i j : ℕ} (hj : j ≠ i) : ((p : 𝕎 R) ^ i).coeff j = 0 
goal: (↑p ^ i).coeff j = 0

full_name: WittVector.coeff_p
code: theorem coeff_p [CharP R p] (i : ℕ) : (p : 𝕎 R).coeff i = if i = 1 then 1 else 0 
goal: (↑p).coeff i = if i = 1 then 1 else 0

full_name: WittVector.coeff_p_zero
code: @[simp]
theorem coeff_p_zero [CharP R p] : (p : 𝕎 R).coeff 0 = 0 
goal: (↑p).coeff 0 = 0

full_name: WittVector.coeff_p_one
code: @[simp]
theorem coeff_p_one [CharP R p] : (p : 𝕎 R).coeff 1 = 1 
goal: (↑p).coeff 1 = 1

full_name: WittVector.p_nonzero
code: theorem p_nonzero [Nontrivial R] [CharP R p] : (p : 𝕎 R) ≠ 0 
goal: ↑p ≠ 0

full_name: WittVector.FractionRing.p_nonzero
code: theorem FractionRing.p_nonzero [Nontrivial R] [CharP R p] : (p : FractionRing (𝕎 R)) ≠ 0 
goal: ↑p ≠ 0

full_name: WittVector.verschiebung_mul_frobenius
code: /-- The “projection formula” for Frobenius and Verschiebung. -/
theorem verschiebung_mul_frobenius (x y : 𝕎 R) :
    verschiebung (x * frobenius y) = verschiebung x * y 
goal: WittVector.verschiebung (x * WittVector.frobenius y) = WittVector.verschiebung x * y

full_name: WittVector.mul_charP_coeff_zero
code: theorem mul_charP_coeff_zero [CharP R p] (x : 𝕎 R) : (x * p).coeff 0 = 0 
goal: (x * ↑p).coeff 0 = 0

full_name: WittVector.mul_charP_coeff_succ
code: theorem mul_charP_coeff_succ [CharP R p] (x : 𝕎 R) (i : ℕ) :
    (x * p).coeff (i + 1) = x.coeff i ^ p 
goal: (x * ↑p).coeff (i + 1) = x.coeff i ^ p

full_name: WittVector.verschiebung_frobenius
code: theorem verschiebung_frobenius [CharP R p] (x : 𝕎 R) : verschiebung (frobenius x) = x * p 
goal: WittVector.verschiebung (WittVector.frobenius x) = x * ↑p

full_name: WittVector.verschiebung_frobenius_comm
code: theorem verschiebung_frobenius_comm [CharP R p] :
    Function.Commute (verschiebung : 𝕎 R → 𝕎 R) frobenius 
goal: Function.Commute ⇑WittVector.verschiebung ⇑WittVector.frobenius

full_name: WittVector.iterate_verschiebung_coeff
code: theorem iterate_verschiebung_coeff (x : 𝕎 R) (n k : ℕ) :
    (verschiebung^[n] x).coeff (k + n) = x.coeff k 
goal: ((⇑WittVector.verschiebung)^[n] x).coeff (k + n) = x.coeff k

full_name: WittVector.iterate_verschiebung_mul_left
code: theorem iterate_verschiebung_mul_left (x y : 𝕎 R) (i : ℕ) :
    verschiebung^[i] x * y = verschiebung^[i] (x * frobenius^[i] y) 
goal: (⇑WittVector.verschiebung)^[i] x * y = (⇑WittVector.verschiebung)^[i] (x * (⇑WittVector.frobenius)^[i] y)

full_name: WittVector.iterate_verschiebung_mul
code: theorem iterate_verschiebung_mul (x y : 𝕎 R) (i j : ℕ) :
    verschiebung^[i] x * verschiebung^[j] y =
      verschiebung^[i + j] (frobenius^[j] x * frobenius^[i] y) 
goal: (⇑WittVector.verschiebung)^[i] x * (⇑WittVector.verschiebung)^[j] y =
  (⇑WittVector.verschiebung)^[i + j] ((⇑WittVector.frobenius)^[j] x * (⇑WittVector.frobenius)^[i] y)

full_name: WittVector.iterate_frobenius_coeff
code: theorem iterate_frobenius_coeff (x : 𝕎 R) (i k : ℕ) :
    (frobenius^[i] x).coeff k = x.coeff k ^ p ^ i 
goal: ((⇑WittVector.frobenius)^[i] x).coeff k = x.coeff k ^ p ^ i

full_name: WittVector.iterate_verschiebung_mul_coeff
code: /-- This is a slightly specialized form of [Hazewinkel, *Witt Vectors*][Haze09] 6.2 equation 5. -/
theorem iterate_verschiebung_mul_coeff (x y : 𝕎 R) (i j : ℕ) :
    (verschiebung^[i] x * verschiebung^[j] y).coeff (i + j) =
      x.coeff 0 ^ p ^ j * y.coeff 0 ^ p ^ i 
goal: ((⇑WittVector.verschiebung)^[i] x * (⇑WittVector.verschiebung)^[j] y).coeff (i + j) =
  x.coeff 0 ^ p ^ j * y.coeff 0 ^ p ^ i