Definitions/Def_AlgebraicGeometry_SymmRootFunctor.lean
Classes of rigidified line bundles; symmetric square-root predicate
Throughout, S is a commutative ring, c\colon C\to\operatorname{Spec}S a scheme over \operatorname{Spec}S, \varepsilon a section of c (an element of SchemeHomOver (š (Spec (CommRingCat.of S))) c, i.e. a morphism \operatorname{Spec}S\to C with \varepsilon\circ-composite equal to the identity), and R_0 an S-algebra. For an object B of Under (CommRingCat.of Rā), i.e. a commutative ring with a ring map from R_0, algS makes B an S-algebra through S\to R_0\to B, ι is the induced \operatorname{Spec}B\to\operatorname{Spec}S, and for \varphi\colon B\to B' the morphism Ļ is \operatorname{Spec}\varphi viewed as a morphism over \operatorname{Spec}S; comp_algebraMap, Ļ_val, Ļ_id, Ļ_comp record that this is unital and reverses composition. A StablePred c ε Rā is a structure with a field P assigning to each B a predicate on \mathcal O-modules on C_B=C\times_{\operatorname{Spec}S}\operatorname{Spec}B, and a second field asserting that P is preserved under pulling back an \varepsilon-rigidified line bundle along Ļ Ļ; the stability statement is thus carried as data. An Elem B is a RigidifiedLineBundle c ε (ι B) ā a module on C_B that is locally isomorphic to the unit module and whose restriction along the rigidifying section is isomorphic to the unit ā together with a proof of P B for its underlying module. The setoid identifies two elements whenever their underlying modules are isomorphic (neither rigidification nor the property entering the relation), and classFunctor is the resulting covariant functor Under (CommRingCat.of Rā) ℤ Type (u+1), B\mapsto the quotient, \varphi\mapsto pullback along baseChangeSnd of Ļ Ļ; the identity and composition laws hold only after passage to classes, via the pullback comparison isomorphisms (baseChangeSnd_Ļ_id, baseChangeSnd_Ļ_comp). The helpers mk, mk_surjective, mk_eq_mk_iff, map_mk, classFunctor_obj describe the quotient map, and truePred is the always-true predicate.
In the final section f\colon A\to\operatorname{Spec}S carries a RelativeGroupLaw L and \mathcal L is a module on A. For B and a module M on A_B=A\times_{\operatorname{Spec}S}\operatorname{Spec}B, symmRootPred is the conjunction of two conditions, both of the form LocIsoOnBase over \operatorname{Spec}B (for each point of \operatorname{Spec}B there is an open neighbourhood U such that the two modules become isomorphic after restriction to the preimage of U): first, M is symmetric for the base-changed group law L_B, i.e. the pullback of M along the inversion morphism of L_B is locally on \operatorname{Spec}B isomorphic to M; second, the pullback of \mathcal L along A_B\to A is locally on \operatorname{Spec}B isomorphic to M\otimes[-1]^*M. So the predicate asks only for isomorphisms locally over the base, on the chosen modules, rather than a global isomorphism. symmRootPred_iff is the unfolding, and symmRootStablePred takes the required stability statement as an explicit hypothesis and packages symmRootPred into a StablePred f (L.one (š _)) Rā, the rigidifying section being the unit section of the group law.
Relation to Mathlib
Mathlib has no relative Picard functor, no rigidified line bundles and no notion of symmetric square root of a line bundle on an abelian scheme; these are the project's own notions, built on Mathlib's sheaves of modules on schemes, their pullback functors and monoidal structure, scheme pullbacks, and the Under category of a commutative ring.
Where it is used
The functor constructed here is the shape of test objects (affine algebras over an intermediate ring R_0, covariantly) used in the representability arguments for symmetric square roots of a line bundle on an abelian scheme, which in turn feed the polarisation and Rosati material for Jacobians with good reduction.
References
- S. Bosch, W. Lütkebohmert and M. Raynaud, Néron Models, Ergebnisse der Mathematik und ihrer Grenzgebiete 21, Springer, 1990, §8.1
- D. Mumford, Abelian Varieties, Tata Institute Studies in Mathematics 5, Oxford University Press, 1970, §§13ā15
References are suggested automatically and have not been individually verified.
English text generated automatically from the Lean source; the Lean statement is authoritative.
- 170 lines
- 28 declarations
- used in the statements of 6 theorems and imported by 7 proofs
- imports 3 definition modules
Source file: Definitions/Def_AlgebraicGeometry_SymmRootFunctor.lean
Imports
Imported by
Declarations
- abbrev
AlgebraicGeometry.SymmRoot.algS - abbrev
AlgebraicGeometry.SymmRoot.ι - theorem
AlgebraicGeometry.SymmRoot.comp_algebraMap - def
AlgebraicGeometry.SymmRoot.Ļ - theorem
AlgebraicGeometry.SymmRoot.Ļ_val - theorem
AlgebraicGeometry.SymmRoot.Ļ_id - theorem
AlgebraicGeometry.SymmRoot.Ļ_comp - structure
AlgebraicGeometry.SymmRoot.StablePred - field
AlgebraicGeometry.SymmRoot.StablePred.P - field
AlgebraicGeometry.SymmRoot.StablePred.of_pullbackAlong - structure
AlgebraicGeometry.SymmRoot.Elem - field
AlgebraicGeometry.SymmRoot.Elem.M - field
AlgebraicGeometry.SymmRoot.Elem.prop - instance
AlgebraicGeometry.SymmRoot.setoid - def
AlgebraicGeometry.SymmRoot.Elem.map - theorem
AlgebraicGeometry.SymmRoot.Elem.map_M - theorem
AlgebraicGeometry.SymmRoot.baseChangeSnd_Ļ_id - theorem
AlgebraicGeometry.SymmRoot.baseChangeSnd_Ļ_comp - def
AlgebraicGeometry.SymmRoot.classFunctor - abbrev
AlgebraicGeometry.SymmRoot.mk - theorem
AlgebraicGeometry.SymmRoot.mk_surjective - theorem
AlgebraicGeometry.SymmRoot.mk_eq_mk_iff - theorem
AlgebraicGeometry.SymmRoot.map_mk - theorem
AlgebraicGeometry.SymmRoot.classFunctor_obj - def
AlgebraicGeometry.SymmRoot.truePred - def
AlgebraicGeometry.SymmRoot.symmRootPred - theorem
AlgebraicGeometry.SymmRoot.symmRootPred_iff - abbrev
AlgebraicGeometry.SymmRoot.symmRootStablePred
Source
import Mathlib import Definitions.Def_AlgebraicGeometry_RelativePicardFunctor import Definitions.Def_AlgebraicGeometry_PolarisationRosati import Definitions.Def_GoodReductionJacobian_RelativeGroupLawBaseChange set_option autoImplicit false noncomputable section universe u open CategoryTheory CategoryTheory.Limits MonoidalCategory AlgebraicGeometry AlgebraicGeometry.RelPicard NeronModelInfra GoodReductionJacobian AlgebraicGeometry.Polarisation namespace AlgebraicGeometry.SymmRoot section base variable (S : Type u) [CommRing S] (Rā : Type u) [CommRing Rā] [Algebra S Rā] abbrev algS (B : Under (CommRingCat.of Rā)) : Algebra S B.right := (B.hom.hom.comp (algebraMap S Rā)).toAlgebra abbrev ι (B : Under (CommRingCat.of Rā)) : Spec (CommRingCat.of B.right) ā¶ Spec (CommRingCat.of S) := letI := algS S Rā B Spec.map (CommRingCat.ofHom (algebraMap S B.right)) theorem comp_algebraMap {B B' : Under (CommRingCat.of Rā)} (Ļ : B ā¶ B') : letI := algS S Rā B; letI := algS S Rā B' Ļ.right.hom.comp (algebraMap S B.right) = algebraMap S B'.right := by ext x change Ļ.right.hom (B.hom.hom (algebraMap S Rā x)) = B'.hom.hom (algebraMap S Rā x) rw [ā Under.w Ļ] rfl def Ļ {B B' : Under (CommRingCat.of Rā)} (Ļ : B ā¶ B') : SchemeHomOver (ι S Rā B') (ι S Rā B) := āØSpec.map Ļ.right, by letI := algS S Rā B; letI := algS S Rā B' change Spec.map (CommRingCat.ofHom Ļ.right.hom) ā« Spec.map (CommRingCat.ofHom (algebraMap S B.right)) = Spec.map (CommRingCat.ofHom (algebraMap S B'.right)) rw [ā Spec.map_comp, ā CommRingCat.ofHom_comp, comp_algebraMap]ā© @[simp] theorem Ļ_val {B B' : Under (CommRingCat.of Rā)} (Ļ : B ā¶ B') : (Ļ S Rā Ļ).1 = Spec.map Ļ.right := rfl theorem Ļ_id (B : Under (CommRingCat.of Rā)) : (Ļ S Rā (š B)).1 = š _ := by rw [Ļ_val]; exact Spec.map_id _ theorem Ļ_comp {B B' B'' : Under (CommRingCat.of Rā)} (Ļ : B ā¶ B') (Ļ : B' ā¶ B'') : (Ļ S Rā (Ļ ā« Ļ)).1 = (Ļ S Rā Ļ).1 ā« (Ļ S Rā Ļ).1 := by simp only [Ļ_val, Under.comp_right, Spec.map_comp] end base section functor variable {S : Type u} [CommRing S] {C : Scheme.{u}} (c : C ā¶ Spec (CommRingCat.of S)) (ε : SchemeHomOver (š (Spec (CommRingCat.of S))) c) (Rā : Type u) [CommRing Rā] [Algebra S Rā] structure StablePred where P : ā (B : Under (CommRingCat.of Rā)), (pullback c (ι S Rā B)).Modules ā Prop of_pullbackAlong : ā {B B' : Under (CommRingCat.of Rā)} (Ļ : B ā¶ B') (M : RigidifiedLineBundle c ε (ι S Rā B)), P B M.L ā P B' (M.pullbackAlong (Ļ S Rā Ļ)).L variable (P : StablePred c ε Rā) structure Elem (B : Under (CommRingCat.of Rā)) where M : RigidifiedLineBundle c ε (ι S Rā B) prop : P.P B M.L instance setoid (B : Under (CommRingCat.of Rā)) : Setoid (Elem c ε Rā P B) where r x y := Nonempty (x.M.L ā y.M.L) iseqv := āØfun _ => āØIso.refl _ā©, fun āØiā© => āØi.symmā©, fun āØiā© āØjā© => āØi āŖā« jā©ā© def Elem.map {B B' : Under (CommRingCat.of Rā)} (Ļ : B ā¶ B') (x : Elem c ε Rā P B) : Elem c ε Rā P B' := āØx.M.pullbackAlong (Ļ S Rā Ļ), P.of_pullbackAlong Ļ x.M x.propā© @[simp] theorem Elem.map_M {B B' : Under (CommRingCat.of Rā)} (Ļ : B ā¶ B') (x : Elem c ε Rā P B) : (x.map c ε Rā P Ļ).M = x.M.pullbackAlong (Ļ S Rā Ļ) := rfl theorem baseChangeSnd_Ļ_id (B : Under (CommRingCat.of Rā)) : baseChangeSnd c (Ļ S Rā (š B)) = š _ := by rw [ā baseChangeSnd_id c (ι S Rā B)] unfold baseChangeSnd congr 1 exact Ļ_id S Rā B theorem baseChangeSnd_Ļ_comp {B B' B'' : Under (CommRingCat.of Rā)} (Ļ : B ā¶ B') (Ļ : B' ā¶ B'') : baseChangeSnd c (Ļ S Rā (Ļ ā« Ļ)) = baseChangeSnd c (Ļ S Rā Ļ) ā« baseChangeSnd c (Ļ S Rā Ļ) := by rw [baseChangeSnd_comp] congr 1 exact Subtype.ext (Ļ_comp S Rā Ļ Ļ) def classFunctor : Under (CommRingCat.of Rā) ℤ Type (u + 1) where obj B := Quotient (setoid c ε Rā P B) map {B B'} Ļ := TypeCat.ofHom (Quotient.map (Elem.map c ε Rā P Ļ) (fun x y h => RigidifiedLineBundle.pullbackAlong_congr _ h)) map_id B := TypeCat.homEquiv.injective (funext fun x => by induction x using Quotient.ind with | _ r => exact Quotient.sound āØ(Scheme.Modules.pullbackCongr (baseChangeSnd_Ļ_id c Rā B)).app r.M.L āŖā« (Scheme.Modules.pullbackId _).app r.M.Lā©) map_comp {B B' B''} Ļ Ļ := TypeCat.homEquiv.injective (funext fun x => by induction x using Quotient.ind with | _ r => exact Quotient.sound āØ(Scheme.Modules.pullbackCongr (baseChangeSnd_Ļ_comp c Rā Ļ Ļ)).app r.M.L āŖā« ((Scheme.Modules.pullbackComp _ _).app r.M.L).symmā©) abbrev mk {B : Under (CommRingCat.of Rā)} (x : Elem c ε Rā P B) : (classFunctor c ε Rā P).obj B := Quotient.mk _ x theorem mk_surjective (B : Under (CommRingCat.of Rā)) : Function.Surjective (mk c ε Rā P (B := B)) := Quotient.mk_surjective theorem mk_eq_mk_iff {B : Under (CommRingCat.of Rā)} (x y : Elem c ε Rā P B) : mk c ε Rā P x = mk c ε Rā P y ā Nonempty (x.M.L ā y.M.L) := Quotient.eq @[simp] theorem map_mk {B B' : Under (CommRingCat.of Rā)} (Ļ : B ā¶ B') (x : Elem c ε Rā P B) : (classFunctor c ε Rā P).map Ļ (mk c ε Rā P x) = mk c ε Rā P (x.map c ε Rā P Ļ) := rfl @[simp] theorem classFunctor_obj (B : Under (CommRingCat.of Rā)) : (classFunctor c ε Rā P).obj B = Quotient (setoid c ε Rā P B) := rfl example (B : Under (CommRingCat.of Rā)) (x : (classFunctor c ε Rā P).obj B) : (classFunctor c ε Rā P).map (š B) x = x := by rw [(classFunctor c ε Rā P).map_id]; rfl def truePred : StablePred c ε Rā := āØfun _ _ => True, fun _ _ _ => trivialā© example (B : Under (CommRingCat.of Rā)) : (classFunctor c ε Rā (truePred c ε Rā)).obj B := mk c ε Rā (truePred c ε Rā) āØRigidifiedLineBundle.unit (ι S Rā B), trivialā© example {B B' : Under (CommRingCat.of Rā)} (Ļ : B ā¶ B') : (classFunctor c ε Rā (truePred c ε Rā)).map Ļ (mk c ε Rā (truePred c ε Rā) āØRigidifiedLineBundle.unit (ι S Rā B), trivialā©) = mk c ε Rā (truePred c ε Rā) āØRigidifiedLineBundle.unit (ι S Rā B'), trivialā© := by rw [map_mk, mk_eq_mk_iff] exact āØScheme.Modules.pullbackUnitIso _ā© end functor section symmRoot variable {S : Type u} [CommRing S] {A : Scheme.{u}} {f : A ā¶ Spec (CommRingCat.of S)} (L : RelativeGroupLaw S f) (š : A.Modules) (Rā : Type u) [CommRing Rā] [Algebra S Rā] def symmRootPred (B : Under (CommRingCat.of Rā)) (M : (pullback f (ι S Rā B)).Modules) : Prop := IsSymmetric (pullback.snd f (ι S Rā B)) (L.baseChange (ι S Rā B)) M ā§ LocIsoOnBase (pullback.snd f (ι S Rā B)) ((Scheme.Modules.pullback (pullback.fst f (ι S Rā B))).obj š) (M ā (Scheme.Modules.pullback (negMor (pullback.snd f (ι S Rā B)) (L.baseChange (ι S Rā B)))).obj M) theorem symmRootPred_iff (B : Under (CommRingCat.of Rā)) (M : (pullback f (ι S Rā B)).Modules) : symmRootPred L š Rā B M ā IsSymmetric (pullback.snd f (ι S Rā B)) (L.baseChange (ι S Rā B)) M ā§ LocIsoOnBase (pullback.snd f (ι S Rā B)) ((Scheme.Modules.pullback (pullback.fst f (ι S Rā B))).obj š) (M ā (Scheme.Modules.pullback (negMor (pullback.snd f (ι S Rā B)) (L.baseChange (ι S Rā B)))).obj M) := Iff.rfl abbrev symmRootStablePred (h : ā {B B' : Under (CommRingCat.of Rā)} (Ļ : B ā¶ B') (M : RigidifiedLineBundle f (L.one (š _)) (ι S Rā B)), symmRootPred L š Rā B M.L ā symmRootPred L š Rā B' (M.pullbackAlong (Ļ S Rā Ļ)).L) : StablePred f (L.one (š _)) Rā := āØsymmRootPred L š Rā, hā© end symmRoot end AlgebraicGeometry.SymmRoot end
Statements phrased using this module (6)
- Symmetric square root over B from a two-step base change
AlgebraicGeometry.SymmRoot.exists_isSymmetric_locIsoOnBase_of_symmRootPred_baseChange9 below Ā· depth 35 - Rigidified symmetric root over B after rebasing to Rā
AlgebraicGeometry.SymmRoot.exists_rigidified_symmRootPred_baseChange_of_isSymmetric_of_locIsoOnBase9 below Ā· depth 35 - Finite flat corepresentability of the symmetric-root class functor over W
GoodReductionJacobian.AbelianSchemePropertyBundle.exists_finite_faithfullyFlat_corepresents_symmRoot_classFunctor_under1,031 below Ā· depth 35 - Flat descent for the symmetric square root class functor
GoodReductionJacobian.AbelianSchemePropertyBundle.symmRoot_classFunctor_injective_and_exists_of_flat_of_surjective_typeZero116 below Ā· depth 35 - Local corepresentability of admissible rigidified bundle classes
GoodReductionJacobian.AbelianSchemePropertyBundle.exists_equiv_admClassFunctor_ringHom_natural_of_isLocalRing1,021 below Ā· depth 36 - Given one symmetric root, root and admissible class functors agree
GoodReductionJacobian.AbelianSchemePropertyBundle.exists_equiv_symmRoot_adm_classFunctor_natural27 below Ā· depth 36