Definitions/Def_ModularCurve_CoeffSemilinearAut.lean
Coefficientwise semilinear automorphisms of modular function fields
Fix a field K and N \ge 1. The modular function field of level N over K is the intermediate field F_N(K) = K(j(\mathsf q), j(\mathsf q)|_{\mathsf q \mapsto \mathsf q^N}) of K((\mathsf q)) obtained by adjoining the two Laurent series jqModC K = \mathsf q^{-1}\cdot(E_4^3\eta^{-24}), with coefficients the images of the integral j-expansion coefficients, and jqNModC K N, its image under the exponent-scaling ring homomorphism qExpand K N (\mathsf q \mapsto \mathsf q^N on Hahn-series supports). A ring homomorphism f of coefficient rings induces coeffMap f on Laurent series, acting on each coefficient; the first group of lemmas records that coeffMap f commutes with qExpand and carries jqModC and jqNModC of one ring to those of the other, the latter because the expansion coefficients come from \mathbb Z. From this, coeffMap_mem_modularFunctionFieldC shows that for any ring endomorphism \tau of K the map coeffMap\,\tau sends F_N(K) into itself, by induction over the presentation of F_N(K) as the subfield of K((\mathsf q)) generated by the constants together with the two distinguished series.
For a ring automorphism \tau of K, coeffRingAut N τ is the resulting ring automorphism of F_N(K), coefficientwise application of \tau, with inverse given by \tau^{-1}; it satisfies c(\tau)(a) = \tau(a) on constants. Packaging this, coeffSemilinearAut N τ is the pair (c(\tau), \tau) viewed as an element of SemilinearAut K (modularFunctionFieldC K N), the group of pairs (automorphism of the field, automorphism of the base) that are compatible via the structure map; the accompanying lemmas identify its two components, describe its action on elements through coeffMap, and state that it fixes the two generators j(\mathsf q) and j(\mathsf q^N). Finally, for K a perfect field of prime characteristic q, arithFrobC q K N is coeffSemilinearAut N applied to the Frobenius automorphism of K: the semilinear automorphism of F_N(K) raising coefficients to the q-th power, whose base component is a \mapsto a^q and which fixes j(\mathsf q) and j(\mathsf q^N).
Relation to Mathlib
SemilinearAut, coeffMap, qExpand and the modular function field modularFunctionFieldC are the project's own notions; Mathlib supplies the underlying Laurent/Hahn series and HahnSeries.map, intermediate fields and their description as subfield closures, and frobeniusEquiv for perfect fields of prime characteristic.
Where it is used
The semilinear automorphisms constructed here give the action of automorphisms of the constant field on the function field of X_0(N) in the formal \mathsf q-expansion model, and in particular the arithmetic Frobenius in characteristic q, which is what acts on the reduction of J_0(Nq) at q in the level-lowering part of the argument.
References
- G. Shimura, Introduction to the Arithmetic Theory of Automorphic Functions, Publications of the Mathematical Society of Japan 11, Princeton University Press, 1971, §6
References are suggested automatically and have not been individually verified.
English text generated automatically from the Lean source; the Lean statement is authoritative.
- 151 lines
- 17 declarations
- used in the statements of 182 theorems and imported by 276 proofs
- imports 3 definition modules
Source file: Definitions/Def_ModularCurve_CoeffSemilinearAut.lean
Declarations
- theorem
ModularCurve.coeffSemilinearAut.coeffMap_qExpand - theorem
ModularCurve.coeffSemilinearAut.coeffMap_jqModC - theorem
ModularCurve.coeffSemilinearAut.coeffMap_jqNModC - theorem
ModularCurve.coeffSemilinearAut.coeffMap_mem_modularFunctionFieldC - def
ModularCurve.coeffRingAut - theorem
ModularCurve.coe_coeffRingAut_apply - theorem
ModularCurve.coeffRingAut_algebraMap - def
ModularCurve.coeffSemilinearAut - theorem
ModularCurve.toRingAut_coeffSemilinearAut - theorem
ModularCurve.baseAut_coeffSemilinearAut - theorem
ModularCurve.coe_coeffSemilinearAut_smul - theorem
ModularCurve.coeffSemilinearAut_smul_jq - theorem
ModularCurve.coeffSemilinearAut_smul_jqN - def
ModularCurve.arithFrobC - theorem
ModularCurve.baseAut_arithFrobC_apply - theorem
ModularCurve.arithFrobC_smul_jq - theorem
ModularCurve.arithFrobC_smul_jqN
Source
import Definitions.Def_ModularCurve_JqCoeff import Definitions.Def_ModularCurve_LaurentCoeff import Definitions.Def_AlgebraicCurve_BaseChangeGalois import Mathlib.FieldTheory.Perfect ↗ set_option autoImplicit false noncomputable section open AlgebraicCurve IntermediateField HahnSeries namespace ModularCurve namespace coeffSemilinearAut section CoeffMapLemmas variable {R S : Type*} [CommRing R] [CommRing S] theorem coeffMap_qExpand (f : R →+* S) (n : ℕ) [NeZero n] (x : LaurentSeries R) : coeffMap f (qExpand R n x) = qExpand S n (coeffMap f x) := by ext k by_cases h : (n : ℤ) ∣ k · obtain ⟨m, rfl⟩ := h rw [coeffMap_coeff, qExpand_coeff_mul, qExpand_coeff_mul, coeffMap_coeff] · rw [coeffMap_coeff, qExpand_coeff_of_not_dvd _ _ h, qExpand_coeff_of_not_dvd _ _ h, map_zero] theorem coeffMap_jqModC (f : R →+* S) : coeffMap f (jqModC R) = jqModC S := map_jqModC f theorem coeffMap_jqNModC (f : R →+* S) (N : ℕ) [NeZero N] : coeffMap f (jqNModC R N) = jqNModC S N := by rw [jqNModC, jqNModC, coeffMap_qExpand, coeffMap_jqModC] end CoeffMapLemmas end coeffSemilinearAut section CoeffAut variable {K : Type*} [Field K] (N : ℕ) [NeZero N] theorem coeffSemilinearAut.coeffMap_mem_modularFunctionFieldC (τ : K →+* K) {x : LaurentSeries K} (hx : x ∈ modularFunctionFieldC K N) : coeffMap τ x ∈ modularFunctionFieldC K N := by change x ∈ Subfield.closure (Set.range (algebraMap K (LaurentSeries K)) ∪ {jqModC K, jqNModC K N}) at hx induction hx using Subfield.closure_induction with | mem y hy => rcases hy with ⟨a, rfl⟩ | hy · rw [coeffMap_algebraMap] exact (modularFunctionFieldC K N).algebraMap_mem _ · rcases hy with rfl | hy · rw [coeffSemilinearAut.coeffMap_jqModC] exact jqModC_mem K N · rw [Set.mem_singleton_iff] at hy subst hy rw [coeffSemilinearAut.coeffMap_jqNModC] exact jqNModC_mem K N | one => simp | add x y _ _ hx hy => simpa using add_mem hx hy | neg x _ hx => simpa using neg_mem hx | inv x _ hx => simpa using inv_mem hx | mul x y _ _ hx hy => simpa using mul_mem hx hy def coeffRingAut (τ : K ≃+* K) : modularFunctionFieldC K N ≃+* modularFunctionFieldC K N where toFun x := ⟨coeffMap (τ : K →+* K) (x : LaurentSeries K), coeffSemilinearAut.coeffMap_mem_modularFunctionFieldC N (τ : K →+* K) x.2⟩ invFun x := ⟨coeffMap (τ.symm : K →+* K) (x : LaurentSeries K), coeffSemilinearAut.coeffMap_mem_modularFunctionFieldC N (τ.symm : K →+* K) x.2⟩ left_inv x := Subtype.ext <| by show coeffMap (τ.symm : K →+* K) (coeffMap (τ : K →+* K) (x : LaurentSeries K)) = (x : LaurentSeries K) rw [coeffMap_coeffMap, coeffMap_congr (g := RingHom.id K) (RingHom.ext fun a => τ.symm_apply_apply a) _, coeffMap_id] right_inv x := Subtype.ext <| by show coeffMap (τ : K →+* K) (coeffMap (τ.symm : K →+* K) (x : LaurentSeries K)) = (x : LaurentSeries K) rw [coeffMap_coeffMap, coeffMap_congr (g := RingHom.id K) (RingHom.ext fun a => τ.apply_symm_apply a) _, coeffMap_id] map_mul' x y := Subtype.ext (map_mul (coeffMap (τ : K →+* K)) (x : LaurentSeries K) (y : LaurentSeries K)) map_add' x y := Subtype.ext (map_add (coeffMap (τ : K →+* K)) (x : LaurentSeries K) (y : LaurentSeries K)) @[simp] theorem coe_coeffRingAut_apply (τ : K ≃+* K) (x : modularFunctionFieldC K N) : (coeffRingAut N τ x : LaurentSeries K) = coeffMap (τ : K →+* K) (x : LaurentSeries K) := rfl theorem coeffRingAut_algebraMap (τ : K ≃+* K) (a : K) : coeffRingAut N τ (algebraMap K (modularFunctionFieldC K N) a) = algebraMap K (modularFunctionFieldC K N) (τ a) := Subtype.ext (coeffMap_algebraMap (τ : K →+* K) a) def coeffSemilinearAut (τ : K ≃+* K) : SemilinearAut K (modularFunctionFieldC K N) := ⟨(coeffRingAut N τ, τ), fun a => coeffRingAut_algebraMap N τ a⟩ @[simp] theorem toRingAut_coeffSemilinearAut (τ : K ≃+* K) : SemilinearAut.toRingAut (coeffSemilinearAut N τ) = coeffRingAut N τ := rfl @[simp] theorem baseAut_coeffSemilinearAut (τ : K ≃+* K) : SemilinearAut.baseAut (coeffSemilinearAut N τ) = τ := rfl theorem coe_coeffSemilinearAut_smul (τ : K ≃+* K) (x : modularFunctionFieldC K N) : ((coeffSemilinearAut N τ • x : modularFunctionFieldC K N) : LaurentSeries K) = coeffMap (τ : K →+* K) (x : LaurentSeries K) := rfl theorem coeffSemilinearAut_smul_jq (τ : K ≃+* K) : coeffSemilinearAut N τ • (⟨jqModC K, jqModC_mem K N⟩ : modularFunctionFieldC K N) = ⟨jqModC K, jqModC_mem K N⟩ := Subtype.ext (coeffSemilinearAut.coeffMap_jqModC (τ : K →+* K)) theorem coeffSemilinearAut_smul_jqN (τ : K ≃+* K) : coeffSemilinearAut N τ • (⟨jqNModC K N, jqNModC_mem K N⟩ : modularFunctionFieldC K N) = ⟨jqNModC K N, jqNModC_mem K N⟩ := Subtype.ext (coeffSemilinearAut.coeffMap_jqNModC (τ : K →+* K) N) end CoeffAut section Frobenius variable (q : ℕ) (K : Type*) [Field K] [Fact q.Prime] [CharP K q] [PerfectField K] (N : ℕ) [NeZero N] def arithFrobC : SemilinearAut K (modularFunctionFieldC K N) := coeffSemilinearAut N (frobeniusEquiv K q) @[simp] theorem baseAut_arithFrobC_apply (a : K) : SemilinearAut.baseAut (arithFrobC q K N) a = a ^ q := rfl theorem arithFrobC_smul_jq : arithFrobC q K N • (⟨jqModC K, jqModC_mem K N⟩ : modularFunctionFieldC K N) = ⟨jqModC K, jqModC_mem K N⟩ := coeffSemilinearAut_smul_jq N _ theorem arithFrobC_smul_jqN : arithFrobC q K N • (⟨jqNModC K N, jqNModC_mem K N⟩ : modularFunctionFieldC K N) = ⟨jqNModC K N, jqNModC_mem K N⟩ := coeffSemilinearAut_smul_jqN N _ end Frobenius end ModularCurve end
Statements phrased using this module (182)
- Frobenius squared fixes supersingular places of F_N
ModularCurve.arithFrobC_smul_arithFrobC_smul_of_mem_ssPlaces387 below · depth 10 - Arithmetic Frobenius preserves supersingular places
ModularCurve.arithFrobC_smul_mem_ssPlaces1 below · depth 10 - Widths, component map and glued specialisation for J₀(Nq) at q
ModularCurve.exists_width_comp_sp3,537 below · depth 10 - Frobenius node permutation is an involution
ModularCurve.nodePerm_arithFrobC_nodePerm_of_forall_smul_smul_eq0 below · depth 10 - Decomposition-group stability of the kernel of the component map
ModularCurve.PlaceSpecialization.componentMap_decomposition_smul_eq_zero_of_eq_zero88 below · depth 11 - Frobenius stability of the kernel of the component map
ModularCurve.PlaceSpecialization.componentMap_frobenius_smul_eq_zero_of_eq_zero4 below · depth 11 - Hecke stability of the kernel of the component map at q
ModularCurve.PlaceSpecialization.componentMap_heckeAlg_smul_eq_zero_of_eq_zero_of_isModel965 below · depth 11 - T_ℓ acts as ℓ+1 through the component map
ModularCurve.PlaceSpecialization.componentMap_heckeGen_smul_eq_add_one_smul_of_isModel2,484 below · depth 11 - Injectivity of `spPic0` on prime-to-q torsion
ModularCurve.PlaceSpecialization.eq_zero_of_primeToTorsion_of_spPic0_eq_zero995 below · depth 11 - Hecke-equivariant component map and toric monodromy detection
ModularCurve.PlaceSpecialization.exists_heckeModule_componentGroup_toricMonodromyPart_mem_of_isModel2,736 below · depth 11 - Hecke-equivariance of the Pic⁰ specialisation map
ModularCurve.PlaceSpecialization.exists_heckeModule_pic0_spPic0_heckeAlg_smul999 below · depth 11 - Prime-to-q torsion classes lift along `spPic0`
ModularCurve.PlaceSpecialization.exists_primeToTorsion_spPic0_eq_of_primeToTorsion1,772 below · depth 11 - Lifting m-torsion from the component group to inertia invariants
ModularCurve.PlaceSpecialization.exists_torsion_preimage_componentMap_of_isModel1,311 below · depth 11 - Lifting m-torsion through the glued specialization at q
ModularCurve.PlaceSpecialization.exists_torsion_preimage_gluedSpecialization_of_isModel1,137 below · depth 11 - Widths, component map and glued specialisation over a place above q
ModularCurve.PlaceSpecialization.exists_widths_componentMap_gluedSpecialization_placeWidthChar_of_isModel1,892 below · depth 11 - Injectivity on prime-to-q torsion of component and glued specialization maps
ModularCurve.PlaceSpecialization.gluedSpecialization_componentMap_injective_primeToTorsion_of_isModel1,053 below · depth 11 - Frobenius law for the glued specialization
ModularCurve.PlaceSpecialization.gluedSpecialization_frobenius_smul_eq_glueMap4 below · depth 11 - Hecke action at q on node units of the glued specialisation
ModularCurve.PlaceSpecialization.gluedSpecialization_nodeUnit_heckeGen_eq_nodePerm_symm_comp526 below · depth 11 - Inertia differences on prime-to-q torsion are toric
ModularCurve.PlaceSpecialization.inertia_smul_sub_self_componentMap_eq_zero_toPic0Pair_eq_zero_of_isModel1,962 below · depth 11 - Decomposition-group equivariance of the glued specialization's Pic⁰-pair
ModularCurve.PlaceSpecialization.toPic0Pair_gluedSpecialization_decomposition_smul_eq_spPic0_smul158 below · depth 11 - Decomposition-group stability of the vanishing Pic⁰-pair
ModularCurve.PlaceSpecialization.toPic0Pair_gluedSpecialization_decomposition_smul_eq_zero_of_eq_zero88 below · depth 11 - Hecke stability of the toric kernel of the glued specialization
ModularCurve.PlaceSpecialization.toPic0Pair_gluedSpecialization_heckeAlg_smul_eq_zero_of_eq_zero_of_isModel1,199 below · depth 11 - Hecke equivariance of the projected glued specialization at q
ModularCurve.PlaceSpecialization.toPic0Pair_gluedSpecialization_heckeGen_equivariant_of_isModel957 below · depth 11 - Hecke law for the glued specialization on Pic⁰ pairs
ModularCurve.PlaceSpecialization.toPic0Pair_gluedSpecialization_heckeGen_smul_eq_heckePic0Fibre_of_isModel1,173 below · depth 11 - Squared arithmetic Frobenius fixes supersingular places, q ∤ N
ModularCurve.arithFrobC_smul_arithFrobC_smul_of_mem_ssPlaces_of_not_dvd384 below · depth 11 - ℓ-th powers of reduced Laurent series and t↦ t^ℓ
ModularCurve.coeffMap_pow_char_eq_qExpand_of_frobenius1 below · depth 11 - Comparison of the H=top and Igusa integral models
ModularCurve.exists_iso_xHDRLevel_top_drLevel_epsInf_pointEquivPlace191 below · depth 11 - Néron object of J₀(N₀p) at p with its bridges
ModularCurve.exists_jZeroNeronObjectAtP_and_bridge4,509 below · depth 11 - Finite and toric parts transport from Jₜop(N₀p) to J₀(N₀p)
ModularCurve.map_finPts_jHNeronObjectAtP_top_eq_and_map_toricPts_eq_of_pic0Congr_of_bridge136 below · depth 11 - Néron object of J₀(N₀p) at p from a level model
ModularCurve.DRModelPackageLevel.exists_jZeroNeronObjectAtP_and_bridge_representsRelSubPic_abqFibre_of_levelModel4,507 below · depth 12 - Good kernel classes of order prime to q vanish
ModularCurve.PlaceSpecialization.IsGluedSpecialization.eq_zero_of_isGoodClass_of_nsmul_eq_zero_of_not_dvd_of_isModel1,052 below · depth 12 - Glued specialization is onto by good inertia-invariant classes
ModularCurve.PlaceSpecialization.IsGluedSpecialization.exists_isGoodClass_apply_eq482 below · depth 12 - Good classes in the kernel of a glued specialization are m-divisible
ModularCurve.PlaceSpecialization.IsGluedSpecialization.exists_nsmul_eq_of_isGoodClass_of_apply_eq_zero_of_isModel1,125 below · depth 12 - Inertia displacement of prime-to-q torsion: good divisor with vanishing Pic⁰ pair
ModularCurve.PlaceSpecialization.exists_goodRep_toPic0Pair_eq_zero_smul_sub_self_of_isModel1,928 below · depth 12 - Kind-respecting good admissible representative for T_ℓ on J₀(Nq)
ModularCurve.PlaceSpecialization.exists_good_admissible_rep_heckeDivBar_good_admissible_kindResp_of_isModel930 below · depth 12 - Good admissible representatives stable under the q-correspondence
ModularCurve.PlaceSpecialization.exists_good_admissible_rep_heckeDivBar_self_good_admissible284 below · depth 12 - Glued classes killed by `toPic0Pair` lift to toric monodromy
ModularCurve.PlaceSpecialization.exists_mem_toricMonodromyPart_sp_eq_of_toPic0Pair_eq_zero_of_isModel2,694 below · depth 12 - Component map and Ogg bidegree divisor at characteristic-q widths
ModularCurve.PlaceSpecialization.exists_widths_comp_sndDegLaw_surjective_repOfKer_principalGood_of_widthPinChar_of_isModel1,734 below · depth 12 - Widths, component map, glued specialisation and Hecke matrices
ModularCurve.PlaceSpecialization.exists_widths_componentMap_gluedSpecialization_placeWidthChar_correspondence_heckeComponentAction_agree_of_isModel2,483 below · depth 12 - Glued principality of the gluing datum of a principal divisor
ModularCurve.PlaceSpecialization.isGluedPrincipal_glueData_of_forall_apply_eq_ord_of_regularityLaw_of_nodeValueLaw_of_nonempty678 below · depth 12 - Vanishing of the component map implies a good class
ModularCurve.PlaceSpecialization.isGoodClass_of_comp_eq_zero_of_exists_isGoodDiv163 below · depth 12 - Inertia-invariance of inertial displacements of prime-to-q torsion
ModularCurve.PlaceSpecialization.smul_sub_self_mem_inertiaInvariants_of_primeToTorsion_of_isModel1,961 below · depth 12 - Hecke propagation of glued vanishing away from q
ModularCurve.PlaceSpecialization.toPic0Pair_gluedSpecialization_heckeGen_dvd_smul_eq_zero_of_eq_zero_of_isModel1,171 below · depth 12 - Arithmetic Frobenius acts on places as geometric Frobenius
ModularCurve.arithFrobC_smul_eq_frobOnPlacesGeomLevel0 below · depth 12 - Pull-back along φ⁻¹ intertwines the two Abel–Jacobi dictionaries
ModularCurve.jZeroNeronObjectAtP_pts_pic0Congr_eq_pts_comp_pullbackHom_of_modelIso_levelData66 below · depth 12 - Strict points reduce to reduceFst and reduceSnd
ModularCurve.DRModelPackageLevel.compat_reduceFst_reduceSnd_of_sp_eq_spPlace1,848 below · depth 13 - Special-fibre torus, abelian quotient and pins at level N₀p
ModularCurve.DRModelPackageLevel.exists_torusFibre_abqFibre_degeneracy_specialFibre_pins_of_levelModel1,857 below · depth 13 - Extension to an A-point of relative Pic⁰ versus good classes
ModularCurve.DRModelPackageLevel.extendsToPlace_pts_iff_isGoodClass3,053 below · depth 13 - Inertia displacements σ x-x extend over the place
ModularCurve.DRModelPackageLevel.extendsToPlace_pts_smul_sub2,607 below · depth 13 - Chart-pinned curve model of the Igusa scheme's geometric generic fibre
ModularCurve.IgusaScheme.exists_curveModel_iso_genericFibre_galoisCompat_chartPin144 below · depth 13 - Prime-to-p inertia differences lie in the toric part
ModularCurve.JZeroNeronObjectAtP.smul_sub_self_mem_toricPts_of_isGluedSpecialization2,620 below · depth 13 - Moving good classes off a finite set of reductions
ModularCurve.PlaceSpecialization.ProlongationTuple.exists_good_admissible_rep_reduce_notMem_of_isGoodClass_of_isModel925 below · depth 13 - Component map of J₀(Nq) with second-copy degree law
ModularCurve.PlaceSpecialization.exists_comp_sndDegLaw_coordMem_repOfKer_widthChar_of_isModel1,733 below · depth 13 - Depth function and surjective component map on inertia invariants
ModularCurve.PlaceSpecialization.exists_depth_comp_depthCompLaw_depthValueLaw_sndDegLaw_surjective_repOfKer_repOfInvariant_principalGood_of_widthPinChar_of_isModel1,732 below · depth 13 - Inertia displacements σ V-V admit good admissible representatives
ModularCurve.PlaceSpecialization.exists_goodRep_admissible_smul_single_sub_self_of_isModel1,474 below · depth 13 - Inertial differences realise prescribed node units at one node pair
ModularCurve.PlaceSpecialization.exists_inertia_smul_sub_self_sp_eq_nodeUnit_of_isModel2,693 below · depth 13 - Good effective divisors avoiding a finite set of reductions
ModularCurve.PlaceSpecialization.exists_isGoodDiv_reduce_notMem_isPrincipal_sub_of_smul_eq175 below · depth 13 - Principal divisor on X₀(Nq) realising the width sum
ModularCurve.PlaceSpecialization.exists_isPrincipal_isGoodDiv_degree_fstDiv_eq_widthSum_widthChar_of_isModel1,395 below · depth 13 - Hecke transport of node units on the glued fibre at q
ModularCurve.PlaceSpecialization.exists_matrix_eq_correspondence_gluedSpecialization_nodeUnit_heckeGen_of_ne_of_isModel1,780 below · depth 13 - Moving divisor classes off places outside the supersingular locus
ModularCurve.PlaceSpecialization.exists_rep_reduce_notMem_of_moving_of_disjoint_of_isModel959 below · depth 13 - Inertial displacements of strict divisors: goodness and vanishing glue datum
ModularCurve.PlaceSpecialization.isGoodDiv_and_glueData_smul_sub_self_eq_zero_of_forall_isStrict3 below · depth 13 - U_q preserves good divisors and transports their gluing data
ModularCurve.PlaceSpecialization.isGoodDiv_heckeDivBar_self_and_glueData_mem_admissible281 below · depth 13 - Arithmetic Frobenius squared fixes the supersingular places
ModularCurve.arithFrobC_smul_arithFrobC_smul_eq_self_of_mem_ssPlaces384 below · depth 13 - Arithmetic Frobenius preserves the supersingular places
ModularCurve.arithFrobC_smul_mem_ssPlaces_univ1 below · depth 13 - Frobenius-equivariant bijection: supersingular places and supersingular moduli points
ModularCurve.exists_equiv_ssPlaces_ssLocus_frobenius_equivariant_univ373 below · depth 13 - A semistable witness package for J₀(Nq) at q∤ N
ModularCurve.exists_placeSpecialization_prolongationTuple_width_comp_sp_gluedSpecialization_placeWidthChar_regularityLaw_nodeValueLaw3,321 below · depth 13 - Coefficient automorphisms stabilise the supersingular node pairs
ModularCurve.isNodeStable_nodePairsOfPlaces_arithFrobC_coeffSemilinearAut19 below · depth 13 - Unique A-section of the model through a given place
ModularCurve.DRModelPackageLevel.existsUnique_section_comp_eq_pointEquivPlace_symm0 below · depth 14 - Closure under addition of points extending to a place
ModularCurve.DRModelPackageLevel.extendsToPlace_pts_add0 below · depth 14 - Inertia displacement at a non-crossing point extends to A
ModularCurve.DRModelPackageLevel.extendsToPlace_pts_mk_smul_single_sub_single_of_not_mem_range_comp_inter1,146 below · depth 14 - Negation preserves extendability of Picard points to a place
ModularCurve.DRModelPackageLevel.extendsToPlace_pts_neg0 below · depth 14 - Good classes extend to A-points of relative Pic⁰
ModularCurve.DRModelPackageLevel.extendsToPlace_pts_of_isGoodClass1,152 below · depth 14 - Extension over A implies good class for P
ModularCurve.DRModelPackageLevel.isGoodClass_of_extendsToPlace_pts3,008 below · depth 14 - Crossing special point: non-strict place, supersingular first reduction
ModularCurve.DRModelPackageLevel.not_isStrict_and_reduceFst_mem_of_range_subset_range_comp_inter1,910 below · depth 14 - Strict places reduce to reduceFst, reduceSnd on the Deligne–Rapoport model
ModularCurve.DRModelPackageLevel.placeOfPoint_eq_reduce_of_isModel_of_orderLawFixed1,896 below · depth 14 - Abelian coordinates of the reduction equal the glued specialisation pair
ModularCurve.DRModelPackageLevel.ptsSp_symm_abq_reduction_eq_toPic0Pair_of_isGluedSpecialization1,470 below · depth 14 - Inertia fixes the reduction of the section attached to a place
ModularCurve.DRModelPackageLevel.residue_comp_section_smul_eq_of_mem_inertia1 below · depth 14 - Inertial displacements of prime-to-q torsion are good toric classes
ModularCurve.PlaceSpecialization.IsGluedSpecialization.isGoodClass_and_toPic0Pair_apply_smul_sub_self_of_isModel1,962 below · depth 14 - One-point moving on X₀(Nq) into the strict locus
ModularCurve.PlaceSpecialization.ProlongationTuple.exists_ord_eq_one_forall_isStrict_reduceFst_reduceSnd_notMem922 below · depth 14 - Depth functional of a principal divisor lies in the Gram image
ModularCurve.PlaceSpecialization.depthDual_add_mem_range_gramMap_of_isPrincipal1,553 below · depth 14 - Inertia-fixed representative with strict or supersingular support
ModularCurve.PlaceSpecialization.exists_inertiaFixedSupport_degZero_pic0Mk_eq_of_isModel1,581 below · depth 14 - Genus-zero transfer of good-class and glued-specialization data
ModularCurve.PlaceSpecialization.exists_isGoodClass_iff_isGluedSpecialization_of_not_genusFF_pos1,681 below · depth 14 - Good function with prescribed pole orders at supersingular nodes
ModularCurve.PlaceSpecialization.exists_isGoodDiv_ord_residueFst_eq_neg_lcm_div_widthChar_of_orderLawFixed1,394 below · depth 14 - Depth-component kernel classes are classes of good divisors
ModularCurve.PlaceSpecialization.exists_isGoodDiv_pic0Mk_eq_of_comp_eq_zero_of_depthCompLaw_depthValueLaw_repOfInvariant_of_isModel1,541 below · depth 14 - T_ℓ (ℓ≠ q) acts on node units by a correspondence matrix
ModularCurve.PlaceSpecialization.exists_matrix_eq_correspondence_gluedSpecialization_nodeUnit_heckeGen_of_ne_of_isModel_of_prolongation_of_regularityLaw_nodeValueLaw986 below · depth 14 - Moving the strict part of a divisor off T₀, kind-respecting
ModularCurve.PlaceSpecialization.exists_rep_eq_off_strict_reduce_notMem_heckeDivBar_strictPart_good_kindResp_of_isModel929 below · depth 14 - Moving lemma: representatives with j-residues avoiding S
ModularCurve.PlaceSpecialization.exists_rep_forall_exists_ord_sub_pos_residue_notMem_of_isModel_of_regularityLaw_of_orderLawFixed_of_ssPlaces956 below · depth 14 - Inertia acts unipotently on prime-to-q torsion of J₀(q)
ModularCurve.PlaceSpecialization.smul_sub_self_mem_inertiaInvariants_of_primeToTorsion_of_isModel_levelOne1,494 below · depth 14 - Frobenius-equivariant dictionary over an elliptic centre j=0,1728
ModularCurve.exists_equiv_ssPlaces_ssLocus_fibre_of_elliptic_centre_univ336 below · depth 14 - Frobenius-equivariant bijection of supersingular places and moduli points
ModularCurve.exists_equiv_ssPlaces_ssLocus_fibre_of_generic_centre_univ342 below · depth 14 - Level-one supersingular node pairs are indexed by j-invariants
ModularCurve.exists_nodePairsOfPlaces_arithFrobC_eq_nodePairsOf22 below · depth 14 - Reduction killed by both restriction maps when glued Pic⁰-pair vanishes
ModularCurve.DRModelPackageLevel.abq_reduction_eq_one_of_toPic0Pair_glueData_eq_zero_residueField1,404 below · depth 15 - Integral D-points have vanishing component invariant
ModularCurve.DRModelPackageLevel.comp_eq_zero_of_exists_schemeHomOver_of_depthCompLaw_of_abelJacobiPin_of_surjective_red_of_sp_eq_spPlace2,485 below · depth 15 - Strict places of the first kind reduce into the first component
ModularCurve.DRModelPackageLevel.exists_placeOfPoint_eq_reduceFst_of_isStrictFst1 below · depth 15 - Strict second-kind places reduce onto the second DR component
ModularCurve.DRModelPackageLevel.exists_placeOfPoint_eq_reduceSnd_of_isStrictSnd1 below · depth 15 - Strict places reduce onto one Deligne–Rapoport component, off the other
ModularCurve.DRModelPackageLevel.exists_swap_forall_isStrict_range_subset_range_comp3 below · depth 15 - Geometric generic points lie in the smooth locus
ModularCurve.DRModelPackageLevel.mem_smoothLocus_of_mem_range_fst_geomGeneric0 below · depth 15 - Abelian-quotient reduction of a good class matches the glued specialisation
ModularCurve.DRModelPackageLevel.ptsSp_symm_abq_reduction_pair_eq_toPic0Pair_of_isGluedSpecialization1,211 below · depth 15 - Points through a crossing have supersingular first reduction
ModularCurve.DRModelPackageLevel.reduceFst_mem_ssPlaces_of_specialPoint_eq_crossing126 below · depth 15 - Special fibre of an A-point equals reduction mod λ
ModularCurve.JZeroNeronObjectAtP.LevelModel.ptsSp_symm_schemeHomOverComp_resPt_eq_reductionModL741 below · depth 15 - Depths and component map over the residue field of A
ModularCurve.PlaceSpecialization.exists_depth_comp_depthCompLaw_depthValueLaw_sndDegLaw_surjective_repOfKer_repOfInvariant_principalGood_of_widthPinChar_of_isModel_residueField1,733 below · depth 15 - Hecke neighbours inherit strictness and kind off a finite set
ModularCurve.PlaceSpecialization.exists_finset_isStrict_and_kind_of_mem_support_heckeDivBar_single_of_reduce_notMem223 below · depth 15 - Good admissible representatives of inertia displacements at level q
ModularCurve.PlaceSpecialization.exists_goodRep_toPic0Pair_eq_zero_smul_sub_self_levelOne1,113 below · depth 15 - Inertia-stable divisor classes with strict or supersingular support
ModularCurve.PlaceSpecialization.exists_inertiaStable_pic0Mk_eq_of_inertiaStable_of_isModel935 below · depth 15 - Cross-power law for node depths under the ℓ-degeneracy maps
ModularCurve.PlaceSpecialization.exists_reduceFst_eq_and_yDepth_restrictAlong_heckeAlphaBar_pow_width_eq_of_ne_of_not_dvd1,950 below · depth 15 - First reduction intertwines T_ℓ with the fibre correspondence
ModularCurve.PlaceSpecialization.mapDomain_reduceFst_heckeDivBar_eq_heckeDivFibre_mapDomain_reduceFst_of_ne_of_isModel_of_orderLawFixed842 below · depth 15 - First reduction of the Hecke divisor of one place
ModularCurve.PlaceSpecialization.mapDomain_reduceFst_heckeDivBar_single_apply_eq_correspondence_of_ne346 below · depth 15 - Supersingularity propagates along the ℓ-Hecke correspondence, ℓ ≠ q
ModularCurve.PlaceSpecialization.reduceFst_mem_ssPlaces_of_mem_support_heckeDivBar_single_of_ne345 below · depth 15 - Arithmetic Frobenius sends the place j=a to j=a^q
ModularCurve.arithFrobC_smul_charLGeomPlaceOfPoint17 below · depth 15 - Arithmetic Frobenius sends a place to its coefficientwise twist
ModularCurve.arithFrobC_smul_eq_of_apply_eq_coeffMap_frobenius_univ1 below · depth 15 - Cyclic N-subgroups parametrise places and moduli points over j(E₀)
ModularCurve.exists_orbitMap_places_moduliPoint_arithFrobC_compat_univ332 below · depth 15 - Coefficient automorphisms extend to the roof, intertwining both Hecke legs
ModularCurve.exists_semilinearAut_intertwinesAlong_heckeAlphaC_heckeBetaC_coeffSemilinearAut0 below · depth 15 - Cartier anchors for toric monodromy, with witnesses identified
CerednikDrinfeld.exists_cartierAnchors_degeneracyDuality_jZero_ssPlaces_correspondence_arithFrobC_restrictAlong_placeWidthChar3,361 below · depth 16 - Existence of a resolved Deligne–Rapoport model with place–component dictionary
ModularCurve.DRModelPackageLevel.exists_dRResolvedModelPackageLevel_nodeEquiv_swap_nodeCoordinates_of_surjective_of_sp_eq_spPlace2,427 below · depth 16 - Local points over a crossing factor through the finite-j chart
ModularCurve.DRModelPackageLevel.exists_eq_spec_map_comp_iotaFin_of_comp_base_eq1 below · depth 16 - Sections of the resolved X₀(N₀p) model with depth-prescribed components
ModularCurve.DRModelPackageLevel.exists_sections_multidegree_eq_depth_of_exists_schemeHomOver_of_branch186 below · depth 16 - The two abq coordinates of a reduced Abel–Jacobi point
ModularCurve.DRModelPackageLevel.nonempty_poincare_pullbackAlong_abq_reduction_iso_pointTwist1,142 below · depth 16 - Positivity of ord_W(j-φ(j)) for a chart A-point
ModularCurve.DRModelPackageLevel.ord_jFun_sub_pos_of_eq_spec_map_comp_iotaFin1 below · depth 16 - Reduction of the chart value of j at a crossing
ModularCurve.DRModelPackageLevel.red_jChartFin_eq_evalAt_jGeomGen_nodeEquiv1 below · depth 16 - Degree-zero twists by A-sections come from D₀
ModularCurve.JZeroNeronObjectAtP.LevelModel.exists_schemeHomOver_poincare_pullbackAlong_iso_rigidify_sectionTwist_of_sum_eq_zero281 below · depth 16 - Reduction of a point classifying a rigidified section twist
ModularCurve.JZeroNeronObjectAtP.LevelModel.nonempty_poincare_baseChange_pullbackAlong_iso_pointTwist_of_iso_rigidify_sectionTwist29 below · depth 16 - Rigidified section twists restrict to the geometric generic fibre
ModularCurve.JZeroNeronObjectAtP.LevelModel.nonempty_poincare_pullbackAlong_iso_pointTwist_of_iso_rigidify_sectionTwist29 below · depth 16 - Poincaré pullback at a degree-zero class is the point twist
ModularCurve.JZeroNeronObjectAtP.LevelModel.nonempty_poincare_pullbackAlong_pts_pic0Mk_iso_pointTwist15 below · depth 16 - Moving lemma on X₀(Nq) with inertia equivariance
ModularCurve.PlaceSpecialization.ProlongationTuple.exists_ord_eq_one_forall_isStrict_reduceFst_reduceSnd_notMem_forall_inertia_smul_eq_of_isModel927 below · depth 16 - Depth dual of a principal divisor lies in the Gram image
ModularCurve.PlaceSpecialization.depthDual_add_mem_range_gramMap_of_isPrincipal_widthChar1,985 below · depth 16 - Level-one glued class of an inertial displacement is a node unit
ModularCurve.PlaceSpecialization.exists_goodRep_gluedMk_eq_nodeUnit_smul_single_sub_self_levelOne1,086 below · depth 16 - Cross-power law for node depths along the level-ℓ Hecke roof
ModularCurve.PlaceSpecialization.exists_reduceFst_eq_and_yDepth_restrictAlong_heckeAlphaBar_pow_placeWidthChar_eq_of_ne_of_not_dvd1,949 below · depth 16 - Moving lemma for degree-zero classes at level 1· q
ModularCurve.PlaceSpecialization.exists_rep_reduce_notMem_of_moving_of_disjoint_levelOne932 below · depth 16 - First reduction at q commutes with T_ℓ, ℓ ≠ q
ModularCurve.PlaceSpecialization.mapDomain_reduceFst_heckeDivBar_eq_heckeDivFibre_mapDomain_reduceFst_of_ne278 below · depth 16 - Depth dictionary gives the depth divisor and second-branch degree
ModularCurve.PlaceSpecialization.sum_height_mul_multidegree_comp_eq_depthDiv_and_apply_inl_one_eq_degree_sndDiv_level144 below · depth 16 - Node depth along the degeneracy tower is a ramification power
ModularCurve.PlaceSpecialization.yDepth_restrictAlong_towerInclBar_eq_yDepth_pow_ramificationIndexAlong_heckeAlphaC1,296 below · depth 16 - Depth along the ℓ-substitution leg is a ramification power
ModularCurve.PlaceSpecialization.yDepth_restrictAlong_towerSubstBar_eq_yDepth_pow_ramificationIndexAlong_heckeBetaC985 below · depth 16 - A Fricke involution on supersingular places swapping the Hecke legs
ModularCurve.exists_perm_ssPlaces_correspondence_heckeBetaC_heckeAlphaC_perm_eq_correspondence_heckeAlphaC_heckeBetaC335 below · depth 16 - Uniformisers with correction divisors at supersingular places and their Frobenius translates
ModularCurve.exists_unifFst_unifSnd_correctionDivisor_laws_of_ssPlaces218 below · depth 16 - Component group at p has order num((p-1)/12)
ModularCurve.natCard_componentGroup_widthOfPlaces_eq_eisensteinNumerator422 below · depth 16 - Two-level joint semistable specialisation with pinned Hecke transport
CerednikDrinfeld.exists_twoLevelSemistableSpecialization_jointConstruction_ssPlaces_heckeTransport_canonical_levelPrimeIntertwine_correspondence_arithFrobC_restrictAlong_placeWidthChar3,351 below · depth 17 - Depth-to-component dictionary for the resolved Deligne–Rapoport model
ModularCurve.DRModelPackageLevel.exists_nodeCoordinates_and_forall_mem_support_iff_chainPos_of_charts_of_sp_eq_spPlace2,052 below · depth 17 - Strict places specialise into one labelled component
ModularCurve.DRModelPackageLevel.exists_swap_forall_isStrict_section_mem_range_comp_of_sp_eq_spPlace1,861 below · depth 17 - Node widths of the resolved model equal place widths
ModularCurve.DRModelPackageLevel.forall_width_eq_of_charts_of_sp_eq_spPlace2,299 below · depth 17 - Poincaré pullback of an O-point as a twist of sections
ModularCurve.DRModelPackageLevel.nonempty_pullback_toDR_poincare_pullbackAlong_iso_foldr_sectionTwist180 below · depth 17 - Non-strict inertia-fixed places specialise to crossings
ModularCurve.DRModelPackageLevel.section_base_closedPoint_eq_crossing_of_reduceFst_mem_of_sp_eq_spPlace1,891 below · depth 17 - 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 - Node depth along the ℓ-degeneracy leg is a ramified power
ModularCurve.PlaceSpecialization.yDepth_restrictAlong_towerInclBar_eq_yDepth_pow_ramificationIndexAlong_heckeAlphaC_of_prime1,308 below · depth 17 - Node depth along the substitution degeneracy leg at ℓ≠ q
ModularCurve.PlaceSpecialization.yDepth_restrictAlong_towerSubstBar_eq_yDepth_pow_ramificationIndexAlong_heckeBetaC_of_prime985 below · depth 17 - Order of the width-weighted component group at supersingular nodes
ModularCurve.natCard_componentGroup_placeWidth_nodePairsOfPlaces_eq_eisensteinNumerator421 below · depth 17 - Frobenius invariance of the characteristic-q place width
ModularCurve.placeWidthChar_arithFrobC_smul0 below · depth 17 - Joint two-level semistable specialisation with widths and arithmetic Frobenius
CerednikDrinfeld.exists_twoLevelSemistableSpecialization_jointConstruction_ssPlaces_heckeTransport_correspondence_restrictAlong_degeneracyComp_placeWidthChar_frobArithFrobC3,338 below · depth 18 - Node coordinates and chain position at one supersingular crossing
ModularCurve.DRModelPackageLevel.exists_nodeCoordinates_and_forall_mem_support_iff_chainPos_of_chartPresentation2,007 below · depth 18
… and 32 more statements (search for the module name to find them).