Module

ThetaCoefficients.lean

Nyll.ClassFieldTheory.LubinTate.EqualCharacteristic.Theta.ThetaCoefficients
24 declarations indexed from sourceView source ↗

LubinTate the equal-characteristic theta construction: equal-characteristic theta coefficients

This file constructs the coefficient sources behind the power series theta in the equal-characteristic specialization of the equal-characteristic theta construction. For a finite field k, the completed maximal unramified coefficient ring of k((T)) is modeled by (AlgebraicClosure k)[[T]], with arithmetic Frobenius acting coefficientwise.

The first construction solves the exact semilinear equation

phi(epsilon) = u * epsilon

for every unit u in k[[T]]. This is the linear coefficient equation forced by theta^phi o e_bar = e o theta when pi = u * bar_pi.

Declarations

LubinTate.EqualCharacteristic.exists_frobenius_eq_mul_add
Source context 6 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open scoped PowerSeries Polynomial
universe u
namespace LubinTate
namespace EqualCharacteristic
variable (k : Type u) [Field k] [Finite k]
theorem exists_frobenius_eq_mul_add
    (a c : AlgebraicClosure k) :
    ∃ x : AlgebraicClosure k,
      x ^ Nat.card k = a * x + c
LubinTate.EqualCharacteristic.chosenEqualCharacteristicSemilinearLeadingCoefficient

The constant coefficient chosen for a solution of phi(epsilon)=u*epsilon.

Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open scoped PowerSeries Polynomial
universe u
namespace LubinTate
namespace EqualCharacteristic
variable (k : Type u) [Field k] [Finite k]
variable {k}
def chosenEqualCharacteristicSemilinearLeadingCoefficient
    (u : k⟦X⟧) :
    AlgebraicClosure k
LubinTate.EqualCharacteristic.chosenEqualCharacteristicSemilinearLeadingCoefficient_pow

The chosen leading coefficient is a (q - 1)st root of the source constant term.

Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open scoped PowerSeries Polynomial
universe u
namespace LubinTate
namespace EqualCharacteristic
variable (k : Type u) [Field k] [Finite k]
variable {k}
theorem chosenEqualCharacteristicSemilinearLeadingCoefficient_pow
    (u : k⟦X⟧) :
    chosenEqualCharacteristicSemilinearLeadingCoefficient u ^
        (Nat.card k - 1) =
      algebraMap k (AlgebraicClosure k) (PowerSeries.coeff 0 u)
LubinTate.EqualCharacteristic.chosenEqualCharacteristicSemilinearLeadingCoefficient_ne_zero

A nonzero source constant term gives a nonzero chosen leading coefficient.

Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open scoped PowerSeries Polynomial
universe u
namespace LubinTate
namespace EqualCharacteristic
variable (k : Type u) [Field k] [Finite k]
variable {k}
theorem chosenEqualCharacteristicSemilinearLeadingCoefficient_ne_zero
    (u : k⟦X⟧) (hu : PowerSeries.coeff 0 u ≠ 0) :
    chosenEqualCharacteristicSemilinearLeadingCoefficient u ≠ 0
LubinTate.EqualCharacteristic.chosenEqualCharacteristicSemilinearCoefficient

Coefficients of the exact semilinear solution. At stage n+1, the new coefficient is chosen as a root of the separable additive polynomial forced by the first n+1 coefficient equations.

Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open scoped PowerSeries Polynomial
universe u
namespace LubinTate
namespace EqualCharacteristic
variable (k : Type u) [Field k] [Finite k]
variable {k}
def chosenEqualCharacteristicSemilinearCoefficient
    (u : k⟦X⟧) (hu : PowerSeries.coeff 0 u ≠ 0) :
    (n : ℕ) → AlgebraicClosure k
  | 0 => chosenEqualCharacteristicSemilinearLeadingCoefficient u
  | n + 1 =>
      Classical.choose
        (exists_frobenius_eq_mul_add k
          (algebraMap k (AlgebraicClosure k) (PowerSeries.coeff 0 u))
          (∑ j : Fin (n + 1),
            algebraMap k (AlgebraicClosure k)
                (PowerSeries.coeff (j + 1) u) *
              chosenEqualCharacteristicSemilinearCoefficient u hu (n - j)))
termination_by n => n
decreasing_by
  all_goals exact Nat.lt_succ_of_le (Nat.sub_le _ _)
LubinTate.EqualCharacteristic.chosenEqualCharacteristicSemilinearCoefficient_zero

The zeroth semilinear coefficient is the chosen leading coefficient.

Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open scoped PowerSeries Polynomial
universe u
namespace LubinTate
namespace EqualCharacteristic
variable (k : Type u) [Field k] [Finite k]
variable {k}
theorem chosenEqualCharacteristicSemilinearCoefficient_zero
    (u : k⟦X⟧) (hu : PowerSeries.coeff 0 u ≠ 0) :
    chosenEqualCharacteristicSemilinearCoefficient u hu 0 =
      chosenEqualCharacteristicSemilinearLeadingCoefficient u
LubinTate.EqualCharacteristic.chosenEqualCharacteristicSemilinearCoefficient_succ

Successive semilinear coefficients satisfy the defining Frobenius recursion.

Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open scoped PowerSeries Polynomial
universe u
namespace LubinTate
namespace EqualCharacteristic
variable (k : Type u) [Field k] [Finite k]
variable {k}
theorem chosenEqualCharacteristicSemilinearCoefficient_succ
    (u : k⟦X⟧) (hu : PowerSeries.coeff 0 u ≠ 0) (n : ℕ) :
    chosenEqualCharacteristicSemilinearCoefficient u hu (n + 1) ^ Nat.card k =
      algebraMap k (AlgebraicClosure k) (PowerSeries.coeff 0 u) *
          chosenEqualCharacteristicSemilinearCoefficient u hu (n + 1) +
        ∑ j : Fin (n + 1),
          algebraMap k (AlgebraicClosure k)
              (PowerSeries.coeff (j + 1) u) *
            chosenEqualCharacteristicSemilinearCoefficient u hu (n - j)
LubinTate.EqualCharacteristic.equalCharacteristicSemilinearUnit

The exact power-series solution of the semilinear Hilbert--90 equation in the completed maximal unramified coefficient ring.

Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open scoped PowerSeries Polynomial
universe u
namespace LubinTate
namespace EqualCharacteristic
variable (k : Type u) [Field k] [Finite k]
variable {k}
def equalCharacteristicSemilinearUnit
    (u : k⟦X⟧) (hu : PowerSeries.coeff 0 u ≠ 0) :
    (AlgebraicClosure k)⟦X⟧
LubinTate.EqualCharacteristic.equalCharacteristicSemilinearUnit_coeff

The semilinear unit records the recursively chosen coefficients.

Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open scoped PowerSeries Polynomial
universe u
namespace LubinTate
namespace EqualCharacteristic
variable (k : Type u) [Field k] [Finite k]
variable {k}
theorem equalCharacteristicSemilinearUnit_coeff
    (u : k⟦X⟧) (hu : PowerSeries.coeff 0 u ≠ 0) (n : ℕ) :
    PowerSeries.coeff n (equalCharacteristicSemilinearUnit u hu) =
      chosenEqualCharacteristicSemilinearCoefficient u hu n
LubinTate.EqualCharacteristic.equalCharacteristicSemilinearUnit_constantCoeff_ne_zero

The semilinear unit has nonzero constant coefficient.

Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open scoped PowerSeries Polynomial
universe u
namespace LubinTate
namespace EqualCharacteristic
variable (k : Type u) [Field k] [Finite k]
variable {k}
theorem equalCharacteristicSemilinearUnit_constantCoeff_ne_zero
    (u : k⟦X⟧) (hu : PowerSeries.coeff 0 u ≠ 0) :
    PowerSeries.coeff 0 (equalCharacteristicSemilinearUnit u hu) ≠ 0
LubinTate.EqualCharacteristic.equalCharacteristicPowerSeriesFrobenius_semilinearUnit

The completed theta-intertwining theorem, linear theta-coefficient equation: phi(epsilon) = u * epsilon.

Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open scoped PowerSeries Polynomial
universe u
namespace LubinTate
namespace EqualCharacteristic
variable (k : Type u) [Field k] [Finite k]
variable {k}
theorem equalCharacteristicPowerSeriesFrobenius_semilinearUnit
    (u : k⟦X⟧) (hu : PowerSeries.coeff 0 u ≠ 0) :
    equalCharacteristicPowerSeriesFrobenius k
        (equalCharacteristicSemilinearUnit u hu) =
      PowerSeries.map (algebraMap k (AlgebraicClosure k)) u *
        equalCharacteristicSemilinearUnit u hu
LubinTate.EqualCharacteristic.equalCharacteristicCompletedUnit

The image in the completed maximal-unramified coefficient ring of the unit relating the two prime elements.

Source context 9 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open scoped PowerSeries Polynomial
universe u
namespace LubinTate
namespace EqualCharacteristic
variable (k : Type u) [Field k] [Finite k]
variable {k}
section ThetaRecursion
variable (u : k⟦X⟧ˣ)
def equalCharacteristicCompletedUnit :
    (AlgebraicClosure k)⟦X⟧
LubinTate.EqualCharacteristic.equalCharacteristicCompletedSourceUniformizer

We normalize the target prime to T; the source prime is therefore bar_pi = u^{-1} T.

Source context 9 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open scoped PowerSeries Polynomial
universe u
namespace LubinTate
namespace EqualCharacteristic
variable (k : Type u) [Field k] [Finite k]
variable {k}
section ThetaRecursion
variable (u : k⟦X⟧ˣ)
def equalCharacteristicCompletedSourceUniformizer :
    (AlgebraicClosure k)⟦X⟧
LubinTate.EqualCharacteristic.equalCharacteristicThetaGamma

The contracting coefficient gamma_j = bar_pi^(q^j) / T in the j-th theta recursion.

Source context 9 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open scoped PowerSeries Polynomial
universe u
namespace LubinTate
namespace EqualCharacteristic
variable (k : Type u) [Field k] [Finite k]
variable {k}
section ThetaRecursion
variable (u : k⟦X⟧ˣ)
def equalCharacteristicThetaGamma (j : ℕ) :
    (AlgebraicClosure k)⟦X⟧
LubinTate.EqualCharacteristic.equalCharacteristicThetaGamma_constantCoeff

Positive-index theta gamma terms have zero constant coefficient.

Source context 9 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open scoped PowerSeries Polynomial
universe u
namespace LubinTate
namespace EqualCharacteristic
variable (k : Type u) [Field k] [Finite k]
variable {k}
section ThetaRecursion
variable (u : k⟦X⟧ˣ)
theorem equalCharacteristicThetaGamma_constantCoeff
    (j : ℕ) (hj : 0 < j) :
    PowerSeries.coeff 0 (equalCharacteristicThetaGamma u j) = 0
LubinTate.EqualCharacteristic.equalCharacteristicThetaGamma_mul_X

Multiplying theta gamma by X gives the corresponding source-uniformizer power.

Source context 9 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open scoped PowerSeries Polynomial
universe u
namespace LubinTate
namespace EqualCharacteristic
variable (k : Type u) [Field k] [Finite k]
variable {k}
section ThetaRecursion
variable (u : k⟦X⟧ˣ)
theorem equalCharacteristicThetaGamma_mul_X
    (j : ℕ) (hj : 0 < j) :
    PowerSeries.X * equalCharacteristicThetaGamma u j =
      equalCharacteristicCompletedSourceUniformizer u ^ (Nat.card k ^ j)
LubinTate.EqualCharacteristic.equalCharacteristicThetaBetaNumerator

The numerator occurring on the right of the j-th theta recursion.

Source context 9 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open scoped PowerSeries Polynomial
universe u
namespace LubinTate
namespace EqualCharacteristic
variable (k : Type u) [Field k] [Finite k]
variable {k}
section ThetaRecursion
variable (u : k⟦X⟧ˣ)
def equalCharacteristicThetaBetaNumerator
    (b : (AlgebraicClosure k)⟦X⟧) :
    (AlgebraicClosure k)⟦X⟧
LubinTate.EqualCharacteristic.equalCharacteristicThetaBetaNumerator_constantCoeff

The theta beta numerator has zero constant coefficient.

Source context 9 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open scoped PowerSeries Polynomial
universe u
namespace LubinTate
namespace EqualCharacteristic
variable (k : Type u) [Field k] [Finite k]
variable {k}
section ThetaRecursion
variable (u : k⟦X⟧ˣ)
theorem equalCharacteristicThetaBetaNumerator_constantCoeff
    (b : (AlgebraicClosure k)⟦X⟧) :
    PowerSeries.coeff 0 (equalCharacteristicThetaBetaNumerator b) = 0
LubinTate.EqualCharacteristic.equalCharacteristicThetaBeta

The quotient beta(b) = (phi(b) - b^q) / T.

Source context 9 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open scoped PowerSeries Polynomial
universe u
namespace LubinTate
namespace EqualCharacteristic
variable (k : Type u) [Field k] [Finite k]
variable {k}
section ThetaRecursion
variable (u : k⟦X⟧ˣ)
def equalCharacteristicThetaBeta
    (b : (AlgebraicClosure k)⟦X⟧) :
    (AlgebraicClosure k)⟦X⟧
LubinTate.EqualCharacteristic.equalCharacteristicThetaBeta_mul_X

Multiplying theta beta by X recovers its numerator.

Source context 9 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open scoped PowerSeries Polynomial
universe u
namespace LubinTate
namespace EqualCharacteristic
variable (k : Type u) [Field k] [Finite k]
variable {k}
section ThetaRecursion
variable (u : k⟦X⟧ˣ)
theorem equalCharacteristicThetaBeta_mul_X
    (b : (AlgebraicClosure k)⟦X⟧) :
    PowerSeries.X * equalCharacteristicThetaBeta b =
      equalCharacteristicThetaBetaNumerator b
LubinTate.EqualCharacteristic.equalCharacteristicThetaCoefficient

The coefficients b_j of the additive theta series theta(X)=sum_j b_j X^(q^j). The leading coefficient is the exact semilinear unit constructed above; every later coefficient is the unique contracting solution supplied by the contracting Frobenius equation.

Source context 9 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open scoped PowerSeries Polynomial
universe u
namespace LubinTate
namespace EqualCharacteristic
variable (k : Type u) [Field k] [Finite k]
variable {k}
section ThetaRecursion
variable (u : k⟦X⟧ˣ)
def equalCharacteristicThetaCoefficient :
    ℕ → (AlgebraicClosure k)⟦X⟧
  | 0 => equalCharacteristicSemilinearUnit (u : k⟦X⟧)
      (by
        intro hzero
        have hunit := PowerSeries.isUnit_constantCoeff (u : k⟦X⟧) u.isUnit
        apply hunit.ne_zero
        simpa [PowerSeries.coeff_zero_eq_constantCoeff_apply] using hzero)
  | j + 1 =>
      contractingFrobeniusEquationSolution
        (equalCharacteristicCoefficientFrobenius k).toRingHom
        (equalCharacteristicThetaGamma u (j + 1))
        (equalCharacteristicThetaBeta
          (equalCharacteristicThetaCoefficient j))
LubinTate.EqualCharacteristic.equalCharacteristicThetaCoefficient_zero

The zeroth theta coefficient is the semilinear source unit.

Source context 9 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open scoped PowerSeries Polynomial
universe u
namespace LubinTate
namespace EqualCharacteristic
variable (k : Type u) [Field k] [Finite k]
variable {k}
section ThetaRecursion
variable (u : k⟦X⟧ˣ)
theorem equalCharacteristicThetaCoefficient_zero :
    equalCharacteristicThetaCoefficient u 0 =
      equalCharacteristicSemilinearUnit (u : k⟦X⟧)
        (by
          intro hzero
          have hunit := PowerSeries.isUnit_constantCoeff (u : k⟦X⟧) u.isUnit
          apply hunit.ne_zero
          simpa [PowerSeries.coeff_zero_eq_constantCoeff_apply] using hzero) :=
  rfl
LubinTate.EqualCharacteristic.equalCharacteristicThetaCoefficient_succ_equation

The canonical contracting recursion for the non-leading theta coefficients.

Source context 9 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open scoped PowerSeries Polynomial
universe u
namespace LubinTate
namespace EqualCharacteristic
variable (k : Type u) [Field k] [Finite k]
variable {k}
section ThetaRecursion
variable (u : k⟦X⟧ˣ)
theorem equalCharacteristicThetaCoefficient_succ_equation (j : ℕ) :
    equalCharacteristicThetaCoefficient u (j + 1) -
        equalCharacteristicThetaGamma u (j + 1) *
          equalCharacteristicPowerSeriesFrobenius k
            (equalCharacteristicThetaCoefficient u (j + 1)) =
      equalCharacteristicThetaBeta
        (equalCharacteristicThetaCoefficient u j)
LubinTate.EqualCharacteristic.equalCharacteristicThetaCoefficient_succ_comparison

Clearing the factor T gives the coefficient comparison in theta^phi o e_bar = e_T o theta.

Source context 9 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open scoped PowerSeries Polynomial
universe u
namespace LubinTate
namespace EqualCharacteristic
variable (k : Type u) [Field k] [Finite k]
variable {k}
section ThetaRecursion
variable (u : k⟦X⟧ˣ)
theorem equalCharacteristicThetaCoefficient_succ_comparison (j : ℕ) :
    PowerSeries.X * equalCharacteristicThetaCoefficient u (j + 1) -
        equalCharacteristicCompletedSourceUniformizer u ^
            (Nat.card k ^ (j + 1)) *
          equalCharacteristicPowerSeriesFrobenius k
            (equalCharacteristicThetaCoefficient u (j + 1)) =
      equalCharacteristicThetaBetaNumerator
        (equalCharacteristicThetaCoefficient u j)