Definitions/Def_HeckeGalois_MazurCase1Bundle.lean
FrobeniusβVerschiebung pairs and the Mazur II (14.2) Case-1 bundle
Over a field k and a k-vector space M, VerFrobPair k M is the structure consisting of two k-linear endomorphisms frob and ver of M whose two composites in either order vanish; the two accompanying lemmas record the pointwise consequences V(Fx)=0 and F(Vx)=0. SelfDual D is a structure carrying a k-linear isomorphism of M with its dual \mathrm{Dual}_k M that converts F into the transpose of V and V into the transpose of F. A submodule N is Stable for D when it is carried into itself by both F and V; quotientPair is the induced pair on M/N, and kernelPair produces, from pairs D_2 on M_2 and D_3 on M_3 and a k-linear map \pi with \pi\circ V_2=V_3\circ\pi and \pi\circ F_2=F_3\circ\pi, the pair obtained by restricting F_2,V_2 to \ker\pi.
OdaDictionary π J πͺ k Vrep HDR MV H0Ξ© H1O bundles: pairs D_{HDR} on HDR and D_{MV} on MV; the equality \ker F_{HDR}=\operatorname{im} V_{HDR}; isomorphisms H0Ξ© \cong\ker F_{HDR} and H1O \cong HDR/\operatorname{im}V_{HDR}; a surjection \pi\colon HDR\to MV commuting with V and with F; and two equalities of dimensions, \dim_{π/πͺ}\,J[πͺ]=\dim_k HDR, where J[πͺ] is the πͺ-torsion Submodule.torsionBySet π J πͺ, and \dim_{π/πͺ} Vrep=\dim_k MV. FontaineLayer P is the proposition: if \ker\pi is nontrivial then it has a submodule N, stable for the restricted pair, together with a k-linear isomorphism (\ker\pi)/N\cong MV intertwining the induced ver with V_{MV} (the condition is imposed on ver only).
For πͺ a maximal ideal of π, so that π/πͺ is a field, Case1Geometry π J πͺ is the data of five π/πͺ-modules Vrep, HDR, MV, H0Ξ©, H1O with HDR finite-dimensional, an OdaDictionary on them taken with k=π/πͺ, and, as fields, self-duality of D_{MV} and the FontaineLayer clause. Case1Bundle extends this by two numerical fields: \dim_{π/πͺ} H1O\le 1 and \dim_{π/πͺ} Vrep=2.
Relation to Mathlib
Mathlib has no notion of DieudonnΓ© module or of a FrobeniusβVerschiebung pair; these structures are the project's own, built on Mathlib's Module.Dual, LinearMap.dualMap, Submodule.mapQ, LinearMap.restrict and Submodule.torsionBySet.
Where it is used
The structures provide the abstract DieudonnΓ©-side vocabulary for Mazur's Case 1 analysis (p\nmid N) of the πͺ-torsion of the Jacobian of a modular curve: the carriers stand for H^1_{\mathrm{DR}}/πͺ, the DieudonnΓ© module of the residual representation space, and the two Hodge pieces H^0(\Omega)/πͺ and H^1(\mathcal O)/πͺ, with the rank fields tying J[πͺ] and the representation space to them. A Case1Bundle is the hypothesis package from which the multiplicity-one style dimension conclusions on J[πͺ] are drawn.
References
- B. Mazur, Modular curves and the Eisenstein ideal, Publications MathΓ©matiques de l'IHΓS 47 (1977), 33β186, Β§Β§9, 14
- J.-M. Fontaine, Groupes p-divisibles sur les corps locaux, AstΓ©risque 47β48, SociΓ©tΓ© MathΓ©matique de France, 1977
- T. Oda, The first de Rham cohomology group and DieudonnΓ© modules, Ann. Sci. Γcole Norm. Sup. (4) 2 (1969), 63β135
References are suggested automatically and have not been individually verified.
English text generated automatically from the Lean source; the Lean statement is authoritative.
- 234 lines
- 44 declarations
- used in the statements of 0 theorems and imported by 0 proofs
- imports 0 definition modules
Source file: Definitions/Def_HeckeGalois_MazurCase1Bundle.lean
Imports
- only Mathlib
Imported by
Declarations
- structure
ModularCurve.MazurII142.VerFrobPair - field
ModularCurve.MazurII142.VerFrobPair.frob - field
ModularCurve.MazurII142.VerFrobPair.ver - field
ModularCurve.MazurII142.VerFrobPair.ver_comp_frob - field
ModularCurve.MazurII142.VerFrobPair.frob_comp_ver - theorem
ModularCurve.MazurII142.VerFrobPair.ver_frob_apply - theorem
ModularCurve.MazurII142.VerFrobPair.frob_ver_apply - structure
ModularCurve.MazurII142.VerFrobPair.SelfDual - field
ModularCurve.MazurII142.VerFrobPair.SelfDual.equiv - field
ModularCurve.MazurII142.VerFrobPair.SelfDual.frob_comm - field
ModularCurve.MazurII142.VerFrobPair.SelfDual.ver_comm - def
ModularCurve.MazurII142.VerFrobPair.Stable - def
ModularCurve.MazurII142.VerFrobPair.quotientPair - def
ModularCurve.MazurII142.VerFrobPair.kernelPair - structure
ModularCurve.MazurII142.OdaDictionary - field
ModularCurve.MazurII142.OdaDictionary.k - field
ModularCurve.MazurII142.OdaDictionary.Vrep - field
ModularCurve.MazurII142.OdaDictionary.HDR - field
ModularCurve.MazurII142.OdaDictionary.MV - field
ModularCurve.MazurII142.OdaDictionary.H1O - field
ModularCurve.MazurII142.OdaDictionary.DHDR - field
ModularCurve.MazurII142.OdaDictionary.DMV - field
ModularCurve.MazurII142.OdaDictionary.frobKer_eq_verRange - field
ModularCurve.MazurII142.OdaDictionary.hodgeSub - field
ModularCurve.MazurII142.OdaDictionary.hodgeQuot - field
ModularCurve.MazurII142.OdaDictionary.pi - field
ModularCurve.MazurII142.OdaDictionary.pi_surjective - field
ModularCurve.MazurII142.OdaDictionary.pi_ver - field
ModularCurve.MazurII142.OdaDictionary.pi_frob - field
ModularCurve.MazurII142.OdaDictionary.rank_J - field
ModularCurve.MazurII142.OdaDictionary.rank_V - abbrev
ModularCurve.MazurII142.OdaDictionary.kernelPair - abbrev
ModularCurve.MazurII142.OdaDictionary.FontaineLayer - structure
ModularCurve.MazurII142.Case1Geometry - field
ModularCurve.MazurII142.Case1Geometry.Vrep - field
ModularCurve.MazurII142.Case1Geometry.HDR - field
ModularCurve.MazurII142.Case1Geometry.MV - field
ModularCurve.MazurII142.Case1Geometry.H1O - field
ModularCurve.MazurII142.Case1Geometry.pkt - field
ModularCurve.MazurII142.Case1Geometry.hsd - field
ModularCurve.MazurII142.Case1Geometry.hlayer - structure
ModularCurve.MazurII142.Case1Bundle - field
ModularCurve.MazurII142.Case1Bundle.h94 - field
ModularCurve.MazurII142.Case1Bundle.hdimV
Source
import Mathlib.Algebra.Module.Torsion.Basic β import Mathlib.LinearAlgebra.Quotient.Basic β import Mathlib.LinearAlgebra.Dual.Defs β import Mathlib.LinearAlgebra.FiniteDimensional.Defs β import Mathlib.LinearAlgebra.Dimension.Finrank β import Mathlib.RingTheory.Ideal.Quotient.Basic β set_option autoImplicit false noncomputable section open Module namespace ModularCurve namespace MazurII142 section Carrier variable (k : Type*) [Field k] (M : Type*) [AddCommGroup M] [Module k M] structure VerFrobPair where frob : M ββ[k] M ver : M ββ[k] M ver_comp_frob : ver ββ frob = 0 frob_comp_ver : frob ββ ver = 0 end Carrier namespace VerFrobPair section Basic variable {k : Type*} [Field k] {M : Type*} [AddCommGroup M] [Module k M] variable (D : VerFrobPair k M) theorem ver_frob_apply (x : M) : D.ver (D.frob x) = 0 := by simpa using LinearMap.congr_fun D.ver_comp_frob x theorem frob_ver_apply (x : M) : D.frob (D.ver x) = 0 := by simpa using LinearMap.congr_fun D.frob_comp_ver x end Basic section Duality variable {k : Type*} [Field k] {M : Type*} [AddCommGroup M] [Module k M] structure SelfDual (D : VerFrobPair k M) where equiv : M ββ[k] Module.Dual k M frob_comm : β x : M, equiv (D.frob x) = D.ver.dualMap (equiv x) ver_comm : β x : M, equiv (D.ver x) = D.frob.dualMap (equiv x) end Duality section StableQuotient variable {k : Type*} [Field k] {M : Type*} [AddCommGroup M] [Module k M] variable (D : VerFrobPair k M) def Stable (N : Submodule k M) : Prop := (β x β N, D.frob x β N) β§ (β x β N, D.ver x β N) def quotientPair (N : Submodule k M) (hN : D.Stable N) : VerFrobPair k (M β§Έ N) where frob := Submodule.mapQ N N D.frob (fun x hx => hN.1 x hx) ver := Submodule.mapQ N N D.ver (fun x hx => hN.2 x hx) ver_comp_frob := by apply LinearMap.ext intro z obtain β¨x, rflβ© := Submodule.Quotient.mk_surjective N z simp only [LinearMap.comp_apply, Submodule.mapQ_apply, D.ver_frob_apply, Submodule.Quotient.mk_zero, LinearMap.zero_apply] frob_comp_ver := by apply LinearMap.ext intro z obtain β¨x, rflβ© := Submodule.Quotient.mk_surjective N z simp only [LinearMap.comp_apply, Submodule.mapQ_apply, D.frob_ver_apply, Submodule.Quotient.mk_zero, LinearMap.zero_apply] end StableQuotient section Kernel variable {k : Type*} [Field k] {Mβ Mβ : Type*} [AddCommGroup Mβ] [Module k Mβ] [AddCommGroup Mβ] [Module k Mβ] def kernelPair (Dβ : VerFrobPair k Mβ) (Dβ : VerFrobPair k Mβ) (Ο : Mβ ββ[k] Mβ) (hΟ_ver : Ο ββ Dβ.ver = Dβ.ver ββ Ο) (hΟ_frob : Ο ββ Dβ.frob = Dβ.frob ββ Ο) : VerFrobPair k (LinearMap.ker Ο) where frob := Dβ.frob.restrict (p := LinearMap.ker Ο) (q := LinearMap.ker Ο) (fun x hx => by rw [LinearMap.mem_ker] at hx β’ have h := LinearMap.congr_fun hΟ_frob x simp only [LinearMap.comp_apply] at h rw [h, hx, map_zero]) ver := Dβ.ver.restrict (p := LinearMap.ker Ο) (q := LinearMap.ker Ο) (fun x hx => by rw [LinearMap.mem_ker] at hx β’ have h := LinearMap.congr_fun hΟ_ver x simp only [LinearMap.comp_apply] at h rw [h, hx, map_zero]) ver_comp_frob := by apply LinearMap.ext intro x apply Subtype.ext show Dβ.ver (Dβ.frob (x : Mβ)) = ((0 : LinearMap.ker Ο ββ[k] LinearMap.ker Ο) x : Mβ) rw [Dβ.ver_frob_apply] rfl frob_comp_ver := by apply LinearMap.ext intro x apply Subtype.ext show Dβ.frob (Dβ.ver (x : Mβ)) = ((0 : LinearMap.ker Ο ββ[k] LinearMap.ker Ο) x : Mβ) rw [Dβ.frob_ver_apply] rfl end Kernel end VerFrobPair structure OdaDictionary (π : Type*) [CommRing π] (J : Type*) [AddCommGroup J] [Module π J] (πͺ : Ideal π) (k : Type*) [Field k] (Vrep : Type*) [AddCommGroup Vrep] [Module (π β§Έ πͺ) Vrep] (HDR : Type*) [AddCommGroup HDR] [Module k HDR] (MV : Type*) [AddCommGroup MV] [Module k MV] (H0Ξ© : Type*) [AddCommGroup H0Ξ©] [Module k H0Ξ©] (H1O : Type*) [AddCommGroup H1O] [Module k H1O] : Type _ where DHDR : VerFrobPair k HDR DMV : VerFrobPair k MV frobKer_eq_verRange : LinearMap.ker DHDR.frob = LinearMap.range DHDR.ver hodgeSub : H0Ξ© ββ[k] LinearMap.ker DHDR.frob hodgeQuot : H1O ββ[k] (HDR β§Έ LinearMap.range DHDR.ver) pi : HDR ββ[k] MV pi_surjective : Function.Surjective pi pi_ver : pi ββ DHDR.ver = DMV.ver ββ pi pi_frob : pi ββ DHDR.frob = DMV.frob ββ pi rank_J : Module.finrank (π β§Έ πͺ) (Submodule.torsionBySet π J πͺ) = finrank k HDR rank_V : Module.finrank (π β§Έ πͺ) Vrep = finrank k MV namespace OdaDictionary section Derived variable {π : Type*} [CommRing π] {J : Type*} [AddCommGroup J] [Module π J] {πͺ : Ideal π} {k : Type*} [Field k] {Vrep : Type*} [AddCommGroup Vrep] [Module (π β§Έ πͺ) Vrep] {HDR : Type*} [AddCommGroup HDR] [Module k HDR] {MV : Type*} [AddCommGroup MV] [Module k MV] {H0Ξ© : Type*} [AddCommGroup H0Ξ©] [Module k H0Ξ©] {H1O : Type*} [AddCommGroup H1O] [Module k H1O] (P : OdaDictionary π J πͺ k Vrep HDR MV H0Ξ© H1O) abbrev kernelPair : VerFrobPair k (LinearMap.ker P.pi) := P.DHDR.kernelPair P.DMV P.pi P.pi_ver P.pi_frob abbrev FontaineLayer : Prop := Nontrivial (LinearMap.ker P.pi) β β (N : Submodule k (LinearMap.ker P.pi)) (hN : P.kernelPair.Stable N) (e : ((LinearMap.ker P.pi) β§Έ N) ββ[k] MV), β z, e ((P.kernelPair.quotientPair N hN).ver z) = P.DMV.ver (e z) end Derived end OdaDictionary universe u v attribute [local instance] Ideal.Quotient.field structure Case1Geometry (π : Type u) [CommRing π] (J : Type v) [AddCommGroup J] [Module π J] (πͺ : Ideal π) [πͺ.IsMaximal] where Vrep : Type u [hVrepACG : AddCommGroup Vrep] [hVrepMod : Module (π β§Έ πͺ) Vrep] HDR : Type u [hHDRACG : AddCommGroup HDR] [hHDRMod : Module (π β§Έ πͺ) HDR] MV : Type u [hMVACG : AddCommGroup MV] [hMVMod : Module (π β§Έ πͺ) MV] H0Ξ© : Type u [hH0ACG : AddCommGroup H0Ξ©] [hH0Mod : Module (π β§Έ πͺ) H0Ξ©] H1O : Type u [hH1ACG : AddCommGroup H1O] [hH1Mod : Module (π β§Έ πͺ) H1O] pkt : OdaDictionary π J πͺ (π β§Έ πͺ) Vrep HDR MV H0Ξ© H1O [hFD : FiniteDimensional (π β§Έ πͺ) HDR] hsd : pkt.DMV.SelfDual hlayer : pkt.FontaineLayer attribute [instance] Case1Geometry.hVrepACG Case1Geometry.hVrepMod Case1Geometry.hHDRACG Case1Geometry.hHDRMod Case1Geometry.hMVACG Case1Geometry.hMVMod Case1Geometry.hH0ACG Case1Geometry.hH0Mod Case1Geometry.hH1ACG Case1Geometry.hH1Mod Case1Geometry.hFD structure Case1Bundle (π : Type u) [CommRing π] (J : Type v) [AddCommGroup J] [Module π J] (πͺ : Ideal π) [πͺ.IsMaximal] extends Case1Geometry π J πͺ where h94 : finrank (π β§Έ πͺ) H1O β€ 1 hdimV : finrank (π β§Έ πͺ) Vrep = 2 end MazurII142 end ModularCurve end
Statements phrased using this module (0)
No statement module imports it directly (it is used through other definition modules or by proofs).