Definitions/Def_ModularCurve_ModularEquationQ.lean
The j-line, the modular equation over it, and its root field
Fix a field K and M \ge 1, and work inside the Laurent series field \mathrm{LaurentSeries}\,K = K((Q)), where Q is to be thought of as q^{1/M}. The element jqNModC K M is qExpand K M (jqModC K), that is the integral q-expansion j = Q^{-1}\prod\text{-type series} of the modular invariant, with coefficients read in K and with Q replaced by Q^{M}; so it represents j(q). The intermediate field jqNField K M is K\big(j(Q^{M})\big) \subseteq K((Q)), the j-line, obtained as IntermediateField.adjoin of the singleton \{jqNModC K M\}, and jqNGen K M is that generator viewed as an element of this subfield (its image in K((Q)) being jqNModC K M on the nose).
Given a term data : ModularPolynomialData M — a monic \Phi \in \mathbb{Z}[X][Y] of degree dedekindPsi M =\psi(M) in Y together with, as a field of the structure, the vanishing identity \Phi(j(Q), j(Q^{M})) = 0 in \mathbb{Q}((Q)) — the polynomial data.toJqNField K is the one-variable polynomial over the j-line obtained from \Phi by reducing its integer coefficients into jqNField K M and specialising the inner variable X to the generator: P_K(Y) = \Phi\big(j(Q^{M}), Y\big). It is monic, and pushing it forward along K(j(Q^M)) \hookrightarrow K((Q)) gives \Phi with inner variable at qExpand K M (jqModC K).
Finally data.rootField K is the intermediate field of K((Q)) generated over K by jqNModC K M together with the whole root set of P_K in K((Q)); two monotonicity lemmas record that it contains the j-line and contains those roots.
Relation to Mathlib
Mathlib supplies the ambient notions used (LaurentSeries, IntermediateField.adjoin, Polynomial.rootSet, Polynomial.Monic); the modular invariant's q-expansion, the variable rescaling qExpand, the structure ModularPolynomialData packaging a modular polynomial with its defining identity, and the fields constructed here are the project's own.
Where it is used
These definitions fix a concrete model, inside a Laurent series field, of the j-line and of the splitting data of the modular equation of level M over it; statements built on them concern the roots of the modular equation, its irreducibility over the j-line, and the resulting Galois action, which is the function-field input to the theory of modular curves used on the modularity side of the argument.
References
- S. Lang, Elliptic Functions, 2nd edition, Graduate Texts in Mathematics 112, Springer, 1987, Chapters 5–6
- G. Shimura, Introduction to the Arithmetic Theory of Automorphic Functions, Publications of the Mathematical Society of Japan 11, Princeton University Press, 1971, Chapter 6
References are suggested automatically and have not been individually verified.
English text generated automatically from the Lean source; the Lean statement is authoritative.
- 65 lines
- 10 declarations
- used in the statements of 4 theorems and imported by 9 proofs
- imports 2 definition modules
Source file: Definitions/Def_ModularCurve_ModularEquationQ.lean
Imported by
- no other definition module
Declarations
- def
ModularCurve.jqNField - theorem
ModularCurve.jqNModC_mem_jqNField - def
ModularCurve.jqNGen - theorem
ModularCurve.coe_jqNGen - def
ModularCurve.ModularPolynomialData.toJqNField - theorem
ModularCurve.ModularPolynomialData.toJqNField_monic - theorem
ModularCurve.ModularPolynomialData.toJqNField_map - def
ModularCurve.ModularPolynomialData.rootField - theorem
ModularCurve.ModularPolynomialData.jqNField_le_rootField - theorem
ModularCurve.ModularPolynomialData.rootSet_subset_rootField
Source
import Mathlib import Definitions.Def_ModularCurve_JqCoeff import Definitions.Def_ModularCurve_X0 set_option autoImplicit false noncomputable section namespace ModularCurve section JLine variable (K : Type*) [Field K] (M : ℕ) [NeZero M] def jqNField : IntermediateField K (LaurentSeries K) := IntermediateField.adjoin K {jqNModC K M} theorem jqNModC_mem_jqNField : jqNModC K M ∈ jqNField K M := IntermediateField.subset_adjoin K _ (Set.mem_singleton _) def jqNGen : jqNField K M := ⟨jqNModC K M, jqNModC_mem_jqNField K M⟩ @[simp] theorem coe_jqNGen : (jqNGen K M : LaurentSeries K) = jqNModC K M := rfl end JLine namespace ModularPolynomialData variable {M : ℕ} [NeZero M] (data : ModularPolynomialData M) (K : Type*) [Field K] def toJqNField : Polynomial (jqNField K M) := data.Φ.map (Polynomial.eval₂RingHom (Int.castRingHom (jqNField K M)) (jqNGen K M)) theorem toJqNField_monic : (data.toJqNField K).Monic := data.monic.map _ theorem toJqNField_map : (data.toJqNField K).map (algebraMap (jqNField K M) (LaurentSeries K)) = data.Φ.map (Polynomial.eval₂RingHom (Int.castRingHom (LaurentSeries K)) (qExpand K M (jqModC K))) := by rw [toJqNField, Polynomial.map_map] congr 1 refine Polynomial.ringHom_ext' (RingHom.ext_int _ _) ?_ rw [RingHom.comp_apply, Polynomial.coe_eval₂RingHom, Polynomial.coe_eval₂RingHom, Polynomial.eval₂_X, Polynomial.eval₂_X] rfl def rootField : IntermediateField K (LaurentSeries K) := IntermediateField.adjoin K (insert (jqNModC K M) ((data.toJqNField K).rootSet (LaurentSeries K))) theorem jqNField_le_rootField : jqNField K M ≤ data.rootField K := IntermediateField.adjoin.mono K _ _ (Set.singleton_subset_iff.mpr (Set.mem_insert _ _)) theorem rootSet_subset_rootField : (data.toJqNField K).rootSet (LaurentSeries K) ⊆ (data.rootField K : Set (LaurentSeries K)) := (Set.subset_insert _ _).trans (IntermediateField.subset_adjoin K _) end ModularPolynomialData end ModularCurve end
Statements phrased using this module (4)
- Coset factorisation of the modular equation over K((q))
ModularCurve.ModularPolynomialData.map_adjoin_jqNModC_eq_cosetTwoVarPoly24 below · depth 15 - Irreducibility of the modular polynomial over K(jqNModC_M)
ModularCurve.ModularPolynomialData.irreducible_map_adjoin_jqNModC105 below · depth 16 - Universal property of the modular function field K(̃ j,̃ j_N)
ModularCurve.existsUnique_algHom_modularFunctionFieldC_apply_jqModC_eq_of_eval2_eq_zero5 below · depth 16 - Rigidity of embeddings of modular function fields fixing j
ModularCurve.exists_algEquiv_modularFunctionFieldC_apply_jGeomGen_eq_comp115 below · depth 28