Definitions bundle OAIQ068A041 of the split of OpenAI, The irrationality exponent of pi is 2 (result family 017)
DefinitionOAIQ068A041A definitions bundle of the split of OpenAI's proof of OAI.PiExponent.main, carved from OpenAI's openai/math development (OpenAI, The irrationality exponent of pi is 2 (result family 017), OpenAI Math Release, September 24, 2026, result family 17, github.com/openai/math at commit 1581d4c, Apache License 2.0) and ported to Lean 4.33.1 and Mathlib 0df444a. The declarations and their proofs are OpenAI's.
Contents. It holds 36 declarations of OpenAI's Lean: 9 definitions, 1 instance and 26 theorems. The definitions and types are OAI.PiExponent.ClosedImmersionSerreTransfer.closedCohomologyEquiv, OAI.PiExponent.ClosedImmersionSerreTransfer.cohomologyEquiv, OAI.PiExponent.ClosedRestrictionTensor.powerProjectionIso, OAI.PiExponent.GeometrySupport.CechH1Transfer.SectionComparison.cochainOne, OAI.PiExponent.NumericalAmpleness.CartierEulerPair.middle, OAI.PiExponent.ProjectionFormula.twistIso, OAI.PiExponent.SectionZeroStalk.zeroStalkQuotientEquiv, OAI.PiExponentSeshadri.Geometry.idealPowerFrame, OAI.PiExponentSeshadri.Geometry.idealPowerInclusion.
Sources. They come from these modules of lean/OAI/NumberTheory, in whole or in part: PiExponent_Ampleness_BlowupProperIntegral, PiExponent_Ampleness_CurveNormalizationPolarization, PiExponent_Ampleness_FinitePullbackAmple, PiExponent_Ampleness_NoetherianAmpleProjectiveSections, PiExponent_Approximation_ClosedImmersionSerreTransfer, PiExponent_Approximation_ClosedRestrictionTensor, PiExponent_Approximation_NoetherianPowerExtension, PiExponent_Approximation_ProjectionFormula, PiExponent_Approximation_TwistPowerSection, PiExponent_Cohomology_CartierEulerPair, PiExponent_Cohomology_CechH1Transfer, PiExponent_Cohomology_CurveNormalizationCohomology, PiExponent_Cohomology_FiniteLineEuler, PiExponent_Geometry_CartierDegreeLength, PiExponent_Geometry_CurveDegreeAdditivity, PiExponent_Geometry_CurveEffectiveTwist, PiExponent_Geometry_CurveSectionDegree, PiExponent_Geometry_SectionOrderDivisor, PiExponent_Geometry_SectionZeroStalk, PiExponent_LocalAlgebra_IdealTensorPowers, PiExponent_LocalAlgebra_TensorIdealInclusion.
Imports. It imports the bundles OAIQ068A035, OAIQ068A036, OAIQ068A037 and OAIQ068A038 of this split.
Imported by (directly, in this split): the bundles OAIQ068A043, OAIQ068A044 and OAIQ068A045; the proofs of OAI_PiExponentSeshadri_Geometry_isAffineOpen_of_fullSupport_preimage, OAI.PiExponentSeshadri.Geometry.isAffineOpen_of_fullSupport_preimage_q68, OAI_PiExponent_BlowupCurveMargin_margin_of_contracted, OAI.PiExponent.BlowupCurveMargin.margin_of_contracted_q68, OAI_PiExponent_BlowupCurveMargin_margin_of_image_outside_chart, OAI.PiExponent.BlowupCurveMargin.margin_of_image_outside_chart_q68, OAI_PiExponent_BlowupCurveMargin_margin_of_nonnegative_degree, OAI.PiExponent.BlowupCurveMargin.margin_of_nonnegative_degree_q68, OAI_PiExponent_BlowupJetSurjectivity_eventual_blowup_jetRestriction_surjective_of_section_comparison, OAI.PiExponent.BlowupJetSurjectivity.eventual_blowup_jetRestriction_surjective_of_section_comparison_q68, OAI_PiExponent_CurveCycle_tensor_euler_margin, OAI.PiExponent.CurveCycle.tensor_euler_margin_q68, OAI_PiExponent_CurveCycle_zero_lengthNat_eq_component_sum, OAI.PiExponent.CurveCycle.zero_lengthNat_eq_component_sum_q68, OAI_PiExponent_NumericalAmpleness_curveDegree_pos_of_ample, OAI.PiExponent.NumericalAmpleness.curveDegree_pos_of_ample_q68, OAI_PiExponent_NumericalAmpleness_isAmple_of_integral_closed_restrictions and OAI.PiExponent.NumericalAmpleness.isAmple_of_integral_closed_restrictions_q68.
import Mathlib
import Definitions.Def_OAIQ068A035
import Definitions.Def_OAIQ068A036
import Definitions.Def_OAIQ068A037
import Definitions.Def_OAIQ068A038
section
-- module Solutions.OAIQ068_PI.PiExponent_Ampleness_BlowupProperIntegral
attribute [-instance] _root_.OAI.PiExponent.ClosedImmersionSerreTransfer.pushforward_flasque _root_.OAI.PiExponent.CurveCycle.finite_componentsThrough _root_.OAI.PiExponent.CurveFinitePushforwardCoherent.pushforward_isFinitePresentation _root_.OAI.PiExponent.FiniteGlobalPresentation.presentation_map_isFinite _root_.OAI.PiExponent.fromSpecStalk_stalkMap_isIso _root_.OAI.PiExponent.instFiniteTypeSubtypeMvPolynomialMemSubmoduleHomogeneousSubmoduleOfNatNatOfFinite_solutions _root_.OAI.PiExponent.instIsScalarTowerSubtypeMvPolynomialMemSubmoduleHomogeneousSubmoduleOfNatNat_solutions _root_.OAI.PiExponentJets.PolynomialLocalResidueResolution.primeResidueImage_isPrime _root_.OAI.PiExponentSeshadri.ClosedPushforward.preservesEpis _root_.OAI.PiExponentSeshadri.ClosedPushforward.preservesFiniteColimits _root_.OAI.PiExponentSeshadri.ClosedPushforward.preservesHomology _root_.OAI.PiExponentSeshadri.ClosedPushforward.pushforward_isFinitePresentation _root_.OAI.PiExponentSeshadri.Geometry.opensMap_final _root_.OAI.PiExponentSeshadri.Geometry.schemeHasExt _root_.OAI.PiExponentSeshadri.Geometry.sheafHomModule _root_.OAI.PiExponentSeshadri.Geometry.sheafLinear _root_.OAI.PiExponentSeshadri.LaurentLattices.instIsPrincipalIdealRingLaurentPolynomial_solutions _root_.OAI.PiExponentSeshadri.LaurentLattices.laurent_finiteType _root_.OAI.PiExponentSiegel.W58.cotangentQuotientScalarTower
set_option linter.all false
set_option linter.unusedVariables false
set_option linter.unusedTactic false
set_option linter.unreachableTactic false
namespace OAI
noncomputable section
namespace PiExponentSeshadri.Geometry
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry TopologicalSpace
variable {X B : Scheme.{0}} {I : X.IdealSheafData} {π : B ⟶ X}
instance instIsOpenImmersionComplementLift (hπ : IsBlowup I π) : IsOpenImmersion hπ.complementLift := by
let := hπ.isIso_over_complement
dsimp only [IsBlowup.complementLift]
infer_instance
end PiExponentSeshadri.Geometry
end
end OAI
end
section
-- module Solutions.OAIQ068_PI.PiExponent_Ampleness_FinitePullbackAmple
attribute [-instance] _root_.OAI.PiExponent.ClosedImmersionSerreTransfer.pushforward_flasque _root_.OAI.PiExponent.CurveCycle.finite_componentsThrough _root_.OAI.PiExponent.CurveFinitePushforwardCoherent.pushforward_isFinitePresentation _root_.OAI.PiExponent.FiniteGlobalPresentation.presentation_map_isFinite _root_.OAI.PiExponent.GlueGlobalGenerators.instIsFiniteTypeOpensCarrierCarrierCommRingCatGlobalGeneratorsOfFiniteOfToScheme _root_.OAI.PiExponent.NegativeTwistPresentations.presentationMap_epi _root_.OAI.PiExponent.PresentedIdealIso.toIdealModule_isIso _root_.OAI.PiExponent.ProjectionFormula.line_isIso _root_.OAI.PiExponent.ProjectivePencil.sectionsMorphism_isFinite _root_.OAI.PiExponent.fromSpecStalk_stalkMap_isIso _root_.OAI.PiExponent.instFiniteTypeSubtypeMvPolynomialMemSubmoduleHomogeneousSubmoduleOfNatNatOfFinite_solutions _root_.OAI.PiExponent.instIsScalarTowerSubtypeMvPolynomialMemSubmoduleHomogeneousSubmoduleOfNatNat_solutions _root_.OAI.PiExponentJets.PolynomialLocalResidueResolution.primeResidueImage_isPrime _root_.OAI.PiExponentSeshadri.ClosedPushforward.preservesEpis _root_.OAI.PiExponentSeshadri.ClosedPushforward.preservesFiniteColimits _root_.OAI.PiExponentSeshadri.ClosedPushforward.preservesHomology _root_.OAI.PiExponentSeshadri.ClosedPushforward.pushforward_isFinitePresentation _root_.OAI.PiExponentSeshadri.Geometry.LineBundle.quasicoherent _root_.OAI.PiExponentSeshadri.Geometry.schemeHasExt _root_.OAI.PiExponentSeshadri.Geometry.sheafHomModule _root_.OAI.PiExponentSeshadri.Geometry.sheafLinear _root_.OAI.PiExponentSeshadri.InvertibleLocal.restrictedInclusion_mono _root_.OAI.PiExponentSeshadri.LaurentLattices.instIsPrincipalIdealRingLaurentPolynomial_solutions _root_.OAI.PiExponentSeshadri.LaurentLattices.laurent_finiteType _root_.OAI.PiExponentSeshadri.ProjectiveGeometry.homogeneous_isReduced _root_.OAI.PiExponentSeshadri.ProjectiveGeometry.proj_irreducible _root_.OAI.PiExponentSeshadri.ProjectiveGeometry.proj_isIntegral _root_.OAI.PiExponentSeshadri.ProjectiveGeometry.proj_isReduced _root_.OAI.PiExponentSeshadri.ReesGrading.exceptionalInclusion_mono _root_.OAI.PiExponentSeshadri.ReesGrading.polynomial_isReduced _root_.OAI.PiExponentSiegel.W58.cotangentQuotientScalarTower
set_option linter.all false
set_option linter.unusedVariables false
set_option linter.unusedTactic false
set_option linter.unreachableTactic false
namespace OAI
noncomputable section
namespace PiExponentSeshadri.Geometry
open AlgebraicGeometry CategoryTheory TopologicalSpace
variable {X Y : Scheme.{0}}
theorem LineBundle.IsAmple.pullback_finite [CompactSpace X] [IsIntegral Y] [CompactSpace Y]
(L : LineBundle X) (hL : L.IsAmple) (f : Y ⟶ X) [IsFinite f] :
(L.pullback f).IsAmple := by
obtain ⟨d, hd, l, s, hc, ha, _⟩ := L.ample_common_degree_cover hL
let t (i : Fin l) := pullbackPowerSection L f d (s i)
have ht (i : Fin l) : sectionOpen Y (t i) = f ⁻¹ᵁ sectionOpen X (s i) :=
sectionOpen_pullbackPowerSection L f d (s i)
have htc : (⨆ i, sectionOpen Y (t i)) = ⊤ := by
apply top_le_iff.mp
intro y _
have hy : f y ∈ ⨆ i, sectionOpen X (s i) := by rw [hc]; trivial
obtain ⟨i, hi⟩ := Opens.mem_iSup.mp hy
exact Opens.mem_iSup.mpr ⟨i, by rw [ht]; exact hi⟩
have hta (i : Fin l) : IsAffineOpen (sectionOpen Y (t i)) := by
rw [ht]
exact (ha i).preimage f
exact LineBundle.IsAmple.of_pow (L.pullback f) hd
(((L.pullback f).pow d).ample_of_affine_section_cover t htc hta)
end PiExponentSeshadri.Geometry
end
end OAI
end
section
-- module Solutions.OAIQ068_PI.PiExponent_Cohomology_CurveNormalizationCohomology
attribute [-instance] _root_.OAI.PiExponent.ClosedImmersionSerreTransfer.pushforward_flasque _root_.OAI.PiExponent.CurveCycle.finite_componentsThrough _root_.OAI.PiExponent.CurveFinitePushforwardCoherent.pushforward_isFinitePresentation _root_.OAI.PiExponent.NegativeTwistPresentations.presentationMap_epi _root_.OAI.PiExponent.PresentedIdealIso.toIdealModule_isIso _root_.OAI.PiExponent.ProjectionFormula.line_isIso _root_.OAI.PiExponent.ProjectivePencil.sectionsMorphism_isFinite _root_.OAI.PiExponent.fromSpecStalk_stalkMap_isIso _root_.OAI.PiExponent.instFiniteTypeSubtypeMvPolynomialMemSubmoduleHomogeneousSubmoduleOfNatNatOfFinite_solutions _root_.OAI.PiExponent.instIsScalarTowerSubtypeMvPolynomialMemSubmoduleHomogeneousSubmoduleOfNatNat_solutions _root_.OAI.PiExponentJets.PolynomialLocalResidueResolution.primeResidueImage_isPrime _root_.OAI.PiExponentSeshadri.ClosedPushforward.preservesEpis _root_.OAI.PiExponentSeshadri.ClosedPushforward.preservesFiniteColimits _root_.OAI.PiExponentSeshadri.ClosedPushforward.preservesHomology _root_.OAI.PiExponentSeshadri.ClosedPushforward.pushforward_isFinitePresentation _root_.OAI.PiExponentSeshadri.Geometry.LineBundle.quasicoherent _root_.OAI.PiExponentSeshadri.Geometry.opensMap_final _root_.OAI.PiExponentSeshadri.Geometry.schemeHasExt _root_.OAI.PiExponentSeshadri.Geometry.sheafHomModule _root_.OAI.PiExponentSeshadri.Geometry.sheafLinear _root_.OAI.PiExponentSeshadri.InvertibleLocal.restrictedInclusion_mono _root_.OAI.PiExponentSeshadri.LaurentLattices.instIsPrincipalIdealRingLaurentPolynomial_solutions _root_.OAI.PiExponentSeshadri.LaurentLattices.laurent_finiteType _root_.OAI.PiExponentSeshadri.ProjectiveGeometry.homogeneous_isReduced _root_.OAI.PiExponentSeshadri.ProjectiveGeometry.proj_irreducible _root_.OAI.PiExponentSeshadri.ProjectiveGeometry.proj_isIntegral _root_.OAI.PiExponentSeshadri.ProjectiveGeometry.proj_isReduced _root_.OAI.PiExponentSeshadri.PullbackTensor.line_isIso _root_.OAI.PiExponentSeshadri.PullbackTensor.power_step_isIso _root_.OAI.PiExponentSeshadri.ReesGrading.exceptionalInclusion_mono _root_.OAI.PiExponentSeshadri.ReesGrading.polynomial_isReduced _root_.OAI.PiExponentSiegel.W58.cotangentQuotientScalarTower
set_option linter.all false
set_option linter.unusedVariables false
set_option linter.unusedTactic false
set_option linter.unreachableTactic false
namespace OAI
noncomputable section
namespace PiExponent.CurveNormalizationModel
open AlgebraicGeometry CategoryTheory CategoryTheory.Limits CategoryTheory.Abelian
open PiExponent.CurveZeroPole
open PiExponentSeshadri.Geometry
variable {F E : Type} [Field F] [Field E] [Algebra F E]
variable (f : E) (hf : Transcendental F f)
variable [CharZero F] [FiniteDimensional (IntermediateField.adjoin F {f}) E]
attribute [local instance] OAI.PiExponent.CurveNormalizationModel.instHasExtModulesParameterCurve
theorem parameterCurve_ext_zero
(M : (parameterCurve f hf).Modules) [M.IsQuasicoherent]
(q : ℕ) (hq : 2 ≤ q)
(x : Ext.{1} (C := (parameterCurve f hf).Modules)
(parameterCurveUnit f hf) M q) : x = 0 := by
exact PiExponent.SerreVanishing.ext_eq_zero_of_affine_cover 2 (by omega)
(parameterCurveAffineOpens f hf) (parameterCurveAffineOpens_affine f hf)
(parameterCurveAffineOpens_cover f hf) M q hq x
theorem parameterCurve_lineBundle_ext_zero
(L : LineBundle (parameterCurve f hf)) (q : ℕ) (hq : 2 ≤ q)
(x : Ext.{1} (C := (parameterCurve f hf).Modules)
(parameterCurveUnit f hf) L.sheaf q) :
x = 0 := by
let : L.sheaf.IsFinitePresentation :=
PiExponent.GeometrySupport.LineBundleCoherent.lineBundle_isFinitePresentation L
let : L.sheaf.IsQuasicoherent :=
(SheafOfModules.IsFinitePresentation.exists_quasicoherentData L.sheaf).choose.isQuasicoherent
exact parameterCurve_ext_zero f hf L.sheaf q hq x
end PiExponent.CurveNormalizationModel
end
end OAI
end
section
-- module Solutions.OAIQ068_PI.PiExponent_Cohomology_FiniteLineEuler
attribute [-instance] _root_.OAI.PiExponent.ClosedImmersionSerreTransfer.pushforward_flasque _root_.OAI.PiExponent.CurveCycle.finite_componentsThrough _root_.OAI.PiExponent.CurveFinitePushforwardCoherent.pushforward_isFinitePresentation _root_.OAI.PiExponent.NegativeTwistPresentations.presentationMap_epi _root_.OAI.PiExponent.PresentedIdealIso.toIdealModule_isIso _root_.OAI.PiExponent.ProjectionFormula.line_isIso _root_.OAI.PiExponent.ProjectionFormula.unit_isIso _root_.OAI.PiExponent.ProjectivePencil.sectionsMorphism_isFinite _root_.OAI.PiExponent.fromSpecStalk_stalkMap_isIso _root_.OAI.PiExponent.instFiniteTypeSubtypeMvPolynomialMemSubmoduleHomogeneousSubmoduleOfNatNatOfFinite_solutions _root_.OAI.PiExponent.instIsScalarTowerSubtypeMvPolynomialMemSubmoduleHomogeneousSubmoduleOfNatNat_solutions _root_.OAI.PiExponentJets.PolynomialLocalResidueResolution.primeResidueImage_isPrime _root_.OAI.PiExponentSeshadri.ClosedPushforward.preservesEpis _root_.OAI.PiExponentSeshadri.ClosedPushforward.preservesFiniteColimits _root_.OAI.PiExponentSeshadri.ClosedPushforward.preservesHomology _root_.OAI.PiExponentSeshadri.ClosedPushforward.pushforward_isFinitePresentation _root_.OAI.PiExponentSeshadri.Geometry.LineBundle.quasicoherent _root_.OAI.PiExponentSeshadri.Geometry.opensMap_final _root_.OAI.PiExponentSeshadri.InvertibleLocal.restrictedInclusion_mono _root_.OAI.PiExponentSeshadri.LaurentLattices.instIsPrincipalIdealRingLaurentPolynomial_solutions _root_.OAI.PiExponentSeshadri.LaurentLattices.laurent_finiteType _root_.OAI.PiExponentSeshadri.ProjectiveGeometry.homogeneous_isReduced _root_.OAI.PiExponentSeshadri.ProjectiveGeometry.proj_irreducible _root_.OAI.PiExponentSeshadri.ProjectiveGeometry.proj_isIntegral _root_.OAI.PiExponentSeshadri.ProjectiveGeometry.proj_isReduced _root_.OAI.PiExponentSeshadri.PullbackTensor.line_isIso _root_.OAI.PiExponentSeshadri.PullbackTensor.power_step_isIso _root_.OAI.PiExponentSeshadri.ReesGrading.exceptionalInclusion_mono _root_.OAI.PiExponentSeshadri.ReesGrading.polynomial_isReduced _root_.OAI.PiExponentSiegel.W58.cotangentQuotientScalarTower
set_option linter.all false
set_option linter.unusedVariables false
set_option linter.unusedTactic false
set_option linter.unreachableTactic false
namespace OAI
noncomputable section
namespace PiExponentSeshadri.FiniteSupport
open CategoryTheory AlgebraicGeometry PiExponentSeshadri.Geometry
variable {X Y : Scheme.{0}}
theorem finite_line_pushforward_euler (f : X ⟶ Y)
(g : Y ⟶ Spec (CommRingCat.of ℂ)) [IsProper (f ≫ g)] [Finite X]
(L : LineBundle X) (d : ℕ) :
eulerCharacteristic g d ((Scheme.Modules.pushforward f).obj L.sheaf) =
let _ : Algebra ℂ Γ(X,⊤) := (baseScalars (f ≫ g)).toAlgebra
(Module.finrank ℂ Γ(X,⊤) : ℤ) := by
let : DiscreteTopology X := proper_finite_discrete (f ≫ g)
obtain ⟨e⟩ := lineBundle_trivial L
rw [eulerCharacteristic_iso g ((Scheme.Modules.pushforward f).mapIso e) d]
exact finite_pushforward_euler f g d
theorem finite_line_euler_eq_sum_stalk_lengths (f : X ⟶ Y)
(g : Y ⟶ Spec (CommRingCat.of ℂ)) [IsProper (f ≫ g)] [Fintype X]
(L : LineBundle X) (d : ℕ) :
eulerCharacteristic g d ((Scheme.Modules.pushforward f).obj L.sheaf) =
∑ x : X, ((Module.length (X.presheaf.stalk x) (X.presheaf.stalk x)).toNat : ℤ) := by
calc
_ = eulerCharacteristic (f ≫ g) d (structureSheaf X) :=
(finite_line_pushforward_euler f g L d).trans (proper_finite_euler (f ≫ g) d).symm
_ = _ := proper_finite_euler_eq_sum_stalk_lengths (f ≫ g) d
end PiExponentSeshadri.FiniteSupport
end
end OAI
end
section
-- module Solutions.OAIQ068_PI.PiExponent_Geometry_CartierDegreeLength
attribute [-instance] _root_.OAI.PiExponent.ClosedImmersionSerreTransfer.pushforward_flasque _root_.OAI.PiExponent.CurveCycle.finite_componentsThrough _root_.OAI.PiExponent.CurveFinitePushforwardCoherent.pushforward_isFinitePresentation _root_.OAI.PiExponent.GlueGlobalGenerators.instIsFiniteTypeOpensCarrierCarrierCommRingCatGlobalGeneratorsOfFiniteOfToScheme _root_.OAI.PiExponent.NegativeTwistPresentations.presentationMap_epi _root_.OAI.PiExponent.PresentedIdealIso.toIdealModule_isIso _root_.OAI.PiExponent.ProjectionFormula.line_isIso _root_.OAI.PiExponent.ProjectionFormula.unit_isIso _root_.OAI.PiExponent.ProjectivePencil.sectionsMorphism_isFinite _root_.OAI.PiExponent.fromSpecStalk_stalkMap_isIso _root_.OAI.PiExponent.instFiniteTypeSubtypeMvPolynomialMemSubmoduleHomogeneousSubmoduleOfNatNatOfFinite_solutions _root_.OAI.PiExponent.instIsScalarTowerSubtypeMvPolynomialMemSubmoduleHomogeneousSubmoduleOfNatNat_solutions _root_.OAI.PiExponentJets.PolynomialLocalResidueResolution.primeResidueImage_isPrime _root_.OAI.PiExponentSeshadri.ClosedPushforward.preservesEpis _root_.OAI.PiExponentSeshadri.ClosedPushforward.preservesFiniteColimits _root_.OAI.PiExponentSeshadri.ClosedPushforward.preservesHomology _root_.OAI.PiExponentSeshadri.ClosedPushforward.pushforward_isFinitePresentation _root_.OAI.PiExponentSeshadri.Geometry.LineBundle.quasicoherent _root_.OAI.PiExponentSeshadri.InvertibleLocal.restrictedInclusion_mono _root_.OAI.PiExponentSeshadri.LaurentLattices.instIsPrincipalIdealRingLaurentPolynomial_solutions _root_.OAI.PiExponentSeshadri.LaurentLattices.laurent_finiteType _root_.OAI.PiExponentSeshadri.Projective.framedSectionsMorphism_proper _root_.OAI.PiExponentSeshadri.ProjectiveGeometry.homogeneous_isReduced _root_.OAI.PiExponentSeshadri.ProjectiveGeometry.proj_irreducible _root_.OAI.PiExponentSeshadri.ProjectiveGeometry.proj_isIntegral _root_.OAI.PiExponentSeshadri.ProjectiveGeometry.proj_isReduced _root_.OAI.PiExponentSeshadri.PullbackTensor.line_isIso _root_.OAI.PiExponentSeshadri.PullbackTensor.power_step_isIso _root_.OAI.PiExponentSeshadri.PullbackTensor.unit_isIso _root_.OAI.PiExponentSeshadri.ReesGrading.exceptionalInclusion_mono _root_.OAI.PiExponentSeshadri.ReesGrading.polynomial_isReduced _root_.OAI.PiExponentSiegel.W58.cotangentQuotientScalarTower
set_option linter.all false
set_option linter.unusedVariables false
set_option linter.unusedTactic false
set_option linter.unreachableTactic false
namespace OAI
noncomputable section
open CategoryTheory AlgebraicGeometry TopologicalSpace
open PiExponentSeshadri.Geometry PiExponentSeshadri.Frames
namespace PiExponent.CartierDegreeLength
theorem cartier_euler_difference_eq_sum_local_lengths
{X : Scheme.{0}} [IsIntegral X]
(p : X ⟶ Spec (CommRingCat.of ℂ)) [IsProper p]
(hd : topologicalKrullDim X ≤ 1)
(M N : LineBundle X) (φ : M.sheaf ⟶ N.sheaf) [Mono φ]
(I : X.IdealSheafData) (hI : I ≠ ⊥)
(heq : ∀ x : X, ∃ U : X.affineOpens, x ∈ U.1 ∧
∃ e : M.sheaf.restrict U.1.ι ≅ O U.1.toScheme,
∃ d : N.sheaf.restrict U.1.ι ≅ O U.1.toScheme,
I.ideal U = Ideal.span {U.1.topIso.hom
(endValue (e.inv ≫ (Scheme.Modules.restrictFunctor U.1.ι).map φ ≫ d.hom))})
(hfiniteM : ∀ n ≤ 1, letI := Module.compHom (cohomology M.sheaf n) (baseScalars p)
FiniteDimensional ℂ (cohomology M.sheaf n))
(hfiniteN : ∀ n ≤ 1, letI := Module.compHom (cohomology N.sheaf n) (baseScalars p)
FiniteDimensional ℂ (cohomology N.sheaf n))
[Subsingleton (cohomology M.sheaf 2)] :
letI : Finite I.subscheme := finite_subscheme_of_curve p hd I hI
letI : Fintype I.subscheme := Fintype.ofFinite _
eulerCharacteristic p 1 N.sheaf - eulerCharacteristic p 1 M.sheaf =
∑ x : I.subscheme,
((Module.length (I.subscheme.presheaf.stalk x)
(I.subscheme.presheaf.stalk x)).toNat : ℤ) := by
let : Finite I.subscheme := finite_subscheme_of_curve p hd I hI
let : Fintype I.subscheme := Fintype.ofFinite _
obtain ⟨hz, hseq⟩ := PiExponentSeshadri.CartierSequence.exact p M N φ I heq
have hfiniteZ (n : ℕ) (_hn : n ≤ 1) :=
PiExponentSeshadri.FiniteSupport.finite_line_pushforward_finiteDimensional
I.subschemeι p (N.pullback I.subschemeι) n
have h := eulerCharacteristic_add p hseq 1 hfiniteM hfiniteN hfiniteZ
have hdiff : eulerCharacteristic p 1 N.sheaf - eulerCharacteristic p 1 M.sheaf =
eulerCharacteristic p 1
((Scheme.Modules.pushforward I.subschemeι).obj
((Scheme.Modules.pullback I.subschemeι).obj N.sheaf)) := by
exact sub_eq_iff_eq_add.mpr (by simpa [add_comm] using h)
exact hdiff.trans
(PiExponentSeshadri.FiniteSupport.finite_line_euler_eq_sum_stalk_lengths
I.subschemeι p (N.pullback I.subschemeι) 1)
end PiExponent.CartierDegreeLength
end
end OAI
end
section
-- module Solutions.OAIQ068_PI.PiExponent_Geometry_CurveEffectiveTwist
attribute [-instance] _root_.OAI.PiExponent.ClosedImmersionSerreTransfer.pushforward_flasque _root_.OAI.PiExponent.CurveCycle.finite_componentsThrough _root_.OAI.PiExponent.CurveFinitePushforwardCoherent.pushforward_isFinitePresentation _root_.OAI.PiExponent.NegativeTwistPresentations.presentationMap_epi _root_.OAI.PiExponent.PresentedIdealIso.toIdealModule_isIso _root_.OAI.PiExponent.ProjectionFormula.line_isIso _root_.OAI.PiExponent.ProjectionFormula.unit_isIso _root_.OAI.PiExponent.ProjectivePencil.sectionsMorphism_isFinite _root_.OAI.PiExponent.fromSpecStalk_stalkMap_isIso _root_.OAI.PiExponent.instFiniteTypeSubtypeMvPolynomialMemSubmoduleHomogeneousSubmoduleOfNatNatOfFinite_solutions _root_.OAI.PiExponent.instIsScalarTowerSubtypeMvPolynomialMemSubmoduleHomogeneousSubmoduleOfNatNat_solutions _root_.OAI.PiExponentJets.PolynomialLocalResidueResolution.primeResidueImage_isPrime _root_.OAI.PiExponentSeshadri.ClosedPushforward.preservesEpis _root_.OAI.PiExponentSeshadri.ClosedPushforward.preservesFiniteColimits _root_.OAI.PiExponentSeshadri.ClosedPushforward.preservesHomology _root_.OAI.PiExponentSeshadri.ClosedPushforward.pushforward_isFinitePresentation _root_.OAI.PiExponentSeshadri.Geometry.LineBundle.quasicoherent _root_.OAI.PiExponentSeshadri.Geometry.schemeHasExt _root_.OAI.PiExponentSeshadri.Geometry.sheafHomModule _root_.OAI.PiExponentSeshadri.Geometry.sheafLinear _root_.OAI.PiExponentSeshadri.InvertibleLocal.restrictedInclusion_mono _root_.OAI.PiExponentSeshadri.LaurentLattices.instIsPrincipalIdealRingLaurentPolynomial_solutions _root_.OAI.PiExponentSeshadri.LaurentLattices.laurent_finiteType _root_.OAI.PiExponentSeshadri.ProjectiveGeometry.homogeneous_isReduced _root_.OAI.PiExponentSeshadri.ProjectiveGeometry.proj_irreducible _root_.OAI.PiExponentSeshadri.ProjectiveGeometry.proj_isIntegral _root_.OAI.PiExponentSeshadri.ProjectiveGeometry.proj_isReduced _root_.OAI.PiExponentSeshadri.ReesGrading.exceptionalInclusion_mono _root_.OAI.PiExponentSeshadri.ReesGrading.polynomial_isReduced _root_.OAI.PiExponentSiegel.W58.cotangentQuotientScalarTower
set_option linter.all false
set_option linter.unusedVariables false
set_option linter.unusedTactic false
set_option linter.unreachableTactic false
namespace OAI
namespace PiExponent.CurveDegree
noncomputable section
open AlgebraicGeometry CategoryTheory CategoryTheory.Limits TopologicalSpace
open PiExponentSeshadri.Geometry PiExponentSeshadri.Frames PiExponentSeshadri.SectionOpens
variable {X : Scheme.{0}} [IsIntegral X]
theorem exists_effective_twist [NoetherianSpace X]
(H : LineBundle X) (hH : H.IsAmple) (L : LineBundle X) :
∃ A : LineBundle X,
(∃ t : GlobalSections X A.sheaf, t ≠ 0) ∧
(∃ u : GlobalSections X (A.tensor L).sheaf, u ≠ 0) := by
obtain ⟨d, hd, k, s, hcover, haffine, hcoverData⟩ := H.ample_common_degree_cover hH
let := PiExponent.GeometrySupport.LineBundleCoherent.lineBundle_isFinitePresentation L
obtain ⟨N, hN⟩ := AmpleGlobalGeneration.eventual_global_generators_of_section_cover
(H.pow d) L.sheaf s hcover haffine
obtain ⟨G, hG⟩ := hN N le_rfl
let A := (H.pow d).pow N
obtain ⟨x⟩ : Nonempty X := inferInstance
have hx : x ∈ ⨆ i, sectionOpen X (s i) := by rw [hcover]; trivial
obtain ⟨i, hi⟩ := Opens.mem_iSup.mp hx
let t := powerSection (s i) N
have ht : t ≠ 0 := section_ne_zero_of_mem_isoOpen A t x
(sectionOpen_le_powerSection (s i) N hi)
have hu := nonzero_section_of_generators (A.tensor L)
(SheafOfModules.GeneratingSections.equivOfIso (twistLineIso (H.pow d) L N) G)
exact ⟨A, ⟨t, ht⟩, hu⟩
end
end PiExponent.CurveDegree
end OAI
end
section
-- module Solutions.OAIQ068_PI.PiExponent_Geometry_CurveDegreeAdditivity
attribute [-instance] _root_.OAI.PiExponent.ClosedImmersionSerreTransfer.pushforward_flasque _root_.OAI.PiExponent.CurveCycle.finite_componentsThrough _root_.OAI.PiExponent.CurveFinitePushforwardCoherent.pushforward_isFinitePresentation _root_.OAI.PiExponent.NegativeTwistPresentations.presentationMap_epi _root_.OAI.PiExponent.PresentedIdealIso.toIdealModule_isIso _root_.OAI.PiExponent.ProjectionFormula.line_isIso _root_.OAI.PiExponent.ProjectionFormula.unit_isIso _root_.OAI.PiExponent.ProjectivePencil.sectionsMorphism_isFinite _root_.OAI.PiExponent.fromSpecStalk_stalkMap_isIso _root_.OAI.PiExponent.instFiniteTypeSubtypeMvPolynomialMemSubmoduleHomogeneousSubmoduleOfNatNatOfFinite_solutions _root_.OAI.PiExponent.instIsScalarTowerSubtypeMvPolynomialMemSubmoduleHomogeneousSubmoduleOfNatNat_solutions _root_.OAI.PiExponentJets.PolynomialLocalResidueResolution.primeResidueImage_isPrime _root_.OAI.PiExponentSeshadri.ClosedPushforward.preservesEpis _root_.OAI.PiExponentSeshadri.ClosedPushforward.preservesFiniteColimits _root_.OAI.PiExponentSeshadri.ClosedPushforward.preservesHomology _root_.OAI.PiExponentSeshadri.ClosedPushforward.pushforward_isFinitePresentation _root_.OAI.PiExponentSeshadri.Geometry.LineBundle.quasicoherent _root_.OAI.PiExponentSeshadri.InvertibleLocal.restrictedInclusion_mono _root_.OAI.PiExponentSeshadri.LaurentLattices.instIsPrincipalIdealRingLaurentPolynomial_solutions _root_.OAI.PiExponentSeshadri.LaurentLattices.laurent_finiteType _root_.OAI.PiExponentSeshadri.Projective.framedSectionsMorphism_proper _root_.OAI.PiExponentSeshadri.ProjectiveGeometry.homogeneous_isReduced _root_.OAI.PiExponentSeshadri.ProjectiveGeometry.proj_irreducible _root_.OAI.PiExponentSeshadri.ProjectiveGeometry.proj_isIntegral _root_.OAI.PiExponentSeshadri.ProjectiveGeometry.proj_isReduced _root_.OAI.PiExponentSeshadri.ReesGrading.exceptionalInclusion_mono _root_.OAI.PiExponentSeshadri.ReesGrading.polynomial_isReduced _root_.OAI.PiExponentSiegel.W58.cotangentQuotientScalarTower
set_option linter.all false
set_option linter.unusedVariables false
set_option linter.unusedTactic false
set_option linter.unreachableTactic false
namespace OAI
namespace PiExponent.CurveDegree
noncomputable section
open AlgebraicGeometry CategoryTheory CategoryTheory.Limits TopologicalSpace
open PiExponentSeshadri.Geometry PiExponentSeshadri.Frames
open PiExponent.SectionZeroIdeal PiExponent.CartierPowerFrames
variable {X : Scheme.{0}}
theorem section_tensor_euler_add [IsIntegral X]
(p : X ⟶ Spec (CommRingCat.of ℂ)) [IsProper p]
(hd : topologicalKrullDim X ≤ 1)
(hfinite : FiniteLineCohomology p) (hH2 : LineCohomologyTwoZero X)
(L M : LineBundle X) (s : GlobalSections X L.sheaf) (hs : s ≠ 0) :
eulerCharacteristic p 1 (L.tensor M).sheaf - eulerCharacteristic p 1 M.sheaf =
eulerCharacteristic p 1 L.sheaf - eulerCharacteristic p 1 (structureSheaf X) := by
let hsMono : Mono s := L.mono_section s hs
let I := zeroIdeal L s
have hI : I ≠ ⊥ := zeroIdeal_ne_bot L s hs
let φ := sectionMultiplyLeft L.sheaf M.sheaf s
let : Mono (moduleTensorMap s (𝟙 M.sheaf)) := moduleTensorMap_mono s M
let hφMono : Mono φ := mono_comp _ _
have heqTensor : ∀ x : X, ∃ U : X.affineOpens, x ∈ U.1 ∧
∃ f : M.sheaf.restrict U.1.ι ≅ O U.1.toScheme,
∃ e : (L.tensor M).sheaf.restrict U.1.ι ≅ O U.1.toScheme,
I.ideal U = Ideal.span {U.1.topIso.hom
(endValue (f.inv ≫ (Scheme.Modules.restrictFunctor U.1.ι).map φ ≫ e.hom))} := by
intro x
obtain ⟨U, hx, ⟨e⟩, ⟨f⟩⟩ := common_affine_frames L M x
refine ⟨U, hx, f, _root_.OAI.PiExponent.CartierPowerFrames.tensorFrame L.sheaf M.sheaf U.1 e f, ?_⟩
exact (zeroIdeal_on_frame L s U e).trans
(tensor_multiply_ideal L.sheaf M.sheaf s U e f).symm
have heqSection : ∀ x : X, ∃ U : X.affineOpens, x ∈ U.1 ∧
∃ f : (L.pow 0).sheaf.restrict U.1.ι ≅ O U.1.toScheme,
∃ e : L.sheaf.restrict U.1.ι ≅ O U.1.toScheme,
I.ideal U = Ideal.span {U.1.topIso.hom
(endValue (f.inv ≫ (Scheme.Modules.restrictFunctor U.1.ι).map s ≫ e.hom))} := by
intro x
obtain ⟨U, hx, ⟨e⟩, ⟨f⟩⟩ := common_affine_frames L M x
refine ⟨U, hx, Scheme.Modules.restrictUnitIso U.1.ι, e, ?_⟩
simpa only [coefficient, restrictSection, Category.assoc] using! zeroIdeal_on_frame L s U e
let : Subsingleton (cohomology M.sheaf 2) := hH2 M
let : Subsingleton (cohomology (L.pow 0).sheaf 2) := hH2 (L.pow 0)
have hTensor := @CartierDegreeLength.cartier_euler_difference_eq_sum_local_lengths
X inferInstance p inferInstance hd M (L.tensor M) φ hφMono I hI heqTensor (hfinite M) (hfinite (L.tensor M))
have hSection := @CartierDegreeLength.cartier_euler_difference_eq_sum_local_lengths
X inferInstance p inferInstance hd (L.pow 0) L s hsMono I hI heqSection (hfinite (L.pow 0)) (hfinite L)
exact hTensor.trans hSection.symm
theorem tensor_euler_add [IsIntegral X]
(p : X ⟶ Spec (CommRingCat.of ℂ)) [IsProper p]
(hd : topologicalKrullDim X ≤ 1) (H : LineBundle X) (hH : H.IsAmple)
(hfinite : FiniteLineCohomology p) (hH2 : LineCohomologyTwoZero X)
(L M : LineBundle X) :
eulerCharacteristic p 1 (L.tensor M).sheaf - eulerCharacteristic p 1 M.sheaf =
eulerCharacteristic p 1 L.sheaf - eulerCharacteristic p 1 (structureSheaf X) := by
let : IsLocallyNoetherian X := LocallyOfFiniteType.isLocallyNoetherian p
let : CompactSpace X := QuasiCompact.compactSpace_of_compactSpace p
let : IsNoetherian X := ⟨⟩
obtain ⟨A, ⟨t, ht⟩, ⟨u, hu⟩⟩ := exists_effective_twist H hH L
have h₀ := section_tensor_euler_add p hd hfinite hH2 A L t ht
have h₁ := section_tensor_euler_add p hd hfinite hH2 (A.tensor L) M u hu
have h₂ := section_tensor_euler_add p hd hfinite hH2 A (L.tensor M) t ht
have he := eulerCharacteristic_iso p (lineTensorAssoc A L M) 1
change eulerCharacteristic p 1 ((A.tensor L).tensor M).sheaf =
eulerCharacteristic p 1 (A.tensor (L.tensor M)).sheaf at he
omega
end
end PiExponent.CurveDegree
end OAI
end
section
-- module Solutions.OAIQ068_PI.PiExponent_Ampleness_CurveNormalizationPolarization
attribute [-instance] _root_.OAI.PiExponent.ClosedImmersionSerreTransfer.pushforward_flasque _root_.OAI.PiExponent.CurveCycle.finite_componentsThrough _root_.OAI.PiExponent.CurveFinitePushforwardCoherent.pushforward_isFinitePresentation _root_.OAI.PiExponent.NegativeTwistPresentations.presentationMap_epi _root_.OAI.PiExponent.PresentedIdealIso.toIdealModule_isIso _root_.OAI.PiExponent.ProjectionFormula.line_isIso _root_.OAI.PiExponent.ProjectionFormula.unit_isIso _root_.OAI.PiExponent.ProjectiveO1.projectiveSpace_diagonal_affine _root_.OAI.PiExponent.ProjectiveO1.projectiveSpace_noetherian _root_.OAI.PiExponent.ProjectiveO1.projectiveSpace_separated _root_.OAI.PiExponent.fromSpecStalk_stalkMap_isIso _root_.OAI.PiExponentJets.PolynomialLocalResidueResolution.primeResidueImage_isPrime _root_.OAI.PiExponentSeshadri.ClosedPushforward.preservesEpis _root_.OAI.PiExponentSeshadri.ClosedPushforward.preservesFiniteColimits _root_.OAI.PiExponentSeshadri.ClosedPushforward.preservesHomology _root_.OAI.PiExponentSeshadri.ClosedPushforward.pushforward_isFinitePresentation _root_.OAI.PiExponentSeshadri.InvertibleLocal.restrictedInclusion_mono _root_.OAI.PiExponentSeshadri.ProjectiveGeometry.homogeneous_isReduced _root_.OAI.PiExponentSeshadri.ProjectiveGeometry.proj_irreducible _root_.OAI.PiExponentSeshadri.ProjectiveGeometry.proj_isIntegral _root_.OAI.PiExponentSeshadri.ProjectiveGeometry.proj_isReduced _root_.OAI.PiExponentSeshadri.ReesGrading.exceptionalInclusion_mono _root_.OAI.PiExponentSeshadri.ReesGrading.polynomial_isReduced _root_.OAI.PiExponentSiegel.W58.cotangentQuotientScalarTower
set_option linter.all false
set_option linter.unusedVariables false
set_option linter.unusedTactic false
set_option linter.unreachableTactic false
namespace OAI
noncomputable section
namespace PiExponent.CurveNormalizationModel
open AlgebraicGeometry CategoryTheory
open PiExponentSeshadri.Geometry
variable {E : Type} [Field E] [Algebra ℂ E]
variable (f : E) (hf : Transcendental ℂ f)
variable [FiniteDimensional (IntermediateField.adjoin ℂ {f}) E]
theorem parameterCurvePolarization_ample : (parameterCurvePolarization f hf).IsAmple := by
let : CompactSpace (ProjectiveO1.projectiveSpace ℂ Bool) :=
QuasiCompact.compactSpace_of_compactSpace (polynomialProjectiveProjection ℂ Bool)
exact LineBundle.IsAmple.pullback_finite _ ProjectiveO1.lineBundle_ample
(parameterCurveProjection f hf)
theorem parameterCurve_lineCohomologyTwoZero :
CurveDegree.LineCohomologyTwoZero (parameterCurve f hf) := by
intro L
apply subsingleton_of_forall_eq 0
intro x
exact parameterCurve_lineBundle_ext_zero f hf L 2 (by omega) x
theorem parameterCurve_tensor_euler_add (L M : LineBundle (parameterCurve f hf)) :
eulerCharacteristic (parameterCurveStructureMap f hf) 1 (L.tensor M).sheaf -
eulerCharacteristic (parameterCurveStructureMap f hf) 1 M.sheaf =
eulerCharacteristic (parameterCurveStructureMap f hf) 1 L.sheaf -
eulerCharacteristic (parameterCurveStructureMap f hf) 1
(structureSheaf (parameterCurve f hf)) :=
CurveDegree.tensor_euler_add _ (parameterCurve_dimension_le_one f hf)
(parameterCurvePolarization f hf) (parameterCurvePolarization_ample f hf)
(parameterCurve_finiteLineCohomology f hf) (parameterCurve_lineCohomologyTwoZero f hf) L M
end PiExponent.CurveNormalizationModel
end
end OAI
end
section
-- module Solutions.OAIQ068_PI.PiExponent_Approximation_TwistPowerSection
attribute [-instance] _root_.OAI.PiExponent.ClosedImmersionSerreTransfer.pushforward_flasque _root_.OAI.PiExponent.CurveCycle.finite_componentsThrough _root_.OAI.PiExponent.CurveFinitePushforwardCoherent.pushforward_isFinitePresentation _root_.OAI.PiExponent.FiniteGlobalPresentation.presentation_map_isFinite _root_.OAI.PiExponent.GlueGlobalGenerators.instIsFiniteTypeOpensCarrierCarrierCommRingCatGlobalGeneratorsOfFiniteOfToScheme _root_.OAI.PiExponent.NegativeTwistPresentations.presentationMap_epi _root_.OAI.PiExponent.PresentedIdealIso.toIdealModule_isIso _root_.OAI.PiExponent.ProjectionFormula.line_isIso _root_.OAI.PiExponent.ProjectionFormula.unit_isIso _root_.OAI.PiExponent.ProjectivePencil.sectionsMorphism_isFinite _root_.OAI.PiExponent.fromSpecStalk_stalkMap_isIso _root_.OAI.PiExponent.instFiniteTypeSubtypeMvPolynomialMemSubmoduleHomogeneousSubmoduleOfNatNatOfFinite_solutions _root_.OAI.PiExponent.instIsScalarTowerSubtypeMvPolynomialMemSubmoduleHomogeneousSubmoduleOfNatNat_solutions _root_.OAI.PiExponentJets.PolynomialLocalResidueResolution.primeResidueImage_isPrime _root_.OAI.PiExponentSeshadri.ClosedPushforward.preservesEpis _root_.OAI.PiExponentSeshadri.ClosedPushforward.preservesFiniteColimits _root_.OAI.PiExponentSeshadri.ClosedPushforward.preservesHomology _root_.OAI.PiExponentSeshadri.ClosedPushforward.pushforward_isFinitePresentation _root_.OAI.PiExponentSeshadri.Geometry.LineBundle.quasicoherent _root_.OAI.PiExponentSeshadri.Geometry.schemeHasExt _root_.OAI.PiExponentSeshadri.Geometry.sheafHomModule _root_.OAI.PiExponentSeshadri.Geometry.sheafLinear _root_.OAI.PiExponentSeshadri.InvertibleLocal.restrictedInclusion_mono _root_.OAI.PiExponentSeshadri.LaurentLattices.instIsPrincipalIdealRingLaurentPolynomial_solutions _root_.OAI.PiExponentSeshadri.LaurentLattices.laurent_finiteType _root_.OAI.PiExponentSeshadri.Projective.framedSectionsMorphism_proper _root_.OAI.PiExponentSeshadri.ProjectiveGeometry.homogeneous_isReduced _root_.OAI.PiExponentSeshadri.ProjectiveGeometry.proj_irreducible _root_.OAI.PiExponentSeshadri.ProjectiveGeometry.proj_isIntegral _root_.OAI.PiExponentSeshadri.ProjectiveGeometry.proj_isReduced _root_.OAI.PiExponentSeshadri.ReesGrading.exceptionalInclusion_mono _root_.OAI.PiExponentSeshadri.ReesGrading.polynomial_isReduced _root_.OAI.PiExponentSiegel.W58.cotangentQuotientScalarTower
set_option linter.all false
set_option linter.unusedVariables false
set_option linter.unusedTactic false
set_option linter.unreachableTactic false
namespace OAI
namespace PiExponentSeshadri.Geometry
noncomputable section
open AlgebraicGeometry CategoryTheory TopologicalSpace Opposite MonoidalCategory
open PiExponentSeshadri.TensorPure PiExponentSeshadri.Frames
variable {X : Scheme.{0}}
theorem moduleTwistSection_unitIso (L : LineBundle X)
(s : structureSheaf X ⟶ L.sheaf) (n : ℕ) :
(moduleTwistSection L s n).app (structureSheaf X) ≫ (moduleTwistUnitIso L n).hom =
powerSection s n := by
induction n with
| zero =>
simp [moduleTwistSection, moduleTwistUnitIso, powerSection_zero]
exact Category.id_comp _
| succ n ih =>
apply (moduleSectionEquiv (modulePow X L.sheaf (n+1))).injective
change (moduleTensorComm (modulePow X L.sheaf n) L.sheaf).hom.app ⊤
((moduleTensorMap (moduleTwistUnitIso L n).hom (𝟙 L.sheaf)).app ⊤
((moduleSectionMultiplyRight ((moduleTwistFunctor L n).obj (structureSheaf X)) s).app ⊤
(((moduleTwistSection L s n).app (structureSheaf X)).app ⊤ (1 : Γ(X,⊤))))) =
(powerSection s (n+1)).app ⊤ (1 : Γ(X,⊤))
let v := ((moduleTwistSection L s n).app (structureSheaf X)).app ⊤ (1 : Γ(X,⊤))
have hm := congrArg (fun z => (moduleTensorComm (modulePow X L.sheaf n) L.sheaf).hom.app ⊤
((moduleTensorMap (moduleTwistUnitIso L n).hom (𝟙 L.sheaf)).app ⊤ z))
(moduleSectionMultiplyRight_pure ((moduleTwistFunctor L n).obj (structureSheaf X)) s ⊤ v)
have ht := congrArg (fun z => (moduleTensorComm (modulePow X L.sheaf n) L.sheaf).hom.app ⊤ z)
(TensorPure.map_pure (moduleTwistUnitIso L n).hom (𝟙 L.sheaf) ⊤ v
(s.app ⊤ (1 : Γ(X,⊤))))
have hc := moduleTensorComm_pure (modulePow X L.sheaf n) L.sheaf ⊤
((moduleTwistUnitIso L n).hom.app ⊤ v) (s.app ⊤ (1 : Γ(X,⊤)))
refine hm.trans (ht.trans (hc.trans (Eq.trans ?_ (power_succ_apply s n ⊤).symm)))
have hi := congrArg (fun f : structureSheaf X ⟶ modulePow X L.sheaf n =>
f.app ⊤ (1 : Γ(X,⊤))) ih
change (moduleTwistUnitIso L n).hom.app ⊤
(((moduleTwistSection L s n).app (structureSheaf X)).app ⊤ (1 : Γ(X,⊤))) =
(powerSection s n).app ⊤ (1 : Γ(X,⊤)) at hi
exact congrArg (fun z => pure L.sheaf (modulePow X L.sheaf n) ⊤
(s.app ⊤ (1 : Γ(X,⊤))) z) hi
lemma moduleTwistSection_unitIso_app (L : LineBundle X)
(s : structureSheaf X ⟶ L.sheaf) (n : ℕ) (U : X.Opens) (a : Γ(X,U)) :
(moduleTwistUnitIso L n).hom.app U
(((moduleTwistSection L s n).app (structureSheaf X)).app U a) =
(powerSection s n).app U a :=
congrArg (fun f : structureSheaf X ⟶ modulePow X L.sheaf n => f.app U a)
(moduleTwistSection_unitIso L s n)
end
end PiExponentSeshadri.Geometry
end OAI
end
section
-- module Solutions.OAIQ068_PI.PiExponent_Approximation_NoetherianPowerExtension
attribute [-instance] _root_.OAI.PiExponent.ClosedImmersionSerreTransfer.pushforward_flasque _root_.OAI.PiExponent.CurveCycle.finite_componentsThrough _root_.OAI.PiExponent.CurveFinitePushforwardCoherent.pushforward_isFinitePresentation _root_.OAI.PiExponent.GlueGlobalGenerators.instIsFiniteTypeOpensCarrierCarrierCommRingCatGlobalGeneratorsOfFiniteOfToScheme _root_.OAI.PiExponent.NegativeTwistPresentations.presentationMap_epi _root_.OAI.PiExponent.PresentedIdealIso.toIdealModule_isIso _root_.OAI.PiExponent.ProjectionFormula.line_isIso _root_.OAI.PiExponent.ProjectionFormula.unit_isIso _root_.OAI.PiExponent.ProjectivePencil.sectionsMorphism_isFinite _root_.OAI.PiExponent.fromSpecStalk_stalkMap_isIso _root_.OAI.PiExponent.instFiniteTypeSubtypeMvPolynomialMemSubmoduleHomogeneousSubmoduleOfNatNatOfFinite_solutions _root_.OAI.PiExponent.instIsScalarTowerSubtypeMvPolynomialMemSubmoduleHomogeneousSubmoduleOfNatNat_solutions _root_.OAI.PiExponentJets.PolynomialLocalResidueResolution.primeResidueImage_isPrime _root_.OAI.PiExponentSeshadri.ClosedPushforward.preservesEpis _root_.OAI.PiExponentSeshadri.ClosedPushforward.preservesFiniteColimits _root_.OAI.PiExponentSeshadri.ClosedPushforward.preservesHomology _root_.OAI.PiExponentSeshadri.ClosedPushforward.pushforward_isFinitePresentation _root_.OAI.PiExponentSeshadri.Geometry.LineBundle.quasicoherent _root_.OAI.PiExponentSeshadri.Geometry.schemeHasExt _root_.OAI.PiExponentSeshadri.Geometry.sheafHomModule _root_.OAI.PiExponentSeshadri.Geometry.sheafLinear _root_.OAI.PiExponentSeshadri.InvertibleLocal.restrictedInclusion_mono _root_.OAI.PiExponentSeshadri.LaurentLattices.instIsPrincipalIdealRingLaurentPolynomial_solutions _root_.OAI.PiExponentSeshadri.LaurentLattices.laurent_finiteType _root_.OAI.PiExponentSeshadri.Projective.framedSectionsMorphism_proper _root_.OAI.PiExponentSeshadri.ProjectiveGeometry.homogeneous_isReduced _root_.OAI.PiExponentSeshadri.ProjectiveGeometry.proj_irreducible _root_.OAI.PiExponentSeshadri.ProjectiveGeometry.proj_isIntegral _root_.OAI.PiExponentSeshadri.ProjectiveGeometry.proj_isReduced _root_.OAI.PiExponentSeshadri.ReesGrading.exceptionalInclusion_mono _root_.OAI.PiExponentSeshadri.ReesGrading.polynomial_isReduced _root_.OAI.PiExponentSiegel.W58.cotangentQuotientScalarTower
set_option linter.all false
set_option linter.unusedVariables false
set_option linter.unusedTactic false
set_option linter.unreachableTactic false
namespace OAI
namespace PiExponentSeshadri.Geometry
noncomputable section
open AlgebraicGeometry CategoryTheory TopologicalSpace Opposite
open PiExponentSeshadri.Frames
variable {X : Scheme}
theorem LineBundle.noetherian_power_extension [NoetherianSpace X] (L : LineBundle X)
(s : GlobalSections X L.sheaf) (f : Γ(X,sectionOpen X s)) :
∃ N : ℕ, ∀ n ≥ N, ∃ t : GlobalSections X (modulePow X L.sheaf n),
t.app (sectionOpen X s) (1 : Γ(X,sectionOpen X s)) =
f • (powerSection s n).app (sectionOpen X s) (1 : Γ(X,sectionOpen X s)) := by
have : (structureSheaf X).IsFinitePresentation :=
PiExponent.GeometrySupport.LineBundleCoherent.structureSheaf_isFinitePresentation
have : (structureSheaf X).IsQuasicoherent :=
(SheafOfModules.IsFinitePresentation.exists_quasicoherentData
(structureSheaf X)).choose.isQuasicoherent
obtain ⟨N, hN⟩ := PiExponent.TwistGlobalExtension.global_twist_extension_native L s
(structureSheaf X) f
refine ⟨N, fun n hn => ?_⟩
obtain ⟨z, hz⟩ := hN n hn
let P := (moduleTwistFunctor L n).obj (structureSheaf X)
let Q := modulePow X L.sheaf n
let D := sectionOpen X s
let e := moduleTwistUnitIso L n
let t : GlobalSections X Q := (moduleSectionEquiv Q).symm (e.hom.app ⊤ z)
refine ⟨t, ?_⟩
have htop : t.app ⊤ (1 : Γ(X,⊤)) = e.hom.app ⊤ z :=
(moduleSectionEquiv Q).apply_symm_apply _
have ht : Q.presheaf.map (homOfLE (show D ≤ ⊤ from le_top)).op
(e.hom.app ⊤ z) = t.app D (1 : Γ(X,D)) :=
(congrArg (fun x : Γ(Q,⊤) =>
Q.presheaf.map (homOfLE (show D ≤ ⊤ from le_top)).op x) htop).symm.trans
(section_value_natural t (homOfLE (show D ≤ ⊤ from le_top)))
have he := CategoryTheory.congr_fun
(e.hom.mapPresheaf.naturality (homOfLE (show D ≤ ⊤ from le_top)).op) z
change e.hom.app D (P.presheaf.map (homOfLE (show D ≤ ⊤ from le_top)).op z) =
Q.presheaf.map (homOfLE (show D ≤ ⊤ from le_top)).op (e.hom.app ⊤ z) at he
have hp := moduleTwistSection_unitIso_app L s n D f
calc
t.app D (1 : Γ(X,D)) =
Q.presheaf.map (homOfLE (show D ≤ ⊤ from le_top)).op (e.hom.app ⊤ z) := ht.symm
_ = e.hom.app D (P.presheaf.map (homOfLE (show D ≤ ⊤ from le_top)).op z) := he.symm
_ = e.hom.app D (((moduleTwistSection L s n).app (structureSheaf X)).app D f) :=
congrArg (fun x => e.hom.app D x) hz
_ = (powerSection s n).app D f := hp
_ = f • (powerSection s n).app D (1 : Γ(X,D)) := by
have hm := (powerSection s n).app_smul (r := f) (x := (1 : Γ(X,D)))
change (powerSection s n).app D (show Γ(X,D) from f * 1) = _ at hm
exact (congrArg ((powerSection s n).app D) (mul_one f)).symm.trans hm
theorem LineBundle.noetherian_power_extension_ratio [NoetherianSpace X] (L : LineBundle X)
(s : GlobalSections X L.sheaf) (f : Γ((sectionOpen X s).toScheme,⊤)) :
∃ N : ℕ, ∀ n ≥ N, ∃ t : GlobalSections X (modulePow X L.sheaf n),
restrictSection (sectionOpen X s).ι t = scalarEnd f ≫
restrictSection (sectionOpen X s).ι (powerSection s n) := by
obtain ⟨N, hN⟩ := L.noetherian_power_extension s ((sectionOpen X s).topIso.hom f)
refine ⟨N, fun n hn => ?_⟩
obtain ⟨t, ht⟩ := hN n hn
refine ⟨t, ?_⟩
apply (openSectionEquiv (modulePow X L.sheaf n) (sectionOpen X s)).injective
erw [openSectionEquiv_restrict, openSectionEquiv_scalar, openSectionEquiv_restrict]
exact ht
end
end PiExponentSeshadri.Geometry
end OAI
end
section
-- module Solutions.OAIQ068_PI.PiExponent_Ampleness_NoetherianAmpleProjectiveSections
attribute [-instance] _root_.OAI.PiExponent.ClosedImmersionSerreTransfer.pushforward_flasque _root_.OAI.PiExponent.CurveCycle.finite_componentsThrough _root_.OAI.PiExponent.CurveFinitePushforwardCoherent.pushforward_isFinitePresentation _root_.OAI.PiExponent.GlueGlobalGenerators.instIsFiniteTypeOpensCarrierCarrierCommRingCatGlobalGeneratorsOfFiniteOfToScheme _root_.OAI.PiExponent.NegativeTwistPresentations.presentationMap_epi _root_.OAI.PiExponent.PresentedIdealIso.toIdealModule_isIso _root_.OAI.PiExponent.ProjectionFormula.line_isIso _root_.OAI.PiExponent.ProjectionFormula.unit_isIso _root_.OAI.PiExponent.ProjectivePencil.sectionsMorphism_isFinite _root_.OAI.PiExponent.fromSpecStalk_stalkMap_isIso _root_.OAI.PiExponent.instFiniteTypeSubtypeMvPolynomialMemSubmoduleHomogeneousSubmoduleOfNatNatOfFinite_solutions _root_.OAI.PiExponent.instIsScalarTowerSubtypeMvPolynomialMemSubmoduleHomogeneousSubmoduleOfNatNat_solutions _root_.OAI.PiExponentJets.PolynomialLocalResidueResolution.primeResidueImage_isPrime _root_.OAI.PiExponentSeshadri.ClosedPushforward.preservesEpis _root_.OAI.PiExponentSeshadri.ClosedPushforward.preservesFiniteColimits _root_.OAI.PiExponentSeshadri.ClosedPushforward.preservesHomology _root_.OAI.PiExponentSeshadri.ClosedPushforward.pushforward_isFinitePresentation _root_.OAI.PiExponentSeshadri.Geometry.LineBundle.quasicoherent _root_.OAI.PiExponentSeshadri.Geometry.schemeHasExt _root_.OAI.PiExponentSeshadri.Geometry.sheafHomModule _root_.OAI.PiExponentSeshadri.Geometry.sheafLinear _root_.OAI.PiExponentSeshadri.InvertibleLocal.restrictedInclusion_mono _root_.OAI.PiExponentSeshadri.LaurentLattices.instIsPrincipalIdealRingLaurentPolynomial_solutions _root_.OAI.PiExponentSeshadri.LaurentLattices.laurent_finiteType _root_.OAI.PiExponentSeshadri.ProjectiveGeometry.homogeneous_isReduced _root_.OAI.PiExponentSeshadri.ProjectiveGeometry.proj_irreducible _root_.OAI.PiExponentSeshadri.ProjectiveGeometry.proj_isIntegral _root_.OAI.PiExponentSeshadri.ProjectiveGeometry.proj_isReduced _root_.OAI.PiExponentSeshadri.ReesGrading.exceptionalInclusion_mono _root_.OAI.PiExponentSeshadri.ReesGrading.polynomial_isReduced _root_.OAI.PiExponentSiegel.W58.cotangentQuotientScalarTower
set_option linter.all false
set_option linter.unusedVariables false
set_option linter.unusedTactic false
set_option linter.unreachableTactic false
namespace OAI
noncomputable section
namespace PiExponentSeshadri.Geometry
section
open CategoryTheory AlgebraicGeometry TopologicalSpace MvPolynomial
open scoped AlgebraicGeometry
open PiExponentSeshadri.Frames PiExponentSeshadri.Projective
variable {X : Scheme} {K ι : Type} [CommRing K] [Fintype ι]
theorem LineBundle.power_section_embedding_noetherian [NoetherianSpace X]
(p : X ⟶ Spec (CommRingCat.of K)) [IsProper p] (L : LineBundle X)
(s : ι → GlobalSections X L.sheaf)
(hc : (⨆ i, sectionOpen X (s i)) = ⊤)
(haff : ∀ i, IsAffineOpen (sectionOpen X (s i))) :
∃ n : ℕ, 0 < n ∧ ∃ σ : Type, ∃ _ : Fintype σ,
∃ t : σ → GlobalSections X (modulePow X L.sheaf n),
∃ ht : (⨆ i, SectionOpens.isoOpen (t i)) = ⊤,
IsClosedImmersion (sectionsMorphism
(p.appTop.hom.comp (Scheme.ΓSpecIso (CommRingCat.of K)).inv.hom) t ht) := by
classical
let k := p.appTop.hom.comp (Scheme.ΓSpecIso (CommRingCat.of K)).inv.hom
let U (i : ι) := sectionOpen X (s i)
have hfinite (i : ι) : ∃ m : ℕ, ∃ b : Fin m → Γ((U i).toScheme, ⊤),
Function.Surjective (eval₂Hom ((U i).ι.appTop.hom.comp k) b) := by
let : IsAffine (U i).toScheme := haff i
obtain ⟨m, b, hb⟩ := affine_coordinate_generators ((U i).ι ≫ p)
refine ⟨m, b, ?_⟩
simpa only [Scheme.Hom.comp_appTop, CommRingCat.hom_comp, RingHom.comp_assoc, k] using hb
choose m b hb using hfinite
choose N hN using fun i j => L.noetherian_power_extension_ratio (s i) (b i j)
let n := max 1 (Finset.univ.sup (fun v : (i : ι) × Fin (m i) => N v.1 v.2))
have hn : 0 < n := lt_of_lt_of_le Nat.zero_lt_one (le_max_left _ _)
have hn' (i : ι) (j : Fin (m i)) : N i j ≤ n :=
(Finset.le_sup (f := fun v : (i : ι) × Fin (m i) => N v.1 v.2)
(Finset.mem_univ ⟨i, j⟩)).trans (le_max_right _ _)
choose t ht using fun i j => hN i j n (hn' i j)
let σ := ι ⊕ ((i : ι) × Fin (m i))
let S : σ → GlobalSections X (modulePow X L.sheaf n) :=
Sum.elim (fun i => powerSection (s i) n) (fun v => t v.1 v.2)
have hU (i : ι) : SectionOpens.isoOpen (S (Sum.inl i)) = U i :=
L.sectionOpen_power (s i) hn
have hSn (i : ι) : IsIso (restrictSection (U i).ι (S (Sum.inl i))) :=
isIso_restricted_section _ _ (hU i)
let e (i : ι) : (modulePow X L.sheaf n).restrict (U i).ι ≅ O (U i).toScheme :=
(asIso (restrictSection (U i).ι (S (Sum.inl i)))).symm
have hnorm (i : ι) : coefficient (e i) (restrictSection (U i).ι (S (Sum.inl i))) = 1 :=
coefficient_frame (e i)
have hS : (⨆ v, SectionOpens.isoOpen (S v)) = ⊤ := by
apply top_unique
rw [← hc]
apply iSup_le
intro i
exact (le_of_eq (hU i).symm).trans (le_iSup (fun v : σ => SectionOpens.isoOpen (S v)) (Sum.inl i))
have hproper : IsProper (X.toSpecΓ ≫ Spec.map (CommRingCat.ofHom k)) := by
rw [toSpec_scalarMap]
infer_instance
have hgen (i : ι) : Function.Surjective
(eval₂Hom ((U i).ι.appTop.hom.comp k)
(fun v => coefficient (e i) (restrictSection (U i).ι (S v)))) := by
have heq : (fun v => coefficient (e i) (restrictSection (U i).ι (S v))) ∘
(fun j : Fin (m i) => Sum.inr (⟨i, j⟩ : (i : ι) × Fin (m i))) = b i := by
funext j
exact coefficient_ratio (e i) (S (Sum.inl i)) (S (Sum.inr ⟨i, j⟩)) (b i j)
(hnorm i) (ht i j)
intro r
obtain ⟨q, hq⟩ := hb i r
refine ⟨rename (fun j : Fin (m i) => Sum.inr (⟨i, j⟩ : (i : ι) × Fin (m i))) q, ?_⟩
rw [eval₂Hom_rename, heq]
exact hq
have hclosed := framedSectionsMorphism_closed k S U hc e Sum.inl hnorm hU
(fun i => haff i) hgen
rw [framedSectionsMorphism_eq_sectionsMorphism k S hS U hc e Sum.inl hnorm] at hclosed
exact ⟨n, hn, σ, inferInstance, S, hS, hclosed⟩
end
open AlgebraicGeometry CategoryTheory TopologicalSpace
open scoped AlgebraicGeometry
open PiExponentSeshadri.Frames PiExponentSeshadri.Projective
variable {X : Scheme} {K : Type} [CommRing K]
theorem LineBundle.ample_projective_sections_noetherian [NoetherianSpace X]
(p : X ⟶ Spec (CommRingCat.of K)) [IsProper p]
(L : LineBundle X) (hL : L.IsAmple) :
∃ n : ℕ, 0 < n ∧ ∃ σ : Type, ∃ _ : Fintype σ,
∃ t : σ → GlobalSections X (modulePow X L.sheaf n),
∃ ht : (⨆ i, SectionOpens.isoOpen (t i)) = ⊤,
IsClosedImmersion (sectionsMorphism
(p.appTop.hom.comp (Scheme.ΓSpecIso (CommRingCat.of K)).inv.hom) t ht) := by
obtain ⟨d, hd, l, s, hc, ha, -⟩ := L.ample_common_degree_cover hL
obtain ⟨n, hn', σ, hσ, t, ht, he⟩ := (L.pow d).power_section_embedding_noetherian p s hc ha
let e : modulePow X (L.pow d).sheaf n ≅ modulePow X L.sheaf (d * n) :=
linePowerMul L d n
let T : σ → GlobalSections X (modulePow X L.sheaf (d*n)) := fun i => t i ≫ e.hom
have hT : (⨆ i, SectionOpens.isoOpen (T i)) = ⊤ := by
exact (iSup_congr (fun i => SectionOpens.isoOpen_postcomp (t i) e)).trans ht
refine ⟨d*n, Nat.mul_pos hd hn', σ, hσ, T, hT, ?_⟩
have htransport := sectionsMorphism_transport
(p.appTop.hom.comp (Scheme.ΓSpecIso (CommRingCat.of K)).inv.hom) t ht e hT
exact htransport.symm ▸ he
end PiExponentSeshadri.Geometry
end
end OAI
end
section
-- module Solutions.OAIQ068_PI.PiExponent_Approximation_ClosedImmersionSerreTransfer
attribute [-instance] _root_.OAI.PiExponent.CurveCycle.finite_componentsThrough _root_.OAI.PiExponent.CurveFinitePushforwardCoherent.pushforward_isFinitePresentation _root_.OAI.PiExponent.fromSpecStalk_stalkMap_isIso _root_.OAI.PiExponent.instFiniteTypeSubtypeMvPolynomialMemSubmoduleHomogeneousSubmoduleOfNatNatOfFinite_solutions _root_.OAI.PiExponent.instIsScalarTowerSubtypeMvPolynomialMemSubmoduleHomogeneousSubmoduleOfNatNat_solutions _root_.OAI.PiExponentJets.PolynomialLocalResidueResolution.primeResidueImage_isPrime _root_.OAI.PiExponentSeshadri.Geometry.opensMap_final _root_.OAI.PiExponentSeshadri.Geometry.schemeHasExt _root_.OAI.PiExponentSeshadri.Geometry.sheafHomModule _root_.OAI.PiExponentSeshadri.Geometry.sheafLinear _root_.OAI.PiExponentSeshadri.LaurentLattices.instIsPrincipalIdealRingLaurentPolynomial_solutions _root_.OAI.PiExponentSeshadri.LaurentLattices.laurent_finiteType _root_.OAI.PiExponentSeshadri.ProjectiveGeometry.homogeneous_isReduced _root_.OAI.PiExponentSeshadri.ProjectiveGeometry.proj_irreducible _root_.OAI.PiExponentSeshadri.ProjectiveGeometry.proj_isIntegral _root_.OAI.PiExponentSeshadri.ProjectiveGeometry.proj_isReduced _root_.OAI.PiExponentSeshadri.ReesGrading.polynomial_isReduced _root_.OAI.PiExponentSiegel.W58.cotangentQuotientScalarTower
set_option linter.all false
set_option linter.unusedVariables false
set_option linter.unusedTactic false
set_option linter.unreachableTactic false
namespace OAI
noncomputable section
open AlgebraicGeometry CategoryTheory CategoryTheory.Limits CategoryTheory.Abelian
open TopologicalSpace Opposite
open PiExponentSeshadri.FlasqueCohomology
namespace PiExponent.ClosedImmersionSerreTransfer
universe u
variable {X Y : Scheme.{u}} (f : X ⟶ Y)
variable [PreservesFiniteColimits (Scheme.Modules.pushforward f)]
local instance instHasExtModules_solutions_r6322b9_1 : HasExt.{u+1} X.Modules := HasExt.standard _
attribute [local instance] OAI.PiExponent.ClosedImmersionSerreTransfer.instHasExtModules_solutions_1
def cohomologyEquiv (M : X.Modules) (n : ℕ) :
Ext.{u+1} (C := X.Modules) (schemeUnit X) M n ≃+
Ext.{u+1} (C := Y.Modules) (schemeUnit Y)
((Scheme.Modules.pushforward f).obj M) n :=
AddEquiv.ofBijective (cohomologyMap f M n) (cohomologyMap_bijective f M n)
def closedCohomologyEquiv {X Y : Scheme.{0}} (f : X ⟶ Y)
[IsClosedImmersion f] (M : X.Modules) (n : ℕ) :
Ext.{1} (C := X.Modules) (schemeUnit X) M n ≃+
Ext.{1} (C := Y.Modules) (schemeUnit Y)
((Scheme.Modules.pushforward f).obj M) n :=
cohomologyEquiv f M n
end PiExponent.ClosedImmersionSerreTransfer
end
end OAI
end
section
-- module Solutions.OAIQ068_PI.PiExponent_Approximation_ProjectionFormula
attribute [-instance] _root_.OAI.PiExponent.ClosedImmersionSerreTransfer.pushforward_flasque _root_.OAI.PiExponent.CurveCycle.finite_componentsThrough _root_.OAI.PiExponent.CurveFinitePushforwardCoherent.pushforward_isFinitePresentation _root_.OAI.PiExponent.FiniteGlobalPresentation.presentation_map_isFinite _root_.OAI.PiExponent.NegativeTwistPresentations.presentationMap_epi _root_.OAI.PiExponent.PresentedIdealIso.toIdealModule_isIso _root_.OAI.PiExponent.ProjectivePencil.sectionsMorphism_isFinite _root_.OAI.PiExponent.fromSpecStalk_stalkMap_isIso _root_.OAI.PiExponent.instFiniteTypeSubtypeMvPolynomialMemSubmoduleHomogeneousSubmoduleOfNatNatOfFinite_solutions _root_.OAI.PiExponent.instIsScalarTowerSubtypeMvPolynomialMemSubmoduleHomogeneousSubmoduleOfNatNat_solutions _root_.OAI.PiExponentJets.PolynomialLocalResidueResolution.primeResidueImage_isPrime _root_.OAI.PiExponentSeshadri.ClosedPushforward.preservesEpis _root_.OAI.PiExponentSeshadri.ClosedPushforward.preservesFiniteColimits _root_.OAI.PiExponentSeshadri.ClosedPushforward.preservesHomology _root_.OAI.PiExponentSeshadri.ClosedPushforward.pushforward_isFinitePresentation _root_.OAI.PiExponentSeshadri.Geometry.LineBundle.quasicoherent _root_.OAI.PiExponentSeshadri.Geometry.schemeHasExt _root_.OAI.PiExponentSeshadri.Geometry.sheafHomModule _root_.OAI.PiExponentSeshadri.Geometry.sheafLinear _root_.OAI.PiExponentSeshadri.InvertibleLocal.restrictedInclusion_mono _root_.OAI.PiExponentSeshadri.LaurentLattices.instIsPrincipalIdealRingLaurentPolynomial_solutions _root_.OAI.PiExponentSeshadri.LaurentLattices.laurent_finiteType _root_.OAI.PiExponentSeshadri.ProjectiveGeometry.homogeneous_isReduced _root_.OAI.PiExponentSeshadri.ProjectiveGeometry.proj_irreducible _root_.OAI.PiExponentSeshadri.ProjectiveGeometry.proj_isIntegral _root_.OAI.PiExponentSeshadri.ProjectiveGeometry.proj_isReduced _root_.OAI.PiExponentSeshadri.PullbackTensor.line_isIso _root_.OAI.PiExponentSeshadri.PullbackTensor.power_step_isIso _root_.OAI.PiExponentSeshadri.PullbackTensor.unit_isIso _root_.OAI.PiExponentSeshadri.ReesGrading.exceptionalInclusion_mono _root_.OAI.PiExponentSeshadri.ReesGrading.polynomial_isReduced _root_.OAI.PiExponentSiegel.W58.cotangentQuotientScalarTower
set_option linter.all false
set_option linter.unusedVariables false
set_option linter.unusedTactic false
set_option linter.unreachableTactic false
namespace OAI
namespace PiExponent.ProjectionFormula
noncomputable section
open AlgebraicGeometry CategoryTheory CategoryTheory.Limits TopologicalSpace Opposite
open PiExponentSeshadri.Geometry PiExponentSeshadri.TensorPure
variable {X Y : Scheme.{0}} (f : X ⟶ Y)
def twistIso (M : X.Modules) (L : LineBundle Y) : ∀ n : ℕ,
(Scheme.Modules.pushforward f).obj ((moduleTwistFunctor (L.pullback f) n).obj M) ≅
(moduleTwistFunctor L n).obj ((Scheme.Modules.pushforward f).obj M)
| 0 => Iso.refl _
| n+1 => (iso f ((moduleTwistFunctor (L.pullback f) n).obj M) L).symm ≪≫
moduleTensorIso (twistIso M L n) (Iso.refl _)
end
end PiExponent.ProjectionFormula
end OAI
end
section
-- module Solutions.OAIQ068_PI.PiExponent_Approximation_ClosedRestrictionTensor
attribute [-instance] _root_.OAI.PiExponent.ClosedImmersionSerreTransfer.pushforward_flasque _root_.OAI.PiExponent.CurveCycle.finite_componentsThrough _root_.OAI.PiExponent.CurveFinitePushforwardCoherent.pushforward_isFinitePresentation _root_.OAI.PiExponent.FiniteGlobalPresentation.presentation_map_isFinite _root_.OAI.PiExponent.GlueGlobalGenerators.instIsFiniteTypeOpensCarrierCarrierCommRingCatGlobalGeneratorsOfFiniteOfToScheme _root_.OAI.PiExponent.NegativeTwistPresentations.presentationMap_epi _root_.OAI.PiExponent.PresentedIdealIso.toIdealModule_isIso _root_.OAI.PiExponent.ProjectivePencil.sectionsMorphism_isFinite _root_.OAI.PiExponent.fromSpecStalk_stalkMap_isIso _root_.OAI.PiExponent.instFiniteTypeSubtypeMvPolynomialMemSubmoduleHomogeneousSubmoduleOfNatNatOfFinite_solutions _root_.OAI.PiExponent.instIsScalarTowerSubtypeMvPolynomialMemSubmoduleHomogeneousSubmoduleOfNatNat_solutions _root_.OAI.PiExponentJets.PolynomialLocalResidueResolution.primeResidueImage_isPrime _root_.OAI.PiExponentSeshadri.ClosedPushforward.preservesEpis _root_.OAI.PiExponentSeshadri.ClosedPushforward.preservesFiniteColimits _root_.OAI.PiExponentSeshadri.ClosedPushforward.preservesHomology _root_.OAI.PiExponentSeshadri.ClosedPushforward.pushforward_isFinitePresentation _root_.OAI.PiExponentSeshadri.Geometry.LineBundle.quasicoherent _root_.OAI.PiExponentSeshadri.Geometry.schemeHasExt _root_.OAI.PiExponentSeshadri.Geometry.sheafHomModule _root_.OAI.PiExponentSeshadri.Geometry.sheafLinear _root_.OAI.PiExponentSeshadri.InvertibleLocal.restrictedInclusion_mono _root_.OAI.PiExponentSeshadri.LaurentLattices.instIsPrincipalIdealRingLaurentPolynomial_solutions _root_.OAI.PiExponentSeshadri.LaurentLattices.laurent_finiteType _root_.OAI.PiExponentSeshadri.Projective.framedSectionsMorphism_proper _root_.OAI.PiExponentSeshadri.ProjectiveGeometry.homogeneous_isReduced _root_.OAI.PiExponentSeshadri.ProjectiveGeometry.proj_irreducible _root_.OAI.PiExponentSeshadri.ProjectiveGeometry.proj_isIntegral _root_.OAI.PiExponentSeshadri.ProjectiveGeometry.proj_isReduced _root_.OAI.PiExponentSeshadri.ReesGrading.exceptionalInclusion_mono _root_.OAI.PiExponentSeshadri.ReesGrading.polynomial_isReduced _root_.OAI.PiExponentSiegel.W58.cotangentQuotientScalarTower
set_option linter.all false
set_option linter.unusedVariables false
set_option linter.unusedTactic false
set_option linter.unreachableTactic false
namespace OAI
namespace PiExponent.ClosedRestrictionTensor
noncomputable section
open AlgebraicGeometry CategoryTheory TopologicalSpace Opposite
open PiExponentSeshadri.Geometry PiExponentSeshadri.Frames PiExponentSeshadri.TensorPure
variable {X Y : Scheme.{0}} (f : X ⟶ Y) (L : LineBundle Y)
def powerProjectionIso (n : ℕ) :
(moduleTwistFunctor L n).obj ((Scheme.Modules.pushforward f).obj (O X)) ≅
(Scheme.Modules.pushforward f).obj ((L.pullback f).pow n).sheaf :=
(ProjectionFormula.twistIso f (O X) L n).symm ≪≫
(Scheme.Modules.pushforward f).mapIso (moduleTwistUnitIso (L.pullback f) n)
end
end PiExponent.ClosedRestrictionTensor
end OAI
end
section
-- module Solutions.OAIQ068_PI.PiExponent_Cohomology_CartierEulerPair
attribute [-instance] _root_.OAI.PiExponent.CurveCycle.finite_componentsThrough _root_.OAI.PiExponent.CurveFinitePushforwardCoherent.pushforward_isFinitePresentation _root_.OAI.PiExponent.NegativeTwistPresentations.presentationMap_epi _root_.OAI.PiExponent.PresentedIdealIso.toIdealModule_isIso _root_.OAI.PiExponent.ProjectionFormula.line_isIso _root_.OAI.PiExponent.ProjectivePencil.sectionsMorphism_isFinite _root_.OAI.PiExponent.fromSpecStalk_stalkMap_isIso _root_.OAI.PiExponent.instFiniteTypeSubtypeMvPolynomialMemSubmoduleHomogeneousSubmoduleOfNatNatOfFinite_solutions _root_.OAI.PiExponent.instIsScalarTowerSubtypeMvPolynomialMemSubmoduleHomogeneousSubmoduleOfNatNat_solutions _root_.OAI.PiExponentJets.PolynomialLocalResidueResolution.primeResidueImage_isPrime _root_.OAI.PiExponentSeshadri.Geometry.LineBundle.quasicoherent _root_.OAI.PiExponentSeshadri.InvertibleLocal.restrictedInclusion_mono _root_.OAI.PiExponentSeshadri.LaurentLattices.instIsPrincipalIdealRingLaurentPolynomial_solutions _root_.OAI.PiExponentSeshadri.LaurentLattices.laurent_finiteType _root_.OAI.PiExponentSeshadri.ProjectiveGeometry.homogeneous_isReduced _root_.OAI.PiExponentSeshadri.ProjectiveGeometry.proj_irreducible _root_.OAI.PiExponentSeshadri.ProjectiveGeometry.proj_isIntegral _root_.OAI.PiExponentSeshadri.ProjectiveGeometry.proj_isReduced _root_.OAI.PiExponentSeshadri.ReesGrading.exceptionalInclusion_mono _root_.OAI.PiExponentSeshadri.ReesGrading.polynomial_isReduced _root_.OAI.PiExponentSiegel.W58.cotangentQuotientScalarTower
set_option linter.all false
set_option linter.unusedVariables false
set_option linter.unusedTactic false
set_option linter.unreachableTactic false
namespace OAI
namespace PiExponent.NumericalAmpleness
noncomputable section
open AlgebraicGeometry CategoryTheory CategoryTheory.Limits TopologicalSpace
open PiExponentSeshadri.Geometry PiExponentSeshadri.Frames
open PiExponent.SectionZeroIdeal PiExponent.CartierPowerFrames
variable {X : Scheme.{0}}
namespace CartierEulerPair
def middle (L B M : LineBundle X) (n : ℕ) : LineBundle X :=
(L.tensor B).tensor (source L M n)
end CartierEulerPair
end
end PiExponent.NumericalAmpleness
end OAI
end
section
-- module Solutions.OAIQ068_PI.PiExponent_Cohomology_CechH1Transfer
attribute [-instance] _root_.OAI.PiExponent.ClosedImmersionSerreTransfer.pushforward_flasque _root_.OAI.PiExponent.CurveCycle.finite_componentsThrough _root_.OAI.PiExponent.CurveFinitePushforwardCoherent.pushforward_isFinitePresentation _root_.OAI.PiExponent.FiniteGlobalPresentation.presentation_map_isFinite _root_.OAI.PiExponent.fromSpecStalk_stalkMap_isIso _root_.OAI.PiExponent.instFiniteTypeSubtypeMvPolynomialMemSubmoduleHomogeneousSubmoduleOfNatNatOfFinite_solutions _root_.OAI.PiExponent.instIsScalarTowerSubtypeMvPolynomialMemSubmoduleHomogeneousSubmoduleOfNatNat_solutions _root_.OAI.PiExponentJets.PolynomialLocalResidueResolution.primeResidueImage_isPrime _root_.OAI.PiExponentSeshadri.ClosedPushforward.preservesEpis _root_.OAI.PiExponentSeshadri.ClosedPushforward.preservesFiniteColimits _root_.OAI.PiExponentSeshadri.ClosedPushforward.preservesHomology _root_.OAI.PiExponentSeshadri.ClosedPushforward.pushforward_isFinitePresentation _root_.OAI.PiExponentSeshadri.Geometry.opensMap_final _root_.OAI.PiExponentSeshadri.LaurentLattices.instIsPrincipalIdealRingLaurentPolynomial_solutions _root_.OAI.PiExponentSeshadri.LaurentLattices.laurent_finiteType _root_.OAI.PiExponentSeshadri.ProjectiveGeometry.homogeneous_isReduced _root_.OAI.PiExponentSeshadri.ProjectiveGeometry.proj_irreducible _root_.OAI.PiExponentSeshadri.ProjectiveGeometry.proj_isIntegral _root_.OAI.PiExponentSeshadri.ProjectiveGeometry.proj_isReduced _root_.OAI.PiExponentSeshadri.ReesGrading.polynomial_isReduced _root_.OAI.PiExponentSiegel.W58.cotangentQuotientScalarTower
set_option linter.all false
set_option linter.unusedVariables false
set_option linter.unusedTactic false
set_option linter.unreachableTactic false
namespace OAI
namespace PiExponent.GeometrySupport.CechH1Transfer
noncomputable section
open AlgebraicGeometry CategoryTheory CategoryTheory.Abelian TopologicalSpace
open PiExponentSeshadri.ModuleFlasque
open CechOne CechHigher
universe u
variable {X Y : Scheme.{u}} {J : Type u}
attribute [local instance] freeOpenHomAddCommGroup higherCochainAddCommGroup
PiExponentSeshadri.FiniteCoverCohomology.hasExtScheme'
namespace SectionComparison
variable {U : J → X.Opens} {V : J → Y.Opens} {M : X.Modules} {N : Y.Modules}
(P : SectionComparison U V M N)
def cochainOne : CechHigher.Cochain X.ringCatSheaf U M 1 →+
CechHigher.Cochain Y.ringCatSheaf V N 1 where
toFun b t := P.pair t (b t)
map_zero' := by funext t; exact map_zero (P.pair t)
map_add' b c := by funext t; exact map_add (P.pair t) _ _
end SectionComparison
end
end PiExponent.GeometrySupport.CechH1Transfer
end OAI
end
section
-- module Solutions.OAIQ068_PI.PiExponent_Geometry_SectionZeroStalk
attribute [-instance] _root_.OAI.PiExponent.ClosedImmersionSerreTransfer.pushforward_flasque _root_.OAI.PiExponent.CurveCycle.finite_componentsThrough _root_.OAI.PiExponent.CurveFinitePushforwardCoherent.pushforward_isFinitePresentation _root_.OAI.PiExponent.GlueGlobalGenerators.instIsFiniteTypeOpensCarrierCarrierCommRingCatGlobalGeneratorsOfFiniteOfToScheme _root_.OAI.PiExponent.NegativeTwistPresentations.presentationMap_epi _root_.OAI.PiExponent.PresentedIdealIso.toIdealModule_isIso _root_.OAI.PiExponent.ProjectionFormula.line_isIso _root_.OAI.PiExponent.ProjectionFormula.unit_isIso _root_.OAI.PiExponent.ProjectivePencil.sectionsMorphism_isFinite _root_.OAI.PiExponent.fromSpecStalk_stalkMap_isIso _root_.OAI.PiExponent.instFiniteTypeSubtypeMvPolynomialMemSubmoduleHomogeneousSubmoduleOfNatNatOfFinite_solutions _root_.OAI.PiExponent.instIsScalarTowerSubtypeMvPolynomialMemSubmoduleHomogeneousSubmoduleOfNatNat_solutions _root_.OAI.PiExponentJets.PolynomialLocalResidueResolution.primeResidueImage_isPrime _root_.OAI.PiExponentSeshadri.ClosedPushforward.preservesEpis _root_.OAI.PiExponentSeshadri.ClosedPushforward.preservesFiniteColimits _root_.OAI.PiExponentSeshadri.ClosedPushforward.preservesHomology _root_.OAI.PiExponentSeshadri.ClosedPushforward.pushforward_isFinitePresentation _root_.OAI.PiExponentSeshadri.Geometry.LineBundle.quasicoherent _root_.OAI.PiExponentSeshadri.Geometry.opensMap_final _root_.OAI.PiExponentSeshadri.Geometry.schemeHasExt _root_.OAI.PiExponentSeshadri.Geometry.sheafHomModule _root_.OAI.PiExponentSeshadri.Geometry.sheafLinear _root_.OAI.PiExponentSeshadri.InvertibleLocal.restrictedInclusion_mono _root_.OAI.PiExponentSeshadri.LaurentLattices.instIsPrincipalIdealRingLaurentPolynomial_solutions _root_.OAI.PiExponentSeshadri.LaurentLattices.laurent_finiteType _root_.OAI.PiExponentSeshadri.Projective.framedSectionsMorphism_proper _root_.OAI.PiExponentSeshadri.ProjectiveGeometry.homogeneous_isReduced _root_.OAI.PiExponentSeshadri.ProjectiveGeometry.proj_irreducible _root_.OAI.PiExponentSeshadri.ProjectiveGeometry.proj_isIntegral _root_.OAI.PiExponentSeshadri.ProjectiveGeometry.proj_isReduced _root_.OAI.PiExponentSeshadri.PullbackTensor.line_isIso _root_.OAI.PiExponentSeshadri.PullbackTensor.power_step_isIso _root_.OAI.PiExponentSeshadri.PullbackTensor.unit_isIso _root_.OAI.PiExponentSeshadri.ReesGrading.exceptionalInclusion_mono _root_.OAI.PiExponentSeshadri.ReesGrading.polynomial_isReduced _root_.OAI.PiExponentSiegel.W58.cotangentQuotientScalarTower
set_option linter.all false
set_option linter.unusedVariables false
set_option linter.unusedTactic false
set_option linter.unreachableTactic false
namespace OAI
noncomputable section
open CategoryTheory AlgebraicGeometry TopologicalSpace
open PiExponentSeshadri.Geometry PiExponentSeshadri.Frames
namespace PiExponent.SectionZeroStalk
variable {X : Scheme.{0}}
theorem zero_stalk_kernel (L : LineBundle X) (s : GlobalSections X L.sheaf)
(U : X.affineOpens) (e : L.sheaf.restrict U.1.ι ≅ O U.1.toScheme)
(y : (SectionZeroIdeal.zeroIdeal L s).subscheme)
(hy : (SectionZeroIdeal.zeroIdeal L s).subschemeι y ∈ U.1) :
RingHom.ker ((SectionZeroIdeal.zeroIdeal L s).subschemeι.stalkMap y).hom =
Ideal.span {(X.presheaf.germ U.1 _ hy)
(U.1.topIso.hom (coefficient e (restrictSection U.1.ι s)))} := by
rw [stalkMap_ker_eq_map_affine_ker _ U.1 U.2 y hy,
(SectionZeroIdeal.zeroIdeal L s).ker_subschemeι_app U,
SectionZeroIdeal.zeroIdeal_on_frame L s U e,
Ideal.map_span, Set.image_singleton]
def zeroStalkQuotientEquiv (L : LineBundle X) (s : GlobalSections X L.sheaf)
(U : X.affineOpens) (e : L.sheaf.restrict U.1.ι ≅ O U.1.toScheme)
(y : (SectionZeroIdeal.zeroIdeal L s).subscheme)
(hy : (SectionZeroIdeal.zeroIdeal L s).subschemeι y ∈ U.1) :
(X.presheaf.stalk ((SectionZeroIdeal.zeroIdeal L s).subschemeι y) ⧸
Ideal.span {sectionGerm L s U e _ hy}) ≃+*
(SectionZeroIdeal.zeroIdeal L s).subscheme.presheaf.stalk y :=
(Ideal.quotEquivOfEq (zero_stalk_kernel L s U e y hy).symm).trans
(RingHom.quotientKerEquivOfSurjective
((SectionZeroIdeal.zeroIdeal L s).subschemeι.stalkMap_surjective y))
theorem zero_stalk_length_eq_order [IsIntegral X]
(L : LineBundle X) (s : GlobalSections X L.sheaf) (hs : s ≠ 0)
(U : X.affineOpens) (e : L.sheaf.restrict U.1.ι ≅ O U.1.toScheme)
(y : (SectionZeroIdeal.zeroIdeal L s).subscheme)
(hy : (SectionZeroIdeal.zeroIdeal L s).subschemeι y ∈ U.1)
[IsDiscreteValuationRing (X.presheaf.stalk ((SectionZeroIdeal.zeroIdeal L s).subschemeι y))] :
Module.length ((SectionZeroIdeal.zeroIdeal L s).subscheme.presheaf.stalk y)
((SectionZeroIdeal.zeroIdeal L s).subscheme.presheaf.stalk y) =
IsDiscreteValuationRing.addVal
(X.presheaf.stalk ((SectionZeroIdeal.zeroIdeal L s).subschemeι y))
(sectionGerm L s U e _ hy) := by
let A := X.presheaf.stalk ((SectionZeroIdeal.zeroIdeal L s).subschemeι y)
let c : A := sectionGerm L s U e _ hy
have hlen := intrinsic_length_eq_of_ringEquiv (zeroStalkQuotientEquiv L s U e y hy)
have hsc : Module.length A (A ⧸ Ideal.span {c}) =
Module.length (A ⧸ Ideal.span {c}) (A ⧸ Ideal.span {c}) :=
Module.length_eq_of_surjective (M := A ⧸ Ideal.span {c}) Ideal.Quotient.mk_surjective
exact hlen.symm.trans (hsc.symm.trans
(CurveLocalOrder.length_quotient_span_eq_addVal (sectionGerm_ne_zero L s hs U e _ hy)))
end PiExponent.SectionZeroStalk
end
end OAI
end
section
-- module Solutions.OAIQ068_PI.PiExponent_Geometry_CurveSectionDegree
attribute [-instance] _root_.OAI.PiExponent.ClosedImmersionSerreTransfer.pushforward_flasque _root_.OAI.PiExponent.CurveCycle.finite_componentsThrough _root_.OAI.PiExponent.CurveFinitePushforwardCoherent.pushforward_isFinitePresentation _root_.OAI.PiExponent.GlueGlobalGenerators.instIsFiniteTypeOpensCarrierCarrierCommRingCatGlobalGeneratorsOfFiniteOfToScheme _root_.OAI.PiExponent.NegativeTwistPresentations.presentationMap_epi _root_.OAI.PiExponent.PresentedIdealIso.toIdealModule_isIso _root_.OAI.PiExponent.ProjectionFormula.line_isIso _root_.OAI.PiExponent.ProjectionFormula.unit_isIso _root_.OAI.PiExponent.ProjectivePencil.sectionsMorphism_isFinite _root_.OAI.PiExponent.fromSpecStalk_stalkMap_isIso _root_.OAI.PiExponent.instFiniteTypeSubtypeMvPolynomialMemSubmoduleHomogeneousSubmoduleOfNatNatOfFinite_solutions _root_.OAI.PiExponent.instIsScalarTowerSubtypeMvPolynomialMemSubmoduleHomogeneousSubmoduleOfNatNat_solutions _root_.OAI.PiExponentJets.PolynomialLocalResidueResolution.primeResidueImage_isPrime _root_.OAI.PiExponentSeshadri.ClosedPushforward.preservesEpis _root_.OAI.PiExponentSeshadri.ClosedPushforward.preservesFiniteColimits _root_.OAI.PiExponentSeshadri.ClosedPushforward.preservesHomology _root_.OAI.PiExponentSeshadri.ClosedPushforward.pushforward_isFinitePresentation _root_.OAI.PiExponentSeshadri.Geometry.LineBundle.quasicoherent _root_.OAI.PiExponentSeshadri.InvertibleLocal.restrictedInclusion_mono _root_.OAI.PiExponentSeshadri.LaurentLattices.instIsPrincipalIdealRingLaurentPolynomial_solutions _root_.OAI.PiExponentSeshadri.LaurentLattices.laurent_finiteType _root_.OAI.PiExponentSeshadri.Projective.framedSectionsMorphism_proper _root_.OAI.PiExponentSeshadri.ProjectiveGeometry.homogeneous_isReduced _root_.OAI.PiExponentSeshadri.ProjectiveGeometry.proj_irreducible _root_.OAI.PiExponentSeshadri.ProjectiveGeometry.proj_isIntegral _root_.OAI.PiExponentSeshadri.ProjectiveGeometry.proj_isReduced _root_.OAI.PiExponentSeshadri.PullbackTensor.line_isIso _root_.OAI.PiExponentSeshadri.PullbackTensor.power_step_isIso _root_.OAI.PiExponentSeshadri.PullbackTensor.unit_isIso _root_.OAI.PiExponentSeshadri.ReesGrading.exceptionalInclusion_mono _root_.OAI.PiExponentSeshadri.ReesGrading.polynomial_isReduced _root_.OAI.PiExponentSiegel.W58.cotangentQuotientScalarTower
set_option linter.all false
set_option linter.unusedVariables false
set_option linter.unusedTactic false
set_option linter.unreachableTactic false
namespace OAI
noncomputable section
open CategoryTheory AlgebraicGeometry TopologicalSpace
open PiExponentSeshadri.Geometry PiExponentSeshadri.Frames
namespace PiExponent.CurveSectionDegree
variable {X : Scheme.{0}}
theorem euler_difference_eq_sum_zero_orders [IsIntegral X]
(p : X ⟶ Spec (CommRingCat.of ℂ)) [IsProper p]
(hd : topologicalKrullDim X ≤ 1)
(L : LineBundle X) (s : GlobalSections X L.sheaf) (hs : s ≠ 0)
(hDVR : ∀ x : X, x ≠ genericPoint X → IsDiscreteValuationRing (X.presheaf.stalk x))
(hfiniteO : ∀ n ≤ 1, letI := Module.compHom (cohomology (structureSheaf X) n) (baseScalars p)
FiniteDimensional ℂ (cohomology (structureSheaf X) n))
(hfiniteL : ∀ n ≤ 1, letI := Module.compHom (cohomology L.sheaf n) (baseScalars p)
FiniteDimensional ℂ (cohomology L.sheaf n))
[Subsingleton (cohomology (structureSheaf X) 2)] :
letI : Finite (SectionZeroIdeal.zeroIdeal L s).subscheme :=
finite_subscheme_of_curve p hd _ (SectionZeroIdeal.zeroIdeal_ne_bot L s hs)
letI : Fintype (SectionZeroIdeal.zeroIdeal L s).subscheme := Fintype.ofFinite _
eulerCharacteristic p 1 L.sheaf - eulerCharacteristic p 1 (structureSheaf X) =
∑ y : (SectionZeroIdeal.zeroIdeal L s).subscheme,
letI := hDVR _ (zeroPoint_ne_generic L s hs y)
((IsDiscreteValuationRing.addVal
(X.presheaf.stalk ((SectionZeroIdeal.zeroIdeal L s).subschemeι y))
(coefficientGermAt L s ((SectionZeroIdeal.zeroIdeal L s).subschemeι y))).toNat : ℤ) := by
let I := SectionZeroIdeal.zeroIdeal L s
have hI : I ≠ ⊥ := SectionZeroIdeal.zeroIdeal_ne_bot L s hs
let : Finite I.subscheme := finite_subscheme_of_curve p hd I hI
let : Fintype I.subscheme := Fintype.ofFinite _
let : Mono s := L.mono_section s hs
have heq : ∀ x : X, ∃ U : X.affineOpens, x ∈ U.1 ∧
∃ e : (L.pow 0).sheaf.restrict U.1.ι ≅ O U.1.toScheme,
∃ d : L.sheaf.restrict U.1.ι ≅ O U.1.toScheme,
I.ideal U = Ideal.span {U.1.topIso.hom
(endValue (e.inv ≫ (Scheme.Modules.restrictFunctor U.1.ι).map s ≫ d.hom))} := by
intro x
let F := affineFrameAt L x
refine ⟨F.openSet, F.mem, Scheme.Modules.restrictUnitIso F.openSet.1.ι, F.frame, ?_⟩
have h := SectionZeroIdeal.zeroIdeal_on_frame L s F.openSet F.frame
simp only [coefficient, restrictSection] at h
erw [Category.assoc] at h
exact h
let : Subsingleton (cohomology (L.pow 0).sheaf 2) := by
change Subsingleton (cohomology (structureSheaf X) 2)
infer_instance
have hh := @CartierDegreeLength.cartier_euler_difference_eq_sum_local_lengths
X inferInstance p inferInstance hd (L.pow 0) L s (L.mono_section s hs)
I hI heq hfiniteO hfiniteL inferInstance
refine hh.trans (Finset.sum_congr rfl fun y _ => ?_)
let := hDVR _ (zeroPoint_ne_generic L s hs y)
have h := SectionZeroStalk.zero_stalk_length_eq_order L s hs
(affineFrameAt L (I.subschemeι y)).openSet
(affineFrameAt L (I.subschemeι y)).frame y
(affineFrameAt L (I.subschemeι y)).mem
exact congrArg (fun n : ℕ∞ => (n.toNat : ℤ)) h
end PiExponent.CurveSectionDegree
end
end OAI
end
section
-- module Solutions.OAIQ068_PI.PiExponent_Geometry_SectionOrderDivisor
attribute [-instance] _root_.OAI.PiExponent.ClosedImmersionSerreTransfer.pushforward_flasque _root_.OAI.PiExponent.CurveCycle.finite_componentsThrough _root_.OAI.PiExponent.CurveFinitePushforwardCoherent.pushforward_isFinitePresentation _root_.OAI.PiExponent.GlueGlobalGenerators.instIsFiniteTypeOpensCarrierCarrierCommRingCatGlobalGeneratorsOfFiniteOfToScheme _root_.OAI.PiExponent.NegativeTwistPresentations.presentationMap_epi _root_.OAI.PiExponent.PresentedIdealIso.toIdealModule_isIso _root_.OAI.PiExponent.ProjectionFormula.line_isIso _root_.OAI.PiExponent.ProjectionFormula.unit_isIso _root_.OAI.PiExponent.ProjectivePencil.sectionsMorphism_isFinite _root_.OAI.PiExponent.fromSpecStalk_stalkMap_isIso _root_.OAI.PiExponent.instFiniteTypeSubtypeMvPolynomialMemSubmoduleHomogeneousSubmoduleOfNatNatOfFinite_solutions _root_.OAI.PiExponent.instIsScalarTowerSubtypeMvPolynomialMemSubmoduleHomogeneousSubmoduleOfNatNat_solutions _root_.OAI.PiExponentJets.PolynomialLocalResidueResolution.primeResidueImage_isPrime _root_.OAI.PiExponentSeshadri.ClosedPushforward.preservesEpis _root_.OAI.PiExponentSeshadri.ClosedPushforward.preservesFiniteColimits _root_.OAI.PiExponentSeshadri.ClosedPushforward.preservesHomology _root_.OAI.PiExponentSeshadri.ClosedPushforward.pushforward_isFinitePresentation _root_.OAI.PiExponentSeshadri.Geometry.LineBundle.quasicoherent _root_.OAI.PiExponentSeshadri.InvertibleLocal.restrictedInclusion_mono _root_.OAI.PiExponentSeshadri.LaurentLattices.instIsPrincipalIdealRingLaurentPolynomial_solutions _root_.OAI.PiExponentSeshadri.LaurentLattices.laurent_finiteType _root_.OAI.PiExponentSeshadri.ProjectiveGeometry.homogeneous_isReduced _root_.OAI.PiExponentSeshadri.ProjectiveGeometry.proj_irreducible _root_.OAI.PiExponentSeshadri.ProjectiveGeometry.proj_isIntegral _root_.OAI.PiExponentSeshadri.ProjectiveGeometry.proj_isReduced _root_.OAI.PiExponentSeshadri.PullbackTensor.line_isIso _root_.OAI.PiExponentSeshadri.PullbackTensor.power_step_isIso _root_.OAI.PiExponentSeshadri.ReesGrading.exceptionalInclusion_mono _root_.OAI.PiExponentSeshadri.ReesGrading.polynomial_isReduced _root_.OAI.PiExponentSiegel.W58.cotangentQuotientScalarTower
set_option linter.all false
set_option linter.unusedVariables false
set_option linter.unusedTactic false
set_option linter.unreachableTactic false
namespace OAI
noncomputable section
open CategoryTheory AlgebraicGeometry TopologicalSpace
open PiExponentSeshadri.Geometry PiExponentSeshadri.Frames
open PiExponent.CurveSectionDegree
namespace PiExponent.SectionOrderDivisor
variable {X : Scheme.{0}} [IsIntegral X]
theorem divisor_degree_eq_euler_difference
(p : X ⟶ Spec (CommRingCat.of ℂ)) [IsProper p] (hd : topologicalKrullDim X ≤ 1)
(hDVR : ∀ x : X, x ≠ genericPoint X → IsDiscreteValuationRing (X.presheaf.stalk x))
(L : LineBundle X) (s : GlobalSections X L.sheaf) (hs : s ≠ 0)
(hfiniteO : ∀ n ≤ 1, letI := Module.compHom (cohomology (structureSheaf X) n) (baseScalars p)
FiniteDimensional ℂ (cohomology (structureSheaf X) n))
(hfiniteL : ∀ n ≤ 1, letI := Module.compHom (cohomology L.sheaf n) (baseScalars p)
FiniteDimensional ℂ (cohomology L.sheaf n))
[Subsingleton (cohomology (structureSheaf X) 2)] :
(divisor p hd hDVR L s hs).sum (fun _ n => (n : ℤ)) =
eulerCharacteristic p 1 L.sheaf - eulerCharacteristic p 1 (structureSheaf X) := by
classical
let I := SectionZeroIdeal.zeroIdeal L s
let : Finite I.subscheme := finite_subscheme_of_curve p hd I
(SectionZeroIdeal.zeroIdeal_ne_bot L s hs)
let : Fintype I.subscheme := Fintype.ofFinite _
let D := divisor p hd hDVR L s hs
let T := Finset.univ.map (zeroPointEmbedding L s hs)
have hDT : D.support ⊆ T := by
intro x hx
have hn : orderAt hDVR L s x ≠ 0 := by simpa [D] using Finsupp.mem_support_iff.mp hx
have hm : x.1 ∈ I.support := by
by_contra hh
exact hn (orderAt_eq_zero_of_not_mem hDVR L s x hh)
change x.1 ∈ (I.support : Set X) at hm
rw [← I.range_subschemeι] at hm
obtain ⟨y, hy⟩ := hm
exact Finset.mem_map.mpr ⟨y, Finset.mem_univ y, Subtype.ext hy⟩
rw [euler_difference_eq_sum_zero_orders p hd L s hs hDVR hfiniteO hfiniteL]
change D.sum (fun _ n => (n : ℤ)) = _
rw [D.sum_of_support_subset hDT (fun _ n => (n : ℤ)) (by simp)]
rw [Finset.sum_map]
apply Finset.sum_congr rfl
intro y _
rfl
end PiExponent.SectionOrderDivisor
end
end OAI
end
section
-- module Solutions.OAIQ068_PI.PiExponent_LocalAlgebra_TensorIdealInclusion
attribute [-instance] _root_.OAI.PiExponent.ClosedImmersionSerreTransfer.pushforward_flasque _root_.OAI.PiExponent.CurveCycle.finite_componentsThrough _root_.OAI.PiExponent.CurveFinitePushforwardCoherent.pushforward_isFinitePresentation _root_.OAI.PiExponent.FiniteGlobalPresentation.presentation_map_isFinite _root_.OAI.PiExponent.GlueGlobalGenerators.instIsFiniteTypeOpensCarrierCarrierCommRingCatGlobalGeneratorsOfFiniteOfToScheme _root_.OAI.PiExponent.NegativeTwistPresentations.presentationMap_epi _root_.OAI.PiExponent.PresentedIdealIso.toIdealModule_isIso _root_.OAI.PiExponent.ProjectionFormula.line_isIso _root_.OAI.PiExponent.ProjectionFormula.unit_isIso _root_.OAI.PiExponent.ProjectivePencil.sectionsMorphism_isFinite _root_.OAI.PiExponent.fromSpecStalk_stalkMap_isIso _root_.OAI.PiExponent.instFiniteTypeSubtypeMvPolynomialMemSubmoduleHomogeneousSubmoduleOfNatNatOfFinite_solutions _root_.OAI.PiExponent.instIsScalarTowerSubtypeMvPolynomialMemSubmoduleHomogeneousSubmoduleOfNatNat_solutions _root_.OAI.PiExponentJets.PolynomialLocalResidueResolution.primeResidueImage_isPrime _root_.OAI.PiExponentSeshadri.ClosedPushforward.preservesEpis _root_.OAI.PiExponentSeshadri.ClosedPushforward.preservesFiniteColimits _root_.OAI.PiExponentSeshadri.ClosedPushforward.preservesHomology _root_.OAI.PiExponentSeshadri.ClosedPushforward.pushforward_isFinitePresentation _root_.OAI.PiExponentSeshadri.Geometry.LineBundle.quasicoherent _root_.OAI.PiExponentSeshadri.Geometry.schemeHasExt _root_.OAI.PiExponentSeshadri.Geometry.sheafHomModule _root_.OAI.PiExponentSeshadri.Geometry.sheafLinear _root_.OAI.PiExponentSeshadri.InvertibleLocal.restrictedInclusion_mono _root_.OAI.PiExponentSeshadri.LaurentLattices.instIsPrincipalIdealRingLaurentPolynomial_solutions _root_.OAI.PiExponentSeshadri.LaurentLattices.laurent_finiteType _root_.OAI.PiExponentSeshadri.Projective.framedSectionsMorphism_proper _root_.OAI.PiExponentSeshadri.ProjectiveGeometry.homogeneous_isReduced _root_.OAI.PiExponentSeshadri.ProjectiveGeometry.proj_irreducible _root_.OAI.PiExponentSeshadri.ProjectiveGeometry.proj_isIntegral _root_.OAI.PiExponentSeshadri.ProjectiveGeometry.proj_isReduced _root_.OAI.PiExponentSeshadri.ReesGrading.exceptionalInclusion_mono _root_.OAI.PiExponentSeshadri.ReesGrading.polynomial_isReduced _root_.OAI.PiExponentSiegel.W58.cotangentQuotientScalarTower
set_option linter.all false
set_option linter.unusedVariables false
set_option linter.unusedTactic false
set_option linter.unreachableTactic false
namespace OAI
namespace PiExponentSeshadri.Geometry
noncomputable section
open AlgebraicGeometry CategoryTheory TopologicalSpace
open PiExponentSeshadri.Frames
variable {X : Scheme.{0}}
lemma tensor_inclusion_framed (J M : LineBundle X) (ι : J.sheaf ⟶ O X)
(U : X.Opens) (e : J.sheaf.restrict U.ι ≅ O U.toScheme)
(f : M.sheaf.restrict U.ι ≅ O U.toScheme) :
(tensorFrame J M U e f).inv ≫
(Scheme.Modules.restrictFunctor U.ι).map (tensorInclusion J M ι) ≫ f.hom =
(e.inv ≫ (Scheme.Modules.restrictFunctor U.ι).map ι ≫
(Scheme.Modules.restrictUnitIso U.ι).hom) ≫ (tensorUnitTwist M U f).inv := by
let F := Scheme.Modules.restrictFunctor U.ι
let R := moduleTensorRestrict U J.sheaf M.sheaf
let R' := moduleTensorRestrict U (O X) M.sheaf
let E := moduleTensorIso e f
let E' := moduleTensorIso (Scheme.Modules.restrictUnitIso U.ι) f
let T := moduleTensorUnit (O U.toScheme)
let a : O U.toScheme ⟶ O U.toScheme :=
(e.inv ≫ F.map ι) ≫ (Scheme.Modules.restrictUnitIso U.ι).hom
have hn : F.map (moduleTensorMap ι (𝟙 M.sheaf)) ≫ R'.hom =
R.hom ≫ moduleTensorMap (F.map ι) (𝟙 (M.sheaf.restrict U.ι)) :=
(moduleTensorRestrict_natural U ι (𝟙 M.sheaf)).trans
(congrArg (fun q => R.hom ≫ moduleTensorMap (F.map ι) q) (F.map_id M.sheaf))
have h₁ := (moduleTensorMap_comp e.inv (F.map ι) f.inv
(𝟙 (M.sheaf.restrict U.ι))).symm.trans
(congrArg (moduleTensorMap (e.inv ≫ F.map ι)) (Category.comp_id f.inv))
have h₂ := (moduleTensorMap_comp (e.inv ≫ F.map ι)
(Scheme.Modules.restrictUnitIso U.ι).hom f.inv f.hom).symm.trans
(congrArg (moduleTensorMap a) f.inv_hom_id)
have ht : E.inv ≫ moduleTensorMap (F.map ι) (𝟙 (M.sheaf.restrict U.ι)) ≫
E'.hom = moduleTensorMap a (𝟙 (O U.toScheme)) :=
(Category.assoc _ _ _).symm.trans
((congrArg (fun q => q ≫ E'.hom) h₁).trans h₂)
have hs : E.inv ≫ moduleTensorMap (F.map ι) (𝟙 (M.sheaf.restrict U.ι)) ≫
E'.hom ≫ T.hom = T.hom ≫ a := by
have hscalar := moduleTensorUnit_scalar (X := U.toScheme) a (𝟙 (O U.toScheme))
exact (Category.assoc _ _ _).symm.trans
((congrArg (fun q => q ≫ T.hom) ht).trans
(hscalar.trans (congrArg (fun q => T.hom ≫ q) (Category.comp_id a))))
have hframe := frame_square R R' E E' T
(F.map (moduleTensorMap ι (𝟙 M.sheaf))) _ a hn hs
have hfinal := frame_inclusion (R ≪≫ E ≪≫ T) (R' ≪≫ E' ≪≫ T)
(F.mapIso (moduleTensorUnit M.sheaf)) f
(F.map (moduleTensorMap ι (𝟙 M.sheaf))) a hframe
simpa only [tensorInclusion, tensorUnitTwist, tensorFrame] using!
(congrArg (fun q => (tensorFrame J M U e f).inv ≫ q ≫ f.hom)
(F.map_comp (moduleTensorMap ι (𝟙 M.sheaf)) (moduleTensorUnit M.sheaf).hom)).trans hfinal
theorem tensorInclusion_mono (J M : LineBundle X) (ι : J.sheaf ⟶ O X) [Mono ι] :
Mono (tensorInclusion J M ι) := by
apply PiExponent.CoherentTwist.mono_of_local
intro x
obtain ⟨U,hx,⟨e⟩,⟨f⟩⟩ := common_affine_frames J M x
refine ⟨U.1,hx,?_⟩
have hm : Mono ((tensorFrame J M U.1 e f).inv ≫
(Scheme.Modules.restrictFunctor U.1.ι).map (tensorInclusion J M ι) ≫ f.hom) := by
erw [tensor_inclusion_framed]
have hmap : Mono (C := U.1.toScheme.Modules)
((Scheme.Modules.restrictFunctor U.1.ι).map ι) :=
@Functor.map_mono _ _ _ _ (Scheme.Modules.restrictFunctor U.1.ι)
inferInstance _ _ ι (inferInstanceAs (Mono ι))
exact @mono_iso_sandwich U.1.toScheme.Modules _ _ _ _ _ _ e.symm
((Scheme.Modules.restrictFunctor U.1.ι).map ι)
(Scheme.Modules.restrictUnitIso U.1.ι) (tensorUnitTwist M U.1 f).symm hmap
exact (mono_comp_iff_of_mono _ f.hom).mp
((mono_comp_iff_of_isIso (tensorFrame J M U.1 e f).inv _).mp hm)
lemma tensor_inclusion_ideal (J M : LineBundle X) (ι : J.sheaf ⟶ O X)
(U : X.affineOpens) (e : J.sheaf.restrict U.1.ι ≅ O U.1.toScheme)
(f : M.sheaf.restrict U.1.ι ≅ O U.1.toScheme) :
Ideal.span {U.1.topIso.hom (endValue ((tensorFrame J M U.1 e f).inv ≫
(Scheme.Modules.restrictFunctor U.1.ι).map (tensorInclusion J M ι) ≫ f.hom))} =
Ideal.span {U.1.topIso.hom (endValue (e.inv ≫
(Scheme.Modules.restrictFunctor U.1.ι).map ι ≫
(Scheme.Modules.restrictUnitIso U.1.ι).hom))} := by
erw [tensor_inclusion_framed,endValue_comp,map_mul,
← Ideal.span_singleton_mul_span_singleton]
have hu : IsUnit (endValue (tensorUnitTwist M U.1 f).inv) :=
(end_isIso_iff _).mp inferInstance
erw [Ideal.span_singleton_eq_top.mpr (hu.map U.1.topIso.hom.hom),Ideal.mul_top]
rfl
end
end PiExponentSeshadri.Geometry
end OAI
end
section
-- module Solutions.OAIQ068_PI.PiExponent_LocalAlgebra_IdealTensorPowers
attribute [-instance] _root_.OAI.PiExponent.ClosedImmersionSerreTransfer.pushforward_flasque _root_.OAI.PiExponent.CurveCycle.finite_componentsThrough _root_.OAI.PiExponent.CurveFinitePushforwardCoherent.pushforward_isFinitePresentation _root_.OAI.PiExponent.FiniteGlobalPresentation.presentation_map_isFinite _root_.OAI.PiExponent.GlueGlobalGenerators.instIsFiniteTypeOpensCarrierCarrierCommRingCatGlobalGeneratorsOfFiniteOfToScheme _root_.OAI.PiExponent.NegativeTwistPresentations.presentationMap_epi _root_.OAI.PiExponent.PresentedIdealIso.toIdealModule_isIso _root_.OAI.PiExponent.ProjectionFormula.line_isIso _root_.OAI.PiExponent.ProjectivePencil.sectionsMorphism_isFinite _root_.OAI.PiExponent.fromSpecStalk_stalkMap_isIso _root_.OAI.PiExponent.instFiniteTypeSubtypeMvPolynomialMemSubmoduleHomogeneousSubmoduleOfNatNatOfFinite_solutions _root_.OAI.PiExponent.instIsScalarTowerSubtypeMvPolynomialMemSubmoduleHomogeneousSubmoduleOfNatNat_solutions _root_.OAI.PiExponentJets.PolynomialLocalResidueResolution.primeResidueImage_isPrime _root_.OAI.PiExponentSeshadri.ClosedPushforward.preservesEpis _root_.OAI.PiExponentSeshadri.ClosedPushforward.preservesFiniteColimits _root_.OAI.PiExponentSeshadri.ClosedPushforward.preservesHomology _root_.OAI.PiExponentSeshadri.ClosedPushforward.pushforward_isFinitePresentation _root_.OAI.PiExponentSeshadri.Geometry.LineBundle.quasicoherent _root_.OAI.PiExponentSeshadri.Geometry.schemeHasExt _root_.OAI.PiExponentSeshadri.Geometry.sheafHomModule _root_.OAI.PiExponentSeshadri.Geometry.sheafLinear _root_.OAI.PiExponentSeshadri.LaurentLattices.instIsPrincipalIdealRingLaurentPolynomial_solutions _root_.OAI.PiExponentSeshadri.LaurentLattices.laurent_finiteType _root_.OAI.PiExponentSeshadri.Projective.framedSectionsMorphism_proper _root_.OAI.PiExponentSeshadri.ProjectiveGeometry.homogeneous_isReduced _root_.OAI.PiExponentSeshadri.ProjectiveGeometry.proj_irreducible _root_.OAI.PiExponentSeshadri.ProjectiveGeometry.proj_isIntegral _root_.OAI.PiExponentSeshadri.ProjectiveGeometry.proj_isReduced _root_.OAI.PiExponentSeshadri.ReesGrading.exceptionalInclusion_mono _root_.OAI.PiExponentSeshadri.ReesGrading.polynomial_isReduced _root_.OAI.PiExponentSiegel.W58.cotangentQuotientScalarTower
set_option linter.all false
set_option linter.unusedVariables false
set_option linter.unusedTactic false
set_option linter.unreachableTactic false
namespace OAI
namespace PiExponentSeshadri.Geometry
noncomputable section
open AlgebraicGeometry CategoryTheory TopologicalSpace
open PiExponentSeshadri.Frames
variable {X : Scheme.{0}}
def idealPowerInclusion (J : LineBundle X) (ι : J.sheaf ⟶ O X) :
∀ n : ℕ, (J.pow n).sheaf ⟶ O X
| 0 => 𝟙 _
| n+1 => tensorInclusion J (J.pow n) ι ≫ idealPowerInclusion J ι n
lemma idealPowerInclusion_mono (J : LineBundle X) (ι : J.sheaf ⟶ O X) [Mono ι]
(n : ℕ) : Mono (idealPowerInclusion J ι n) := by
induction n with
| zero => change Mono (𝟙 (O X)); infer_instance
| succ n ih =>
let := ih
let := tensorInclusion_mono J (J.pow n) ι
change Mono (tensorInclusion J (J.pow n) ι ≫ idealPowerInclusion J ι n)
infer_instance
def idealPowerFrame (J : LineBundle X) (U : X.Opens)
(e : J.sheaf.restrict U.ι ≅ O U.toScheme) :
∀ n : ℕ, (J.pow n).sheaf.restrict U.ι ≅ O U.toScheme
| 0 => Scheme.Modules.restrictUnitIso U.ι
| n+1 => tensorFrame J (J.pow n) U e (idealPowerFrame J U e n)
end
end PiExponentSeshadri.Geometry
end OAI
end