Definitions/Def_CerednikDrinfeld_MumfordGlueLevel.lean
Level- Mumford gluing data for the formal upper half plane
Fix a commutative ring \mathcal O, an element \pi\in\mathcal O, a field K_0 that is an \mathcal O-algebra, a natural number r, a matrix g_1\in GL_2(K_0), a subgroup N\le PGL_2(K_0) and a level n. Write A_n for the quotient of the edge chart ring chartERing πͺ Ο r β the localisation of \mathcal O[X_0,X_1]/(X_0X_1-\pi) away from (X_0^{r-1}-1)(X_1^{r-1}-1), with coordinates \xi,\eta β by the ideal generated by \pi^{n+1}, and V_n for the corresponding quotient of the vertex chart ring chartVRing πͺ r, the localisation of \mathcal O[X] away from X^r-X, with coordinate \zeta. The structure MumfordGlueLevel packages: a scheme Z with a flat separated morphism zb to \operatorname{Spec}(\mathcal O/\pi^{n+1}); for every h\in GL_2(K_0) a morphism \zeta_h:\operatorname{Spec}A_n\to Z which is an open immersion and lies over \operatorname{Spec}\mathcal O, such that finitely many of the \zeta_h already cover Z and \zeta_{gh}=\zeta_h whenever the class of g lies in N; an \mathcal O-algebra map \iota:A_n\to V_n with \iota(\xi)=\zeta and \iota(\eta)\zeta=\pi, exhibiting V_n as the localisation of A_n away from \xi; and families of \mathcal O-algebra automorphisms \tau_g of V_n and \alpha_g of A_n, defined for all g but constrained only by Ο_spec and Ξ±_spec. Those two fields are characterisations on chart-valued points: for any \mathcal O-algebra B and any \mathcal O-algebra map out of V_n (respectively A_n) to B, two Deligne data d,d' over B whose lines at the standard lattice and at its g_1-translate are the explicit spans dictated by the chart coordinates (before and after composing with \tau_g, resp. \alpha_g), and which satisfy InEdgeChart for the pair (the condition that at every prime of B the lattice inclusions and nondegeneracy requirements of the edge chart hold), are required to satisfy DeligneDatum.IsPullback for g^{-1}; the hypothesis on g is that g fixes the standard vertex, resp. that g preserves the pair consisting of the standard vertex and its g_1-translate, fixing or swapping them. Further fields impose the gluing identities \zeta_{hg}=\zeta_h\circ\operatorname{Spec}\alpha_g for edge-preserving g and \zeta_{hg}\circ\operatorname{Spec}\iota=\zeta_h\circ\operatorname{Spec}\iota\circ\operatorname{Spec}\tau_g for vertex-fixing g; an incidence bound ΞΆ_preimage_le saying that, when no N-translate of the pair (h\,s_0,h\,s_1) of vertices matches (h's_0,h's_1) in either order, the \zeta_{h'}-preimage of the open image of \zeta_h is contained in the supremum of the basic open set of \xi, taken only if some N-translate carries h's_0 to h s_0 or h s_1, and of the basic open set of \eta, taken under the analogous condition on h's_1; and finally desc, a universal property at the level of charts: any family of morphisms t_h:\operatorname{Spec}A_n\to T satisfying the same N-invariance and the same \alpha- and \tau-compatibilities factors through the \zeta_h by a unique u:Z\to T.
Relation to Mathlib
The scheme-theoretic ingredients (the category of schemes, Flat and IsSeparated for morphisms, Spec.map, IsOpenImmersion, PrimeSpectrum.basicOpen, IsLocalization.Away) are Mathlib's; the gluing datum together with its chart-level universal property, and the chart rings it is built from, are the project's own notions rather than an instance of Mathlib's Scheme.GlueData.
Where it is used
The structure is the one-level input for the ΔerednikβDrinfeld part of the argument: a compatible system of such data, one for each n, assembles the formal scheme whose quotient by the arithmetic group yields the p-adic uniformisation of the relevant Shimura curve. It is imported by the statement modules that construct and compare these levels.
References
- D. Mumford, An analytic construction of degenerating curves over complete local rings, Compositio Mathematica 24 (1972), 129β174, Β§3
- L. Gerritzen and M. van der Put, Schottky groups and Mumford curves, Lecture Notes in Mathematics 817, Springer, 1980, Chapter III
- J.-F. Boutot and H. Carayol, Uniformisation p-adique des courbes de Shimura: les thΓ©orΓ¨mes de Δerednik et de Drinfeld, AstΓ©risque 196β197 (1991), 45β158
References are suggested automatically and have not been individually verified.
English text generated automatically from the Lean source; the Lean statement is authoritative.
- 113 lines
- 9 declarations
- used in the statements of 8 theorems and imported by 8 proofs
- imports 2 definition modules
Source file: Definitions/Def_CerednikDrinfeld_MumfordGlueLevel.lean
Imports
Imported by
- no other definition module
Declarations
- structure
CerednikDrinfeld.FormalOmega.MumfordGlueLevel - field
CerednikDrinfeld.FormalOmega.MumfordGlueLevel.gβ - field
CerednikDrinfeld.FormalOmega.MumfordGlueLevel.Z - field
CerednikDrinfeld.FormalOmega.MumfordGlueLevel.zb - field
CerednikDrinfeld.FormalOmega.MumfordGlueLevel.zb_flat - field
CerednikDrinfeld.FormalOmega.MumfordGlueLevel.zb_isSeparated - field
CerednikDrinfeld.FormalOmega.MumfordGlueLevel.y - field
CerednikDrinfeld.FormalOmega.MumfordGlueLevel.xq - field
CerednikDrinfeld.FormalOmega.MumfordGlueLevel.desc
Source
import Definitions.Def_CerednikDrinfeld_FormalUpperHalfPlanePoints import Definitions.Def_CerednikDrinfeld_FormalUpperHalfPlaneChartRings set_option autoImplicit false open scoped TensorProduct MatrixGroups open CategoryTheory AlgebraicGeometry LT.LatticeTree namespace CerednikDrinfeld namespace FormalOmega set_option genInjectivity false in set_option genSizeOfSpec false in structure MumfordGlueLevel (πͺ : Type) [CommRing πͺ] (Ο : πͺ) (Kβ : Type) [Field Kβ] [Algebra πͺ Kβ] (r : β) (gβ : Matrix.GeneralLinearGroup (Fin 2) Kβ) (N : Subgroup (PGL(2, Kβ))) (n : β) : Type 1 where Z : Scheme.{0} zb : Z βΆ Spec (CommRingCat.of (πͺ β§Έ Ideal.span {Ο ^ (n + 1)})) zb_flat : Flat zb zb_isSeparated : IsSeparated zb ΞΆ : β (h : Matrix.GeneralLinearGroup (Fin 2) Kβ), Spec (CommRingCat.of ((chartERing πͺ Ο r) β§Έ (Ideal.span {(algebraMap πͺ (chartERing πͺ Ο r) Ο) ^ (n + 1)}))) βΆ Z ΞΆ_over : β (h : Matrix.GeneralLinearGroup (Fin 2) Kβ), ΞΆ h β« zb β« Spec.map (CommRingCat.ofHom (algebraMap πͺ (πͺ β§Έ Ideal.span {Ο ^ (n + 1)}))) = Spec.map (CommRingCat.ofHom (algebraMap πͺ ((chartERing πͺ Ο r) β§Έ (Ideal.span {(algebraMap πͺ (chartERing πͺ Ο r) Ο) ^ (n + 1)})))) ΞΆ_isOpenImmersion : β (h : Matrix.GeneralLinearGroup (Fin 2) Kβ), IsOpenImmersion (ΞΆ h) ΞΆ_cover : β S : Finset (Matrix.GeneralLinearGroup (Fin 2) Kβ), β z : Z, β h β S, z β Set.range (ΞΆ h).base ΞΆ_inv : β (g h : Matrix.GeneralLinearGroup (Fin 2) Kβ), Matrix.ProjGenLinGroup.mk g β N β ΞΆ (g * h) = ΞΆ h ΞΉ : ((chartERing πͺ Ο r) β§Έ (Ideal.span {(algebraMap πͺ (chartERing πͺ Ο r) Ο) ^ (n + 1)})) ββ[πͺ] (chartVRing πͺ r β§Έ Ideal.span {(algebraMap πͺ (chartVRing πͺ r) Ο) ^ (n + 1)}) ΞΉ_ΞΎ : ΞΉ (Ideal.Quotient.mk _ (chartERing.ΞΎ πͺ Ο r)) = Ideal.Quotient.mk _ (chartVRing.ΞΆ πͺ r) ΞΉ_Ξ· : ΞΉ (Ideal.Quotient.mk _ (chartERing.Ξ· πͺ Ο r)) * Ideal.Quotient.mk _ (chartVRing.ΞΆ πͺ r) = algebraMap πͺ (chartVRing πͺ r β§Έ Ideal.span {(algebraMap πͺ (chartVRing πͺ r) Ο) ^ (n + 1)}) Ο ΞΉ_isLocalization : @IsLocalization.Away ((chartERing πͺ Ο r) β§Έ (Ideal.span {(algebraMap πͺ (chartERing πͺ Ο r) Ο) ^ (n + 1)})) _ (Ideal.Quotient.mk _ (chartERing.ΞΎ πͺ Ο r)) (chartVRing πͺ r β§Έ Ideal.span {(algebraMap πͺ (chartVRing πͺ r) Ο) ^ (n + 1)}) _ ΞΉ.toRingHom.toAlgebra Ο : β (g : Matrix.GeneralLinearGroup (Fin 2) Kβ), (chartVRing πͺ r β§Έ Ideal.span {(algebraMap πͺ (chartVRing πͺ r) Ο) ^ (n + 1)}) ββ[πͺ] (chartVRing πͺ r β§Έ Ideal.span {(algebraMap πͺ (chartVRing πͺ r) Ο) ^ (n + 1)}) Ο_spec : β (g : Matrix.GeneralLinearGroup (Fin 2) Kβ), Vertex.act g (stdVertex πͺ Kβ) = (stdVertex πͺ Kβ) β β (B : Type) [CommRing B] [Algebra πͺ B] (y : (chartVRing πͺ r β§Έ Ideal.span {(algebraMap πͺ (chartVRing πͺ r) Ο) ^ (n + 1)}) ββ[πͺ] B) (d d' : DeligneDatum (K := Kβ) Ο B), (d.line (stdFullLattice Kβ) = Submodule.span B {(y (Ideal.Quotient.mk _ (chartVRing.ΞΆ πͺ r))) ββ[πͺ] stdBasisVec Kβ 0 + (1 : B) ββ[πͺ] stdBasisVec Kβ 1} β§ d.line (FullLattice.act gβ (stdFullLattice Kβ)) = (Submodule.span B {(y (Ideal.Quotient.mk _ (chartVRing.ΞΆ πͺ r))) ββ[πͺ] stdBasisVec Kβ 0 + (algebraMap πͺ B Ο) ββ[πͺ] stdBasisVec Kβ 1}).map (actBaseChange B gβ (stdFullLattice Kβ)).toLinearMap β§ d.InEdgeChart Ο (FullLattice.act gβ (stdFullLattice Kβ)) (stdFullLattice Kβ)) β (d'.line (stdFullLattice Kβ) = Submodule.span B {((y.comp (Ο g).toAlgHom) (Ideal.Quotient.mk _ (chartVRing.ΞΆ πͺ r))) ββ[πͺ] stdBasisVec Kβ 0 + (1 : B) ββ[πͺ] stdBasisVec Kβ 1} β§ d'.line (FullLattice.act gβ (stdFullLattice Kβ)) = (Submodule.span B {((y.comp (Ο g).toAlgHom) (Ideal.Quotient.mk _ (chartVRing.ΞΆ πͺ r))) ββ[πͺ] stdBasisVec Kβ 0 + (algebraMap πͺ B Ο) ββ[πͺ] stdBasisVec Kβ 1}).map (actBaseChange B gβ (stdFullLattice Kβ)).toLinearMap β§ d'.InEdgeChart Ο (FullLattice.act gβ (stdFullLattice Kβ)) (stdFullLattice Kβ)) β DeligneDatum.IsPullback (K := Kβ) (Ο := Ο) B gβ»ΒΉ d d' Ξ± : β (g : Matrix.GeneralLinearGroup (Fin 2) Kβ), ((chartERing πͺ Ο r) β§Έ (Ideal.span {(algebraMap πͺ (chartERing πͺ Ο r) Ο) ^ (n + 1)})) ββ[πͺ] ((chartERing πͺ Ο r) β§Έ (Ideal.span {(algebraMap πͺ (chartERing πͺ Ο r) Ο) ^ (n + 1)})) Ξ±_spec : β (g : Matrix.GeneralLinearGroup (Fin 2) Kβ), (Vertex.act g (stdVertex πͺ Kβ) = (stdVertex πͺ Kβ) β§ Vertex.act g (Vertex.act gβ (stdVertex πͺ Kβ)) = (Vertex.act gβ (stdVertex πͺ Kβ))) β¨ (Vertex.act g (stdVertex πͺ Kβ) = (Vertex.act gβ (stdVertex πͺ Kβ)) β§ Vertex.act g (Vertex.act gβ (stdVertex πͺ Kβ)) = (stdVertex πͺ Kβ)) β β (B : Type) [CommRing B] [Algebra πͺ B] (xq : ((chartERing πͺ Ο r) β§Έ (Ideal.span {(algebraMap πͺ (chartERing πͺ Ο r) Ο) ^ (n + 1)})) ββ[πͺ] B) (d d' : DeligneDatum (K := Kβ) Ο B), (d.line (stdFullLattice Kβ) = Submodule.span B {((xq.comp (Ideal.Quotient.mkβ πͺ (Ideal.span {(algebraMap πͺ (chartERing πͺ Ο r) Ο) ^ (n + 1)}))) (chartERing.ΞΎ πͺ Ο r)) ββ[πͺ] stdBasisVec Kβ 0 + (1 : B) ββ[πͺ] stdBasisVec Kβ 1} β§ d.line (FullLattice.act gβ (stdFullLattice Kβ)) = (Submodule.span B {(1 : B) ββ[πͺ] stdBasisVec Kβ 0 + ((xq.comp (Ideal.Quotient.mkβ πͺ (Ideal.span {(algebraMap πͺ (chartERing πͺ Ο r) Ο) ^ (n + 1)}))) (chartERing.Ξ· πͺ Ο r)) ββ[πͺ] stdBasisVec Kβ 1}).map (actBaseChange B gβ (stdFullLattice Kβ)).toLinearMap β§ d.InEdgeChart Ο (FullLattice.act gβ (stdFullLattice Kβ)) (stdFullLattice Kβ)) β (d'.line (stdFullLattice Kβ) = Submodule.span B {(((xq.comp (Ξ± g).toAlgHom).comp (Ideal.Quotient.mkβ πͺ (Ideal.span {(algebraMap πͺ (chartERing πͺ Ο r) Ο) ^ (n + 1)}))) (chartERing.ΞΎ πͺ Ο r)) ββ[πͺ] stdBasisVec Kβ 0 + (1 : B) ββ[πͺ] stdBasisVec Kβ 1} β§ d'.line (FullLattice.act gβ (stdFullLattice Kβ)) = (Submodule.span B {(1 : B) ββ[πͺ] stdBasisVec Kβ 0 + (((xq.comp (Ξ± g).toAlgHom).comp (Ideal.Quotient.mkβ πͺ (Ideal.span {(algebraMap πͺ (chartERing πͺ Ο r) Ο) ^ (n + 1)}))) (chartERing.Ξ· πͺ Ο r)) ββ[πͺ] stdBasisVec Kβ 1}).map (actBaseChange B gβ (stdFullLattice Kβ)).toLinearMap β§ d'.InEdgeChart Ο (FullLattice.act gβ (stdFullLattice Kβ)) (stdFullLattice Kβ)) β DeligneDatum.IsPullback (K := Kβ) (Ο := Ο) B gβ»ΒΉ d d' ΞΆ_edge : β (h g : Matrix.GeneralLinearGroup (Fin 2) Kβ), (Vertex.act g (stdVertex πͺ Kβ) = (stdVertex πͺ Kβ) β§ Vertex.act g (Vertex.act gβ (stdVertex πͺ Kβ)) = (Vertex.act gβ (stdVertex πͺ Kβ))) β¨ (Vertex.act g (stdVertex πͺ Kβ) = (Vertex.act gβ (stdVertex πͺ Kβ)) β§ Vertex.act g (Vertex.act gβ (stdVertex πͺ Kβ)) = (stdVertex πͺ Kβ)) β ΞΆ (h * g) = Spec.map (CommRingCat.ofHom (Ξ± g).toAlgHom.toRingHom) β« ΞΆ h ΞΆ_vertex : β (h g : Matrix.GeneralLinearGroup (Fin 2) Kβ), Vertex.act g (stdVertex πͺ Kβ) = (stdVertex πͺ Kβ) β Spec.map (CommRingCat.ofHom ΞΉ.toRingHom) β« ΞΆ (h * g) = Spec.map (CommRingCat.ofHom (Ο g).toAlgHom.toRingHom) β« Spec.map (CommRingCat.ofHom ΞΉ.toRingHom) β« ΞΆ h ΞΆ_preimage_le : β (h h' : Matrix.GeneralLinearGroup (Fin 2) Kβ), (β g : Matrix.GeneralLinearGroup (Fin 2) Kβ, Matrix.ProjGenLinGroup.mk g β N β Β¬ ((Vertex.act h' (stdVertex πͺ Kβ) = Vertex.act (g * h) (stdVertex πͺ Kβ) β§ Vertex.act h' (Vertex.act gβ (stdVertex πͺ Kβ)) = Vertex.act (g * h) (Vertex.act gβ (stdVertex πͺ Kβ))) β¨ (Vertex.act h' (stdVertex πͺ Kβ) = Vertex.act (g * h) (Vertex.act gβ (stdVertex πͺ Kβ)) β§ Vertex.act h' (Vertex.act gβ (stdVertex πͺ Kβ)) = Vertex.act (g * h) (stdVertex πͺ Kβ)))) β (ΞΆ h') β»ΒΉα΅ (@Scheme.Hom.opensRange _ _ (ΞΆ h) (ΞΆ_isOpenImmersion h)) β€ (β¨ (_ : β g : Matrix.GeneralLinearGroup (Fin 2) Kβ, Matrix.ProjGenLinGroup.mk g β N β§ (Vertex.act h' (stdVertex πͺ Kβ) = Vertex.act (g * h) (stdVertex πͺ Kβ) β¨ Vertex.act h' (stdVertex πͺ Kβ) = Vertex.act (g * h) (Vertex.act gβ (stdVertex πͺ Kβ)))), PrimeSpectrum.basicOpen (Ideal.Quotient.mk (Ideal.span {(algebraMap πͺ (chartERing πͺ Ο r) Ο) ^ (n + 1)}) (chartERing.ΞΎ πͺ Ο r))) β (β¨ (_ : β g : Matrix.GeneralLinearGroup (Fin 2) Kβ, Matrix.ProjGenLinGroup.mk g β N β§ (Vertex.act h' (Vertex.act gβ (stdVertex πͺ Kβ)) = Vertex.act (g * h) (stdVertex πͺ Kβ) β¨ Vertex.act h' (Vertex.act gβ (stdVertex πͺ Kβ)) = Vertex.act (g * h) (Vertex.act gβ (stdVertex πͺ Kβ)))), PrimeSpectrum.basicOpen (Ideal.Quotient.mk (Ideal.span {(algebraMap πͺ (chartERing πͺ Ο r) Ο) ^ (n + 1)}) (chartERing.Ξ· πͺ Ο r))) desc : β (T : Scheme.{0}) (t : Matrix.GeneralLinearGroup (Fin 2) Kβ β (Spec (CommRingCat.of ((chartERing πͺ Ο r) β§Έ (Ideal.span {(algebraMap πͺ (chartERing πͺ Ο r) Ο) ^ (n + 1)}))) βΆ T)), (β g h : Matrix.GeneralLinearGroup (Fin 2) Kβ, Matrix.ProjGenLinGroup.mk g β N β t (g * h) = t h) β (β h g : Matrix.GeneralLinearGroup (Fin 2) Kβ, (Vertex.act g (stdVertex πͺ Kβ) = (stdVertex πͺ Kβ) β§ Vertex.act g (Vertex.act gβ (stdVertex πͺ Kβ)) = (Vertex.act gβ (stdVertex πͺ Kβ))) β¨ (Vertex.act g (stdVertex πͺ Kβ) = (Vertex.act gβ (stdVertex πͺ Kβ)) β§ Vertex.act g (Vertex.act gβ (stdVertex πͺ Kβ)) = (stdVertex πͺ Kβ)) β t (h * g) = Spec.map (CommRingCat.ofHom (Ξ± g).toAlgHom.toRingHom) β« t h) β (β h g : Matrix.GeneralLinearGroup (Fin 2) Kβ, Vertex.act g (stdVertex πͺ Kβ) = (stdVertex πͺ Kβ) β Spec.map (CommRingCat.ofHom ΞΉ.toRingHom) β« t (h * g) = Spec.map (CommRingCat.ofHom (Ο g).toAlgHom.toRingHom) β« Spec.map (CommRingCat.ofHom ΞΉ.toRingHom) β« t h) β β! u : Z βΆ T, β h : Matrix.GeneralLinearGroup (Fin 2) Kβ, ΞΆ h β« u = t h end FormalOmega end CerednikDrinfeld
Statements phrased using this module (8)
- Cartesian transition between consecutive Mumford gluing levels
CerednikDrinfeld.FormalOmega.MumfordGlueLevel.exists_transition12 below Β· depth 32 - Existence of a level-n Mumford gluing datum
CerednikDrinfeld.FormalOmega.nonempty_mumfordGlueLevel_of_isSchottky16 below Β· depth 32 - Reduction commutes with edge-chart transports
CerednikDrinfeld.FormalOmega.MumfordGlueLevel.factor_comp_alpha_eq_alpha_comp_factor4 below Β· depth 33 - Level compatibility of the vertex inclusion in Mumford gluing data
CerednikDrinfeld.FormalOmega.MumfordGlueLevel.factor_comp_iota_eq_iota_comp_factor0 below Β· depth 33 - Level compatibility of vertex-chart transports Ο_g
CerednikDrinfeld.FormalOmega.MumfordGlueLevel.factor_comp_tau_eq_tau_comp_factor3 below Β· depth 33 - Consecutive Mumford gluing levels form a cartesian square
CerednikDrinfeld.FormalOmega.MumfordGlueLevel.isPullback_zb_of_forall_zeta_comp_eq8 below Β· depth 33 - Transition morphisms pull each Mumford chart back to its counterpart
CerednikDrinfeld.FormalOmega.MumfordGlueLevel.preimage_opensRange_zeta_eq_of_forall_zeta_comp_eq5 below Β· depth 34 - Cartesian reduction square for truncated edge-chart rings
CerednikDrinfeld.FormalOmega.isPullback_Spec_map_factor_chartERing0 below Β· depth 34