Definitions/Def_ModularCurve_NodeLocalized.lean
Local ring of the Kronecker plane model at a closed point mod p
Fix N \ge 1, a commutative ring L, a subring A \subseteq L, a field k, a ring homomorphism \mathrm{red} \colon A \to k and two elements a, b \in k. Three objects are defined inside the Laurent series ring L(\!(q)\!) (Hahn series over \mathbb{Z} with coefficients in L).
First, modularEval is the ring homomorphism from the polynomial ring A[X_0, X_1] in two variables to L(\!(q)\!) obtained by evaluating: coefficients in A are sent to the corresponding constant Laurent series via CharPReduction.constSeries, the first variable to the j-expansion j(q) = q^{-1} + \cdots (jqModC L), and the second to its N-fold substitution j(q^N) (jqNModC L N). Thus p \mapsto p(j, j_N). Second, pointEval is the homomorphism A[X_0, X_1] \to k evaluating coefficients through \mathrm{red} and the two variables at a and b, so p \mapsto \bar p(a,b).
Third, modularLocalizedAtPoint is the subring of L(\!(q)\!) whose elements are those f for which there exist r, s \in A[X_0, X_1] with \bar s(a,b) \ne 0 in k and f \cdot s(j, j_N) = r(j, j_N) in L(\!(q)\!); closure under zero, one, addition, negation and multiplication is part of the definition, obtained by the usual clearing of denominators. This realises the localisation of the image A[j, j_N] of the coordinate ring of the Kronecker plane model at the multiplicative set of polynomials not vanishing at the point (a,b) of the fibre over \mathrm{red}, as a subring of the ambient series ring rather than as an abstract localisation.
The accompanying lemmas record the membership criterion by definition, and that every value p(j, j_N) of a polynomial lies in this subring (take s = 1).
Relation to Mathlib
Mathlib's localisation machinery (Localization, IsLocalization) builds a new ring; here the localisation is instead carved out as a Subring of the ambient Laurent series ring, so that its elements are honest q-expansions. The modular inputs jqModC, jqNModC and the ambient reduction formalism are the project's own.
Where it is used
These local rings belong to the project's treatment of modular functions modulo a prime: the plane model of X_0(N) cut out by the modular equation in the (j, j_N)-coordinates is localised at a closed point (a,b) of its reduction, the case N = q, b = a^q in characteristic q being the situation of the two Kronecker branches crossing above a supersingular j-invariant. This analysis of X_0(q) in characteristic q underlies the level-lowering step of the Frey–Serre–Ribet argument.
References
- 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
- N. M. Katz and B. Mazur, Arithmetic Moduli of Elliptic Curves, Annals of Mathematics Studies 108, Princeton University Press, 1985
References are suggested automatically and have not been individually verified.
English text generated automatically from the Lean source; the Lean statement is authoritative.
- 60 lines
- 5 declarations
- used in the statements of 87 theorems and imported by 151 proofs
- imports 1 definition modules
Source file: Definitions/Def_ModularCurve_NodeLocalized.lean
Declarations
- def
ModularCurve.NodeLocalized.modularEval - def
ModularCurve.NodeLocalized.pointEval - def
ModularCurve.NodeLocalized.modularLocalizedAtPoint - theorem
ModularCurve.NodeLocalized.mem_modularLocalizedAtPoint - theorem
ModularCurve.NodeLocalized.modularEval_mem_modularLocalizedAtPoint
Source
import Mathlib import Definitions.Def_ModularCurve_CharPReduction set_option autoImplicit false noncomputable section namespace ModularCurve namespace NodeLocalized open CharPReduction section Point variable (N : ℕ) [NeZero N] {L : Type*} [CommRing L] (A : Subring L) {k : Type*} [Field k] (red : A →+* k) (a b : k) def modularEval : MvPolynomial (Fin 2) A →+* LaurentSeries L := MvPolynomial.eval₂Hom (CharPReduction.constSeries A) ![jqModC L, jqNModC L N] def pointEval : MvPolynomial (Fin 2) A →+* k := MvPolynomial.eval₂Hom red ![a, b] def modularLocalizedAtPoint : Subring (LaurentSeries L) where carrier := {f | ∃ r s : MvPolynomial (Fin 2) A, pointEval A red a b s ≠ 0 ∧ f * modularEval N A s = modularEval N A r} zero_mem' := ⟨0, 1, by rw [map_one]; exact one_ne_zero, by rw [map_one, map_zero, zero_mul]⟩ one_mem' := ⟨1, 1, by rw [map_one]; exact one_ne_zero, by rw [map_one, one_mul]⟩ add_mem' := by rintro f g ⟨r, s, hs, hf⟩ ⟨u, t, ht, hg⟩ refine ⟨r * t + u * s, s * t, by rw [map_mul]; exact mul_ne_zero hs ht, ?_⟩ rw [map_mul, map_add, map_mul, map_mul] calc (f + g) * (modularEval N A s * modularEval N A t) = f * modularEval N A s * modularEval N A t + g * modularEval N A t * modularEval N A s := by ring _ = modularEval N A r * modularEval N A t + modularEval N A u * modularEval N A s := by rw [hf, hg] neg_mem' := by rintro f ⟨r, s, hs, hf⟩ exact ⟨-r, s, hs, by rw [neg_mul, hf, map_neg]⟩ mul_mem' := by rintro f g ⟨r, s, hs, hf⟩ ⟨u, t, ht, hg⟩ refine ⟨r * u, s * t, by rw [map_mul]; exact mul_ne_zero hs ht, ?_⟩ rw [map_mul, map_mul] calc f * g * (modularEval N A s * modularEval N A t) = (f * modularEval N A s) * (g * modularEval N A t) := by ring _ = modularEval N A r * modularEval N A u := by rw [hf, hg] theorem mem_modularLocalizedAtPoint {f : LaurentSeries L} : f ∈ modularLocalizedAtPoint N A red a b ↔ ∃ r s : MvPolynomial (Fin 2) A, pointEval A red a b s ≠ 0 ∧ f * modularEval N A s = modularEval N A r := Iff.rfl theorem modularEval_mem_modularLocalizedAtPoint (p : MvPolynomial (Fin 2) A) : modularEval N A p ∈ modularLocalizedAtPoint N A red a b := ⟨p, 1, by rw [map_one]; exact one_ne_zero, by rw [map_one, mul_one]⟩ end Point end NodeLocalized end ModularCurve end
Statements phrased using this module (87)
- Crossing presentation at the j=0 node of X₀(3)
ModularCurve.exists_crossingPresentation_modularLocalizedAtPoint_coeffSubring_of_q_eq_three181 below · depth 15 - Crossing presentation at the characteristic-two supersingular node
ModularCurve.exists_crossingPresentation_modularLocalizedAtPoint_coeffSubring_of_q_eq_two182 below · depth 15 - Regular branch reductions at an mathbb F_{q²}-point with no pole
ModularCurve.exists_hasValue_and_hasValue_frobNodePair_of_forall_pole_not_centred270 below · depth 15 - Agreeing branch values at a supersingular node
ModularCurve.exists_hasValue_frobNodePair_of_forall_pole_not_centred535 below · depth 15 - Number-field presentation of functions on X₀(Nq)
ModularCurve.exists_numberField_presentation_level114 below · depth 15 - Modular relations over A∩ K vanish at (a,a^q)
ModularCurve.NodeLocalized.pointEval_eq_zero_of_modularEval_eq_zero152 below · depth 16 - Equal branch values above a supersingular node of X₀(q)
ModularCurve.exists_hasValue_frobNodePair_of_isIntegral_modularLocalizedAtPoint_of_pow_eq443 below · depth 16 - Both branch reductions share a value at the node (a,a^q)
ModularCurve.exists_hasValue_frobNodePair_of_mem_modularLocalizedAtPoint53 below · depth 16 - Integrality over the plane local ring at (a,a^q)
ModularCurve.isIntegral_modularLocalizedAtPoint_of_forall_ord_nonneg263 below · depth 16 - j and j_q lie in the integral closure of A₀[j]
ModularCurve.NodeLocalized.jqModC_mem_jIntegralClosure_and_jqNModC_mem146 below · depth 17 - The crossing model W[[u,v]]/(uv-varpi^e) is a normal local domain
ModularCurve.UVCrossingModel.isIntegrallyClosed_of_uniformizer_pow24 below · depth 17 - Crossing presentation at a supersingular node of X₀(q)
ModularCurve.exists_crossingPresentation_modularLocalizedAtPoint_coeffSubring468 below · depth 17 - Equal branch values at degenerate supersingular nodes
ModularCurve.exists_hasValue_frobNodePair_of_isIntegral_modularLocalizedAtPoint_of_degenerate401 below · depth 17 - Common branch value at a generic supersingular node
ModularCurve.exists_hasValue_frobNodePair_of_isIntegral_modularLocalizedAtPoint_of_ne_zero_of_ne_1728324 below · depth 17 - Integrality at height-one primes with no pole centred at (a,a^q)
ModularCurve.exists_mul_eq_of_height_one_of_forall_pole_not_centred253 below · depth 17 - Number field presentation of functions on X₀(q)_ℚ̄
ModularCurve.exists_numberField_presentation4 below · depth 17 - Number field presentation of modular functions in j, j_N
ModularCurve.exists_numberField_presentation_of_neZero114 below · depth 17 - Noetherian normality of the integral closure of A₀[j]
ModularCurve.jIntegralClosure_isNoetherian_and_isLocalization154 below · depth 17 - Gauss coordinate at a supersingular node with j=1728
ModularCurve.NodeLocalized.exists_gaussCoordinate_of_crossingPresentation_ofNat1728176 below · depth 18 - Gauss coordinate at a supersingular centre j=0
ModularCurve.NodeLocalized.exists_gaussCoordinate_of_crossingPresentation_zero176 below · depth 18 - Unique prime above a generic supersingular node over a number field
ModularCurve.eq_of_isPrime_of_liesOver_descendedNodeRing_of_ne_zero_of_ne_1728321 below · depth 18 - Crossing presentation of the node ring at j=0 or 1728
ModularCurve.exists_crossingPresentation_modularLocalizedAtPoint_coeffSubring_of_eq_zero_or_eq_1728429 below · depth 18 - Crossing presentation of the node ring at a width-one supersingular point
ModularCurve.exists_crossingPresentation_modularLocalizedAtPoint_coeffSubring_of_ne_zero_of_ne_1728293 below · depth 18 - One point over supersingular nodes with j=0 or 1728
ModularCurve.exists_hasValue_frobNodePair_of_isIntegral_modularLocalizedAtPoint_of_eq_zero_or_eq_1728380 below · depth 18 - Equal branch values at a supersingular node, q<5
ModularCurve.exists_hasValue_frobNodePair_of_isIntegral_modularLocalizedAtPoint_of_lt_five218 below · depth 18 - Vertical height-one primes of the j-integral closure
ModularCurve.exists_mul_eq_of_height_one_of_natCast_mem131 below · depth 18 - Places of X₀(q)_ℚ̄ centred at (a,a^q) cutting out 𝔭
ModularCurve.exists_place_centred_node_of_height_one_of_natCast_notMem208 below · depth 18 - Annulus of places centred at a width-one supersingular crossing
ModularCurve.exists_ssAnnulus_centred_of_widthOne805 below · depth 18 - The modular ring as the range of two-variable evaluation
ModularCurve.modularRing_eq_range_modularEval0 below · depth 18 - Unique centred place with given value of j_q-j^q
ModularCurve.NodeLocalized.existsUnique_place_centred_hasValue_nodeCoord316 below · depth 19 - Node coordinate j_q-j^q has a value in the annulus
ModularCurve.NodeLocalized.exists_hasValue_nodeCoord_of_centred200 below · depth 19 - K(j,j_q) lies in the fraction field of the node ring
ModularCurve.NodeLocalized.exists_mul_eq_of_mem_fieldOver0 below · depth 19 - Height-one primes at the node admit centred ℚ̄-points
ModularCurve.NodeLocalized.exists_ringHom_ker_eq_centred_of_height_one_of_natCast_notMem158 below · depth 19 - Elements of the node-localized ring take A-values at W
ModularCurve.NodeLocalized.exists_sub_algebraMap_mem_nonunits_of_mem_modularLocalizedAtPoint0 below · depth 19 - Two-branch normalisation at a supersingular node of X₀(q)
ModularCurve.NodeLocalized.exists_twoBranchNormalisation_qpow_of_forall_centred_ord_eq_zero684 below · depth 19 - Unit values at places centred on a supersingular node
ModularCurve.NodeLocalized.isUnit_evalAt_of_forall_centred_ord_eq_zero_of_gaussUnit562 below · depth 19 - Regularity at a supersingular node gives membership in the local ring
ModularCurve.NodeLocalized.mem_modularLocalizedAtPoint_coeffSubring_of_isIntegral_of_mem_fieldOver_of_redRestrict_eq_of_forall_centred_ord_nonneg566 below · depth 19 - Node coordinate minus its value is a uniformiser at W
ModularCurve.NodeLocalized.ord_nodeCoord_sub_eq_one_of_centred356 below · depth 19 - Primes over a supersingular node with j=0 or 1728
ModularCurve.eq_of_isPrime_of_liesOver_descendedNodeRing_of_eq_zero_or_eq_1728377 below · depth 19 - Inert quadratic descent of the node crossing presentation
ModularCurve.exists_crossingPresentation_modularLocalizedAtPoint_coeffSubring_of_inertQuadratic170 below · depth 19 - Crossing model for the completed node ring at j=0,1728
ModularCurve.exists_ringEquiv_adicCompletion_modularLocalizedAtPoint_uvCrossingModel_of_eq_zero_or_eq_1728422 below · depth 19 - Integrality over the node ring over A ∩ K
ModularCurve.isIntegral_modularLocalizedAtPoint_coeffSubring_of_forall_pole_not_centred263 below · depth 19 - Normality of the node ring of X₀(q) at j∈{0,1728}
ModularCurve.isIntegrallyClosed_modularLocalizedAtPoint_coeffSubring_of_eq_zero_or_eq_1728431 below · depth 19 - Normality of the q-node ring at a supersingular point, q<5
ModularCurve.isIntegrallyClosed_modularLocalizedAtPoint_coeffSubring_of_lt_five215 below · depth 19 - Integral closedness at a generic supersingular node of X₀(q)
ModularCurve.isIntegrallyClosed_modularLocalizedAtPoint_coeffSubring_of_ne_zero_of_ne_1728321 below · depth 19 - Supersingularity of j with j^{q^2}=j under base change
ModularCurve.mem_ssJSet_algebraMap_of_pow_eq_of_ne_zero_of_ne_172815 below · depth 19 - Kronecker remainder equals q⁻¹(j_q-j^q)(j-j_q^{ q})
ModularCurve.modularEval_kroneckerRemainder0 below · depth 19 - Point evaluation of a transported integral polynomial
ModularCurve.pointEval_kroneckerRemainder0 below · depth 19 - Invariant subring of the level-two ring with completion the ̂ g-fixed ring
ModularCurve.LambdaNodeLocalized.exists_subring_adicCompletion_ringEquiv_eqLocus_of_stabilizer_of_eq_zero_or_eq_1728377 below · depth 20 - Section prime at the width-two supersingular node j = 1728
ModularCurve.NodeLocalized.exists_heightOnePrime_sectionOfCrossingParam_centred_ofNat1728199 below · depth 20 - Height-one section prime for an admissible crossing value at j=0
ModularCurve.NodeLocalized.exists_heightOnePrime_sectionOfCrossingParam_centred_zero199 below · depth 20 - Residue at a centred place over a supersingular node
ModularCurve.NodeLocalized.exists_mem_and_red_eq_of_hasValue_frobNodePair_of_centred_of_ssJSet_of_ne_zero_of_ne_1728426 below · depth 20 - Scaling a modular function to a nonzero Gauss reduction
ModularCurve.NodeLocalized.exists_smul_gaussUnit376 below · depth 20 - Surjection from W[[X₀,X₁]] onto the completed node ring
ModularCurve.NodeLocalized.exists_surjective_mvPowerSeries_adicCompletion_modularLocalizedAtPoint170 below · depth 20 - Two-branch normalisation at the node j=1728: width divides the Fricke exponent
ModularCurve.NodeLocalized.exists_twoBranchNormalisation_qpow_ofNat1728_width_dvd594 below · depth 20 - Two-branch normalisation at the node j=0: width divides the Fricke exponent
ModularCurve.NodeLocalized.exists_twoBranchNormalisation_qpow_zero_width_dvd594 below · depth 20 - Crossing presentations force q-adically equal values at node places
ModularCurve.NodeLocalized.forall_natCast_pow_dvd_sub_of_hasValue_eq_of_crossingPresentation146 below · depth 20 - Centred values at the node j=1728 agree q-adically
ModularCurve.NodeLocalized.forall_natCast_pow_dvd_sub_of_hasValue_eq_of_crossingPresentation_ofNat1728146 below · depth 20 - Unit values of a Gauss pair at nodes centred at 1728
ModularCurve.NodeLocalized.isUnit_evalAt_ofNat1728_of_gaussPair_of_isAlgClosed621 below · depth 20 - Unit values of a Gauss pair at the node j=0
ModularCurve.NodeLocalized.isUnit_evalAt_zero_of_gaussPair_of_isAlgClosed621 below · depth 20 - Non-vanishing of the near-branch node value at supersingular nodes
ModularCurve.NodeLocalized.ne_zero_of_hasValue_frobNodePair_of_forall_centred_ord_eq_zero449 below · depth 20 - Places of ℚ̄(X₀(q)) determined by values over a number field
ModularCurve.NodeLocalized.place_eq_of_forall_hasValue_iff_of_mem_fieldOver149 below · depth 20 - Scalar normalisation making a modular function a unit of the localised reduction
ModularCurve.CharPReduction.exists_smul_mem_modularLocalized_and_modularRedLocHom_ne_zero_of_charP125 below · depth 21 - Maximal ideals of the level-two ring are λ-nodes
ModularCurve.LambdaNodeLocalized.exists_eq_comap_maximalIdeal_lambdaLocalizedAtPoint_of_isMaximal358 below · depth 21 - Every element of the localized node ring is congruent to a constant
ModularCurve.LambdaNodeLocalized.exists_sub_const_mem_maximalIdeal_lambdaLocalizedAtPoint208 below · depth 21 - Module-finiteness of the λ-level integral closure over the node local ring
ModularCurve.LambdaNodeLocalized.moduleFinite_of_forall_mem_iff_isIntegralElem_qExpand_modularLocalizedAtPoint179 below · depth 21 - Zero or pole at a place centred at a supersingular node
ModularCurve.NodeLocalized.exists_centred_ord_ne_zero_of_not_isUnit_frobNodePair448 below · depth 21 - Elements of order zero at a node are monomials
ModularCurve.NodeLocalized.exists_isUnit_and_eq_pow_mul_pow_mul_pow_mul_of_forall_centred_ord_eq_zero_of_crossingPresentation272 below · depth 21 - Residue compatibility at a supersingular node of X₀(q)
ModularCurve.NodeLocalized.exists_mem_and_red_eq_of_hasValue_frobNodePair_of_centred_of_ssJSet569 below · depth 21 - Membership in the node local ring at (a,a^q), a ≠ 0,1728
ModularCurve.NodeLocalized.mem_modularLocalizedAtPoint_coeffSubring_of_isIntegral_of_mem_fieldOver_of_ne_zero_of_ne_1728424 below · depth 21 - Regularity at points (b,b^q) with b^{q^2}≠ b
ModularCurve.NodeLocalized.mem_modularLocalizedAtPoint_of_mem_modularLocalized_of_isIntegral179 below · depth 21 - Nonvanishing of the near-branch node value at a supersingular centre
ModularCurve.NodeLocalized.ne_zero_of_hasValue_frobNodePair_of_forall_centred_ord_eq_zero_of_mem_ssJSet592 below · depth 21 - Maximal ideal Q contracted from the λ-localisation at (l',l'^q)
ModularCurve.LambdaNodeLocalized.eq_comap_maximalIdeal_lambdaLocalizedAtPoint_of_sub_const_mem356 below · depth 22 - Finite spanning set over the descended node ring at level two
ModularCurve.LambdaNodeLocalized.exists_finset_forall_isIntegralElem_eq_sum_mul_of_mem_lambdaFieldOver178 below · depth 22 - Liftable level-two value at a maximal ideal of B
ModularCurve.LambdaNodeLocalized.exists_level_two_value_sub_const_mem_of_isMaximal356 below · depth 22 - Finite spanning set for the integral closure of A₀[j]
ModularCurve.NodeLocalized.exists_finset_forall_mem_jIntegralClosure_eq_sum_mul154 below · depth 22 - Height-one prime containing p, avoiding q and the node
ModularCurve.NodeLocalized.exists_heightOne_mem_of_mul_eq_of_not_isUnit_frobNodePair405 below · depth 22 - A prime of the j-integral closure through p=fs avoiding the node
ModularCurve.NodeLocalized.exists_isPrime_mem_of_mul_eq_of_not_isUnit_frobNodePair361 below · depth 22 - Node-local functions as quotients integral over (A∩ K)[j]
ModularCurve.NodeLocalized.exists_mul_eq_mem_jIntegralClosure_of_not_isUnit_frobNodePair147 below · depth 22 - Membership in the node-local ring over a number field
ModularCurve.NodeLocalized.mem_modularLocalizedAtPoint_coeffSubring_of_isIntegral_of_mem_fieldOver566 below · depth 22 - Regularity at a supersingular node gives localised membership
ModularCurve.NodeLocalized.mem_modularLocalizedAtPoint_of_mem_modularLocalized_of_forall_centred_ord_eq_zero_of_ssJSet568 below · depth 22 - Coefficientwise reduction of p(j(q),j(q^N))
ModularCurve.redRes_modularEval0 below · depth 22 - Fricke image of a pole-free unit reduces to a nonzero constant
ModularCurve.ComponentChart.exists_residue_frickeInvolutionBar_eq_algebraMap_of_forall_pole_eq_cuspInftyBar561 below · depth 24 - Vanishing of the Fricke transform at a supersingular node
ModularCurve.ComponentChart.residue_frickeInvolutionBar_eq_zero_of_hasValue_zero_of_forall_pole_eq_cuspInftyBar562 below · depth 24 - Vanishing of the Fricke-transformed reduction on the 0-line
ModularCurve.modularRedLocHom_frickeInvolutionBar_eq_zero_of_hasValue_zero_of_forall_ord_nonneg553 below · depth 25 - Wide two-branch normalisation at supersingular nodes with j∈{0,1728}
ModularCurve.NodeLocalized.exists_twoBranchNormalisation_qpow_width_dvd_and_mul_ord_charLGeomPlaceOfPoint_eq_neg_of_eq_zero_or_eq_ofNat1728740 below · depth 26 - Two-branch normalisation at a node, with node order -m
ModularCurve.NodeLocalized.exists_twoBranchNormalisation_qpow_and_ord_charLGeomPlaceOfPoint_eq_neg696 below · depth 27