ModuleFinrank_H0_H1_sectionsOf_of_range_eq_lSpaceOn.lean
Nyll.AlgebraicCurves.Cohomology.Finrank_H0_H1_sectionsOf_of_range_eq_lSpaceOn
3 declarations indexed from sourceView source ↗ Module documentation
Dimensions of sheaf cohomology from chartwise identifications with divisor-bounded function spaces.
Declarations
AlgebraicCurves.Cohomology.Proofs.Finrank_H0_H1_sectionsOf_of_range_eq_lSpaceOn.AlgebraicCurve.ne_top_of_isAffineOpen_e9'
Source context 12 commands
Surrounding namespaces, section variables, and local commands at this declaration.
section ProofImplementation
namespace AlgebraicCurves.Cohomology.Proofs.Finrank_H0_H1_sectionsOf_of_range_eq_lSpaceOn
attribute [-instance] AlgebraicCurve.Place.instIsPrimeCenter
AlgebraicCurve.Place.instIsFractionRingIntegralClosureAt
instIsTorsionFreeSubtypeMemValuationSubringToValuationSubringIntegralClosureAt
AlgebraicCurve.Place.instIsDedekindDomainIntegralClosureAt
AlgebraicCurve.Place.instFiniteSubtypeMemValuationSubringToValuationSubringIntegralClosureAt
AlgebraicCurve.RationalFunctionField.instNontrivialInftyValueGroup
attribute [-simp] AlgebraicCurve.Place.placeOfPrime_toValuationSubring
AlgebraicCurve.Place.mem_fiberOver AlgebraicCurve.Place.fiberEquiv_symm_apply
AlgebraicCurve.Place.fiberEquiv_apply AlgebraicCurve.Place.centerHeightOneSpectrum_asIdeal
attribute [-simp] AlgebraicCurve.RationalFunctionField.placeEquivOption_placeInfty
AlgebraicCurve.RationalFunctionField.placeEquivOption_symm_some
AlgebraicCurve.RationalFunctionField.placeEquivOption_placeOfPoint
AlgebraicCurve.RationalFunctionField.placeEquivOption_symm_none
AlgebraicCurve.Place.differentialCoeff_zero AlgebraicCurve.Place.differentialCoeff_dCoord
AlgebraicCurve.TranscendenceTower.mk.sizeOf_spec AlgebraicCurve.IntegralBasisInLSpace.mk.injEq
AlgebraicCurve.TranscendenceTower.mk.injEq
attribute [-simp] AlgebraicCurve.PoleDivisorPackage.mk.sizeOf_spec
AlgebraicCurve.IntegralBasisInLSpace.mk.sizeOf_spec AlgebraicCurve.PoleDivisorPackage.mk.injEq
universe u
open CategoryTheory AlgebraicGeometry
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
open CategoryTheory AlgebraicGeometry TopologicalSpace
AlgebraicCurves.Cohomology.Proofs.Finrank_H0_H1_sectionsOf_of_range_eq_lSpaceOn.AlgebraicCurve.finrank_H0_H1_sectionsOf_of_range_eq_lSpaceOn'
Source context 12 commands
Surrounding namespaces, section variables, and local commands at this declaration.
section ProofImplementation
namespace AlgebraicCurves.Cohomology.Proofs.Finrank_H0_H1_sectionsOf_of_range_eq_lSpaceOn
attribute [-instance] AlgebraicCurve.Place.instIsPrimeCenter
AlgebraicCurve.Place.instIsFractionRingIntegralClosureAt
instIsTorsionFreeSubtypeMemValuationSubringToValuationSubringIntegralClosureAt
AlgebraicCurve.Place.instIsDedekindDomainIntegralClosureAt
AlgebraicCurve.Place.instFiniteSubtypeMemValuationSubringToValuationSubringIntegralClosureAt
AlgebraicCurve.RationalFunctionField.instNontrivialInftyValueGroup
attribute [-simp] AlgebraicCurve.Place.placeOfPrime_toValuationSubring
AlgebraicCurve.Place.mem_fiberOver AlgebraicCurve.Place.fiberEquiv_symm_apply
AlgebraicCurve.Place.fiberEquiv_apply AlgebraicCurve.Place.centerHeightOneSpectrum_asIdeal
attribute [-simp] AlgebraicCurve.RationalFunctionField.placeEquivOption_placeInfty
AlgebraicCurve.RationalFunctionField.placeEquivOption_symm_some
AlgebraicCurve.RationalFunctionField.placeEquivOption_placeOfPoint
AlgebraicCurve.RationalFunctionField.placeEquivOption_symm_none
AlgebraicCurve.Place.differentialCoeff_zero AlgebraicCurve.Place.differentialCoeff_dCoord
AlgebraicCurve.TranscendenceTower.mk.sizeOf_spec AlgebraicCurve.IntegralBasisInLSpace.mk.injEq
AlgebraicCurve.TranscendenceTower.mk.injEq
attribute [-simp] AlgebraicCurve.PoleDivisorPackage.mk.sizeOf_spec
AlgebraicCurve.IntegralBasisInLSpace.mk.sizeOf_spec AlgebraicCurve.PoleDivisorPackage.mk.injEq
universe u
open CategoryTheory AlgebraicGeometry
namespace AlgebraicCurve
open _root_.AlgebraicCurve
open _root_.AlgebraicCurve
open CategoryTheory AlgebraicGeometry TopologicalSpace
Lean source · full declarationtheorem finrank_H0_H1_sectionsOf_of_range_eq_lSpaceOn'
{K : Type u} [Field K] [IsAlgClosed K] {X : Scheme.{u}} (𝒱 : X.TwoAffineOpenCover)
(x : X ⟶ Spec (CommRingCat.of K)) [IsIntegral X] [IsProper x] [SmoothOfRelativeDimension 1 x]
(M : X.Modules)
(D : letI := (baseToFunctionField x).toAlgebra; Divisor K X.functionField)
(φ : ∀ U : X.Opens, Γ(M, U) →+ (X.functionField : Type u))
(hnat : ∀ (U V : X.Opens) (h : V ≤ U), Nonempty V →
∀ m : Γ(M, U), φ V (M.presheaf.map (homOfLE h).op m) = φ U m)
(hsmul : ∀ (U : X.Opens) [Nonempty U] (a : Γ(X, U)) (m : Γ(M, U)),
φ U (a • m) = algebraMap Γ(X, U) X.functionField a * φ U m)
(hinj : ∀ U : X.Opens, Nonempty U → Function.Injective (φ U))
(hrange : letI := (baseToFunctionField x).toAlgebra
∀ U : X.Opens, IsAffineOpen U → Nonempty U →
Set.range (φ U) = (lSpaceOn (placesOf x U) D : Set X.functionField)) :
letI := (baseToFunctionField x).toAlgebra
Module.Finite K (𝒱.sectionsOf x M).H0 ∧ Module.Finite K (𝒱.sectionsOf x M).H1 ∧
Module.finrank K (𝒱.sectionsOf x M).H0 = ell D ∧
Module.finrank K (𝒱.sectionsOf x M).H1 = indexOfSpecialty D ∧
(Module.finrank K (𝒱.sectionsOf x M).H0 : ℤ) - Module.finrank K (𝒱.sectionsOf x M).H1
= Divisor.degree D + 1 - genusFF K X.functionField := by
let := (baseToFunctionField x).toAlgebra
have hcurve : IsCurveOver K X.functionField :=
isCurveOver_of_isIntegral_of_smoothOfRelativeDimension_one x (RingEquiv.refl _) (fun _ => rfl)
have : Algebra.EssFiniteType K X.functionField := essFiniteType_functionField x
have hNA := not_isAffine_of_isProper_of_smoothOfRelativeDimension_one x
have hne0 : 𝒱.U0 ≠ ⊤ := ne_top_of_isAffineOpen_e9' hNA 𝒱.isAffineOpen_U0
have hne1 : 𝒱.U1 ≠ ⊤ := ne_top_of_isAffineOpen_e9' hNA 𝒱.isAffineOpen_U1
have h0 : Nonempty 𝒱.U0 := by
by_contra hc
apply hne1
have hb : 𝒱.U0 = ⊥ := by
ext z
simp only [Opens.coe_bot, Set.mem_empty_iff_false, iff_false]
exact fun hz => hc ⟨⟨z, hz⟩⟩
have := 𝒱.sup_eq_top
rwa [hb, bot_sup_eq] at this
have h1 : Nonempty 𝒱.U1 := by
by_contra hc
apply hne0
have hb : 𝒱.U1 = ⊥ := by
ext z
simp only [Opens.coe_bot, Set.mem_empty_iff_false, iff_false]
exact fun hz => hc ⟨⟨z, hz⟩⟩
have := 𝒱.sup_eq_top
rwa [hb, sup_bot_eq] at this
obtain ⟨hcov, hS0, hS1⟩ :=
placesOf_union_eq_univ_of_sup_eq_top x 𝒱.U0 𝒱.U1 𝒱.sup_eq_top hne0 hne1
obtain ⟨v₀, hv₀⟩ := hS0
have : Nonempty (Place K X.functionField) := ⟨v₀⟩
have hC : ConstantsAreBase K X.functionField :=
constantsAreBase_of_deg_eq_one v₀ (IsCurveOver.deg_eq_one_of_isAlgClosed v₀)
obtain ⟨-, hL0, γ, D₀, hγ⟩ := stichtenothGenusExists_of_isCurveOver hC
have := hL0
obtain ⟨⟨e0⟩, ⟨e1⟩⟩ :=
nonempty_linearEquiv_cechH0_and_cechH1_sectionsOf_of_range_eq_lSpaceOn 𝒱 x h0 h1 M D φ hnat
(fun U _ a m => hsmul U a m) hinj hrange
obtain ⟨hfin0, hfin1, hrk0, hrk1, hchi, -⟩ := cechRiemannRoch_of_genusReached hγ hcov ⟨v₀, hv₀⟩
hS1 D
have hγg : (genusFF K X.functionField : ℤ) = γ := by
have h0 := (indexOfSpecialty_eq_of_genusReached hγ (0 : Divisor K X.functionField)).2
rw [ell_zero_eq_one_of_constantsAreBase hC, map_zero, indexOfSpecialty_eq_finrank_H1] at h0
change (Module.finrank K (H1 (0 : Divisor K X.functionField)) : ℤ) = γ
omega
have : Module.Finite K ↥(cechH0 (placesOf x 𝒱.U0) (placesOf x 𝒱.U1) D) := hfin0
have : Module.Finite K (cechH1 (placesOf x 𝒱.U0) (placesOf x 𝒱.U1) D) := hfin1
refine ⟨Module.Finite.equiv e0.symm, Module.Finite.equiv e1.symm, ?_, ?_, ?_⟩
· rw [e0.finrank_eq, hrk0]
· rw [e1.finrank_eq, hrk1]
· rw [e0.finrank_eq, e1.finrank_eq, hγg]
exact hchi
AlgebraicCurve.finrank_H0_H1_sectionsOf_of_range_eq_lSpaceOn
Source context 10 commands
Surrounding namespaces, section variables, and local commands at this declaration.
section ProofImplementation
namespace AlgebraicCurves.Cohomology.Proofs.Finrank_H0_H1_sectionsOf_of_range_eq_lSpaceOn
attribute [-instance] AlgebraicCurve.Place.instIsPrimeCenter
AlgebraicCurve.Place.instIsFractionRingIntegralClosureAt
instIsTorsionFreeSubtypeMemValuationSubringToValuationSubringIntegralClosureAt
AlgebraicCurve.Place.instIsDedekindDomainIntegralClosureAt
AlgebraicCurve.Place.instFiniteSubtypeMemValuationSubringToValuationSubringIntegralClosureAt
AlgebraicCurve.RationalFunctionField.instNontrivialInftyValueGroup
attribute [-simp] AlgebraicCurve.Place.placeOfPrime_toValuationSubring
AlgebraicCurve.Place.mem_fiberOver AlgebraicCurve.Place.fiberEquiv_symm_apply
AlgebraicCurve.Place.fiberEquiv_apply AlgebraicCurve.Place.centerHeightOneSpectrum_asIdeal
attribute [-simp] AlgebraicCurve.RationalFunctionField.placeEquivOption_placeInfty
AlgebraicCurve.RationalFunctionField.placeEquivOption_symm_some
AlgebraicCurve.RationalFunctionField.placeEquivOption_placeOfPoint
AlgebraicCurve.RationalFunctionField.placeEquivOption_symm_none
AlgebraicCurve.Place.differentialCoeff_zero AlgebraicCurve.Place.differentialCoeff_dCoord
AlgebraicCurve.TranscendenceTower.mk.sizeOf_spec AlgebraicCurve.IntegralBasisInLSpace.mk.injEq
AlgebraicCurve.TranscendenceTower.mk.injEq
attribute [-simp] AlgebraicCurve.PoleDivisorPackage.mk.sizeOf_spec
AlgebraicCurve.IntegralBasisInLSpace.mk.sizeOf_spec AlgebraicCurve.PoleDivisorPackage.mk.injEq
universe u
open CategoryTheory AlgebraicGeometry
open _root_.AlgebraicCurves.Cohomology.Proofs in
open _root_.AlgebraicCurve Finrank_H0_H1_sectionsOf_of_range_eq_lSpaceOn.AlgebraicCurve in