Documentation

EllipticCurves.Mathlib.Chabauty.LogIso

The logarithm isomorphism #

The formal logarithm Λ of a formal group law is an injective homomorphism on (pO)ⁿ when p is odd and O is unramified (𝔪 = pO). The p-scaled log HL (with f(coeff_d HL) = f(p)^{deg d}·coeff_d Λ) has an injective evaluation map y ↦ (evalT y (HL i))ᵢ (ChabautyColeman.FormalGroupLaw.log_injective), which turns the p-scaled formal group sum ChabautyColeman.FormalGroupLaw.scaledFF(pX, pY)/p, integral with decaying coefficients, so convergent on all of Oⁿ × Oⁿ — into addition (ChabautyColeman.FormalGroupLaw.log_addHom); Λ(p·y) = f(evalT y (HL i)).

Both halves descend a K-power-series identity to the p-scaled integral forms — via rescale/subst_comp_subst_apply/map_subst and f injective — and then evaluate it with evalT_subst: injectivity descends Exp ∘ Λ = id (exp_comp_log, through subst_descent), additivity descends Λ(F(X,Y)) = Λ(X) + Λ(Y) (log_subst_F, through subst_scaledF_descent). The scaled log is uniquely determined by its scaling relation (ChabautyColeman.FormalGroupLaw.scaled_log_unique), so the two packages agree.

Blueprint node: thm:log-iso.

theorem ChabautyColeman.FormalGroupLaw.map_eq_rescale {O : Type u_1} [CommRing O] {ι : Type u_2} {K : Type u_3} [CommRing K] {f : O →+* K} {p : } {H : MvPowerSeries ι O} {L : MvPowerSeries ι K} (hH : ∀ (d : ι →₀ ), f ((MvPowerSeries.coeff d) H) = f p ^ Finsupp.degree d * (MvPowerSeries.coeff d) L) :
(MvPowerSeries.map f) H = (MvPowerSeries.rescale fun (x : ι) => p) L
theorem ChabautyColeman.FormalGroupLaw.map_smul_natCast {O : Type u_1} [CommRing O] {ι : Type u_2} {K : Type u_3} [CommRing K] {f : O →+* K} (n : ) (h : MvPowerSeries ι O) :
(MvPowerSeries.map f) (n h) = n (MvPowerSeries.map f) h
theorem ChabautyColeman.FormalGroupLaw.rescale_const_eq_subst {ι : Type u_2} {K : Type u_3} [CommRing K] (c : K) (L : MvPowerSeries ι K) :
(MvPowerSeries.rescale fun (x : ι) => c) L = MvPowerSeries.subst (fun (j : ι) => c MvPowerSeries.X j) L
theorem ChabautyColeman.FormalGroupLaw.subst_descent {O : Type u_1} [CommRing O] {ι : Type u_2} {K : Type u_3} [Field K] {f : O →+* K} {p : } [Finite ι] (hf : Function.Injective f) {HL HE Hh : ιMvPowerSeries ι O} {Lg : ιMvPowerSeries ι K} {E : MvPowerSeries ι K} {i : ι} (hHL : ∀ (j : ι), (MvPowerSeries.map f) (HL j) = (MvPowerSeries.rescale fun (x : ι) => p) (Lg j)) (hHE : (MvPowerSeries.map f) (HE i) = (MvPowerSeries.rescale fun (x : ι) => p) E) (hHh : ∀ (j : ι), p Hh j = HL j) (hHh0 : ∀ (j : ι), MvPowerSeries.constantCoeff (Hh j) = 0) (hLg : MvPowerSeries.HasSubst Lg) (hcomp : MvPowerSeries.subst Lg E = MvPowerSeries.X i) :
theorem ChabautyColeman.FormalGroupLaw.log_injective {O : Type u_1} [CommRing O] [IsDomain O] [IsLocalRing O] [UniformSpace O] [Fact (IsAdic (IsLocalRing.maximalIdeal O))] [IsUniformAddGroup O] [CompleteSpace O] [T2Space O] [IsTopologicalRing O] {ι : Type u_2} [Fintype ι] [DecidableEq ι] {K : Type u_3} [Field K] [CharZero K] {f : O →+* K} {p : } (hp : Nat.Prime p) (hp2 : p 2) (hpm : IsLocalRing.maximalIdeal O = Ideal.span {p}) (hf : Function.Injective f) (Φ : FormalGroupLaw O ι) :
∃ (HL : ιMvPowerSeries ι O), (∀ (i : ι) (d : ι →₀ ), f ((MvPowerSeries.coeff d) (HL i)) = f p ^ Finsupp.degree d * (MvPowerSeries.coeff d) ((map f Φ).log i)) Function.Injective fun (y : ιO) (i : ι) => MvPSeries.evalT y (HL i)

Injectivity of the formal logarithm on (pO)ⁿ (p odd, unramified 𝔪 = pO). The p-scaled log HL (with f(coeff_d HL) = f(p)^{deg d} · coeff_d Λ) has injective evaluation map y ↦ (evalT y (HL i))ᵢ; hence Λ is injective on (pO)ⁿ.

The p-scaled formal group law #

noncomputable def ChabautyColeman.FormalGroupLaw.scaledF {O : Type u_4} [CommRing O] {ι : Type u_5} (Φ : FormalGroupLaw O ι) (p : ) (j : ι) :
MvPowerSeries (ι ι) O

The p-scaled formal group law: F(pX, pY)/p, integral because F has no constant term. Its coefficients decay p-adically, so it evaluates on all of Oⁿ × Oⁿ.

Equations
Instances For
    @[simp]
    theorem ChabautyColeman.FormalGroupLaw.coeff_scaledF {O : Type u_4} [CommRing O] {ι : Type u_5} (Φ : FormalGroupLaw O ι) (p : ) (j : ι) (d : ι ι →₀ ) :
    (MvPowerSeries.coeff d) (Φ.scaledF p j) = p ^ (Finsupp.degree d - 1) * (MvPowerSeries.coeff d) (Φ.F j)

    The coefficients of the scaled group law tend to zero.

    theorem ChabautyColeman.FormalGroupLaw.map_scaledF_smul {O : Type u_4} [CommRing O] {ι : Type u_5} [Finite ι] {K : Type u_6} [Field K] {f : O →+* K} {p : } (Φ : FormalGroupLaw O ι) (j : ι) :
    p (MvPowerSeries.map f) (Φ.scaledF p j) = (MvPowerSeries.rescale fun (x : ι ι) => p) ((map f Φ).F j)

    The p-scaled formal group law is the p-rescaling of F, over the fraction field.

    theorem ChabautyColeman.FormalGroupLaw.scaled_log_unique {O : Type u_4} [CommRing O] {ι : Type u_5} [Fintype ι] [DecidableEq ι] {K : Type u_6} [Field K] {f : O →+* K} {p : } (Φ : FormalGroupLaw O ι) (hf : Function.Injective f) {HL HL' : ιMvPowerSeries ι O} (h : ∀ (i : ι) (d : ι →₀ ), f ((MvPowerSeries.coeff d) (HL i)) = f p ^ Finsupp.degree d * (MvPowerSeries.coeff d) ((map f Φ).log i)) (h' : ∀ (i : ι) (d : ι →₀ ), f ((MvPowerSeries.coeff d) (HL' i)) = f p ^ Finsupp.degree d * (MvPowerSeries.coeff d) ((map f Φ).log i)) :
    HL = HL'

    The p-scaled logarithms over O are uniquely determined by their scaling relation (the base-change map f is injective), so the packages produced by ChabautyColeman.FormalGroupLaw.log_injective and ChabautyColeman.FormalGroupLaw.log_addHom contain the same series.

    theorem ChabautyColeman.FormalGroupLaw.subst_scaledF_descent {O : Type u_4} [CommRing O] {ι : Type u_5} [Fintype ι] [DecidableEq ι] {K : Type u_6} [Field K] {f : O →+* K} {p : } (Φ : FormalGroupLaw O ι) [CharZero K] (hf : Function.Injective f) {HL : ιMvPowerSeries ι O} (hHL : ∀ (j : ι), (MvPowerSeries.map f) (HL j) = (MvPowerSeries.rescale fun (x : ι) => p) ((map f Φ).log j)) (i : ι) :
    MvPowerSeries.subst (Φ.scaledF p) (HL i) = MvPowerSeries.subst (fun (s : ι) => MvPowerSeries.X (Sum.inl s)) (HL i) + MvPowerSeries.subst (fun (s : ι) => MvPowerSeries.X (Sum.inr s)) (HL i)

    The descended additivity identity: the p-scaled logarithm is additive for the p-scaled formal group law, over O.

    The homomorphism property of the logarithm #

    theorem ChabautyColeman.FormalGroupLaw.log_addHom {O : Type u_4} [CommRing O] [IsLocalRing O] [UniformSpace O] [Fact (IsAdic (IsLocalRing.maximalIdeal O))] [IsUniformAddGroup O] [CompleteSpace O] [T2Space O] [IsTopologicalRing O] {ι : Type u_5} [Fintype ι] [DecidableEq ι] {K : Type u_6} [Field K] [CharZero K] {f : O →+* K} {p : } (hp : Nat.Prime p) (hpm : IsLocalRing.maximalIdeal O = Ideal.span {p}) (hf : Function.Injective f) (Φ : FormalGroupLaw O ι) :
    ∃ (HL : ιMvPowerSeries ι O), (∀ (i : ι) (d : ι →₀ ), f ((MvPowerSeries.coeff d) (HL i)) = f p ^ Finsupp.degree d * (MvPowerSeries.coeff d) ((map f Φ).log i)) ∀ (y z : ιO) (i : ι), MvPSeries.evalT (fun (j : ι) => MvPSeries.evalT (Sum.elim y z) (Φ.scaledF p j)) (HL i) = MvPSeries.evalT y (HL i) + MvPSeries.evalT z (HL i)

    The formal logarithm is a homomorphism on (pO)ⁿ (p odd, unramified 𝔪 = pO): the p-scaled log HL turns the (everywhere-convergent) p-scaled formal group sum into addition. Together with ChabautyColeman.FormalGroupLaw.log_injective this makes Λ an injective group homomorphism on (pO)ⁿ.

    The canonical scaled logarithm #

    noncomputable def ChabautyColeman.FormalGroupLaw.scaledLog {O : Type u_4} [CommRing O] [IsLocalRing O] [UniformSpace O] [Fact (IsAdic (IsLocalRing.maximalIdeal O))] {ι : Type u_5} [Fintype ι] [DecidableEq ι] {K : Type u_6} [Field K] {p : } (Φ : FormalGroupLaw O ι) (hp : Nat.Prime p) (hpmem : p IsLocalRing.maximalIdeal O) (f : O →+* K) (hfp : f p 0) (i : ι) :

    The p-scaled logarithm of a formal group law, as a power series over O: the integral form of Λ(pU), so that y ↦ evalT y (scaledLog i) represents Λ(p·y).

    Equations
    Instances For
      theorem ChabautyColeman.FormalGroupLaw.coeff_scaledLog_map {O : Type u_4} [CommRing O] [IsLocalRing O] [UniformSpace O] [Fact (IsAdic (IsLocalRing.maximalIdeal O))] {ι : Type u_5} [Fintype ι] [DecidableEq ι] {K : Type u_6} [Field K] {f : O →+* K} {p : } (Φ : FormalGroupLaw O ι) (hp : Nat.Prime p) (hpmem : p IsLocalRing.maximalIdeal O) (hfp : f p 0) (i : ι) (d : ι →₀ ) :
      f ((MvPowerSeries.coeff d) (Φ.scaledLog hp hpmem f hfp i)) = f p ^ Finsupp.degree d * (MvPowerSeries.coeff d) ((map f Φ).log i)
      theorem ChabautyColeman.FormalGroupLaw.decay_scaledLog {O : Type u_4} [CommRing O] [IsLocalRing O] [UniformSpace O] [Fact (IsAdic (IsLocalRing.maximalIdeal O))] {ι : Type u_5} [Fintype ι] [DecidableEq ι] {K : Type u_6} [Field K] {f : O →+* K} {p : } (Φ : FormalGroupLaw O ι) (hp : Nat.Prime p) (hpmem : p IsLocalRing.maximalIdeal O) (hfp : f p 0) (i : ι) :
      Filter.Tendsto (fun (d : ι →₀ ) => (MvPowerSeries.coeff d) (Φ.scaledLog hp hpmem f hfp i)) Filter.cofinite (nhds 0)
      theorem ChabautyColeman.FormalGroupLaw.evalT_scaledLog_injective {O : Type u_4} [CommRing O] [IsDomain O] [IsLocalRing O] [UniformSpace O] [Fact (IsAdic (IsLocalRing.maximalIdeal O))] [IsUniformAddGroup O] [CompleteSpace O] [T2Space O] [IsTopologicalRing O] {ι : Type u_5} [Fintype ι] [DecidableEq ι] {K : Type u_6} [Field K] [CharZero K] {f : O →+* K} {p : } (Φ : FormalGroupLaw O ι) (hp : Nat.Prime p) (hp2 : p 2) (hpm : IsLocalRing.maximalIdeal O = Ideal.span {p}) (hf : Function.Injective f) (hpmem : p IsLocalRing.maximalIdeal O) (hfp : f p 0) :
      Function.Injective fun (y : ιO) (i : ι) => MvPSeries.evalT y (Φ.scaledLog hp hpmem f hfp i)

      Injectivity of the formal logarithm, for the canonical scaled log.

      theorem ChabautyColeman.FormalGroupLaw.evalT_scaledLog_add {O : Type u_4} [CommRing O] [IsLocalRing O] [UniformSpace O] [Fact (IsAdic (IsLocalRing.maximalIdeal O))] [IsUniformAddGroup O] [CompleteSpace O] [T2Space O] [IsTopologicalRing O] {ι : Type u_5} [Fintype ι] [DecidableEq ι] {K : Type u_6} [Field K] [CharZero K] {f : O →+* K} {p : } (Φ : FormalGroupLaw O ι) (hp : Nat.Prime p) (hpm : IsLocalRing.maximalIdeal O = Ideal.span {p}) (hf : Function.Injective f) (hpmem : p IsLocalRing.maximalIdeal O) (hfp : f p 0) (y z : ιO) (i : ι) :
      MvPSeries.evalT (fun (j : ι) => MvPSeries.evalT (Sum.elim y z) (Φ.scaledF p j)) (Φ.scaledLog hp hpmem f hfp i) = MvPSeries.evalT y (Φ.scaledLog hp hpmem f hfp i) + MvPSeries.evalT z (Φ.scaledLog hp hpmem f hfp i)

      Additivity of the formal logarithm, for the canonical scaled log.

      Evaluation of the scaled group law at scaled points #

      theorem ChabautyColeman.FormalGroupLaw.natCast_mul_evalT_scaledF {O : Type u_4} [CommRing O] [IsLocalRing O] [UniformSpace O] [Fact (IsAdic (IsLocalRing.maximalIdeal O))] [IsUniformAddGroup O] [CompleteSpace O] [T2Space O] [IsTopologicalRing O] {ι : Type u_5} (Φ : FormalGroupLaw O ι) [Finite ι] {p : } (hpm : IsLocalRing.maximalIdeal O = Ideal.span {p}) (y : ι ιO) (j : ι) :
      p * MvPSeries.evalT y (Φ.scaledF p j) = MvPSeries.evalT (fun (s : ι ι) => p * y s) (Φ.F j)

      Evaluating the p-scaled group law and rescaling recovers the group law at the p-scaled point: p · (F(py, pz)/p) = F(py, pz) at the level of evalT.