Definitions/Def_AlgebraicGeometry_ModulesPullbackLocalSection.lean
Pulled-back local sections of a module sheaf
Fix a morphism of schemes \varphi \colon X \to Y, a sheaf of \mathcal{O}_Y-modules L (an object of Y.Modules) and an open U \subseteq Y. The definition pullbackLocalSection sends a section s \in \Gamma(L, U) to its image under the component at U of the unit of the adjunction Modules.pullbackPushforwardAdjunction φ evaluated at L, that is, under the map \Gamma(L,U) \to \Gamma(\varphi_*\varphi^*L, U) = \Gamma(\varphi^*L, \varphi^{-1}U); the result is thus an element of \Gamma((\mathrm{Modules.pullback}\ \varphi).\mathrm{obj}\ L,\ \varphi^{-1}U), written \varphi^* s below. A companion lemma records this description by definitional unfolding.
The remaining declarations are the elementary calculus of this operation. It is additive and preserves 0, negation, differences and finite sums indexed by a Finset; it is semilinear over the structure sheaves, \varphi^*(g \cdot s) = \varphi^{\sharp}_U(g) \cdot \varphi^* s for g \in \Gamma(Y,U), where \varphi^{\sharp}_U is the map φ.app U; and it commutes with restriction: for any inclusion i \colon V \to U of opens of Y, restricting \varphi^* s along the induced inclusion \varphi^{-1}V \subseteq \varphi^{-1}U gives \varphi^*(s|_V), with a variant stated for homOfLE of an inequality V \le U. It is natural in the module: for \theta \colon L \to L' one has \varphi^*(\theta_U s) = ((\mathrm{Modules.pullback}\ \varphi).\mathrm{map}\ \theta)_{\varphi^{-1}U}(\varphi^* s). Two lemmas compute transposes under the adjunction bijection: for g \colon \varphi^*L \to N, g_{\varphi^{-1}U}(\varphi^* s) is the value at s of the adjoint L \to \varphi_* N, and dually for a morphism k \colon L \to \varphi_* N and its transpose. The right triangle identity is recorded at the level of sections: the counit at N carries \varphi^* n back to n for n \in \Gamma(\varphi_* N, U) = \Gamma(N, \varphi^{-1}U). Finally, pullback_hom_ext is an extensionality principle: two morphisms g_1, g_2 \colon \varphi^*L \to N that agree on \varphi^* s for every open U of Y and every s \in \Gamma(L,U) are equal.
Relation to Mathlib
The scheme-theoretic module categories, the pullback functor Modules.pullback and the adjunction Modules.pullbackPushforwardAdjunction are taken from Mathlib; what is added here is the section-level operation extracted from the unit of that adjunction together with its additivity, semilinearity, restriction, naturality, transpose, triangle-identity and extensionality lemmas.
Where it is used
These lemmas form part of the basic toolkit for handling sheaves of modules on schemes in the formalisation, allowing computations with pullbacks of sheaves to be carried out on local sections rather than through the abstract adjunction.
References
- R. Hartshorne, Algebraic Geometry, Graduate Texts in Mathematics 52, Springer, 1977, Chapter II.5
- U. Görtz and T. Wedhorn, Algebraic Geometry I: Schemes, with Examples and Exercises, Vieweg+Teubner, 2010, Chapter 7
References are suggested automatically and have not been individually verified.
English text generated automatically from the Lean source; the Lean statement is authoritative.
- 109 lines
- 15 declarations
- used in the statements of 55 theorems and imported by 129 proofs
- imports 0 definition modules
Source file: Definitions/Def_AlgebraicGeometry_ModulesPullbackLocalSection.lean
Imports
- only Mathlib
Imported by
Declarations
- def
AlgebraicGeometry.Scheme.Modules.pullbackLocalSection - lemma
AlgebraicGeometry.Scheme.Modules.pullbackLocalSection_def - lemma
AlgebraicGeometry.Scheme.Modules.pullbackLocalSection_add - lemma
AlgebraicGeometry.Scheme.Modules.pullbackLocalSection_zero - lemma
AlgebraicGeometry.Scheme.Modules.pullbackLocalSection_neg - lemma
AlgebraicGeometry.Scheme.Modules.pullbackLocalSection_sub - lemma
AlgebraicGeometry.Scheme.Modules.pullbackLocalSection_sum - lemma
AlgebraicGeometry.Scheme.Modules.pullbackLocalSection_smul - lemma
AlgebraicGeometry.Scheme.Modules.map_pullbackLocalSection - lemma
AlgebraicGeometry.Scheme.Modules.map_homOfLE_pullbackLocalSection - lemma
AlgebraicGeometry.Scheme.Modules.pullbackLocalSection_app - lemma
AlgebraicGeometry.Scheme.Modules.app_pullbackLocalSection - lemma
AlgebraicGeometry.Scheme.Modules.homEquiv_symm_app_pullbackLocalSection - lemma
AlgebraicGeometry.Scheme.Modules.counit_app_pullbackLocalSection - theorem
AlgebraicGeometry.Scheme.Modules.pullback_hom_ext
Source
import Mathlib set_option autoImplicit false set_option backward.isDefEq.respectTransparency false universe u open CategoryTheory TopologicalSpace Opposite noncomputable section namespace AlgebraicGeometry.Scheme.Modules variable {X Y : Scheme.{u}} (φ : X ⟶ Y) section variable {L : Y.Modules} {U : Y.Opens} def pullbackLocalSection (s : Γ(L, U)) : Γ((Modules.pullback φ).obj L, φ ⁻¹ᵁ U) := ((Modules.pullbackPushforwardAdjunction φ).unit.app L).app U s lemma pullbackLocalSection_def (s : Γ(L, U)) : pullbackLocalSection φ s = ((Modules.pullbackPushforwardAdjunction φ).unit.app L).app U s := rfl @[simp] lemma pullbackLocalSection_add (s s' : Γ(L, U)) : pullbackLocalSection φ (s + s') = pullbackLocalSection φ s + pullbackLocalSection φ s' := map_add (((Modules.pullbackPushforwardAdjunction φ).unit.app L).app U).hom s s' @[simp] lemma pullbackLocalSection_zero : pullbackLocalSection φ (0 : Γ(L, U)) = 0 := map_zero (((Modules.pullbackPushforwardAdjunction φ).unit.app L).app U).hom @[simp] lemma pullbackLocalSection_neg (s : Γ(L, U)) : pullbackLocalSection φ (-s) = -pullbackLocalSection φ s := map_neg (((Modules.pullbackPushforwardAdjunction φ).unit.app L).app U).hom s @[simp] lemma pullbackLocalSection_sub (s s' : Γ(L, U)) : pullbackLocalSection φ (s - s') = pullbackLocalSection φ s - pullbackLocalSection φ s' := map_sub (((Modules.pullbackPushforwardAdjunction φ).unit.app L).app U).hom s s' lemma pullbackLocalSection_sum {ι : Type*} (S : Finset ι) (s : ι → Γ(L, U)) : pullbackLocalSection φ (∑ i ∈ S, s i) = ∑ i ∈ S, pullbackLocalSection φ (s i) := map_sum (((Modules.pullbackPushforwardAdjunction φ).unit.app L).app U).hom s S lemma pullbackLocalSection_smul (g : Γ(Y, U)) (s : Γ(L, U)) : pullbackLocalSection φ (g • s) = φ.app U g • pullbackLocalSection φ s := by rw [pullbackLocalSection_def, Scheme.Modules.Hom.app_smul] rfl lemma map_pullbackLocalSection {V : Y.Opens} (i : V ⟶ U) (s : Γ(L, U)) : ((Modules.pullback φ).obj L).presheaf.map ((Opens.map φ.base).map i).op (pullbackLocalSection φ s) = pullbackLocalSection φ (L.presheaf.map i.op s) := by have h := (((Modules.pullbackPushforwardAdjunction φ).unit.app L).mapPresheaf).naturality i.op exact (congrFun (congrArg (fun f => (ConcreteCategory.hom f : Γ(L, U) → Γ((Modules.pullback φ).obj L, φ ⁻¹ᵁ V))) h) s).symm lemma map_homOfLE_pullbackLocalSection {V : Y.Opens} (hVU : V ≤ U) (s : Γ(L, U)) : ((Modules.pullback φ).obj L).presheaf.map (homOfLE (show φ ⁻¹ᵁ V ≤ φ ⁻¹ᵁ U from fun _ hx => hVU hx)).op (pullbackLocalSection φ s) = pullbackLocalSection φ (L.presheaf.map (homOfLE hVU).op s) := map_pullbackLocalSection φ (homOfLE hVU) s lemma pullbackLocalSection_app {L' : Y.Modules} (θ : L ⟶ L') (s : Γ(L, U)) : pullbackLocalSection φ (θ.app U s) = ((Modules.pullback φ).map θ).app (φ ⁻¹ᵁ U) (pullbackLocalSection φ s) := by have h := congrArg (fun k => Scheme.Modules.Hom.app k U s) ((Modules.pullbackPushforwardAdjunction φ).unit.naturality θ) simp only [Functor.id_map, Functor.comp_map, Scheme.Modules.Hom.comp_app, CategoryTheory.comp_apply] at h exact h lemma app_pullbackLocalSection {N : X.Modules} (g : (Modules.pullback φ).obj L ⟶ N) (s : Γ(L, U)) : g.app (φ ⁻¹ᵁ U) (pullbackLocalSection φ s) = (((Modules.pullbackPushforwardAdjunction φ).homEquiv L N g).app U s : Γ(N, φ ⁻¹ᵁ U)) := by rw [Adjunction.homEquiv_unit] rfl lemma homEquiv_symm_app_pullbackLocalSection {N : X.Modules} (k : L ⟶ (Modules.pushforward φ).obj N) (s : Γ(L, U)) : (((Modules.pullbackPushforwardAdjunction φ).homEquiv L N).symm k).app (φ ⁻¹ᵁ U) (pullbackLocalSection φ s) = (k.app U s : Γ(N, φ ⁻¹ᵁ U)) := by rw [app_pullbackLocalSection, Equiv.apply_symm_apply] end lemma counit_app_pullbackLocalSection {N : X.Modules} {U : Y.Opens} (n : Γ((Modules.pushforward φ).obj N, U)) : ((Modules.pullbackPushforwardAdjunction φ).counit.app N).app (φ ⁻¹ᵁ U) (pullbackLocalSection φ n) = (n : Γ(N, φ ⁻¹ᵁ U)) := by have h := congrArg (fun k => Scheme.Modules.Hom.app k U n) ((Modules.pullbackPushforwardAdjunction φ).right_triangle_components N) simp only [Functor.id_obj, Functor.comp_obj, Scheme.Modules.Hom.comp_app, Scheme.Modules.Hom.id_app, CategoryTheory.comp_apply, CategoryTheory.id_apply] at h exact h theorem pullback_hom_ext {L : Y.Modules} {N : X.Modules} {g₁ g₂ : (Modules.pullback φ).obj L ⟶ N} (h : ∀ (U : Y.Opens) (s : Γ(L, U)), g₁.app (φ ⁻¹ᵁ U) (pullbackLocalSection φ s) = g₂.app (φ ⁻¹ᵁ U) (pullbackLocalSection φ s)) : g₁ = g₂ := by apply ((Modules.pullbackPushforwardAdjunction φ).homEquiv L N).injective apply Scheme.Modules.hom_ext intro U ext s have h₁ := app_pullbackLocalSection φ g₁ s have h₂ := app_pullbackLocalSection φ g₂ s rw [h U s] at h₁ exact h₁.symm.trans h₂ end AlgebraicGeometry.Scheme.Modules end
Statements phrased using this module (55)
- Frames pull back to frames along a morphism of schemes
AlgebraicGeometry.Scheme.Modules.IsFrameOn.pullbackLocalSection6 below · depth 14 - Pullback of a glued module is the glue of the pulled-back cocycle
AlgebraicGeometry.Scheme.Modules.exists_pullback_glueOfCocycle_iso10 below · depth 14 - Pullback of a tensor of sections is the tensor of pullbacks
AlgebraicGeometry.Scheme.Modules.pullbackTensorObjIso_hom_app_pullbackLocalSection4 below · depth 15 - Pull-back of the unit section is the unit section
AlgebraicGeometry.Scheme.Modules.pullbackTensorUnitObjIso_hom_app_pullbackLocalSection_unitSection4 below · depth 15 - Triviality of a pullback twist missing the ideal supports
AlgebraicGeometry.Scheme.Modules.nonempty_pullback_tensor_invModule_pow_tensor_module_iso_of_forall_notMem_support28 below · depth 18 - Trivialisation of φ^*mathcal O_Y on pulled-back functions
AlgebraicGeometry.Scheme.Modules.pullbackUnitIso_hom_app_pullbackLocalSection_toUnitSection0 below · depth 18 - Frames and transition data pull back along stage maps
AlgebraicGeometry.Scheme.TwoAffineOpenCover.exists_isFrameOn_pullback_stage_of_map_eq_smul6 below · depth 19 - Quasi-projective fine moduli of framed polarised abelian schemes
AlgebraicGeometry.FramedPolarisedAbelianScheme.exists_isFineModuli_quasiProjective_of_trunk1,454 below · depth 29 - Openness of the smooth, irreducible, g-dimensional fibre locus
AlgebraicGeometry.isOpen_setOf_smooth_irreducibleSpace_geometricFibre_of_isProper_of_flat141 below · depth 29 - Finiteness and base change for L^{⊗ 4} on fake elliptic curves
CerednikDrinfeld.QM.FakeEllipticCurve.finite_projective_sections_and_exists_linearEquiv_tensorProduct_pullback_tensor_four_of_isCanonicalPol_of_isNoetherianRing1,074 below · depth 29 - Very ampleness by sections from geometric fibres
GoodReductionJacobian.AbelianSchemePropertyBundle.closedImmersionBySections_of_forall_geometricFibre_of_finite_of_forall_isPullback24 below · depth 29 - Open locus where pulled-back sections form a basis
GoodReductionJacobian.AbelianSchemePropertyBundle.exists_isOpen_forall_isSectionBasisOn_pullback_iff1,094 below · depth 29 - Openness of the locus of relative group laws on geometric fibres
GoodReductionJacobian.AbelianSchemePropertyBundle.isOpen_setOf_nonempty_relativeGroupLaw_geometricFibre325 below · depth 29 - Finite projective sections and base change of section bases
GoodReductionJacobian.AbelianSchemePropertyBundle.sections_finite_projective_and_isSectionBasisOn_pullback_type01,094 below · depth 29 - Torsion condition on a section cut out by an ideal
GoodReductionJacobian.RelativeGroupLaw.exists_ideal_nsmul_eq_one_iff_le_ker0 below · depth 29 - Full-level locus for n-torsion sections is clopen
GoodReductionJacobian.RelativeGroupLaw.isClopen_setOf_finComb_injective_and_forall_torsion_exists17 below · depth 29 - Embedded moduli of framed polarised abelian schemes over a Noetherian base
AlgebraicGeometry.FramedPolarisedAbelianScheme.exists_isImmersion_proj_represents_embedded_of_isNoetherianRing1,449 below · depth 30 - Framed rigidity: frame-compatible isomorphisms of framed polarised abelian schemes
AlgebraicGeometry.FramedPolarisedAbelianScheme.iso_of_iso_comp_toProj_eq_of_one_comp_toProj_eq_of_forall_comp_toProj_eq64 below · depth 30 - Fibrewise criterion: global sections of an invertible module are frames
AlgebraicGeometry.Scheme.Modules.IsInvertible.exists_isFrameOn_of_forall_geometricFibre_exists_isFrameOn_of_forall_eq_sum_smul_pullbackLocalSection5 below · depth 30 - Some presenting section frames M near every point
AlgebraicGeometry.Scheme.Modules.ProjPresentation.exists_mem_isFrameOn0 below · depth 30 - Closed immersion from a presentation by spanning pulled-back sections
AlgebraicGeometry.Scheme.Modules.ProjPresentation.isClosedImmersion_toProj_of_closedImmersionBySections_of_forall_eq_sum_smul_pullbackLocalSection5 below · depth 30 - Transport of sections base change to any cartesian square
AlgebraicGeometry.Scheme.Modules.exists_linearEquiv_tensorProduct_sections_pullback_of_isPullback0 below · depth 30 - Cohomology and base change in degree zero
AlgebraicGeometry.Scheme.Modules.finite_projective_sections_and_exists_linearEquiv_tensorProduct_pullbackLocalSection_of_forall_subsingleton_HSucc86 below · depth 30 - Pulled-back generators span sections after base change
AlgebraicGeometry.Scheme.Modules.forall_exists_eq_sum_smul_pullbackLocalSection_of_span_eq_top_of_linearEquiv_tensorProduct0 below · depth 30 - Noetherian descent of a smooth proper projective scheme with section
AlgebraicGeometry.exists_fg_subalgebra_isPullback_smooth_isProper_of_isClosedImmersion_proj104 below · depth 30 - Base change for global sections of an ample sheaf
GoodReductionJacobian.AbelianSchemePropertyBundle.exists_linearEquiv_tensorProduct_sections_pullback_type01,091 below · depth 30 - Finite projective sections of an invertible module on an abelian scheme
GoodReductionJacobian.AbelianSchemePropertyBundle.finite_and_projective_sections_of_closedImmersionBySections_type01,090 below · depth 30 - Openness of the relative group law locus over a Noetherian base
GoodReductionJacobian.AbelianSchemePropertyBundle.isOpen_setOf_nonempty_relativeGroupLaw_geometricFibre_of_isNoetherianRing302 below · depth 30 - Clopen independence locus for n-torsion sections
GoodReductionJacobian.RelativeGroupLaw.isClopen_setOf_forall_finComb_injective_of_isUnit15 below · depth 30 - Clopenness of the locus where given n-torsion sections span
GoodReductionJacobian.RelativeGroupLaw.isClopen_setOf_forall_torsion_exists_finComb_eq_of_isUnit15 below · depth 30 - Group law on a geometric fibre is independent of the geometric point
GoodReductionJacobian.nonempty_relativeGroupLaw_geometricFibre_of_nonempty_of_ker_eq4 below · depth 30 - Descent of tensor base change of sections along a cartesian comparison
AlgebraicGeometry.Scheme.Modules.exists_linearEquiv_tensorProduct_sections_pullback_of_forall_isPullback_of_iso0 below · depth 31 - Basis condition transfers along compatible P^N-presentations
AlgebraicGeometry.Scheme.Modules.isSectionBasisOn_pullback_comp_iff_of_toProj_comp_eq12 below · depth 31 - Section bases descend through pullback along the identity
AlgebraicGeometry.Scheme.Modules.isSectionBasis_of_isSectionBasisOn_pullback_id0 below · depth 31 - Pull-back comparison isomorphism on local sections
AlgebraicGeometry.Scheme.Modules.pullbackComp_hom_app_pullbackLocalSection0 below · depth 31 - Descent of a smooth proper connected-fibred morphism to a finitely generated base
AlgebraicGeometry.exists_fg_subalgebra_isPullback_smooth_isProper_geometricallyConnected100 below · depth 31 - Spreading out a smooth proper projective scheme with section
AlgebraicGeometry.exists_fg_subalgebra_isPullback_smooth_isProper_of_isClosedImmersion_proj_of_isPullback8 below · depth 31 - Base-change compatibility of the level-n basis locus
GoodReductionJacobian.RelativeGroupLaw.setOf_finComb_injective_and_forall_torsion_exists_baseChange_eq_preimage0 below · depth 31 - Spreading a relative group law to a basic open neighbourhood
GoodReductionJacobian.exists_not_mem_forall_nonempty_relativeGroupLaw_geometricFibre_of_not_mem301 below · depth 31 - Pulled-back frame of top differentials freely generates on charts
AlgebraicGeometry.Scheme.Hom.bijective_smul_topFormMap_of_isFrameOn_of_isPullback21 below · depth 32 - Uniqueness of pullback maps on top differentials via affine charts
AlgebraicGeometry.Scheme.Hom.eq_of_map_pullbackLocalSection_topToSections_eq5 below · depth 32 - Chain rule for pull-back maps on top differentials
AlgebraicGeometry.Scheme.Hom.eq_pullbackComp_inv_app_comp_map_comp_of_map_pullbackLocalSection_topToSections_eq8 below · depth 32 - Pullback morphism on top differentials, computed on affine charts
AlgebraicGeometry.Scheme.Hom.exists_hom_pullback_topDifferentials_map_pullbackLocalSection_topToSections_eq1 below · depth 32 - Base change isomorphism for top relative differentials, smooth case
AlgebraicGeometry.Scheme.Hom.isIso_of_map_pullbackLocalSection_topToSections_eq_of_isPullback_of_smoothOfRelativeDimension15 below · depth 32 - Sections over U as global sections of ι^*M, with frames
AlgebraicGeometry.Scheme.Modules.bijective_pullbackLocalSection_opensInclusion_and_isFrameOn_iff8 below · depth 32 - Finite projectivity and base change for L^{⊗ 3}
CerednikDrinfeld.QM.FakeEllipticCurve.finite_projective_sections_and_exists_linearEquiv_tensorProduct_pullback_tensor_three_of_isCanonicalPol_of_isNoetherianRing1,074 below · depth 32 - Relative group law over the completed local ring at s
GoodReductionJacobian.exists_relativeGroupLaw_baseChange_adicCompletion_one_eq_of_forall_nonempty_relativeGroupLaw_geometricFibre297 below · depth 32 - Frames pull back to frames under pullback of modules
AlgebraicGeometry.Scheme.Modules.IsFrameOn.pullbackLocalSection_monoidalV22 below · depth 33 - Pullback of a tensor product of sections
AlgebraicGeometry.Scheme.Modules.pullbackTensorObjIso_hom_app_pullbackLocalSection_monoidalV20 below · depth 33 - Pullback of a function under the trivialisation φ^*mathcal O_Y≅mathcal O_X
AlgebraicGeometry.Scheme.Modules.pullbackUnitIso_hom_app_pullbackLocalSection_toUnitSection_monoidalV20 below · depth 33 - Pullback of the unit section is the unit section
AlgebraicGeometry.Scheme.Modules.pullbackTensorUnitObjIso_hom_app_pullbackLocalSection_unitSection_monoidalV20 below · depth 34 - Affine-local base change of sections of an invertible pullback
AlgebraicGeometry.Scheme.Modules.IsInvertible.exists_baseChange_sections_linearEquiv_pullback_of_le6 below · depth 36 - Lifting sections along a small thickening of a local base
AlgebraicGeometry.Scheme.Modules.exists_pullbackLocalSection_eq_of_ker_mul_maximalIdeal_eq_bot_of_forall_subsingleton_HSucc36 below · depth 39 - Čech vanishing transported to the chosen fibre product
AlgebraicGeometry.OModulePresheaf.subsingleton_HSucc_ofModules_pullback_fst_of_isPullback16 below · depth 40 - Surjectivity of pullback on sections transports along isomorphisms
AlgebraicGeometry.Scheme.Modules.exists_pullbackLocalSection_eq_of_iso_hom_comp_eq1 below · depth 40