Solving equations about the Frobenius map on the field of fractions of 𝕎 k #
The goal of this file is to prove WittVector.exists_frobenius_solution_fractionRing,
which says that for an algebraically closed field k of characteristic p and a, b in the
field of fractions of Witt vectors over k,
there is a solution b to the equation φ b * a = p ^ m * b, where φ is the Frobenius map.
Most of this file builds up the equivalent theorem over 𝕎 k directly,
moving to the field of fractions at the end.
See WittVector.frobeniusRotation and its specification.
The construction proceeds by recursively defining a sequence of coefficients as solutions to a
polynomial equation in k. We must define these as generic polynomials using Witt vector API
(WittVector.wittMul, wittPolynomial) to show that they satisfy the desired equation.
Preliminary work is done in the dependency RingTheory.WittVector.MulCoeff
to isolate the n+1st coefficients of x and y in the n+1st coefficient of x*y.
This construction is described in Dupuis, Lewis, and Macbeth, [Formalized functional analysis via semilinear maps][dupuis-lewis-macbeth2022]. We approximately follow an approach sketched on MathOverflow: https://mathoverflow.net/questions/62468/about-frobenius-of-witt-vectors
The result is a dependency for the proof of WittVector.isocrystal_classification,
the classification of one-dimensional isocrystals over an algebraically closed field.
The recursive case of the vector coefficients #
The first coefficient of our solution vector is easy to define below.
In this section we focus on the recursive case.
The goal is to turn WittVector.wittPolyProd n into a univariate polynomial
whose variable represents the nth coefficient of x in x * a.
The root of this polynomial determines the n+1st coefficient of our solution.
Equations
- One or more equations did not get rendered due to their size.
Instances For
This is the n+1st coefficient of our solution, projected from root_exists.
Equations
- WittVector.RecursionMain.succNthVal p n a₁ a₂ bs ha₁ ha₂ = Classical.choose ⋯
Instances For
The base case (0th coefficient) of our solution vector.
Equations
Instances For
Recursively defines the sequence of coefficients for WittVector.frobeniusRotation.
Equations
- WittVector.frobeniusRotationCoeff p ha₁ ha₂ 0 = WittVector.RecursionBase.solution p a₁ a₂
- WittVector.frobeniusRotationCoeff p ha₁ ha₂ n.succ = WittVector.RecursionMain.succNthVal p n a₁ a₂ (fun (i : Fin (n + 1)) => WittVector.frobeniusRotationCoeff p ha₁ ha₂ ↑i) ha₁ ha₂
Instances For
For nonzero a₁ and a₂, frobeniusRotation a₁ a₂ is a Witt vector that satisfies the
equation frobenius (frobeniusRotation a₁ a₂) * a₁ = (frobeniusRotation a₁ a₂) * a₂.
Equations
- WittVector.frobeniusRotation p ha₁ ha₂ = WittVector.mk p (WittVector.frobeniusRotationCoeff p ha₁ ha₂)