Definitions/Def_CerednikDrinfeld_OmegaModuliPackage.lean
Moduli packages from algebra-valued functors; the Omega package
Throughout, \mathcal O and O are commutative rings and c\colon\mathcal O\to O a ring homomorphism. The first construction, AlgFunctor.algHomOfComp, takes rings B,B' equipped with ring homomorphisms \psi\colon O\to B, \psi'\colon O\to B' and a ring homomorphism f\colon B\to B' with f\circ\psi=\psi', and views f as an \mathcal O-algebra homomorphism for the \mathcal O-algebra structures on B and B' given by \psi\circ c and \psi'\circ c; two further lemmas record that its underlying function and underlying ring homomorphism are f itself.
The main construction, AlgFunctor.toModuliPackage, converts a functor F on commutative \mathcal O-algebras β an AlgFunctor πͺ, i.e. a structure consisting of an assignment B\mapsto F(B) on commutative rings carrying an \mathcal O-algebra structure, a map F(B)\to F(B') for each \mathcal O-algebra homomorphism B\to B', and the identity and composition laws as fields β into a ModuliPackage p O for a prime p: its value at a triple consisting of a commutative ring B, a ring homomorphism \psi\colon O\to B and a proof that p is nilpotent in B is F(B), computed for the \mathcal O-algebra structure \psi\circ c, and its transition map along a ring homomorphism f\colon B\to B' with f\circ\psi=\psi' is F applied to f regarded as an \mathcal O-algebra homomorphism as above; the package's identity and composition laws are inherited from those of F.
Finally, for a field K that is an \mathcal O-algebra and an element \pi\in\mathcal O, omegaPackage is this construction applied to the functor Omega K Ο. Two unfolding lemmas identify its value at (B,\psi) with OmegaObj, that is with the type of Deligne data over B for (\mathcal O,K,\pi) relative to the structure \psi\circ c β a structure assigning to each full lattice M\subset K^2 a B-submodule line M of B\otimes_{\mathcal O}M with invertible quotient, subject to monotonicity under inclusions of lattices, equivariance under homothety and a nondegeneracy condition at each prime of B β and identify its transition maps with DeligneDatum.map.
Relation to Mathlib
Mathlib has no formal upper half plane, Deligne data or moduli of special formal modules; AlgFunctor and ModuliPackage are the project's own presentations of functors of points, the first carrying the \mathcal O-algebra structure as a typeclass instance and the second carrying the structure morphism \psi\colon O\to B explicitly, and this module is the translation between them. algHomOfComp is a repackaging of a Mathlib RingHom as a Mathlib AlgHom.
Where it is used
These definitions belong to the formalisation of the ΔerednikβDrinfeld uniformisation of Shimura curves: Drinfeld's moduli problem for special formal modules is formulated over rings with an explicit structure morphism from O in which p is nilpotent, whereas the formal upper half plane is presented as a functor on \mathcal O-algebras, and this adapter lets the two be compared along a chosen c\colon\mathcal O\to O, so that statements about moduli packages can be applied to the functor of Deligne data.
References
- V. G. Drinfeld, Coverings of p-adic symmetric domains, Functional Analysis and Its Applications 10 (1976), 107β115
- 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.
- 93 lines
- 9 declarations
- used in the statements of 2 theorems and imported by 3 proofs
- imports 4 definition modules
Source file: Definitions/Def_CerednikDrinfeld_OmegaModuliPackage.lean
Imports
Imported by
- no other definition module
Declarations
- def
CerednikDrinfeld.FormalOmega.AlgFunctor.algHomOfComp - theorem
CerednikDrinfeld.FormalOmega.AlgFunctor.algHomOfComp_apply - theorem
CerednikDrinfeld.FormalOmega.AlgFunctor.coe_algHomOfComp - def
CerednikDrinfeld.FormalOmega.AlgFunctor.toModuliPackage - theorem
CerednikDrinfeld.FormalOmega.AlgFunctor.toModuliPackage_obj - theorem
CerednikDrinfeld.FormalOmega.AlgFunctor.toModuliPackage_map - def
CerednikDrinfeld.FormalOmega.omegaPackage - theorem
CerednikDrinfeld.FormalOmega.omegaPackage_obj - theorem
CerednikDrinfeld.FormalOmega.omegaPackage_map
Source
import Mathlib import Definitions.Def_MvFormalGroup_NegV2 import Definitions.Def_CerednikDrinfeld_SpecialFormalModule import Definitions.Def_CerednikDrinfeld_FormalUpperHalfPlaneDatum import Definitions.Def_CerednikDrinfeld_FormalUpperHalfPlaneFunctor set_option autoImplicit false noncomputable section namespace CerednikDrinfeld namespace FormalOmega namespace AlgFunctor variable {πͺ : Type} [CommRing πͺ] {O : Type} [CommRing O] def algHomOfComp (c : πͺ β+* O) {B B' : Type} [CommRing B] [CommRing B'] (Ο : O β+* B) (Ο' : O β+* B') (f : B β+* B') (hf : f.comp Ο = Ο') : letI := (Ο.comp c).toAlgebra; letI := (Ο'.comp c).toAlgebra; B ββ[πͺ] B' := letI := (Ο.comp c).toAlgebra; letI := (Ο'.comp c).toAlgebra { toRingHom := f commutes' := fun r => by show f (Ο (c r)) = Ο' (c r) rw [β hf] rfl } @[simp] theorem algHomOfComp_apply (c : πͺ β+* O) {B B' : Type} [CommRing B] [CommRing B'] (Ο : O β+* B) (Ο' : O β+* B') (f : B β+* B') (hf : f.comp Ο = Ο') (b : B) : algHomOfComp c Ο Ο' f hf b = f b := rfl theorem coe_algHomOfComp (c : πͺ β+* O) {B B' : Type} [CommRing B] [CommRing B'] (Ο : O β+* B) (Ο' : O β+* B') (f : B β+* B') (hf : f.comp Ο = Ο') : (algHomOfComp c Ο Ο' f hf : B β+* B') = f := rfl def toModuliPackage (p : β) [Fact p.Prime] (F : AlgFunctor πͺ) (c : πͺ β+* O) : CerednikDrinfeld.SpecialFormal.ModuliPackage.{0, 0} p O where obj B _ Ο _ := @AlgFunctor.obj πͺ _ F B _ (Ο.comp c).toAlgebra map {B B'} _ _ {Ο Ο'} _ _ f hf x := @AlgFunctor.map πͺ _ F B _ (Ο.comp c).toAlgebra B' _ (Ο'.comp c).toAlgebra (algHomOfComp c Ο Ο' f hf) x map_id {B} _ {Ο} _ x := by letI := (Ο.comp c).toAlgebra have h : algHomOfComp c Ο Ο (RingHom.id B) (RingHom.id_comp Ο) = AlgHom.id πͺ B := AlgHom.ext fun _ => rfl show F.map (algHomOfComp c Ο Ο (RingHom.id B) (RingHom.id_comp Ο)) x = x rw [h] exact F.map_id x map_comp {B B' B''} _ _ _ {Ο Ο' Ο''} _ _ _ g f hf hg x := by letI := (Ο.comp c).toAlgebra; letI := (Ο'.comp c).toAlgebra; letI := (Ο''.comp c).toAlgebra have h : algHomOfComp c Ο Ο'' (g.comp f) (by rw [RingHom.comp_assoc, hf, hg]) = (algHomOfComp c Ο' Ο'' g hg).comp (algHomOfComp c Ο Ο' f hf) := AlgHom.ext fun _ => rfl show F.map (algHomOfComp c Ο Ο'' (g.comp f) _) x = F.map (algHomOfComp c Ο' Ο'' g hg) (F.map (algHomOfComp c Ο Ο' f hf) x) rw [h] exact F.map_comp _ _ x @[simp] theorem toModuliPackage_obj (p : β) [Fact p.Prime] (F : AlgFunctor πͺ) (c : πͺ β+* O) (B : Type) [CommRing B] (Ο : O β+* B) (hB : IsNilpotent (p : B)) : (F.toModuliPackage p c).obj B Ο hB = @AlgFunctor.obj πͺ _ F B _ (Ο.comp c).toAlgebra := rfl theorem toModuliPackage_map (p : β) [Fact p.Prime] (F : AlgFunctor πͺ) (c : πͺ β+* O) {B B' : Type} [CommRing B] [CommRing B'] {Ο : O β+* B} {Ο' : O β+* B'} (hB : IsNilpotent (p : B)) (hB' : IsNilpotent (p : B')) (f : B β+* B') (hf : f.comp Ο = Ο') (x : (F.toModuliPackage p c).obj B Ο hB) : (F.toModuliPackage p c).map hB hB' f hf x = @AlgFunctor.map πͺ _ F B _ (Ο.comp c).toAlgebra B' _ (Ο'.comp c).toAlgebra (algHomOfComp c Ο Ο' f hf) x := rfl end AlgFunctor def omegaPackage {πͺ : Type} [CommRing πͺ] {K : Type} [Field K] [Algebra πͺ K] {O : Type} [CommRing O] (p : β) [Fact p.Prime] (Ο : πͺ) (c : πͺ β+* O) : CerednikDrinfeld.SpecialFormal.ModuliPackage.{0, 0} p O := (Omega K Ο).toModuliPackage p c theorem omegaPackage_obj {πͺ : Type} [CommRing πͺ] {K : Type} [Field K] [Algebra πͺ K] {O : Type} [CommRing O] (p : β) [Fact p.Prime] (Ο : πͺ) (c : πͺ β+* O) (B : Type) [CommRing B] (Ο : O β+* B) (hB : IsNilpotent (p : B)) : (omegaPackage (K := K) p Ο c).obj B Ο hB = @OmegaObj πͺ _ K _ _ Ο B _ (Ο.comp c).toAlgebra := rfl theorem omegaPackage_map {πͺ : Type} [CommRing πͺ] {K : Type} [Field K] [Algebra πͺ K] {O : Type} [CommRing O] (p : β) [Fact p.Prime] (Ο : πͺ) (c : πͺ β+* O) {B B' : Type} [CommRing B] [CommRing B'] {Ο : O β+* B} {Ο' : O β+* B'} (hB : IsNilpotent (p : B)) (hB' : IsNilpotent (p : B')) (f : B β+* B') (hf : f.comp Ο = Ο') (d : (omegaPackage (K := K) p Ο c).obj B Ο hB) : (omegaPackage (K := K) p Ο c).map hB hB' f hf d = @DeligneDatum.map πͺ _ K _ _ Ο B _ (Ο.comp c).toAlgebra B' _ (Ο'.comp c).toAlgebra (AlgFunctor.algHomOfComp c Ο Ο' f hf) d := rfl end FormalOmega end CerednikDrinfeld end
Statements phrased using this module (2)
- Zariski descent for the formal upper half-plane moduli package
CerednikDrinfeld.FormalOmega.omegaPackage_isZariskiSheaf4 below Β· depth 33 - Fibre-square gluing for the p-adic Ξ©Μ package, Noetherian case
CerednikDrinfeld.FormalOmega.omegaPackage_padic_existsUnique_map_pullbackFst_eq_and_map_pullbackSnd_eq_of_isNoetherianRing1 below Β· depth 33