Definitions/Def_ModularCurve_AtkinLehnerPartial.lean
Partial Atkin–Lehner automorphisms of the full modular function field
Fix natural numbers N and \ell with \ell \neq 0. The ambient field is modularFunctionFieldFull (N * ℓ), the intermediate field of \mathbb{Q} \subseteq \mathrm{LaurentSeries}\,\mathbb{Q} generated by the set of all series qExpand\ \mathbb{Q}\ e\ jq for nonzero e \mid N\ell; here jq is the formal Laurent series q^{-1}E_4^3\eta^{-24} over \mathbb{Q} (the q-expansion of the j-invariant) and qExpand ℚ e is the ring homomorphism substituting q \mapsto q^e, i.e. re-indexing coefficients by k \mapsto ek. Thus the field is the one classically written \mathbb{Q}(j(q^e) : e \mid N\ell).
The predicate IsAtkinLehnerAutFull N ℓ σ, for a \mathbb{Q}-algebra automorphism \sigma of that field, asserts: for every nonzero d dividing N, \sigma sends the element j(q^{d}) to j(q^{d\ell}) and sends j(q^{d\ell}) to j(q^{d}), each written as the subtype element given by the relevant membership witness. So it is the clause set expressing that \sigma interchanges the two q-expansions attached to each divisor d of N; nothing further is required of \sigma (in particular it is not required to be prime to N, nor is \ell required to be prime, nor is \sigma^2 = \mathrm{id} imposed), and no existence or uniqueness statement is made.
The definition atkinLehnerInvolutionFull N ℓ is a total, guarded name for such an automorphism: it is a choice of \sigma satisfying IsAtkinLehnerAutFull N ℓ when one exists, and the identity automorphism otherwise. Two lemmas record exactly this: under the existence hypothesis the named map satisfies the predicate, and under its negation the named map is AlgEquiv.refl.
Relation to Mathlib
Mathlib has no modular function fields or Atkin–Lehner operators; both the predicate and the guarded automorphism are the project's own, built on Mathlib's IntermediateField, AlgEquiv and Hahn/Laurent series.
Where it is used
The partial Atkin–Lehner automorphism at \ell is the symmetry used to relate the two degeneracy embeddings of the level-N function field into the level-N\ell one, and hence a Hecke correspondence at \ell with its transpose, in the level-structure bookkeeping underlying level lowering.
References
- A. O. L. Atkin and J. Lehner, Hecke operators on \Gamma_0(m), Mathematische Annalen 185 (1970), 134–160
- F. Diamond and J. Shurman, A First Course in Modular Forms, Graduate Texts in Mathematics 228, Springer, 2005
References are suggested automatically and have not been individually verified.
English text generated automatically from the Lean source; the Lean statement is authoritative.
- 43 lines
- 4 declarations
- used in the statements of 64 theorems and imported by 109 proofs
- imports 1 definition modules
Source file: Definitions/Def_ModularCurve_AtkinLehnerPartial.lean
Imports
Declarations
- def
ModularCurve.IsAtkinLehnerAutFull - def
ModularCurve.atkinLehnerInvolutionFull - theorem
ModularCurve.isAtkinLehnerAutFull_atkinLehnerInvolutionFull - theorem
ModularCurve.atkinLehnerInvolutionFull_eq_refl
Source
import Definitions.Def_ModularCurve_X0 set_option autoImplicit false namespace ModularCurve section Partial variable (N ℓ : ℕ) [NeZero ℓ] def IsAtkinLehnerAutFull (σ : modularFunctionFieldFull (N * ℓ) ≃ₐ[ℚ] modularFunctionFieldFull (N * ℓ)) : Prop := ∀ (d : ℕ) (_ : NeZero d) (hd : d ∣ N), σ ⟨qExpand ℚ d jq, jqd_mem_full (N * ℓ) (Dvd.dvd.mul_right hd ℓ)⟩ = ⟨qExpand ℚ (d * ℓ) jq, jqd_mem_full (N * ℓ) (Nat.mul_dvd_mul_right hd ℓ)⟩ ∧ σ ⟨qExpand ℚ (d * ℓ) jq, jqd_mem_full (N * ℓ) (Nat.mul_dvd_mul_right hd ℓ)⟩ = ⟨qExpand ℚ d jq, jqd_mem_full (N * ℓ) (Dvd.dvd.mul_right hd ℓ)⟩ open Classical in noncomputable def atkinLehnerInvolutionFull : modularFunctionFieldFull (N * ℓ) ≃ₐ[ℚ] modularFunctionFieldFull (N * ℓ) := if h : ∃ σ : modularFunctionFieldFull (N * ℓ) ≃ₐ[ℚ] modularFunctionFieldFull (N * ℓ), IsAtkinLehnerAutFull N ℓ σ then h.choose else AlgEquiv.refl theorem isAtkinLehnerAutFull_atkinLehnerInvolutionFull (h : ∃ σ : modularFunctionFieldFull (N * ℓ) ≃ₐ[ℚ] modularFunctionFieldFull (N * ℓ), IsAtkinLehnerAutFull N ℓ σ) : IsAtkinLehnerAutFull N ℓ (atkinLehnerInvolutionFull N ℓ) := by rw [atkinLehnerInvolutionFull, dif_pos h] exact h.choose_spec theorem atkinLehnerInvolutionFull_eq_refl (h : ¬ ∃ σ : modularFunctionFieldFull (N * ℓ) ≃ₐ[ℚ] modularFunctionFieldFull (N * ℓ), IsAtkinLehnerAutFull N ℓ σ) : atkinLehnerInvolutionFull N ℓ = AlgEquiv.refl := by rw [atkinLehnerInvolutionFull, dif_neg h] end Partial end ModularCurve
Statements phrased using this module (64)
- Existence of the Atkin–Lehner automorphism wₚ at level Np
ModularCurve.exists_isAtkinLehnerAutFull_of_prime_of_not_dvd73 below · depth 11 - Atkin–Lehner automorphism exchanges the two degeneracy legs
ModularCurve.geomAut_atkinLehner_comp_legs1 below · depth 11 - Two-component exhaustion at an ℓ-adic place of X₀(Nℓ)
ModularCurve.twoComponentExhaustion_valuation_mul_lt_one_of_ord_inv_sub_pos218 below · depth 11 - Two-component exhaustion at level Nℓ: product of values is a non-unit
ModularCurve.twoComponentExhaustion_valuation_mul_lt_one_of_ord_sub_pos218 below · depth 11 - The partial Atkin–Lehner automorphism wₚ is an involution
ModularCurve.atkinLehnerInvolutionFull_apply_apply74 below · depth 12 - Atkin–Lehner relation U_q D + w_q· D = β^*α_*D on divisors
ModularCurve.heckeDivBar_self_add_atkinLehner_smul186 below · depth 12 - Uₚ + wₚ = β^*α_* on J₀(N₀p)
ModularCurve.heckeOperatorBar_self_add_atkinLehner_smul225 below · depth 12 - Cuspidal sections and cusp coordinate j(qᵖ)/jᵖ for X₀(Np)
ModularCurve.IgusaScheme.exists_algHom_chartAlgInf_coeff_zero_and_mem_nonunits_of_not_dvd83 below · depth 14 - Atkin–Lehner involution wₚ on Igusa's model of X₀(Np)
ModularCurve.IgusaScheme.exists_iso_involutive_iotaFin_comp_eq_atkinLehner_of_not_dvd143 below · depth 14 - Maximal smooth locus of the Igusa model contains the cusps
ModularCurve.IgusaScheme.exists_smoothLocus_maximal_and_section_mem885 below · depth 14 - Supersingular points of Y₀(N)_κ lie on the second copy
ModularCurve.IgusaScheme.ker_comp_atkinLehner_le_comap_retraction_of_mem_ssJSet_of_not_dvd940 below · depth 14 - Frobenius on the second retraction of X₀(Np) mod p
ModularCurve.IgusaScheme.retraction_one_tmul_iota_eq_pow_of_not_dvd825 below · depth 14 - Ogg's unit on the two components of X₀(Np) mod p
ModularCurve.IgusaScheme.retraction_one_tmul_modularUnit_eq_prod_ssJSet_of_not_dvd936 below · depth 14 - Partial Atkin–Lehner involution takes u_Q to Q¹²u_Q⁻¹
ModularCurve.coe_atkinLehnerInvolutionFull_modularUnitSeries105 below · depth 14 - Partial Atkin–Lehner involution inverts Ogg's unit
ModularCurve.coe_atkinLehnerInvolutionFull_modularUnitSeries_of_not_dvd100 below · depth 14 - Atkin–Lehner involution acts as w_* on ℚ̄-points
ModularCurve.DRModelPackageLevel.pts_atkinLehner_smul_eq_comp_atkinLehnerHom173 below · depth 15 - Second degeneracy pullback agrees with β^* on ℚ̄-points
ModularCurve.DRModelPackageLevel.pts_degeneracyPullbackPair_one_eq_comp_degeneracyPullbackHom1,238 below · depth 15 - Atkin–Lehner involution preserves the ℤ₍ₚ₎[j]-chart of X₀(Np)
ModularCurve.IgusaScheme.exists_algEquiv_chartAlgFin_mul_eq_atkinLehnerInvolutionFull79 below · depth 15 - Smoothness of Igusa's model at the cusp ∞ modulo p
ModularCurve.IgusaScheme.exists_mem_and_smooth_of_section_cuspInf_of_asIdeal_ne_bot147 below · depth 15 - Two minimal primes in the mod p chart of X₀(Np)
ModularCurve.IgusaScheme.exists_retraction_pair_residueField_tensor_chartAlgFin_mul_of_not_dvd815 below · depth 15 - Two components of the j-chart of X₀(Np) modulo p
ModularCurve.IgusaScheme.exists_ringHom_laurentSeries_pair_chartAlgFin_mul_frobenius_of_not_dvd824 below · depth 15 - Regularity at the cusp ∞ of the pole chart over ℤ₍ₚ₎
ModularCurve.IgusaScheme.isRegularLocalRing_of_isLocalization_atPrime_chartAlgInf_cuspInfty139 below · depth 15 - Retraction kernel detects the ∞-component: wₚj-jᵖ∈𝔭
ModularCurve.IgusaScheme.map_le_ker_retraction_iff_mem_of_mem_minimalPrimes_of_not_dvd825 below · depth 15 - Base change of an Atkin–Lehner automorphism exchanges the degeneracy maps
ModularCurve.exists_algEquiv_comp_heckeAlphaBar_eq_heckeBetaBar2 below · depth 15 - Integrality of 1/wₚ(j) over R[1/j] up to a unit
ModularCurve.exists_isIntegral_adjoin_inv_jq_mul_inv_atkinLehnerInvolutionFull80 below · depth 15 - Two valuation rings of ℚ(X₀(Np)) lying over p
ModularCurve.exists_valuationSubring_pair_modularFunctionFieldFull_mul_of_not_dvd123 below · depth 15 - Atkin–Lehner involution preserves integrality over R[j]
ModularCurve.isIntegral_adjoin_jq_atkinLehnerInvolutionFull77 below · depth 15 - Atkin–Lehner endomorphism on Abel–Jacobi points of Pic⁰
ModularCurve.DRModelPackageLevel.mul_atkinLehnerHom_ajbar_ajbar_eq_of_comp_w23 below · depth 16 - Atkin–Lehner involution restricts places along the geometric automorphism
ModularCurve.DRModelPackageLevel.pointEquivPlace_eq_restrictAlong_geomAut_of_comp_w4 below · depth 16 - Second degeneracy pullback of [x]-[s₀] equals β^∗circaj₀
ModularCurve.DRModelPackageLevel.pts_degeneracyPullbackPair_one_mk_eq_abelJacobi_comp_degeneracyPullbackHom1,237 below · depth 16 - Residue fields of the two Gauss valuations at level p
ModularCurve.exists_mul_eval_sub_eval_mem_nonunits_of_mem_gaussValuationSubring_one_mul126 below · depth 16 - The two prolongations of X₀(Np) above p∤ N
ModularCurve.exists_regularProlongation_pair_valuationSubring_eq_or_eq_of_not_dvd122 below · depth 16 - Ogg's unit Δ(q)/Δ(qᵖ) at the two components
ModularCurve.modularUnitSeries_mem_valuationSubring_pair_of_not_dvd100 below · depth 16 - Conorm divisors map to aj₀ followed by β^∗
ModularCurve.DRModelPackageLevel.pts_mk_pullbackAlong_heckeBetaBar_single_sub_eq_abelJacobi_comp_degeneracyPullbackHom1,236 below · depth 17 - Compatibility of w_q with the degeneracy inclusion of j-expansion fields
ModularCurve.coe_atkinLehnerInvolutionFull_mul_eq_of_coe_eq74 below · depth 17 - Partial Atkin–Lehner involution commutes with the ℓ-degeneracy map
ModularCurve.coe_atkinLehnerInvolutionFull_mul_eq_qExpand_of_coe_eq_qExpand74 below · depth 17 - Poincaré pullback at an effective divisor class as ideal-power modules
ModularCurve.DRModelPackageLevel.nonempty_poincare_pullbackAlong_pts_mk_iso_invModule_prod_pow_tensor_module_pow24 below · depth 18 - At level one, the Atkin–Lehner involution at q is Fricke
ModularCurve.atkinLehnerInvolutionFull_one_eq_frickeInvolutionFull75 below · depth 18 - Geometric base change of the level-one Atkin–Lehner involution is Fricke
ModularCurve.geomAut_atkinLehnerInvolutionFull_one_eq_frickeInvolutionBar76 below · depth 18 - Partial Atkin–Lehner automorphism at p of L·ℚ(X₁(Mp))
ModularCurve.XOneP.exists_algEquiv_map_j_eq_qExpand_and_chartAlgFin_iff_and_comap_ne_and_coe_eq_atkinLehnerInvolutionFull_and_diamondConj_and_galoisConj_x1_mul172 below · depth 23 - Étale entry of Uₚ on good generators of J_E
ModularCurve.XOneP.exists_coprime_algEquiv_finset_addMonoidHom_proj_snd_heckeGenOne_eq_symm_frob_smul_and_proj_snd_diamondGen_eq_smul_of_pic0Mk_single_sub_single_snd_specialFibre_twoChartModel_x1_mul_of_atkinLehner_of_diamondConj3,174 below · depth 23 - Partial Atkin–Lehner automorphism on L·ℚ(X₁(Mp)) with conjugation laws
ModularCurve.XOneP.exists_algEquiv_map_j_eq_qExpand_and_coe_eq_atkinLehnerInvolutionFull_and_diamondConj_and_galoisConj_x1_mul166 below · depth 24 - Place-level Eichler–Shimura relation on the non-Gauss component
ModularCurve.XOneP.exists_coprime_algEquiv_finset_red_diamondAutBar_smul_eq_smul_and_red_eq_smul_frob_smul_red_of_reducesSnd_of_gaussReading_snd_algEquiv_twoChartModel_x1_mul_of_atkinLehner_of_diamondConj3,028 below · depth 24 - Diamond action on ℚ̄-points of the Pic⁰ model
ModularCurve.XOneP.gpts_diamondAutBar_smul_eq_comp_heckeHom_diamondGen_twoChartModel_x1_mul273 below · depth 24 - Étale entry of Uₚ on the special fibre of J₁(Mp)
ModularCurve.XOneP.proj_snd_addMonoidHom_eq_symm_frob_mul_ofAlgAut_smul_proj_snd_of_pts_reduction_of_diamondRead_of_frobRead_of_sort_specialFibre_twoChartModel_x1_mul_of_atkinLehner_of_diamondConj1,480 below · depth 24 - Generator law conjugates ⟨ d⟩ into ⟨ d'⟩ on X₁(Mp)
ModularCurve.XOneP.algEquiv_diamond_symm_eq_diamond_of_generatorLaw_x1_mul32 below · depth 25 - A level-p twist of the X₁(Mp) function field
ModularCurve.XOneP.exists_algEquiv_map_j_eq_qExpand_and_chartAlgFin_iff_and_comap_ne_and_coe_eq_atkinLehnerInvolutionFull_x1_mul161 below · depth 25 - Partial Atkin–Lehner automorphism of L·ℚ(X₁(Mp)), with generator law
ModularCurve.XOneP.exists_algEquiv_map_j_eq_qExpand_and_coe_eq_atkinLehnerInvolutionFull_and_generatorLaw_x1_mul155 below · depth 25 - Eichler–Shimura relation read through σ on the Igusa curve
ModularCurve.XOneP.exists_coprime_algEquiv_finset_red_smul_diamondAutBar_smul_eq_and_red_smul_eq_smul_frob_smul_of_gaussReduces_smul_twoChartModel_x1_mul_of_atkinLehner_of_diamondConj2,993 below · depth 25 - Galois conjugate of σ equals σ twisted by a diamond
ModularCurve.XOneP.ringEquiv_algEquiv_symm_eq_algEquiv_diamond_of_generatorLaw_x1_mul44 below · depth 25 - Partial Atkin–Lehner automorphism w_Q for squarefree Q coprime to N
ModularCurve.exists_isAtkinLehnerAutFull_of_squarefree_of_coprime74 below · depth 25 - Atkin–Lehner involution on X₁(Mp) over ℚ(ζₚ)
ModularCurve.XOneP.exists_algEquiv_map_j_eq_qExpand_and_coe_eq_atkinLehnerInvolutionFull_x1_mul155 below · depth 26 - Atkin–Lehner transport of Uₚ-supports, up to one diamond
ModularCurve.XOneP.exists_coprime_forall_smul_mem_support_heckeDivOneBar_single_diamondAutBar_smul_smul_of_mem_support_of_atkinLehner394 below · depth 26 - Supersingular primes contain all minimal primes of the special fibre
ModularCurve.IgusaScheme.forall_minimalPrimes_le_of_mem_ssJSet_tensor_chartAlgFin_mul_of_not_dvd943 below · depth 27 - Atkin–Lehner automorphism at p exchanging the two degeneracy legs
ModularCurve.XOneP.exists_coprime_algEquiv_algEquiv_apply_heckeAlphaOneBar_eq_heckeBetaOneBar_diamondAutBar_and_apply_heckeBetaOneBar_eq_of_atkinLehnerInvolutionFull211 below · depth 27 - Automorphism fixing the X₀(Mp) q-expansions is a diamond
ModularCurve.exists_coprime_forall_eq_diamondAutBar_of_forall_apply_coeffEmb_modularFunctionFieldFull_eq_x1FunctionFieldBar217 below · depth 27 - Crossing primes on X₀(Np) have supersingular j-invariant
ModularCurve.IgusaScheme.exists_mem_ssJSet_tmul_sub_mem_of_ker_le_of_ker_comp_le_tensor_chartAlgFin_mul_of_not_dvd937 below · depth 28 - Exchanging j(q^e) and j(q^{ep}) determines wₚ
ModularCurve.XOneP.coe_apply_coeffEmb_eq_coeffEmb_atkinLehnerInvolutionFull_of_atkinLehnerSlash_p78 below · depth 28 - Slash transport along Wₚ swaps j(q^e) and j(q^{ep})
ModularCurve.XOneP.coe_apply_eq_coeffEmb_qExpand_mul_jq_of_atkinLehnerSlash_p7 below · depth 28 - Atkin–Lehner pull-back at p swaps the degeneracy embeddings
ModularCurve.XOneP.comp_alpha_eq_beta_and_comp_beta_eq_alpha_comp_diamondAutBar_of_atkinLehnerSlash_p1 below · depth 28 - Atkin–Lehner automorphism W_{p²} of the Γ₁(Mp)∩Γ₀(Mp²) function field
ModularCurve.XOneP.exists_algEquiv_laurentBaseChange_x1x0FunctionFieldC_coeffMap_apply_eq_atkinLehnerSlash_sq112 below · depth 28 - Atkin–Lehner automorphism wₚ of ℚ̄(X₁(Mp))
ModularCurve.XOneP.exists_algEquiv_x1FunctionFieldBar_coeffMap_apply_eq_atkinLehnerSlash_p81 below · depth 28 - Atkin–Lehner leg laws: Wα=β⟨ d⟩τ, Wβ=α⟨ d'⟩τ
ModularCurve.XOneP.exists_coprime_apply_heckeAlphaOneBar_eq_heckeBetaOneBar_diamondAutBar_of_atkinLehnerSlash_p_of_atkinLehnerSlash_sq33 below · depth 28 - Atkin–Lehner automorphism of the Γ₁(M)∩Γ₀(p) q-expansion field
ModularCurve.XOneGammaZeroP.exists_algEquiv_map_j_eq_qExpand_and_coe_eq_atkinLehnerInvolutionFull_x1x0_gamma0202 below · depth 30