Definitions/Def_ModularCurve_SupersingularNodes.lean
Frobenius-paired places on the -line, with widths
Throughout, K is a field and F = modularFunctionFieldC K 1, the intermediate field of K((q)) generated over K by the formal q-expansion jqModC K of the modular invariant; since that series is transcendental over K, this field is K-isomorphic to K(T), and for a \in K the place charLGeomPlaceOfPoint K a of F over K is the transport along that isomorphism of the place T = a of the rational function field, a place of degree one. Fix a natural number q. The map frobNodePair q sends a \in K to the ordered pair of places (P_a, P_{a^q}), where P_b denotes charLGeomPlaceOfPoint K b; it is injective because b \mapsto P_b is, and frobNodePairEmb q packages it as an embedding of K into the product of the place set with itself. For a finite subset S \subseteq K, nodePairsOf q S is the image finset \{(P_a,P_{a^q}) : a \in S\}, whose membership criterion and cardinality (=\#S) are recorded. The map jOfNode q S picks, for an element s of nodePairsOf q S, the parameter a \in S with (P_a,P_{a^q}) = s; it is a two-sided inverse of frobNodePair q on S, and nodeEquiv q S is the resulting equivalence S \simeq nodePairsOf q S, with its coercion lemmas. Finally, given a weight e \colon K \to \mathbb{N}, widthOf q S e is the function on nodePairsOf q S obtained by transporting e along jOfNode q S, so that the pair attached to a receives the value e(a). The module defines only this indexing and bookkeeping: nothing is asserted here about any modular curve or its reduction.
Relation to Mathlib
The places used are the project's own AlgebraicCurve.Place (a valuation subring of the field, containing the image of the base field, proper, and a principal ideal ring), and modularFunctionFieldC is the project's formal q-expansion model of the function field; Mathlib has no counterpart. The packaging uses Mathlib's Finset.map and Equiv machinery.
Where it is used
The intended instantiation takes K of characteristic q, S the finite set of supersingular j-invariants there, and e the weight 3 at j = 0, 2 at j = 1728 and 1 elsewhere: the pairs (P_a, P_{a^q}) then index the crossing points of the two copies of the j-line in the Deligne–Rapoport description of X_0(q) in characteristic q, glued by Frobenius, and widthOf records the thickness of each crossing. These finite data are the combinatorial input to the semistable specialisation datum for J_0(q) at q used in the level-lowering part of the 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
- B. Mazur, Modular curves and the Eisenstein ideal, Publications Mathématiques de l'IHÉS 47 (1977), 33–186
References are suggested automatically and have not been individually verified.
English text generated automatically from the Lean source; the Lean statement is authoritative.
- 97 lines
- 22 declarations
- used in the statements of 86 theorems and imported by 123 proofs
- imports 1 definition modules
Source file: Definitions/Def_ModularCurve_SupersingularNodes.lean
Declarations
- def
ModularCurve.frobNodePair - theorem
ModularCurve.frobNodePair_fst - theorem
ModularCurve.frobNodePair_snd - theorem
ModularCurve.frobNodePair_injective - def
ModularCurve.frobNodePairEmb - theorem
ModularCurve.frobNodePairEmb_apply - def
ModularCurve.nodePairsOf - theorem
ModularCurve.mem_nodePairsOf_iff - theorem
ModularCurve.frobNodePair_mem_nodePairsOf - theorem
ModularCurve.card_nodePairsOf - def
ModularCurve.jOfNode - theorem
ModularCurve.jOfNode_mem - theorem
ModularCurve.frobNodePair_jOfNode - theorem
ModularCurve.jOfNode_mk - theorem
ModularCurve.jOfNode_injective - def
ModularCurve.nodeEquiv - theorem
ModularCurve.coe_nodeEquiv_apply - theorem
ModularCurve.coe_nodeEquiv_symm_apply - def
ModularCurve.widthOf - theorem
ModularCurve.widthOf_apply - theorem
ModularCurve.widthOf_mk - theorem
ModularCurve.widthOf_nodeEquiv
Source
import Definitions.Def_ModularCurve_SpecializeModuli set_option autoImplicit false noncomputable section open AlgebraicCurve namespace ModularCurve variable {K : Type*} [Field K] def frobNodePair (q : ℕ) (a : K) : Place K (modularFunctionFieldC K 1) × Place K (modularFunctionFieldC K 1) := (charLGeomPlaceOfPoint K a, charLGeomPlaceOfPoint K (a ^ q)) @[simp] theorem frobNodePair_fst (q : ℕ) (a : K) : (frobNodePair q a).1 = charLGeomPlaceOfPoint K a := rfl @[simp] theorem frobNodePair_snd (q : ℕ) (a : K) : (frobNodePair q a).2 = charLGeomPlaceOfPoint K (a ^ q) := rfl theorem frobNodePair_injective (q : ℕ) : Function.Injective (frobNodePair (K := K) q) := fun _ _ h => charLGeomPlaceOfPoint_injective K (congrArg Prod.fst h) def frobNodePairEmb (q : ℕ) : K ↪ Place K (modularFunctionFieldC K 1) × Place K (modularFunctionFieldC K 1) := ⟨frobNodePair q, frobNodePair_injective q⟩ @[simp] theorem frobNodePairEmb_apply (q : ℕ) (a : K) : frobNodePairEmb q a = frobNodePair q a := rfl def nodePairsOf (q : ℕ) (S : Finset K) : Finset (Place K (modularFunctionFieldC K 1) × Place K (modularFunctionFieldC K 1)) := S.map (frobNodePairEmb q) theorem mem_nodePairsOf_iff (q : ℕ) (S : Finset K) (s : Place K (modularFunctionFieldC K 1) × Place K (modularFunctionFieldC K 1)) : s ∈ nodePairsOf q S ↔ ∃ a ∈ S, frobNodePair q a = s := by simp only [nodePairsOf, Finset.mem_map, frobNodePairEmb_apply] theorem frobNodePair_mem_nodePairsOf (q : ℕ) {S : Finset K} {a : K} (ha : a ∈ S) : frobNodePair q a ∈ nodePairsOf q S := Finset.mem_map_of_mem (frobNodePairEmb q) ha @[simp] theorem card_nodePairsOf (q : ℕ) (S : Finset K) : (nodePairsOf q S).card = S.card := Finset.card_map _ def jOfNode (q : ℕ) (S : Finset K) (s : ↥(nodePairsOf q S)) : K := Classical.choose ((mem_nodePairsOf_iff q S s).mp s.2) theorem jOfNode_mem (q : ℕ) (S : Finset K) (s : ↥(nodePairsOf q S)) : jOfNode q S s ∈ S := (Classical.choose_spec ((mem_nodePairsOf_iff q S s).mp s.2)).1 @[simp] theorem frobNodePair_jOfNode (q : ℕ) (S : Finset K) (s : ↥(nodePairsOf q S)) : frobNodePair q (jOfNode q S s) = s := (Classical.choose_spec ((mem_nodePairsOf_iff q S s).mp s.2)).2 @[simp] theorem jOfNode_mk (q : ℕ) {S : Finset K} {a : K} (ha : a ∈ S) : jOfNode q S ⟨frobNodePair q a, frobNodePair_mem_nodePairsOf q ha⟩ = a := frobNodePair_injective q (frobNodePair_jOfNode q S _) theorem jOfNode_injective (q : ℕ) (S : Finset K) : Function.Injective (jOfNode q S) := fun s t h => Subtype.ext (by rw [← frobNodePair_jOfNode q S s, ← frobNodePair_jOfNode q S t, h]) def nodeEquiv (q : ℕ) (S : Finset K) : ↥S ≃ ↥(nodePairsOf q S) where toFun a := ⟨frobNodePair q a, frobNodePair_mem_nodePairsOf q a.2⟩ invFun s := ⟨jOfNode q S s, jOfNode_mem q S s⟩ left_inv a := Subtype.ext (jOfNode_mk q a.2) right_inv s := Subtype.ext (frobNodePair_jOfNode q S s) @[simp] theorem coe_nodeEquiv_apply (q : ℕ) (S : Finset K) (a : ↥S) : ((nodeEquiv q S a : ↥(nodePairsOf q S)) : Place K (modularFunctionFieldC K 1) × Place K (modularFunctionFieldC K 1)) = frobNodePair q (a : K) := rfl @[simp] theorem coe_nodeEquiv_symm_apply (q : ℕ) (S : Finset K) (s : ↥(nodePairsOf q S)) : ((nodeEquiv q S).symm s : K) = jOfNode q S s := rfl def widthOf (q : ℕ) (S : Finset K) (e : K → ℕ) : ↥(nodePairsOf q S) → ℕ := fun s => e (jOfNode q S s) theorem widthOf_apply (q : ℕ) (S : Finset K) (e : K → ℕ) (s : ↥(nodePairsOf q S)) : widthOf q S e s = e (jOfNode q S s) := rfl @[simp] theorem widthOf_mk (q : ℕ) {S : Finset K} (e : K → ℕ) {a : K} (ha : a ∈ S) : widthOf q S e ⟨frobNodePair q a, frobNodePair_mem_nodePairsOf q ha⟩ = e a := by rw [widthOf_apply, jOfNode_mk q ha] theorem widthOf_nodeEquiv (q : ℕ) (S : Finset K) (e : K → ℕ) (a : ↥S) : widthOf q S e (nodeEquiv q S a) = e a := widthOf_mk q e a.2 end ModularCurve end
Statements phrased using this module (86)
- Level-one supersingular node pairs are indexed by j-invariants
ModularCurve.exists_nodePairsOfPlaces_arithFrobC_eq_nodePairsOf22 below · depth 14 - 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 - Node pairs from places agree with node pairs from j-values
ModularCurve.nodePairsOfPlaces_map_charLGeomPlaceOfPoint_eq_nodePairsOf0 below · depth 15 - 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 - Good admissible representative of σ V-V at a wide node
ModularCurve.PlaceSpecialization.LevelOneProlongationPair.exists_goodRep_admissible_smul_single_sub_self_of_eq_zero_or_eq1,025 below · depth 17 - Good admissible representative of σ V-V at a supersingular node
ModularCurve.PlaceSpecialization.LevelOneProlongationPair.exists_goodRep_admissible_smul_single_sub_self_of_ne_zero_of_ne913 below · depth 17 - Moving representatives of J₀(q)-classes off a finite place set
ModularCurve.PlaceSpecialization.LevelOneProlongationPair.exists_rep_redFst_redSnd_notMem_of_forall_notMem_ssPlaces591 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 - 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 - Crossing lemma at a supersingular node of X₀(q) mod q
ModularCurve.exists_hasValue_frobNodePair_of_mem_ssJSet_of_pow_eq535 below · depth 17 - Reduction kernel at the node is the branch ideal (varpi, j_q-j^{ q})
ModularCurve.NodeLocalized.modularRedLocHom_eq_zero_iff_mem_span_branchFst154 below · depth 18 - Fricke twin: kernel along the branch j - j_q^{ q}
ModularCurve.NodeLocalized.modularRedLocHom_frickeInvolutionBar_eq_zero_iff_mem_span_branchSnd160 below · depth 18 - Branch number at a node, unit form of ord = n
ModularCurve.NodeLocalized.ord_modularRedLocHom_eq_iff_exists_isUnit194 below · depth 18 - Inertia-stable representatives of J₀(q)^{I_A} avoiding a finite place set
ModularCurve.PlaceSpecialization.LevelOneProlongationPair.exists_inertiaStable_rep_redFst_redSnd_notMem_of_forall_notMem_ssPlaces702 below · depth 18 - Residues of j-c along a level-one prolongation pair
ModularCurve.PlaceSpecialization.LevelOneProlongationPair.exists_mem_integers_residue_jFun_sub_algebraMap82 below · depth 18 - Exact branch orders for a lift keyed on a split datum
ModularCurve.PlaceSpecialization.LevelOneProlongationPair.exists_mem_riemannRochSpace_ord_residue_eq_neg_of_splitDatum534 below · depth 18 - One-point moving lemma on X₀(q) at level one
ModularCurve.PlaceSpecialization.LevelOneProlongationPair.exists_ord_eq_one_forall_redFst_redSnd_notMem590 below · depth 18 - Tube equation for the inertial displacement σ V-V
ModularCurve.PlaceSpecialization.LevelOneProlongationPair.exists_tubeEquation_smul_sub_self452 below · depth 18 - Exact branch orders make E+divG effective and good
ModularCurve.PlaceSpecialization.LevelOneProlongationPair.isGoodDivisor_add_of_ord_residue_eq_neg182 below · depth 18 - Explicit split datum at one supersingular node, level one
ModularCurve.PlaceSpecialization.LevelOneProlongationPair.splitDatum_of_forall_centred_ord_eq632 below · depth 18 - Strict type dichotomy off the Frobenius-square-fixed locus
ModularCurve.PlaceSpecialization.isStrictTypeOne_or_isStrictTypeTwo0 below · depth 18 - Level-one gluing datum vanishes at supersingular node places
ModularCurve.PlaceSpecialization.levelOneGlueData_apply_frobNodePair_eq_zero26 below · depth 18 - Strict type one and strict type two are exclusive
ModularCurve.PlaceSpecialization.not_isStrictTypeOne_and_isStrictTypeTwo0 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 - 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 - Simple zero of jmath̃-jmath̃^{q^2} at jmath̃=a
ModularCurve.ord_charLGeomPlaceOfPoint_jqModC_sub_pow_sq_eq_one38 below · depth 18 - 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 - Lifting node-compatible level-one pairs into L(D)
ModularCurve.PlaceSpecialization.LevelOneProlongationPair.exists_mem_riemannRochSpace_residue_eq_of_regular_of_nonneg547 below · depth 19 - Inertia-equivariant one-point moving lemma on X₀(q)
ModularCurve.PlaceSpecialization.LevelOneProlongationPair.exists_ord_eq_one_forall_redFst_redSnd_notMem_forall_inertia_smul_eq_residueField693 below · depth 19 - Branch orders and glued twisted values at a supersingular node
ModularCurve.PlaceSpecialization.LevelOneProlongationPair.le_ord_residue_and_exists_hasValue_of_mul553 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 - 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 - 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 - Surjection from W[[X₀,X₁]] onto the completed node ring
ModularCurve.NodeLocalized.exists_surjective_mvPowerSeries_adicCompletion_modularLocalizedAtPoint170 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 - Inertia-equivariant lift of a node-compatible residue pair
ModularCurve.PlaceSpecialization.LevelOneProlongationPair.exists_mem_riemannRochSpace_residue_eq_forall_inertia_smul_eq_of_regular_of_nonneg557 below · depth 20 - Reductions of a bi-integral section of L(D), D good and effective
ModularCurve.PlaceSpecialization.LevelOneProlongationPair.residuePair_mem_riemannRochSpace_of_isGoodDivisor153 below · depth 20 - 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 - 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 - 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 - Branch order at a node versus membership in (varpi,G)+Hⁿ
ModularCurve.NodeLocalized.natCast_le_ord_modularRedLocHom_iff_mem_sup_span_pow194 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 - Wide supersingular annuli of X₀(p) attached to both charts
ModularCurve.exists_ssAnnulus_oppAnnulus_isAttached_of_chartSpec_of_eq_zero_or_eq_ofNat1728_levelOne795 below · depth 24 - Attachment of the opposite supersingular annulus, level 1· p
ModularCurve.isAttached_oppAnnulus_inftyChart_of_chartSpec_levelOne702 below · depth 24 - Attachment of the supersingular annulus at level 1· p
ModularCurve.isAttached_ssAnnulus_zeroChart_of_chartSpec_levelOne702 below · depth 24 - Residue pair of a Riemann–Roch section with cuspidal support
ModularCurve.PlaceSpecialization.LevelOneProlongationPair.residuePair_mem_riemannRochSpace_of_isGoodDivisor_or_eq_cuspInftyBar226 below · depth 25 - Wide supersingular annuli of X₀(p) attached to both charts
ModularCurve.exists_ssAnnulus_oppAnnulus_isAttached_of_chartSpec_of_eq_zero_or_eq_ofNat1728796 below · depth 25 - Crossing parameter at supersingular j∈{0,1728}: Gauss unit, order one
ModularCurve.gaussUnit_frickeInvolutionBar_and_ord_eq_one_of_crossingPresentation_of_eq_zero_or_eq_ofNat1728282 below · depth 25 - Attachment of the opposite supersingular annulus to the ∞-chart
ModularCurve.isAttached_oppAnnulus_inftyChart_of_chartSpec701 below · depth 25 - Attachment of the opposite supersingular annulus, level 1· p
ModularCurve.isAttached_oppAnnulus_inftyChart_of_chartSpec_levelOne_univ702 below · depth 25 - Attachment of the wide supersingular annulus to a component chart
ModularCurve.isAttached_oppAnnulus_inftyChart_of_chartSpec_of_paramGauss_of_eq_zero_or_eq_ofNat1728_levelOne757 below · depth 25 - Attachment of the supersingular annulus at the zero chart
ModularCurve.isAttached_ssAnnulus_zeroChart_of_chartSpec701 below · depth 25 - Supersingular annulus attached to the zero chart, level 1· p
ModularCurve.isAttached_ssAnnulus_zeroChart_of_chartSpec_levelOne_univ702 below · depth 25 - Attachment of the wide supersingular annulus to the zero chart
ModularCurve.isAttached_ssAnnulus_zeroChart_of_chartSpec_of_paramGauss_of_eq_zero_or_eq_ofNat1728_levelOne757 below · depth 25 - 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 - Slope law of the opposite supersingular annulus, level 1· p
ModularCurve.slopeLaw_oppAnnulus_inftyChart_of_chartSpec_levelOne700 below · depth 25 - Slope law on the zero chart, level 1· p
ModularCurve.slopeLaw_ssAnnulus_zeroChart_of_chartSpec_levelOne700 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 - Attaching a wide supersingular annulus to the ∞-chart
ModularCurve.isAttached_oppAnnulus_inftyChart_of_chartSpec_of_paramGauss_of_eq_zero_or_eq_ofNat1728_levelOne_univ757 below · depth 26 - Attachment of the opposite supersingular annulus to the ∞-chart
ModularCurve.isAttached_oppAnnulus_inftyChart_of_chartSpec_univ701 below · depth 26 - Attachment of a wide supersingular annulus to the zero chart
ModularCurve.isAttached_ssAnnulus_zeroChart_of_chartSpec_of_paramGauss_of_eq_zero_or_eq_ofNat1728_levelOne_univ757 below · depth 26 - Attachment of the supersingular annulus to the zero chart
ModularCurve.isAttached_ssAnnulus_zeroChart_of_chartSpec_univ701 below · depth 26 - Slope law for the opposite supersingular annulus
ModularCurve.slopeLaw_oppAnnulus_inftyChart_of_chartSpec699 below · depth 26 - Slope law on the supersingular annulus, 0-component chart
ModularCurve.slopeLaw_ssAnnulus_zeroChart_of_chartSpec699 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 - Slope law on the infinity chart for the opposite annulus
ModularCurve.slopeLaw_oppAnnulus_inftyChart_of_chartSpec_univ699 below · depth 27 - Slope law on the supersingular annulus at the 0-chart
ModularCurve.slopeLaw_ssAnnulus_zeroChart_of_chartSpec_univ699 below · depth 27