OAI/AlgebraicGeometry/SurfaceCones/PushforwardRestrictionNatural.lean
68 declarations, 0 contain sorry, 0 declared as axioms
Finite presentation of the associated sheaf of a finite module over a Noetherian ring.
- def
OAI.CoherentBaseChange.pushforwardRestrictNatIsoline 10Source documentation
The open basechange comparison is natural in the module sheaf.
def pushforwardRestrictNatIso {X Y : Scheme.{0}} (f : X ⟶ Y) (U : Y.Opens) : pushforward f ⋙ restrictFunctor U.ι ≅ restrictFunctor (f ⁻¹ᵁ U).ι ⋙ pushforward (f ∣_ U) := by … - lemma
OAI.CoherentGlobal.exact_pushforward_isoline 33 - lemma
OAI.CoherentGlobal.exact_pushforward_affineline 43Source documentation
Exactness of affine pushforward on coherent sheaves, for affine schemes not assumed to be definitionally spectra.
lemma exact_pushforward_affine {X Y : Scheme.{0}} [IsAffine X] [IsAffine Y] [IsLocallyNoetherian Y] (f : X ⟶ Y) [IsFinite f] (S : ShortComplex X.Modules) [S.X₁.IsFinitePresentation] [S.X₂.IsFinitePresentation] [S.X₃.IsFinitePresentation] (hS : S.Exact) : (S.map (pushforward f)).Exact := by … - lemma
OAI.CoherentGlobal.exact_pushforwardline 76Source documentation
Finite pushforward is exact on coherent sheaves, not on arbitrary sheaves.
lemma exact_pushforward {X Y : Scheme.{0}} [IsLocallyNoetherian Y] (f : X ⟶ Y) [IsFinite f] (S : ShortComplex X.Modules) [S.X₁.IsFinitePresentation] [S.X₂.IsFinitePresentation] [S.X₃.IsFinitePresentation] (hS : S.Exact) : (S.map (pushforward f)).Exact := by … - abbrev
OAI.CoherentGlobal.cohInclusionline 106Source documentation
Inclusion of the coherent category into all structure-sheaf modules.
abbrev cohInclusion (X : Scheme.{0}) : Coh X ⥤ X.Modules := …Mentions: OAI.CoherentGlobal.Coh
- instance
OAI.CoherentGlobal.cohInclusion_additiveline 109 - instance
OAI.CoherentGlobal.cohInclusion_faithfulline 112 - instance
OAI.CoherentGlobal.cohInclusion_kernelsline 115 - instance
OAI.CoherentGlobal.cohInclusion_cokernelsline 120 - instance
OAI.CoherentGlobal.cohInclusion_limitsline 125 - instance
OAI.CoherentGlobal.cohInclusion_colimitsline 129 - def
OAI.CoherentGlobal.cohPushforwardline 134Source documentation
Finite pushforward as a functor of coherent categories.
def cohPushforward {X Y : Scheme.{0}} [IsLocallyNoetherian Y] (f : X ⟶ Y) [IsFinite f] : Coh X ⥤ Coh Y := …Mentions: OAI.CoherentGlobal.Coh
- instance
OAI.CoherentGlobal.cohPushforward_additiveline 141 - lemma
OAI.CoherentGlobal.exact_cohPushforwardline 148 - instance
OAI.CoherentGlobal.cohPushforward_preservesHomologyline 158 - instance
OAI.CoherentGlobal.cohPushforward_preservesFiniteLimitsline 163 - instance
OAI.CoherentGlobal.cohPushforward_preservesFiniteColimitsline 168 - lemma
OAI.SheafTorsion.module_extensionline 182Source documentation
Torsion freedom is closed under left-exact module extensions.
lemma module_extension {R : Type u} [CommRing R] (S : ShortComplex (ModuleCat.{v} R)) (he : S.Exact) [Mono S.f] [Module.IsTorsionFree R S.X₁] [Module.IsTorsionFree R S.X₃] : Module.IsTorsionFree R S.X₂ where … - lemma
OAI.SheafTorsion.subobjectline 203Source documentation
Every section module of a module-sheaf subobject of a torsion-free sheaf is torsion-free. No local freeness is assumed.
lemma subobject {X : Scheme.{0}} {M N : X.Modules} (f : M ⟶ N) [Mono f] (hN : ∀ U, @Module.IsTorsionFree (X.sheaf.obj.obj U) (N.val.obj U) _ _ (N.val.obj U).isModule) (U : X.Opensᵒᵖ) : @Module.IsTorsionFree (X.sheaf.obj.obj U) (M.val.obj U) _ _ (M.val.obj U).isModule := by … - lemma
OAI.SheafTorsion.extensionline 224Source documentation
Sectionwise torsion freedom is closed under left-exact sheaf extensions: sections preserve the kernel, even though they need not preserve epimorphisms.
lemma extension {X : Scheme.{0}} (S : ShortComplex X.Modules) (he : S.Exact) [Mono S.f] (h₁ : ∀ U, @Module.IsTorsionFree (X.sheaf.obj.obj U) (S.X₁.val.obj U) _ _ (S.X₁.val.obj U).isModule) (h₃ : ∀ U, @Module.IsTorsionFree (X.sheaf.obj.obj U) (S.X₃.val.obj U) _ _ (S.X₃.val.obj U).isModule) (U : X.Opensᵒᵖ) : @Module.IsTorsionFree (X.sheaf.obj.obj U) (S.X₂.val.obj U) _ _ (S.X₂.val.obj U).isModule := by … - lemma
OAI.SheafTorsion.coherent_extensionline 245 - def
OAI.DualCartierRestriction.dualBaseChangeMapline 267Source documentation
The canonical dual base-change map, without any false freeness assumption.
def dualBaseChangeMap (A : Type*) [CommRing A] [Algebra R A] : A ⊗[R] Module.Dual R M →ₗ[A] Module.Dual A (A ⊗[R] M) := … - lemma
OAI.DualCartierRestriction.dualBaseChangeMap_tmulline 275 - lemma
OAI.DualCartierRestriction.quotient_one_tmul_surjectiveline 281Source documentation
Scalar extension along a quotient is generated by tensors with first coordinate one, even when the module is not free.
lemma quotient_one_tmul_surjective (I : Ideal R) : Function.Surjective (fun m : M => (1 : R ⧸ I) ⊗ₜ[R] m) := by … - lemma
OAI.DualCartierRestriction.dualBaseChangeMap_injectiveline 290Source documentation
Restriction of a dual to any effective principal Cartier divisor injects into the dual of the restricted module. The divisor need not be smooth for this algebraic assertion.
lemma dualBaseChangeMap_injective (t : R) (ht : IsSMulRegular R t) : Function.Injective (dualBaseChangeMap (R := R) (M := M) (R ⧸ Ideal.span ({t} : Set R))) := by … - def
OAI.CoherentDual.dualBaseChangeMorphismline 321 - abbrev
OAI.CoherentDual.principalQuotientline 334 - abbrev
OAI.CoherentDual.principalMapline 335 - instance
OAI.CoherentDual.principalTensor_finiteline 337 - def
OAI.CoherentDual.principalDualInjectionline 345Source documentation
On an affine Cartier chart, the restriction of the sheaf dual embeds in the dual of the genuinely scalar-extended module.
def principalDualInjection : (Scheme.Modules.pullback (Spec.map (principalMap t))).obj (homSheaf (Spec A).sheaf (tilde M) (SheafOfModules.unit _)) ⟶ homSheaf (Spec (principalQuotient t)).sheaf (tilde ((ModuleCat.extendScalars (principalMap t).hom).obj M)) (SheafOfModules.unit _) := …Mentions: OAI.CoherentDual.principalMap, OAI.CoherentDual.homSheaf, OAI.CoherentDual.principalQuotient
- lemma
OAI.CoherentDual.principalDualInjection_monoline 359 - lemma
OAI.CoherentDual.principalDual_restriction_torsionFreeline 380Source documentation
Restriction of a sheaf dual to an integral principal Cartier divisor is torsion-free.
lemma principalDual_restriction_torsionFree [(Ideal.span ({t} : Set A)).IsPrime] (U : (Spec (principalQuotient t)).Opensᵒᵖ) : @Module.IsTorsionFree ((Spec (principalQuotient t)).sheaf.obj.obj U) (((Scheme.Modules.pullback (Spec.map (principalMap t))).obj (homSheaf (Spec A).sheaf (tilde M) (SheafOfModules.unit _))).val.obj U) _ _ ((((Scheme.Modules.pullback (Spec.map (principalMap t))).obj (homSheaf (Spec A).sheaf (tilde M) (SheafOfModules.unit _))).val.obj U).isModule) := by …Mentions: OAI.CoherentDual.principalQuotient, OAI.CoherentDual.principalMap, OAI.CoherentDual.homSheaf
- lemma
OAI.DualCartierRestriction.surjective_one_tmulline 403Source documentation
Surjective scalar extension is generated by tensors with first coordinate one. No freeness, finite generation or chosen presentation is needed.
lemma surjective_one_tmul (h : Function.Surjective (algebraMap R A)) : Function.Surjective (fun m : M => (1 : A) ⊗ₜ[R] m) := by … - lemma
OAI.DualCartierRestriction.dualBaseChangeMap_injective_of_surjectiveline 421Source documentation
Canonical dual specialization is injective for any surjective ring morphism whose kernel is generated by a regular element. This avoids identifying the target ring definitionally with a chosen quotient.
lemma dualBaseChangeMap_injective_of_surjective (h : Function.Surjective (algebraMap R A)) (t : R) (ht : IsSMulRegular R t) (hker : RingHom.ker (algebraMap R A) = Ideal.span ({t} : Set R)) : Function.Injective (dualBaseChangeMap (R := R) (M := M) A) := by … - lemma
OAI.CoherentAffine.isFinitePresentation_tildeline 459 - lemma
OAI.CoherentAffine.coherent_tildeline 482 - def
OAI.CoherentGlobal.restrictScalarsFullyFaithfulline 496Source documentation
Restriction along a quotient is fully faithful on modules.
def restrictScalarsFullyFaithful {A B : Type} [CommRing A] [CommRing B] (f : A →+* B) (hf : Function.Surjective f) : (ModuleCat.restrictScalars f).FullyFaithful where … - lemma
OAI.CoherentGlobal.affineGamma_injectiveline 508 - lemma
OAI.CoherentGlobal.affineGamma_surjectiveline 522 - lemma
OAI.CoherentGlobal.quasicoherent_pushforward_affineline 534 - lemma
OAI.CoherentGlobal.affinePushforward_fullline 542Source documentation
The sheaf pushforward under an affine closed immersion is full on quasicoherent sheaves, by the affine comparison.
lemma affinePushforward_full {A B : CommRingCat.{0}} (f : A ⟶ B) (hf : Function.Surjective f.hom) (M N : (Spec B).Modules) [M.IsQuasicoherent] [N.IsQuasicoherent] : Function.Surjective (fun g : M ⟶ N => (pushforward (Spec.map f)).map g) := by … - def
OAI.CoherentGlobal.cohTildeline 578Source documentation
The associated sheaf functor on finite modules.
def cohTilde : FGModuleCat.{0} R ⥤ Coh (Spec R) := …Mentions: OAI.CoherentGlobal.Coh
- def
OAI.CoherentGlobal.cohGammaline 584Source documentation
Sections of a coherent sheaf on an affine Noetherian scheme form a finite module.
def cohGamma : Coh (Spec R) ⥤ FGModuleCat.{0} R := …Mentions: OAI.CoherentGlobal.Coh
- instance
OAI.CoherentGlobal.cohTilde_faithfulline 590 - instance
OAI.CoherentGlobal.cohTilde_fullline 596 - instance
OAI.CoherentGlobal.cohTilde_essSurjline 602 - instance
OAI.CoherentGlobal.cohTilde_equivalenceline 612 - def
OAI.CoherentGlobal.affineCohEquivline 615Source documentation
Affine coherent sheaves are genuinely equivalent to finite modules.
def affineCohEquiv : FGModuleCat.{0} R ≌ Coh (Spec R) := (cohTilde R).asEquivalenceMentions: OAI.CoherentGlobal.Coh, OAI.CoherentGlobal.cohTilde
- instance
OAI.CoherentGlobal.cohTilde_additiveline 617 - abbrev
OAI.CoherentDual.algebraSpecMapline 634 - instance
OAI.CoherentDual.algebraTensor_finiteline 636 - def
OAI.CoherentDual.algebraDualInjectionline 643Source documentation
Canonical specialization into the dual over the target of a ring map.
def algebraDualInjection : (Scheme.Modules.pullback (algebraSpecMap φ)).obj (homSheaf (Spec A).sheaf (tilde M) (SheafOfModules.unit _)) ⟶ homSheaf (Spec B).sheaf (tilde ((ModuleCat.extendScalars φ.hom).obj M)) (SheafOfModules.unit _) := by …Mentions: OAI.CoherentDual.algebraSpecMap, OAI.CoherentDual.homSheaf
- lemma
OAI.CoherentDual.algebraDualInjection_monoline 657 - lemma
OAI.CoherentDual.tildeDual_algebra_restriction_torsionFreeline 679 - lemma
OAI.CoherentDual.affineDual_algebra_restriction_torsionFreeline 694Source documentation
Specialization of a coherent sheaf dual to an integral Cartier quotient is torsion-free, using its finite module of sections.
lemma affineDual_algebra_restriction_torsionFree [IsDomain B] (N : (Spec A).Modules) [N.IsFinitePresentation] (h : Function.Surjective φ.hom) (t : A) (ht : IsSMulRegular A t) (hker : RingHom.ker φ.hom = Ideal.span ({t} : Set A)) (U : (Spec B).Opensᵒᵖ) : @Module.IsTorsionFree ((Spec B).sheaf.obj.obj U) (((Scheme.Modules.pullback (algebraSpecMap φ)).obj (homSheaf (Spec A).sheaf N (SheafOfModules.unit _))).val.obj U) _ _ ((((Scheme.Modules.pullback (algebraSpecMap φ)).obj (homSheaf (Spec A).sheaf N (SheafOfModules.unit _))).val.obj U).isModule) := by …Mentions: OAI.CoherentDual.algebraSpecMap, OAI.CoherentDual.homSheaf
- def
OAI.CoherentGlobal.closedLiftOpenline 724Source documentation
The largest target open whose inverse image lies in a given source open.
def closedLiftOpen {X Y : Scheme.{0}} (f : X ⟶ Y) [IsClosedImmersion f] (U : X.Opens) : Y.Opens := … - lemma
OAI.CoherentGlobal.preimage_closedLiftOpenline 728 - lemma
OAI.CoherentGlobal.le_closedLiftOpen_iffline 739 - def
OAI.CoherentGlobal.closedLiftFunctorline 752Source documentation
The open-lift functor for a closed immersion.
def closedLiftFunctor {X Y : Scheme.{0}} (f : X ⟶ Y) [IsClosedImmersion f] : X.Opens ⥤ Y.Opens where … - def
OAI.CoherentGlobal.closedOpenAdjunctionline 760Source documentation
Inverse image of opens is a reflective localization for a closed embedding.
def closedOpenAdjunction {X Y : Scheme.{0}} (f : X ⟶ Y) [IsClosedImmersion f] : Opens.map f.base ⊣ closedLiftFunctor f where …Mentions: OAI.CoherentGlobal.closedLiftFunctor
- instance
OAI.CoherentGlobal.closedOpenCounitIsoline 765 - def
OAI.CoherentGlobal.closedPresheafFullyFaithfulline 773Source documentation
Additive presheaves are recovered fully faithfully from their direct images.
def closedPresheafFullyFaithful {X Y : Scheme.{0}} (f : X ⟶ Y) [IsClosedImmersion f] : ((Functor.whiskeringLeft Y.Opensᵒᵖ X.Opensᵒᵖ AddCommGrpCat).obj (Opens.map f.base).op).FullyFaithful := by … - instance
OAI.CoherentGlobal.closedPushforward_faithfulline 797 - def
OAI.CoherentGlobal.closedPushforwardPreimageAddline 806Source documentation
Underlying additive natural transformation of the descended map.
def closedPushforwardPreimageAdd {X Y : Scheme.{0}} (f : X ⟶ Y) [IsClosedImmersion f] {M N : X.Modules} (g : (pushforward f).obj M ⟶ (pushforward f).obj N) : M.presheaf ⟶ N.presheaf := … - lemma
OAI.CoherentGlobal.closedPushforwardPreimageAdd_appline 811 - lemma
OAI.CoherentGlobal.closedPushforward_add_linearline 818 - lemma
OAI.CoherentGlobal.closedPushforward_fullline 857Source documentation
Pushforward under a closed immersion is full on all structure-sheaf modules. The underlying additive map is descended via the open adjunction; linearity is checked on inverse images of affine opens, where the structure ring homomorphism is surjective.
lemma closedPushforward_full {X Y : Scheme.{0}} (f : X ⟶ Y) [IsClosedImmersion f] (M N : X.Modules) : Function.Surjective (fun u : M ⟶ N => (pushforward f).map u) := by … - instance
OAI.CoherentGlobal.closedPushforward_full_instanceline 869