Definitions/Def_AlgebraicGeometry_RigidifiedLineBundleOfInvertible.lean
Canonical rigidification of invertible modules over a base section
Fix a commutative ring R, a scheme C with a structure morphism c\colon C\to\operatorname{Spec}R, a section \varepsilon of c over \operatorname{Spec}R, and R-schemes T, T'. Write q_T= pullback.snd c t for the projection C\times_R T\to T and \varepsilon_T= rigSection c t ε for the induced section T\to C\times_R T; rigSection_snd records \varepsilon_T followed by q_T is \mathrm{id}_T, and baseChangeSnd_snd records that 1_C\times\psi followed by q_T equals q_{T'} followed by \psi for a morphism \psi\colon T'\to T over \operatorname{Spec}R. The abbreviation rigCorrection ε t L is the dual (\varepsilon_T^{*}L)^{\vee}, a module on T, and rigSectionPullbackSndPullbackIso is the resulting isomorphism \varepsilon_T^{*}q_T^{*}D\cong D. The main definition, RigidifiedLineBundle.ofInvertible, sends an invertible module L on C\times_R T (invertibility in the sense of the project predicate: every point has an open neighbourhood over which the restriction is isomorphic to the unit module) to the rigidified line bundle whose underlying module is L\otimes q_T^{*}(\varepsilon_T^{*}L)^{\vee}, with invertibility obtained from stability of the predicate under tensor, pullback and dual, and with the rigidification datum the existence of an isomorphism of its \varepsilon_T-pullback with \mathcal O_T. Two lemmas identify the underlying module with Scheme.Modules.rigidify applied to \varepsilon_T,q_T,L and with the displayed tensor product. The remaining statements assert, as mere existence of isomorphisms of underlying modules (which is the equivalence relation defining classes in the rigidified relative Picard functor, not an equality of rigidified bundles): compatibility with isomorphisms L\cong L'; that for an already rigidified M one has \mathtt{ofInvertible}(M.L)\cong M.L; multiplicativity in L with respect to the tensor product of rigidified bundles; absorption of pullbacks from the base, \mathtt{ofInvertible}(q_T^{*}N\otimes L)\cong\mathtt{ofInvertible}(L) for N invertible on T; and compatibility with base change along \psi. Auxiliary monoidal lemmas give uniqueness of tensor inverses, the middle-four interchange (W\otimes X)\otimes(Y\otimes Z)\cong(W\otimes Y)\otimes(X\otimes Z), and \mathcal O^{\vee}\cong\mathcal O.
Relation to Mathlib
Mathlib has no relative Picard functor, no rigidified line bundles and no invertibility predicate for sheaves of modules on a scheme; these, together with the monoidal and monoidal-closed structure on X.Modules used for tensor and dual, are the project's own, built on Mathlib's sheaves of modules and pullback functors.
Where it is used
These constructions provide the retraction from line bundles on C\times_R T onto rigidified classes, so that a bundle given only up to isomorphism (for instance \mathcal O(D-r\varepsilon_T) for a relative effective divisor) determines a point of the rigidified relative Picard functor. This is the input to representability of that functor and hence to the Jacobian with its relative group law as used for Jacobians of modular curves.
References
- S. Bosch, W. Lütkebohmert and M. Raynaud, Néron Models, Ergebnisse der Mathematik und ihrer Grenzgebiete 21, Springer, 1990, §8.1
- S. L. Kleiman, The Picard scheme, in: Fundamental Algebraic Geometry: Grothendieck's FGA Explained, Mathematical Surveys and Monographs 123, American Mathematical Society, 2005
References are suggested automatically and have not been individually verified.
English text generated automatically from the Lean source; the Lean statement is authoritative.
- 142 lines
- 15 declarations
- used in the statements of 37 theorems and imported by 93 proofs
- imports 5 definition modules, and the statements of 4 theorems
Source file: Definitions/Def_AlgebraicGeometry_RigidifiedLineBundleOfInvertible.lean
Imports
Def_AlgebraicGeometry_RelativePicardFunctorDef_AlgebraicGeometry_RelSubPicGroupDef_SheafOfModules_MonoidalDef_AlgebraicGeometry_ModulesPullbackMonoidalDef_AlgebraicGeometry_ModulesRigidify
Theorems imported by this definition module
Imported by
- no other definition module
Declarations
- def
AlgebraicGeometry.Scheme.Modules.isoOfTensorIsoUnit - def
AlgebraicGeometry.Scheme.Modules.tensorTensorTensorComm - theorem
AlgebraicGeometry.Scheme.Modules.nonempty_dual_tensorUnit_iso - theorem
AlgebraicGeometry.RelPicard.rigSection_snd - theorem
AlgebraicGeometry.RelPicard.baseChangeSnd_snd - abbrev
AlgebraicGeometry.RelPicard.rigCorrection - def
AlgebraicGeometry.RelPicard.rigSectionPullbackSndPullbackIso - def
AlgebraicGeometry.RelPicard.RigidifiedLineBundle.ofInvertible - theorem
AlgebraicGeometry.RelPicard.RigidifiedLineBundle.ofInvertible_L - theorem
AlgebraicGeometry.RelPicard.RigidifiedLineBundle.ofInvertible_L_eq_tensor - theorem
AlgebraicGeometry.RelPicard.RigidifiedLineBundle.nonempty_ofInvertible_iso_of_iso - theorem
AlgebraicGeometry.RelPicard.RigidifiedLineBundle.nonempty_ofInvertible_iso_of_rigidified - theorem
AlgebraicGeometry.RelPicard.RigidifiedLineBundle.nonempty_ofInvertible_tensor_iso - theorem
AlgebraicGeometry.RelPicard.RigidifiedLineBundle.nonempty_ofInvertible_pullbackSnd_tensor_iso - theorem
AlgebraicGeometry.RelPicard.RigidifiedLineBundle.nonempty_ofInvertible_pullbackAlong_iso
Source
import Mathlib import Definitions.Def_AlgebraicGeometry_RelativePicardFunctor import Definitions.Def_AlgebraicGeometry_RelSubPicGroup import Definitions.Def_SheafOfModules_Monoidal import Definitions.Def_AlgebraicGeometry_ModulesPullbackMonoidal import Definitions.Def_AlgebraicGeometry_ModulesRigidify import Theorems.Thm_AlgebraicGeometry_Scheme_Modules_IsInvertible_dual import Theorems.Thm_AlgebraicGeometry_Scheme_Modules_IsInvertible_pullback_dual import Theorems.Thm_AlgebraicGeometry_Scheme_Modules_IsInvertible_dual_tensor import Theorems.Thm_AlgebraicGeometry_Scheme_Modules_IsInvertible_tensor set_option autoImplicit false universe u open CategoryTheory CategoryTheory.Limits MonoidalCategory AlgebraicGeometry AlgebraicGeometry.RelPicard NeronModelInfra GoodReductionJacobian noncomputable section namespace AlgebraicGeometry namespace Scheme.Modules variable {V : Scheme.{u}} def isoOfTensorIsoUnit (X Y Y' : V.Modules) (i : X ⊗ Y ≅ 𝟙_ _) (i' : X ⊗ Y' ≅ 𝟙_ _) : Y ≅ Y' := (λ_ Y).symm ≪≫ (i'.symm ⊗ᵢ Iso.refl Y) ≪≫ ((β_ X Y') ⊗ᵢ Iso.refl Y) ≪≫ α_ Y' X Y ≪≫ (Iso.refl Y' ⊗ᵢ i) ≪≫ ρ_ Y' def tensorTensorTensorComm (W X Y Z : V.Modules) : (W ⊗ X) ⊗ (Y ⊗ Z) ≅ (W ⊗ Y) ⊗ (X ⊗ Z) := α_ _ _ _ ≪≫ (Iso.refl W ⊗ᵢ ((α_ _ _ _).symm ≪≫ (β_ X Y ⊗ᵢ Iso.refl Z) ≪≫ α_ _ _ _)) ≪≫ (α_ _ _ _).symm theorem nonempty_dual_tensorUnit_iso (V : Scheme.{u}) : Nonempty (dual (𝟙_ V.Modules) ≅ 𝟙_ V.Modules) := ⟨(λ_ _).symm ≪≫ (isInvertible_unit V).dual.2.some⟩ end Scheme.Modules namespace RelPicard variable {R : Type u} [CommRing R] {C : Scheme.{u}} {c : C ⟶ Spec (CommRingCat.of R)} {ε : SchemeHomOver (𝟙 (Spec (CommRingCat.of R))) c} {T T' : Scheme.{u}} {t : T ⟶ Spec (CommRingCat.of R)} {t' : T' ⟶ Spec (CommRingCat.of R)} @[reassoc (attr := simp)] theorem rigSection_snd (ε : SchemeHomOver (𝟙 (Spec (CommRingCat.of R))) c) (t : T ⟶ Spec (CommRingCat.of R)) : rigSection c t ε ≫ pullback.snd c t = 𝟙 T := pullback.lift_snd _ _ _ @[reassoc] theorem baseChangeSnd_snd (ψ : SchemeHomOver t' t) : baseChangeSnd c ψ ≫ pullback.snd c t = pullback.snd c t' ≫ ψ.1 := pullback.lift_snd _ _ _ abbrev rigCorrection (ε : SchemeHomOver (𝟙 (Spec (CommRingCat.of R))) c) (t : T ⟶ Spec (CommRingCat.of R)) (L : (Limits.pullback c t).Modules) : T.Modules := Scheme.Modules.dual ((Scheme.Modules.pullback (rigSection c t ε)).obj L) def rigSectionPullbackSndPullbackIso (ε : SchemeHomOver (𝟙 (Spec (CommRingCat.of R))) c) (t : T ⟶ Spec (CommRingCat.of R)) (D : T.Modules) : (Scheme.Modules.pullback (rigSection c t ε)).obj ((Scheme.Modules.pullback (pullback.snd c t)).obj D) ≅ D := (Scheme.Modules.pullbackComp _ _).app D ≪≫ (Scheme.Modules.pullbackCongr (rigSection_snd ε t)).app D ≪≫ (Scheme.Modules.pullbackId _).app D def RigidifiedLineBundle.ofInvertible (L : (Limits.pullback c t).Modules) (hL : Scheme.Modules.IsInvertible L) : RigidifiedLineBundle c ε t where L := Scheme.Modules.rigidify (rigSection c t ε) (pullback.snd c t) L isInvertible := hL.tensor (((hL.pullback _).dual).1.pullback _) rigidified := ⟨Scheme.Modules.pullbackTensorObjIso _ _ _ ≪≫ (Iso.refl _ ⊗ᵢ rigSectionPullbackSndPullbackIso ε t _) ≪≫ (hL.pullback _).dual.2.some⟩ @[simp] theorem RigidifiedLineBundle.ofInvertible_L (L : (Limits.pullback c t).Modules) (hL : Scheme.Modules.IsInvertible L) : (RigidifiedLineBundle.ofInvertible (ε := ε) L hL).L = Scheme.Modules.rigidify (rigSection c t ε) (pullback.snd c t) L := rfl theorem RigidifiedLineBundle.ofInvertible_L_eq_tensor (L : (Limits.pullback c t).Modules) (hL : Scheme.Modules.IsInvertible L) : (RigidifiedLineBundle.ofInvertible (ε := ε) L hL).L = L ⊗ (Scheme.Modules.pullback (pullback.snd c t)).obj (rigCorrection ε t L) := rfl namespace RigidifiedLineBundle theorem nonempty_ofInvertible_iso_of_iso {L L' : (Limits.pullback c t).Modules} (hL : Scheme.Modules.IsInvertible L) (hL' : Scheme.Modules.IsInvertible L') (e : L ≅ L') : Nonempty ((ofInvertible (ε := ε) L hL).L ≅ (ofInvertible (ε := ε) L' hL').L) := by exact ⟨Scheme.Modules.rigidifyMapIso _ _ e⟩ theorem nonempty_ofInvertible_iso_of_rigidified (M : RigidifiedLineBundle c ε t) : Nonempty ((ofInvertible (ε := ε) M.L M.isInvertible).L ≅ M.L) := by let d := Scheme.Modules.dualMapIso M.rigidified.some obtain ⟨u⟩ := Scheme.Modules.nonempty_dual_tensorUnit_iso T exact ⟨(Iso.refl _ ⊗ᵢ ((Scheme.Modules.pullback _).mapIso (d ≪≫ u) ≪≫ Scheme.Modules.pullbackTensorUnitObjIso _)) ≪≫ ρ_ M.L⟩ theorem nonempty_ofInvertible_tensor_iso {L L' : (Limits.pullback c t).Modules} (hL : Scheme.Modules.IsInvertible L) (hL' : Scheme.Modules.IsInvertible L') : Nonempty ((ofInvertible (ε := ε) (L ⊗ L') (hL.tensor hL')).L ≅ ((ofInvertible (ε := ε) L hL).tensor (ofInvertible (ε := ε) L' hL')).L) := by have hεL := hL.pullback (rigSection c t ε) have hεL' := hL'.pullback (rigSection c t ε) let d₁ := Scheme.Modules.dualMapIso (Scheme.Modules.pullbackTensorObjIso (rigSection c t ε) L L') obtain ⟨d₂⟩ := hεL.dual_tensor hεL' refine ⟨(Iso.refl _ ⊗ᵢ ((Scheme.Modules.pullback _).mapIso (d₁ ≪≫ d₂) ≪≫ Scheme.Modules.pullbackTensorObjIso _ _ _)) ≪≫ Scheme.Modules.tensorTensorTensorComm _ _ _ _⟩ theorem nonempty_ofInvertible_pullbackSnd_tensor_iso {N : T.Modules} (hN : Scheme.Modules.IsInvertible N) {L : (Limits.pullback c t).Modules} (hL : Scheme.Modules.IsInvertible L) : Nonempty ((ofInvertible (ε := ε) ((Scheme.Modules.pullback (pullback.snd c t)).obj N ⊗ L) ((hN.pullback _).tensor hL)).L ≅ (ofInvertible (ε := ε) L hL).L) := by have hεL := hL.pullback (rigSection c t ε) let d₁ := Scheme.Modules.dualMapIso (Scheme.Modules.pullbackTensorObjIso (rigSection c t ε) _ L ≪≫ (rigSectionPullbackSndPullbackIso ε t N ⊗ᵢ Iso.refl _)) obtain ⟨d₂⟩ := hN.dual_tensor hεL obtain ⟨p⟩ := hN.dual.2 refine ⟨(Iso.refl _ ⊗ᵢ ((Scheme.Modules.pullback _).mapIso (d₁ ≪≫ d₂) ≪≫ Scheme.Modules.pullbackTensorObjIso _ _ _)) ≪≫ Scheme.Modules.tensorTensorTensorComm _ _ _ _ ≪≫ (((Scheme.Modules.pullbackTensorObjIso _ _ _).symm ≪≫ (Scheme.Modules.pullback _).mapIso p ≪≫ Scheme.Modules.pullbackTensorUnitObjIso _) ⊗ᵢ Iso.refl _) ≪≫ λ_ _⟩ theorem nonempty_ofInvertible_pullbackAlong_iso (ψ : SchemeHomOver t' t) {L : (Limits.pullback c t).Modules} (hL : Scheme.Modules.IsInvertible L) : Nonempty (((ofInvertible (ε := ε) L hL).pullbackAlong ψ).L ≅ (ofInvertible (ε := ε) ((Scheme.Modules.pullback (baseChangeSnd c ψ)).obj L) (hL.pullback _)).L) := by have hεL := hL.pullback (rigSection c t ε) obtain ⟨d₁⟩ := hεL.pullback_dual ψ.1 let d₂ := Scheme.Modules.dualMapIso ((Scheme.Modules.pullbackComp ψ.1 (rigSection c t ε)).app L ≪≫ (Scheme.Modules.pullbackCongr (rigSection_baseChangeSnd c ε ψ).symm).app L ≪≫ ((Scheme.Modules.pullbackComp _ _).app L).symm) refine ⟨Scheme.Modules.pullbackTensorObjIso _ _ _ ≪≫ (Iso.refl _ ⊗ᵢ ?_)⟩ exact (Scheme.Modules.pullbackComp _ _).app _ ≪≫ (Scheme.Modules.pullbackCongr (baseChangeSnd_snd ψ)).app _ ≪≫ ((Scheme.Modules.pullbackComp _ _).app _).symm ≪≫ (Scheme.Modules.pullback _).mapIso (d₁ ≪≫ d₂) end RigidifiedLineBundle end RelPicard end AlgebraicGeometry end
Statements phrased using this module (37)
- Norm–pullback endomorphism of the relative Pic⁰ over a DVR
AlgebraicGeometry.RelPicard.RepresentsRelSubPic.exists_hom_classifies_norm_pullback_poincare_of_twoGluedCurves_of_mem_of_ringKrullDim_le_one341 below · depth 13 - Pullback along a non-pointed curve morphism induces a Pic⁰-homomorphism
AlgebraicGeometry.RelPicard.RepresentsRelSubPic.exists_hom_classifies_rigidify_pullback_curveChange3 below · depth 13 - Norm of an invertible module along a finite flat morphism
AlgebraicGeometry.Scheme.Modules.IsInvertible.normModule29 below · depth 13 - Multiplicativity of the norm of invertible modules
AlgebraicGeometry.Scheme.Modules.nonempty_normModule_tensor_iso35 below · depth 13 - Norm of the unit module along a finite flat map
AlgebraicGeometry.Scheme.Modules.nonempty_normModule_unit_iso29 below · depth 13 - Base change for the norm of an invertible module
AlgebraicGeometry.Scheme.Modules.nonempty_pullback_normModule_iso55 below · depth 13 - Degeneracy morphisms of relative Pic⁰ as norm maps
ModularCurve.XHDRModelAtP.exists_degeneracyHom_classifies_normModule78 below · depth 13 - Norms preserve fibrewise algebraic triviality of line bundles
AlgebraicGeometry.RelPicard.FibrewiseAlgEquivZero.ofInvertible_normModule_curveChange63 below · depth 14 - Norm of the Poincaré bundle is fibrewise algebraically trivial
AlgebraicGeometry.RelPicard.RepresentsRelSubPic.fibrewiseAlgEquivZero_ofInvertible_norm_pullback_poincare_of_twoGluedCurves_of_mem_of_ringKrullDim_le_one335 below · depth 14 - Restriction morphism classifies the re-rigidified pullback bundle
AlgebraicGeometry.RelPicard.RepresentsRelSubPic.nonempty_poincare_pullbackAlong_schemeHomOverComp_pullbackHom_iso_rigidify1 below · depth 14 - Primitivity of the rigidified norm of the Poincaré bundle
AlgebraicGeometry.RelPicard.RepresentsRelSubPic.nonempty_pullbackAlong_mul_iso_tensor_ofInvertible_norm_pullback_poincare10 below · depth 14 - Norm of the pulled-back Poincaré bundle is trivial along the zero section
AlgebraicGeometry.RelPicard.RepresentsRelSubPic.nonempty_pullback_zeroSection_norm_pullback_poincare_iso_unit_of_mem_of_ringKrullDim_le_one73 below · depth 14 - Determinant norm over a flat open locus preserves Pic⁰
AlgebraicGeometry.RelPicard.IsAlgEquivZero.pullback_ofInvertible_of_iso_normModule_morphismRestrict63 below · depth 15 - Norm transform endomorphism realises T_q on ℚ̄-points
ModularCurve.heckeOperatorBar_points_eq_comp_of_transform359 below · depth 15 - Finite flat locus of π₂ in codimension ≤ 1
ModularCurve.DRModelPackageLevel.exists_opens_flat_morphismRestrict_heckeDegeneracy_and_finrank_eq_and_mem_of_ringKrullDim_le_one2 below · depth 16 - Norm of the pulled-back Poincaré bundle is fibrewise Pic⁰
ModularCurve.DRModelPackageLevel.fibrewiseAlgEquivZero_ofInvertible_norm_pullback_poincare530 below · depth 16 - Primitivity of the normed Poincaré bundle on T-points
ModularCurve.DRModelPackageLevel.nonempty_pullbackAlong_mul_iso_tensor_ofInvertible_norm_pullback_poincare10 below · depth 16 - Triviality along the zero section of the normed Poincaré bundle
ModularCurve.DRModelPackageLevel.nonempty_pullbackAlong_zeroSection_ofInvertible_norm_pullback_poincare_iso_unit73 below · depth 16 - Hecke operator T_q on J₀(p)(ℚ̄) realised by φ_η
ModularCurve.heckeOperatorBar_points_eq_comp_of_transform_rat359 below · depth 16 - Characteristic-p fibres of the rigidified bundle lie in Pic⁰
ModularCurve.DRModelPackageLevel.isAlgEquivZero_fibre_ofInvertible_of_pullback_zeroSection_iso_unit_of_charP481 below · depth 17 - Over a field-valued point the rigidification recovers L
AlgebraicGeometry.RelPicard.RigidifiedLineBundle.nonempty_ofInvertible_L_iso_of_field5 below · depth 18 - Composing semilinear Picard transport with an automorphism transport
AlgebraicGeometry.RelPicard.RepresentsRelSubPic.classifies_rigidify_pullback_map_comp_of_classifies_pullback_curveChange_inv_of_classifies_rigidify_pullback_map11 below · depth 23 - Semilinear transport of rigidified Pic⁰ along a base automorphism
AlgebraicGeometry.RelPicard.RepresentsRelSubPic.exists_hom_classifies_rigidify_pullback_map_of_comp_eq_comp2 below · depth 23 - Compatibility of ν with the Picard transports of W and α
AlgebraicGeometry.RelPicard.RepresentsRelSubPic.postComp_eq_postComp_of_rigidify_pullback_curveChange_of_transport_of_hom_comp_eq5 below · depth 23 - Correspondence-induced endomorphism of the representing object of relative Pic⁰
AlgebraicGeometry.RelPicard.RepresentsRelSubPic.exists_hom_classifies_rigidify_normModule_pullback_curveChange66 below · depth 24 - Norm of a pullback line bundle is a pullback
AlgebraicGeometry.Scheme.Modules.exists_isInvertible_normModule_pullback_pullback_iso_pullback34 below · depth 24 - Hecke endomorphism T_q of the relative Jacobian, with moduli description
ModularCurve.exists_heckeEndomorphism_relJacobian_moduli_of_ratCurveModel591 below · depth 24 - Hecke adjunction for the integral Serre pairing, sectional charts
ModularCurve.serrePairingInt_deformationClass_heckeGen_eq_of_isCompletionAlong_of_res_eq_heckeDiffBar365 below · depth 24 - Norm–pull-back endomorphism acts by trace on Čech H¹
AlgebraicGeometry.RelPicard.IsDeformationClassMap.exists_cechH1ToH1_germ_eq_traceAlong_of_classifies_normModule_pullback_of_mono129 below · depth 25 - Degeneracy roof at the generic fibre: function-field Hecke correspondence
ModularCurve.exists_functionField_degeneracyRoof_kaehlerToFunctionField_eq_correspondence_of_res_eq_heckeDiffBar208 below · depth 25 - Tangent action of a norm-pull-back endomorphism over a field
AlgebraicGeometry.RelPicard.IsDeformationClassMap.exists_cechH1ToH1_germ_eq_traceAlong_of_classifies_normModule_pullback_of_field74 below · depth 26 - Moduli description of an endomorphism transported to the base change
AlgebraicGeometry.RelPicard.RepresentsRelSubPic.nonempty_poincare_pullbackAlong_iso_rigidify_normModule_baseChange58 below · depth 26 - Degeneracy roof at q over the generic fibre
ModularCurve.exists_functionField_degeneracyRoof_lift_of_ratCurveModel4 below · depth 26 - Residue package for the two legs of the T_q degeneracy roof
ModularCurve.functionField_residuePackage_degeneracyRoof_of_finiteAlong85 below · depth 26 - Generic-fibre degeneracy roof for Hecke action on differentials
ModularCurve.kaehlerToFunctionField_eq_correspondence_degeneracyRoof_of_res_eq_heckeDiffBar161 below · depth 26 - Points over A: θ-twist equals composition with N
ModularCurve.JHNeronObjectAtP.baseChangePointOfBase_pts_ofAlgAut_smul_eq_comp_of_classifies_rigidify_pullback_curveChange_baseChange_of_abelJacobi158 below · depth 35 - Model automorphisms act on J_H-points via θ
ModularCurve.JHNeronObjectAtP.pts_ofAlgAut_smul_eq_pts_comp_of_classifies_rigidify_pullback_curveChange_of_abelJacobi158 below · depth 35