OAI/AlgebraicGeometry/SurfaceCones/CartierPullback.lean
58 declarations, 0 contain sorry, 0 declared as axioms
Cartier pullback and coherent lattice filtrations
This development accompanies A Complete Local Domain without a Small Cohen–Macaulay Module (OpenAI, 2026).
- theorem
OAI.kernelMonoline 10Also declared: OAI/AlgebraicGeometry/SurfaceCones/CartierSupport.lean:20 (same declaration text).
- theorem
OAI.counitIsIsoline 15 - def
OAI.ActualCartier.restrictionUnitline 35 - lemma
OAI.ActualCartier.restrictionUnit_zeroline 38 - def
OAI.ActualCartier.restrictionUnitIsColimitline 43Source documentation
This is the cokernel fork in all sheaves of modules after forgetting coherence.
def restrictionUnitIsColimit (M : Coh Y) : IsColimit (CokernelCofork.ofπ ((restrictionUnit f d).app M).hom (show ((action f d).app M).hom ≫ ((restrictionUnit f d).app M).hom = 0 from congrArg (fun z => z.hom) (NatTrans.congr_app (restrictionUnit_zero f d) M))) := by …Mentions: OAI.ActualCartier.restrictionUnit, OAI.ActualCartier.action, OAI.ActualCartier.restrictionUnit_zero
- def
OAI.ActualCartier.restrictionPullbackIsoline 56Source documentation
The descended ordinary restriction is the geometric pullback. This spells out its universal property, rather than using the desired identification as an extra hypothesis.
def restrictionPullbackIso (M : Coh Y) : (Scheme.Modules.pullback f).obj M.obj ≅ ((restriction f d).obj M).obj := by …Mentions: OAI.ActualCartier.restriction
- lemma
OAI.ActualCartier.coherent_pullbackline 76 - lemma
OAI.ActualCartier.firstTor_isZeroline 94Source documentation
The first Cartier Tor vanishes for a sectionwise torsion-free coherent sheaf: this is proved from the invertible ideal action.
lemma firstTor_isZero (M : Coh Y) (hM : ∀ U, Module.IsTorsionFree (Y.sheaf.obj.obj U) (M.obj.val.obj U)) : IsZero ((firstTor f d).obj M) := by …Mentions: OAI.ActualCartier.firstTor
- lemma
OAI.ActualCartier.derivedRestriction_cls_torsionFreeline 111 - lemma
OAI.ActualCartier.action_pushforward_zeroline 118Source documentation
A coherent sheaf pushed forward from the divisor has zero Cartier action.
lemma action_pushforward_zero (N : Coh X) : (action f d).app ((cohPushforward f).obj N) = 0 := by …Mentions: OAI.ActualCartier.action
- def
OAI.ActualCartier.firstTor_supported_pushforwardIsoline 125Source documentation
The first Tor of a supported layer is the ambient ideal line tensor after closed pushforward. Full faithfulness descends this identification to the divisor.
def firstTor_supported_pushforwardIso (N : Coh X) : (cohPushforward f).obj ((firstTor f d).obj ((cohPushforward f).obj N)) ≅ (coherentTensorLine (idealSheaf f) d).obj ((cohPushforward f).obj N) := …Mentions: OAI.ActualCartier.firstTor, OAI.ActualCartier.idealSheaf
- def
OAI.ActualCartier.restriction_supported_isoline 135Source documentation
Ordinary restriction of a closed pushforward is the original coherent sheaf on the divisor.
def restriction_supported_iso (N : Coh X) : (restriction f d).obj ((cohPushforward f).obj N) ≅ N := …Mentions: OAI.ActualCartier.restriction
- lemma
OAI.ActualCartier.derivedRestriction_supportedline 141 - lemma
OAI.ActualSheafTensor.tensorSchemeRestrictIso_inv_pureline 158Source documentation
The inverse restriction comparison is the identity on pure sections, with the scalar action transported by the open immersion's ring isomorphism.
lemma tensorSchemeRestrictIso_inv_pure (M N : X.Modules) (V : U.toScheme.Opens) (x : ((restrictFunctor U.ι).obj M).val.obj (op V)) (y : ((restrictFunctor U.ι).obj N).val.obj (op V)) : (tensorSchemeRestrictIso X U M N).inv.val.app (op V) (pure U.toScheme.sheaf ((restrictFunctor U.ι).obj M) ((restrictFunctor U.ι).obj N) (op V) x y) = pure X.sheaf M N (op (U.ι ''ᵁ V)) x y := by …Mentions: OAI.ActualSheafTensor.tensorSchemeRestrictIso, OAI.ActualSheafTensor.pure
- lemma
OAI.ActualSheafTensor.tensorLeft_map_pureline 207 - lemma
OAI.ActualSheafTensor.pure_naturalityline 216 - def
OAI.ActualSheafTensor.projectionRestrictLeftline 234 - def
OAI.ActualSheafTensor.projectionRestrictRightline 244 - lemma
OAI.ActualSheafTensor.projectionRestrictLeft_pureline 261 - lemma
OAI.ActualSheafTensor.projectionRestrictRight_pureline 287 - lemma
OAI.ActualSheafTensor.tensorProjection_restrictline 324Source documentation
The tensor projection morphism commutes with open restriction through the pullback comparison induced by the adjunction.
lemma tensorProjection_restrict : projectionRestrictLeft f U L N = projectionRestrictRight f U L N := by …Mentions: OAI.ActualSheafTensor.projectionRestrictLeft, OAI.ActualSheafTensor.projectionRestrictRight
- lemma
OAI.ActualSheafTensor.projectionRestrictRight_isIsoline 346 - lemma
OAI.ActualSheafTensor.projectionRestrict_isIsoline 374 - lemma
OAI.ActualSheafTensor.tensorProjection_isIso_of_lineline 394Source documentation
Projection formula for the tensor sheaf and any line bundle, proved locally from its pure-section projection morphism.
lemma tensorProjection_isIso_of_line (d : LineTrivialization Y.sheaf L) (N : X.Modules) : IsIso (tensorProjection f L N) := by …Mentions: OAI.ActualSheafTensor.LineTrivialization, OAI.ActualSheafTensor.tensorProjection
- def
OAI.ActualSheafTensor.tensorProjectionIsoline 401Source documentation
The canonical projection-formula isomorphism for any line bundle.
def tensorProjectionIso (d : LineTrivialization Y.sheaf L) (N : X.Modules) : tensor Y.sheaf L ((pushforward f).obj N) ≅ (pushforward f).obj (tensor X.sheaf ((Scheme.Modules.pullback f).obj L) N) := by …Mentions: OAI.ActualSheafTensor.LineTrivialization, OAI.ActualSheafTensor.tensor
- lemma
OAI.ActualCartier.coherent_conormal_tensorline 422Source documentation
Tensor by the conormal line preserves coherence on the divisor by the projection formula and coherent Cartier pullback.
lemma coherent_conormal_tensor (N : Coh X) : (tensor X.sheaf ((Scheme.Modules.pullback f).obj (idealSheaf f)) N.obj).IsFinitePresentation := by …Mentions: OAI.ActualCartier.idealSheaf
- def
OAI.ActualCartier.conormalTensorline 435Source documentation
The conormal twist, as a coherent sheaf ON the Cartier divisor.
def conormalTensor (N : Coh X) : Coh X := …
- def
OAI.ActualCartier.conormalProjectionIsoline 439 - def
OAI.ActualCartier.firstTor_supported_isoline 445Source documentation
The first Tor of a supported layer is its tensor by the conormal sheaf on the divisor.
def firstTor_supported_iso (N : Coh X) : (firstTor f d).obj ((cohPushforward f).obj N) ≅ conormalTensor f d N := …Mentions: OAI.ActualCartier.firstTor, OAI.ActualCartier.conormalTensor
- lemma
OAI.ActualCartier.derivedRestriction_conormalline 451Source documentation
The precise class formula used for each supported layer in the Cartier restriction formula.
lemma derivedRestriction_conormal (N : Coh X) : derivedRestriction f d (cls ((cohPushforward f).obj N)) = cls N - cls (conormalTensor f d N) := by …Mentions: OAI.ActualCartier.derivedRestriction, OAI.ActualCartier.conormalTensor
- lemma
OAI.ActualCartier.lattice_firstTor_identityline 469Source documentation
The coherent Grothendieck identity for an inclusion of torsion-free lattices whose quotient has a finite filtration by divisor sheaves.
lemma lattice_firstTor_identity {S : ShortComplex (Coh Y)} (hS : S.ShortExact) (h₁ : ∀ U, Module.IsTorsionFree (Y.sheaf.obj.obj U) (S.X₁.obj.val.obj U)) (h₂ : ∀ U, Module.IsTorsionFree (Y.sheaf.obj.obj U) (S.X₂.obj.val.obj U)) (layers : List (Coh X)) (hlayers : FilteredBy S.X₃ (layers.map (cohPushforward f).obj)) : cls ((restriction f d).obj S.X₁) = cls ((restriction f d).obj S.X₂) + (layers.map fun Q => cls ((firstTor f d).obj ((cohPushforward f).obj Q)) - cls Q).sum := by …Mentions: OAI.ActualCartier.restriction, OAI.ActualCartier.firstTor
- def
OAI.ActualCartier.restrictionCokernelIsoline 508Source documentation
Ordinary restriction is the cokernel of the ideal action.
def restrictionCokernelIso (M : Coh Y) : (cohPushforward f).obj ((restriction f d).obj M) ≅ cokernel ((action f d).app M) := …Mentions: OAI.ActualCartier.restriction, OAI.ActualCartier.action
- abbrev
OAI.ActualCartier.idealMultipleline 514Source documentation
Repeated images of the Cartier ideal action on a coherent sheaf.
abbrev idealMultiple (n : ℕ) (M : Coh Y) : Coh Y := …
- abbrev
OAI.ActualCartier.idealLayersline 518Source documentation
The coherent layers of the ideal-adic image filtration.
abbrev idealLayers (n : ℕ) (M : Coh Y) : List (Coh X) := …
- lemma
OAI.ActualCartier.filteredBy_idealLayersline 523 - lemma
OAI.ActualCartier.lattice_conormal_identityline 530Source documentation
Coherent K₀ identity of the Cartier restriction formula, with each supported term identified ON the divisor as its conormal tensor.
lemma lattice_conormal_identity {S : ShortComplex (Coh Y)} (hS : S.ShortExact) (h₁ : ∀ U, Module.IsTorsionFree (Y.sheaf.obj.obj U) (S.X₁.obj.val.obj U)) (h₂ : ∀ U, Module.IsTorsionFree (Y.sheaf.obj.obj U) (S.X₂.obj.val.obj U)) (layers : List (Coh X)) (hlayers : FilteredBy S.X₃ (layers.map (cohPushforward f).obj)) : cls ((restriction f d).obj S.X₁) = cls ((restriction f d).obj S.X₂) + (layers.map fun Q => cls (conormalTensor f d Q) - cls Q).sum := by …Mentions: OAI.ActualCartier.restriction, OAI.ActualCartier.conormalTensor
- lemma
OAI.ActualCartier.lattice_nilpotent_identityline 542Source documentation
A nilpotent ideal quotient gives a finite coherent filtration for the Cartier lattice identity.
lemma lattice_nilpotent_identity {S : ShortComplex (Coh Y)} (hS : S.ShortExact) (h₁ : ∀ U, Module.IsTorsionFree (Y.sheaf.obj.obj U) (S.X₁.obj.val.obj U)) (h₂ : ∀ U, Module.IsTorsionFree (Y.sheaf.obj.obj U) (S.X₂.obj.val.obj U)) (n : ℕ) (hn : IsZero (idealMultiple f d n S.X₃)) : cls ((restriction f d).obj S.X₁) = cls ((restriction f d).obj S.X₂) + ((idealLayers f d n S.X₃).map fun Q => cls (conormalTensor f d Q) - cls Q).sum := …Mentions: OAI.ActualCartier.idealMultiple, OAI.ActualCartier.restriction, OAI.ActualCartier.idealLayers, OAI.ActualCartier.conormalTensor
- lemma
OAI.CartierImageFiltration.map_powerAction_zero_of_leline 564Source documentation
A locally vanishing ideal power remains vanishing at every larger exponent, by naturality of the iterated action.
lemma map_powerAction_zero_of_le (M : C) {n m : ℕ} (hnm : n ≤ m) (hn : F.map ((powerAction T a n).app M) = 0) : F.map ((powerAction T a m).app M) = 0 := by …Mentions: OAI.CartierImageFiltration.powerAction
- lemma
OAI.ActualCartier.idealMultiple_isZero_of_finite_coverline 585Source documentation
Finitely many locally vanishing Cartier powers give a global nilpotence exponent and a finite supported filtration.
lemma idealMultiple_isZero_of_finite_cover {ι : Type} [Fintype ι] (U : ι → Y.Opens) (hU : (Opens.grothendieckTopology Y).CoversTop U) (M : Coh Y) (h : ∀ i, ∃ n : ℕ, (((cohInclusion Y).map ((powerAction (coherentTensorLine (idealSheaf f) d) (action f d) n).app M)).over (U i)) = 0) : ∃ n : ℕ, IsZero (idealMultiple f d n M) := by …Mentions: OAI.ActualCartier.idealSheaf, OAI.ActualCartier.action, OAI.ActualCartier.idealMultiple
- lemma
OAI.CartierAffineCoverNilpotence.exists_powerAction_zeroline 627Source documentation
Support on finitely many principal Cartier charts gives a vanishing tensor-ideal power.
lemma exists_powerAction_zero (M : Y.Modules) [M.IsFinitePresentation] (hM : ∀ j, IsZero (((restrictFunctor (f j)).obj M).over (PrimeSpectrum.basicOpen (AffineCartierNilpotence.equation ((restrictFunctor (f j)).obj L) (e j) (restrictedIdeal (f j) i))))) : ∃ n : ℕ, (powerAction (tensorLeft Y.sheaf L) (idealAction Y.sheaf i) n).app M = 0 := by …Mentions: OAI.AffineCartierNilpotence.equation
- instance
OAI.ActualCartier.firstTor_additiveline 664 - instance
OAI.ActualCartier.restriction_additiveline 671 - instance
OAI.ActualCartier.restrictionUnit_epiline 689 - instance
OAI.ActualCartier.restriction_preservesEpisline 693 - abbrev
OAI.ActualCartier.layerline 704Source documentation
The jth supported quotient of the ideal-image filtration.
abbrev layer (j : ℕ) (M : Coh Y) : Coh X := …
- def
OAI.ActualCartier.layerCoverline 709Source documentation
An ambient ideal power of the original lattice surjects onto each corresponding layer of its quotient.
def layerCover {L Q : Coh Y} (q : L ⟶ Q) (j : ℕ) : (CartierImageFiltration.power (coherentTensorLine (idealSheaf f) d) j).obj L ⟶ (cohPushforward f).obj (layer f d j Q) := …Mentions: OAI.CartierImageFiltration.power, OAI.ActualCartier.idealSheaf, OAI.ActualCartier.layer
- instance
OAI.ActualCartier.layerCover_epiline 716 - def
OAI.ActualCartier.layerQuotientline 722Source documentation
The quotient morphism on the Cartier divisor.
def layerQuotient {L Q : Coh Y} (q : L ⟶ Q) (j : ℕ) : (restriction f d).obj ((CartierImageFiltration.power (coherentTensorLine (idealSheaf f) d) j).obj L) ⟶ layer f d j Q := …Mentions: OAI.ActualCartier.restriction, OAI.CartierImageFiltration.power, OAI.ActualCartier.idealSheaf, OAI.ActualCartier.layer
- instance
OAI.ActualCartier.layerQuotient_epiline 729 - lemma
OAI.ActualCartier.lattice_sandwich_identityline 736Source documentation
An ideal-power containment in a lattice inclusion gives nilpotence and coherent layers in the conormal Grothendieck identity.
lemma lattice_sandwich_identity {S : ShortComplex (Coh Y)} (hS : S.ShortExact) (h₁ : ∀ U, Module.IsTorsionFree (Y.sheaf.obj.obj U) (S.X₁.obj.val.obj U)) (h₂ : ∀ U, Module.IsTorsionFree (Y.sheaf.obj.obj U) (S.X₂.obj.val.obj U)) (n : ℕ) (b : (CartierImageFiltration.power (coherentTensorLine (idealSheaf f) d) n).obj S.X₂ ⟶ S.X₁) (hb : b ≫ S.f = (CartierImageFiltration.powerAction (coherentTensorLine (idealSheaf f) d) (action f d) n).app S.X₂) : cls ((restriction f d).obj S.X₁) = cls ((restriction f d).obj S.X₂) + ((idealLayers f d n S.X₃).map fun Q => cls (conormalTensor f d Q) - cls Q).sum := by …Mentions: OAI.CartierImageFiltration.power, OAI.ActualCartier.idealSheaf, OAI.CartierImageFiltration.powerAction, OAI.ActualCartier.action, OAI.ActualCartier.restriction, OAI.ActualCartier.idealLayers, OAI.ActualCartier.conormalTensor
- def
OAI.ActualCartier.conormalFunctorline 761Source documentation
Tensor by the conormal line, on coherent sheaves of the divisor.
def conormalFunctor : Coh X ⥤ Coh X := …
- lemma
OAI.ActualCartier.action_centralline 767 - def
OAI.ActualCartier.restriction_tensorLine_isoline 775Source documentation
Cartier restriction sends an ideal twist to the conormal twist by preservation of cokernels and centrality of multiplication.
def restriction_tensorLine_iso (M : Coh Y) : (restriction f d).obj ((coherentTensorLine (idealSheaf f) d).obj M) ≅ (conormalFunctor f d).obj ((restriction f d).obj M) := by …Mentions: OAI.ActualCartier.restriction, OAI.ActualCartier.idealSheaf, OAI.ActualCartier.conormalFunctor
- def
OAI.ActualCartier.restriction_powerIsoline 789Source documentation
Restricting each ambient ideal power gives the corresponding conormal tensor power on the divisor.
def restriction_powerIso : (j : ℕ) → (M : Coh Y) → (restriction f d).obj ((power (coherentTensorLine (idealSheaf f) d) j).obj M) ≅ (power (conormalFunctor f d) j).obj ((restriction f d).obj M) | 0, _ => Iso.refl _ | j + 1, M => restriction_powerIso j ((coherentTensorLine (idealSheaf f) d).obj M) ≪≫ (power (conormalFunctor f d) j).mapIso (restriction_tensorLine_iso f d M) /-- The surjection from the jth conormal twist of the original restricted lattice onto its jth supported quotient (the ideal-image filtration). -/Mentions: OAI.ActualCartier.restriction, OAI.ActualCartier.idealSheaf, OAI.ActualCartier.conormalFunctor, OAI.ActualCartier.restriction_tensorLine_iso
- def
OAI.ActualCartier.twistedLayerQuotientline 798Source documentation
The surjection from the jth conormal twist of the original restricted lattice onto its jth supported quotient (the ideal-image filtration).
def twistedLayerQuotient {L Q : Coh Y} (q : L ⟶ Q) (j : ℕ) : (power (conormalFunctor f d) j).obj ((restriction f d).obj L) ⟶ layer f d j Q := …Mentions: OAI.ActualCartier.conormalFunctor, OAI.ActualCartier.restriction, OAI.ActualCartier.layer
- instance
OAI.ActualCartier.twistedLayerQuotient_epiline 802 - lemma
OAI.ActualCartier.exists_idealMultiple_isZero_of_supportline 828Source documentation
Support on the finite principal-chart complement yields a finite filtration by the Cartier ideal images in the coherent category.
lemma exists_idealMultiple_isZero_of_support (M : Coh Y) (hM : ∀ j, IsZero (((restrictFunctor (f j)).obj M.obj).over (PrimeSpectrum.basicOpen (AffineCartierNilpotence.equation ((restrictFunctor (f j)).obj (idealSheaf g)) (e j) (restrictedIdeal (f j) (idealι g)))))) : ∃ n : ℕ, IsZero (idealMultiple g d n M) := by …Mentions: OAI.AffineCartierNilpotence.equation, OAI.ActualCartier.idealSheaf, OAI.ActualCartier.idealι, OAI.ActualCartier.idealMultiple
- lemma
OAI.ActualCartier.lattice_support_identityline 848Source documentation
The divisor-side Grothendieck lattice identity follows from local support.
lemma lattice_support_identity {S : ShortComplex (Coh Y)} (hS : S.ShortExact) (h₁ : ∀ U, Module.IsTorsionFree (Y.sheaf.obj.obj U) (S.X₁.obj.val.obj U)) (h₂ : ∀ U, Module.IsTorsionFree (Y.sheaf.obj.obj U) (S.X₂.obj.val.obj U)) (hQ : ∀ j, IsZero (((restrictFunctor (f j)).obj S.X₃.obj).over (PrimeSpectrum.basicOpen (AffineCartierNilpotence.equation ((restrictFunctor (f j)).obj (idealSheaf g)) (e j) (restrictedIdeal (f j) (idealι g)))))) : ∃ n : ℕ, cls ((restriction g d).obj S.X₁) = cls ((restriction g d).obj S.X₂) + ((idealLayers g d n S.X₃).map fun Q => cls (conormalTensor g d Q) - cls Q).sum := by …Mentions: OAI.AffineCartierNilpotence.equation, OAI.ActualCartier.idealSheaf, OAI.ActualCartier.idealι, OAI.ActualCartier.restriction, OAI.ActualCartier.idealLayers, OAI.ActualCartier.conormalTensor