Definitions/Def_ModularCurve_XHDifferentialsModL.lean
Mod- differentials on : supersingular poles, Hecke and Frobenius operators
For a field K, a subgroup \Gamma\le\mathrm{SL}_2(\mathbb Z) and a natural number p, a place v of the q-expansion function field qExpFunctionFieldC K Γ satisfies IsSSPlaceQExp when some element x of that field whose underlying Laurent series is the q-expansion jqModC K takes at v a value a\in K lying in ssJSet p K, i.e. such that every elliptic Weierstrass curve over K with j-invariant a has no nonzero point killed by p. The set of such places is ssPlacesQExp, and ssPolarDifferentials is the K-submodule of \Omega^1 of differentials regular away from these places and with at most a simple pole at each of them (polarDifferentials); regular differentials are contained in it. On Laurent series, qDecimate K p is the K-linear map with k-th coefficient the (pk)-th coefficient of the argument; it is a left inverse of qExpand K p. A K-endomorphism C of \Omega^1 satisfies IsFrobPushDiff when \Theta(C\omega)=\mathrm{qDecimate}_p(\Theta\omega) for all \omega, where \Theta= diffQExp; frobPushDiffModL is a choice of such C when one exists and 0 otherwise, and any two such agree once \Theta is injective.
For level N with character group H' and \ell\ge1, heckeAlphaModLH is the inclusion of q-expansion fields for \Gamma_{H'}(N)\supseteq\Gamma_{H'}(N)\cap\Gamma_0(N\ell), and heckeBetaModLH is the q\mapsto q^{\ell} substitution qExpand K ℓ viewed as an algebra map when HeckeBetaModLHDefined holds (i.e. qExpand K ℓ maps the upper field into the lower), and heckeAlphaModLH otherwise; heckeDiffModLH is the associated correspondence on differentials, trace along \beta of pullback along \alpha. diamondActionModL is a choice of monoid homomorphism \Gamma_0(N)\to\mathrm{Aut}_K satisfying IsDiamondPullbackModL (compatibility with slashing integral q-expansions), or the trivial one; diamondDiffModLH d is pullback along the automorphism attached to a lift of d^{-1}. With p\mid M, infSubgroup is the image of H in (\mathbb Z/(M/p))^\times, and genDiffModL assigns to each Hecke generator CohCarrier.Gen M S an operator on \Omega^1 at level M/p: T_\ell and U_q (q\ne p) give heckeDiffModLH, U_p gives frobPushDiffModL, diamonds give diamondDiffModLH. For K of characteristic p, ssNodePairsQExp consists of pairs (\mathrm{Frob}(v),v) with v supersingular, and twoCompRegularDifferentials is the glued polar module for that set, matching residues with opposite signs; pairUpModL C(\omega)=(C\omega_1,-\omega_1) and pairDiagModL T=T\times T give, via genPairDiffModL, the two-component operators, U_p acting through pairUpModL.
On the forms side, CuspForm.IntTwoCuspForms M H p is TwoCuspForms M H 2 p (⊥ : Subring ℂ) modulo the ideal (p) of \mathbb Z\subset\mathbb C; it is killed by p, hence a \mathbb Z/p-module, with reduction map intTwoCuspReduce from the weight-two integral Hecke lattice and operators intTwoCuspGenMod induced by the Hecke generators. Finally IsInfReductionMap is the predicate on a K-linear map \rho\colon K\otimes_{\mathbb Z/p}\mathrm{IntTwoCuspForms}\to\Omega^1 at level M/p asserting that for every weight-two cusp form f in the integral set with integral q-expansion p_f, the differential q-expansion of \rho(1\otimes\bar f) equals the mod-p reduction intSeriesC K pf of p_f.
Relation to Mathlib
Mathlib has none of these notions: the q-expansion function field, its places and polar differentials, the decimation operator on Laurent series and the Hecke/diamond/Frobenius operators on differentials are the project's own constructions, built on Mathlib's HahnSeries/LaurentSeries, KaehlerDifferential, congruence subgroups and cusp forms.
Where it is used
These are the objects used for the mod-\ell geometry of modular curves in the level-lowering step: differentials with at most simple poles at the supersingular points and the two-component (glued) version model the dualising sheaf of the Deligne–Rapoport model of X_H(M) at p with its two irreducible components crossing at supersingular points, while IsInfReductionMap records the comparison between mod-p weight-two cusp forms and such differentials, compatibly with the Hecke action in which U_p acts through Frobenius push-forward.
References
- H. Darmon, F. Diamond and R. Taylor, Fermat's Last Theorem, in: Current Developments in Mathematics 1995, International Press, 1995, 1–154, §2
- P. Deligne and M. Rapoport, Les schémas de modules de courbes elliptiques, in: Modular Functions of One Variable II, Lecture Notes in Mathematics 349, Springer, 1973, 143–316
- B. Mazur, Modular curves and the Eisenstein ideal, Publications Mathématiques de l'IHÉS 47 (1977), 33–186
References are suggested automatically and have not been individually verified.
English text generated automatically from the Lean source; the Lean statement is authoritative.
- 469 lines
- 65 declarations
- used in the statements of 221 theorems and imported by 248 proofs
- imports 6 definition modules
Source file: Definitions/Def_ModularCurve_XHDifferentialsModL.lean
Imports
Declarations
- def
ModularCurve.IsSSPlaceQExp - def
ModularCurve.ssPlacesQExp - theorem
ModularCurve.mem_ssPlacesQExp_iff - def
ModularCurve.ssPolarDifferentials - theorem
ModularCurve.mem_ssPolarDifferentials_iff - theorem
ModularCurve.regularDifferentials_le_ssPolarDifferentials - theorem
ModularCurve.bddBelow_support_decimate - def
ModularCurve.qDecimate - theorem
ModularCurve.coeff_qDecimate - theorem
ModularCurve.qDecimate_qExpand - def
ModularCurve.IsFrobPushDiff - def
ModularCurve.frobPushDiffModL - theorem
ModularCurve.isFrobPushDiff_frobPushDiffModL - theorem
ModularCurve.frobPushDiffModL_of_not - theorem
ModularCurve.IsFrobPushDiff.eq_of_injective - def
ModularCurve.heckeAlphaModLH - theorem
ModularCurve.coe_heckeAlphaModLH - def
ModularCurve.HeckeBetaModLHDefined - def
ModularCurve.heckeBetaModLHOf - theorem
ModularCurve.coe_heckeBetaModLHOf - def
ModularCurve.heckeBetaModLH - theorem
ModularCurve.heckeBetaModLH_eq - theorem
ModularCurve.heckeBetaModLH_of_not - theorem
ModularCurve.coe_heckeBetaModLH - def
ModularCurve.heckeDiffModLH - theorem
ModularCurve.heckeDiffModLH_apply - def
ModularCurve.diamondActionModL - theorem
ModularCurve.isDiamondPullbackModL_diamondActionModL - theorem
ModularCurve.diamondActionModL_of_not - def
ModularCurve.diamondDiffModLH - theorem
ModularCurve.diamondDiffModLH_apply - def
ModularCurve.infSubgroup - theorem
ModularCurve.mem_infSubgroup_iff - theorem
ModularCurve.unitsMap_mem_infSubgroup - theorem
ModularCurve.neZero_div - def
ModularCurve.genDiffModL - theorem
ModularCurve.genDiffModL_T - theorem
ModularCurve.genDiffModL_U_self - theorem
ModularCurve.genDiffModL_U_of_ne - theorem
ModularCurve.genDiffModL_dia - def
ModularCurve.ssNodePairsQExp - theorem
ModularCurve.mem_ssNodePairsQExp_iff - theorem
ModularCurve.frob_mk_mem_ssNodePairsQExp - def
ModularCurve.twoCompRegularDifferentials - def
ModularCurve.pairUpModL - theorem
ModularCurve.pairUpModL_apply - def
ModularCurve.pairDiagModL - theorem
ModularCurve.pairDiagModL_apply - def
ModularCurve.genPairDiffModL - abbrev
CuspForm.intIdeal - theorem
CuspForm.natCast_mem_intIdeal - def
CuspForm.IntTwoCuspForms - instance
CuspForm.instAddCommGroupIntTwoCuspForms - def
CuspForm.IntTwoCuspForms.equivTwoCuspForms - theorem
CuspForm.IntTwoCuspForms.nsmul_eq_zero - instance
CuspForm.instModuleZModIntTwoCuspForms - def
CuspForm.intTwoCuspReduce - theorem
CuspForm.intTwoCuspReduce_apply - theorem
CuspForm.intTwoCuspReduce_surjective - def
CuspForm.intTwoCuspGenModAdd - def
CuspForm.intTwoCuspGenMod - theorem
CuspForm.intTwoCuspGenMod_apply - theorem
CuspForm.intTwoCuspGenMod_reduce - def
ModularCurve.IsInfReductionMap - theorem
ModularCurve.IsInfReductionMap.diffQExp_apply
Source
import Mathlib import Definitions.Def_ModularCurve_XHDiamondModL import Definitions.Def_ModularCurve_QExpFrobeniusModL import Definitions.Def_ModularCurve_HeckeDifferential import Definitions.Def_AlgebraicCurve_PolarDifferentials import Definitions.Def_ModularCurve_SupersingularModuli import Definitions.Def_CuspForm_TwoCuspLattice set_option autoImplicit false noncomputable section open HahnSeries KaehlerDifferential AlgebraicCurve IntermediateField CongruenceSubgroup open scoped MatrixGroups namespace ModularCurve section Supersingular variable (K : Type*) [Field K] (Γ : Subgroup SL(2, ℤ)) (p : ℕ) def IsSSPlaceQExp (v : Place K (qExpFunctionFieldC K Γ)) : Prop := ∃ (x : qExpFunctionFieldC K Γ) (a : K), (x : LaurentSeries K) = jqModC K ∧ v.HasValue x a ∧ a ∈ @ssJSet p K _ (Classical.decEq K) def ssPlacesQExp : Set (Place K (qExpFunctionFieldC K Γ)) := {v | IsSSPlaceQExp K Γ p v} variable {K Γ p} in theorem mem_ssPlacesQExp_iff (v : Place K (qExpFunctionFieldC K Γ)) : v ∈ ssPlacesQExp K Γ p ↔ IsSSPlaceQExp K Γ p v := Iff.rfl def ssPolarDifferentials : Submodule K Ω[qExpFunctionFieldC K Γ⁄K] := polarDifferentials K (qExpFunctionFieldC K Γ) (ssPlacesQExp K Γ p) variable {K Γ p} in theorem mem_ssPolarDifferentials_iff (ω : Ω[qExpFunctionFieldC K Γ⁄K]) : ω ∈ ssPolarDifferentials K Γ p ↔ ∀ v : Place K (qExpFunctionFieldC K Γ), (v ∉ ssPlacesQExp K Γ p → v.IsRegularAt ω) ∧ (v ∈ ssPlacesQExp K Γ p → v.HasSimplePoleAt ω) := Iff.rfl theorem regularDifferentials_le_ssPolarDifferentials : regularDifferentials K (qExpFunctionFieldC K Γ) ≤ ssPolarDifferentials K Γ p := regularDifferentials_le_polarDifferentials _ end Supersingular section Decimate variable (K : Type*) [Field K] (p : ℕ) [NeZero p] variable {K p} in private theorem bddBelow_support_decimate (x : LaurentSeries K) : BddBelow (Function.support fun k : ℤ => x.coeff ((p : ℤ) * k)) := by by_cases hne : x.support.Nonempty · refine ⟨min (x.isWF_support.min hne) 0, fun k hk => ?_⟩ have hk' : (p : ℤ) * k ∈ x.support := hk have hmin := x.isWF_support.min_le hne hk' have hp : (1 : ℤ) ≤ p := by exact_mod_cast Nat.one_le_iff_ne_zero.mpr (NeZero.ne p) rcases le_or_gt 0 k with h0 | h0 · exact (min_le_right _ _).trans h0 · have : (p : ℤ) * k ≤ k := by nlinarith exact (min_le_left _ _).trans (hmin.trans this) · rw [Set.not_nonempty_iff_eq_empty] at hne refine ⟨0, fun k hk => ?_⟩ exfalso have : (p : ℤ) * k ∈ x.support := hk rw [hne] at this exact this def qDecimate : LaurentSeries K →ₗ[K] LaurentSeries K where toFun x := HahnSeries.ofSuppBddBelow (fun k : ℤ => x.coeff ((p : ℤ) * k)) (bddBelow_support_decimate x) map_add' x y := by ext k simp only [HahnSeries.coeff_ofSuppBddBelow, HahnSeries.coeff_add] map_smul' c x := by ext k simp only [HahnSeries.coeff_ofSuppBddBelow, HahnSeries.coeff_smul, RingHom.id_apply] @[simp] theorem coeff_qDecimate (x : LaurentSeries K) (k : ℤ) : (qDecimate K p x).coeff k = x.coeff ((p : ℤ) * k) := by simp only [qDecimate, LinearMap.coe_mk, AddHom.coe_mk, HahnSeries.coeff_ofSuppBddBelow] theorem qDecimate_qExpand (x : LaurentSeries K) : qDecimate K p (qExpand K p x) = x := by ext k rw [coeff_qDecimate, qExpand_coeff_mul] end Decimate section FrobPush variable (K : Type*) [Field K] (Γ : Subgroup SL(2, ℤ)) (p : ℕ) [NeZero p] def IsFrobPushDiff (C : Ω[qExpFunctionFieldC K Γ⁄K] →ₗ[K] Ω[qExpFunctionFieldC K Γ⁄K]) : Prop := ∀ ω : Ω[qExpFunctionFieldC K Γ⁄K], diffQExp (qExpFunctionFieldC K Γ) (C ω) = qDecimate K p (diffQExp (qExpFunctionFieldC K Γ) ω) open Classical in def frobPushDiffModL : Ω[qExpFunctionFieldC K Γ⁄K] →ₗ[K] Ω[qExpFunctionFieldC K Γ⁄K] := if h : ∃ C : Ω[qExpFunctionFieldC K Γ⁄K] →ₗ[K] Ω[qExpFunctionFieldC K Γ⁄K], IsFrobPushDiff K Γ p C then h.choose else 0 variable {K Γ p} theorem isFrobPushDiff_frobPushDiffModL (h : ∃ C : Ω[qExpFunctionFieldC K Γ⁄K] →ₗ[K] Ω[qExpFunctionFieldC K Γ⁄K], IsFrobPushDiff K Γ p C) : IsFrobPushDiff K Γ p (frobPushDiffModL K Γ p) := by rw [frobPushDiffModL, dif_pos h] exact h.choose_spec theorem frobPushDiffModL_of_not (h : ¬ ∃ C : Ω[qExpFunctionFieldC K Γ⁄K] →ₗ[K] Ω[qExpFunctionFieldC K Γ⁄K], IsFrobPushDiff K Γ p C) : frobPushDiffModL K Γ p = 0 := by rw [frobPushDiffModL, dif_neg h] theorem IsFrobPushDiff.eq_of_injective {C C' : Ω[qExpFunctionFieldC K Γ⁄K] →ₗ[K] Ω[qExpFunctionFieldC K Γ⁄K]} (hC : IsFrobPushDiff K Γ p C) (hC' : IsFrobPushDiff K Γ p C') (hinj : Function.Injective (diffQExp (qExpFunctionFieldC K Γ))) : C = C' := by refine LinearMap.ext fun ω => hinj ?_ rw [hC ω, hC' ω] end FrobPush section HeckeDiff variable (K : Type*) [Field K] (N : ℕ) (H' : Subgroup (ZMod N)ˣ) (ℓ : ℕ) [NeZero ℓ] def heckeAlphaModLH : qExpFunctionFieldC K (CohCarrier.GammaH N H') →ₐ[K] qExpFunctionFieldC K (CohCarrier.GammaH N H' ⊓ Gamma0 (N * ℓ)) := IntermediateField.inclusion (qExpFunctionFieldC_mono K inf_le_left) omit [NeZero ℓ] in @[simp] theorem coe_heckeAlphaModLH (x : qExpFunctionFieldC K (CohCarrier.GammaH N H')) : (heckeAlphaModLH K N H' ℓ x : LaurentSeries K) = (x : LaurentSeries K) := IntermediateField.coe_inclusion _ x def HeckeBetaModLHDefined : Prop := ∀ y ∈ qExpFunctionFieldC K (CohCarrier.GammaH N H'), qExpand K ℓ y ∈ qExpFunctionFieldC K (CohCarrier.GammaH N H' ⊓ Gamma0 (N * ℓ)) def heckeBetaModLHOf (h : HeckeBetaModLHDefined K N H' ℓ) : qExpFunctionFieldC K (CohCarrier.GammaH N H') →ₐ[K] qExpFunctionFieldC K (CohCarrier.GammaH N H' ⊓ Gamma0 (N * ℓ)) where toFun x := ⟨qExpand K ℓ (x : LaurentSeries K), h x x.2⟩ map_one' := Subtype.ext (map_one (qExpand K ℓ)) map_mul' _ _ := Subtype.ext (map_mul (qExpand K ℓ) _ _) map_zero' := Subtype.ext (map_zero (qExpand K ℓ)) map_add' _ _ := Subtype.ext (map_add (qExpand K ℓ) _ _) commutes' a := Subtype.ext <| by show qExpand K ℓ (algebraMap K (LaurentSeries K) a) = algebraMap K (LaurentSeries K) a rw [algebraMap_laurentSeries_eq_single, qExpand_single, mul_zero] @[simp] theorem coe_heckeBetaModLHOf (h : HeckeBetaModLHDefined K N H' ℓ) (x : qExpFunctionFieldC K (CohCarrier.GammaH N H')) : (heckeBetaModLHOf K N H' ℓ h x : LaurentSeries K) = qExpand K ℓ (x : LaurentSeries K) := rfl open Classical in def heckeBetaModLH : qExpFunctionFieldC K (CohCarrier.GammaH N H') →ₐ[K] qExpFunctionFieldC K (CohCarrier.GammaH N H' ⊓ Gamma0 (N * ℓ)) := if h : HeckeBetaModLHDefined K N H' ℓ then heckeBetaModLHOf K N H' ℓ h else heckeAlphaModLH K N H' ℓ theorem heckeBetaModLH_eq (h : HeckeBetaModLHDefined K N H' ℓ) : heckeBetaModLH K N H' ℓ = heckeBetaModLHOf K N H' ℓ h := by rw [heckeBetaModLH, dif_pos h] theorem heckeBetaModLH_of_not (h : ¬ HeckeBetaModLHDefined K N H' ℓ) : heckeBetaModLH K N H' ℓ = heckeAlphaModLH K N H' ℓ := by rw [heckeBetaModLH, dif_neg h] theorem coe_heckeBetaModLH (h : HeckeBetaModLHDefined K N H' ℓ) (x : qExpFunctionFieldC K (CohCarrier.GammaH N H')) : (heckeBetaModLH K N H' ℓ x : LaurentSeries K) = qExpand K ℓ (x : LaurentSeries K) := by rw [heckeBetaModLH_eq K N H' ℓ h, coe_heckeBetaModLHOf] def heckeDiffModLH : Ω[qExpFunctionFieldC K (CohCarrier.GammaH N H')⁄K] →ₗ[K] Ω[qExpFunctionFieldC K (CohCarrier.GammaH N H')⁄K] := Differential.correspondence (heckeBetaModLH K N H' ℓ) (heckeAlphaModLH K N H' ℓ) theorem heckeDiffModLH_apply (ω : Ω[qExpFunctionFieldC K (CohCarrier.GammaH N H')⁄K]) : heckeDiffModLH K N H' ℓ ω = Differential.traceAlong (heckeBetaModLH K N H' ℓ) (Differential.pullbackAlong (heckeAlphaModLH K N H' ℓ) ω) := rfl end HeckeDiff section DiamondDiff variable (K : Type*) [Field K] (N : ℕ) (H' : Subgroup (ZMod N)ˣ) open Classical in def diamondActionModL : Gamma0 N →* (qExpFunctionFieldC K (CohCarrier.GammaH N H') ≃ₐ[K] qExpFunctionFieldC K (CohCarrier.GammaH N H')) := if h : ∃ ρ : Gamma0 N →* (qExpFunctionFieldC K (CohCarrier.GammaH N H') ≃ₐ[K] qExpFunctionFieldC K (CohCarrier.GammaH N H')), IsDiamondPullbackModL K N H' ρ then h.choose else 1 variable {K N H'} theorem isDiamondPullbackModL_diamondActionModL (h : ∃ ρ : Gamma0 N →* (qExpFunctionFieldC K (CohCarrier.GammaH N H') ≃ₐ[K] qExpFunctionFieldC K (CohCarrier.GammaH N H')), IsDiamondPullbackModL K N H' ρ) : IsDiamondPullbackModL K N H' (diamondActionModL K N H') := by rw [diamondActionModL, dif_pos h] exact h.choose_spec theorem diamondActionModL_of_not (h : ¬ ∃ ρ : Gamma0 N →* (qExpFunctionFieldC K (CohCarrier.GammaH N H') ≃ₐ[K] qExpFunctionFieldC K (CohCarrier.GammaH N H')), IsDiamondPullbackModL K N H' ρ) : diamondActionModL K N H' = 1 := by rw [diamondActionModL, dif_neg h] variable (K N H') variable [NeZero N] def diamondDiffModLH (d : (ZMod N)ˣ) : Ω[qExpFunctionFieldC K (CohCarrier.GammaH N H')⁄K] →ₗ[K] Ω[qExpFunctionFieldC K (CohCarrier.GammaH N H')⁄K] := Differential.pullbackAlong (diamondActionModL K N H' (CuspForm.gammaLift N d⁻¹)).toAlgHom theorem diamondDiffModLH_apply (d : (ZMod N)ˣ) (ω : Ω[qExpFunctionFieldC K (CohCarrier.GammaH N H')⁄K]) : diamondDiffModLH K N H' d ω = Differential.pullbackAlong (diamondActionModL K N H' (CuspForm.gammaLift N d⁻¹)).toAlgHom ω := rfl end DiamondDiff section GenFamily variable (K : Type*) [Field K] (p M : ℕ) [Fact p.Prime] [NeZero M] (H : Subgroup (ZMod M)ˣ) (hpM : p ∣ M) def infSubgroup : Subgroup (ZMod (M / p))ˣ := H.map (ZMod.unitsMap (Nat.div_dvd_of_dvd hpM)) omit [Fact p.Prime] [NeZero M] in theorem mem_infSubgroup_iff (u : (ZMod (M / p))ˣ) : u ∈ infSubgroup p M H hpM ↔ ∃ d ∈ H, ZMod.unitsMap (Nat.div_dvd_of_dvd hpM) d = u := Subgroup.mem_map omit [Fact p.Prime] [NeZero M] in theorem unitsMap_mem_infSubgroup {d : (ZMod M)ˣ} (hd : d ∈ H) : ZMod.unitsMap (Nat.div_dvd_of_dvd hpM) d ∈ infSubgroup p M H hpM := Subgroup.mem_map_of_mem _ hd include hpM in theorem neZero_div : NeZero (M / p) := ⟨(Nat.div_ne_zero_iff_of_dvd hpM).mpr ⟨NeZero.ne M, (Fact.out : p.Prime).ne_zero⟩⟩ variable (S : Set ℕ) def genDiffModL : CohCarrier.Gen M S → (Ω[qExpFunctionFieldC K (CohCarrier.GammaH (M / p) (infSubgroup p M H hpM))⁄K] →ₗ[K] Ω[qExpFunctionFieldC K (CohCarrier.GammaH (M / p) (infSubgroup p M H hpM))⁄K]) | .T ℓ hℓ _ _ => haveI : NeZero ℓ := ⟨hℓ.ne_zero⟩; heckeDiffModLH K (M / p) (infSubgroup p M H hpM) ℓ | .U q hq _ => if q = p then haveI : NeZero p := ⟨(Fact.out : p.Prime).ne_zero⟩ frobPushDiffModL K (CohCarrier.GammaH (M / p) (infSubgroup p M H hpM)) p else haveI : NeZero q := ⟨hq.ne_zero⟩; heckeDiffModLH K (M / p) (infSubgroup p M H hpM) q | .dia d => haveI : NeZero (M / p) := neZero_div p M hpM diamondDiffModLH K (M / p) (infSubgroup p M H hpM) (ZMod.unitsMap (Nat.div_dvd_of_dvd hpM) d) theorem genDiffModL_T (ℓ : ℕ) (hℓ : ℓ.Prime) (hℓS : ℓ ∉ S) (hℓM : ¬ ℓ ∣ M) : genDiffModL K p M H hpM S (.T ℓ hℓ hℓS hℓM) = (haveI : NeZero ℓ := ⟨hℓ.ne_zero⟩; heckeDiffModLH K (M / p) (infSubgroup p M H hpM) ℓ) := rfl theorem genDiffModL_U_self (hp : p.Prime) (hpM' : p ∣ M) : genDiffModL K p M H hpM S (.U p hp hpM') = (haveI : NeZero p := ⟨(Fact.out : p.Prime).ne_zero⟩; frobPushDiffModL K (CohCarrier.GammaH (M / p) (infSubgroup p M H hpM)) p) := by simp only [genDiffModL, if_true] theorem genDiffModL_U_of_ne (q : ℕ) (hq : q.Prime) (hqM : q ∣ M) (hqp : q ≠ p) : genDiffModL K p M H hpM S (.U q hq hqM) = (haveI : NeZero q := ⟨hq.ne_zero⟩; heckeDiffModLH K (M / p) (infSubgroup p M H hpM) q) := by simp only [genDiffModL, if_neg hqp] theorem genDiffModL_dia (d : (ZMod M)ˣ) : genDiffModL K p M H hpM S (.dia d) = (haveI : NeZero (M / p) := neZero_div p M hpM; diamondDiffModLH K (M / p) (infSubgroup p M H hpM) (ZMod.unitsMap (Nat.div_dvd_of_dvd hpM) d)) := rfl end GenFamily section TwoComponent variable (K : Type*) [Field K] (Γ : Subgroup SL(2, ℤ)) (p : ℕ) [Fact p.Prime] [CharP K p] def ssNodePairsQExp : Set (Place K (qExpFunctionFieldC K Γ) × Place K (qExpFunctionFieldC K Γ)) := {s | s.2 ∈ ssPlacesQExp K Γ p ∧ s.1 = qExpFrobeniusPlaceModL K Γ p s.2} variable {K Γ p} in theorem mem_ssNodePairsQExp_iff (s : Place K (qExpFunctionFieldC K Γ) × Place K (qExpFunctionFieldC K Γ)) : s ∈ ssNodePairsQExp K Γ p ↔ s.2 ∈ ssPlacesQExp K Γ p ∧ s.1 = qExpFrobeniusPlaceModL K Γ p s.2 := Iff.rfl variable {K Γ p} in theorem frob_mk_mem_ssNodePairsQExp {y : Place K (qExpFunctionFieldC K Γ)} (hy : y ∈ ssPlacesQExp K Γ p) : (qExpFrobeniusPlaceModL K Γ p y, y) ∈ ssNodePairsQExp K Γ p := ⟨hy, rfl⟩ def twoCompRegularDifferentials : Submodule K (Ω[qExpFunctionFieldC K Γ⁄K] × Ω[qExpFunctionFieldC K Γ⁄K]) := gluedPolarDifferentials K (qExpFunctionFieldC K Γ) (ssNodePairsQExp K Γ p) end TwoComponent section PairOperators variable {K : Type*} [Field K] {V : Type*} [AddCommGroup V] [Module K V] def pairUpModL (C : V →ₗ[K] V) : (V × V) →ₗ[K] (V × V) := LinearMap.prod (C ∘ₗ LinearMap.fst K V V) (-LinearMap.fst K V V) @[simp] theorem pairUpModL_apply (C : V →ₗ[K] V) (ω : V × V) : pairUpModL C ω = (C ω.1, -ω.1) := rfl def pairDiagModL (T : V →ₗ[K] V) : (V × V) →ₗ[K] (V × V) := LinearMap.prodMap T T @[simp] theorem pairDiagModL_apply (T : V →ₗ[K] V) (ω : V × V) : pairDiagModL T ω = (T ω.1, T ω.2) := rfl end PairOperators section GenPair variable (K : Type*) [Field K] (p M : ℕ) [Fact p.Prime] [NeZero M] (H : Subgroup (ZMod M)ˣ) (hpM : p ∣ M) (S : Set ℕ) def genPairDiffModL (g : CohCarrier.Gen M S) : (Ω[qExpFunctionFieldC K (CohCarrier.GammaH (M / p) (infSubgroup p M H hpM))⁄K] × Ω[qExpFunctionFieldC K (CohCarrier.GammaH (M / p) (infSubgroup p M H hpM))⁄K]) →ₗ[K] (Ω[qExpFunctionFieldC K (CohCarrier.GammaH (M / p) (infSubgroup p M H hpM))⁄K] × Ω[qExpFunctionFieldC K (CohCarrier.GammaH (M / p) (infSubgroup p M H hpM))⁄K]) := match g with | .U q _ _ => if q = p then pairUpModL (genDiffModL K p M H hpM S g) else pairDiagModL (genDiffModL K p M H hpM S g) | _ => pairDiagModL (genDiffModL K p M H hpM S g) end GenPair end ModularCurve namespace CuspForm variable (M : ℕ) [NeZero M] (H : Subgroup (ZMod M)ˣ) (p : ℕ) abbrev intIdeal : Ideal (⊥ : Subring ℂ) := Ideal.span {(p : (⊥ : Subring ℂ))} theorem natCast_mem_intIdeal : (p : (⊥ : Subring ℂ)) ∈ intIdeal p := Ideal.subset_span rfl def IntTwoCuspForms : Type := TwoCuspForms M H 2 p (⊥ : Subring ℂ) (intIdeal p) instance instAddCommGroupIntTwoCuspForms : AddCommGroup (IntTwoCuspForms M H p) := inferInstanceAs (AddCommGroup (TwoCuspForms M H 2 p (⊥ : Subring ℂ) (intIdeal p))) def IntTwoCuspForms.equivTwoCuspForms : IntTwoCuspForms M H p ≃+ TwoCuspForms M H 2 p (⊥ : Subring ℂ) (intIdeal p) := AddEquiv.refl _ theorem IntTwoCuspForms.nsmul_eq_zero (x : IntTwoCuspForms M H p) : p • x = 0 := by change p • (x : TwoCuspForms M H 2 p (⊥ : Subring ℂ) (intIdeal p)) = 0 obtain ⟨y, rfl⟩ := twoCuspReduce_surjective M H 2 p (⊥ : Subring ℂ) (intIdeal p) x have h : p • twoCuspReduce (intIdeal p) y = twoCuspReduce (intIdeal p) (p • y) := (map_nsmul (twoCuspReduce (M := M) (H := H) (k := 2) (p := p) (A := (⊥ : Subring ℂ)) (intIdeal p)) p y).symm refine h.trans ((twoCuspReduce_eq_zero_iff (M := M) (H := H) (k := 2) (p := p) (A := (⊥ : Subring ℂ)) (intIdeal p) (p • y)).mpr ?_) rw [← Nat.cast_smul_eq_nsmul (⊥ : Subring ℂ)] exact Submodule.smul_mem_smul (natCast_mem_intIdeal p) Submodule.mem_top variable [Fact p.Prime] instance instModuleZModIntTwoCuspForms : Module (ZMod p) (IntTwoCuspForms M H p) := AddCommGroup.zmodModule (IntTwoCuspForms.nsmul_eq_zero M H p) omit [Fact p.Prime] in def intTwoCuspReduce : twoCuspLattice M H 2 p (⊥ : Subring ℂ) →+ IntTwoCuspForms M H p := (twoCuspReduce (M := M) (H := H) (k := 2) (p := p) (A := (⊥ : Subring ℂ)) (intIdeal p)).toAddMonoidHom omit [Fact p.Prime] in theorem intTwoCuspReduce_apply (x : twoCuspLattice M H 2 p (⊥ : Subring ℂ)) : intTwoCuspReduce M H p x = (twoCuspReduce (intIdeal p) x : TwoCuspForms M H 2 p (⊥ : Subring ℂ) (intIdeal p)) := rfl omit [Fact p.Prime] in theorem intTwoCuspReduce_surjective : Function.Surjective (intTwoCuspReduce M H p) := twoCuspReduce_surjective M H 2 p (⊥ : Subring ℂ) (intIdeal p) omit [Fact p.Prime] in def intTwoCuspGenModAdd (S : Set ℕ) (g : CohCarrier.Gen M S) : IntTwoCuspForms M H p →+ IntTwoCuspForms M H p := (twoCuspGenMod (M := M) (H := H) (k := 2) (p := p) (A := (⊥ : Subring ℂ)) (intIdeal p) S g).toAddMonoidHom def intTwoCuspGenMod (S : Set ℕ) (g : CohCarrier.Gen M S) : IntTwoCuspForms M H p →ₗ[ZMod p] IntTwoCuspForms M H p := (intTwoCuspGenModAdd M H p S g).toZModLinearMap p theorem intTwoCuspGenMod_apply (S : Set ℕ) (g : CohCarrier.Gen M S) (x : IntTwoCuspForms M H p) : intTwoCuspGenMod M H p S g x = (twoCuspGenMod (intIdeal p) S g (x : TwoCuspForms M H 2 p (⊥ : Subring ℂ) (intIdeal p)) : TwoCuspForms M H 2 p (⊥ : Subring ℂ) (intIdeal p)) := rfl theorem intTwoCuspGenMod_reduce (S : Set ℕ) (g : CohCarrier.Gen M S) (x : twoCuspLattice M H 2 p (⊥ : Subring ℂ)) : intTwoCuspGenMod M H p S g (intTwoCuspReduce M H p x) = intTwoCuspReduce M H p (twoCuspEnd ⟨heckeGenH S 2 g, heckeGenH_mem_heckeRingH S 2 g⟩ x) := rfl end CuspForm namespace ModularCurve open scoped TensorProduct variable (K : Type*) [Field K] (p M : ℕ) [Fact p.Prime] [NeZero M] (H : Subgroup (ZMod M)ˣ) (hpM : p ∣ M) [Algebra (ZMod p) K] def IsInfReductionMap (ρ : K ⊗[ZMod p] CuspForm.IntTwoCuspForms M H p →ₗ[K] Ω[qExpFunctionFieldC K (CohCarrier.GammaH (M / p) (infSubgroup p M H hpM))⁄K]) : Prop := ∀ (f : CuspForm (CohCarrier.GammaH M H) 2) (hf : f ∈ CuspForm.twoCuspIntegralSet M H 2 p (⊥ : Subring ℂ)) (pf : PowerSeries ℤ), IsIntegralQExp f pf → diffQExp (qExpFunctionFieldC K (CohCarrier.GammaH (M / p) (infSubgroup p M H hpM))) (ρ ((1 : K) ⊗ₜ[ZMod p] CuspForm.intTwoCuspReduce M H p ⟨f, CuspForm.twoCuspIntegralSet_subset_twoCuspLattice M H 2 p ⊥ hf⟩)) = intSeriesC K pf variable {K p M H hpM} in theorem IsInfReductionMap.diffQExp_apply {ρ : K ⊗[ZMod p] CuspForm.IntTwoCuspForms M H p →ₗ[K] Ω[qExpFunctionFieldC K (CohCarrier.GammaH (M / p) (infSubgroup p M H hpM))⁄K]} (hρ : IsInfReductionMap K p M H hpM ρ) {f : CuspForm (CohCarrier.GammaH M H) 2} (hf : f ∈ CuspForm.twoCuspIntegralSet M H 2 p (⊥ : Subring ℂ)) {pf : PowerSeries ℤ} (hpf : IsIntegralQExp f pf) : diffQExp (qExpFunctionFieldC K (CohCarrier.GammaH (M / p) (infSubgroup p M H hpM))) (ρ ((1 : K) ⊗ₜ[ZMod p] CuspForm.intTwoCuspReduce M H p ⟨f, CuspForm.twoCuspIntegralSet_subset_twoCuspLattice M H 2 p ⊥ hf⟩)) = intSeriesC K pf := hρ f hf pf hpf end ModularCurve end
Statements phrased using this module (221)
- Frobenius shift permutes supersingular node pairs
ModularCurve.exists_equiv_forall_apply_fst_snd_eq_fst_fst_of_forall_mem_iff_mem_ssNodePairsQExp4 below · depth 11 - Γ_H(M)≤Γ_{H'}(M/p) for H' the reduction of H
ModularCurve.GammaH_le_GammaH_div_infSubgroup0 below · depth 12 - Second Atkin–Lehner q-expansion pin from the first
ModularCurve.atkinLehner_qExpand_pin_of_pin231 below · depth 12 - Degeneracy push-forwards J_H(M) → J_{H'}(M/p) on divisor classes
ModularCurve.exists_degPts_mk_eq_mk_pushforwardAlong33 below · depth 12 - Both degeneracy embeddings have degree p+1 when p ‖ M
ModularCurve.finrankAlong_eq_add_one_and_finrankAlong_eq_add_one_of_coe_eq_qExpand247 below · depth 12 - Pinned automorphism intertwines degeneracy maps and divisor-class pullback
ModularCurve.heckeBetaHBar_pins_and_smul_pullbackAlongHom_of_qExpand_pins5 below · depth 12 - Frobenius permutes the supersingular q-expansion places
ModularCurve.image_qExpFrobeniusPlaceModL_ssPlacesQExp_eq2 below · depth 12 - The q-expansion Frobenius acts bijectively on places
ModularCurve.qExpFrobeniusPlaceModL_bijective2 below · depth 12 - Atkin–Lehner automorphism at p ∥ M commutes with diamonds
ModularCurve.algEquiv_diamondAutHBar_comm_of_qExpand_of_diamondAutHBar_div277 below · depth 13 - Automorphisms fixing the level-M/p subfield are the identity
ModularCurve.algEquiv_eq_refl_of_forall_coe_eq_infSubgroup226 below · depth 13 - Compatibility of rational diamond actions at levels M and M/p
ModularCurve.coe_ringAut_gamma0_apply_eq_of_coe_eq_infSubgroup105 below · depth 13 - Square law ⟨ d⟩ θ²=id for the Atkin–Lehner automorphism
ModularCurve.diamondAutHBar_algEquiv_algEquiv_eq_self_of_qExpand_of_diamondAutHBar_div_of_unitsMap_mul_eq_one277 below · depth 13 - Rational Atkin–Lehner automorphism at p ∥ M
ModularCurve.exists_ratAlgEquiv_atkinLehner_gammaH_qExpand_diamondAutHBar69 below · depth 13 - Finiteness of the supersingular places of X(Γ)
ModularCurve.finite_ssPlacesQExp59 below · depth 13 - Existence of supersingular places on X(Γ) in characteristic p
ModularCurve.nonempty_ssPlacesQExp93 below · depth 13 - q↦ qᵖ sends the level M/p function field into level M
ModularCurve.qExpand_mem_xHFunctionField_of_mem_div3 below · depth 13 - Diamond automorphisms at levels M and M/p agree
ModularCurve.coe_diamondAutHBar_eq_coe_diamondAutHBar_div_of_coe_eq110 below · depth 14 - Diamonds commute with the degeneracy map q ↦ qᵖ
ModularCurve.coe_diamondAutHBar_eq_qExpand_coe_diamondAutHBar_div_of_coe_eq_qExpand67 below · depth 14 - Degeneracy conjugation: (a,pb;c/p,d)∈Γ_{H'}(M/p)
ModularCurve.exists_conj_mem_GammaH_div0 below · depth 14 - Compositum of level M/p q-expansions and their q↦ qᵖ translates
ModularCurve.xHFunctionFieldBar_div_sup_adjoin_qExpand_eq_xHFunctionFieldBar179 below · depth 14 - q-expansion field of X_H(M) generated by j(qᵖ)
ModularCurve.xHFunctionFieldBar_div_sup_adjoin_qExpand_jqModC_eq_xHFunctionFieldBar178 below · depth 14 - Degeneracy compositum for Γ_{H'}(N)∩Γ₀(Nq) over a base field L
ModularCurve.laurentBaseChange_xHFunctionField_sup_adjoin_qExpand_eq_laurentBaseChange_xHTopFunctionFieldC177 below · depth 15 - Mod p q-expansion field of X_H(M) lies in that of X_{H'}(M/p)
ModularCurve.qExpFunctionFieldC_gammaH_le_qExpFunctionFieldC_gammaH_infSubgroup130 below · depth 15 - Two generators for an ordinary p-distinguished corner of H¹
CohCarrier.exists_span_pair_union_ker_smul_eq_top_cornerSubmodule_H1_of_isAbsolutelyIrreducible_of_ordinary_of_level_trivial_at_p_of_mem_infSubgroup4,918 below · depth 16 - Ordinary p-distinguished corner of H¹: free line plus 𝒪-dual
CohCarrier.exists_isCompl_linearEquiv_cornerRing_linearEquiv_dual_cornerSubmodule_H1_of_ordinary_of_level_trivial_at_p_of_mem_infSubgroup4,901 below · depth 17 - Galois-stable Hecke line and dual quotient mod r in e H¹
CohCarrier.exists_galoisAction_ordinaryLine_mod_cornerSubmodule_H1_of_ordinary_of_level_trivial_at_p_of_mem_infSubgroup4,899 below · depth 18 - Ordinary filtration mod r on a corner of H¹
CohCarrier.exists_galoisAction_ordinaryFiltration_quotient_dual_mod_cornerSubmodule_H1_of_ordinary_of_level_trivial_at_p_of_mem_infSubgroup4,879 below · depth 19 - Ordinary filtration, trace and determinant mod r on a non-Eisenstein corner
CohCarrier.exists_galoisAction_trace_ordinaryFiltration_quotient_dual_mod_cornerSubmodule_H1_of_ordinary_of_not_isEisenstein_of_mem_infSubgroup4,877 below · depth 20 - Integral matrix form of the ordinary p-adic package on Γ_H(M)
CohCarrier.exists_intMatrix_galoisRep_ordinaryFiltration_parabolicHoms_padicInt_of_ordinary_of_not_isEisenstein_of_mem_infSubgroup4,873 below · depth 21 - Ordinary Galois representation on a non-Eisenstein corner of parabolic cohomology
CohCarrier.exists_galoisRep_ordinaryFiltration_cornerSubmodule_parabolicHoms_padicInt_of_ordinary_of_not_isEisenstein_of_mem_infSubgroup4,870 below · depth 22 - Inertia-fixed ℓ-adic vectors on J_H(M) are monodromy plus p-old
ModularCurve.JH.exists_pow_smul_mem_span_inertia_sub_sup_old_of_rep_eq_self_tateModule_of_dvd_of_not_sq_dvd3,585 below · depth 22 - Forgetful pull-backs commute with the two degeneracy pull-backs
ModularCurve.JH.pullbackAlongHom_pullbackAlongHom_eq_degeneracyPullbackPair_pullbackAlongHom3 below · depth 22 - Rank-one multiplicative submodule at an ordinary non-Eisenstein corner
ModularCurve.exists_generator_multiplicativeSubmodule_cornerSubmodule_tateModule_jH_of_ordinary_of_not_isEisenstein_of_mem_infSubgroup4,863 below · depth 23 - Multiplicity one mod 𝔪 for the ordinary multiplicative part
ModularCurve.exists_forall_sub_smul_mem_maximalIdeal_smul_multiplicativeSubmodule_tateModule_jH_of_ordinary_of_not_isEisenstein_of_mem_infSubgroup4,783 below · depth 24 - Compatible Fricke involutions on X₁(M), X_H(M) and X_{H'}(M/p)
ModularCurve.exists_frickeAlgEquiv_triple_x1_xH_galois_smul_and_apply_inclusion_eq_and_forall_apply_degeneracy_eq83 below · depth 24 - Degeneracy pair [[1,F^*],[F^*,⟨ d⟩]] is an ℓ-power-torsion isogeny
ModularCurve.exists_nsmul_eq_zero_and_exists_eq_frobeniusDegeneracyPair_torsion_qExpFunctionFieldC_of_ne1,430 below · depth 24 - Fricke-orthogonal diamond-fixed vectors are p-old modulo inertia coboundaries
ModularCurve.exists_pow_smul_mem_span_degeneracy_inertiaAugmentation_of_forall_weilPairing_fricke_eq_zero_diamondFixed_tateModule_jOne_of_dvd_of_not_sq_dvd3,305 below · depth 24 - Fricke stability of a toric lattice in Tₚ J_H(M), up to p-powers
ModularCurve.JH.exists_pow_smul_tateEnd_fricke_mem_toricLattice_of_degeneracySwap0 below · depth 25 - Injectivity of the degeneracy Gram operator on Tate modules
ModularCurve.JH.tateModule_eq_zero_of_forall_pushforwardAlongHom_degeneracy_eq_zero903 below · depth 25 - Diamond tokens are multiplicative and trivial on H'
ModularCurve.diamondActionModL_gammaLift_mul_and_eq_one_of_mem_and_ofAlgAut_smul4 below · depth 25 - Degeneracy inclusion of ℚ̄-function fields of X_H
ModularCurve.exists_algHom_xHFunctionFieldBar_div_infSubgroup_isIntegral_and_coe_eq4 below · depth 25 - Ordinary multiplicative submodule dual to mod-p two-cusp eigenspace
ModularCurve.exists_linearMap_bijOn_semilinearMaps_multiplicativeSubmodule_tateModule_jH_twoCuspEigenspace_of_ordinary_of_mem_infSubgroup4,749 below · depth 25 - Diamond automorphisms commute with Frobenius on places
ModularCurve.qExpFrobeniusPlaceModL_ofAlgAut_diamondActionModL_smul260 below · depth 25 - Frobenius pushforward commutes with diamond operators on Pic⁰
ModularCurve.qExpFrobeniusPushforwardModL_ofAlgAut_diamondActionModL_smul260 below · depth 25 - Diamond pullback action fixes the Γ₀(N) q-expansion field
ModularCurve.IsDiamondPullbackModL.apply_eq_self_of_coe_mem_qExpFunctionFieldC_gamma00 below · depth 26 - Cartier transpose of Uₚ⟨ d₀⟩ is Frobenius (ordinary part)
ModularCurve.JHNeronObjectAtP.exists_units_forall_point_comp_cartierTranspose_U_comp_diamond_valuation_sub_pow_lt_one_of_ordinaryIdempotent_of_bridge1,358 below · depth 26 - Mod-p two-cusp forms dual to the multiplicative part
ModularCurve.exists_linearMap_injective_range_eq_dual_multiplicativeSubmodule_tateModule_jH_twoCuspForms_of_ordinary_of_mem_infSubgroup4,747 below · depth 26 - Deligne–Rapoport genus identity for X_H(M) when p ‖ M
ModularCurve.genusFF_xHFunctionFieldBar_add_one_eq_two_mul_genusFF_residueField_add_natCard_ssNodePairsQExp1,405 below · depth 26 - Reduced modular unit vanishes at supersingular places
ModularCurve.hasValue_zero_of_mem_ssPlacesQExp_of_coe_eq_coeffMap_modularUnitSeries263 below · depth 26 - Reduction of Δ(q)/Δ(qᵖ) is a unit at ordinary affine places
ModularCurve.ord_eq_zero_of_not_mem_ssPlacesQExp_of_hasValue_of_coe_eq_coeffMap_modularUnitSeries262 below · depth 26 - Mod p two-cusp forms as supersingular-polar differentials
CuspForm.exists_isInfReductionMap_range_eq_ssPolarDifferentials1,752 below · depth 27 - Mod-I two-cusp forms as a base change from mod p
CuspForm.exists_linearEquiv_tensorProduct_intTwoCuspForms_apply_tmul_eq_smul_twoCuspReduce207 below · depth 27 - Kernel of the ∞-reduction map is killed by Uₚ
ModularCurve.IsInfReductionMap.baseChange_genU_self_apply_eq_zero_of_apply_eq_zero1,383 below · depth 27 - Reduction to the infinity component intertwines ⟨ d⟩
ModularCurve.IsInfReductionMap.comp_baseChange_genDia_eq_genDiffModL_comp1,255 below · depth 27 - Reduction at infinity intertwines T_ℓ with differential Hecke operator
ModularCurve.IsInfReductionMap.comp_baseChange_genT_eq_genDiffModL_comp1,292 below · depth 27 - Reduction at infinity intertwines U_q for q ≠ p
ModularCurve.IsInfReductionMap.comp_baseChange_genU_eq_genDiffModL_comp_of_ne608 below · depth 27 - Reduction maps at infinity carry Uₚ to Frobenius push-forward
ModularCurve.IsInfReductionMap.comp_baseChange_genU_self_eq_genDiffModL_comp138 below · depth 27 - Verschiebung equals Uₚ⟨ d₀⟩ on the connected part
ModularCurve.JHNeronObjectAtP.exists_units_forall_qc_comp_baseChange_U_comp_diamond_comp_eq_qc_comp_verschiebung_of_ordinaryIdempotent_of_bridge1,315 below · depth 27 - Diamond operators fix the mod p reduction of Δ(q)/Δ(qᵖ)
ModularCurve.diamondActionModL_apply_eq_self_of_coe_eq_coeffMap_modularUnitSeries19 below · depth 27 - Diamonds preserve supersingular places; Frobenius squares to ⟨ e⟩
ModularCurve.diamondActionModL_smul_mem_ssPlacesQExp_iff_and_qExpFrobeniusPlaceModL_qExpFrobeniusPlaceModL_eq_smul1,237 below · depth 27 - Ordinary duality: multiplicative part of TₚJ_H and polar differentials
ModularCurve.exists_linearMap_injective_range_eq_dual_multiplicativeSubmodule_tateModule_jH_ssPolarDifferentials_of_ordinary_of_mem_infSubgroup4,616 below · depth 27 - Level drop at p ∥ M for q-expansion fields in characteristic p
ModularCurve.exists_qExpFunctionFieldC_infSubgroup_coe_eq_of_charP131 below · depth 27 - Supersingular polar differentials as reductions of two-cusp integral weight-two forms
CuspForm.exists_diffQExp_eq_sum_smul_intSeriesC_of_mem_ssPolarDifferentials1,751 below · depth 28 - Supersingular-polar differential with prescribed mod p q-expansion
CuspForm.exists_mem_ssPolarDifferentials_diffQExp_eq_intSeriesC_of_mem_twoCuspIntegralSet1,493 below · depth 28 - Uₚ kills reductions of p-divisible two-cusp forms
CuspForm.intTwoCuspGenMod_genU_self_intTwoCuspReduce_eq_zero_of_forall_qCoeff_eq_mul_of_isInfReductionMap1,380 below · depth 28 - Kernel of an ∞-reduction map is spanned by p-divisible classes
ModularCurve.IsInfReductionMap.mem_span_tmul_intTwoCuspReduce_of_apply_eq_zero1 below · depth 28 - Frobenius, Uₚ and a diamond give [p] on ker abq₁
ModularCurve.JHNeronObjectAtP.exists_units_pullbackFst_abqFibre_comp_relFrobenius_comp_hecke_U_comp_hecke_dia_eq_comp_schemeNsmul121 below · depth 28 - Connected ordinary part of G[p^v] lies in ker(abq₁)
ModularCurve.JHNeronObjectAtP.mono_lift_and_exists_specMap_qc_comp_baseChange_comp_lift_eq_comp_pullbackFst_abqFibre_of_ordinaryIdempotent_of_bridge1,288 below · depth 28 - Diamond operators on mod p differentials match ⟨ d⟩ on q-expansions
ModularCurve.diffQExp_diamondDiffModLH_eq_intSeriesC_of_diffQExp_eq_of_mem_twoCuspIntegralSet1,253 below · depth 28 - U_q on differentials mod p matches U_q on q-expansions
ModularCurve.diffQExp_heckeDiffModLH_eq_intSeriesC_of_diffQExp_eq_of_mem_twoCuspIntegralSet_of_dvd588 below · depth 28 - T_ℓ on mod p differentials matches T_ℓ on cusp forms
ModularCurve.diffQExp_heckeDiffModLH_eq_intSeriesC_of_diffQExp_eq_of_mem_twoCuspIntegralSet_of_not_dvd1,290 below · depth 28 - Constant field extension of places of the q-expansion curve
ModularCurve.exists_injective_place_extension_ssPlacesQExp_qExpFrobeniusPlaceModL_of_isAlgClosed34 below · depth 28 - Frobenius push-forward on differentials of X_{H'}(N) in characteristic p
ModularCurve.exists_isFrobPushDiff_qExpFunctionFieldC_gammaH131 below · depth 28 - Two-cusp forms mod p as regular differentials on the special fibre
ModularCurve.exists_linearEquiv_intTwoCuspForms_twoCompRegularDifferentials1,750 below · depth 28 - Dual of P⁰ embeds in supersingular-polar differentials
ModularCurve.exists_linearMap_injective_range_eq_dual_multiplicativeSubmodule_ssPolarDifferentials_of_jHNeronObjectAtP_of_twoCompRegularDifferentials_of_ordinary_torusCoords_of_mem_infSubgroup4,608 below · depth 28 - Constant-field change for polar differentials on X_{H'}(M/p)
ModularCurve.exists_linearMap_injective_tensorProduct_kaehler_map_ssPolarDifferentials_eq163 below · depth 28 - Hecke generators on differentials commute with base change k→ K
ModularCurve.genDiffModL_comp_eq_comp_baseChange_of_forall_apply_tmul350 below · depth 28 - Reduced diamond action commutes with extension of constants
ModularCurve.map_diamondActionModL_eq_diamondActionModL_map_of_coe_eq_coeffMap290 below · depth 28 - Regularity of Cω_f+ω_{⟨ d⟩ h} in characteristic p
CuspForm.add_mem_regularDifferentials_of_isFrobPushDiff_of_diffQExp_eq_intSeriesC954 below · depth 29 - Mod p differential from an integral weight-two cusp form
CuspForm.exists_forall_isRegularAt_of_not_mem_ssPlacesQExp_diffQExp_eq_intSeriesC_of_isIntegralQExp1,327 below · depth 29 - Two q-expansion-pinned reduction maps into ss-polar differentials
CuspForm.exists_infReductionMap_and_wReductionMap_range_le_ssPolarDifferentials1,496 below · depth 29 - Integrality of q-expansions of two-cusp integral weight-two forms
CuspForm.exists_isIntegralQExp_and_alSlash_of_mem_twoCuspIntegralSet0 below · depth 29 - Atkin–Lehner transport of two-cusp integral weight-two forms mod p
CuspForm.exists_linearEquiv_intTwoCuspForms_intTwoCuspReduce_eq_of_coe_eq_alSlash_diamondLinH94 below · depth 29 - Glued supersingular polar pair from two integral q-expansions
CuspForm.mem_twoCompRegularDifferentials_of_diffQExp_eq_intSeriesC_of_diffQExp_eq_intSeriesC_alSlash1,364 below · depth 29 - Two-cusp integral lattice equals the two-cusp integral set
CuspForm.mem_twoCuspIntegralSet_of_mem_twoCuspLattice7 below · depth 29 - Pure tensors 1⊗̄ f span the base change
CuspForm.span_tmul_intTwoCuspReduce_eq_top0 below · depth 29 - Pull-back formula for the reduced diamond action at level M
ModularCurve.IsDiamondPullbackModL.coe_apply_eq_of_mem_Gamma0_of_level_mul1,242 below · depth 29 - q-expansion of U_ℓ on differentials for ℓ ∣ N
ModularCurve.coeff_diffQExp_heckeDiffModLH_of_dvd581 below · depth 29 - q-expansion of T_ℓ on differentials in characteristic p
ModularCurve.coeff_diffQExp_heckeDiffModLH_of_not_dvd_of_charP619 below · depth 29 - Supersingular places under constant field extension
ModularCurve.comap_ne_top_and_mem_ssPlacesQExp_of_mem_and_mem_ssPlacesQExp_of_comap_eq3 below · depth 29 - Base change of diamond operators on differentials of X_{H'}(M/p)
ModularCurve.diamondDiffModLH_comp_eq_comp_baseChange_of_forall_apply_tmul104 below · depth 29 - Joint injectivity of two reduction maps on mod-p two-cusp forms
ModularCurve.eq_zero_of_isInfReductionMap_apply_eq_zero_of_apply_eq_zero_alSlash1,341 below · depth 29 - Hecke-equivariant dlog from J_H[p] to supersingular polar differentials
ModularCurve.exists_addMonoidHom_torsion_ssPolarDifferentials_dlog_of_ordinary_of_mem_infSubgroup4,602 below · depth 29 - Extending supersingular polar differentials across the glued two-component curve
ModularCurve.exists_mem_twoCompRegularDifferentials_of_mem_ssPolarDifferentials107 below · depth 29 - Equal dimensions for mod p cusp forms and glued differentials
ModularCurve.finrank_tensorProduct_intTwoCuspForms_eq_finrank_twoCompRegularDifferentials1,749 below · depth 29 - Frobenius push-forward of differentials commutes with base change
ModularCurve.frobPushDiffModL_comp_eq_comp_baseChange_of_forall_apply_tmul52 below · depth 29 - The degeneracy map q ↦ q^ℓ on q-expansion function fields
ModularCurve.heckeBetaModLHDefined2 below · depth 29 - Base change compatibility of Hecke operators on modular differentials
ModularCurve.heckeDiffModLH_comp_eq_comp_baseChange_of_forall_apply_tmul_of_prime248 below · depth 29 - Frobenius push-forward divides supersingular pole orders by p
ModularCurve.isRegularAt_and_exists_eq_smul_dCoord_uniformizer_pow_mul_mem_of_isFrobPushDiff152 below · depth 29 - Weight-two cusp forms give differentials regular off supersingular places
CuspForm.exists_forall_isRegularAt_of_not_mem_ssPlacesQExp_diffQExp_eq_intSeriesC_of_isIntegralQExp_residueField1,316 below · depth 30 - Base change of mod-p two-cusp integral weight-two forms
CuspForm.finiteDimensional_and_finrank_tensorProduct_intTwoCuspForms_eq_finrank_cuspForm207 below · depth 30 - Diamond operators preserve p-divisibility of q-coefficients
CuspForm.forall_qCoeff_diamondLinH_eq_mul_of_forall_qCoeff_eq_mul_of_exists_isInfReductionMap1,257 below · depth 30 - Two-cusp integrality of (⟨ e⟩ f)∣₂ W
CuspForm.mem_twoCuspIntegralSet_of_coe_eq_alSlash_diamondLinH94 below · depth 30 - Hecke stability of two-cusp ℤ₍ₚ₎-integrality, weight two
CuspForm.mem_twoCuspIntegralSet_ratLocalizedAt_of_forall_qCoeff_mem1,317 below · depth 30 - p-saturation of the integral two-cusp lattice
CuspForm.mem_twoCuspLattice_bot_of_mem_twoCuspIntegralSet_ratLocalizedAt_of_pow_smul_mem7 below · depth 30 - Trace along q↦ q^ℓ on q-expansions when ℓ∣ N
ModularCurve.coeff_trace_along_heckeBetaModLH_of_dvd580 below · depth 30 - Trace along q↦ q^ℓ of q-expansions, ℓ∤ N
ModularCurve.coeff_trace_along_heckeBetaModLH_of_not_dvd580 below · depth 30 - Atkin–Lehner-twisted dlog on J_H(M)[p] into supersingular differentials
ModularCurve.exists_addMonoidHom_torsion_ssPolarDifferentials_dlog_finPts_of_abelJacobiPin_tauFree_raynaud_bridgePins_export_of_algEquiv3,097 below · depth 30 - Atkin–Lehner automorphism W in positive characteristic
ModularCurve.exists_algEquiv_qExpFunctionFieldC_heckeBetaModLH_eq_heckeAlphaModLH_and_eq_diamondActionModL_of_charP591 below · depth 30 - Frobenius-semilinear transport of differentials preserving pole orders
ModularCurve.exists_frobeniusSemilinear_transport_kaehler_poleOrder_qExpFunctionFieldC62 below · depth 30 - Finiteness and separability along the degeneracy maps α,β
ModularCurve.finiteAlong_and_separableAlong_heckeAlphaModLH_heckeBetaModLH205 below · depth 30 - Rosenlicht count for the two-component curve at level Γ_{H'}(N)
ModularCurve.finiteDimensional_and_finrank_twoCompRegularDifferentials_add_one180 below · depth 30 - Finite-dimensionality of supersingular polar differentials on X_{H'}(N)
ModularCurve.finiteDimensional_ssPolarDifferentials100 below · depth 30 - Deligne–Rapoport genus identity at level Γ_H(M), p ‖ M
ModularCurve.genusFF_xHFunctionFieldBar_add_one_eq_two_mul_genusFF_add_natCard_ssNodePairsQExp1,413 below · depth 30 - Genus identity for X_H(M) at p ‖ M, arbitrary κ
ModularCurve.genusFF_xHFunctionFieldBar_add_one_eq_two_mul_genusFF_add_natCard_ssNodePairsQExp_univ1,412 below · depth 30 - Frobenius push-forward preserves ss-polar differentials and residues
ModularCurve.hasSimpleResidue_qExpFrobeniusPlaceModL_of_isFrobPushDiff152 below · depth 30 - Nonvanishing mod p of q-expansions at cusps γ∞
ModularCurve.intSeriesC_ne_zero_of_coe_eq_slash_of_mem_Gamma0_of_level_mul1,240 below · depth 30 - Regularity of differentials with integral cuspidal q-expansion
ModularCurve.mem_regularDifferentials_of_diffQExp_eq_intSeriesC_of_isIntegralQExp_cuspForm_gammaH_of_not_dvd942 below · depth 30 - Kernel of an Atkin–Lehner-pinned reduction map, mod p
ModularCurve.mem_span_tmul_intTwoCuspReduce_of_apply_eq_zero_of_diffQExp_apply_eq_intSeriesC_alSlash_diamondLinH8 below · depth 30 - Minimal polynomial of j(qᵖ)/jᵖ over the lower level field
ModularCurve.minpoly_div_pow_eq_and_natDegree_minpoly_eq_finrank_of_monic_of_coe_eq_xHFunctionFieldBar277 below · depth 30 - Ordinary corner count against supersingular polar differentials
ModularCurve.pow_finrank_range_corner_ssPolarDifferentials_mul_ncard_reducesToOne_eq_of_abelJacobiPin_of_representsRelSubPicLevel_raynaud_bridgePins_noKTransport_bridgePins4_of_algEquiv3,519 below · depth 30 - Ordinary corner of p-torsion spans inside τ(e) Ω
ModularCurve.span_image_corner_le_range_of_addMonoidHom_torsion_ssPolarDifferentials0 below · depth 30 - Regular Kähler differential with q-expansion p_f
CuspForm.exists_kaehlerDifferential_diffQExp_eq_ofPowerSeries_and_forall_valuationSubring_of_isIntegralQExp423 below · depth 31 - Diamond operators preserve two-cusp ℤ₍ₚ₎-integrality in weight two
CuspForm.forall_qCoeff_diamondLinH_mem_ratLocalizedAt_of_forall_qCoeff_mem1,244 below · depth 31 - Hecke operators T_ℓ preserve two-cusp A-integrality
CuspForm.forall_qCoeff_heckeTLinH_mem_of_forall_qCoeff_diamondLinH_mem16 below · depth 31 - U_q preserves two-cusp A-integrality, given the diamonds
CuspForm.forall_qCoeff_heckeULinH_mem_of_forall_qCoeff_diamondLinH_mem88 below · depth 31 - Diamond pullback preserves supersingular-polar differentials and permutes residues
ModularCurve.diamondDiffModLH_mem_ssPolarDifferentials_and_residue_eq_residue_inv_smul1,244 below · depth 31 - Transposed Hecke correspondence sends dlog f to dlog N_α(β f)
ModularCurve.differentialCorrespondence_heckeAlphaModLH_heckeBetaModLH_inv_smul_D3 below · depth 31 - Reduced Atkin–Lehner automorphism w_ℓ in characteristic p
ModularCurve.exists_algEquiv_qExpFunctionFieldC_floor_and_diamondActionModL_and_heckeBetaModLH_eq_heckeAlphaModLH_of_charP590 below · depth 31 - Frobenius-semilinear transport of differentials on q-expansion function fields
ModularCurve.exists_frobeniusSemilinear_transport_kaehler_qExpFunctionFieldC62 below · depth 31 - Atkin–Lehner twist intertwining transposed Hecke action on supersingular polar differentials
ModularCurve.exists_linearEquiv_ssPolarDifferentials_twist_transposeHecke_genDiffModL_of_isInfReductionMap_of_mem_infSubgroup1,849 below · depth 31 - Diamond automorphisms preserve Gauss p-integrality at level M
ModularCurve.exists_mul_ofPowerSeries_eq_of_diamondAutHBar_apply_eq_coeffEmb_of_level_mul1,239 below · depth 31 - Reduced p-th root functions detect the finite part of J_H(M)[p]
ModularCurve.exists_reducedRootFunction_torsion_mem_finPts_iff_forall_dvd_ord_of_abelJacobiPin_tauFree_of_algEquiv2,608 below · depth 31 - Finiteness and separability along both degeneracy maps
ModularCurve.finiteAlong_and_separableAlong_heckeAlphaModLH_heckeBetaModLH_of_natCast_ne_zero201 below · depth 31 - Dimension count for two-component supersingular glued differentials
ModularCurve.finiteDimensional_and_finrank_twoCompRegularDifferentials_add_one_eq_two_mul_finrank_regularDifferentials_add_natCard110 below · depth 31 - Degree of the degeneracy map q↦ q^ℓ on X_{H'}(N)
ModularCurve.finrankAlong_heckeBetaModLH575 below · depth 31 - Uₚ on mod-p differentials sends dlog f to dlog σ f
ModularCurve.genDiffModL_U_self_inv_smul_D_of_coe_eq_coeffMap_frobenius1 below · depth 31 - Diamond operator on differentials sends dlog to dlog of the pullback
ModularCurve.genDiffModL_dia_inv_smul_D0 below · depth 31 - Hecke correspondence preserves supersingular-polar differentials, transforming residues
ModularCurve.heckeDiffModLH_mem_ssPolarDifferentials_and_residue_eq_sum_fiberAlong_of_prime418 below · depth 31 - Vanishing of dlogΨ on ordinary corner finite-part classes
ModularCurve.inv_smul_D_reducedRootFunction_eq_zero_iff_exists_point_reducesToOne_of_mem_corner_of_mem_finPts_tauFree_raynaud_bridgePins1,448 below · depth 31 - Supersingular node pairs are stable under diamond operators
ModularCurve.isNodeStable_ofAlgAut_diamondActionModL_of_forall_mem_iff_mem_ssNodePairsQExp_of_not_dvd1,239 below · depth 31 - Residue transport along Frobenius for q-decimating differential operators
ModularCurve.mem_ssPolarDifferentials_and_residue_qExpFrobeniusPlaceModL_eq_of_isFrobPushDiff161 below · depth 31 - Supersingular place count is invariant under algebraically closed constant extension
ModularCurve.natCard_ssPlacesQExp_eq_natCard_ssPlacesQExp_of_isAlgClosed34 below · depth 31 - Regular-differential half of the ordinary corner count at p
ModularCurve.pow_finrank_map_corner_regularDifferentials_mul_ncard_reducesToOne_eq_ncard_finPts_of_abelJacobiPin_of_representsRelSubPicLevel_raynaud_bridgePins_noKTransport_bridgePins4_of_algEquiv3,513 below · depth 31 - Ordinary corner: supersingular residues versus finite p-torsion
ModularCurve.pow_finrank_map_residue_range_corner_mul_ncard_finPts_eq_natCard_corner_of_abelJacobiPin_of_representsRelSubPicLevel_raynaud_bridgePins_noKTransport_bridgePins4_of_algEquiv3,518 below · depth 31 - Reduced root function of T_ℓ x and U_q x as a norm
ModularCurve.reducedRootFunction_genOpH_T_eq_smul_pow_mul_norm_heckeBetaModLH_of_abelJacobiPin_tauFree_of_algEquiv676 below · depth 31 - Frobenius twist of the reduced root function under Uₚ
ModularCurve.reducedRootFunction_genOpH_U_self_eq_smul_pow_mul_of_coe_eq_coeffMap_frobenius_of_abelJacobiPin_tauFree_of_mem_infSubgroup_of_algEquiv446 below · depth 31 - Reduced root function under the diamond operator ⟨ e⟩
ModularCurve.reducedRootFunction_genOpH_dia_eq_smul_pow_mul_diamondActionModL_of_abelJacobiPin_tauFree484 below · depth 31 - Diamond operators preserve ℤ₍ₚ₎-integrality of q-expansions
CuspForm.forall_qCoeff_diamondLinH_mem_ratLocalizedAt_of_forall_qCoeff_mem_ratLocalizedAt1,242 below · depth 32 - Transport of q-expansion fields and places along κ(P)→ K
ModularCurve.JHNeronObjectAtP.exists_ringHom_placeMap_injective_ord_eq_ssPlaces_qExpFunctionFieldC_of_ringHom81 below · depth 32
… and 71 more statements (search for the module name to find them).