Definitions/Def_ModularCurve_ShimuraKernel.lean
Shimura covering pullback and the Shimura kernel in
The first part of the module transports the Picard pullback of degree-zero divisor classes along an algebra homomorphism of function fields. For fields K \subseteq F, K \subseteq F' with F' having principal divisors, an K-algebra map \varphi : F \to F' whose underlying ring homomorphism is integral, and a witness hFI of FundamentalIdentityAlong (for every place v of F, \sum_{w \mid v} e(w)\deg(w) = [F':F]\deg(v), computed for the F-algebra structure on F' induced by \varphi), pullbackAlongDegZeroHom is the restriction of the divisor pullback Divisor.pullbackAlong to divisors of degree zero — legitimate because the degree of a pullback is [F':F] times the degree — and pullbackAlongHom is the induced additive map \mathrm{Pic}^0(K,F) \to \mathrm{Pic}^0(K,F'), obtained by passing to the quotient by principal divisors, pullbacks of principal divisors being principal.
The second part specialises this to the Shimura covering of X_0(p). Here shimuraFunctionFieldBar p is the base change to \overline{\mathbb{Q}}, inside Laurent series over \overline{\mathbb{Q}}, of shimuraFunctionField p, the subfield of \mathbb{Q}((q)) generated by the expansions j(q^d) for d \mid p together with the series shimuraGenSeries p v, v \in (\mathbb{Z}/p)^\times; it contains the corresponding base change modularFunctionFieldBar p of the field generated by the j(q^d) alone, and shimuraInclusion p is the resulting inclusion of \overline{\mathbb{Q}}-algebras. The structure ShimuraCoveringInputs p is a proposition packaging three hypotheses about this inclusion: that it is integral, that the larger field has principal divisors, and that the fundamental identity holds along it. Given such an input I, shimuraPicardPullback I is the pullback map from JZero p (the degree-zero Picard group of modularFunctionFieldBar p) to the degree-zero Picard group of shimuraFunctionFieldBar p, and shimuraKernel I is its kernel, an additive subgroup of JZero p.
Relation to Mathlib
Mathlib has no divisor theory or degree-zero Picard group for function fields of curves; the places, divisors, pullback/pushforward maps and the FundamentalIdentity condition used here belong to the project's own algebraic-curve layer, built over Mathlib's valuation subrings and Laurent series. The …Along maps of this module are the versions of that layer's pullback transported along an algebra homomorphism rather than along an Algebra instance.
Where it is used
shimuraKernel is the concrete realisation, as a kernel of a Picard pullback, of Mazur's Shimura subgroup of J_0(p); its properties (multiplicative type, order the numerator of (p-1)/12, Eisenstein behaviour under Hecke operators) are what the project's predicate IsShimuraSubgroup abstracts, and they feed the Eisenstein-ideal input to level lowering for J_0(p).
References
- B. Mazur, Modular curves and the Eisenstein ideal, Publications Mathématiques de l'IHÉS 47 (1977), 33–186, Chapter II, §11
- S. Ling and J. Oesterlé, The Shimura subgroup of J_0(N), Astérisque 196–197 (1991), 171–203
References are suggested automatically and have not been individually verified.
English text generated automatically from the Lean source; the Lean statement is authoritative.
- 90 lines
- 13 declarations
- used in the statements of 17 theorems and imported by 21 proofs
- imports 3 definition modules
Source file: Definitions/Def_ModularCurve_ShimuraKernel.lean
Imports
Imported by
Declarations
- def
AlgebraicCurve.Pic0.pullbackAlongDegZeroHom - theorem
AlgebraicCurve.Pic0.coe_pullbackAlongDegZeroHom - def
AlgebraicCurve.Pic0.pullbackAlongHom - theorem
AlgebraicCurve.Pic0.pullbackAlongHom_mk - abbrev
ModularCurve.shimuraFunctionFieldBar - theorem
ModularCurve.modularFunctionFieldBar_le_shimuraFunctionFieldBar - def
ModularCurve.shimuraInclusion - structure
ModularCurve.ShimuraCoveringInputs - field
ModularCurve.ShimuraCoveringInputs.hint - field
ModularCurve.ShimuraCoveringInputs.hpd - field
ModularCurve.ShimuraCoveringInputs.hFI - def
ModularCurve.shimuraPicardPullback - def
ModularCurve.shimuraKernel
Source
import Definitions.Def_ModularCurve_ShimuraSubgroup import Definitions.Def_ModularCurve_ShimuraGenerator import Definitions.Def_AlgebraicCurve_Correspondence set_option autoImplicit false noncomputable section namespace AlgebraicCurve namespace Pic0 open Divisor variable {K F F' : Type*} [Field K] [Field F] [Field F'] [Algebra K F] [Algebra K F'] variable [HasPrincipalDivisors K F'] variable (φ : F →ₐ[K] F') (hφ : φ.toRingHom.IsIntegral) variable (hFI : FundamentalIdentityAlong K φ hφ) def pullbackAlongDegZeroHom : Divisor.degZero (K := K) (F := F) →+ Divisor.degZero (K := K) (F := F') := ((Divisor.pullbackAlong φ hφ).domRestrict (Divisor.degZero (K := K) (F := F))).codRestrict _ (fun D => Divisor.pullbackAlong_mem_degZero φ hφ hFI D.2) @[simp] theorem coe_pullbackAlongDegZeroHom (D : Divisor.degZero (K := K) (F := F)) : (pullbackAlongDegZeroHom φ hφ hFI D : Divisor K F') = Divisor.pullbackAlong φ hφ (D : Divisor K F) := rfl def pullbackAlongHom : Pic0 K F →+ Pic0 K F' := QuotientAddGroup.map _ _ (pullbackAlongDegZeroHom φ hφ hFI) (by rintro ⟨D, hD0⟩ hD simp only [AddSubgroup.mem_addSubgroupOf] at hD ⊢ exact Divisor.isPrincipal_pullbackAlong φ hφ hD) theorem pullbackAlongHom_mk (D : Divisor.degZero (K := K) (F := F)) : pullbackAlongHom φ hφ hFI (mk D) = mk (pullbackAlongDegZeroHom φ hφ hFI D) := rfl end Pic0 end AlgebraicCurve namespace ModularCurve open AlgebraicCurve IntermediateField variable (p : ℕ) abbrev shimuraFunctionFieldBar : IntermediateField (AlgebraicClosure ℚ) (LaurentSeries (AlgebraicClosure ℚ)) := laurentBaseChange (AlgebraicClosure ℚ) (shimuraFunctionField p) theorem modularFunctionFieldBar_le_shimuraFunctionFieldBar : modularFunctionFieldBar p ≤ shimuraFunctionFieldBar p := by show laurentBaseChange (AlgebraicClosure ℚ) (modularFunctionFieldFull p) ≤ laurentBaseChange (AlgebraicClosure ℚ) (shimuraFunctionField p) unfold laurentBaseChange exact IntermediateField.adjoin.mono _ _ _ (Set.image_mono (modularFunctionFieldFull_le_shimuraFunctionField p)) def shimuraInclusion : (modularFunctionFieldBar p) →ₐ[AlgebraicClosure ℚ] (shimuraFunctionFieldBar p) := IntermediateField.inclusion (modularFunctionFieldBar_le_shimuraFunctionFieldBar p) structure ShimuraCoveringInputs : Prop where hint : (shimuraInclusion p).toRingHom.IsIntegral hpd : HasPrincipalDivisors (AlgebraicClosure ℚ) (shimuraFunctionFieldBar p) hFI : haveI := hpd; FundamentalIdentityAlong (AlgebraicClosure ℚ) (shimuraInclusion p) hint variable {p} in def shimuraPicardPullback (I : ShimuraCoveringInputs p) : JZero p →+ Pic0 (AlgebraicClosure ℚ) (shimuraFunctionFieldBar p) := haveI := I.hpd Pic0.pullbackAlongHom (shimuraInclusion p) I.hint I.hFI variable {p} in def shimuraKernel (I : ShimuraCoveringInputs p) : AddSubgroup (JZero p) := (shimuraPicardPullback I).ker end ModularCurve end
Statements phrased using this module (17)
- Roof package along a surjective leg of function fields
AlgebraicCurve.Pic0.roof_package_of_surjective167 below · depth 12 - Uₚ plus Atkin–Lehner equals degeneracy pull-push on J_H(M)
ModularCurve.JHNeronObjectAtP.genOpH_U_add_smul_eq_pull_degPts_of_roof234 below · depth 12 - Pinned automorphism intertwines degeneracy maps and divisor-class pullback
ModularCurve.heckeBetaHBar_pins_and_smul_pullbackAlongHom_of_qExpand_pins5 below · depth 12 - Atkin–Lehner relation for Uₚ on Pic⁰ of modular curves
ModularCurve.JH.heckeOperatorHAlong_pullbackAlongHom_add_pullbackAlongHom_atkinLehner_smul_eq_pullbackAlongHom_comp_heckeBetaHBar_pushforwardAlongHom233 below · depth 13 - Frobenius–Hecke relation at q for Γ₁(M₀)∩Γ₀(q) classes
ModularCurve.JOne.diamondOneBar_smul_pullbackAlongHom_smul_sub_self_eq_smul_heckeOperatorOneBar_of_isFrobeniusAt2,856 below · depth 21 - Pull-back and push-forward between J_H(M) and J₁(M)
ModularCurve.JH.exists_pullback_pushforward_jOne_galois_and_comp_eq_nsmul_and_sum_diamondOneBar_eq223 below · depth 22 - Transport of the Γ_H-level relation to J₁(M₀q)
ModularCurve.JOne.diamondOneBar_smul_pullbackAlongHom_smul_sub_self_eq_smul_heckeOperatorOneBar_of_genOpH280 below · depth 22 - Pull-back J_H(M)→ J₁(M) commutes with T_ℓ and ⟨ d⟩
ModularCurve.JH.pullbackAlongHom_heckeOperatorHAlong_eq_heckeOperatorOneBar_and_pullbackAlongHom_diamondHBar_eq_diamondOneBar277 below · depth 23 - Pull-back to X₁(M) intertwines U_q for q ∣ M
ModularCurve.pullbackAlongHom_heckeOperatorHAlong_eq_heckeOperatorOneBar_pullbackAlongHom271 below · depth 23 - Injectivity of the degeneracy Gram operator on Tate modules
ModularCurve.JH.tateModule_eq_zero_of_forall_pushforwardAlongHom_degeneracy_eq_zero903 below · depth 25 - Projection formula for the p-adic Weil pairing along X₁(M)→ X_H(M)
ModularCurve.JH.weilPairing_tateModule_jOne_pull_pull_eq_natCast_mul_of_pushforward_pullback_eq_nsmul120 below · depth 25 - Orthogonal of the toric lattice in Tₚ J_H(M)
ModularCurve.JHNeronObjectAtP.exists_pow_smul_mem_toricLattice_sup_oldLattice_of_forall_weilPairing_eq_zero469 below · depth 25 - Injectivity of the degeneracy Gram operator on TₚJ₁(N)
ModularCurve.JOne.tateModule_eq_zero_of_forall_pushforwardAlongHom_x1LevelInclBar_x1LevelSubstBar_eq_zero898 below · depth 26 - Diamond twist of mixed push–pulls on J₁(N)
ModularCurve.JOne.diamondOneBar_pushforwardAlongHom_x1LevelSubstBar_pullbackAlongHom_x1LevelInclBar_eq294 below · depth 27 - Push–pull along the first degeneracy map is multiplication by degree
ModularCurve.JOne.pushforwardAlongHom_pullbackAlongHom_x1LevelInclBar_eq_finrankAlong_smul9 below · depth 27 - Push–pull along the degeneracy map β₁ is degree multiplication
ModularCurve.JOne.pushforwardAlongHom_pullbackAlongHom_x1LevelSubstBar_eq_finrankAlong_smul9 below · depth 27 - α_{1,*}β₁^* equals deg(j)· Tₚ on J₁(N)
ModularCurve.JOne.pushforwardAlongHom_x1LevelInclBar_pullbackAlongHom_x1LevelSubstBar_eq_finrankAlong_smul_heckeOperatorOneBar77 below · depth 27