Definitions/Def_ModularCurve_FibreModel.lean
Abstract fibre models of in characteristic
Throughout, N is a nonzero natural number, \overline{\mathbb{Q}} is the algebraic closure of \mathbb{Q}, and the ambient characteristic-zero field is laurentBaseChange (AlgebraicClosure ℚ) (modularFunctionFieldFull N), the subfield of \overline{\mathbb{Q}}((q)) generated over \overline{\mathbb{Q}} by the coefficientwise images of modularFunctionFieldFull N, i.e. of the \mathbb{Q}-subfield of \mathbb{Q}((q)) generated by the series j(q^{d}) for all nonzero d \mid N. Inside it, jBar is the image of the q-expansion j(q) and jNBar the image of j(q^{N}). For a valuation subring A \subseteq \overline{\mathbb{Q}}, constantsHom is the inclusion A \hookrightarrow \overline{\mathbb{Q}} followed by the structure map into that field, and affineBaseFin, affineBaseInf are the subrings generated by the constants A together with jBar, respectively with jBar^{-1} — the two affine coordinate rings A[j] and A[1/j] of the j-line.
FibreModel N A ℓ k red, for a prime \ell, a field k of characteristic \ell and a ring homomorphism \mathrm{red} : A \to k, is a structure bundling: two subrings B_{\mathrm{fin}}, B_{\infty} of the characteristic-zero function field; the requirements that each contains all constants \mathrm{const}(a), that B_{\mathrm{fin}} contains jBar and jNBar and B_{\infty} contains jBar^{-1}; integrality of every element of B_{\mathrm{fin}} over A[j] and of every element of B_{\infty} over A[1/j] (a monic polynomial vanishing at it); reduction homomorphisms \pi_{\mathrm{fin}}, \pi_{\infty} into modularFunctionFieldC k N, the subfield of k((q)) generated over k by jqModC k and jqNModC k N; compatibility of each \pi with \mathrm{red} on constants and with the generators (j \mapsto jqModC k, j_N \mapsto jqNModC k N, 1/j \mapsto jqModC k^{-1}); the demand that each kernel be the ideal generated by the image of the maximal ideal of A; integral closedness of each image in the target; and the demand that every element of the target be a quotient \pi(b)/\pi(c) with \pi(c) \neq 0.
Thus the structure carries its defining properties as fields and asserts nothing about existence; consumers take a term of it as a hypothesis.
Relation to Mathlib
Mathlib has no notion of a modular curve or of its reduction; both the ambient function fields and this structure are the project's own, formulated with Mathlib's ValuationSubring, Subring.closure, RingHom.ker, IsLocalRing.maximalIdeal and Laurent series.
Where it is used
These definitions provide the interface on which the statements about specialisation of X_0(N) at a place of residue characteristic \ell are phrased in the tree: a fibre model is bound as a hypothesis, so that any construction of models from the integral closure of A[j] in the function field can be substituted. The resulting arithmetic of X_0(N) in characteristic \ell feeds the level-lowering part of the route to Fermat's Last Theorem.
References
- J. Igusa, Kroneckerian model of fields of elliptic modular functions, American Journal of Mathematics 81 (1959), 561–577
- 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
References are suggested automatically and have not been individually verified.
English text generated automatically from the Lean source; the Lean statement is authoritative.
- 105 lines
- 29 declarations
- used in the statements of 64 theorems and imported by 82 proofs
- imports 4 definition modules
Source file: Definitions/Def_ModularCurve_FibreModel.lean
Imports
Declarations
- def
ModularCurve.CharPModel.jBar - def
ModularCurve.CharPModel.jNBar - def
ModularCurve.CharPModel.constantsHom - def
ModularCurve.CharPModel.affineBaseFin - def
ModularCurve.CharPModel.affineBaseInf - structure
ModularCurve.CharPModel.FibreModel - field
ModularCurve.CharPModel.FibreModel.red - field
ModularCurve.CharPModel.FibreModel.BFin - field
ModularCurve.CharPModel.FibreModel.BInf - field
ModularCurve.CharPModel.FibreModel.constFin_mem - field
ModularCurve.CharPModel.FibreModel.constInf_mem - field
ModularCurve.CharPModel.FibreModel.jBar_mem - field
ModularCurve.CharPModel.FibreModel.jNBar_mem - field
ModularCurve.CharPModel.FibreModel.jInvBar_mem - field
ModularCurve.CharPModel.FibreModel.integralFin - field
ModularCurve.CharPModel.FibreModel.integralInf - field
ModularCurve.CharPModel.FibreModel.piFin - field
ModularCurve.CharPModel.FibreModel.piInf - field
ModularCurve.CharPModel.FibreModel.piFin_const - field
ModularCurve.CharPModel.FibreModel.piInf_const - field
ModularCurve.CharPModel.FibreModel.piFin_j - field
ModularCurve.CharPModel.FibreModel.piFin_jN - field
ModularCurve.CharPModel.FibreModel.piInf_jInv - field
ModularCurve.CharPModel.FibreModel.ker_piFin - field
ModularCurve.CharPModel.FibreModel.ker_piInf - field
ModularCurve.CharPModel.FibreModel.intClosed_piFin - field
ModularCurve.CharPModel.FibreModel.intClosed_piInf - field
ModularCurve.CharPModel.FibreModel.frac_piFin - field
ModularCurve.CharPModel.FibreModel.frac_piInf
Source
import Definitions.Def_ModularCurve_JqCoeff import Definitions.Def_ModularCurve_LaurentCoeff import Definitions.Def_ModularCurve_PhiGen import Definitions.Def_AlgebraicCurve_DivisorClassGroup import Mathlib.FieldTheory.IsAlgClosed.AlgebraicClosure ↗ set_option autoImplicit false noncomputable section namespace ModularCurve namespace CharPModel open AlgebraicCurve variable (N : ℕ) [NeZero N] def jBar : laurentBaseChange (AlgebraicClosure ℚ) (modularFunctionFieldFull N) := ⟨coeffEmb (AlgebraicClosure ℚ) jq, coeffEmb_mem_laurentBaseChange (AlgebraicClosure ℚ) (modularFunctionField_le_full N (jq_mem N))⟩ def jNBar : laurentBaseChange (AlgebraicClosure ℚ) (modularFunctionFieldFull N) := ⟨coeffEmb (AlgebraicClosure ℚ) (qExpand ℚ N jq), coeffEmb_mem_laurentBaseChange (AlgebraicClosure ℚ) (jqd_mem_full N (dvd_refl N))⟩ variable (A : ValuationSubring (AlgebraicClosure ℚ)) def constantsHom : A →+* laurentBaseChange (AlgebraicClosure ℚ) (modularFunctionFieldFull N) := (algebraMap (AlgebraicClosure ℚ) (laurentBaseChange (AlgebraicClosure ℚ) (modularFunctionFieldFull N))).comp A.subtype def affineBaseFin : Subring (laurentBaseChange (AlgebraicClosure ℚ) (modularFunctionFieldFull N)) := Subring.closure (Set.range (constantsHom N A) ∪ {jBar N}) def affineBaseInf : Subring (laurentBaseChange (AlgebraicClosure ℚ) (modularFunctionFieldFull N)) := Subring.closure (Set.range (constantsHom N A) ∪ {(jBar N)⁻¹}) structure FibreModel (ℓ : ℕ) [Fact ℓ.Prime] (k : Type*) [Field k] [CharP k ℓ] (red : A →+* k) : Type _ where BFin : Subring (laurentBaseChange (AlgebraicClosure ℚ) (modularFunctionFieldFull N)) BInf : Subring (laurentBaseChange (AlgebraicClosure ℚ) (modularFunctionFieldFull N)) constFin_mem : ∀ a : A, constantsHom N A a ∈ BFin constInf_mem : ∀ a : A, constantsHom N A a ∈ BInf jBar_mem : jBar N ∈ BFin jNBar_mem : (jNBar N : laurentBaseChange (AlgebraicClosure ℚ) (modularFunctionFieldFull N)) ∈ BFin jInvBar_mem : (jBar N)⁻¹ ∈ BInf integralFin : ∀ b : BFin, ∃ p : Polynomial (affineBaseFin N A), p.Monic ∧ Polynomial.eval₂ (affineBaseFin N A).subtype (b : laurentBaseChange (AlgebraicClosure ℚ) (modularFunctionFieldFull N)) p = 0 integralInf : ∀ b : BInf, ∃ p : Polynomial (affineBaseInf N A), p.Monic ∧ Polynomial.eval₂ (affineBaseInf N A).subtype (b : laurentBaseChange (AlgebraicClosure ℚ) (modularFunctionFieldFull N)) p = 0 piFin : BFin →+* modularFunctionFieldC k N piInf : BInf →+* modularFunctionFieldC k N piFin_const : ∀ a : A, piFin ⟨constantsHom N A a, constFin_mem a⟩ = algebraMap k (modularFunctionFieldC k N) (red a) piInf_const : ∀ a : A, piInf ⟨constantsHom N A a, constInf_mem a⟩ = algebraMap k (modularFunctionFieldC k N) (red a) piFin_j : piFin ⟨jBar N, jBar_mem⟩ = ⟨jqModC k, jqModC_mem k N⟩ piFin_jN : piFin ⟨jNBar N, jNBar_mem⟩ = ⟨jqNModC k N, jqNModC_mem k N⟩ piInf_jInv : piInf ⟨(jBar N)⁻¹, jInvBar_mem⟩ = (⟨jqModC k, jqModC_mem k N⟩ : modularFunctionFieldC k N)⁻¹ ker_piFin : RingHom.ker piFin = Ideal.span ((fun a : A => (⟨constantsHom N A a, constFin_mem a⟩ : BFin)) '' (IsLocalRing.maximalIdeal A : Set A)) ker_piInf : RingHom.ker piInf = Ideal.span ((fun a : A => (⟨constantsHom N A a, constInf_mem a⟩ : BInf)) '' (IsLocalRing.maximalIdeal A : Set A)) intClosed_piFin : ∀ x : modularFunctionFieldC k N, (∃ p : Polynomial piFin.range, p.Monic ∧ Polynomial.eval₂ piFin.range.subtype x p = 0) → x ∈ piFin.range intClosed_piInf : ∀ x : modularFunctionFieldC k N, (∃ p : Polynomial piInf.range, p.Monic ∧ Polynomial.eval₂ piInf.range.subtype x p = 0) → x ∈ piInf.range frac_piFin : ∀ x : modularFunctionFieldC k N, ∃ b c : BFin, piFin c ≠ 0 ∧ x * piFin c = piFin b frac_piInf : ∀ x : modularFunctionFieldC k N, ∃ b c : BInf, piInf c ≠ 0 ∧ x * piInf c = piInf b end CharPModel end ModularCurve
Statements phrased using this module (64)
- Reduction on the finite chart is coefficientwise
ModularCurve.CharPModel.FibreModel.coe_piFin_eq_coeffRed116 below · depth 11 - Extensionality of places on the pole chart of a fibre model
ModularCurve.CharPModel.FibreModel.place_eq_of_forall_infChart_mem_nonunits_iff1 below · depth 11 - Chart dichotomy for places of the modular function field
ModularCurve.CharPModel.chart_dichotomy_jBar112 below · depth 11 - Values of integral functions at places where j is A-valued
ModularCurve.exists_ord_sub_pos_of_integral_affineBaseFin0 below · depth 11 - Chart dichotomy for ̄ j in terms of ord_w
ModularCurve.exists_ord_sub_pos_or_exists_ord_inv_sub_pos_of_dataAll113 below · depth 11 - A-values at places of functions integral over A[̄ j⁻¹]
ModularCurve.exists_sub_mem_nonunits_of_integral_affineBaseInf0 below · depth 11 - Integrality over A[̄ j] forces coefficients into A
ModularCurve.mem_integralCoeffs_of_integral_affineBaseFin114 below · depth 11 - Integrality over A[1/j] forces Laurent coefficients into A
ModularCurve.mem_integralCoeffs_of_integral_affineBaseInf114 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 - Coefficients in the maximal ideal force the value there
ModularCurve.valuation_lt_one_of_ord_sub_pos_of_coeff_lt_one117 below · depth 11 - Small Fourier coefficients force pole-chart values into the maximal ideal
ModularCurve.valuation_lt_one_of_sub_mem_nonunits_of_coeff_lt_one_inf131 below · depth 11 - A fibre model forces the residue map to be surjective
ModularCurve.CharPModel.FibreModel.red_surjective0 below · depth 12 - Base change of Igusa chart rings to a place over ℓ ∤ N
ModularCurve.IgusaScheme.exists_algHom_tensor_chartAlg_injective_isIntegrallyClosed180 below · depth 13 - Igusa chart algebras inside a fibre model with cusp chart
ModularCurve.IgusaScheme.exists_fibreModel_cuspChart_of_chartAlg743 below · depth 13 - Finite chart ring localises to 𝒪ᵥ where jmath̃ is regular
ModularCurve.CharPModel.FibreModel.piFin_range_localizes_of_jqModC_mem93 below · depth 14 - Pole chart of a fibre model localizes at non-affine places
ModularCurve.CharPModel.FibreModel.piInf_range_localizes_of_not_affine93 below · depth 14 - Integrality over A[jmath̄] from Gauss-integrality and pole-freeness
ModularCurve.CharPModel.exists_monic_eval2_affineBaseFin_eq_zero_of_mem_modularLocalized_of_forall_mem_of_jBar_mem138 below · depth 14 - Pole-chart integrality over A[1/j] at level N
ModularCurve.CharPModel.exists_monic_eval2_affineBaseInf_eq_zero_of_mem_modularLocalized_of_forall_inv_jBar_mem138 below · depth 14 - Place specialisation from a fibre model at arbitrary level
ModularCurve.CharPModel.exists_placeSpecialization_of_fibreModel_of_level1,056 below · depth 14 - Finiteness of the level-N modular function field over ℚ̄(jmath̄)
ModularCurve.CharPModel.finiteDimensional_adjoin_jBar110 below · depth 14 - Package fibre dictionary and centre-pinned model read equal places
ModularCurve.DRModelPackageLevel.pointEquivPlace_efib_inv_eq_congrRingEquiv_pointEquivPlace_of_finChart_centrePin126 below · depth 14 - Centre pins for the chart-pinned generic fibre of the Igusa scheme
ModularCurve.IgusaScheme.coeffEmb_sub_mem_nonunits_pointEquivPlace_ofGenerator_of_chartPin0 below · depth 14 - Base change to ℚ̄ of the two Igusa chart algebras
ModularCurve.IgusaScheme.exists_algEquiv_tensor_chartAlg_chartRing1 below · depth 14 - Galois-compatible generic fibre isomorphism for the Igusa scheme
ModularCurve.IgusaScheme.exists_genericFibreIso_chartPin_and_galoisCompat0 below · depth 14 - Generic fibre of the Igusa scheme is the curve model
ModularCurve.IgusaScheme.exists_genericFibreIso_chartPin_and_galoisCompat_of_algEquiv_chartAlg_chartRing0 below · depth 14 - Generic fibres of the Igusa model: chart pins, Galois and place compatibility
ModularCurve.IgusaScheme.exists_genericFibreIso_chartPin_galoisCompat_and_ratPlaceCompat5 below · depth 14 - Centre pins on special fibres of the Igusa scheme
ModularCurve.IgusaScheme.exists_spBase_and_cuspChart_centrePin_of_genericFibre_iso_ofGenerator815 below · depth 14 - Geometric integrality of the Igusa scheme over ℤ_{(ℓ)}
ModularCurve.IgusaScheme.geometricallyIntegral_igusaTo848 below · depth 14 - Igusa: the two-chart model of X₀(N) over ℤ_{(ℓ)}
ModularCurve.IgusaScheme.isProper_and_smooth_and_geometricallyIntegral858 below · depth 14 - Reduction of Igusa-scheme points matches the fibre model's specialisation of places
ModularCurve.IgusaScheme.pointReduction_eq_congr_spPlace_of_cuspChart_centrePin191 below · depth 14 - Smoothness of the Igusa model's fibre at ℓ ∤ N
ModularCurve.IgusaScheme.smoothOfRelativeDimension_one_pullback_residue825 below · depth 14 - Agreement of places for two q-expansion-pinned models of X₀(N₀)
ModularCurve.JZeroNeronObjectAtP.LevelModel.pointEquivPlace_ofGenerator_eq_of_comp_eeta0_of_chartPin106 below · depth 14 - Order zero of the units Δ(q)/Δ(q^δ) outside the cusps
ModularCurve.ord_coeffEmb_modularUnitSeries_eq_zero_of_not_isCusp63 below · depth 14 - Residue field of a place of ℚ̄ above ℓ has characteristic ℓ
ValuationSubring.charP_residueField_of_liesOverPrime0 below · depth 14 - ℤ_{(ℓ)} maps into every valuation subring over ℓ
ValuationSubring.exists_ratLocalizedAt_ringHom_of_liesOverPrime1 below · depth 14 - Centre-pinned specialisation of places on the finite j-chart
ModularCurve.CharPModel.FibreModel.placeFullC_eq_congr_spPlace_of_finChart_centrePin186 below · depth 15 - Centre-pinned specialisation of places on the pole chart at a cusp
ModularCurve.CharPModel.FibreModel.placeFullC_eq_congr_spPlace_of_infChart_centrePin_of_mem_maximalIdeal184 below · depth 15 - Place specialisation at non-squarefree level prime to ℓ
ModularCurve.CharPModel.exists_placeSpecialization_of_fibreModel_of_level_of_not_squarefree1,021 below · depth 15 - Existence of a place specialization at squarefree level
ModularCurve.CharPModel.exists_placeSpecialization_of_fibreModel_of_squarefree1,021 below · depth 15 - Poles of ̄ j on X₀(N) have order dividing N
ModularCurve.CharPModel.ord_jBar_dvd_of_ord_jBar_neg153 below · depth 15 - Geometric chart rings spanned by the integral chart algebras
ModularCurve.IgusaScheme.chartRing_le_span_coeffEmb_chartAlg0 below · depth 15 - Special fibres of the two Igusa chart algebras
ModularCurve.IgusaScheme.exists_algEquiv_residueField_tensor_chartAlg_chartRing799 below · depth 15 - Special fibres of the Igusa charts as characteristic-ℓ chart rings
ModularCurve.IgusaScheme.exists_algEquiv_residueField_tensor_chartAlg_chartRing_apply_tmul799 below · depth 15 - Special-fibre chart identifications of the Igusa scheme, compatible on overlaps
ModularCurve.IgusaScheme.exists_algEquiv_residueField_tensor_chartAlg_chartRing_compat802 below · depth 15 - Geometric generic fibre of the Igusa scheme as a curve model
ModularCurve.IgusaScheme.exists_curveModel_genericFibre_iso_and_galoisCompat152 below · depth 15 - Igusa chart rings inside a cusp-chart fibre model
ModularCurve.IgusaScheme.exists_fibreModel_cuspChart_of_chartAlg_of_lift743 below · depth 15 - A ℤ_{(ℓ)}-point of the Igusa scheme
ModularCurve.IgusaScheme.nonempty_schemeHomOver_id_igusaTo3 below · depth 15 - Place compatibility of the ℚ̄- and ℚ-level Igusa chart models
ModularCurve.IgusaScheme.ratPlaceCompat_of_chartPins2 below · depth 15 - Smoothness of the j-finite Igusa chart over k
ModularCurve.IgusaScheme.smoothOfRelativeDimension_one_pullback_chartFin_residue820 below · depth 15 - Smoothness of the Igusa pole chart over k
ModularCurve.IgusaScheme.smoothOfRelativeDimension_one_pullback_chartInf_residue820 below · depth 15 - Smoothness of the Igusa scheme over characteristic-ℓ fields
ModularCurve.IgusaScheme.smoothOfRelativeDimension_one_pullback_of_charP827 below · depth 15 - Smoothness of the Igusa fibre from its two charts
ModularCurve.IgusaScheme.smoothOfRelativeDimension_one_pullback_of_chartFin_of_chartInf0 below · depth 15 - Base change of the two-chart model to ℚ̄
ModularCurve.exists_ofGenerator_baseChangeIso_chartPin_and_placeCompat2 below · depth 15 - A charted fibre model realising a place specialization at level N>1
ModularCurve.CharPModel.exists_fibreModel_cuspChart_placeSpecialization_sp_eq_spPlace_of_one_lt1,020 below · depth 16 - Galois-compatible generic fibre of the Igusa scheme at ̄ j
ModularCurve.IgusaScheme.exists_genericFibre_iso_ofGenerator_jBar_and_galoisCompat3 below · depth 16 - Fibres of the Igusa scheme are geometrically connected
ModularCurve.IgusaScheme.geometricallyConnected_pullback_snd_igusaTo131 below · depth 16 - A ℤ_{(ℓ)}-point of the Igusa pole chart
ModularCurve.IgusaScheme.nonempty_algHom_chartAlgInf2 below · depth 16 - Reductions of the Igusa chart algebra span the characteristic-ℓ chart ring
ModularCurve.IgusaScheme.piFin_image_spans_chartAlg182 below · depth 16 - Pole chart ring spanned by reductions of the integral chart algebra
ModularCurve.IgusaScheme.piInf_image_spans_chartAlg182 below · depth 16 - Degeneracy images of fibre-model elements lie in j-integral closure
ModularCurve.CharPModel.FibreModel.exists_forall_le_coe_heckeAlphaBar_mem_jIntegralClosure_and_coe_heckeBetaBar_mem115 below · depth 17 - Galois-compatible generic fibre from the chart-ring identifications
ModularCurve.IgusaScheme.exists_genericFibreIso_galoisCompat_of_algEquiv_chartAlg_chartRing0 below · depth 17 - Integrality over A[j] descends to all large number fields
ModularCurve.exists_forall_mem_jIntegralClosure_of_integral_affineBaseFin116 below · depth 17 - Geometric fibre at ℓ≠ p of the j-chart of X₀(p)
ModularCurve.HpoolLevelRing.exists_algEquiv_residueField_tensor_quotient_span_natCast_chartRing803 below · depth 19