53.15 Glueing and squishing to 53.25 Contracting to a stable…
Section53.15 Glueing and squishing#
Section 53.15 of the Stacks Project, Tag 0C1H. 6 tags here are carried by 34 declarations of the repository (all in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 0C1I, a lemma
Tag 0C1I in the Stacks Project.
Algebra.algEquiv_prod_or_dualNumber_of_natCard_subalgebra_eq_two, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/GlueingSquishing/SubalgebraClassification.lean, line 270.
Stacks Project, Tag 0C1I. An algebra over an algebraically closed field with exactly two subalgebras is isomorphic, as an algebra, either to the product algebra or to the dual numbers.
theorem algEquiv_prod_or_dualNumber_of_natCard_subalgebra_eq_two
(k : Type u) (A : Type v) [Field k] [IsAlgClosed k] [CommRing A] [Algebra k A]
(h : Nat.card (Subalgebra k A) = 2) :
Nonempty (A ≃ₐ[k] k × k) ∨ Nonempty (A ≃ₐ[k] DualNumber k)
Algebra.algEquiv_prod_or_dualNumber_of_no_intermediateSubalgebra, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/GlueingSquishing/SubalgebraClassification.lean, line 285.
Stacks Project, Tag 0C1I. An algebra over an algebraically closed field with no proper intermediate subalgebra is either the product algebra or the algebra of dual numbers.
theorem algEquiv_prod_or_dualNumber_of_no_intermediateSubalgebra
(k : Type u) (A : Type v) [Field k] [IsAlgClosed k] [CommRing A] [Algebra k A]
(h_ne : (⊥ : Subalgebra k A) ≠ ⊤)
(h : ∀ B : Subalgebra k A, B = ⊥ ∨ B = ⊤) :
Nonempty (A ≃ₐ[k] k × k) ∨ Nonempty (A ≃ₐ[k] DualNumber k)
Tag 0C1J, an example
Tag 0C1J in the Stacks Project.
AlgebraicGeometry.IsGlueingTwoPoints, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/GlueingSquishing/GlueingTwoPoints.lean, line 142. The attribute's comment: “glueing_two_points”.
A morphism of algebraic
k-schemes glues the distinct rational pointsaandbif they have the same image, the morphism is finite and is an isomorphism off that image, and the additive difference of evaluation ataandbgives the skyscraper quotient of its pushforward structure sheaf.
def IsGlueingTwoPoints {k : Type u} [Field k] [IsAlgClosed k]
{X' X : Scheme.{u}} [X'.Over (Spec (.of k))] [X.Over (Spec (.of k))]
(f : X' ⟶ X) (a b : Spec (.of k) ⟶ X') : Prop
Stacks.GlueSquishUnits.isShortExact_units_of_isGlueingTwoPoints, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/GlueingSquishing/GlueingUnitsSequence.lean, line 839. The attribute's comment: “the units short exact sequence”.
The short exact sequence of sheaves of units of a glueing of two rational points. If
f : X' ⟶ Xglues the distinct rational pointsaandbofX'to the pointx = f(a) = f(b)ofX, then
1 ⟶ 𝒪_X^* ⟶ f_*𝒪_{X'}^* ⟶ (k^*)_x ⟶ 1is a short exact sequence of sheaves of abelian groups on
X, the first map being pullback of units alongfand the second the ratioh ↦ h(a) h(b)⁻¹of the two values of a unit. Both maps are pinned down on sections, so the sequence is the one of [Stacks, Tag 0C1J] and not merely some exact sequence with those terms.This is the input from which [Stacks, Tag 0C1M] obtains the exact sequence
k^* ⟶ Pic(X) ⟶ Pic(X') ⟶ 0: the five-term low-degree cohomology sequence overU = ⊤,Stacks.Cohomology.AbelianColimit.H'longExactSequence_exact, givesH⁰(X, f_*𝒪_{X'}^*) ⟶ k^* ⟶ H¹(X, 𝒪_X^*) ⟶ H¹(X, f_*𝒪_{X'}^*), andStacks.Cohomology.Generators.h1UnitsAddEquivPicardGroupidentifies the first cohomology of a units sheaf with the Picard group.
theorem isShortExact_units_of_isGlueingTwoPoints {k : Type u} [Field k] [IsAlgClosed k]
{X' X : Scheme.{u}} [X'.Over (Spec (.of k))] [X.Over (Spec (.of k))]
(f : X' ⟶ X) (a b : Spec (.of k) ⟶ X')
(h : IsGlueingTwoPoints f a b) (hab : a ≫ f = b ≫ f) :
∃ (φ : unitsSheaf X.toLocallyRingedSpace.toRingedSpace ⟶
(TopCat.Sheaf.pushforward AddCommGrpCat.{u} f.base).obj
(unitsSheaf X'.toLocallyRingedSpace.toRingedSpace))
(ψ : (TopCat.Sheaf.pushforward AddCommGrpCat.{u} f.base).obj
(unitsSheaf X'.toLocallyRingedSpace.toRingedSpace) ⟶
skyscraperUnitsSheaf (k := k) X (gluedPoint f a))
(hzero : φ ≫ ψ = 0),
(ShortComplex.mk φ ψ hzero).ShortExact ∧
(∀ (U : X.Opens) (s : Γ(X, U)ˣ),
φ.hom.app (op U) (Additive.ofMul s) =
Additive.ofMul (Units.map (f.app U).hom.toMonoidHom s)) ∧
(∀ (U : X.Opens) (hz : gluedPoint f a ∈ U)
(ha : a.base (IsLocalRing.closedPoint k) ∈ f ⁻¹ᵁ U)
(hb : b.base (IsLocalRing.closedPoint k) ∈ f ⁻¹ᵁ U) (s : Γ(X', f ⁻¹ᵁ U)ˣ),
skyscraperUnitsEval X (gluedPoint f a) hz
(ψ.hom.app (op U) (Additive.ofMul s)) =
Additive.ofMul (unitRatioAt a b (f ⁻¹ᵁ U) ha hb s))
Tag 0C1K, an example
Tag 0C1K in the Stacks Project.
Stacks.SquishSheafSequence.shortExact_units_of_isSquishingTangentVector, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/GlueingSquishing/SquishingPicardSequence.lean, line 671. The attribute's comment: “the units short exact sequence”.
The short exact sequence of sheaves of units of the squishing of a tangent vector. If
f : X' ⟶ Xsquishes the tangent vectorϑofX'to the rational pointxofX, then
1 ⟶ 𝒪_X^* ⟶ f_*𝒪_{X'}^* ⟶ (k, +)_x ⟶ 1is a short exact sequence of sheaves of abelian groups on
X, the first map being pullback of units alongfand the second the logarithmicε-derivative alongϑ. Both maps are pinned down on sections — byStacks.GlueSquishUnits.unitsPushforwardMap_appandStacks.SquishSheafSequence.epsilonLogDerivSheafHom_app— so the sequence is the one of [Stacks, Tag 0C1N] and not merely some exact sequence with those terms.Injectivity of the first map and exactness in the middle hold already on sections over every open. Surjectivity of the second is local at the contracted point, where it is the surjectivity of the logarithmic
ε-derivative on the units of the stalk off_*𝒪_{X'}; away from the contracted point the skyscraper has no sections.
theorem shortExact_units_of_isSquishingTangentVector {k : Type u} [Field k] [IsAlgClosed k]
{X' X : Scheme.{u}} [X'.Over (Spec (.of k))] [X.Over (Spec (.of k))]
(f : X' ⟶ X) (θ : Spec (.of (DualNumber k)) ⟶ X')
(h : AlgebraicGeometry.IsSquishingTangentVector f θ) :
(ShortComplex.mk (unitsPushforwardMap f) (epsilonLogDerivSheafHom f θ)
(unitsPushforwardMap_comp_epsilonLogDerivSheafHom f θ h)).ShortExact
AlgebraicGeometry.IsSquishingTangentVector, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/GlueingSquishing/SquishingTangentVector.lean, line 77. The attribute's comment: “squishing_tangent_vector”.
A morphism of algebraic
k-schemes squishes a tangent vector if that vector is a closed immersion which is contracted to a rational point, the morphism is finite and an isomorphism off that point, and taking the coefficient ofεgives the skyscraper quotient of the pushforward structure sheaf.
def IsSquishingTangentVector {k : Type u} [Field k] [IsAlgClosed k]
{X' X : Scheme.{u}} [X'.Over (Spec (.of k))] [X.Over (Spec (.of k))]
(f : X' ⟶ X) (θ : Spec (.of (DualNumber k)) ⟶ X') : Prop
Stacks.SquishSheafSequence.shortExact_of_isSquishingTangentVector, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/GlueingSquishing/SquishingUnitsSequence.lean, line 185. The attribute's comment: “the short exact sequence of sheaves”.
The short exact sequence of sheaves attached to the squishing of a tangent vector.
If
f : X' ⟶ Xsquishes the tangent vectorϑofX'to the rational pointxofX, then there is a map of additive sheavesψ : f_*𝒪_{X'} ⟶ (k, +)_xto the additive skyscraper atxfor which
0 → 𝒪_X → f_*𝒪_{X'} → (k, +)_x → 0is short exact, and
ψis given on every neighbourhoodUofxby the coefficient ofεof the restriction alongϑof a section of𝒪_{X'}overf⁻¹U. This is the clause of [Stacks, Tag 0C1K] that the exactness statements of Tags 0C1M and 0C1N consume.
theorem shortExact_of_isSquishingTangentVector {k : Type u} [Field k] [IsAlgClosed k]
{X' X : Scheme.{u}} [X'.Over (Spec (.of k))] [X.Over (Spec (.of k))]
(f : X' ⟶ X) (θ : Spec (.of (DualNumber k)) ⟶ X')
(h : AlgebraicGeometry.IsSquishingTangentVector f θ) :
∃ (ψ : pushforwardAddSheaf f ⟶ skyscraperAddSheaf (k := k) X
((θ ≫ f).base (IsLocalRing.closedPoint (DualNumber k))))
(hzero : structureToPushforwardAddSheaf f ≫ ψ = 0),
(ShortComplex.mk (structureToPushforwardAddSheaf f) ψ hzero).ShortExact ∧
∀ (U : X.Opens)
(hx : (θ ≫ f).base (IsLocalRing.closedPoint (DualNumber k)) ∈ U)
(s : Γ(X', f ⁻¹ᵁ U)),
ψ.hom.app (op U) s =
skyscraperAddSheafMk X ((θ ≫ f).base (IsLocalRing.closedPoint (DualNumber k))) hx
(epsilonCoefficientAt θ (f ⁻¹ᵁ U) (by exact hx) s)
Tag 0C1L, a lemma
Tag 0C1L in the Stacks Project.
Stacks.GlueSquishFactor.algEquiv_prod_or_dualNumber_of_minimal, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/GlueingSquishing/ElementaryFactorization.lean, line 351. The attribute's comment: “the local algebra of a minimal step”.
The local algebra of a minimal step of [Stacks, Tag 0C1L]. Let
kbe an algebraically closed field, letAbe a localk-algebra whose residue field isk(hypothesishres: every element ofAis a scalar modulo the maximal ideal), and letBbe a module-finiteA-algebra which is not generated byA(hypothesishne) and admits noA-subalgebra strictly betweenAandB(hypothesishmin). Then the fibreB ⧸ m_A Bis, as ak-algebra, either the productk × kor the dual numbersk[ε].In the source this is the whole of the case
n = 1: withA = 𝒪_{X, x}andB = (f_*𝒪_{X'})_x, the absence of a proper intermediate subalgebra forcesB = A + m_A B(Nakayama) and then forces the fibreC = B / m_A Bto have exactly twok-subalgebras, so [Stacks, Tag 0C1I] applies. The two outcomes are what make the step a glueing of two points respectively a squishing of a tangent vector.This is the mathematical heart of [Stacks, Tag 0C1L], but not the whole lemma: see the implementation notes of this file for the geometric statements that remain.
theorem algEquiv_prod_or_dualNumber_of_minimal (k : Type u) (A B : Type v) [Field k]
[IsAlgClosed k] [CommRing A] [Algebra k A] [IsLocalRing A] [CommRing B] [Algebra k B]
[Algebra A B] [IsScalarTower k A B] [Module.Finite A B]
(hres : ∀ a : A, ∃ c : k, a - algebraMap k A c ∈ IsLocalRing.maximalIdeal A)
(hne : (⊥ : Subalgebra A B) ≠ ⊤) (hmin : ∀ E : Subalgebra A B, E = ⊥ ∨ E = ⊤) :
Nonempty ((B ⧸ (IsLocalRing.maximalIdeal A).map (algebraMap A B)) ≃ₐ[k] k × k) ∨
Nonempty ((B ⧸ (IsLocalRing.maximalIdeal A).map (algebraMap A B)) ≃ₐ[k] DualNumber k)
Stacks.GlueSquishFactor.IsElementaryStep, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/GlueingSquishing/ElementaryFactorization.lean, line 550. The attribute's comment: “the elementary modifications”.
One step of the factorization of [Stacks, Tag 0C1L]: a morphism of algebraic
k-schemes which either glues two rational points ([Stacks, Tag 0C1J]) or squishes a tangent vector ([Stacks, Tag 0C1K]).
def IsElementaryStep {k : Type u} [Field k] [IsAlgClosed k] {Y' Y : Over (Spec (.of k))}
(f : Y' ⟶ Y) : Prop
Stacks.GlueSquishFactor.IsElementaryChain, an inductive in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/GlueingSquishing/ElementaryFactorization.lean, line 570. The attribute's comment: “the factorization, as an inductive predicate”.
The conclusion of [Stacks, Tag 0C1L], as a predicate on one morphism.
fis a composite of finitely many elementary modifications and isomorphisms, which is the content of the source's chainX' = X_n ⟶ ⋯ ⟶ X_0 = Xtogether with its endpoint identifications. The recursor is the induction on the length that the source's proof performs.
inductive IsElementaryChain (k : Type u) [Field k] [IsAlgClosed k] :
{Y' Y : Over (Spec (.of k))} → (Y' ⟶ Y) → Prop
Stacks.GlueSquishFactor.toIntermediateOver, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/GlueingSquishing/IntermediateFactorization.lean, line 136. The attribute's comment: “the intermediate factorization attached to a subalgebra”.
The morphism
X' ⟶ Spec_X(A)overXattached to a morphismψ : A ⟶ f_* 𝒪_{X'}of𝒪_X-algebras. It is the morphism corresponding toψunder the universal property of the relative spectrum, read through the identification(Spec_X(A) ⟶ X)_* 𝒪 ≅ A.
def toIntermediateOver : Over.mk f ⟶ Over.mk (relativeSpecToBase A)
Stacks.GlueSquishFactor.toIntermediate_comp_relativeSpecToBase, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/GlueingSquishing/IntermediateFactorization.lean, line 155. The attribute's comment: “the intermediate factorization attached to a subalgebra”.
The factorization of
fattached to a morphismψ : A ⟶ f_* 𝒪_{X'}. The morphismX' ⟶ Spec_X(A)ofStacks.GlueSquishFactor.toIntermediate, followed by the structure morphism of the relative spectrum, isf.
theorem toIntermediate_comp_relativeSpecToBase :
toIntermediate f A ψ ≫ relativeSpecToBase A = f
Stacks.GlueSquishFactor.isoRelativeSpecOfAffine, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/GlueingSquishing/IntermediateFactorization.lean, line 226. The attribute's comment: “every affine intermediate factorization comes from a subalgebra”.
A scheme affine over
Xis the relative spectrum of its algebra of functions overX. Forg : Y ⟶ Xaffine, the comparison morphismY ⟶ Spec_X(g_* 𝒪_Y)is an isomorphism of schemes overX. This is [Stacks, Tag 01SA] in the form used by [Stacks, Tag 0C1L]: an intermediate factorization with affine second half is a relative spectrum.
def isoRelativeSpecOfAffine :
Over.mk g ≅ Over.mk (relativeSpecToBase (pushforwardAlgebra g))
Stacks.GlueSquishFactor.toIntermediateOver_factorizationAlgebraHom, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/GlueingSquishing/IntermediateFactorization.lean, line 245. The attribute's comment: “every affine intermediate factorization comes from a subalgebra”.
Every intermediate factorization with affine second half comes from an algebra. For a factorization
f = u ≫ gwithgaffine, the comparison isomorphismY ≅ Spec_X(g_* 𝒪_Y)carriesuto the morphism attached byStacks.GlueSquishFactor.toIntermediateOverto the algebra mapg_* 𝒪_Y ⟶ f_* 𝒪_{X'}of the factorization.
theorem toIntermediateOver_factorizationAlgebraHom :
toIntermediateOver f (pushforwardAlgebra g) (factorizationAlgebraHom f u g hu) =
(Over.homMk u hu : Over.mk f ⟶ Over.mk g) ≫ toRelativeSpecOfAffine g
Stacks.GlueSquishFactor.exists_split_of_algebraHom, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/GlueingSquishing/SplittingStep.lean, line 315. The attribute's comment: “the splitting attached to a finite intermediate subalgebra”.
The splitting step of [Stacks, Tag 0C1L]. Let
f : X' ⟶ Xbe a finite morphism of schemes over a baseSwith𝒪_X ⊂ f_*𝒪_{X'}which is an isomorphism over an openUofX, and let𝒜be a finite quasi-coherent sheaf of𝒪_X-algebras with an injectionψ : 𝒜 ⟶ f_*𝒪_{X'}of𝒪_X-algebras. Thenffactors overSasp ≫ qwith
q : Spec_X(𝒜) ⟶ Xfinite, with𝒪_X ⊂ q_*𝒪, and an isomorphism overU;p : X' ⟶ Spec_X(𝒜)finite, with𝒪_{Spec_X(𝒜)} ⊂ p_*𝒪_{X'}, and an isomorphism overq⁻¹U.Finiteness of
qis the finiteness of𝒜; finiteness ofpis finiteness offcancelled against it;𝒪_X ⊂ q_*𝒪is the chain𝒪_X ⊂ 𝒜 ⊂ f_*𝒪_{X'};𝒪_{Spec_X(𝒜)} ⊂ p_*𝒪_{X'}isψpropagated from the preimages of the affine opens ofXto every open ofSpec_X(𝒜)byStacks.GlueSquishFactor.mono_hom_pushforwardAlgebra_toIntermediate; and the two statements overUare the squeezeStacks.GlueSquishFactor.isIso_morphismRestrict_relativeSpecToBasetogether with cancellation ofq ∣_ Uout off ∣_ U.The last clause is the capture clause: over every open
VofXthe sections of𝒜are sections of the intermediate scheme, byStacks.GlueSquishFactor.mem_range_appLE_toIntermediate. It is what makes the splitting nontrivial — without it a splitting is produced even by𝒜 = 𝒪_X, for whichqis an isomorphism and nothing has happened.
theorem exists_split_of_algebraHom {S : Scheme.{u}} {W' W : Over S} (f : W' ⟶ W)
[IsFinite f.left] [Mono (pushforwardAlgebra f.left).hom] (A : AlgebraSheaf W.left)
[AlgebraSheaf.IsQuasicoherent A] (hAfin : AlgebraSheaf.IsFinite A)
(ψ : A ⟶ pushforwardAlgebra f.left)
(hψ : ∀ V : W.left.Opens, Function.Injective (ψ.right.hom.app (op V)).hom)
{U : W.left.Opens} (hU : IsIso (f.left ∣_ U)) :
∃ (Z : Over S) (p : W' ⟶ Z) (q : Z ⟶ W), p ≫ q = f ∧ IsFinite q.left ∧
Mono (pushforwardAlgebra q.left).hom ∧ IsIso (q.left ∣_ U) ∧ IsFinite p.left ∧
Mono (pushforwardAlgebra p.left).hom ∧ IsIso (p.left ∣_ (q.left ⁻¹ᵁ U)) ∧
∀ (V : W.left.Opens) (hle : f.left ⁻¹ᵁ V ≤ p.left ⁻¹ᵁ (q.left ⁻¹ᵁ V))
(s : Γ(W'.left, f.left ⁻¹ᵁ V)), s ∈ Set.range (ψ.right.hom.app (op V)).hom →
s ∈ Set.range (p.left.appLE (q.left ⁻¹ᵁ V) (f.left ⁻¹ᵁ V) hle).hom
Stacks.GlueSquishFactor.exists_split_isAlmostIso_of_algebraHom, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/GlueingSquishing/SplittingStep.lean, line 364. The attribute's comment: “the splitting, read against the hypotheses of the lemma”.
The splitting step of [Stacks, Tag 0C1L], read against the hypotheses of the lemma. An almost isomorphism of algebraic
k-schemes and a finite quasi-coherent𝒪_X-subalgebra𝒜off_*𝒪_{X'}give a factorizationf = p ≫ qoverSpec kin which both halves are again almost isomorphisms, so both satisfy every hypothesis of the source.Together with a measure which drops along this factorization, this is the hypothesis
hsplitofStacks.GlueSquishFactor.isElementaryChain_of_isAlmostIso. No measure is constructed here. The last clause records that the splitting captures the sections of𝒜, which is what distinguishes it from the trivial splitting by𝒜 = 𝒪_X.
theorem exists_split_isAlmostIso_of_algebraHom {k : Type u} [Field k] [IsAlgClosed k]
{X' X : Over (Spec (.of k))} (f : X' ⟶ X) (hf : IsAlmostIso f) (A : AlgebraSheaf X.left)
[AlgebraSheaf.IsQuasicoherent A] (hAfin : AlgebraSheaf.IsFinite A)
(ψ : A ⟶ pushforwardAlgebra f.left)
(hψ : ∀ V : X.left.Opens, Function.Injective (ψ.right.hom.app (op V)).hom) :
∃ (Z : Over (Spec (.of k))) (p : X' ⟶ Z) (q : Z ⟶ X),
p ≫ q = f ∧ IsAlmostIso q ∧ IsAlmostIso p ∧
∀ (V : X.left.Opens) (hle : f.left ⁻¹ᵁ V ≤ p.left ⁻¹ᵁ (q.left ⁻¹ᵁ V))
(s : Γ(X'.left, f.left ⁻¹ᵁ V)), s ∈ Set.range (ψ.right.hom.app (op V)).hom →
s ∈ Set.range (p.left.appLE (q.left ⁻¹ᵁ V) (f.left ⁻¹ᵁ V) hle).hom
Stacks.GlueSquishFactor.IsAlmostIso.isElementaryChain, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/GlueingSquishing/SquishingProducer.lean, line 615.
[Stacks, Tag 0C1L]. A finite morphism of algebraic
k-schemes which is injective on structure sheaves and an isomorphism away from a finite set of points is a composite of glueings of two rational points and squishings of tangent vectors.
theorem IsAlmostIso.isElementaryChain {k : Type u} [Field k] [IsAlgClosed k]
{X' X : Over (Spec (.of k))} (f : X' ⟶ X) (hf : IsAlmostIso f) : IsElementaryChain k f
Tag 0C1M, a lemma
Tag 0C1M in the Stacks Project.
Stacks.GluePicard.surjective_schemePullbackClassHom, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/GlueingSquishing/GlueingPicard.lean, line 99. The attribute's comment: “surjectivity”.
Pullback of invertible modules along the glueing of two rational points is surjective on Picard groups. The glueing is finite and is an isomorphism away from a single point, so [Stacks, Tag 0C0T] descends a representative of any class on
X'toX.
theorem surjective_schemePullbackClassHom {k : Type u} [Field k] [IsAlgClosed k]
{X' X : Scheme.{u}} [X'.Over (Spec (.of k))] [X.Over (Spec (.of k))]
(f : X' ⟶ X) (a b : Spec (.of k) ⟶ X')
(h : AlgebraicGeometry.IsGlueingTwoPoints f a b) :
Function.Surjective (Stacks.Picard.schemePullbackClassHom f)
Stacks.GluePicard.exists_globalUnit_sectionAt_eq_of_ne_connectedComponents, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/GlueingSquishing/GlueingPicard.lean, line 224. The attribute's comment: “the lifting criterion for vanishing at points on different components”.
The first map of the sequence of Stacks Tag 0C1M is zero when the two glued points lie on different connected components of
X', in the form that the connecting homomorphism consumes: every scalarcis the ratio of the values ataand atbof a unit on all ofX', so the invertible module obtained by glueing the fibres ataandbwith ratiocis trivial.
theorem exists_globalUnit_sectionAt_eq_of_ne_connectedComponents
{k : Type u} [Field k] [IsAlgClosed k]
{X' X : Scheme.{u}} [X'.Over (Spec (.of k))] [X.Over (Spec (.of k))]
(f : X' ⟶ X) (a b : Spec (.of k) ⟶ X')
(h : AlgebraicGeometry.IsGlueingTwoPoints f a b)
(hab : ConnectedComponents.mk (a.base (IsLocalRing.closedPoint k)) ≠
ConnectedComponents.mk (b.base (IsLocalRing.closedPoint k))) (c : kˣ) :
∃ s : Γ(X', ⊤)ˣ,
AlgebraicGeometry.sectionAt a ⊤ (Opens.mem_top _) (s : Γ(X', ⊤)) = (c : k) ∧
AlgebraicGeometry.sectionAt b ⊤ (Opens.mem_top _) (s : Γ(X', ⊤)) = 1
Stacks.GluePicard.schemePullbackClassHom_eq_zero_iff_exists_picardGluingHom, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/GlueingSquishing/GlueingPicardExactness.lean, line 154. The attribute's comment: “exactness at Pic(X): the kernel of pullback is the image of k^*”.
Exactness at
Pic(X)of the sequence of [Stacks, Tag 0C1M]. Forkalgebraically closed andf : X' ⟶ Xthe glueing of the two rational pointsaandbofX', a Picard class ofXpulls back to zero onX'exactly when it is the value of the gluing homomorphismStacks.GluePicard.picardGluingHomat a scalar; that is, the kernel ofPic(X) ⟶ Pic(X')is the image ofk^* ⟶ Pic(X).
theorem schemePullbackClassHom_eq_zero_iff_exists_picardGluingHom {k : Type u} [Field k]
[IsAlgClosed k] {X' X : Scheme.{u}} [X'.Over (Spec (.of k))] [X.Over (Spec (.of k))]
(f : X' ⟶ X) (a b : Spec (.of k) ⟶ X')
(h : AlgebraicGeometry.IsGlueingTwoPoints f a b) (L : Stacks.Picard.ofScheme X) :
Stacks.Picard.schemePullbackClassHom f L = 0 ↔
∃ c : Additive kˣ, picardGluingHom f a b h c = L
Stacks.GluePicard.exact_picardGluingHom_schemePullbackClassHom, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/GlueingSquishing/GlueingPicardExactness.lean, line 179. The attribute's comment: “exactness at Pic(X): the kernel of pullback is the image of k^*”.
Exactness at
Pic(X)of the sequence of [Stacks, Tag 0C1M], in theFunction.Exactspelling: the kernel of pullback of Picard classes is the range of the gluing homomorphism.
theorem exact_picardGluingHom_schemePullbackClassHom {k : Type u} [Field k] [IsAlgClosed k]
{X' X : Scheme.{u}} [X'.Over (Spec (.of k))] [X.Over (Spec (.of k))]
(f : X' ⟶ X) (a b : Spec (.of k) ⟶ X')
(h : AlgebraicGeometry.IsGlueingTwoPoints f a b) :
Function.Exact (picardGluingHom f a b h) (Stacks.Picard.schemePullbackClassHom f)
Stacks.GluePicard.picardGluingHom_eq_zero_of_ne_connectedComponents, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/GlueingSquishing/GlueingPicardExactness.lean, line 253. The attribute's comment: “the first map is zero if a and b are on different connected components of X'”.
The first map of the sequence of [Stacks, Tag 0C1M] is zero when the two glued points lie on different connected components of
X'.
theorem picardGluingHom_eq_zero_of_ne_connectedComponents {k : Type u} [Field k] [IsAlgClosed k]
{X' X : Scheme.{u}} [X'.Over (Spec (.of k))] [X.Over (Spec (.of k))]
(f : X' ⟶ X) (a b : Spec (.of k) ⟶ X')
(h : AlgebraicGeometry.IsGlueingTwoPoints f a b)
(hab : ConnectedComponents.mk (a.base (IsLocalRing.closedPoint k)) ≠
ConnectedComponents.mk (b.base (IsLocalRing.closedPoint k))) :
picardGluingHom f a b h = 0
Stacks.GluePicard.picardGluingHom, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/GlueingSquishing/GlueingPicardSequence.lean, line 343. The attribute's comment: “the gluing homomorphism”.
Stacks Project, Tag 0C1M. The gluing homomorphism
k^* ⟶ Pic(X).
def picardGluingHom {k : Type u} [Field k] [IsAlgClosed k]
{X' X : Scheme.{u}} [X'.Over (Spec (.of k))] [X.Over (Spec (.of k))]
(f : X' ⟶ X) (a b : Spec (.of k) ⟶ X')
(h : AlgebraicGeometry.IsGlueingTwoPoints f a b) :
Additive kˣ →+ Stacks.Picard.ofScheme X
Stacks.GluePicard.injective_picardGluingHom_of_connectedComponents_eq, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/GlueingSquishing/GlueingPicardSequence.lean, line 559. The attribute's comment: “injectivity if X' is proper and the two points lie on the same connected component”.
Stacks Project, Tag 0C1M. The gluing homomorphism is injective when
X'is proper and the two glued points lie on the same connected component ofX': a scalar in its kernel is the ratio of the two values of a unit onX', and on a connected component of a proper scheme over an algebraically closed field the two values of any function agree.
theorem injective_picardGluingHom_of_connectedComponents_eq
{k : Type u} [Field k] [IsAlgClosed k]
{X' X : Scheme.{u}} [X'.Over (Spec (.of k))] [X.Over (Spec (.of k))]
(f : X' ⟶ X) (a b : Spec (.of k) ⟶ X')
(h : AlgebraicGeometry.IsGlueingTwoPoints f a b) [IsProper (X' ↘ Spec (.of k))]
(hab : ConnectedComponents.mk (a.base (IsLocalRing.closedPoint k)) =
ConnectedComponents.mk (b.base (IsLocalRing.closedPoint k))) :
Function.Injective (picardGluingHom f a b h)
Tag 0C1N, a lemma
Tag 0C1N in the Stacks Project.
Stacks.SquishPicard.picardPullback_zero_and_add, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/GlueingSquishing/SquishingPicard.lean, line 97. The attribute's comment: “the Picard pullback homomorphism”.
Pullback of Picard classes is a homomorphism of abelian groups.
theorem picardPullback_zero_and_add {X' X : Scheme.{u}} (f : X' ⟶ X) :
Stacks.Picard.schemePullbackClassHom f 0 = 0 ∧
∀ x y : Stacks.Picard.ofScheme X,
Stacks.Picard.schemePullbackClassHom f (x + y) =
Stacks.Picard.schemePullbackClassHom f x +
Stacks.Picard.schemePullbackClassHom f y
Stacks.SquishPicard.surjective_schemePullbackClassHom, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/GlueingSquishing/SquishingPicard.lean, line 107. The attribute's comment: “surjectivity”.
Pullback along the squishing of a tangent vector is surjective on Picard groups.
theorem surjective_schemePullbackClassHom {k : Type u} [Field k] [IsAlgClosed k]
{X' X : Scheme.{u}} [X'.Over (Spec (.of k))] [X.Over (Spec (.of k))]
(f : X' ⟶ X) (θ : Spec (.of (DualNumber k)) ⟶ X')
(h : AlgebraicGeometry.IsSquishingTangentVector f θ) :
Function.Surjective (Stacks.Picard.schemePullbackClassHom f)
Stacks.SquishPicard.epsilonCoefficientAt_eq_zero_of_isProper_of_isReduced, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/GlueingSquishing/SquishingPicard.lean, line 240. The attribute's comment: “the lifting criterion for injectivity on a proper reduced scheme”.
The first map of the sequence of Stacks Tag 0C1N is injective when
X'is proper and reduced, in the form that the connecting homomorphism consumes: theε-coefficient along the squished tangent vector of every global section of𝒪_{X'}vanishes.The global functions of a scheme proper over
kare integral overk, and those of a reduced scheme are a reduced ring, so the minimal polynomial overkof a global section is squarefree. Its image ink[ε]therefore cannot be a double root of a linear polynomial, which is what a nonzeroε-coefficient would make it.
theorem epsilonCoefficientAt_eq_zero_of_isProper_of_isReduced
{k : Type u} [Field k] [IsAlgClosed k]
{X' X : Scheme.{u}} [X'.Over (Spec (.of k))] [X.Over (Spec (.of k))]
(f : X' ⟶ X) (θ : Spec (.of (DualNumber k)) ⟶ X')
(h : AlgebraicGeometry.IsSquishingTangentVector f θ)
[IsProper (X' ↘ Spec (.of k))] [IsReduced X'] (s : Γ(X', ⊤)) :
AlgebraicGeometry.epsilonCoefficientAt θ ⊤ trivial s = 0
Stacks.SquishPicard.epsilonCoefficientAt_unit_eq_zero_of_isProper_of_isReduced, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/GlueingSquishing/SquishingPicard.lean, line 258. The attribute's comment: “the lifting criterion for injectivity on a proper reduced scheme”.
The criterion of
Stacks.SquishPicard.epsilonCoefficientAt_eq_zero_of_isProper_of_isReducedfor a global unit: the logarithmicε-derivative of a unit on a proper reducedX'vanishes, so no nonzero scalar is hit by the units sequence and the first map of Tag 0C1N is injective.
theorem epsilonCoefficientAt_unit_eq_zero_of_isProper_of_isReduced
{k : Type u} [Field k] [IsAlgClosed k]
{X' X : Scheme.{u}} [X'.Over (Spec (.of k))] [X.Over (Spec (.of k))]
(f : X' ⟶ X) (θ : Spec (.of (DualNumber k)) ⟶ X')
(h : AlgebraicGeometry.IsSquishingTangentVector f θ)
[IsProper (X' ↘ Spec (.of k))] [IsReduced X'] (s : Γ(X', ⊤)ˣ) :
AlgebraicGeometry.epsilonCoefficientAt θ ⊤ trivial (s : Γ(X', ⊤)) = 0
Stacks.SquishSheafSequence.schemePullbackClassHom_eq_zero_iff_exists_picardTangentHom, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/GlueingSquishing/SquishingPicardExactness.lean, line 222. The attribute's comment: “exactness”.
Exactness at
Pic(X)of the sequence of [Stacks, Tag 0C1N]. Forkalgebraically closed andf : X' ⟶ Xthe squishing of the tangent vectorθofX', a Picard class ofXpulls back to zero onX'exactly when it is the value of the tangent homomorphismStacks.SquishSheafSequence.picardTangentHomat a scalar; that is, the kernel ofPic(X) ⟶ Pic(X')is the image of(k, +) ⟶ Pic(X).
theorem schemePullbackClassHom_eq_zero_iff_exists_picardTangentHom (f : X' ⟶ X)
(θ : Spec (.of (DualNumber k)) ⟶ X')
(h : AlgebraicGeometry.IsSquishingTangentVector f θ) (L : Stacks.Picard.ofScheme X) :
Stacks.Picard.schemePullbackClassHom f L = 0 ↔
∃ a : k, picardTangentHom f θ h a = L
Stacks.SquishSheafSequence.exact_picardTangentHom_schemePullbackClassHom, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/GlueingSquishing/SquishingPicardExactness.lean, line 246. The attribute's comment: “exactness”.
Exactness at
Pic(X)of the sequence of [Stacks, Tag 0C1N], in theFunction.Exactspelling: the kernel of pullback of Picard classes is the range of the tangent homomorphism.
theorem exact_picardTangentHom_schemePullbackClassHom (f : X' ⟶ X)
(θ : Spec (.of (DualNumber k)) ⟶ X')
(h : AlgebraicGeometry.IsSquishingTangentVector f θ) :
Function.Exact (picardTangentHom f θ h) (Stacks.Picard.schemePullbackClassHom f)
Stacks.SquishSheafSequence.picardTangentHom, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/GlueingSquishing/SquishingPicardSequence.lean, line 901. The attribute's comment: “the tangent homomorphism”.
The tangent homomorphism
(k, +) ⟶ Pic(X)of [Stacks, Tag 0C1N]. It is the connecting homomorphism of the short exact sequence of sheaves of units of a squishing, read through the five-term low-degree cohomology sequence over the whole space and through the identification ofH¹(X, 𝒪_X^*)with the Picard group of [Stacks, Tag 09NU].
def picardTangentHom {k : Type u} [Field k] [IsAlgClosed k] {X' X : Scheme.{u}}
[X'.Over (Spec (.of k))] [X.Over (Spec (.of k))] (f : X' ⟶ X)
(θ : Spec (.of (DualNumber k)) ⟶ X')
(h : AlgebraicGeometry.IsSquishingTangentVector f θ) : k →+ Stacks.Picard.ofScheme X
Stacks.SquishSheafSequence.injective_picardTangentHom_of_isProper_of_isReduced, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/GlueingSquishing/SquishingPicardSequence.lean, line 975. The attribute's comment: “injectivity on a proper reduced scheme”.
The tangent homomorphism is injective when
X'is proper and reduced. A scalar in its kernel is the logarithmicε-derivative of a unit onX', and on a proper reducedX'the logarithmicε-derivative of a global unit vanishes byStacks.SquishSheafSequence.epsilonLogDeriv_eq_zero_of_isProper_of_isReduced.
theorem injective_picardTangentHom_of_isProper_of_isReduced {k : Type u} [Field k]
[IsAlgClosed k] {X' X : Scheme.{u}} [X'.Over (Spec (.of k))] [X.Over (Spec (.of k))]
(f : X' ⟶ X) (θ : Spec (.of (DualNumber k)) ⟶ X')
(h : AlgebraicGeometry.IsSquishingTangentVector f θ)
[IsProper (X' ↘ Spec (.of k))] [IsReduced X'] :
Function.Injective (picardTangentHom f θ h)
Stacks.SquishSheafSequence.epsilonLogDerivSheafHom_app, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/GlueingSquishing/SquishingUnitsSequence.lean, line 435. The attribute's comment: “the quotient map of the sequence of sheaves of units”.
The quotient map of the units sequence is the logarithmic
ε-derivative on the units of the sections over every neighbourhood of the contracted point.
theorem epsilonLogDerivSheafHom_app {k : Type u} [Field k] {X' X : Scheme.{u}} (f : X' ⟶ X)
(θ : Spec (.of (DualNumber k)) ⟶ X') (U : X.Opens)
(hx : (θ ≫ f).base (IsLocalRing.closedPoint (DualNumber k)) ∈ U)
(s : Γ(X', f ⁻¹ᵁ U)ˣ) :
(epsilonLogDerivSheafHom f θ).hom.app (op U) (Additive.ofMul s) =
skyscraperAddSheafMk X ((θ ≫ f).base (IsLocalRing.closedPoint (DualNumber k))) hx
(epsilonLogDeriv θ (f ⁻¹ᵁ U) hx s)
Stacks.SquishSheafSequence.epsilonLogDeriv_eq_zero_of_isProper_of_isReduced, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/GlueingSquishing/SquishingUnitsSequence.lean, line 451. The attribute's comment: “vanishing of the logarithmic derivative on a proper reduced scheme”.
On a proper reduced
X'the logarithmicε-derivative of a global unit vanishes, so the arrow to(k, +)of the units sequence of [Stacks, Tag 0C1N] kills the global units and the connecting homomorphism(k, +) → Pic(X)is injective. Theε-coefficient of every global section already vanishes, byStacks.SquishPicard.epsilonCoefficientAt_eq_zero_of_isProper_of_isReduced.
theorem epsilonLogDeriv_eq_zero_of_isProper_of_isReduced
{k : Type u} [Field k] [IsAlgClosed k]
{X' X : Scheme.{u}} [X'.Over (Spec (.of k))] [X.Over (Spec (.of k))]
(f : X' ⟶ X) (θ : Spec (.of (DualNumber k)) ⟶ X')
(h : AlgebraicGeometry.IsSquishingTangentVector f θ)
[IsProper (X' ↘ Spec (.of k))] [IsReduced X'] (u : Γ(X', ⊤)ˣ) :
epsilonLogDeriv θ ⊤ (Opens.mem_top _) u = 0
Sources
Section53.16 Multicross and nodal singularities#
Section 53.16 of the Stacks Project, Tag 0C1P. 5 tags here are carried by 8 declarations of the repository (all in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 0C1U, an equation
Tag 0C1U in the Stacks Project.
Stacks.Curves.multicross, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/Node/Multicross.lean, line 56.
The ring of
n-tuples of formal power series having the same constant coefficient.
def multicross (k : Type*) [CommRing k] (n : ℕ) : Subring (Fin n → PowerSeries k)
Tag 0C1V, a lemma
Tag 0C1V in the Stacks Project.
Ring.deltaInvariant_ge_numberOfBranches_sub_one, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Variety/MulticrossBranches/BranchBound.lean, line 77. The attribute's comment: “delta invariant bound”.
The delta invariant of a reduced one-dimensional Nagata local algebra over a separably closed field is at least the number of branches minus one.
theorem deltaInvariant_ge_numberOfBranches_sub_one
(k : Type u) (A : Type v) [Field k] [IsSepClosed k] [CommRing A] [Algebra k A]
[IsLocalRing A] [IsReduced A] (hNagata : IsNagataRing A)
(hdim : ringKrullDim A = 1) (_hres : Nonempty (ResidueField A ≃ₐ[k] k)) :
numberOfBranchesOfLocalRing A - 1 ≤ Ring.deltaInvariant A
Ring.adicCompletion_algEquiv_multicross_of_deltaInvariant_eq, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Variety/MulticrossBranches/Completion.lean, line 49. The attribute's comment: “equality case”.
If equality holds in the branch bound, the completed local algebra is the multicross algebra with one power-series factor for each branch.
theorem adicCompletion_algEquiv_multicross_of_deltaInvariant_eq
(k : Type u) (A : Type v) [Field k] [IsSepClosed k] [CommRing A] [Algebra k A]
[IsLocalRing A] [IsReduced A] (hNagata : IsNagataRing A)
(hdim : ringKrullDim A = 1) (_hres : Nonempty (ResidueField A ≃ₐ[k] k))
(heq : Ring.deltaInvariant A = numberOfBranchesOfLocalRing A - 1) :
∃ n : ℕ, numberOfBranchesOfLocalRing A = n ∧
∃ e : AdicCompletion (maximalIdeal A) A ≃+* multicross k n,
e.toRingHom.comp (algebraMap k (AdicCompletion (maximalIdeal A) A)) =
(RingHom.pi fun _ : Fin n ↦ PowerSeries.C).codRestrict
(multicross k n) (by
intro a
rw [mem_multicross]
simp)
Ring.deltaInvariant_eq_numberOfBranches_sub_one_of_adicCompletion_algEquiv_multicross, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Variety/MulticrossBranches/Completion.lean, line 333. The attribute's comment: “converse equality case”.
A coefficient-compatible multicross description of the completion, with one factor for each branch, forces equality in the delta-invariant bound.
theorem deltaInvariant_eq_numberOfBranches_sub_one_of_adicCompletion_algEquiv_multicross
(k : Type u) (A : Type v) [Field k] [IsSepClosed k] [CommRing A] [Algebra k A]
[IsLocalRing A] [IsReduced A] (hNagata : IsNagataRing A)
(hdim : ringKrullDim A = 1) (_hres : Nonempty (ResidueField A ≃ₐ[k] k))
(n : ℕ) (hn : numberOfBranchesOfLocalRing A = n)
(e : AdicCompletion (maximalIdeal A) A ≃+* multicross k n)
(_he : e.toRingHom.comp (algebraMap k (AdicCompletion (maximalIdeal A) A)) =
(RingHom.pi fun _ : Fin n ↦ PowerSeries.C).codRestrict
(multicross k n) (by
intro a
rw [mem_multicross]
simp)) :
Ring.deltaInvariant A = numberOfBranchesOfLocalRing A - 1
Tag 0C1W, a definition
Tag 0C1W in the Stacks Project.
Stacks.Curves.IsMulticrossSingularity, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/IsNode.lean, line 111. The attribute's comment: “multicross singularity”.
Stacks 0C1W. A point is a multicross singularity if it is closed and its completed local ring is a multicross ring with at least two branches.
def IsMulticrossSingularity (k : Type u) [Field k] [IsAlgClosed k] (X : Scheme.{u})
[X.Over (Spec (.of k))] (x : X) : Prop
Stacks.Curves.IsOrdinaryDoublePoint, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/IsNode.lean, line 123. The attribute's comment: “node (ordinary double point)”. References: SGA 7 VI (6.6), “dim 1, k alg. closed”; SGA 7 XV (1.2.1), “dim 1, alg. closed k”; SGA 7 XVII (1.1), “n=2, k alg. closed”; SGA 7 IX (10.5.4); SGA 7 IX (12.1.11).
Stacks 0C1W. A point is an ordinary double point — a node, or a nodal singularity — if it is closed and its completed local ring is the two-branch multicross ring.
def IsOrdinaryDoublePoint (k : Type u) [Field k] [IsAlgClosed k] (X : Scheme.{u})
[X.Over (Spec (.of k))] (x : X) : Prop
Tag 0C1X, a lemma
Tag 0C1X in the Stacks Project.
Stacks.Curves.isMulticrossSingularity_tfae, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/MulticrossGlueingResolution.lean, line 3082. The attribute's comment: “all three clauses. The hypothesis that the local ring at x is not regular is an erratum repair, not a weakening: the source's displayed equivalence is false at a nonsingular closed point, where the delta invariant is 0 and the number of branches is 1, so clauses (2) and (3) hold while (1) fails because Definition 0C1W requires n ≥ 2 -- Lemma 0C1V, which the source cites for the equivalence of (1) and (2), puts no lower bound on n. That counterexample is proved, not asserted, in Stacks.Curves.exists_counterexample_to_displayed_statement_of_tag_0C1X_at_nonsingular_point, and at a concrete scheme -- the origin of the affine line -- in Stacks.Curves.exists_counterexample_to_displayed_statement_of_tag_0C1X_specPolynomial. The hypothesis excludes exactly the regular configurations, where the equivalence fails, and nothing else”.
Stacks 0C1X. Let
kbe an algebraically closed field,Xa reduced algebraic one-dimensionalk-scheme andx ∈ Xa closed point whose local ring is not regular. The following are equivalent:
xdefines a multicross singularity;- the delta invariant of
Xatxis the number of branches ofXatxminus one;- there is a sequence of morphisms
U_n ⟶ U_{n-1} ⟶ … ⟶ U_0 = U ⊆ XwithUan open neighbourhood ofx, withU_nnonsingular, and with every step a glueing of two points as in Example 0C1J.The equivalence of (1) and (2) is
Stacks.Curves.isMulticrossSingularity_iff_deltaInvariant_eq_of_not_isRegularLocalRing, which is Tag 0C1V read at a point of a scheme. For (3) implies (1) the completion at the point glued in each step is the pair pullback of the two completions above it, hence a multicross ring or a field, and over every other point the step is an isomorphism on stalks. For (1) implies (3) an open neighbourhood on whichxis the only singular point is chosen, Tag 0C1L factors its normalization morphism into glueings of two points and squishings of tangent vectors, and no step is a squishing because a multicross completion is seminormal while a squishing produces a non-seminormal completion.
theorem isMulticrossSingularity_tfae
(k : Type u) [Field k] [IsAlgClosed k] (X : Scheme.{u})
[X.Over (AlgebraicGeometry.Spec (.of k))]
[LocallyOfFiniteType (X ↘ AlgebraicGeometry.Spec (.of k))]
[QuasiCompact (X ↘ AlgebraicGeometry.Spec (.of k))] [IsReduced X]
(hX : topologicalKrullDim X = 1) (x : X) (hx : IsClosed ({x} : Set X))
(hsing : ¬ IsRegularLocalRing (X.presheaf.stalk x)) :
List.TFAE
[Stacks.Curves.IsMulticrossSingularity k X x,
Ring.deltaInvariant (X.presheaf.stalk x) = numberOfBranches X x - 1,
HasNonsingularGlueingResolution k X x]
Tag 0CDZ, a lemma
Tag 0CDZ in the Stacks Project.
Stacks.Curves.isOrdinaryDoublePoint_of_isGorenstein, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/MulticrossGorenstein.lean, line 550.
Stacks 0CDZ. A multicross singularity of a Gorenstein scheme over an algebraically closed field is a node.
theorem isOrdinaryDoublePoint_of_isGorenstein (k : Type u) [Field k] [IsAlgClosed k]
(X : Scheme.{u}) [X.Over (Spec (.of k))] [IsGorenstein X] (x : X)
(hx : IsMulticrossSingularity k X x) :
IsOrdinaryDoublePoint k X x
Sources
Section53.17 Torsion in the Picard group#
Section 53.17 of the Stacks Project, Tag 0C1Y. 3 tags here are carried by 6 declarations of the repository (all in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 0C1Z, a lemma
Tag 0C1Z in the Stacks Project.
Stacks.Picard.nonempty_torsionBy_addEquiv_pi_zmod_of_smoothProjectiveCurve, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Picard/TorsionSmoothProjectiveCurve/Unconditional.lean, line 121. The attribute's comment: “clause (1)”.
Stacks Project, Tag 0C1Z (1). Let
kbe an algebraically closed field andXa smooth projective curve of genusgoverk. Ifn ≥ 1is invertible ink, thenPic(X)[n] ≅ (ℤ/nℤ)^{⊕2g}.
theorem nonempty_torsionBy_addEquiv_pi_zmod_of_smoothProjectiveCurve (k : Type u) [Field k]
[IsAlgClosed k] {X : Scheme.{u}} (f : X ⟶ Spec (.of k)) [IsCurve k f]
[IsProjectiveVariety k f] [Smooth f] (n : ℕ) (hn : 1 ≤ n) (hnk : IsUnit (n : k)) :
Nonempty (Submodule.torsionBy ℤ (ofScheme X) (n : ℤ) ≃+ (Fin (2 * genus f) → ZMod n))
Stacks.Picard.exists_rank_torsionBy_prime_pow_addEquiv_pi_zmod_of_smoothProjectiveCurve, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Picard/TorsionSmoothProjectiveCurve/Unconditional.lean, line 134. The attribute's comment: “clause (2)”.
Stacks Project, Tag 0C1Z (2). Let
kbe an algebraically closed field of characteristicp > 0andXa smooth projective curve of genusgoverk. Then there is an integer0 ≤ r ≤ gwithPic(X)[p^m] ≅ (ℤ/p^mℤ)^{⊕r}for allm ≥ 1(the source'sf).
theorem exists_rank_torsionBy_prime_pow_addEquiv_pi_zmod_of_smoothProjectiveCurve (k : Type u)
[Field k] [IsAlgClosed k] {X : Scheme.{u}} (f : X ⟶ Spec (.of k)) [IsCurve k f]
[IsProjectiveVariety k f] [Smooth f] (p : ℕ) [CharP k p] (hp : 0 < p) :
∃ r : ℕ, r ≤ genus f ∧ ∀ m : ℕ, 1 ≤ m →
Nonempty (Submodule.torsionBy ℤ (ofScheme X) ((p : ℤ) ^ m) ≃+ (Fin r → ZMod (p ^ m)))
Tag 0CDU, a lemma
Tag 0CDU in the Stacks Project.
Stacks.Picard.exists_finite_separable_torsionBy_of_genus_eq_one, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/PicardTorsionVisible.lean, line 112. The attribute's comment: “(1)”.
Stacks Project, Tag 0CDU (1). Let
kbe a field, letnbe prime to the characteristic ofk, and letXbe a smooth proper curve overkwithH⁰(X, 𝒪_X) = kand of genus1. Then there is a finite separable extensionk'/ksuch thatX_{k'}has ak'-rational point andPic(X_{k'})[n] ≅ (ℤ/nℤ)^{⊕2}.The point is a closed point with finite separable residue field, which exists by Tag 056U.
theorem exists_finite_separable_torsionBy_of_genus_eq_one [IsCurve k f] [Smooth f] [IsProper f]
[IsIso ((Scheme.ΓSpecIso (.of k)).inv ≫ f.appTop)] (hg : genus f = 1) {n : ℕ}
(hn : (n : k) ≠ 0) :
∃ (k' : Type u) (_ : Field k') (_ : Algebra k k'), FiniteDimensional k k' ∧
Algebra.IsSeparable k k' ∧
(∃ t : Spec (.of k') ⟶ pullback f (Spec.map (CommRingCat.ofHom (algebraMap k k'))),
t ≫ pullback.snd f (Spec.map (CommRingCat.ofHom (algebraMap k k'))) = 𝟙 _) ∧
Nonempty (Submodule.torsionBy ℤ
(ofScheme (pullback f (Spec.map (CommRingCat.ofHom (algebraMap k k'))))) (n : ℤ) ≃+
(Fin 2 → ZMod n))
Stacks.Picard.exists_finite_separable_torsionBy_of_two_le_genus, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/PicardTorsionVisible.lean, line 137. The attribute's comment: “(2)”.
Stacks Project, Tag 0CDU (2). Let
kbe a field, letnbe prime to the characteristic ofk, and letXbe a smooth proper curve overkwithH⁰(X, 𝒪_X) = kand of genusg ≥ 2. Then there is a finite separable extensionk'/kwith[k' : k] ≤ (2g - 2)(n^{2g})!such thatX_{k'}has ak'-rational point andPic(X_{k'})[n] ≅ (ℤ/nℤ)^{⊕2g}.The closed point of degree at most
2g - 2with separable residue field is Tag 0CD4.
theorem exists_finite_separable_torsionBy_of_two_le_genus [IsCurve k f] [Smooth f] [IsProper f]
[IsIso ((Scheme.ΓSpecIso (.of k)).inv ≫ f.appTop)] (hg : 2 ≤ genus f) {n : ℕ}
(hn : (n : k) ≠ 0) :
∃ (k' : Type u) (_ : Field k') (_ : Algebra k k'), FiniteDimensional k k' ∧
Algebra.IsSeparable k k' ∧
Module.finrank k k' ≤ (2 * genus f - 2) * (n ^ (2 * genus f)).factorial ∧
(∃ t : Spec (.of k') ⟶ pullback f (Spec.map (CommRingCat.ofHom (algebraMap k k'))),
t ≫ pullback.snd f (Spec.map (CommRingCat.ofHom (algebraMap k k'))) = 𝟙 _) ∧
Nonempty (Submodule.torsionBy ℤ
(ofScheme (pullback f (Spec.map (CommRingCat.ofHom (algebraMap k k'))))) (n : ℤ) ≃+
(Fin (2 * genus f) → ZMod n))
Tag 0C20, a proposition
Tag 0C20 in the Stacks Project.
AlgebraicGeometry.finrank_picardTorsion_le_genus_add_geometricGenus_of_isReduced_dim_one, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Picard/TorsionReducedProperCurve.lean, line 768. The attribute's comment: “the bound dim Pic(X)[l] ≤ g + g_geom (connectedness not needed)”.
Stacks Project, Tag 0C20, the bound.
Let
kbe an algebraically closed field, letXbe a proper scheme overkwhich is reduced and of dimension one, letg = h¹(X, 𝒪_X)be its genus and letg_geombe the sum of the geometric genera of its irreducible components, and letℓbe a prime different from the characteristic ofk. Then theℓ-torsion ofPic(X)is finite-dimensional overF_ℓand
dim_{F_ℓ} Pic(X)[ℓ] ≤ g + g_geom.Connectedness, which the source assumes, is not needed; the source's statement is the special case
[ConnectedSpace X].The proof is the source's: the normalization is factored by [Stacks, Tag 0C1L], the two invariants are compared along the factorization by the three lines of the source's table, and at the far end
h¹(X^ν) = g_geom(AlgebraicGeometry.genus_normalizationOverField_eq_geometricGenus) anddim_{F_ℓ} Pic(X^ν)[ℓ] = 2 g_geom, the latter from clause (1) of [Stacks, Tag 0C1Z] (Stacks.Picard.nonempty_torsionBy_addEquiv_pi_zmod_of_smoothProjectiveCurve) byAlgebraicGeometry.rank_picardTorsion_normalizationSchemeOverField_eq_two_mul_geometricGenus.
theorem finrank_picardTorsion_le_genus_add_geometricGenus_of_isReduced_dim_one (k : Type u)
[Field k] [IsAlgClosed k]
(X : Scheme.{u}) [X.Over (Spec (.of k))] [IsProper (X ↘ Spec (.of k))] [IsReduced X]
(hdim : topologicalKrullDim (X : Type u) = 1) (ℓ : ℕ) [Fact ℓ.Prime] (hℓ : (ℓ : k) ≠ 0) :
FiniteDimensional (ZMod ℓ) (AddSubgroup.torsionBy (ofScheme X) (ℓ : ℤ)) ∧
Module.finrank (ZMod ℓ) (AddSubgroup.torsionBy (ofScheme X) (ℓ : ℤ)) ≤
genus (X ↘ Spec (.of k)) + geometricGenus k (X ↘ Spec (.of k))
AlgebraicGeometry.finrank_picardTorsion_eq_iff_forall_isMulticrossSingularity_of_isReduced_dim_one, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Picard/TorsionReducedProperCurve.lean, line 802. The attribute's comment: “the equality criterion: equality iff all singularities are multicross”.
Stacks Project, Tag 0C20, the equality criterion.
In the situation of the bound
AlgebraicGeometry.finrank_picardTorsion_le_genus_add_geometricGenus_of_isReduced_dim_one, theℓ-torsion ofPic(X)is finite-dimensional overF_ℓ, and equalitydim_{F_ℓ} Pic(X)[ℓ] = g + g_geomholds if and only if every singularity ofXis multicross.Equality holds exactly when the factorization of the normalization contains no squishing, in both directions — the forward direction from the strict drop a squishing causes, the backward direction from the equality case of the arithmetic along a glueing chain — and the factorization contains no squishing exactly when every singularity of
Xis multicross (Stacks.Curves.isGlueingChain_normalizationOver_iff_forall_isMulticrossSingularity, the step the source leaves out: "just glue the local sequences for each point to find one that works for all singular points").
theorem finrank_picardTorsion_eq_iff_forall_isMulticrossSingularity_of_isReduced_dim_one
(k : Type u) [Field k]
[IsAlgClosed k] (X : Scheme.{u}) [X.Over (Spec (.of k))] [IsProper (X ↘ Spec (.of k))]
[IsReduced X] (hdim : topologicalKrullDim (X : Type u) = 1) (ℓ : ℕ) [Fact ℓ.Prime]
(hℓ : (ℓ : k) ≠ 0) :
FiniteDimensional (ZMod ℓ) (AddSubgroup.torsionBy (ofScheme X) (ℓ : ℤ)) ∧
(Module.finrank (ZMod ℓ) (AddSubgroup.torsionBy (ofScheme X) (ℓ : ℤ)) =
genus (X ↘ Spec (.of k)) + geometricGenus k (X ↘ Spec (.of k)) ↔
∀ x : X, ¬ IsRegularLocalRing (X.presheaf.stalk x) →
Stacks.Curves.IsMulticrossSingularity k X x)
Sources
Section53.18 Genus versus geometric genus#
Section 53.18 of the Stacks Project, Tag 0CE0. 7 tags here are carried by 11 declarations of the repository (all in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 0CE0, the section
Tag 0CE0 in the Stacks Project.
AlgebraicGeometry.geometricGenus, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/GenusCurve/Geometric.lean, line 83. The attribute's comment: “definition of the geometric genus g_geom(X/k)”.
The geometric genus
g_geom(X/k)of a proper schemeXover a fieldk: the sum, over the irreducible components of dimension one of the base change ofXto an algebraic closure ofk, of the genus of the normalization of that component with its reduced structure.This is the invariant introduced in the preamble of the source's section on genus versus geometric genus.
public def geometricGenus (k : Type u) [Field k] {X : Scheme.{u}} (g : X ⟶ Spec (.of k))
[IsProper g] : ℕ
Tag 0CE1, a lemma
Tag 0CE1 in the Stacks Project.
AlgebraicGeometry.geometricGenus_eq_sum_components, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/GenusCurve/GeometricComponents.lean, line 348.
Let
kbe a field and letXbe a proper scheme of dimension at most one overk. The geometric genus ofXoverkis the sum of the geometric genera of the irreducible components ofXof dimension one, each taken with its reduced closed subscheme structure; components of dimension zero contribute nothing.
public theorem geometricGenus_eq_sum_components {k : Type u} [Field k]
{X : Scheme.{u}} (g : X ⟶ Spec (.of k)) [IsProper g]
(hX : topologicalKrullDim X ≤ 1) :
letI : IsNoetherian X :=
{ toIsLocallyNoetherian := LocallyOfFiniteType.isLocallyNoetherian g
toCompactSpace := QuasiCompact.compactSpace_of_compactSpace g }
letI : Finite (irreducibleComponents X) :=
(finite_irreducibleComponents_of_isNoetherian (X := X)).to_subtype
letI : Fintype (irreducibleComponents X) := Fintype.ofFinite _
geometricGenus k g =
∑ C : irreducibleComponents X,
if topologicalKrullDim (irreducibleComponentIdeal C).subscheme = 1 then
geometricGenus k ((irreducibleComponentIdeal C).subschemeι ≫ g)
else 0
Tag 0CE2, a lemma
Tag 0CE2 in the Stacks Project.
AlgebraicGeometry.geometricGenus_reduction_birational_normalization, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/GenusCurve/GeometricGenusBirational.lean, line 215.
Let
kbe a field and letXbe a proper scheme of dimension at most one overk. Then
- the reduction
X_redhas the same geometric genus asX;- the source of a birational proper morphism
X' ⟶ Xhas the same geometric genus asX; and- the normalization
X^νhas the same geometric genus asX.
public theorem geometricGenus_reduction_birational_normalization {k : Type u} [Field k]
{X : Scheme.{u}} (g : X ⟶ Spec (.of k)) [IsProper g]
(hX : topologicalKrullDim (X : Type u) ≤ 1) :
letI : IsProper (normalizationOverField k g ≫ g) :=
isProper_normalizationOverField_comp k g
geometricGenus k (X.reductionι ≫ g) = geometricGenus k g ∧
(∀ (X' : Scheme.{u}) (f : X' ⟶ X) [IsProper f], IsBirational f →
geometricGenus k (f ≫ g) = geometricGenus k g) ∧
geometricGenus k (normalizationOverField k g ≫ g) = geometricGenus k g
Tag 0CE3, a lemma
Tag 0CE3 in the Stacks Project.
AlgebraicGeometry.genus_le_of_isAffineHom_of_isZero, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/GenusCurve/GenusGoesDown.lean, line 282. The attribute's comment: “with the two cohomology vanishings and the finiteness of H¹(X,𝒪_X) as hypotheses”.
[Stacks, Tag 0CE3] with its three cohomological inputs as hypotheses. Let
f : Y ⟶ Xbe an affine morphism of schemes over a fieldk, and letφ : 𝒪_X ⟶ f_*𝒪_Ybe the canonical comparison map. IfH¹(X, coker φ) = 0, ifH²(X, ker φ) = 0and ifH¹(X, 𝒪_X)is finite dimensional overk, then the genus ofYis at most the genus ofX, that isdim_k H¹(Y, 𝒪_Y) ≤ dim_k H¹(X, 𝒪_X).The three hypotheses replace the properness of
Xoverk, the bound on its dimension and the hypothesis thatfis a closed immersion over a dense open, which the source uses only to produce them; see the implementation notes of this file.
theorem genus_le_of_isAffineHom_of_isZero (f : Y ⟶ X) [IsAffineHom f]
(hcoker : IsZero (cohomologyOverField k g (cokernel (structureSheafToPushforward f)) 1))
(hker : IsZero (cohomologyOverField k g (kernel (structureSheafToPushforward f)) 2))
(hfin : FiniteDimensional k (cohomologyOverField k g (structureSheafModule X) 1)) :
genus (f ≫ g) ≤ genus g
AlgebraicGeometry.genus_le_of_isFinite_of_isClosedImmersion_over_dense_open, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/GenusCurve/GenusGoesDownUnconditional.lean, line 222.
[Stacks, Tag 0CE3]. Let
kbe a field, letg : X ⟶ Spec kbe proper withdim X ≤ 1, and letf : Y ⟶ Xbe finite and a closed immersion over a dense openU ⊆ X. Then the genus ofYis at most the genus ofX, that isdim_k H¹(Y, 𝒪_Y) ≤ dim_k H¹(X, 𝒪_X).This is
AlgebraicGeometry.genus_le_of_isAffineHom_of_isZerowith its three cohomological hypotheses discharged; see the module docstring.
theorem genus_le_of_isFinite_of_isClosedImmersion_over_dense_open
(k : Type u) [Field k] {X Y : Scheme.{u}} (g : X ⟶ Spec (.of k)) [IsProper g]
(f : Y ⟶ X) [IsFinite f] (hdim : topologicalKrullDim (X : Type u) ≤ 1)
(U : X.Opens) (hdense : Dense (U : Set X))
(hclosed : IsClosedImmersion (pullback.snd f U.ι)) :
genus (f ≫ g) ≤ genus g
Tag 0CE4, a lemma
Tag 0CE4 in the Stacks Project.
AlgebraicGeometry.genus_le_and_isIso_of_isProper_of_isBirational, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/GenusCurve/BirationalGenus.lean, line 239.
Let
kbe a field and letXbe a proper scheme of dimension at most one overk. Iff : X' ⟶ Xis a birational proper morphism, then
dim_k H¹(X, 𝒪_X) ≥ dim_k H¹(X', 𝒪_{X'}),and if moreover
Xis reduced,H⁰(X, 𝒪_X) ⟶ H⁰(X', 𝒪_{X'})is surjective and equality holds, thenX' = X.Here
dim_k H¹isAlgebraicGeometry.genusof the structure morphism, andX' = Xmeans thatfis an isomorphism of schemes.
theorem genus_le_and_isIso_of_isProper_of_isBirational [IsProper g] (f : X' ⟶ X) [IsProper f]
(hf : IsBirational f) (hX : topologicalKrullDim (X : Type u) ≤ 1) :
genus (f ≫ g) ≤ genus g ∧
(IsReduced X → Function.Surjective f.appTop → genus (f ≫ g) = genus g → IsIso f)
Tag 0CE5, a lemma
Tag 0CE5 in the Stacks Project.
AlgebraicGeometry.geometricGenus_le_finSepDegree_mul_genus_toSpecΓ, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/GenusCurve/GeometricGenusIrreducible.lean, line 233. The attribute's comment: “κ = k, geometrically integral of dim 1, 0CE3's vanishings and H¹ finite”.
Let
kbe a field and letXbe a proper integral scheme overkwhose global regular functions are exactlykand whose base change to an algebraic closure ofkis irreducible, reduced and of dimension one. Writingκ = Γ(X, ⊤), the geometric genus ofXoverkis at most[κ : k]_s · dim_κ H¹(X, 𝒪_X).
public theorem geometricGenus_le_finSepDegree_mul_genus_toSpecΓ
(k : Type u) [Field k] {X : Scheme.{u}} [IsIntegral X] (g : X ⟶ Spec (.of k)) [IsProper g]
[IsIso ((Scheme.ΓSpecIso (.of k)).inv ≫ g.appTop)]
(hirr : IrreducibleSpace (pullback (C := Scheme.{u}) g
(Spec.map (CommRingCat.ofHom (algebraMap k (AlgebraicClosure k))))))
(hred : IsReduced (pullback (C := Scheme.{u}) g
(Spec.map (CommRingCat.ofHom (algebraMap k (AlgebraicClosure k))))))
(hdim : topologicalKrullDim (pullback (C := Scheme.{u}) g
(Spec.map (CommRingCat.ofHom (algebraMap k (AlgebraicClosure k))))) = 1)
(hcoker : IsZero (cohomologyOverField (AlgebraicClosure k)
(pullback.snd g (Spec.map (CommRingCat.ofHom (algebraMap k (AlgebraicClosure k)))))
(cokernel (structureSheafToPushforward (normalizationOverField (AlgebraicClosure k)
(pullback.snd g
(Spec.map (CommRingCat.ofHom (algebraMap k (AlgebraicClosure k)))))))) 1))
(hker : IsZero (cohomologyOverField (AlgebraicClosure k)
(pullback.snd g (Spec.map (CommRingCat.ofHom (algebraMap k (AlgebraicClosure k)))))
(kernel (structureSheafToPushforward (normalizationOverField (AlgebraicClosure k)
(pullback.snd g
(Spec.map (CommRingCat.ofHom (algebraMap k (AlgebraicClosure k)))))))) 2))
(hfin : FiniteDimensional (AlgebraicClosure k) (cohomologyOverField (AlgebraicClosure k)
(pullback.snd g (Spec.map (CommRingCat.ofHom (algebraMap k (AlgebraicClosure k)))))
(structureSheafModule (pullback (C := Scheme.{u}) g
(Spec.map (CommRingCat.ofHom (algebraMap k (AlgebraicClosure k)))))) 1)) :
letI : Field Γ(X, ⊤) := (isField_of_universallyClosed k g).toField
letI : Algebra k Γ(X, ⊤) := ((Scheme.ΓSpecIso (.of k)).inv ≫ g.appTop).hom.toAlgebra
geometricGenus k g ≤ Field.finSepDegree k Γ(X, ⊤) * genus X.toSpecΓ
AlgebraicGeometry.geometricGenus_le_genus_of_irreducible, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/GenusCurve/GeometricGenusIrreducibleUnconditional.lean, line 73. The attribute's comment: “κ = k, geometrically irreducible of dimension one”.
Let
kbe a field andg : X ⟶ Spec kproper. If the base changeX_{k̄}ofXto an algebraic closurek̄ofkis irreducible, reduced and of dimension one, theng_geom(X/k) ≤ g(X).
theorem geometricGenus_le_genus_of_irreducible
(k : Type u) [Field k] {X : Scheme.{u}} (g : X ⟶ Spec (.of k)) [IsProper g]
(hirr : IrreducibleSpace (pullback (C := Scheme.{u}) g
(Spec.map (CommRingCat.ofHom (algebraMap k (AlgebraicClosure k))))))
(hred : IsReduced (pullback (C := Scheme.{u}) g
(Spec.map (CommRingCat.ofHom (algebraMap k (AlgebraicClosure k))))))
(hdim : topologicalKrullDim (pullback (C := Scheme.{u}) g
(Spec.map (CommRingCat.ofHom (algebraMap k (AlgebraicClosure k))))) = 1) :
geometricGenus k g ≤ genus g
AlgebraicGeometry.geometricGenus_le_genus_of_dim_le_one, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/GenusCurve/GeometricGenusLeGenusUnconditional.lean, line 139. The attribute's comment: “the per-fibre bound, over an algebraically closed field”.
The per-fibre bound of [Stacks, Tag 0CE5]. Over an algebraically closed field
K, the geometric genus of a proper scheme of dimension at most one is at most its genus. No hypothesis is made on the irreducible components: the scheme may be reducible and non-reduced.
public theorem geometricGenus_le_genus_of_dim_le_one (K : Type u) [Field K] [IsAlgClosed K]
{Z : Scheme.{u}} (q : Z ⟶ Spec (.of K)) [IsProper q]
(hdim : topologicalKrullDim (Z : Type u) ≤ 1) :
geometricGenus K q ≤ genus q
AlgebraicGeometry.geometricGenus_le_finSepDegree_mul_genus_toSpecΓ_of_isCurve, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/GenusCurve/SeparableDegreeFibreSum.lean, line 132.
Stacks Project, Tag 0CE5. Let
Cbe a proper curve over a fieldkand letκ = Γ(C, ⊤)be its field of global regular functions. Then the geometric genus ofCoverkis at most[κ : k]_s · dim_κ H¹(C, 𝒪_C).The sum over the
k-embeddingsκ → k̄isAlgebraicGeometry.geometricGenus_eq_finsum_geometricGenus_pullback_snd_toSpecΓ, and each of its terms is bounded by the genus of the corresponding fibre byAlgebraicGeometry.geometricGenus_le_genus_of_dim_le_one, the fibre being a proper scheme of dimension one over the algebraically closed fieldk̄.
public theorem geometricGenus_le_finSepDegree_mul_genus_toSpecΓ_of_isCurve
(k : Type u) [Field k] {C : Scheme.{u}} (f : C ⟶ Spec (.of k)) [IsCurve k f] [IsProper f] :
letI : Field Γ(C, ⊤) := (isField_of_universallyClosed k f).toField
letI : Algebra k Γ(C, ⊤) := ((Scheme.ΓSpecIso (.of k)).inv ≫ f.appTop).hom.toAlgebra
letI : IsProper C.toSpecΓ := isProper_toSpecΓ f
geometricGenus k f ≤ Field.finSepDegree k Γ(C, ⊤) * genus C.toSpecΓ
Tag 0CE6, a lemma
Tag 0CE6 in the Stacks Project.
AlgebraicGeometry.finrank_picardTorsion_le_genus_add_geometricGenus, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Picard/TorsionRankConnectedComponents.lean, line 203.
Stacks Project, Tag 0CE6. Let
kbe a field, letXbe a proper scheme of dimension at most one overkand letℓbe a prime invertible ink. Then theℓ-torsion ofPic(X)is finite-dimensional overF_ℓand
dim_{F_ℓ} Pic(X)[ℓ] ≤ dim_k H¹(X, 𝒪_X) + g_geom(X/k).The proof is the source's: extend the ground field to an algebraic closure and pass to the reduction (
AlgebraicGeometry.picardTorsion_bound_of_reducedBaseChange, which is Tag 0CC5, Tag 02KH, Tag 0CE2 (1) and Tag 0CE3), then decompose into connected components (AlgebraicGeometry.picardTorsion_bound_of_connectedComponents) and apply Tag 0C20 to the one-dimensional ones, the zero-dimensional ones having trivial Picard group.
theorem finrank_picardTorsion_le_genus_add_geometricGenus (k : Type u) [Field k]
{X : Scheme.{u}} (g : X ⟶ Spec (.of k)) [IsProper g]
(hdim : topologicalKrullDim (X : Type u) ≤ 1) (ℓ : ℕ) [Fact ℓ.Prime] (hℓ : IsUnit (ℓ : k)) :
FiniteDimensional (ZMod ℓ) (AddSubgroup.torsionBy (ofScheme X) (ℓ : ℤ)) ∧
Module.finrank (ZMod ℓ) (AddSubgroup.torsionBy (ofScheme X) (ℓ : ℤ)) ≤
genus g + geometricGenus k g
Sources
Section53.19 Nodal curves#
Section 53.19 of the Stacks Project, Tag 0C46. 17 tags here are carried by 47 declarations of the repository (all in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 0C47, a definition
Tag 0C47 in the Stacks Project.
Stacks.Curves.IsNode, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/IsNode.lean, line 194. The attribute's comment: “part (1)”.
Stacks 0C47. A point of a scheme over
kis a node if it is closed and an ordinary double point lies above it after base change to an algebraic closure ofk.
def IsNode (k : Type u) [Field k] (X : Scheme.{u}) [X.Over (Spec (.of k))] (x : X) : Prop
Stacks.Curves.HasAtWorstNodalSingularities, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/IsNode.lean, line 206. The attribute's comment: “part (2)”.
Stacks 0C47. A scheme over
khas at-worst-nodal singularities if each of its closed points is smooth overkor is a node.
def HasAtWorstNodalSingularities (k : Type u) [Field k] (X : Scheme.{u})
[X.Over (Spec (.of k))] : Prop
Tag 0C48, a lemma
Tag 0C48 in the Stacks Project.
IsRegularLocalRing.eq_bot_or_eq_maximalIdeal_or_eq_span_singleton_of_quotient_isReduced, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/CompleteLocalRing/QuotientNodal.lean, line 132. The attribute's comment: “reduced_quotient”.
An ideal with reduced quotient in a two-dimensional regular local ring is zero, maximal, or generated by a nonzero element of the maximal ideal.
public theorem eq_bot_or_eq_maximalIdeal_or_eq_span_singleton_of_quotient_isReduced
{A : Type*} [CommRing A] [IsRegularLocalRing A] (hdim : ringKrullDim A = 2)
(I : Ideal A) (hI : I ≤ IsLocalRing.maximalIdeal A) [IsReduced (A ⧸ I)] :
I = ⊥ ∨ I = IsLocalRing.maximalIdeal A ∨
∃ f : A, f ≠ 0 ∧ f ∈ IsLocalRing.maximalIdeal A ∧ I = Ideal.span {f}
IsRegularLocalRing.exists_ne_zero_mem_maximalIdeal_and_eq_span_singleton_of_quotient_depth_eq_one, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/CompleteLocalRing/QuotientNodal.lean, line 157. The attribute's comment: “depth_one_quotient”.
An ideal in a two-dimensional regular local ring whose quotient has depth one is generated by a nonzero element of the maximal ideal.
public theorem exists_ne_zero_mem_maximalIdeal_and_eq_span_singleton_of_quotient_depth_eq_one
{A : Type u} [CommRing A] [IsRegularLocalRing A] (hdim : ringKrullDim A = 2)
(I : Ideal A) (hI : I ≤ IsLocalRing.maximalIdeal A)
(hdepth : Module.depth A (IsLocalRing.maximalIdeal A) (A ⧸ I) = 1) :
∃ f : A, f ≠ 0 ∧ f ∈ IsLocalRing.maximalIdeal A ∧ I = Ideal.span {f}
Tag 0C49, a lemma
Tag 0C49 in the Stacks Project.
Stacks.Curves.isNodalAlgebra_tfae, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/Node/Algebra.lean, line 1762.
For a Noetherian local algebra over a field, the following are equivalent: it is reduced with a nondegenerate quadratic relation on its two-dimensional cotangent space; it has depth one with the same relation; and its completion is a two-variable power-series hypersurface defined by a nondegenerate quadratic form. In all three conditions the residue-field extension is separable.
public theorem isNodalAlgebra_tfae (k : Type u) (A : Type v) [Field k] [CommRing A]
[IsLocalRing A] [IsNoetherianRing A] [Algebra k A] :
List.TFAE [
IsNodalAlgebra k A,
Algebra.IsSeparableExtension k (ResidueField A) ∧
Module.depth A (maximalIdeal A) A = 1 ∧ HasNodalQuadraticRelation A,
Algebra.IsSeparableExtension k (ResidueField A) ∧ HasNodalCompletion k A]
Tag 0C4A, a lemma
Tag 0C4A in the Stacks Project.
Stacks.Curves.encard_maximalSpectrum_integralClosure_fractionRing_eq_one_or_two, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/NodeQuadraticAlgebra/MaximalIdeals.lean, line 58. The attribute's comment: “number of maximal ideals”.
The normalization of a nodal Nagata local algebra in its total ring of fractions has one or two maximal ideals.
public theorem encard_maximalSpectrum_integralClosure_fractionRing_eq_one_or_two
(k : Type u) (A : Type v) [Field k] [CommRing A] [IsLocalRing A] [Algebra k A]
(hA : IsNagataRing A) (hNodal : IsNodalAlgebra k A) :
Set.encard (Set.univ : Set (MaximalSpectrum ↥(integralClosure A (FractionRing A)))) = 1 ∨
Set.encard
(Set.univ : Set (MaximalSpectrum ↥(integralClosure A (FractionRing A)))) = 2
Stacks.Curves.isNodalAlgebra_iff_deltaInvariant_eq_one_and_two_geometricBranches, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/NodeQuadraticAlgebra/NodalCharacterization.lean, line 96. The attribute's comment: “equivalence”. References: SGA 7 X (2.24), “more general”.
A Nagata local algebra over a field is nodal if and only if it is reduced and one-dimensional, its residue field is separable, its delta invariant is one, and it has two geometric branches.
public theorem isNodalAlgebra_iff_deltaInvariant_eq_one_and_two_geometricBranches
(k : Type u) (A : Type v) [Field k] [CommRing A] [IsLocalRing A] [Algebra k A]
(hA : IsNagataRing A) :
IsNodalAlgebra k A ↔
Algebra.IsSeparableExtension k (ResidueField A) ∧
IsReduced A ∧
ringKrullDim A = 1 ∧
Ring.deltaInvariant A = 1 ∧
numberOfGeometricBranchesOfLocalRing A = 2
Stacks.Curves.isSeparableExtension_residueField_integralClosure_fractionRing, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/NodeQuadraticAlgebra/ResidueFields.lean, line 113. The attribute's comment: “residue field extensions”.
The residue field at every maximal ideal of the normalization of a nodal Nagata local algebra is separable over the ground field.
public theorem isSeparableExtension_residueField_integralClosure_fractionRing
(k : Type u) (A : Type v) [Field k] [CommRing A] [IsLocalRing A] [Algebra k A]
(hA : IsNagataRing A) (hNodal : IsNodalAlgebra k A)
(m : MaximalSpectrum ↥(integralClosure A (FractionRing A))) :
Algebra.IsSeparableExtension k m.asIdeal.ResidueField
Tag 0C4B, a lemma
Tag 0C4B in the Stacks Project.
Stacks.Curves.jacobianMinorIdealModulo_eq, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/JacobianMinorIdeal.lean, line 338.
The ideal of Jacobian minors in a quotient of a finite-variable formal power-series ring is independent of both the finite family generating the defining ideal and the regular system of parameters used to form the Jacobian matrix.
theorem jacobianMinorIdealModulo_eq {n m l : ℕ}
(I : Ideal (MvPowerSeries (Fin n) k))
(f : Fin m → MvPowerSeries (Fin n) k) (g : Fin l → MvPowerSeries (Fin n) k)
(hf : Ideal.span (Set.range f) = I) (hg : Ideal.span (Set.range g) = I)
(y : Fin n → IsLocalRing.maximalIdeal (MvPowerSeries (Fin n) k))
(hy : IsRegularSystemOfParameters y) (r : ℕ) :
jacobianMinorIdealModulo I f r = jacobianMinorIdealModuloInParameters I y hy g r
Tag 0C4C, a lemma
Tag 0C4C in the Stacks Project.
Stacks.Curves.isNodalAlgebra_jacobianMinorIdeal_tfae, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/JacobianCriterionReduction.lean, line 619.
The Jacobian criterion for a node. A quotient of a finite-variable formal power-series ring by equations in its maximal ideal is nodal if and only if it is reduced (equivalently, has depth one) and its next-to-maximal Jacobian minors generate the maximal ideal.
The Jacobian-minor ideal is the one of Tag 0C4B (
Stacks.Curves.jacobianMinorIdealModulo). The source states the Jacobian condition as the minors generatingI + 𝔪_Ain the power-series ring; the equivalent intrinsic equality between their image and the maximal ideal of the quotient is used here, and the depth condition is likewise written over the quotient ring.
theorem isNodalAlgebra_jacobianMinorIdeal_tfae (k : Type u) [Field k] {n m : ℕ}
(I : Ideal (MvPowerSeries (Fin n) k))
(f : Fin m → MvPowerSeries (Fin n) k)
(hf : Ideal.span (Set.range f) = I)
(hI : I ≤ maximalIdeal (MvPowerSeries (Fin n) k)) :
letI : Nontrivial (MvPowerSeries (Fin n) k ⧸ I) :=
Ideal.Quotient.nontrivial_iff.mpr
(ne_top_of_le_ne_top
(maximalIdeal.isMaximal (MvPowerSeries (Fin n) k)).ne_top hI)
letI : IsLocalRing (MvPowerSeries (Fin n) k ⧸ I) :=
IsLocalRing.of_surjective' (Ideal.Quotient.mk I) Ideal.Quotient.mk_surjective
List.TFAE [
IsNodalAlgebra k (MvPowerSeries (Fin n) k ⧸ I),
IsReduced (MvPowerSeries (Fin n) k ⧸ I) ∧
jacobianMinorIdealModulo I f (n - 1) =
maximalIdeal (MvPowerSeries (Fin n) k ⧸ I),
Module.depth (MvPowerSeries (Fin n) k ⧸ I)
(maximalIdeal (MvPowerSeries (Fin n) k ⧸ I))
(MvPowerSeries (Fin n) k ⧸ I) = 1 ∧
jacobianMinorIdealModulo I f (n - 1) =
maximalIdeal (MvPowerSeries (Fin n) k ⧸ I)]
Tag 0C4D, a lemma
Tag 0C4D in the Stacks Project.
Stacks.Curves.isNode_tfae_of_isClosed, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/NodeFittingIdealClosedPoint.lean, line 481.
Stacks Project, Tag 0C4D. Let
kbe a field, letXbe a one-dimensional scheme locally of finite type overkand letxbe a closed point ofX. The following are equivalent.
xis a node.𝒪_{X,x}is a nodalk-algebra.- Every point of
X_{k̄}abovexis an ordinary double point.κ(x)/kis separable,𝒪_{X,x}is reduced, and the stalk atxof the first Fitting ideal sheaf ofΩ_{X/k}is the maximal ideal of𝒪_{X,x}.- The same with reducedness replaced by depth one.
κ(x)/kis separable and𝒪_{X,x}is reduced of delta invariant one with two geometric branches.Each of the six conditions implies that
κ(x)/kis separable: conditions (2), (4), (5) and (6) say so outright, and conditions (1) and (3) byStacks.Curves.isSeparableExtension_residueField_of_isNode. Under that separability the six are equivalent byStacks.Curves.isNode_iff_and_isNode_of_depth_of_isSeparableExtension, which supplies the two Fitting-ideal equivalences thatStacks.Curves.isNode_tfae_of_fittingIdeal_equivalenceleaves open; so the cycle of implications1 → 2 → 3 → 4 → 5 → 6 → 1may be run with the separability of its source clause in hand.
theorem isNode_tfae_of_isClosed
(k : Type u) [Field k] (X : Scheme.{u}) [X.Over (Spec (.of k))]
[LocallyOfFiniteType (X ↘ Spec (.of k))]
(hX : topologicalKrullDim X = 1) (x : X) (hx : IsClosed ({x} : Set X)) :
let f : X ⟶ Spec (.of k) := X ↘ Spec (.of k)
let kToStalk : k →+* X.presheaf.stalk x :=
((Scheme.ΓSpecIso (.of k)).inv ≫ f.appTop ≫ X.presheaf.germ ⊤ x (by simp)).hom
letI : Algebra k (X.presheaf.stalk x) := kToStalk.toAlgebra
letI : Algebra k (X.residueField x) := ((X.residue x).hom.comp kToStalk).toAlgebra
let fittingCondition : Prop :=
IdealSheafData.stalk (fittingIdeal (Scheme.Hom.relativeDifferentials f) (1 : ℤ)) x =
maximalIdeal (X.presheaf.stalk x)
let c₁ : Prop := IsNode k X x
let c₂ : Prop := IsNodalAlgebra k (X.presheaf.stalk x)
let c₃ : Prop :=
(let K := AlgebraicClosure k
let g : Spec (.of K) ⟶ Spec (.of k) := Spec.map (CommRingCat.ofHom (algebraMap k K))
let Y := (pullback f g : Scheme.{u})
let p : Y ⟶ X := pullback.fst f g
let q : Y ⟶ Spec (.of K) := pullback.snd f g
letI : Y.Over (Spec (.of K)) := ⟨q⟩
∀ xbar : Y, p.base xbar = x → IsOrdinaryDoublePoint K Y xbar)
let c₄ : Prop :=
Algebra.IsSeparableExtension k (X.residueField x) ∧
_root_.IsReduced (X.presheaf.stalk x) ∧ fittingCondition
let c₅ : Prop :=
Algebra.IsSeparableExtension k (X.residueField x) ∧
Module.depth (X.presheaf.stalk x) (maximalIdeal (X.presheaf.stalk x))
(X.presheaf.stalk x) = 1 ∧
fittingCondition
let c₆ : Prop :=
Algebra.IsSeparableExtension k (X.residueField x) ∧
_root_.IsReduced (X.presheaf.stalk x) ∧
Ring.deltaInvariant (X.presheaf.stalk x) = 1 ∧
AlgebraicGeometry.numberOfGeometricBranches X x = 2
List.TFAE [c₁, c₂, c₃, c₄, c₅, c₆]
Stacks.Curves.isNodalAlgebra_stalk_iff_isReduced_and_stalk_fittingIdeal_eq_maximalIdeal, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/NodeFittingIdealCriterion.lean, line 135. The attribute's comment: “clauses (2) and (4), at a closed point of an affine chart admitting a presentation centred there”.
Conditions (2) and (4) of Tag 0C4D are equivalent. The local ring at a closed point
xis a nodal algebra over a base fieldkexactly when its residue field is separable overk, it is reduced, and the stalk atxof the first Fitting ideal sheaf ofΩ_{X/S}is its maximal ideal.The two conditions share their separability and reducedness clauses; what is proved here is that the nodal quadratic relation on
𝒪_{X,x}is the Fitting-ideal condition, which isStacks.Curves.stalk_fittingIdeal_eq_maximalIdeal_iff_hasNodalQuadraticRelation. The base fieldkis not required to be the base of the morphism: no clause of either condition relates the two beyond thek-algebra structure on𝒪_{X,x}, which is an argument.
theorem isNodalAlgebra_stalk_iff_isReduced_and_stalk_fittingIdeal_eq_maximalIdeal
{X S : Scheme.{u}} (f : X ⟶ S) [LocallyOfFiniteType f] (x : X)
(U : X.affineOpens) (hxU : x ∈ U.1) (hx : IsClosed ({x} : Set X))
{V : S.Opens} (hV : IsAffineOpen V) (hUV : (U : X.Opens) ≤ f ⁻¹ᵁ V)
[IsNoetherianRing Γ(S, V)] (K : Type u) [Field K] (e : Γ(S, V) ≃+* K)
(k : Type u) [Field k] [Algebra k (X.presheaf.stalk x)] :
letI := Stacks.Smooth.algebraAppLE f hUV
∀ {n m : ℕ} (P : Algebra.Presentation Γ(S, V) Γ(X, U.1) (Fin n) (Fin m))
(_hv : ∀ i, P.val i ∈ (U.2.primeIdealOf ⟨x, hxU⟩).asIdeal),
(IsNodalAlgebra k (X.presheaf.stalk x) ↔
Algebra.IsSeparableExtension k (ResidueField (X.presheaf.stalk x)) ∧
IsReduced (X.presheaf.stalk x) ∧
IdealSheafData.stalk (fittingIdeal (Scheme.Hom.relativeDifferentials f) (1 : ℤ)) x =
maximalIdeal (X.presheaf.stalk x))
Stacks.Curves.isNode_tfae_of_rational, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/NodeFittingIdealRationalPoint.lean, line 184. The attribute's comment: “all six clauses, at a closed point whose residue field is the base field”.
All six conditions of Stacks Tag 0C4D are equivalent at a rational closed point.
Let
kbe a field, letXbe a one-dimensional scheme locally of finite type overkand letxbe a closed point ofXwhose residue field iskitself — the hypothesishratsays that the structure mapk → κ(x)is surjective. Then the six conditions of the tag are equivalent, with no further hypothesis.The two equivalences that
Stacks.Curves.isNode_tfae_of_fittingIdeal_equivalenceleaves open are discharged byStacks.Curves.stalk_fittingIdeal_eq_maximalIdeal_iff_hasNodalQuadraticRelation_of_rational, which turns the Fitting-ideal condition into the nodal quadratic relation: condition (1) becomes condition (4) through condition (2), and condition (5) becomes condition (4) because the exchange of depth one for reducedness in the presence of the nodal relation is Stacks Tag 0C49.What keeps this short of the tag is only the rationality of
κ(x): a presentation of an affine chart whose generators vanish atxexists exactly then, since generators lying in the prime ofxgenerateκ(x)overkby zero.A general closed point has
κ(x) / kfinite and, byStacks.Curves.isSeparableExtension_residueField_of_isNodeand the separability clause of conditions (2), (4), (5) and (6), separable in every case that matters. Reducing it to the rational case asks only for the Fitting-ideal condition to descend along the base change to the algebraic closure: Tag 0C3I (AlgebraicGeometry.fittingIdeal_relativeDifferentials_comap) together withAlgebraicGeometry.IdealSheafData.stalk_comapmakes the stalk of the Fitting ideal upstairs the extension of the stalk downstairs, Tag 0C50 (AlgebraicGeometry.map_maximalIdeal_stalkMap_eq_of_isReduced_tensorProduct) makes the maximal ideal upstairs the extension of the maximal ideal downstairs, and faithful flatness of the stalk map retracts the extension of ideals. That descent is carried out inStacksFrontier.AlgebraicGeometry.Curves.NodeFittingIdealClosedPoint, whereStacks.Curves.isNode_tfae_of_isClosedstates the six conditions at an arbitrary closed point; it also needs reducedness and depth one to cross between the two points, and they cross in opposite directions.
theorem isNode_tfae_of_rational
(k : Type u) [Field k] (X : Scheme.{u}) [X.Over (AlgebraicGeometry.Spec (.of k))]
[LocallyOfFiniteType (X ↘ AlgebraicGeometry.Spec (.of k))]
(hX : topologicalKrullDim X = 1) (x : X) (hx : IsClosed ({x} : Set X))
(hrat : Function.Surjective ((X.residue x).hom.comp
((Scheme.ΓSpecIso (.of k)).inv ≫ (X ↘ AlgebraicGeometry.Spec (.of k)).appTop ≫
X.presheaf.germ ⊤ x (by simp)).hom)) :
let f : X ⟶ AlgebraicGeometry.Spec (.of k) := X ↘ AlgebraicGeometry.Spec (.of k)
let kToStalk : k →+* X.presheaf.stalk x :=
((Scheme.ΓSpecIso (.of k)).inv ≫ f.appTop ≫ X.presheaf.germ ⊤ x (by simp)).hom
letI : Algebra k (X.presheaf.stalk x) := kToStalk.toAlgebra
letI : Algebra k (X.residueField x) := ((X.residue x).hom.comp kToStalk).toAlgebra
let omega := f.relativeDifferentials
let fittingCondition : Prop :=
AlgebraicGeometry.IdealSheafData.stalk (AlgebraicGeometry.fittingIdeal omega 1) x =
maximalIdeal (X.presheaf.stalk x)
let c₁ : Prop := IsNode k X x
let c₂ : Prop := IsNodalAlgebra k (X.presheaf.stalk x)
let c₃ : Prop :=
(let K := AlgebraicClosure k
let g : AlgebraicGeometry.Spec (.of K) ⟶ AlgebraicGeometry.Spec (.of k) :=
AlgebraicGeometry.Spec.map (CommRingCat.ofHom (algebraMap k K))
let Y := (CategoryTheory.Limits.pullback f g : Scheme.{u})
let p : Y ⟶ X := CategoryTheory.Limits.pullback.fst f g
let q : Y ⟶ AlgebraicGeometry.Spec (.of K) := CategoryTheory.Limits.pullback.snd f g
letI : Y.Over (AlgebraicGeometry.Spec (.of K)) := ⟨q⟩
∀ xbar : Y, p.base xbar = x → IsOrdinaryDoublePoint K Y xbar)
let c₄ : Prop :=
Algebra.IsSeparableExtension k (X.residueField x) ∧
_root_.IsReduced (X.presheaf.stalk x) ∧ fittingCondition
let c₅ : Prop :=
Algebra.IsSeparableExtension k (X.residueField x) ∧
Module.depth (X.presheaf.stalk x) (maximalIdeal (X.presheaf.stalk x))
(X.presheaf.stalk x) = 1 ∧
fittingCondition
let c₆ : Prop :=
Algebra.IsSeparableExtension k (X.residueField x) ∧
_root_.IsReduced (X.presheaf.stalk x) ∧
Ring.deltaInvariant (X.presheaf.stalk x) = 1 ∧
AlgebraicGeometry.numberOfGeometricBranches X x = 2
List.TFAE [c₁, c₂, c₃, c₄, c₅, c₆]
Stacks.Curves.ringKrullDim_stalk_eq_one_and_depth_eq_one_of_isNode, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/NodeLocalRingDepth.lean, line 64. The attribute's comment: “the dimension and the depth of the local ring at a node, over an arbitrary base field: the depth clause of condition (5), from condition (1)”.
The local ring at a node of a one-dimensional scheme locally of finite type over an arbitrary field is one-dimensional of depth one.
The depth assertion is the depth clause of condition (5) of Stacks Tag 0C4D, derived from condition (1) over an arbitrary field; no separability of the residue field extension is used or asserted.
theorem ringKrullDim_stalk_eq_one_and_depth_eq_one_of_isNode
(k : Type u) [Field k] (X : Scheme.{u}) [X.Over (AlgebraicGeometry.Spec (.of k))]
[LocallyOfFiniteType (X ↘ AlgebraicGeometry.Spec (.of k))]
(hX : topologicalKrullDim X = 1) (x : X) (hnode : IsNode k X x) :
ringKrullDim (X.presheaf.stalk x) = 1 ∧
Module.depth (X.presheaf.stalk x) (maximalIdeal (X.presheaf.stalk x))
(X.presheaf.stalk x) = 1
Stacks.Curves.isNodalAlgebra_stalk_iff_isSeparableExtension_of_isNode, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/NodeLocalRingDepth.lean, line 93. The attribute's comment: “conditions (1) and (2) over an arbitrary base field, at a point already known to be a node: the nodal-algebra condition on the local ring is exactly separability of the residue field extension”.
At a node of a one-dimensional scheme locally of finite type over an arbitrary field, the local ring is a nodal
k-algebra exactly when the residue field extension is separable.This is the whole of the gap between conditions (1) and (2) of Stacks Tag 0C4D over an arbitrary field: the implication from (1) to (2) holds as soon as
κ(x)/kis separable, and separability is itself one of the clauses of (2).
theorem isNodalAlgebra_stalk_iff_isSeparableExtension_of_isNode
(k : Type u) [Field k] (X : Scheme.{u}) [X.Over (AlgebraicGeometry.Spec (.of k))]
[LocallyOfFiniteType (X ↘ AlgebraicGeometry.Spec (.of k))]
(hX : topologicalKrullDim X = 1) (x : X) (hnode : IsNode k X x) :
let kToStalk : k →+* X.presheaf.stalk x :=
((Scheme.ΓSpecIso (.of k)).inv ≫ (X ↘ AlgebraicGeometry.Spec (.of k)).appTop ≫
X.presheaf.germ ⊤ x (by simp)).hom
letI : Algebra k (X.presheaf.stalk x) := kToStalk.toAlgebra
letI : Algebra k (X.residueField x) := ((X.residue x).hom.comp kToStalk).toAlgebra
(IsNodalAlgebra k (X.presheaf.stalk x) ↔
Algebra.IsSeparableExtension k (X.residueField x))
Stacks.Curves.isNode_of_isNodalAlgebra_stalk, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/NodeNodalAlgebraAscent.lean, line 88. The attribute's comment: “clause (2) implies clause (1), over an arbitrary base field”.
Condition (2) of Stacks Tag 0C4D implies condition (1), over an arbitrary field.
If the local ring at a point of a one-dimensional scheme locally of finite type over
kis a nodalk-algebra, then the point is a node.
theorem isNode_of_isNodalAlgebra_stalk
(k : Type u) [Field k] (X : Scheme.{u}) [X.Over (AlgebraicGeometry.Spec (.of k))]
[LocallyOfFiniteType (X ↘ AlgebraicGeometry.Spec (.of k))]
(hX : topologicalKrullDim X = 1) (x : X) :
letI : Algebra k (X.presheaf.stalk x) :=
((Scheme.ΓSpecIso (.of k)).inv ≫ (X ↘ AlgebraicGeometry.Spec (.of k)).appTop ≫
X.presheaf.germ ⊤ x trivial).hom.toAlgebra
IsNodalAlgebra k (X.presheaf.stalk x) → IsNode k X x
Stacks.Curves.isNode_iff_isNodalAlgebra_stalk_of_isSeparableExtension, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/NodeNodalAlgebraAscent.lean, line 160. The attribute's comment: “clauses (1) and (2), at a point whose residue field is separable over the base field”.
Conditions (1) and (2) of Stacks Tag 0C4D agree at a point whose residue field is separable over the base field.
Separability of
κ(x)/kis a clause of condition (2); it is assumed here, and discharged inStacks.Curves.isSeparableExtension_residueField_of_isNode, which makesStacks.Curves.isNode_iff_isNodalAlgebra_stalkthe unconditional equivalence. Everything else is proved: condition (1) with separability gives condition (2) byStacks.Curves.isNodalAlgebra_stalk_of_isNode_of_isSeparableExtension, and condition (2) gives condition (1) byStacks.Curves.isNode_of_isNodalAlgebra_stalk, over an arbitrary field.
theorem isNode_iff_isNodalAlgebra_stalk_of_isSeparableExtension
(k : Type u) [Field k] (X : Scheme.{u}) [X.Over (AlgebraicGeometry.Spec (.of k))]
[LocallyOfFiniteType (X ↘ AlgebraicGeometry.Spec (.of k))]
(hX : topologicalKrullDim X = 1) (x : X) :
let kToStalk : k →+* X.presheaf.stalk x :=
((Scheme.ΓSpecIso (.of k)).inv ≫ (X ↘ AlgebraicGeometry.Spec (.of k)).appTop ≫
X.presheaf.germ ⊤ x trivial).hom
letI : Algebra k (X.presheaf.stalk x) := kToStalk.toAlgebra
letI : Algebra k (X.residueField x) := ((X.residue x).hom.comp kToStalk).toAlgebra
Algebra.IsSeparableExtension k (X.residueField x) →
(IsNode k X x ↔ IsNodalAlgebra k (X.presheaf.stalk x))
Stacks.Curves.isNode_tfae_of_isSeparableExtension_residueField, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/NodeNodalAlgebraAscent.lean, line 187. The attribute's comment: “clauses (1), (2), (3) and (6), at a point whose residue field is separable over the base field”.
The four conditions of Stacks Tag 0C4D that do not mention the Fitting ideal are equivalent, over an arbitrary field, at a point whose residue field is separable over the base field.
Conditions (1), (2), (3) and (6) of the tag. The hypothesis
c₂ → c₁ofStacks.Curves.isNode_tfae_of_isSeparableExtensionis discharged byStacks.Curves.isNode_of_isNodalAlgebra_stalk; what remains assumed is separability ofκ(x)/k, which is a clause of conditions (2), (4), (5) and (6). That hypothesis is discharged inStacks.Curves.isNode_tfae, the same equivalence with no hypothesis beyond closedness of the point.
theorem isNode_tfae_of_isSeparableExtension_residueField
(k : Type u) [Field k] (X : Scheme.{u}) [X.Over (AlgebraicGeometry.Spec (.of k))]
[LocallyOfFiniteType (X ↘ AlgebraicGeometry.Spec (.of k))]
(hX : topologicalKrullDim X = 1) (x : X) (hx : IsClosed ({x} : Set X)) :
let f : X ⟶ AlgebraicGeometry.Spec (.of k) := X ↘ AlgebraicGeometry.Spec (.of k)
let kToStalk : k →+* X.presheaf.stalk x :=
((Scheme.ΓSpecIso (.of k)).inv ≫ f.appTop ≫ X.presheaf.germ ⊤ x (by simp)).hom
letI : Algebra k (X.presheaf.stalk x) := kToStalk.toAlgebra
letI : Algebra k (X.residueField x) := ((X.residue x).hom.comp kToStalk).toAlgebra
let c₁ : Prop := IsNode k X x
let c₂ : Prop := IsNodalAlgebra k (X.presheaf.stalk x)
let c₃ : Prop :=
(let K := AlgebraicClosure k
let g : AlgebraicGeometry.Spec (.of K) ⟶ AlgebraicGeometry.Spec (.of k) :=
AlgebraicGeometry.Spec.map (CommRingCat.ofHom (algebraMap k K))
let Y := (pullback f g : Scheme.{u})
let p : Y ⟶ X := pullback.fst f g
let q : Y ⟶ AlgebraicGeometry.Spec (.of K) := pullback.snd f g
letI : Y.Over (AlgebraicGeometry.Spec (.of K)) := ⟨q⟩
∀ xbar : Y, p.base xbar = x → IsOrdinaryDoublePoint K Y xbar)
let c₆ : Prop :=
Algebra.IsSeparableExtension k (X.residueField x) ∧
_root_.IsReduced (X.presheaf.stalk x) ∧
Ring.deltaInvariant (X.presheaf.stalk x) = 1 ∧
AlgebraicGeometry.numberOfGeometricBranches X x = 2
Algebra.IsSeparableExtension k (X.residueField x) → List.TFAE [c₁, c₂, c₃, c₆]
Stacks.Curves.isSeparableExtension_residueField_of_isNode, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/NodeResidueFieldSeparable.lean, line 134. The attribute's comment: “the separability of the residue field extension, from condition (1), over an arbitrary base field”.
The residue field at a node is separable over the base field.
This is the clause of conditions (2), (4), (5) and (6) of Stacks Tag 0C4D that conditions (1) and (3) do not display, and the source obtains it from the closed subscheme cut out by the first Fitting ideal of
Ω_{X/k}. The route here is different and stays inside the delta invariant.Base change to
k^{1/p}. At a node the maximal ideal of𝒪_{X,x}generates the maximal ideal upstairs (Stacks.Curves.isField_specialFibre_of_isNode), so the special fibre of the map on local rings is a field. That special fibre is the localization ofκ(x) ⊗_k k^{1/p}at the prime cut out by the chosen point (Stacks Tag 0C4Y), so a nonzero reduced flat algebra overκ(x) ⊗_k k^{1/p}exists, which forcesκ(x) ⊗_k k^{1/p}itself to be reduced — every element of it is a unit or nilpotent, so its maximal ideal acts as zero and flatness upgrades to faithful flatness. Reducedness ofκ(x) ⊗_k k^{1/p}is separability ofκ(x)/kby Stacks Tag 030W.
theorem isSeparableExtension_residueField_of_isNode
(k : Type u) [Field k] (X : Scheme.{u}) [X.Over (AlgebraicGeometry.Spec (.of k))]
[LocallyOfFiniteType (X ↘ AlgebraicGeometry.Spec (.of k))]
(hX : topologicalKrullDim X = 1) (x : X) :
let kToStalk : k →+* X.presheaf.stalk x :=
((Scheme.ΓSpecIso (.of k)).inv ≫ (X ↘ AlgebraicGeometry.Spec (.of k)).appTop ≫
X.presheaf.germ ⊤ x (by simp)).hom
letI : Algebra k (X.presheaf.stalk x) := kToStalk.toAlgebra
letI : Algebra k (X.residueField x) := ((X.residue x).hom.comp kToStalk).toAlgebra
IsNode k X x → Algebra.IsSeparableExtension k (X.residueField x)
Stacks.Curves.isNode_iff_isNodalAlgebra_stalk, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/NodeResidueFieldSeparable.lean, line 180. The attribute's comment: “clauses (1) and (2), over an arbitrary base field”.
Conditions (1) and (2) of Stacks Tag 0C4D agree over an arbitrary field.
A point of a one-dimensional scheme locally of finite type over
kis a node exactly when its local ring is a nodalk-algebra. Separability ofκ(x)/k, the one clause of condition (2) that condition (1) does not display, is supplied byStacks.Curves.isSeparableExtension_residueField_of_isNode.
theorem isNode_iff_isNodalAlgebra_stalk
(k : Type u) [Field k] (X : Scheme.{u}) [X.Over (AlgebraicGeometry.Spec (.of k))]
[LocallyOfFiniteType (X ↘ AlgebraicGeometry.Spec (.of k))]
(hX : topologicalKrullDim X = 1) (x : X) :
let kToStalk : k →+* X.presheaf.stalk x :=
((Scheme.ΓSpecIso (.of k)).inv ≫ (X ↘ AlgebraicGeometry.Spec (.of k)).appTop ≫
X.presheaf.germ ⊤ x (by simp)).hom
letI : Algebra k (X.presheaf.stalk x) := kToStalk.toAlgebra
letI : Algebra k (X.residueField x) := ((X.residue x).hom.comp kToStalk).toAlgebra
(IsNode k X x ↔ IsNodalAlgebra k (X.presheaf.stalk x))
Stacks.Curves.isNode_tfae, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/NodeResidueFieldSeparable.lean, line 205. The attribute's comment: “clauses (1), (2), (3) and (6), over an arbitrary base field”.
The four conditions of Stacks Tag 0C4D that do not mention the first Fitting ideal are equivalent over an arbitrary field.
Conditions (1), (2), (3) and (6) of the tag, at a closed point of a one-dimensional scheme locally of finite type over an arbitrary field, with no hypothesis beyond closedness of the point. Each of the four implies that
κ(x)/kis separable — conditions (2) and (6) say so outright, and conditions (1) and (3) byStacks.Curves.isSeparableExtension_residueField_of_isNode— and under that separability the four are already known to be equivalent.
theorem isNode_tfae
(k : Type u) [Field k] (X : Scheme.{u}) [X.Over (AlgebraicGeometry.Spec (.of k))]
[LocallyOfFiniteType (X ↘ AlgebraicGeometry.Spec (.of k))]
(hX : topologicalKrullDim X = 1) (x : X) (hx : IsClosed ({x} : Set X)) :
let f : X ⟶ AlgebraicGeometry.Spec (.of k) := X ↘ AlgebraicGeometry.Spec (.of k)
let kToStalk : k →+* X.presheaf.stalk x :=
((Scheme.ΓSpecIso (.of k)).inv ≫ f.appTop ≫ X.presheaf.germ ⊤ x (by simp)).hom
letI : Algebra k (X.presheaf.stalk x) := kToStalk.toAlgebra
letI : Algebra k (X.residueField x) := ((X.residue x).hom.comp kToStalk).toAlgebra
let c₁ : Prop := IsNode k X x
let c₂ : Prop := IsNodalAlgebra k (X.presheaf.stalk x)
let c₃ : Prop :=
(let K := AlgebraicClosure k
let g : AlgebraicGeometry.Spec (.of K) ⟶ AlgebraicGeometry.Spec (.of k) :=
AlgebraicGeometry.Spec.map (CommRingCat.ofHom (algebraMap k K))
let Y := (pullback f g : Scheme.{u})
let p : Y ⟶ X := pullback.fst f g
let q : Y ⟶ AlgebraicGeometry.Spec (.of K) := pullback.snd f g
letI : Y.Over (AlgebraicGeometry.Spec (.of K)) := ⟨q⟩
∀ xbar : Y, p.base xbar = x → IsOrdinaryDoublePoint K Y xbar)
let c₆ : Prop :=
Algebra.IsSeparableExtension k (X.residueField x) ∧
_root_.IsReduced (X.presheaf.stalk x) ∧
Ring.deltaInvariant (X.presheaf.stalk x) = 1 ∧
AlgebraicGeometry.numberOfGeometricBranches X x = 2
List.TFAE [c₁, c₂, c₃, c₆]
Stacks.Curves.isNodalAlgebra_stalk_iff_deltaInvariant_eq_one_and_two_geometricBranches, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/NodeStalkCharacterization.lean, line 160. The attribute's comment: “clauses (2) and (6)”.
The local ring at a point of a one-dimensional scheme locally of finite type over a field is a nodal algebra if and only if the residue field is separable, the local ring is reduced, its delta invariant is one and it has two geometric branches.
This is the equivalence of conditions (2) and (6) of Stacks Tag 0C4D. Its content is the algebraic equivalence of Stacks Tag 0C4A, whose two further hypotheses are discharged here: the local ring is Nagata because the scheme is locally of finite type over a field, and it is one-dimensional because its dimension is at most that of the scheme while a reduced local ring of delta invariant one is not a field.
theorem isNodalAlgebra_stalk_iff_deltaInvariant_eq_one_and_two_geometricBranches
(k : Type u) [Field k] (X : Scheme.{u}) [X.Over (Spec (.of k))]
[LocallyOfFiniteType (X ↘ Spec (.of k))]
(hX : topologicalKrullDim X = 1) (x : X) :
let kToStalk : k →+* X.presheaf.stalk x :=
((Scheme.ΓSpecIso (.of k)).inv ≫ (X ↘ Spec (.of k)).appTop ≫
X.presheaf.germ ⊤ x (by simp)).hom
letI : Algebra k (X.presheaf.stalk x) := kToStalk.toAlgebra
letI : Algebra k (X.residueField x) := ((X.residue x).hom.comp kToStalk).toAlgebra
(IsNodalAlgebra k (X.presheaf.stalk x) ↔
Algebra.IsSeparableExtension k (X.residueField x) ∧
IsReduced (X.presheaf.stalk x) ∧
Ring.deltaInvariant (X.presheaf.stalk x) = 1 ∧
numberOfGeometricBranches X x = 2)
Stacks.Curves.isNode_iff_forall_isOrdinaryDoublePoint, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/NodeTFAE.lean, line 114. The attribute's comment: “clauses (1) and (3)”.
A closed point of a scheme locally of finite type over an arbitrary field is a node exactly when every point of the base change to the algebraic closure above it is an ordinary double point.
This is the equivalence of conditions (1) and (3) of Stacks Tag 0C4D, over an arbitrary field. The definition of a node asks only that some point above
xbe an ordinary double point; the two agree because the automorphisms of the algebraic closure act transitively on the points abovex, which isStacks.Curves.forall_isOrdinaryDoublePoint_of_isNode.
theorem isNode_iff_forall_isOrdinaryDoublePoint
(k : Type u) [Field k] (X : Scheme.{u}) [X.Over (AlgebraicGeometry.Spec (.of k))]
[LocallyOfFiniteType (X ↘ AlgebraicGeometry.Spec (.of k))] (x : X)
(hx : IsClosed ({x} : Set X)) :
let f : X ⟶ AlgebraicGeometry.Spec (.of k) := X ↘ AlgebraicGeometry.Spec (.of k)
(IsNode k X x ↔
(let K := AlgebraicClosure k
let g : AlgebraicGeometry.Spec (.of K) ⟶ AlgebraicGeometry.Spec (.of k) :=
AlgebraicGeometry.Spec.map (CommRingCat.ofHom (algebraMap k K))
let Y := (pullback f g : Scheme.{u})
let p : Y ⟶ X := pullback.fst f g
let q : Y ⟶ AlgebraicGeometry.Spec (.of K) := pullback.snd f g
letI : Y.Over (AlgebraicGeometry.Spec (.of K)) := ⟨q⟩
∀ xbar : Y, p.base xbar = x → IsOrdinaryDoublePoint K Y xbar))
Stacks.Curves.isNode_tfae_of_isAlgClosed, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/NodeTFAE.lean, line 189. The attribute's comment: “clauses (1), (2), (3) and (6), for an algebraically closed base field”.
The four conditions of Stacks Tag 0C4D that do not mention the Fitting ideal are equivalent over an algebraically closed field.
Conditions (1), (2), (3) and (6) of the tag. The equivalence of (1) and (2) over an algebraically closed field is
Stacks.Curves.isNode_iff_isNodalAlgebra_stalk_of_isAlgClosed, which is the only hypothesis ofStacks.Curves.isNode_tfae_of_isNode_iff_isNodalAlgebra_stalk.
theorem isNode_tfae_of_isAlgClosed
(k : Type u) [Field k] [IsAlgClosed k] (X : Scheme.{u})
[X.Over (AlgebraicGeometry.Spec (.of k))]
[LocallyOfFiniteType (X ↘ AlgebraicGeometry.Spec (.of k))]
(hX : topologicalKrullDim X = 1) (x : X) (hx : IsClosed ({x} : Set X)) :
let f : X ⟶ AlgebraicGeometry.Spec (.of k) := X ↘ AlgebraicGeometry.Spec (.of k)
let kToStalk : k →+* X.presheaf.stalk x :=
((Scheme.ΓSpecIso (.of k)).inv ≫ f.appTop ≫
X.presheaf.germ ⊤ x (by simp)).hom
letI : Algebra k (X.presheaf.stalk x) := kToStalk.toAlgebra
letI : Algebra k (X.residueField x) :=
((X.residue x).hom.comp kToStalk).toAlgebra
List.TFAE [
IsNode k X x,
IsNodalAlgebra k (X.presheaf.stalk x),
(let K := AlgebraicClosure k
let g : AlgebraicGeometry.Spec (.of K) ⟶ AlgebraicGeometry.Spec (.of k) :=
AlgebraicGeometry.Spec.map (CommRingCat.ofHom (algebraMap k K))
let Y := (pullback f g : Scheme.{u})
let p : Y ⟶ X := pullback.fst f g
let q : Y ⟶ AlgebraicGeometry.Spec (.of K) := pullback.snd f g
letI : Y.Over (AlgebraicGeometry.Spec (.of K)) := ⟨q⟩
∀ xbar : Y, p.base xbar = x → IsOrdinaryDoublePoint K Y xbar),
Algebra.IsSeparableExtension k (X.residueField x) ∧
IsReduced (X.presheaf.stalk x) ∧
Ring.deltaInvariant (X.presheaf.stalk x) = 1 ∧
AlgebraicGeometry.numberOfGeometricBranches X x = 2]
Tag 0CBT, a remark
Tag 0CBT in the Stacks Project.
Stacks.Curves.quadraticAlgebra_equiv_adjoinRoot, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/NodeQuadraticAlgebra/AdjoinRoot.lean, line 570. The attribute's comment: “three_descriptions”.
The quadratic algebra of a node is isomorphic over the residue field
κtoκ[X]/(a X² + b X + c), wherea,b,care the residues of the coefficients of a quadratic relationa x² + b x y + c y² ∈ 𝔪³in lifted cotangent coordinates.
public theorem quadraticAlgebra_equiv_adjoinRoot (k : Type u) (A : Type v) [Field k] [CommRing A]
[IsLocalRing A] [IsNoetherianRing A] [Algebra k A]
(hA : IsNodalAlgebra k A)
(x y : maximalIdeal A)
(e : Module.Basis (BinaryIndex (ResidueField A)) (ResidueField A) (CotangentSpace A))
(hx : e ⟨0⟩ = (maximalIdeal A).toCotangent x)
(hy : e ⟨1⟩ = (maximalIdeal A).toCotangent y)
(a b c : A) (ha : residue A a ≠ 0)
(hdisc : residue A (4 * a * c - b ^ 2) ≠ 0)
(hrelation : a * x.1 ^ 2 + b * x.1 * y.1 + c * y.1 ^ 2 ∈ (maximalIdeal A) ^ 3) :
Nonempty (quadraticAlgebra A ≃ₐ[ResidueField A]
AdjoinRoot (Polynomial.C (residue A a) * Polynomial.X ^ 2 +
Polynomial.C (residue A b) * Polynomial.X + Polynomial.C (residue A c)))
Stacks.Curves.quadraticAlgebra, an abbrev in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/NodeQuadraticAlgebra/Defs.lean, line 40. The attribute's comment: “quadratic_algebra_associated_to_a_node”.
The quadratic algebra associated to a local ring: the closed fibre of its normalization inside its total ring of fractions.
public abbrev quadraticAlgebra (A : Type u) [CommRing A] [IsLocalRing A]
Stacks.Curves.isSeparable_quadraticAlgebra_of_isNodalAlgebra, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/NodeQuadraticAlgebra/DegreeSeparable.lean, line 133. The attribute's comment: “degree_separable”.
The quadratic algebra of a nodal local ring is separable over its residue field.
public theorem isSeparable_quadraticAlgebra_of_isNodalAlgebra (hA : IsNodalAlgebra k A) :
Algebra.IsSeparable (ResidueField A) (quadraticAlgebra A)
Stacks.Curves.finrank_quadraticAlgebra_of_isNodalAlgebra, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/NodeQuadraticAlgebra/DegreeSeparable.lean, line 151. The attribute's comment: “degree_separable”.
The quadratic algebra of a nodal local ring has degree two over its residue field.
public theorem finrank_quadraticAlgebra_of_isNodalAlgebra (hA : IsNodalAlgebra k A) :
Module.finrank (ResidueField A) (quadraticAlgebra A) = 2
Stacks.Curves.quadraticAlgebraSpecIsoNormalizationFiber, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/NodeQuadraticAlgebra/NormalizationFibre.lean, line 101. The attribute's comment: “normalization_fibre”.
The spectrum of the quadratic algebra associated to a node is the fibre of the normalization over that node.
public theorem quadraticAlgebraSpecIsoNormalizationFiber
(k : Type u) [Field k] (X : Scheme.{u}) (f : X ⟶ Spec (.of k))
[IsLocallyNoetherian X] (x : X)
(hnode :
let kToStalk : k →+* X.presheaf.stalk x :=
((Scheme.ΓSpecIso (.of k)).inv ≫ f.appTop ≫ X.presheaf.germ ⊤ x trivial).hom
letI : Algebra k (X.presheaf.stalk x) := kToStalk.toAlgebra
IsNodalAlgebra k (X.presheaf.stalk x)) :
let hX : ∀ U : X.Opens, IsCompact (U : Set X) →
(irreducibleComponents U).Finite := fun U hU ↦ by
let : CompactSpace U := isCompact_iff_compactSpace.mp hU
let : NoetherianSpace U :=
noetherianSpace_of_isLocallyNoetherianSpace U
((isLocallyNoetherianSpace_of_isLocallyNoetherian X).subtype U)
exact NoetherianSpace.finite_irreducibleComponents
letI : Algebra (X.residueField x)
(quadraticAlgebra (X.presheaf.stalk x)) := by
change Algebra (IsLocalRing.ResidueField (X.presheaf.stalk x))
(quadraticAlgebra (X.presheaf.stalk x))
infer_instance
Nonempty
(Over.mk (Spec.map (
let A := X.presheaf.stalk x
let B := integralClosure A (FractionRing A)
let J := (IsLocalRing.maximalIdeal A).map (algebraMap A B)
let f : A →+* (B ⧸ J) := (Ideal.Quotient.mk J).comp (algebraMap A B)
let g : IsLocalRing.ResidueField A →+* (B ⧸ J) :=
Ideal.Quotient.lift (IsLocalRing.maximalIdeal A) f fun _a ha ↦
Ideal.Quotient.eq_zero_iff_mem.mpr
(Ideal.mem_map_of_mem (algebraMap A B) ha)
let g' : @RingHom (IsLocalRing.ResidueField A) (B ⧸ J)
(X.residueField x).commRing.toCommSemiring.toNonAssocSemiring
(CommRingCat.of (B ⧸ J)).commRing.toCommSemiring.toNonAssocSemiring := {
toFun := g
map_one' := g.map_one
map_mul' := g.map_mul
map_zero' := g.map_zero
map_add' := g.map_add }
CommRingCat.ofHom g')) ≅
Over.mk (pullback.snd (Scheme.normalization X hX)
(X.fromSpecResidueField x)))
Stacks.Curves.proj_associatedGraded_iso_quadraticAlgebraSpec, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/NodeQuadraticAlgebra/ProjTangentCone.lean, line 569. The attribute's comment: “three_descriptions”.
The projectivized associated graded ring at a node is the spectrum of its normalization fibre. The grading is the one by the powers of the maximal ideal.
public theorem proj_associatedGraded_iso_quadraticAlgebraSpec
(hA : IsNodalAlgebra k A)
(𝒢 : ℕ → AddSubgroup (AssociatedGraded.gradedRing (maximalIdeal A)))
[GradedRing 𝒢]
(h𝒢 : ∀ n, 𝒢 n = AddMonoidHom.range
(DirectSum.of (fun i => AssociatedGraded.piece (M := A) (maximalIdeal A) i) n)) :
Nonempty (Proj 𝒢 ≅ Spec (.of
(quadraticAlgebra A)))
Tag 0CBU, a remark
Tag 0CBU in the Stacks Project.
Stacks.Curves.isSplitNode_tfae, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/NodeQuadraticAlgebra/SplitNode.lean, line 517. The attribute's comment: “conditions (1)-(4); the completion condition (5) is not formalized”.
Let
Abe a nodal local algebra over a fieldk, with residue fieldκ, and letκ' = Stacks.Curves.quadraticAlgebra Abe the associated separableκ-algebra of degree two. Then the following are equivalent:κ'isκ × κ; the nondegenerate quadratic form of Stacks Tag 0C49 can be chosen to bex y;Ahas two branches; the integral closure ofAin its total ring of fractions has two maximal ideals.
public theorem isSplitNode_tfae
(k : Type u) (A : Type v) [Field k] [CommRing A] [IsLocalRing A] [IsNoetherianRing A]
[Algebra k A] (hA : IsNodalAlgebra k A) :
List.TFAE [
Nonempty (quadraticAlgebra A ≃ₐ[ResidueField A] (ResidueField A × ResidueField A)),
∃ (x y : maximalIdeal A)
(e : Module.Basis (BinaryIndex (ResidueField A)) (ResidueField A) (CotangentSpace A)),
e ⟨0⟩ = (maximalIdeal A).toCotangent x ∧
e ⟨1⟩ = (maximalIdeal A).toCotangent y ∧
(x : A) * (y : A) ∈ (maximalIdeal A) ^ 3,
numberOfBranchesOfLocalRing A = 2,
Set.encard
(Set.univ : Set (MaximalSpectrum ↥(integralClosure A (FractionRing A)))) = 2]
Stacks.Curves.nonempty_algEquiv_adicCompletion_quotient_X_mul_X_iff_numberOfBranches_eq_two, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/NodeQuadraticAlgebra/SplitNodeCompletion.lean, line 283. The attribute's comment: “condition (5), the completion condition”.
The completion condition for a split node. Let
Abe a nodal local algebra over a fieldk, with residue fieldκ. Then the completion ofAat its maximal ideal isκ[[x, y]]/(x y)as ak-algebra if and only ifAhas two branches — hence if and only if any one of the four conditions ofStacks.Curves.isSplitNode_tfaeholds.
public theorem nonempty_algEquiv_adicCompletion_quotient_X_mul_X_iff_numberOfBranches_eq_two
(k : Type u) (A : Type v) [Field k] [CommRing A] [IsLocalRing A] [IsNoetherianRing A]
[Algebra k A] (hA : IsNodalAlgebra k A) :
Nonempty (AdicCompletion (maximalIdeal A) A ≃ₐ[k]
(MvPowerSeries (Fin 2) (ResidueField A) ⧸
Ideal.span {(MvPowerSeries.X 0 : MvPowerSeries (Fin 2) (ResidueField A)) *
MvPowerSeries.X 1})) ↔
numberOfBranchesOfLocalRing A = 2
Tag 0CBV, a definition
Tag 0CBV in the Stacks Project.
Stacks.Curves.IsSplitNode, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/IsSplitNode.lean, line 41.
A point of a scheme over
kis a split node if it is a node, the structure mapk → κ(x)is bijective, and the quadratic algebra of𝒪_{X, x}is the trivial quadratic extensionκ(x) × κ(x).
def IsSplitNode (k : Type u) [Field k] (X : Scheme.{u}) [X.Over (Spec (.of k))] (x : X) : Prop
Tag 0CBW, a lemma
Tag 0CBW in the Stacks Project.
Stacks.Curves.isSplitNode_tfae_normalizationFibre_adicCompletion, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/NodalSingularitiesCharacterization.lean, line 358.
Stacks 0CBW. Let
kbe a field, letXbe a one-dimensional algebraick-scheme and letx ∈ Xbe a closed point. The following are equivalent:
xis a split node;xis a node and there are exactly two pointsx₁, x₂of the normalizationX^νlying overx, withk = κ(x₁) = κ(x₂);𝒪^∧_{X,x} ≅ k[[x, y]]/(x y)as ak-algebra.Clause (4) of the source is the placeholder "add more here" and carries no mathematical content, so the equivalence stated here is that of clauses (1), (2) and (3).
The two points of clause (2) are the branches of
𝒪_{X,x}, counted by the fibre of the normalization (Stacks Tag 0C1S) and by the splitting of the quadratic algebra (Stacks Tag 0CBU); their residue fields are computed inStacks.Curves.bijective_fieldToResidue_normalization_of_isNodalAlgebra.
public theorem isSplitNode_tfae_normalizationFibre_adicCompletion
(k : Type u) [Field k] (X : Scheme.{u}) [X.Over (Spec (.of k))]
[LocallyOfFiniteType (X ↘ Spec (.of k))]
(hdim : topologicalKrullDim X = 1) (x : X) (hx : IsClosed ({x} : Set X)) :
letI : Algebra k (X.presheaf.stalk x) :=
((Scheme.ΓSpecIso (.of k)).inv ≫ (X ↘ Spec (.of k)).appTop ≫
X.presheaf.germ ⊤ x trivial).hom.toAlgebra
let ν := normalizationOverField k (X ↘ Spec (.of k))
let c₁ : Prop := IsSplitNode k X x
let c₂ : Prop :=
IsNode k X x ∧
∃ x₁ x₂ : normalizationSchemeOverField k (X ↘ Spec (.of k)),
x₁ ≠ x₂ ∧
{y : normalizationSchemeOverField k (X ↘ Spec (.of k)) | ν y = x} = {x₁, x₂} ∧
Function.Bijective (fieldToResidue (ν ≫ (X ↘ Spec (.of k))) x₁).hom ∧
Function.Bijective (fieldToResidue (ν ≫ (X ↘ Spec (.of k))) x₂).hom
let c₃ : Prop :=
Nonempty (AdicCompletion (maximalIdeal (X.presheaf.stalk x)) (X.presheaf.stalk x) ≃ₐ[k]
(MvPowerSeries (Fin 2) k ⧸
Ideal.span {(MvPowerSeries.X 0 : MvPowerSeries (Fin 2) k) * MvPowerSeries.X 1}))
List.TFAE [c₁, c₂, c₃]
Tag 0C56, a lemma
Tag 0C56 in the Stacks Project.
Stacks.Curves.isNode_iff_of_fieldExtension, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/NodeFieldExtension.lean, line 482.
Stacks Project, Tag 0C56. Let
K / kbe an extension of fields and letXbe a one-dimensional scheme locally of finite type overk. A point of the base changeX_Kis a closed point and a node exactly when its image inXis.Closedness of the point is part of
Stacks.Curves.IsNode, so the two conditions of the source are carried by the node predicates themselves rather than stated separately.
theorem isNode_iff_of_fieldExtension
(k K : Type u) [Field k] [Field K] [Algebra k K]
(X : Scheme.{u}) (f : X ⟶ AlgebraicGeometry.Spec (.of k)) [LocallyOfFiniteType f]
(hdim : topologicalKrullDim X = 1) (x : X)
(y : (pullback f (AlgebraicGeometry.Spec.map (CommRingCat.ofHom (algebraMap k K))) :
Scheme.{u}))
(hy : (pullback.fst f
(AlgebraicGeometry.Spec.map (CommRingCat.ofHom (algebraMap k K)))).base y = x) :
letI : X.Over (AlgebraicGeometry.Spec (.of k)) := ⟨f⟩
letI : (pullback f (AlgebraicGeometry.Spec.map (CommRingCat.ofHom (algebraMap k K))) :
Scheme.{u}).Over (AlgebraicGeometry.Spec (.of K)) :=
⟨pullback.snd f (AlgebraicGeometry.Spec.map (CommRingCat.ofHom (algebraMap k K)))⟩
(IsNode k X x ↔
IsNode K (pullback f
(AlgebraicGeometry.Spec.map (CommRingCat.ofHom (algebraMap k K))) : Scheme.{u}) y)
Tag 0C57, a lemma
Tag 0C57 in the Stacks Project.
Stacks.Curves.isNode_iff_of_etale, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/NodeEtaleLocal.lean, line 247.
Stacks Project, Tag 0C57. For an étale morphism
g : Y ⟶ Xof schemes over a field withXof dimension one and locally of finite type, a point ofYis a node exactly when its image inXis a node.
theorem isNode_iff_of_etale
(k : Type u) [Field k]
(X Y : Scheme.{u}) (f : X ⟶ Spec (.of k)) [LocallyOfFiniteType f]
(_hdim : topologicalKrullDim X = 1)
(g : Y ⟶ X) [Etale g] (y : Y) :
letI : X.Over (Spec (.of k)) := ⟨f⟩
letI : Y.Over (Spec (.of k)) := ⟨g ≫ f⟩
IsNode k X (g.base y) ↔ IsNode k Y y
Tag 0CD6, a lemma
Tag 0CD6 in the Stacks Project.
Stacks.Curves.isNode_iff_of_finiteSeparable_baseField, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/NodeFieldExtension.lean, line 614. References: SGA 7 XV (1.2.5), “ordinary case”.
Stacks Project, Tag 0CD6. Let
k' / kbe a finite separable field extension and letXbe a one-dimensional scheme locally of finite type overk'. A point ofXis a node overk'exactly when it is a node for thek-scheme structure obtained by composing withSpec k' ⟶ Spec k.The two conditions are joined through the base change
X ×_{Spec k} Spec k'. Its first projection is étale, being a base change of the étale morphismSpec k' ⟶ Spec k, and the graph offis a section of that projection, hence itself étale. Tag 0C56 identifies the node condition overkwith the one on the base change, and Tag 0C57 identifies the latter with the node condition overk'onX.
theorem isNode_iff_of_finiteSeparable_baseField
(k k' : Type u) [Field k] [Field k'] [Algebra k k'] [Module.Finite k k']
[Algebra.IsSeparable k k']
(X : Scheme.{u}) (f : X ⟶ AlgebraicGeometry.Spec (.of k'))
[LocallyOfFiniteType f] (hdim : topologicalKrullDim X = 1) (x : X) :
letI : X.Over (AlgebraicGeometry.Spec (.of k')) := ⟨f⟩
letI : X.Over (AlgebraicGeometry.Spec (.of k)) :=
⟨f ≫ AlgebraicGeometry.Spec.map (CommRingCat.ofHom (algebraMap k k'))⟩
(IsNode k' X x ↔ IsNode k X x)
Tag 0C4E, a lemma
Tag 0C4E in the Stacks Project.
Stacks.Curves.hasAtWorstNodalSingularities_iff_lci_and_unramified_relativeSingularIdeal, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/NodalLciUnramifiedCriterion.lean, line 319.
Stacks Project, Tag 0C4E.
theorem hasAtWorstNodalSingularities_iff_lci_and_unramified_relativeSingularIdeal
(k : Type u) [Field k] (X : Scheme.{u}) [X.Over (AlgebraicGeometry.Spec (.of k))]
[LocallyOfFiniteType (X ↘ AlgebraicGeometry.Spec (.of k))]
(hequi : Equidimensional X) (hdim : topologicalKrullDim X = 1) :
HasAtWorstNodalSingularities k X ↔
(IsLocalCompleteIntersectionOverField (X ↘ AlgebraicGeometry.Spec (.of k)) ∧
Unramified ((relativeSingularIdeal
(X ↘ AlgebraicGeometry.Spec (.of k))).subschemeι ≫
(X ↘ AlgebraicGeometry.Spec (.of k))))
Stacks.Curves.smoothAt_or_isSeparable_and_depth_eq_one_and_fittingIdeal_eq_maximalIdeal, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/NodalUnramifiedSingularSubscheme.lean, line 277. The attribute's comment: “the implication (2) ⟹ (1), via condition (5) of Tag 0C4D at every closed point”.
Condition (2) of Tag 0C4E gives condition (5) of Tag 0C4D at every closed point. Let
kbe a field andXa locally algebraick-scheme, equidimensional of dimension one. AssumeXis a local complete intersection overkand that the closed subscheme cut out by the first Fitting ideal ofΩ_{X/k}is unramified overk. Then at a closed pointxofXeither the structure morphism is smooth, or the residue field extension atxis separable,𝒪_{X,x}is one-dimensional of depth one, and the first Fitting ideal ofΩ_{X/k}generates the maximal ideal of𝒪_{X,x}.The hypotheses are condition (2) of Tag 0C4E and the second disjunct is condition (5) of Tag 0C4D together with the dimension of the local ring. Separability is stated over the residue field of the image point of
Spec k, the spelling of Tag 02G8.The remaining step of the implication (2) ⟹ (1) of Tag 0C4E — that condition (5) of Tag 0C4D makes such a point a node — is not delivered here, but it is available in the library:
Stacks.Curves.isNode_tfae_of_isClosed(StacksFrontier/AlgebraicGeometry/Curves/NodeFittingIdealClosedPoint.lean) carries a bare@[stacks 0C4D], i.e. the whole six-clause equivalence at a closed point of a one-dimensional scheme locally of finite type over an arbitrary field, and the separability this theorem supplies in its second disjunct is exactly what lets its cycle1 → 2 → 3 → 4 → 5 → 6 → 1be run, so(... ).out 5 1supplies the step. (5) ⟹ (1) over an arbitrary base field is therefore in hand, and the two are composed inStacks.NodalEtaleLocalStructure.isNode_asFiber_of_mem_relativeSingular(StacksFrontier/AlgebraicGeometry/Curves/NodalEtaleLocalStructureAssembly.lean), which is what Tag 0CBY's existence statement rests on.The step does not depend on the unproved
h₁₄/h₄₅ofStacks.Curves.isNode_tfae_of_residual_equivalences; that route is only one of several, and Tag 0CBY is an assembly of proved results. Alternatives, if the closed-point hypothesis ofisNode_tfae_of_isClosedis inconvenient:Stacks.Curves.isNode_of_isNodalAlgebra_stalk(StacksFrontier/AlgebraicGeometry/Curves/NodeNodalAlgebraAscent.lean,@[stacks 0C4D "clause (2) implies clause (1), over an arbitrary base field"]) andStacks.Curves.isNode\_iff\_isNodalAlgebra\_stalk(StacksFrontier/AlgebraicGeometry/Curves/NodeResidueFieldSeparable.lean).
theorem smoothAt_or_isSeparable_and_depth_eq_one_and_fittingIdeal_eq_maximalIdeal
(k : Type u) [Field k] {X : Scheme.{u}} (f : X ⟶ AlgebraicGeometry.Spec (.of k))
[LocallyOfFiniteType f] (hequi : Equidimensional X) (hdim : topologicalKrullDim X = 1)
(hlci : IsLocalCompleteIntersectionOverField f)
(hZ : Unramified ((relativeSingularIdeal f).subschemeι ≫ f))
(x : X) (hx : IsClosed ({x} : Set X)) :
letI : Algebra ((AlgebraicGeometry.Spec (.of k)).residueField (f.base x))
(X.residueField x) := (f.residueFieldMap x).hom.toAlgebra
(InfinitesimalLifting.SmoothAt f x ∨
(Algebra.IsSeparable ((AlgebraicGeometry.Spec (.of k)).residueField (f.base x))
(X.residueField x) ∧
ringKrullDim (X.presheaf.stalk x) = 1 ∧
Module.depth (X.presheaf.stalk x) (maximalIdeal (X.presheaf.stalk x))
(X.presheaf.stalk x) = 1 ∧
IdealSheafData.stalk (relativeSingularIdeal f) x =
maximalIdeal (X.presheaf.stalk x)))
Tag 0E37, a lemma
Tag 0E37 in the Stacks Project.
Stacks.Curves.isGorenstein_of_hasAtWorstNodalSingularities, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/NodalGorensteinReduced.lean, line 297. The attribute's comment: “nodal_curve_gorenstein”.
Stacks Project, Tag 0E37. A locally algebraic scheme over a field, equidimensional of dimension one and with at-worst-nodal singularities, is Gorenstein.
theorem isGorenstein_of_hasAtWorstNodalSingularities (k : Type u) [Field k] (X : Scheme.{u})
[X.Over (AlgebraicGeometry.Spec (.of k))]
[LocallyOfFiniteType (X ↘ AlgebraicGeometry.Spec (.of k))]
(_hequidim : TopologicalSpace.Equidimensional X) (hdim : topologicalKrullDim X = 1)
(hnodal : HasAtWorstNodalSingularities k X) :
AlgebraicGeometry.IsGorenstein X
Stacks.Curves.geometricallyReduced_of_hasAtWorstNodalSingularities, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/NodalGorensteinReduced.lean, line 316. The attribute's comment: “nodal_curve_geometrically_reduced”.
Stacks Project, Tag 0E37. A locally algebraic scheme over a field, equidimensional of dimension one and with at-worst-nodal singularities, is geometrically reduced.
theorem geometricallyReduced_of_hasAtWorstNodalSingularities (k : Type u) [Field k]
(X : Scheme.{u}) [X.Over (AlgebraicGeometry.Spec (.of k))]
[LocallyOfFiniteType (X ↘ AlgebraicGeometry.Spec (.of k))]
(_hequidim : TopologicalSpace.Equidimensional X) (hdim : topologicalKrullDim X = 1)
(hnodal : HasAtWorstNodalSingularities k X) :
GeometricallyReduced (X ↘ AlgebraicGeometry.Spec (.of k))
Tag 0E38, a lemma
Tag 0E38 in the Stacks Project.
Stacks.Curves.exists_iso_sigma_spec_intersectionWithComplementaryCurve, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/ComplementaryCurve/IntersectionComponentStalks.lean, line 399. The attribute's comment: “intersection_is_disjoint_union_of_spectra_of_finite_separable_extensions”.
Stacks Project, Tag 0E38, clause (2)(a). Let
Xbe a one-dimensional equidimensional curve locally of finite type over a fieldkwith at worst nodal singularities, letY ⊆ Xbe a reduced equidimensional closed subscheme of dimension one, and letZbe the scheme-theoretic closure ofX ∖ Y. Then the scheme-theoretic intersectionY ∩ Zis, overk, a disjoint union of spectra of finite separable extensions ofk.At each point of
Y ∩ Zthe stalks of the ideal sheaves ofYandZare the two minimal primes of the local ring of the node there (Stacks.Curves.exists_stalk_eq_of_mem_support_of_mem_support_complementaryCurveIdeal), and these sum to the maximal ideal, the delta invariant being one (Ring.sup_eq_maximalIdeal_of_deltaInvariant_eq_one). So every local ring ofY ∩ Zis a field:Y ∩ Zis reduced, and its points are closed, so it is discrete. EachSpec κ(w) ⟶ Y ∩ Zis then an open and closed immersion, and together they presentY ∩ Zas the coproduct of the spectra of its residue fields, which are finite (closed points) and separable (nodes) overk.
theorem exists_iso_sigma_spec_intersectionWithComplementaryCurve
{k : Type u} [Field k] {X : Scheme.{u}} [X.Over (Spec (.of k))]
[LocallyOfFiniteType (X ↘ Spec (.of k))]
(hX_equidimensional : Equidimensional X)
(hX_dimension : topologicalKrullDim X = 1)
(hX_nodal : HasAtWorstNodalSingularities k X)
(I : X.IdealSheafData) [IsReduced I.subscheme]
(hY_equidimensional : Equidimensional I.subscheme)
(hY_dimension : topologicalKrullDim I.subscheme = 1) :
∃ (ι : Type u) (K : ι → Type u) (_ : ∀ i, Field (K i)) (_ : ∀ i, Algebra k (K i)),
(∀ i, Module.Finite k (K i) ∧ Algebra.IsSeparable k (K i)) ∧
∃ e : (∐ fun i => Spec (.of (K i))) ≅ intersectionWithComplementaryCurve I,
∀ i, Limits.Sigma.ι (fun i => Spec (.of (K i))) i ≫ e.hom ≫
(intersectionWithComplementaryCurveIdeal I).subschemeι ≫ (X ↘ Spec (.of k)) =
Spec.map (CommRingCat.ofHom (algebraMap k (K i)))
Stacks.Curves.isFiniteSeparable_residueField_of_mem_intersection_complementaryCurve, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/ComplementaryCurve/IntersectionLocalStructure.lean, line 225. The attribute's comment: “part (2)(a), the residue fields of the intersection are finite separable over k”.
Stacks 0E38, part (2)(a): the residue field at a point where a reduced closed subcurve meets the closure of its complement is a finite separable extension of the base field. Such a point is a node of
Xby part (2)(b), and the residue field extension at a node is separable (Tag 0C4D) and finite because the point is closed andXis locally of finite type overk.
theorem isFiniteSeparable_residueField_of_mem_intersection_complementaryCurve
{k : Type u} [Field k] {X : Scheme.{u}} [X.Over (Spec (.of k))]
[LocallyOfFiniteType (X ↘ Spec (.of k))]
(hX_equidimensional : Equidimensional X)
(hX_dimension : topologicalKrullDim X = 1)
(hX_nodal : HasAtWorstNodalSingularities k X)
(I : X.IdealSheafData) [IsReduced I.subscheme]
(hY_equidimensional : Equidimensional I.subscheme)
(hY_dimension : topologicalKrullDim I.subscheme = 1)
{x : X} (hxI : x ∈ (I.support : Set X))
(hxJ : x ∈ ((complementaryCurveIdeal I).support : Set X)) :
let kToStalk : k →+* X.presheaf.stalk x :=
((Scheme.ΓSpecIso (.of k)).inv ≫ (X ↘ Spec (.of k)).appTop ≫
X.presheaf.germ ⊤ x (by simp)).hom
letI : Algebra k (X.presheaf.stalk x) := kToStalk.toAlgebra
letI : Algebra k (X.residueField x) := ((X.residue x).hom.comp kToStalk).toAlgebra
Module.Finite k (X.residueField x) ∧ Algebra.IsSeparableExtension k (X.residueField x)
Stacks.Curves.smoothAt_of_mem_support_complementaryCurveIdeal, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/ComplementaryCurve/IntersectionLocalStructure.lean, line 303. The attribute's comment: “part (2)(c)”.
Stacks 0E38, part (2)(c): a reduced closed subcurve of a one-dimensional equidimensional at-worst-nodal curve is smooth over the base field at every point where it meets the closure of its complement. At such a point the local ring of
Xis reduced with delta invariant one and exactly two minimal primes, and the stalk of the ideal sheaf of the subcurve is one of them; the quotient of such a local ring by a minimal prime is a discrete valuation ring, hence a regular local ring, and over a field regularity with separable residue field is smoothness.
theorem smoothAt_of_mem_support_complementaryCurveIdeal
{k : Type u} [Field k] {X : Scheme.{u}} [X.Over (Spec (.of k))]
[LocallyOfFiniteType (X ↘ Spec (.of k))]
(hX_equidimensional : Equidimensional X)
(hX_dimension : topologicalKrullDim X = 1)
(hX_nodal : HasAtWorstNodalSingularities k X)
(I : X.IdealSheafData) [IsReduced I.subscheme]
(hY_equidimensional : Equidimensional I.subscheme)
(hY_dimension : topologicalKrullDim I.subscheme = 1)
(y : I.subscheme)
(hy : I.subschemeι.base y ∈ ((complementaryCurveIdeal I).support : Set X)) :
InfinitesimalLifting.SmoothAt (I.subschemeι ≫ (X ↘ Spec (.of k))) y
Stacks.Curves.isDiscrete_and_residueField_intersectionWithComplementaryCurve, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/ComplementaryCurve/IntersectionLocalStructure.lean, line 466. The attribute's comment: “part (2)(a)”.
Stacks 0E38, part (2)(a): the scheme-theoretic intersection of a reduced closed subcurve with the closure of its complement is the disjoint union of the spectra of finite separable extensions of the base field. Its underlying space is discrete, so it is the disjoint union of its points; at each point the stalk of the ideal sheaf cutting it out is the maximal ideal of the local ring of
X, so the local ring there is the residue fieldκ(x); and that residue field is a finite separable extension ofk.
theorem isDiscrete_and_residueField_intersectionWithComplementaryCurve
{k : Type u} [Field k] {X : Scheme.{u}} [X.Over (Spec (.of k))]
[LocallyOfFiniteType (X ↘ Spec (.of k))]
(hX_equidimensional : Equidimensional X)
(hX_dimension : topologicalKrullDim X = 1)
(hX_nodal : HasAtWorstNodalSingularities k X)
(I : X.IdealSheafData) [IsReduced I.subscheme]
(hY_equidimensional : Equidimensional I.subscheme)
(hY_dimension : topologicalKrullDim I.subscheme = 1) :
DiscreteTopology ((intersectionWithComplementaryCurveIdeal I).subscheme : Type u) ∧
∀ w : (intersectionWithComplementaryCurveIdeal I).subscheme,
let x := (intersectionWithComplementaryCurveIdeal I).subschemeι.base w
let kToStalk : k →+* X.presheaf.stalk x :=
((Scheme.ΓSpecIso (.of k)).inv ≫ (X ↘ Spec (.of k)).appTop ≫
X.presheaf.germ ⊤ x (by simp)).hom
letI : Algebra k (X.presheaf.stalk x) := kToStalk.toAlgebra
letI : Algebra k (X.residueField x) := ((X.residue x).hom.comp kToStalk).toAlgebra
IdealSheafData.stalk (intersectionWithComplementaryCurveIdeal I) x =
IsLocalRing.maximalIdeal (X.presheaf.stalk x) ∧
Module.Finite k (X.residueField x) ∧
Algebra.IsSeparableExtension k (X.residueField x)
Stacks.Curves.hasAtWorstNodalSingularities_subscheme, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/ComplementaryCurve/IntersectionLocalStructure.lean, line 556. The attribute's comment: “part (1)”.
Stacks 0E38, part (1): a reduced closed subscheme, equidimensional of dimension one, of a one-dimensional equidimensional locally algebraic curve with at-worst-nodal singularities again has at-worst-nodal singularities. At a point where the subcurve meets the closure of its complement it is in fact smooth over the base field, by part (2)(c). At any other point the subcurve agrees with the ambient curve on an open neighbourhood, and the dichotomy "smooth over
kor a node" transports along the two étale morphisms from that open subscheme.
theorem hasAtWorstNodalSingularities_subscheme
{k : Type u} [Field k] {X : Scheme.{u}} [X.Over (Spec (.of k))]
[LocallyOfFiniteType (X ↘ Spec (.of k))]
(hX_equidimensional : Equidimensional X)
(hX_dimension : topologicalKrullDim X = 1)
(hX_nodal : HasAtWorstNodalSingularities k X)
(I : X.IdealSheafData) [IsReduced I.subscheme]
(hY_equidimensional : Equidimensional I.subscheme)
(hY_dimension : topologicalKrullDim I.subscheme = 1) :
letI : I.subscheme.Over (Spec (.of k)) := ⟨I.subschemeι ≫ (X ↘ Spec (.of k))⟩
HasAtWorstNodalSingularities k I.subscheme
Stacks.Curves.isNode_of_mem_intersection_complementaryCurve, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/ComplementaryCurve/IntersectionNodes.lean, line 231. The attribute's comment: “intersection_points_are_nodes”.
Stacks Project, Tag 0E38. Every point where a reduced equidimensional closed subcurve meets the scheme-theoretic closure of its complement, in a one-dimensional equidimensional curve over a field with at worst nodal singularities, is a node of the ambient curve.
theorem isNode_of_mem_intersection_complementaryCurve
{k : Type u} [Field k] {X : Scheme.{u}} [X.Over (Spec (.of k))]
[LocallyOfFiniteType (X ↘ Spec (.of k))]
(hX_equidimensional : Equidimensional X)
(hX_dimension : topologicalKrullDim X = 1)
(hX_nodal : HasAtWorstNodalSingularities k X)
(I : X.IdealSheafData) [IsReduced I.subscheme]
(hY_equidimensional : Equidimensional I.subscheme)
(hY_dimension : topologicalKrullDim I.subscheme = 1) :
let U : X.Opens := ⟨I.supportᶜ, I.support.isClosed.isOpen_compl⟩
∀ y : (I ⊔ U.ι.ker).subscheme, IsNode k X ((I ⊔ U.ι.ker).subschemeι.base y)
Sources
Section53.20 Families of nodal curves#
Section 53.20 of the Stacks Project, Tag 0C58. 12 tags here are carried by 17 declarations of the repository (all in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 0C59, a lemma
Tag 0C59 in the Stacks Project.
Stacks.Curves.hasAtWorstNodalFibresOfDimensionOne_iff, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/NodalFamilyCriterion.lean, line 348. The attribute's comment: “condition (1) is Stacks.Curves.HasAtWorstNodalFibresOfDimensionOne and condition (2) is AlgebraicGeometry.IsAtWorstNodalOfRelativeDimensionOne”.
Stacks Project, Tag 0C59. A morphism of schemes is flat, locally of finite presentation with every nonempty fibre equidimensional of dimension one and with at-worst-nodal singularities exactly when it is syntomic of relative dimension one and the closed subscheme cut out by the first Fitting ideal of its relative differentials is unramified over the base.
Everything except the nodal condition on the fibres is
AlgebraicGeometry.isAtWorstNodalOfRelativeDimensionOne_iff_fibres, which reads that condition as condition (2) of Tag 0C4E; Tag 0C4E (Stacks.Curves.hasAtWorstNodalSingularities_iff_lci_and_unramified_relativeSingularIdeal) applied to a fibre trades the two. Its hypotheses on the fibre are the equidimensionality and the dimension, which both sides of the equivalence provide for a nonempty fibre, and local finite type of the fibre's structure morphism, which follows from local finite presentation off; over an empty fibre condition (2) holds vacuously.
theorem hasAtWorstNodalFibresOfDimensionOne_iff {X S : Scheme.{u}} (f : X ⟶ S) :
HasAtWorstNodalFibresOfDimensionOne f ↔ IsAtWorstNodalOfRelativeDimensionOne f
Tag 0C5A, a definition
Tag 0C5A in the Stacks Project.
AlgebraicGeometry.IsAtWorstNodalOfRelativeDimensionOne, an abbrev in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/F6Rank136/AtWorstNodalRelativeDimensionOne.lean, line 48.
A morphism is at-worst-nodal of relative dimension one if it is syntomic of relative dimension one and its relative singular subscheme is unramified over the base.
public abbrev IsAtWorstNodalOfRelativeDimensionOne {X S : Scheme.{u}} (f : X ⟶ S) : Prop
Tag 0CD7, a lemma
Tag 0CD7 in the Stacks Project.
AlgebraicGeometry.isAtWorstNodalOfRelativeDimensionOne_of_smoothOfRelativeDimension, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/F6Rank136/SmoothIsNodal.lean, line 108.
Stacks Project, Tag 0CD7. A morphism of schemes smooth of relative dimension one is at-worst-nodal of relative dimension one: it is syntomic with one-dimensional fibres, and its relative singular subscheme is empty, hence unramified over the base.
public theorem isAtWorstNodalOfRelativeDimensionOne_of_smoothOfRelativeDimension
{X S : Scheme.{u}} (f : X ⟶ S) [SmoothOfRelativeDimension 1 f] :
IsAtWorstNodalOfRelativeDimensionOne f
Tag 0C5B, a lemma
Tag 0C5B in the Stacks Project.
AlgebraicGeometry.IsAtWorstNodalOfRelativeDimensionOne.of_isPullback, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/NodalFamilyBaseChange.lean, line 74.
Let
f : X ⟶ Sbe at-worst-nodal of relative dimension one. Then so is any base changef' : X' ⟶ S'off, presented by an arbitrary cartesian square.
public theorem IsAtWorstNodalOfRelativeDimensionOne.of_isPullback {X' X S' S : Scheme.{u}}
{g' : X' ⟶ X} {f' : X' ⟶ S'} {f : X ⟶ S} {g : S' ⟶ S} (h : IsPullback g' f' f g)
(hf : IsAtWorstNodalOfRelativeDimensionOne f) :
IsAtWorstNodalOfRelativeDimensionOne f'
AlgebraicGeometry.isAtWorstNodalOfRelativeDimensionOne_isStableUnderBaseChange, an instance in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/NodalLocality.lean, line 101.
Stacks 0C5B. A base change of a morphism which is at-worst-nodal of relative dimension one is again at-worst-nodal of relative dimension one.
public instance isAtWorstNodalOfRelativeDimensionOne_isStableUnderBaseChange :
MorphismProperty.IsStableUnderBaseChange
(@IsAtWorstNodalOfRelativeDimensionOne.{u} : MorphismProperty Scheme.{u})
Tag 0DSC, a lemma
Tag 0DSC in the Stacks Project.
AlgebraicGeometry.nodalLocus_isGreatest, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/NodalLocus.lean, line 433. The attribute's comment: “the maximal open subscheme”.
Stacks Project, Tag 0DSC. For a morphism of schemes which is flat and locally of finite presentation there is a maximal open subscheme of its source on which it is at-worst-nodal of relative dimension one: the restriction of the morphism to
nodalLocus fis at-worst-nodal of relative dimension one, and every open subscheme with that property is contained innodalLocus f.
theorem nodalLocus_isGreatest {X S : Scheme.{u}} (f : X ⟶ S) [Flat f]
[LocallyOfFinitePresentation f] :
IsGreatest {U : X.Opens | IsAtWorstNodalOfRelativeDimensionOne (U.ι ≫ f)} (nodalLocus f)
AlgebraicGeometry.nodalLocus_baseChange, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/NodalLocus.lean, line 443. The attribute's comment: “compatibility with base change”.
Stacks Project, Tag 0DSC. Formation of the maximal at-worst-nodal open subscheme commutes with arbitrary base change: in a cartesian square with right edge a flat morphism
flocally of finite presentation and base edgeg, the nodal locus of the base changef'offis the inverse image of the nodal locus off.
theorem nodalLocus_baseChange {X' X S' S : Scheme.{u}} (g' : X' ⟶ X) (f' : X' ⟶ S') (f : X ⟶ S)
(g : S' ⟶ S) (sq : IsPullback g' f' f g) [Flat f] [LocallyOfFinitePresentation f] :
nodalLocus f' = g' ⁻¹ᵁ nodalLocus f
Tag 0C5C, a lemma
Tag 0C5C in the Stacks Project.
AlgebraicGeometry.isAtWorstNodalOfRelativeDimensionOne_comp_etale, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/NodalEtaleComposition.lean, line 152.
Stacks Project, Tag 0C5C. Precomposing an at-worst-nodal morphism of relative dimension one with an étale morphism again gives an at-worst-nodal morphism of relative dimension one.
public theorem isAtWorstNodalOfRelativeDimensionOne_comp_etale {X Y S : Scheme.{u}}
(f : X ⟶ S) (g : Y ⟶ X) [Etale g] (hf : IsAtWorstNodalOfRelativeDimensionOne f) :
IsAtWorstNodalOfRelativeDimensionOne (g ≫ f)
Tag 0CD8, a lemma
Tag 0CD8 in the Stacks Project.
AlgebraicGeometry.isAtWorstNodalOfRelativeDimensionOne_comp_etale_base, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/NodalLocality.lean, line 193.
Stacks 0CD8. Composing a morphism which is at-worst-nodal of relative dimension one with an étale morphism of the base again gives a morphism which is at-worst-nodal of relative dimension one.
public theorem isAtWorstNodalOfRelativeDimensionOne_comp_etale_base {X S' S : Scheme.{u}}
(f : X ⟶ S') (g : S' ⟶ S) [Etale g] (hf : IsAtWorstNodalOfRelativeDimensionOne f) :
IsAtWorstNodalOfRelativeDimensionOne (f ≫ g)
Tag 0C5D, a lemma
Tag 0C5D in the Stacks Project.
AlgebraicGeometry.isAtWorstNodalOfRelativeDimensionOne_iff_of_etaleCovering, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/NodalEtaleLocalOnSource.lean, line 188.
Stacks Project, Tag 0C5D. Let
f : X ⟶ Sbe a morphism of schemes and let{U i ⟶ X}be an étale covering. The following are equivalent:
fis at-worst-nodal of relative dimension one;- each
U i ⟶ Sis at-worst-nodal of relative dimension one.In other words, being at-worst-nodal of relative dimension one is étale local on the source.
public theorem isAtWorstNodalOfRelativeDimensionOne_iff_of_etaleCovering {X S : Scheme.{u}}
(f : X ⟶ S) {ι : Type*} {U : ι → Scheme.{u}} (g : ∀ i, U i ⟶ X)
(hg : Presieve.ofArrows U g ∈ Scheme.etalePrecoverage X) :
IsAtWorstNodalOfRelativeDimensionOne f ↔
∀ i, IsAtWorstNodalOfRelativeDimensionOne (g i ≫ f)
AlgebraicGeometry.isAtWorstNodalOfRelativeDimensionOne_isLocalAtSource_etale, an instance in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/NodalLocality.lean, line 287.
Stacks 0C5D. Being at-worst-nodal of relative dimension one is étale local on the source: a morphism has the property exactly when all of its restrictions to the members of an étale covering of its source do.
public instance isAtWorstNodalOfRelativeDimensionOne_isLocalAtSource_etale :
MorphismProperty.IsLocalAtSource
(@IsAtWorstNodalOfRelativeDimensionOne.{u} : MorphismProperty Scheme.{u})
Scheme.etalePrecoverage
Tag 0C5E, a lemma
Tag 0C5E in the Stacks Project.
AlgebraicGeometry.isAtWorstNodalOfRelativeDimensionOne_isLocalAtTarget_fpqc, an instance in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/NodalLocality.lean, line 118.
Stacks 0C5E. Being at-worst-nodal of relative dimension one is fpqc local on the target: a morphism has the property exactly when all of its base changes along the members of an fpqc covering of its target do.
public instance isAtWorstNodalOfRelativeDimensionOne_isLocalAtTarget_fpqc :
MorphismProperty.IsLocalAtTarget
(@IsAtWorstNodalOfRelativeDimensionOne.{u} : MorphismProperty Scheme.{u})
Scheme.fpqcPrecoverage
Tag 0C5F, a lemma
Tag 0C5F in the Stacks Project.
AlgebraicGeometry.exists_isAtWorstNodalOfRelativeDimensionOne_baseChange_of_limitBaseChange, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/F6Rank136/AtWorstNodalDescentAlongLimit.lean, line 291.
Stacks Project, Tag 0C5F. Let a scheme be the limit of a cofiltered inverse system of schemes with affine transition morphisms, and let
f₀ : X₀ ⟶ Y₀be a morphism locally of finite presentation over a stage, with that stage and both ofX₀,Y₀quasi-compact and quasi-separated. If the base change off₀to the limit is at-worst-nodal of relative dimension one, then its base change to some later stage is at-worst-nodal of relative dimension one.
public theorem exists_isAtWorstNodalOfRelativeDimensionOne_baseChange_of_limitBaseChange
{I : Type u} [Category.{u} I] (D : I ⥤ Scheme.{u}) (c : Cone D) (i₀ : I)
(X₀ Y₀ : Over (D.obj i₀)) (f₀ : X₀ ⟶ Y₀) [IsCofiltered I]
[∀ {i j : I} (g : i ⟶ j), IsAffineHom (D.map g)]
[CompactSpace (D.obj i₀)] [QuasiSeparatedSpace (D.obj i₀)]
[CompactSpace X₀.left] [QuasiSeparatedSpace X₀.left]
[CompactSpace Y₀.left] [QuasiSeparatedSpace Y₀.left]
(hf₀ : LocallyOfFinitePresentation f₀.left) (hc : IsLimit c)
(hf : IsAtWorstNodalOfRelativeDimensionOne
((Over.pullback (c.π.app i₀)).map f₀).left) :
∃ (i : I) (g : i ⟶ i₀), IsAtWorstNodalOfRelativeDimensionOne
((Over.pullback (D.map g)).map f₀).left
Tag 0CBX, a lemma
Tag 0CBX in the Stacks Project.
Stacks.Curves.exists_algEquiv_adicCompletion_quotient_mvPowerSeries_of_isSplitNode, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/NodalFamilyCompletedLocalRing.lean, line 2062.
The completion at a split node of a flat, locally finite-type family over a Noetherian local base is a nodal smoothing
A⟦x,y⟧/(xy-h)over the completed base ringA.
theorem exists_algEquiv_adicCompletion_quotient_mvPowerSeries_of_isSplitNode
{T S : Scheme.{u}} (f : T ⟶ S) (t : T)
(hflat : AlgebraicGeometry.IsFlatAt f.toLRSHom.toShHom t)
[IsNoetherianRing (S.presheaf.stalk (f t))]
[LocallyOfFiniteType f]
(hnode : letI := f.fiberOverSpecResidueField (f t)
IsSplitNode (S.residueField (f t)) (f.fiber (f t)) (f.asFiber t)) :
let R := S.presheaf.stalk (f t)
let Q := T.presheaf.stalk t
let A := AdicCompletion (maximalIdeal R) R
let B := AdicCompletion (maximalIdeal Q) Q
let φ : A →+* B := adicCompletionMap (f.stalkMap t).hom
(maximalIdeal R) (maximalIdeal Q)
(map_maximalIdeal_le (f.stalkMap t).hom)
letI : Algebra A B := φ.toAlgebra
∃ h : A, h ∈ maximalIdeal A ∧
Nonempty ((MvPowerSeries (Fin 2) A ⧸
Ideal.span {MvPowerSeries.X 0 * MvPowerSeries.X 1 - MvPowerSeries.C h}) ≃ₐ[A] B)
Tag 0GKA, a lemma
Tag 0GKA in the Stacks Project.
Stacks.AlgebraicGeometry.NodalFamilyCohomology.isIso_c_and_isIso_c_of_isPullback_of_isAtWorstNodal, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/NodalFamilyStructureSheafCohomology.lean, line 266. The attribute's comment: “(a): f_*𝒪_X = 𝒪_S, as invertibility of f.c, and the same for every base change, stated for every cartesian square over S”.
[Stacks, Tag 0GKA], part (a). Let
f : X ⟶ Sbe proper and at-worst-nodal of relative dimension one, with geometrically connected fibres. Thenf_*𝒪_X = 𝒪_S, i.e. the comparisonf.c : 𝒪_S ⟶ f_*𝒪_Xis invertible, and this holds after any base change: for every cartesian squareX' ⟶ X,f' : X' ⟶ S',S' ⟶ S, the comparisonf'.cis invertible.This is [Stacks, Tag 0E0L]:
fis flat and locally of finite presentation, being syntomic, and geometrically reduced bygeometricallyReduced_of_isAtWorstNodal.
theorem isIso_c_and_isIso_c_of_isPullback_of_isAtWorstNodal (f : X ⟶ S) [IsProper f]
[GeometricallyConnected f] (hf : IsAtWorstNodalOfRelativeDimensionOne f) :
IsIso f.c ∧ ∀ {X' S' : Scheme.{u}} {g : S' ⟶ S} {g' : X' ⟶ X} {f' : X' ⟶ S'},
IsPullback g' f' f g → IsIso f'.c
Stacks.AlgebraicGeometry.NodalFamilyCohomology.isFiniteLocallyFree_rightDerived_one_and_isIso_baseChange, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/NodalFamilyStructureSheafCohomology.lean, line 319. The attribute's comment: “(b): R¹f_*𝒪_X is finite locally free, and its formation commutes with any base change, read over every quasi-compact quasi-separated open of the base, where the base-change map of Tag 0EX3 is defined”.
[Stacks, Tag 0GKA], part (b). Let
f : X ⟶ Sbe proper and at-worst-nodal of relative dimension one, with geometrically connected fibres. ThenR¹f_*𝒪_Xis a finite locally free𝒪_S-module, and its formation commutes with any base change: over every quasi-compact and quasi-separated openV ⊆ S(for instance every affine open, orSitself whenSis quasi-compact and quasi-separated), for every cartesian squareX'' ⟶ f⁻¹(V),X'' ⟶ Y'',Y'' ⟶ V, the canonical maph^* R¹(f ∣_ V)_*𝒪 ⟶ R¹f''_* (h')^*𝒪of [Stacks, Tag 0EX3] is an isomorphism.The base-change map of this library,
Stacks.AlgebraicGeometry.TopDegreeBaseChange.topDirectImageBaseChangeMap, is defined over a quasi-compact quasi-separated base; commutation with base change is local on the base, so asking it over every such open ofSis the source's assertion.
theorem isFiniteLocallyFree_rightDerived_one_and_isIso_baseChange (f : X ⟶ S) [IsProper f]
[GeometricallyConnected f] (hf : IsAtWorstNodalOfRelativeDimensionOne f) :
SheafOfModules.IsFiniteLocallyFree.{u, u, u}
(((Scheme.Modules.pushforward f).rightDerived 1).obj
(SheafOfModules.unit X.ringCatSheaf)) ∧
∀ (V : S.Opens) [CompactSpace V] [QuasiSeparatedSpace V] {X'' Y'' : Scheme.{u}}
(h' : X'' ⟶ f ⁻¹ᵁ V) (f'' : X'' ⟶ Y'') (h : Y'' ⟶ V)
(sq : IsPullback h' f'' (f ∣_ V) h),
IsIso (@Stacks.AlgebraicGeometry.TopDegreeBaseChange.topDirectImageBaseChangeMap _ _
(topDegreeSituation f hf V) (SheafOfModules.unit (f ⁻¹ᵁ V).toScheme.ringCatSheaf)
(Stacks.AlgebraicGeometry.AffineQcohPushforward.isQuasicoherent_unit _) h' f'' h
(Stacks.AlgebraicGeometry.TopDegreeBaseChange.toShHom_comm_of_isPullback
(S := topDegreeSituation f hf V) h' f'' h sq))
Stacks.AlgebraicGeometry.NodalFamilyCohomology.isZero_rightDerived_of_two_le, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/NodalFamilyStructureSheafCohomology.lean, line 342. The attribute's comment: “(c): Rᵠf_*𝒪_X = 0 for q ≥ 2”.
[Stacks, Tag 0GKA], part (c). Let
f : X ⟶ Sbe proper and at-worst-nodal of relative dimension one, with geometrically connected fibres. ThenRᵠf_*𝒪_X = 0for everyq ≥ 2.The fibres have dimension one, so this is [Stacks, Tag 0E7D] at
d = 1.
theorem isZero_rightDerived_of_two_le (f : X ⟶ S) [IsProper f] [GeometricallyConnected f]
(hf : IsAtWorstNodalOfRelativeDimensionOne f) (q : ℕ) (hq : 2 ≤ q) :
IsZero (((Scheme.Modules.pushforward f).rightDerived q).obj
(SheafOfModules.unit X.ringCatSheaf))
Sources
Section53.21 Étale local structure of nodal families#
Section 53.21 of the Stacks Project, Tag 0H8M. 1 tag here is carried by 1 declaration of the repository (in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 0CBY, a lemma
Tag 0CBY in the Stacks Project.
Stacks.NodalEtaleLocalStructure.nonempty_standardNodalDiagram_of_isAtWorstNodal, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/NodalEtaleLocalStructureAssembly.lean, line 348. The attribute's comment: “the whole statement. The diagram is the structure Stacks.NodalEtaleLocalStructure.StandardNodalDiagram, whose fields are the tag's four morphisms with the three etaleness assertions, the commutativity of the left and the middle square, the cartesianness of the right-hand square over the standard nodal family Spec Z[u,v,a]/(uv-a) -> Spec Z[a], and the point of U over x. The singular point of the fibre is spelled as the failure of smoothness of the fibre X_s over kappa(s) at x; the equivalent spelling as a point of the relative singular subscheme Sing(f), which is the one the source's own first step carries, is nonempty_standardNodalDiagram_of_mem_relativeSingular, and the two agree by mem_relativeSingular_iff_not_smoothAt_fiber ([Stacks, Tags 0C3I and 0C3K])”.
Stacks Project, Tag 0CBY. Let
f : X ⟶ Sbe at-worst-nodal of relative dimension one and letxbe a point ofXat which the fibreX_sthrough it is singular. Then there is a commutative diagramin whichX ←—— U ——→ W ——→ Spec ℤ[u, v, a]/(uv - a) ↓ ↓ ↓ ↓ S ←———————— V ——————————→ Spec ℤ[a]U ⟶ X,V ⟶ SandU ⟶ Ware étale, the right-hand square is cartesian, and some point ofUmaps tox. The diagram is packaged asStacks.NodalEtaleLocalStructure.StandardNodalDiagram.The whole content is
nonempty_standardNodalDiagram_of_mem_relativeSingular, which is the same statement with the singular point read on the relative singular subschemeSing(f); the two spellings agree bymem_relativeSingular_iff_not_smoothAt_fiber, which is [Stacks, Tag 0C3K] on a fibre.
public theorem nonempty_standardNodalDiagram_of_isAtWorstNodal {X S : Scheme.{u}} (f : X ⟶ S)
(hf : IsAtWorstNodalOfRelativeDimensionOne f) {x : X}
(hxsing : ¬ InfinitesimalLifting.SmoothAt (f.fiberToSpecResidueField (f x))
(f.asFiber x)) :
Nonempty (StandardNodalDiagram f x)
Sources
Section53.22 More vanishing results#
Section 53.22 of the Stacks Project, Tag 0E39. 7 tags here are carried by 9 declarations of the repository (all in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 0E3A, a lemma
Tag 0E3A in the Stacks Project.
AlgebraicGeometry.CohenMacaulayCurveSituation.invertibleCurveDegree_le_and_lt_or_nonempty_iso_of_not_isZero_cohomology_idealTwist, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/VanishingResults/IdealTwistVanishing.lean, line 441.
Stacks Project, Tag 0E3A. In Situation [Stacks, Tag 0B5D] assume
Xis integral of genusg. Letℒbe an invertible𝒪_X-module and letZ ⊆ Xbe a closed subscheme of dimension at most zero with ideal sheafℐ. IfH^1(X, ℐℒ) ≠ 0, then
deg(ℒ) ≤ 2g - 2 + deg(Z),with strict inequality unless
ℐℒ ≅ ω_X. Hereℐℒisℒ ⊗ ℐ,deg(Z) = dim_k Γ(Z, 𝒪_Z)andω_Xis the dualizing sheaf of [Stacks, Tag 0BS2].
theorem invertibleCurveDegree_le_and_lt_or_nonempty_iso_of_not_isZero_cohomology_idealTwist
[IsIntegral S.X] (L : S.X.Modules)
[SheafOfModules.IsInvertible S.X.presheaf S.X.ringCatSheaf.2 L]
(Z : S.X.IdealSheafData) (hZ : topologicalKrullDim Z.subscheme ≤ 0)
(h : ¬ IsZero (cohomologyOverField S.k S.f (S.idealTwist Z L) 1)) :
invertibleCurveDegree S.k S.f (le_of_eq S.dimension_one) L ≤
2 * (genus S.f : ℤ) - 2 + (S.subschemeDegree Z : ℤ) ∧
(invertibleCurveDegree S.k S.f (le_of_eq S.dimension_one) L <
2 * (genus S.f : ℤ) - 2 + (S.subschemeDegree Z : ℤ) ∨
Nonempty (S.idealTwist Z L ≅ Stacks.Duality.dualizingSheafOverField S.f))
Tag 0E3B, a lemma
Tag 0E3B in the Stacks Project.
AlgebraicGeometry.CohenMacaulayCurveSituation.isZero_cohomology_one_idealTwist_of_lt, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/VanishingResults/IdealTwistSections.lean, line 62. The attribute's comment: “the vanishing of H^1(X, IL)”.
[Stacks, Tag 0E3B], the vanishing. If
deg(ℒ) > 2g - 2 + deg(Z)thenH¹(X, ℐℒ) = 0: a nonzeroH¹(X, ℐℒ)would forcedeg(ℒ) ≤ 2g - 2 + deg(Z)by [Stacks, Tag 0E3A].
theorem isZero_cohomology_one_idealTwist_of_lt (hZ : topologicalKrullDim Z.subscheme ≤ 0)
(hdeg : 2 * (genus S.f : ℤ) - 2 + (S.subschemeDegree Z : ℤ) <
invertibleCurveDegree S.k S.f (le_of_eq S.dimension_one) L) :
IsZero (cohomologyOverField S.k S.f (S.idealTwist Z L) 1)
AlgebraicGeometry.CohenMacaulayCurveSituation.not_isZero_cohomology_zero_idealTwist_or_of_lt, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/VanishingResults/IdealTwistSections.lean, line 73. The attribute's comment: “possibilities (1) and (2)”.
[Stacks, Tag 0E3B], the alternative. If
deg(ℒ) > 2g - 2 + deg(Z)then eitherH⁰(X, ℐℒ) ≠ 0, org = 0anddeg(ℒ) = deg(Z) - 1. WhenH⁰(X, ℐℒ) = 0the Euler characteristicχ(X, ℐℒ) = deg(ℒ) + 1 - g - deg(Z)vanishes,H¹(X, ℐℒ)vanishing as well.
theorem not_isZero_cohomology_zero_idealTwist_or_of_lt (hZ : topologicalKrullDim Z.subscheme ≤ 0)
(hdeg : 2 * (genus S.f : ℤ) - 2 + (S.subschemeDegree Z : ℤ) <
invertibleCurveDegree S.k S.f (le_of_eq S.dimension_one) L) :
¬ IsZero (cohomologyOverField S.k S.f (S.idealTwist Z L) 0) ∨
(genus S.f = 0 ∧ invertibleCurveDegree S.k S.f (le_of_eq S.dimension_one) L =
(S.subschemeDegree Z : ℤ) - 1)
AlgebraicGeometry.CohenMacaulayCurveSituation.exists_isIso_projectiveLine_of_genus_eq_zero, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/VanishingResults/IdealTwistSections.lean, line 104. The attribute's comment: “in case (2) with Z empty, X is P^1_k and L corresponds to O(-1)”.
[Stacks, Tag 0E3B], case (2) with
Z = ∅. Ifg = 0anddeg(ℒ) = -1, thenX ≅ 𝐏¹_koverk, and under this isomorphismℒ^{⊗ -1}is the pullback of𝒪(1), i.e.ℒcorresponds to𝒪_{𝐏¹}(-1). The invertible moduleℒ^{⊗ -1}has degree one, so a basis of its two-dimensional space of global sections defines an isomorphismX ⟶ 𝐏¹_k([Stacks, Tag 0C6T]) along which𝒪(1)pulls back toℒ^{⊗ -1}.
theorem exists_isIso_projectiveLine_of_genus_eq_zero
(hgenus : genus S.f = 0)
(hdeg : invertibleCurveDegree S.k S.f (le_of_eq S.dimension_one) L = -1) :
∃ p : S.X ⟶ projectiveSpaceOver 1 (Spec (.of S.k)),
IsIso p ∧
p ≫ Limits.pullback.fst (Limits.terminal.from (Spec (.of S.k)))
(Limits.terminal.from (projectiveSpaceAtUniverse.{u} 1)) = S.f ∧
Nonempty ((Scheme.Modules.pullback
(p ≫ projectiveSpaceOver.toIntegralAtUniverse 1 (Spec (.of S.k)))).obj
(Stacks.AmpleProjectiveImmersion.twistingSheafAtUniverse.{u} 1) ≅
tensorPowerModule L (-1))
Tag 0E3C, a lemma
Tag 0E3C in the Stacks Project.
AlgebraicGeometry.CohenMacaulayCurveSituation.isGeneratedByGlobalSections_of_two_mul_genus_le, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/VanishingResults/GlobalGenerationLargeDegree.lean, line 140.
Stacks Project, Tag 0E3C. In Situation [Stacks, Tag 0B5D] assume
Xis integral of genusg, and letℒbe an invertible𝒪_X-module. Ifdeg(ℒ) ≥ 2g, thenℒis generated by its global sections.
theorem isGeneratedByGlobalSections_of_two_mul_genus_le [IsIntegral S.X] (L : S.X.Modules)
[SheafOfModules.IsInvertible S.X.presheaf S.X.ringCatSheaf.2 L]
(hL : 2 * (genus S.f : ℤ) ≤ invertibleCurveDegree S.k S.f (le_of_eq S.dimension_one) L) :
SheafOfModules.IsGeneratedByGlobalSections L
Tag 0E3D, a lemma
Tag 0E3D in the Stacks Project.
AlgebraicGeometry.CohenMacaulayCurveSituation.isGeneratedByGlobalSections_and_surjective_subschemeRestrictionπ, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/VanishingResults/GlobalGenerationLargeDegree.lean, line 306.
Stacks Project, Tag 0E3D. In Situation [Stacks, Tag 0B5D] assume
Xis integral of genusg, letℒbe an invertible𝒪_X-module, and letZ ⊆ Xbe a nonempty0-dimensional closed subscheme. Ifdeg(ℒ) ≥ 2g - 1 + deg(Z), thenℒis generated by its global sections andH⁰(X, ℒ) ⟶ H⁰(X, ℒ|_Z)is surjective.Here
deg(Z) = dim_k Γ(Z, 𝒪_Z)andℒ|_Z = ℒ ⊗ i_* 𝒪_Z. Global generation is [Stacks, Tag 0E3C], asdeg(Z) ≥ 1; the surjectivity follows fromH¹(X, ℐ_Z ℒ) = 0, which is [Stacks, Tag 0E3A] sincedeg(ℒ) > 2g - 2 + deg(Z).
theorem isGeneratedByGlobalSections_and_surjective_subschemeRestrictionπ [IsIntegral S.X]
(L : S.X.Modules) [SheafOfModules.IsInvertible S.X.presheaf S.X.ringCatSheaf.2 L]
(Z : S.X.IdealSheafData) (hZ : topologicalKrullDim Z.subscheme ≤ 0)
(hZne : Nonempty Z.subscheme)
(hL : 2 * (genus S.f : ℤ) - 1 + (S.subschemeDegree Z : ℤ) ≤
invertibleCurveDegree S.k S.f (le_of_eq S.dimension_one) L) :
SheafOfModules.IsGeneratedByGlobalSections L ∧
Function.Surjective (cohomologyOverFieldMap S.k S.f (S.subschemeRestrictionπ Z L) 0)
Tag 0H2V, a lemma
Tag 0H2V in the Stacks Project.
AlgebraicGeometry.CohenMacaulayCurveSituation.isRelativelyVeryAmple_of_two_mul_genus_add_one_le, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/VanishingResults/VeryAmpleLargeDegree.lean, line 264.
Invertible modules of degree at least
2g + 1are very ample. In Situation [Stacks, Tag 0B5D] — a proper one-dimensional schemeXover a fieldkwithH⁰(X, 𝒪_X) = k— assumeXgeometrically integral overkof genusg, and letℒbe an invertible𝒪_X-module. Ifdeg(ℒ) ≥ 2g + 1, thenℒis very ample.
theorem isRelativelyVeryAmple_of_two_mul_genus_add_one_le
[AlgebraicGeometry.GeometricallyIntegral S.f] (L : S.X.Modules)
[SheafOfModules.IsInvertible S.X.presheaf S.X.ringCatSheaf.2 L]
(hL : 2 * (genus S.f : ℤ) + 1 ≤
invertibleCurveDegree S.k S.f (le_of_eq S.dimension_one) L) :
Stacks.Tag01VMVeryAmple.IsRelativelyVeryAmple S.f L
Tag 0E3E, a lemma
Tag 0E3E in the Stacks Project.
AlgebraicGeometry.exists_subcurve_invertibleCurveDegree_le_of_not_isZero_cohomology_idealTwist, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/VanishingResults/SubcurveDegreeBound.lean, line 452.
Stacks Project, Tag 0E3E. Let
kbe a field andXa proper scheme overkwhich is reduced and of dimension1. Letℒbe an invertible𝒪_X-module andZ ⊆ Xa closed subscheme of dimension at most zero with ideal sheafℐ. IfH¹(X, ℐℒ) ≠ 0, then there is a reduced connected closed subschemeY ⊆ Xof dimension1with
deg(ℒ|_Y) ≤ -2 χ(Y, 𝒪_Y) + deg(Z ∩ Y),where
Z ∩ Yis the scheme-theoretic intersectionZ ⊔ Yanddeg(Z ∩ Y) = dim_k Γ(Z ∩ Y, 𝒪). Hereℐℒisℒ ⊗ ℐ, as in [Stacks, Tag 0E3A]; the source's hypothesis thatXis connected is not needed.A nonzero map
ℐℒ ⟶ ω_Xfrom duality ([Stacks, Tag 0BS2]) kills nothing more than the zero module,Xbeing reduced, andAlgebraicGeometry.exists_le_invertibleCurveDegree_le_of_ne_zeroapplies withT₀ = X.
theorem exists_subcurve_invertibleCurveDegree_le_of_not_isZero_cohomology_idealTwist
{k : Type u} [Field k] (f : X ⟶ Spec (.of k)) [IsProper f] [IsReduced X]
(hdim : topologicalKrullDim X = 1) (L : X.Modules)
[hL : SheafOfModules.IsInvertible X.presheaf X.ringCatSheaf.2 L]
(Z : X.IdealSheafData) (hZ : topologicalKrullDim Z.subscheme ≤ 0)
(h : ¬ IsZero (cohomologyOverField k f
((((Stacks.SheafOfModules.Tensor.sheafTensor.{u, u, u, u, u}
⟨X.toRingedSpace.presheaf, X.toRingedSpace.IsSheaf⟩).obj L).obj
(Stacks.ClosedImmersion.idealSheaf Z.subschemeι.toLRSHom.toShHom))) 1)) :
∃ (Y : X.IdealSheafData) (_ : IsReduced Y.subscheme) (_ : ConnectedSpace Y.subscheme)
(hY : topologicalKrullDim Y.subscheme = 1),
letI := Stacks.AlgebraicGeometry.Tag09NY.isInvertible_modulePullback Y.subschemeι L hL
letI : Algebra k Γ((Z ⊔ Y).subscheme, ⊤) :=
((Scheme.ΓSpecIso (.of k)).inv ≫ ((Z ⊔ Y).subschemeι ≫ f).appTop).hom.toAlgebra
invertibleCurveDegree k (Y.subschemeι ≫ f) hY.le
((Scheme.Modules.pullback Y.subschemeι).obj L) ≤
-2 * (∑ᶠ n : ℕ, (-1 : ℤ) ^ n * (Module.finrank k (cohomologyOverField k
(Y.subschemeι ≫ f) (SheafOfModules.unit Y.subscheme.ringCatSheaf) n) : ℤ)) +
(Module.finrank k Γ((Z ⊔ Y).subscheme, ⊤) : ℤ)
Tag 0E3F, a lemma
Tag 0E3F in the Stacks Project.
AlgebraicGeometry.isGeneratedByGlobalSections_of_forall_subcurve, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/VanishingResults/SubcurveFieldExtension.lean, line 557.
Stacks Project, Tag 0E3F. Let
kbe a field andXa proper scheme overkwhich is reduced and of dimension1, and letℒbe an invertible𝒪_X-module such thatdeg(ℒ|_Y) ≥ 2 dim_k H¹(Y, 𝒪_Y)for every reduced connected closed subschemeY ⊆ Xof dimension1. Thenℒis globally generated. The source's hypothesis thatXis connected is not needed.As
h⁰(Y, 𝒪_Y) ≥ 1, the bound gives-2 χ(Y, 𝒪_Y) < deg(ℒ|_Y)andh¹(Y, 𝒪_Y) < deg(ℒ|_Y) + χ(Y, 𝒪_Y), andAlgebraicGeometry.isGeneratedByGlobalSections_of_forall_subcurve_ltapplies.
theorem isGeneratedByGlobalSections_of_forall_subcurve (f : X ⟶ Spec (.of k)) [IsProper f]
[IsReduced X] (hdim : topologicalKrullDim X = 1) (L : X.Modules)
[hL : SheafOfModules.IsInvertible X.presheaf X.ringCatSheaf.2 L]
(h : ∀ (Y : X.IdealSheafData) [IsReduced Y.subscheme] [ConnectedSpace Y.subscheme]
(hY : topologicalKrullDim Y.subscheme = 1),
letI := Stacks.AlgebraicGeometry.Tag09NY.isInvertible_modulePullback Y.subschemeι L hL
2 * (Module.finrank k (cohomologyOverField k (Y.subschemeι ≫ f)
(SheafOfModules.unit Y.subscheme.ringCatSheaf) 1) : ℤ) ≤
invertibleCurveDegree k (Y.subschemeι ≫ f) hY.le
((Scheme.Modules.pullback Y.subschemeι).obj L)) :
_root_.SheafOfModules.IsGeneratedByGlobalSections L
Sources
Section53.23 Contracting rational tails#
Section 53.23 of the Stacks Project, Tag 0E3G. 6 tags here are carried by 25 declarations of the repository (all in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 0E3H, an example
Tag 0E3H in the Stacks Project.
Stacks.Curves.isProper_complementaryCurve, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/CanonicalContraction/ContractedCurve.lean, line 86. The attribute's comment: “complementary_curve_is_proper”.
Stacks 0E3H. The scheme-theoretic closure of the complement of a closed subscheme of a proper scheme over a field is again proper over that field. For a rational tail this is the assertion that
X'is proper overk; no rational-tail hypothesis is needed for it.
theorem isProper_complementaryCurve
(k : Type u) [Field k] (X : Scheme.{u}) [X.Over (Spec (.of k))]
[IsProper (X ↘ Spec (.of k))] (C : X.IdealSheafData) :
IsProper (complementaryCurveι C ≫ (X ↘ Spec (.of k)))
Stacks.Curves.topologicalKrullDim_complementaryCurve, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/CanonicalContraction/ContractedCurve.lean, line 104. The attribute's comment: “complementary_curve_has_dimension_one”.
Stacks 0E3H. The scheme-theoretic closure
X'of the complement of a rational tail of a proper one-dimensional curve over a field with only constant global functions is again of dimension one.
theorem topologicalKrullDim_complementaryCurve
(k : Type u) [Field k] (X : Scheme.{u}) [X.Over (Spec (.of k))]
[IsProper (X ↘ Spec (.of k))]
(hdim : topologicalKrullDim X = 1)
[IsIso ((Scheme.ΓSpecIso (.of k)).inv ≫ (X ↘ Spec (.of k)).appTop)]
(C : X.IdealSheafData) (hC : IsRationalTail k X C) :
topologicalKrullDim (complementaryCurve C) = 1
Stacks.Curves.isIso_globalSections_complementaryCurve, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/CanonicalContraction/ContractedCurve.lean, line 179. The attribute's comment: “complementary_curve_has_constant_global_functions”.
Stacks 0E3H. The scheme-theoretic closure
X'of the complement of a rational tail of a proper one-dimensional nodal curve over a field with only constant global functions again has only constant global functions:H⁰(X', 𝒪_{X'}) = k.
theorem isIso_globalSections_complementaryCurve
(k : Type u) [Field k] (X : Scheme.{u}) [X.Over (Spec (.of k))]
[IsProper (X ↘ Spec (.of k))]
(hdim : topologicalKrullDim X = 1)
[IsIso ((Scheme.ΓSpecIso (.of k)).inv ≫ (X ↘ Spec (.of k)).appTop)]
(hnodal : HasAtWorstNodalSingularities k X)
(C : X.IdealSheafData) (hC : IsRationalTail k X C) :
IsIso ((Scheme.ΓSpecIso (.of k)).inv ≫
(complementaryCurveι C ≫ (X ↘ Spec (.of k))).appTop)
Stacks.Curves.existsUnique_contractionOfRationalTail, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/CanonicalContraction/Existence.lean, line 195. The attribute's comment: “canonical_contraction”.
Stacks 0E3H. A rational tail of a proper one-dimensional nodal curve over a field with only constant global functions admits exactly one contraction onto the scheme-theoretic closure of its complement.
theorem existsUnique_contractionOfRationalTail
(k : Type u) [Field k] (X : Scheme.{u}) [X.Over (Spec (.of k))]
[IsProper (X ↘ Spec (.of k))]
(hdim : topologicalKrullDim X = 1)
[IsIso ((Scheme.ΓSpecIso (.of k)).inv ≫
(X ↘ Spec (.of k)).appTop)]
(hnodal : HasAtWorstNodalSingularities k X)
(C : X.IdealSheafData)
(hC : IsRationalTail k X C) :
∃! c : X ⟶ complementaryCurve C, IsContractionOfRationalTail hC c
Stacks.Curves.isIso_structureSheaf_to_pushforward_canonicalContraction, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/CanonicalContraction/Existence.lean, line 246. The attribute's comment: “pushforward_structure_sheaf”.
Stacks 0E3H. The canonical contraction
c : X ⟶ X'of a rational tail induces an isomorphism𝒪_{X'} ⟶ c_*𝒪_Xof sheaves of rings.
theorem isIso_structureSheaf_to_pushforward_canonicalContraction
(k : Type u) [Field k] (X : Scheme.{u}) [X.Over (Spec (.of k))]
[IsProper (X ↘ Spec (.of k))]
(hdim : topologicalKrullDim X = 1)
[IsIso ((Scheme.ΓSpecIso (.of k)).inv ≫
(X ↘ Spec (.of k)).appTop)]
(hnodal : HasAtWorstNodalSingularities k X)
(C : X.IdealSheafData)
(hC : IsRationalTail k X C) :
IsIso (canonicalContraction k X hdim hnodal C hC).toRingCatSheafHom
Stacks.Curves.smoothAt_or_isNode_complementaryCurve_of_notMem_support, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/CanonicalContraction/NodalAwayFromAttaching.lean, line 119. The attribute's comment: “at_worst_nodal_away_from_the_attaching_point”.
Stacks 0E3H, the at-worst-nodal singularities of
X'away from the attaching point. LetXbe a proper one-dimensional scheme over a fieldkwith at-worst-nodal singularities and only constant global functions, letC ⊆ Xbe a rational tail and letX'be the scheme-theoretic closure of the complement ofC. Every closed point ofX'whose image inXlies outsideCis smooth overkor is a node ofX'.
theorem smoothAt_or_isNode_complementaryCurve_of_notMem_support
(k : Type u) [Field k] (X : Scheme.{u}) [X.Over (Spec (.of k))]
[IsProper (X ↘ Spec (.of k))]
(hdim : topologicalKrullDim X = 1)
[IsIso ((Scheme.ΓSpecIso (.of k)).inv ≫ (X ↘ Spec (.of k)).appTop)]
(hnodal : HasAtWorstNodalSingularities k X)
(C : X.IdealSheafData) (hC : IsRationalTail k X C)
(y : complementaryCurve C) (hyc : IsClosed ({y} : Set (complementaryCurve C)))
(hy : (complementaryCurveι C).base y ∈ (C.support.compl : X.Opens)) :
letI : (complementaryCurve C).Over (Spec (.of k)) :=
⟨complementaryCurveι C ≫ (X ↘ Spec (.of k))⟩
InfinitesimalLifting.SmoothAt (complementaryCurveι C ≫ (X ↘ Spec (.of k))) y ∨
IsNode k (complementaryCurve C) y
Stacks.Curves.nodal_complementaryCurve, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/CanonicalContraction/SmoothAtAttaching.lean, line 499. The attribute's comment: “complementary_curve_has_at_worst_nodal_singularities”.
Stacks 0E3H: the scheme-theoretic closure of the complement of a rational tail of a proper one-dimensional nodal curve with only constant global functions again has at-worst-nodal singularities. Away from the attaching point this is the étale transport of
Stacks.Curves.smoothAt_or_isNode_complementaryCurve_of_notMem_support; at the attaching point the closure is in fact smooth overk, byStacks.Curves.smoothAt_complementaryCurve_attachingPoint.
theorem nodal_complementaryCurve
(k : Type u) [Field k] (X : Scheme.{u}) [X.Over (Spec (.of k))]
[IsProper (X ↘ Spec (.of k))]
(hdim : topologicalKrullDim X = 1)
[IsIso ((Scheme.ΓSpecIso (.of k)).inv ≫ (X ↘ Spec (.of k)).appTop)]
(hnodal : HasAtWorstNodalSingularities k X)
(C : X.IdealSheafData) (hC : IsRationalTail k X C) :
letI : (complementaryCurve C).Over (Spec (.of k)) :=
⟨complementaryCurveι C ≫ (X ↘ Spec (.of k))⟩
HasAtWorstNodalSingularities k (complementaryCurve C)
Stacks.Curves.tail_inf_complementaryCurveIdeal_eq_bot, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/ComplementaryCurve/SchemeTheoreticUnion.lean, line 158. The attribute's comment: “scheme_theoretic_union”.
A rational tail
Con a proper one-dimensional scheme over a field with at-worst-nodal singularities and with only constant global functions, together with the scheme-theoretic closure of its complement, has scheme-theoretic union the entire curve. Reducedness of the curve comes from the nodality hypothesis.
theorem tail_inf_complementaryCurveIdeal_eq_bot (k : Type u) [Field k] (X : Scheme.{u})
[X.Over (Spec (.of k))] [IsProper (X ↘ Spec (.of k))]
(_hdim : topologicalKrullDim X = 1)
[IsIso ((Scheme.ΓSpecIso (.of k)).inv ≫ (X ↘ Spec (.of k)).appTop)]
(hnodal : HasAtWorstNodalSingularities k X) (C : X.IdealSheafData)
(_hC : IsRationalTail k X C) :
C ⊓ complementaryCurveIdeal C = ⊥
Stacks.Curves.isNode_attachingPoint, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/ContractingRationalTails/AttachingPointNode.lean, line 46. The attribute's comment: “attaching_point_is_node”.
Stacks 0E3H. The attaching point of a rational tail — where it meets the closure of its complement — is a node of the ambient curve.
theorem isNode_attachingPoint
(k : Type u) [Field k] (X : Scheme.{u}) [X.Over (Spec (.of k))]
[IsProper (X ↘ Spec (.of k))]
(hdim : topologicalKrullDim X = 1)
[IsIso ((Scheme.ΓSpecIso (.of k)).inv ≫ (X ↘ Spec (.of k)).appTop)]
(hnodal : HasAtWorstNodalSingularities k X)
(C : X.IdealSheafData) (hC : IsRationalTail k X C) :
IsNode k X (C.subschemeι hC.attachingPoint)
Stacks.Curves.isFiniteSeparable_residueField_attachingPoint, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/ContractingRationalTails/AttachingPointNode.lean, line 94. The attribute's comment: “finite_separable_residue_field”.
Stacks 0E3H. At the attaching point of a rational tail, the extension of the residue field by the residue field of the node (in the sense of
Stacks.Curves.IsNode) is finite and separable.
theorem isFiniteSeparable_residueField_attachingPoint
(k : Type u) [Field k] (X : Scheme.{u}) [X.Over (Spec (.of k))]
[IsProper (X ↘ Spec (.of k))]
(hdim : topologicalKrullDim X = 1)
[IsIso ((Scheme.ΓSpecIso (.of k)).inv ≫ (X ↘ Spec (.of k)).appTop)]
(hnodal : HasAtWorstNodalSingularities k X)
(C : X.IdealSheafData) (hC : IsRationalTail k X C) :
let x := C.subschemeι hC.attachingPoint
let kToStalk : k →+* X.presheaf.stalk x :=
((Scheme.ΓSpecIso (.of k)).inv ≫ (X ↘ Spec (.of k)).appTop ≫
X.presheaf.germ ⊤ x (by simp)).hom
letI : Algebra k (X.presheaf.stalk x) := kToStalk.toAlgebra
letI : Algebra k (X.residueField x) := ((X.residue x).hom.comp kToStalk).toAlgebra
Module.Finite k (X.residueField x) ∧ Algebra.IsSeparableExtension k (X.residueField x)
AlgebraicGeometry.IsContractionOfRationalTail, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/ContractingRationalTails/Contraction.lean, line 63. The attribute's comment: “contraction_of_a_rational_tail”.
A morphism contracting a rational tail onto its complementary curve.
def IsContractionOfRationalTail {k : Type u} [Field k] {X : Scheme.{u}}
[X.Over (Spec (.of k))] {C : X.IdealSheafData} (hC : IsRationalTail k X C)
(c : X ⟶ complementaryCurve C) : Prop
AlgebraicGeometry.IsRationalTail, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/ContractingRationalTails/RationalTail.lean, line 72. The attribute's comment: “rational_tail”.
An integral irreducible component
Cof a scheme overkis a rational tail when the closure of its complement is nonempty, its intersection withCis one reduced point, the global functions onCmap isomorphically to the residue field of that point, andChas genus zero.
def IsRationalTail (k : Type u) [Field k] (X : Scheme.{u}) [X.Over (Spec (.of k))]
(C : X.IdealSheafData) : Prop
Stacks.Curves.genus_complementaryCurve, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/DirectImage/RationalTailCohomologyIso.lean, line 254. The attribute's comment: “complementary_curve”.
Contracting a rational tail does not change the genus: for
Xproper overkof dimension one with at worst nodal singularities and only constant global functions, andC ⊆ Xa rational tail, the scheme-theoretic closureX'of the complement ofChas the genus ofX.This is the genus clause of [Stacks, Tag 0E3H], with no hypothesis beyond that tag's own. It is
Stacks.Curves.contractionCohomologyObjIsoat the canonical contraction, restricted further along the structure map ofX'— which identifies the twok-module structures byStacks.Curves.structureMap_appTop_comp_appTop— and then read as an equality of dimensions.The attribute registers Tag 0E3H with the sub-label
"complementary_curve", and not the bare tag: [Stacks, Tag 0E3H] makes several separate assertions aboutX'and this declaration proves only the one about the genus, so no single declaration states the whole example.
theorem genus_complementaryCurve
(k : Type u) [Field k] (X : Scheme.{u}) [X.Over (Spec (.of k))]
[IsProper (X ↘ Spec (.of k))]
(hdim : topologicalKrullDim X = 1)
[IsIso ((Scheme.ΓSpecIso (.of k)).inv ≫ (X ↘ Spec (.of k)).appTop)]
(hnodal : HasAtWorstNodalSingularities k X)
(C : X.IdealSheafData) (hC : IsRationalTail k X C) :
genus (complementaryCurveι C ≫ (X ↘ Spec (.of k))) = genus (X ↘ Spec (.of k))
Stacks.Curves.isZero_rightDerived_one_pushforward_ambientStructureSheaf, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/DirectImage/RationalTailHigherDirectImage.lean, line 284. The attribute's comment: “higher_direct_image_vanishing”.
R ¹ c_* 𝒪_X = 0for a contractioncof a rational tail on a nodal curve.This is the direct-image vanishing clause of [Stacks, Tag 0E3H], at that tag's standing hypotheses:
Xis proper and one-dimensional overkwith only constant global functions and at worst nodal singularities. Those hypotheses enter only throughStacks.Curves.tail_inf_complementaryCurveIdeal_eq_bot, which says that the tail and the closure of its complement coverXscheme-theoretically, so that the union term ofStacks.Curves.isZero_rightDerived_one_pushforward_schemeTheoreticUnionis the structure sheaf ofXitself.The genus equality that [Stacks, Tag 0E3H] ultimately asserts is downstream of this and is not claimed here; the scoped sub-label registers the direct-image clause alone.
public theorem isZero_rightDerived_one_pushforward_ambientStructureSheaf
(hdim : topologicalKrullDim X = 1)
[IsIso ((Scheme.ΓSpecIso (.of k)).inv ≫ (X ↘ Spec (.of k)).appTop)]
(hnodal : HasAtWorstNodalSingularities k X)
{hC : IsRationalTail k X C} {c : X ⟶ complementaryCurve C}
(hc : IsContractionOfRationalTail hC c) :
Limits.IsZero (((Scheme.Modules.pushforward c).rightDerived 1).obj
(Scheme.IdealSheafData.ambientStructureSheaf X))
Tag 0E63, a lemma
Tag 0E63 in the Stacks Project.
AlgebraicGeometry.invertibleCurveDegree_pullback_dualizingSheafOverField_neg_of_isRationalTail, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/ContractingRationalTails/DualizingSheafDegree.lean, line 317.
Stacks Project, Tag 0E63. Let
Xbe a proper scheme of dimension one over a fieldkwithH⁰(X, 𝒪_X) = kand at-worst-nodal singularities, and letC ⊆ Xbe a rational tail. Thendeg(ω_X|_C) < 0.Here
ω_Xis invertible (AlgebraicGeometry.isInvertible_dualizingSheafOverField_of_hasAtWorstNodalSingularities). The sequence0 ⟶ ω_C ⟶ ω_X|_C ⟶ 𝒪_{C ∩ X'} ⟶ 0of [Stacks, Tag 0E34] givesdeg(ω_X|_C) = -[k' : k]withk' = Γ(C, 𝒪_C)(AlgebraicGeometry.invertibleCurveDegree_eq_neg_of_isRationalTail).
theorem invertibleCurveDegree_pullback_dualizingSheafOverField_neg_of_isRationalTail
[IsProper (X ↘ Spec (.of k))] (hdim : topologicalKrullDim X = 1)
[IsIso ((Scheme.ΓSpecIso (.of k)).inv ≫ (X ↘ Spec (.of k)).appTop)]
(hnodal : Stacks.Curves.HasAtWorstNodalSingularities k X)
(C : X.IdealSheafData) (hC : IsRationalTail k X C) :
haveI := connectedSpace_of_isIso_globalSections k (X ↘ Spec (.of k))
letI hω := isInvertible_dualizingSheafOverField_of_hasAtWorstNodalSingularities k X hdim
hnodal
letI := Stacks.AlgebraicGeometry.Tag09NY.isInvertible_modulePullback C.subschemeι
(Stacks.Duality.dualizingSheafOverField (X ↘ Spec (.of k))) hω
invertibleCurveDegree k (C.subschemeι ≫ (X ↘ Spec (.of k)))
(Stacks.Curves.topologicalKrullDim_subscheme_eq_one_of_isRationalTail k X hdim C hC).le
((Scheme.Modules.pullback C.subschemeι).obj
(Stacks.Duality.dualizingSheafOverField (X ↘ Spec (.of k)))) < 0
Tag 0E3I, a lemma
Tag 0E3I in the Stacks Project.
AlgebraicGeometry.exists_iso_sigma_isRationalTail_baseChange, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/ContractingRationalTails/BaseChange.lean, line 184.
[Stacks, Tag 0E3I]. Let
Xbe a proper scheme over a fieldkof dimension one withH⁰(X, 𝒪_X) = kand at-worst-nodal singularities, and letC ⊆ Xbe a rational tail. For every field extensionK/kthe base changeC_K ⊆ X_Kis a finite disjoint union of rational tails ofX_K: there are finitely many rational tailsDᵢofX_Kand an isomorphism∐ᵢ Dᵢ ≅ C_Kcompatible with the closed immersions intoX_K.
theorem exists_iso_sigma_isRationalTail_baseChange
(k K : Type u) [Field k] [Field K] [Algebra k K]
(X : Scheme.{u}) [X.Over (Spec (.of k))]
[IsProper (X ↘ Spec (.of k))]
(hdim : topologicalKrullDim X = 1)
[IsIso ((Scheme.ΓSpecIso (.of k)).inv ≫ (X ↘ Spec (.of k)).appTop)]
(hnodal : HasAtWorstNodalSingularities k X)
(C : X.IdealSheafData) (hC : IsRationalTail k X C) :
let g : Spec (.of K) ⟶ Spec (.of k) :=
Spec.map (CommRingCat.ofHom (algebraMap k K))
let Y := (pullback (X ↘ Spec (.of k)) g : Scheme.{u})
let p : Y ⟶ X := pullback.fst (X ↘ Spec (.of k)) g
letI : Y.Over (Spec (.of K)) := ⟨pullback.snd (X ↘ Spec (.of k)) g⟩
∃ (ι : Type u) (_ : Finite ι) (D : ι → Y.IdealSheafData)
(_ : ∀ i, IsRationalTail K Y (D i))
(e : (∐ fun i ↦ (D i).subscheme) ≅ (C.comap p).subscheme),
e.hom ≫ (C.comap p).subschemeι =
Sigma.desc (fun i ↦ (D i).subschemeι)
Tag 0E3J, a lemma
Tag 0E3J in the Stacks Project.
AlgebraicGeometry.finrank_cohomologyOverField_one_le_invertibleCurveDegree_of_forall_not_isRationalTail, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/ContractingRationalTails/DualizingSheafDegree.lean, line 261.
Stacks Project, Tag 0E3J. Let
Xbe a proper scheme of dimension one over a fieldkwithH⁰(X, 𝒪_X) = kand at-worst-nodal singularities. IfXhas no rational tail, then for every reduced connected closed subschemeY ⊆ X,Y ≠ X, of dimension one,deg(ω_X|_Y) ≥ dim_k H¹(Y, 𝒪_Y).Here
ω_Xis invertible (AlgebraicGeometry.isInvertible_dualizingSheafOverField_of_hasAtWorstNodalSingularities). If the inequality failed, thendeg(ω_X|_Y) < 0; forYirreducible this makesYa rational tail, and otherwise some one-dimensional componentCofYhasdeg(ω_X|_C) < 0([Stacks, Tag 0AYW]) and is a rational tail by the same analysis.
theorem finrank_cohomologyOverField_one_le_invertibleCurveDegree_of_forall_not_isRationalTail
[IsProper (X ↘ Spec (.of k))] (hdim : topologicalKrullDim X = 1)
[IsIso ((Scheme.ΓSpecIso (.of k)).inv ≫ (X ↘ Spec (.of k)).appTop)]
(hnodal : Stacks.Curves.HasAtWorstNodalSingularities k X)
(htail : ∀ C : X.IdealSheafData, ¬ IsRationalTail k X C)
(Y : X.IdealSheafData) [IsReduced Y.subscheme] [ConnectedSpace Y.subscheme]
(hY : topologicalKrullDim Y.subscheme = 1) (hYX : Y ≠ ⊥) :
haveI := connectedSpace_of_isIso_globalSections k (X ↘ Spec (.of k))
letI hω := isInvertible_dualizingSheafOverField_of_hasAtWorstNodalSingularities k X hdim
hnodal
letI := Stacks.AlgebraicGeometry.Tag09NY.isInvertible_modulePullback Y.subschemeι
(Stacks.Duality.dualizingSheafOverField (X ↘ Spec (.of k))) hω
(Module.finrank k (cohomologyOverField k (Y.subschemeι ≫ (X ↘ Spec (.of k)))
(SheafOfModules.unit Y.subscheme.ringCatSheaf) 1) : ℤ) ≤
invertibleCurveDegree k (Y.subschemeι ≫ (X ↘ Spec (.of k))) hY.le
((Scheme.Modules.pullback Y.subschemeι).obj
(Stacks.Duality.dualizingSheafOverField (X ↘ Spec (.of k))))
Tag 0E3K, a lemma
Tag 0E3K in the Stacks Project.
AlgebraicGeometry.exists_planeCurveData_deg_two_of_forall_not_isRationalTail, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/GenusZeroPositiveDegree/CanonicalNodal.lean, line 94. The attribute's comment: “part (1)”.
Stacks Project, Tag 0E3K, part (1). Let
Xbe a proper scheme of dimension one over a fieldkwithH⁰(X, 𝒪_X) = k, with at-worst-nodal singularities and no rational tail. IfXhas genus0, thenXis isomorphic to an irreducible plane conic andω_X^{⊗ -1}is very ample.
ω_Xis invertible of degree2g - 2 = -2([Stacks, Tag 0E37], [Stacks, Tag 0C19]) and satisfies the subcurve bound of [Stacks, Tag 0E3J], soAlgebraicGeometry.exists_planeCurveData_deg_two_of_subcurve_boundapplies.
theorem exists_planeCurveData_deg_two_of_forall_not_isRationalTail
[IsProper (X ↘ Spec (.of k))] (hdim : topologicalKrullDim X = 1)
[IsIso ((Scheme.ΓSpecIso (.of k)).inv ≫ (X ↘ Spec (.of k)).appTop)]
(hnodal : HasAtWorstNodalSingularities k X)
(htail : ∀ C : X.IdealSheafData, ¬ IsRationalTail k X C)
(hgenus : genus (X ↘ Spec (.of k)) = 0) :
(∃ C : ProjectiveSpectrum.Proj.PlaneCurveData k, C.deg = 2 ∧ IrreducibleSpace C.Z ∧
∃ e : X ≅ C.Z, e.hom ≫ C.toSpec = X ↘ Spec (.of k)) ∧
haveI := connectedSpace_of_isIso_globalSections k (X ↘ Spec (.of k))
letI := isInvertible_dualizingSheafOverField_of_hasAtWorstNodalSingularities k X hdim hnodal
letI := tensorPower_isInvertible X.presheaf X.ringCatSheaf.2
(Stacks.Duality.dualizingSheafOverField (X ↘ Spec (.of k))) (-1)
Stacks.Tag01VMVeryAmple.IsRelativelyVeryAmple (X ↘ Spec (.of k))
(tensorPower X.presheaf X.ringCatSheaf.2
(Stacks.Duality.dualizingSheafOverField (X ↘ Spec (.of k))) (-1))
AlgebraicGeometry.nonempty_dualizingSheafOverField_iso_unit_of_forall_not_isRationalTail, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/GenusZeroPositiveDegree/CanonicalNodal.lean, line 130. The attribute's comment: “part (2)”.
Stacks Project, Tag 0E3K, part (2). Let
Xbe a proper scheme of dimension one over a fieldkwithH⁰(X, 𝒪_X) = k, with at-worst-nodal singularities and no rational tail. IfXhas genus1, thenω_X ≅ 𝒪_X.
ω_Xis invertible of degree2g - 2 = 0withh⁰(ω_X) = g = 1, and satisfies the subcurve bound of [Stacks, Tag 0E3J]; so every component degree is nonnegative, they sum to0([Stacks, Tag 0AYW]), and [Stacks, Tag 0E22] applies (AlgebraicGeometry.isTrivial_of_subcurve_bound).
theorem nonempty_dualizingSheafOverField_iso_unit_of_forall_not_isRationalTail
[IsProper (X ↘ Spec (.of k))] (hdim : topologicalKrullDim X = 1)
[IsIso ((Scheme.ΓSpecIso (.of k)).inv ≫ (X ↘ Spec (.of k)).appTop)]
(hnodal : HasAtWorstNodalSingularities k X)
(htail : ∀ C : X.IdealSheafData, ¬ IsRationalTail k X C)
(hgenus : genus (X ↘ Spec (.of k)) = 1) :
Nonempty (Stacks.Duality.dualizingSheafOverField (X ↘ Spec (.of k)) ≅
SheafOfModules.unit X.ringCatSheaf)
AlgebraicGeometry.isGeneratedByGlobalSections_tensorPower_dualizingSheafOverField_of_forall_not_isRationalTail, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/GenusZeroPositiveDegree/CanonicalNodal.lean, line 164. The attribute's comment: “part (3)”.
Stacks Project, Tag 0E3K, part (3). Let
Xbe a proper scheme of dimension one over a fieldkwithH⁰(X, 𝒪_X) = k, with at-worst-nodal singularities and no rational tail. If the genus ofXis at least2, thenω_X^{⊗ m}is globally generated for everym ≥ 2.
ω_Xis invertible of degree2g - 2and satisfies the subcurve bound of [Stacks, Tag 0E3J], which withg ≥ 2andm ≥ 2gives the inequalities of [Stacks, Tag 0E3F] (AlgebraicGeometry.isGeneratedByGlobalSections_tensorPower_of_subcurve_bound).
theorem isGeneratedByGlobalSections_tensorPower_dualizingSheafOverField_of_forall_not_isRationalTail
[IsProper (X ↘ Spec (.of k))] (hdim : topologicalKrullDim X = 1)
[IsIso ((Scheme.ΓSpecIso (.of k)).inv ≫ (X ↘ Spec (.of k)).appTop)]
(hnodal : HasAtWorstNodalSingularities k X)
(htail : ∀ C : X.IdealSheafData, ¬ IsRationalTail k X C)
(hgenus : 2 ≤ genus (X ↘ Spec (.of k))) (m : ℕ) (hm : 2 ≤ m) :
haveI := connectedSpace_of_isIso_globalSections k (X ↘ Spec (.of k))
letI := isInvertible_dualizingSheafOverField_of_hasAtWorstNodalSingularities k X hdim hnodal
SheafOfModules.IsGeneratedByGlobalSections
(tensorPower X.presheaf X.ringCatSheaf.2
(Stacks.Duality.dualizingSheafOverField (X ↘ Spec (.of k))) m)
Tag 0E3L, a lemma
Tag 0E3L in the Stacks Project.
AlgebraicGeometry.IsIteratedContractionOfRationalTails.exists_planeCurveData_deg_two, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/ContractingRationalTails/Terminal.lean, line 60. The attribute's comment: “part (1)”.
Stacks Project, Tag 0E3L, part (1). Let
Xbe a proper scheme of dimension one over a fieldkwithH⁰(X, 𝒪_X) = kand at-worst-nodal singularities, andX → X'a chain of contractions of rational tails after which none are left. IfXhas genus0, thenX'is an irreducible plane conic overk.
theorem exists_planeCurveData_deg_two (hgenus : genus fX = 0) :
∃ C : ProjectiveSpectrum.Proj.PlaneCurveData k, C.deg = 2 ∧ IrreducibleSpace C.Z ∧
∃ e : Y ≅ C.Z, e.hom ≫ C.toSpec = fY
AlgebraicGeometry.IsIteratedContractionOfRationalTails.nonempty_dualizingSheafOverField_iso_unit, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/ContractingRationalTails/Terminal.lean, line 76. The attribute's comment: “part (2)”.
Stacks Project, Tag 0E3L, part (2). Let
Xbe a proper scheme of dimension one over a fieldkwithH⁰(X, 𝒪_X) = kand at-worst-nodal singularities, andX → X'a chain of contractions of rational tails after which none are left. IfXhas genus1, thenω_{X'} ≅ 𝒪_{X'}.
theorem nonempty_dualizingSheafOverField_iso_unit (hgenus : genus fX = 1) :
haveI : IsProper fY := isProper_target hseq hdim hnodal
Nonempty (Stacks.Duality.dualizingSheafOverField fY ≅ SheafOfModules.unit Y.ringCatSheaf)
AlgebraicGeometry.IsIteratedContractionOfRationalTails.isGeneratedByGlobalSections_tensorPower_dualizingSheafOverField, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/ContractingRationalTails/Terminal.lean, line 92. The attribute's comment: “part (3)”.
Stacks Project, Tag 0E3L, part (3). Let
Xbe a proper scheme of dimension one over a fieldkwithH⁰(X, 𝒪_X) = kand at-worst-nodal singularities, andX → X'a chain of contractions of rational tails after which none are left. If the genus ofXis at least2, thenω_{X'}is invertible andω_{X'}^{⊗ m}is globally generated for everym ≥ 2.
theorem isGeneratedByGlobalSections_tensorPower_dualizingSheafOverField
(hgenus : 2 ≤ genus fX) (m : ℕ) (hm : 2 ≤ m) :
letI : Y.Over (Spec (.of k)) := ⟨fY⟩
haveI : IsIso ((Scheme.ΓSpecIso (.of k)).inv ≫ fY.appTop) :=
isIso_globalSections_target hseq hdim hnodal
haveI := connectedSpace_of_isIso_globalSections k fY
haveI : IsProper fY := isProper_target hseq hdim hnodal
letI : SheafOfModules.IsInvertible Y.presheaf Y.ringCatSheaf.2
(Stacks.Duality.dualizingSheafOverField fY) :=
@isInvertible_dualizingSheafOverField_of_hasAtWorstNodalSingularities k _ Y _ this _
(topologicalKrullDim_target hseq hdim hnodal)
(hasAtWorstNodalSingularities_target hseq hdim hnodal)
SheafOfModules.IsGeneratedByGlobalSections
(tensorPower Y.presheaf Y.ringCatSheaf.2 (Stacks.Duality.dualizingSheafOverField fY) m)
AlgebraicGeometry.IsIteratedContractionOfRationalTails.existsUnique_iso_baseChange, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/ContractingRationalTails/TerminalBaseChange.lean, line 678. The attribute's comment: “compatibility with base field extensions”.
Stacks Project, Tag 0E3L, compatibility with extension of the ground field. Let
Xbe a proper scheme of dimension one over a fieldkwithH⁰(X, 𝒪_X) = k, at-worst-nodal singularities and genus at least one,c : X ⟶ Ya chain of contractions of rational tails after which none are left, andK/ka field extension. For every chaind : X_K ⟶ Zof contractions of rational tails ofX_Kafter which none are left, there is a unique isomorphisme : Y_K ≅ Zwithc_K ≫ e = d: the formation of the contraction of all rational tails commutes with the base change toK.
dfactors throughc_K(AlgebraicGeometry.IsIteratedContractionOfRationalTails.exists_comp_eq_baseChange, using [Stacks, Tag 0E3I]). ConverselyY_Kis a nodal curve of positive genus without rational tails (AlgebraicGeometry.forall_not_isRationalTail_baseChange) and𝒪_{Y_K} = (c_K)_*𝒪_{X_K}by flat base change, soc_Kfactors throughd(IsIteratedContractionOfRationalTails.exists_comp_eq_of_forall_not_isRationalTail). The two factorizations are mutually inverse,c_Kanddbeing dominant onto reduced curves.
theorem IsIteratedContractionOfRationalTails.existsUnique_iso_baseChange (k K : Type u) [Field k]
[Field K] [Algebra k K] {X Y : Scheme.{u}} {fX : X ⟶ Spec (.of k)} {fY : Y ⟶ Spec (.of k)}
{c : X ⟶ Y} [IsProper fX] (hdim : topologicalKrullDim X = 1)
[IsIso ((Scheme.ΓSpecIso (.of k)).inv ≫ fX.appTop)]
(hnodal : letI : X.Over (Spec (.of k)) := ⟨fX⟩
Stacks.Curves.HasAtWorstNodalSingularities k X)
(hgenus : 1 ≤ genus fX)
(hseq : IsIteratedContractionOfRationalTails k fX fY c)
(hterminal : ∀ C : Y.IdealSheafData, ¬ @IsRationalTail k _ Y ⟨fY⟩ C)
{Z : Scheme.{u}} {fZ : Z ⟶ Spec (.of K)} {d : pullback fX (Spec.map (CommRingCat.ofHom
(algebraMap k K))) ⟶ Z}
(hd : IsIteratedContractionOfRationalTails K (pullback.snd fX (Spec.map (CommRingCat.ofHom
(algebraMap k K)))) fZ d)
(hdterminal : ∀ C : Z.IdealSheafData, ¬ @IsRationalTail K _ Z ⟨fZ⟩ C) :
∃! e : pullback fY (Spec.map (CommRingCat.ofHom (algebraMap k K))) ≅ Z,
pullback.map fX (Spec.map (CommRingCat.ofHom (algebraMap k K))) fY (Spec.map
(CommRingCat.ofHom (algebraMap k K))) c (𝟙 _) (𝟙 _)
(by rw [Category.comp_id, hseq.comp_structureMap]) (by simp) ≫ e.hom = d
AlgebraicGeometry.IsIteratedContractionOfRationalTails.existsUnique_iso, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/ContractingRationalTails/Uniqueness.lean, line 402. The attribute's comment: “independence of choices”.
Let
Xbe a proper scheme of dimension one over a fieldkwithH⁰(X, 𝒪_X) = k, at-worst-nodal singularities and genus at least one. For two chainsc₁ : X ⟶ Y₁andc₂ : X ⟶ Y₂of contractions of rational tails after which none are left, there is a unique isomorphisme : Y₁ ≅ Y₂withc₁ ≫ e = c₂.
theorem existsUnique_iso {X Y₁ Y₂ : Scheme.{u}} {fX : X ⟶ Spec (.of k)}
{fY₁ : Y₁ ⟶ Spec (.of k)} {fY₂ : Y₂ ⟶ Spec (.of k)} {c₁ : X ⟶ Y₁} {c₂ : X ⟶ Y₂}
[IsProper fX] (hdim : topologicalKrullDim X = 1)
[IsIso ((Scheme.ΓSpecIso (.of k)).inv ≫ fX.appTop)]
(hnodal : letI : X.Over (Spec (.of k)) := ⟨fX⟩
Stacks.Curves.HasAtWorstNodalSingularities k X)
(hgenus : 1 ≤ genus fX)
(hseq₁ : IsIteratedContractionOfRationalTails k fX fY₁ c₁)
(hterminal₁ : ∀ C : Y₁.IdealSheafData, ¬ @IsRationalTail k _ Y₁ ⟨fY₁⟩ C)
(hseq₂ : IsIteratedContractionOfRationalTails k fX fY₂ c₂)
(hterminal₂ : ∀ C : Y₂.IdealSheafData, ¬ @IsRationalTail k _ Y₂ ⟨fY₂⟩ C) :
∃! e : Y₁ ≅ Y₂, c₁ ≫ e.hom = c₂
Sources
Section53.24 Contracting rational bridges#
Section 53.24 of the Stacks Project, Tag 0E7M. 6 tags here are carried by 20 declarations of the repository (all in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 0E3M, an example
Tag 0E3M in the Stacks Project.
AlgebraicGeometry.IsRationalBridge, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/ContractingRationalBridges/Basic.lean, line 48. The attribute's comment: “rational_bridge”.
An integral irreducible component is a rational bridge if the closure of its complement is nonempty, the intersection has degree two over its global functions, and its genus is zero.
def IsRationalBridge (k : Type u) [Field k] (X : Scheme.{u}) [X.Over (Spec (.of k))]
[IsProper (X ↘ Spec (.of k))] (C : X.IdealSheafData) : Prop
Stacks.Curves.exists_isProper_structureMorphism_and_genus_eq_contraction_bridge, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/ContractingRationalBridges/ContractionGenus.lean, line 112. The attribute's comment: “Y is proper over k of dimension one with H⁰(Y, 𝒪_Y) = k and the genus of X”.
The target of a contraction of a rational bridge is a proper scheme over
kof dimension one withH⁰(Y, 𝒪_Y) = kand the genus ofX. That is, there is a morphismg : Y ⟶ Spec kwithc ≫ gthe structure morphism ofXwhich has these properties.
theorem exists_isProper_structureMorphism_and_genus_eq_contraction_bridge
(k : Type u) [Field k] (X : Scheme.{u}) [X.Over (Spec (.of k))]
[IsProper (X ↘ Spec (.of k))]
(hdim : topologicalKrullDim X = 1)
[IsIso ((Scheme.ΓSpecIso (.of k)).inv ≫ (X ↘ Spec (.of k)).appTop)]
(hnodal : HasAtWorstNodalSingularities k X)
(C : X.IdealSheafData) (hC : IsRationalBridge k X C)
{Y : Scheme.{u}} (c : X ⟶ Y) (hc : IsContractionOfRationalBridge hC c) :
∃ g : Y ⟶ Spec (.of k), c ≫ g = X ↘ Spec (.of k) ∧ IsProper g ∧
topologicalKrullDim Y = 1 ∧ IsIso ((Scheme.ΓSpecIso (.of k)).inv ≫ g.appTop) ∧
genus g = genus (X ↘ Spec (.of k))
Stacks.Curves.hasAtWorstNodalSingularities_pushoutScheme_bridge, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/ContractingRationalBridges/ContractionNodal.lean, line 382. The attribute's comment: “the singularities of Y are at-worst-nodal”.
The singularities of the contraction
Yof a rational bridge, the pushoutAlgebraicGeometry.pushoutSchemeofStacks.Curves.bridgePushoutSituationoverkbyAlgebraicGeometry.pushoutToBase, are at-worst-nodal.
theorem hasAtWorstNodalSingularities_pushoutScheme_bridge
(hdim : topologicalKrullDim X = 1)
(hnodal : HasAtWorstNodalSingularities k X)
{C : X.IdealSheafData} (hC : IsRationalBridge k X C) :
letI : (pushoutScheme (bridgePushoutSituation hdim hnodal hC)).Over (Spec (.of k)) :=
⟨pushoutToBase (bridgePushoutSituation hdim hnodal hC)⟩
HasAtWorstNodalSingularities k (pushoutScheme (bridgePushoutSituation hdim hnodal hC))
Stacks.Curves.isField_globalSections_bridge, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/ContractingRationalBridges/Intersection.lean, line 76. The attribute's comment: “k' = H⁰(C, 𝒪_C) is a field”.
The ring of global functions on a rational bridge is a field: the bridge is an integral scheme proper over
k, so its global functions form a field ([Stacks, Tag 0BUG]).
theorem isField_globalSections_bridge (k : Type u) [Field k] (X : Scheme.{u})
[X.Over (Spec (.of k))] [IsProper (X ↘ Spec (.of k))]
(_hdim : topologicalKrullDim X = 1)
[IsIso ((Scheme.ΓSpecIso (.of k)).inv ≫ (X ↘ Spec (.of k)).appTop)]
(_hnodal : HasAtWorstNodalSingularities k X)
(C : X.IdealSheafData) (hC : IsRationalBridge k X C) :
IsField Γ(C.subscheme, ⊤)
Stacks.Curves.isNode_of_mem_intersection_bridge, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/ContractingRationalBridges/Intersection.lean, line 106. The attribute's comment: “the points of C ∩ X' are nodes of X”.
Every point of the intersection of a rational bridge with the closure of its complement is a node of the ambient curve. At least two irreducible components of
Xpass through each such point, so [Stacks, Tag 0E38] applies.
theorem isNode_of_mem_intersection_bridge (k : Type u) [Field k] (X : Scheme.{u})
[X.Over (Spec (.of k))] [IsProper (X ↘ Spec (.of k))]
(hdim : topologicalKrullDim X = 1)
[IsIso ((Scheme.ΓSpecIso (.of k)).inv ≫ (X ↘ Spec (.of k)).appTop)]
(hnodal : HasAtWorstNodalSingularities k X)
(C : X.IdealSheafData) (hC : IsRationalBridge k X C)
(w : intersectionWithComplementaryCurve C) :
IsNode k X ((intersectionWithComplementaryCurveIdeal C).subschemeι.base w)
Stacks.Curves.moduleFinite_and_isSeparable_globalSections_bridge, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/ContractingRationalBridges/IntersectionSections.lean, line 414. The attribute's comment: “k'/k is a finite separable extension of fields”.
The field of global functions on a rational bridge is a finite separable extension of the base field. This is the assertion "
k'/kis a finite separable extension of fields" of [Stacks, Tag 0E3M], forC ⊆ Xa rational bridge of a proper one-dimensional at-worst-nodal curve overkwith only constant global functions andk' = Γ(C, 𝒪_C).Finiteness is clause (1) of [Stacks, Tag 0BUG] (
Stacks.AlgebraicGeometry.ProperSectionsGeom.moduleFinite_globalSections_of_isProper): the bridge is a closed subscheme ofX, hence proper overk. Separability is the source's appeal to [Stacks, Tag 0C4D] at a pointwofC ∩ X', which is nonempty (Stacks.Curves.nonempty_intersection_bridge): that point is a node ofX, so the residue field there is separable overk(Stacks.Curves.isSeparableExtension_residueField_intersection_bridge), hence geometrically reduced overkby Tag 030W; the evaluation of global functions of the bridge atwembedsk'in that residue field,k'being a field, sok'is geometrically reduced overktoo and therefore separable, which for the finite extensionk'/kis separability in the sense ofAlgebra.IsSeparable.
theorem moduleFinite_and_isSeparable_globalSections_bridge
(k : Type u) [Field k] (X : Scheme.{u}) [X.Over (Spec (.of k))]
[IsProper (X ↘ Spec (.of k))]
(hdim : topologicalKrullDim X = 1)
[IsIso ((Scheme.ΓSpecIso (.of k)).inv ≫ (X ↘ Spec (.of k)).appTop)]
(hnodal : HasAtWorstNodalSingularities k X)
(C : X.IdealSheafData) (hC : IsRationalBridge k X C) :
letI : IsIntegral C.subscheme := hC.isIntegral
letI : Field Γ(C.subscheme, ⊤) :=
(isField_of_universallyClosed k (C.subschemeι ≫ (X ↘ Spec (.of k)))).toField
letI : Algebra k Γ(C.subscheme, ⊤) :=
((Scheme.ΓSpecIso (.of k)).inv ≫
(C.subschemeι ≫ (X ↘ Spec (.of k))).appTop).hom.toAlgebra
Module.Finite k Γ(C.subscheme, ⊤) ∧ Algebra.IsSeparable k Γ(C.subscheme, ⊤)
Stacks.Curves.isField_and_isSeparable_or_algEquiv_prod_intersectionSections_bridge, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/ContractingRationalBridges/IntersectionSections.lean, line 475. The attribute's comment: “k''/k' is either a degree two separable extension of fields or k'' = k' × k'”.
The degree two extension
k''/k'of [Stacks, Tag 0E3M] is either a separable field extension or the square ofk'. HereC ⊆ Xis a rational bridge of a proper one-dimensional at-worst-nodal curve overkwith only constant global functions,X'is the scheme-theoretic closure ofX \ C, andk' = Γ(C, 𝒪_C),k'' = Γ(C ∩ X', 𝒪).The intersection is geometrically reduced over
k(Stacks.Curves.geometricallyReduced_intersection_bridge), sok''is a finite etalek-algebra, and the degree ofk''overk'is two by the defining condition of a rational bridge; the dichotomy is thenStacks.Curves.isField_and_isSeparable_or_algEquiv_prod_of_etale_of_finrank_eq_two.
theorem isField_and_isSeparable_or_algEquiv_prod_intersectionSections_bridge
(k : Type u) [Field k] (X : Scheme.{u}) [X.Over (Spec (.of k))]
[IsProper (X ↘ Spec (.of k))]
(hdim : topologicalKrullDim X = 1)
[IsIso ((Scheme.ΓSpecIso (.of k)).inv ≫ (X ↘ Spec (.of k)).appTop)]
(hnodal : HasAtWorstNodalSingularities k X)
(C : X.IdealSheafData) (hC : IsRationalBridge k X C) :
letI : IsIntegral C.subscheme := hC.isIntegral
letI : Field Γ(C.subscheme, ⊤) :=
(isField_of_universallyClosed k (C.subschemeι ≫ (X ↘ Spec (.of k)))).toField
letI : Algebra Γ(C.subscheme, ⊤) Γ(intersectionWithComplementaryCurve C, ⊤) :=
(Scheme.IdealSheafData.inclusion
(le_sup_left : C ≤ intersectionWithComplementaryCurveIdeal C)).appTop.hom.toAlgebra
(IsField Γ(intersectionWithComplementaryCurve C, ⊤) ∧
Module.finrank Γ(C.subscheme, ⊤) Γ(intersectionWithComplementaryCurve C, ⊤) = 2 ∧
Algebra.IsSeparable Γ(C.subscheme, ⊤) Γ(intersectionWithComplementaryCurve C, ⊤)) ∨
Nonempty (Γ(intersectionWithComplementaryCurve C, ⊤) ≃ₐ[Γ(C.subscheme, ⊤)]
(Γ(C.subscheme, ⊤) × Γ(C.subscheme, ⊤)))
Stacks.Curves.exists_ringEquiv_completedLocalRing_contraction_bridge, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/ContractingRationalBridges/PushoutCompletionShape.lean, line 145. The attribute's comment: “𝒪^∧_{Y,y} ≅ {f ∈ k''[[s]] : f(0) ∈ k'}, and ≅ k'[[s,t]]/(st) when k'' = k' × k'”.
The completed local ring of the contraction of a rational bridge at the image of
Spec k'. Letkbe a field,Xa proper scheme overkof dimension one withH⁰(X, 𝒪_X) = kand at-worst-nodal singularities, andC ⊆ Xa rational bridge; letX'be the scheme-theoretic closure ofX \ C,k' = Γ(C, 𝒪_C),k'' = Γ(C ∩ X', 𝒪)andYthe pushout ofC ∩ X' ⟶ X'alongC ∩ X' ⟶ Spec k'. Lety ∈ Ybe the image ofSpec k', the image of every point of that spectrum. Thenand𝒪^∧_{Y, y} ≅ {f ∈ k''⟦s⟧ : f(0) ∈ k'},𝒪^∧_{Y, y} ≅ k'⟦s, t⟧/(st)whenC ∩ X'has two points, that is whenk'' = k' × k'.
theorem exists_ringEquiv_completedLocalRing_contraction_bridge
(k : Type u) [Field k] (X : Scheme.{u}) [X.Over (Spec (.of k))]
[IsProper (X ↘ Spec (.of k))]
(hdim : topologicalKrullDim X = 1)
[IsIso ((Scheme.ΓSpecIso (.of k)).inv ≫ (X ↘ Spec (.of k)).appTop)]
(hnodal : HasAtWorstNodalSingularities k X)
(C : X.IdealSheafData) (hC : IsRationalBridge k X C) :
letI : IsIntegral C.subscheme := hC.isIntegral
letI : Field Γ(C.subscheme, ⊤) :=
(isField_of_universallyClosed k (C.subschemeι ≫ (X ↘ Spec (.of k)))).toField
letI : Algebra Γ(C.subscheme, ⊤) Γ(intersectionWithComplementaryCurve C, ⊤) :=
(Scheme.IdealSheafData.inclusion
(le_sup_left : C ≤ intersectionWithComplementaryCurveIdeal C)).appTop.hom.toAlgebra
∃ y : pushoutScheme (bridgePushoutSituation hdim hnodal hC),
(∀ p : (bridgePushoutSituation hdim hnodal hC).Y,
pushoutInr (bridgePushoutSituation hdim hnodal hC) p = y) ∧
Nonempty (Scheme.completedLocalRing
(pushoutScheme (bridgePushoutSituation hdim hnodal hC)) y ≃+*
↥(PowerSeries.constantCoeffInBase (Γ(C.subscheme, ⊤) : Type u)
(Γ(intersectionWithComplementaryCurve C, ⊤) : Type u))) ∧
(Nonempty (Γ(intersectionWithComplementaryCurve C, ⊤) ≃ₐ[(Γ(C.subscheme, ⊤) : Type u)]
((Γ(C.subscheme, ⊤) : Type u) × (Γ(C.subscheme, ⊤) : Type u))) →
Nonempty (Scheme.completedLocalRing
(pushoutScheme (bridgePushoutSituation hdim hnodal hC)) y ≃+*
(MvPowerSeries (Fin 2) (Γ(C.subscheme, ⊤) : Type u) ⧸
Ideal.span {(MvPowerSeries.X 0 :
MvPowerSeries (Fin 2) (Γ(C.subscheme, ⊤) : Type u)) *
MvPowerSeries.X 1})))
Stacks.Curves.exists_pushout_contraction_bridge, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/ContractingRationalBridges/PushoutContraction.lean, line 326. The attribute's comment: “the pushout Y along C ∩ X' ⟶ Spec k' exists and receives the contraction c : X ⟶ Y”.
The pushout of a rational bridge exists and carries a contraction of the bridge. The pushout square
is [Stacks, Tag 0E25] applied toC ∩ X' ⟶ X' ↓ ↓ a Spec k' ⟶ YStacks.Curves.bridgePushoutSituation, and the contraction is the one produced byStacks.Curves.exists_contraction_pushoutScheme_bridge.
theorem exists_pushout_contraction_bridge
(hdim : topologicalKrullDim X = 1)
(hnodal : HasAtWorstNodalSingularities k X)
{C : X.IdealSheafData} (hC : IsRationalBridge k X C) :
∃ (Y : Scheme.{u}) (c : X ⟶ Y), IsContractionOfRationalBridge hC c
Stacks.Curves.smoothAt_bridge_and_complementaryCurve_of_mem_intersection, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/ContractingRationalBridges/SmoothIntersection.lean, line 275. The attribute's comment: “the points of C ∩ X' are smooth points of C and of X'”.
The points of
C ∩ X'are smooth points on bothCandX'. This is the clause of [Stacks, Tag 0E3M] which the source draws from [Stacks, Tag 0E38] after observing that the points of the intersection are nodes ofX: a node has two branches, and here they are the bridge and the closure of the complement, each smooth at the point.
theorem smoothAt_bridge_and_complementaryCurve_of_mem_intersection
(k : Type u) [Field k] (X : Scheme.{u}) [X.Over (Spec (.of k))]
[IsProper (X ↘ Spec (.of k))]
(hdim : topologicalKrullDim X = 1)
[IsIso ((Scheme.ΓSpecIso (.of k)).inv ≫ (X ↘ Spec (.of k)).appTop)]
(hnodal : HasAtWorstNodalSingularities k X)
(C : X.IdealSheafData) (hC : IsRationalBridge k X C)
(w : intersectionWithComplementaryCurve C) :
InfinitesimalLifting.SmoothAt (C.subschemeι ≫ (X ↘ Spec (.of k)))
((Scheme.IdealSheafData.inclusion
(le_sup_left : C ≤ intersectionWithComplementaryCurveIdeal C)).base w) ∧
InfinitesimalLifting.SmoothAt (complementaryCurveι C ≫ (X ↘ Spec (.of k)))
((Scheme.IdealSheafData.inclusion
(le_sup_right : complementaryCurveIdeal C ≤
intersectionWithComplementaryCurveIdeal C)).base w)
Stacks.Curves.isIso_structureSheafToPushforward_and_isZero_rightDerived_one_contraction_bridge, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/ContractingRationalBridges/StructurePushforward.lean, line 249. The attribute's comment: “c_𝒪_X = 𝒪_Y and R¹c_𝒪_X = 0”.
The direct images of
𝒪_Xalong a contraction of a rational bridge: the canonical map𝒪_Y ⟶ c_* 𝒪_Xis an isomorphism andR ¹ c_* 𝒪_X = 0. This is the clause of [Stacks, Tag 0E3M] that reads "we claim thatc_* 𝒪_X = 𝒪_YandR ¹ c_* 𝒪_X = 0".
theorem isIso_structureSheafToPushforward_and_isZero_rightDerived_one_contraction_bridge
(k : Type u) [Field k] (X : Scheme.{u}) [X.Over (Spec (.of k))]
[IsProper (X ↘ Spec (.of k))]
(hdim : topologicalKrullDim X = 1)
[IsIso ((Scheme.ΓSpecIso (.of k)).inv ≫ (X ↘ Spec (.of k)).appTop)]
(hnodal : HasAtWorstNodalSingularities k X)
(C : X.IdealSheafData) (hC : IsRationalBridge k X C)
{Y : Scheme.{u}} (c : X ⟶ Y) (hc : IsContractionOfRationalBridge hC c) :
IsIso (structureSheafToPushforward c) ∧
IsZero (((Scheme.Modules.pushforward c).rightDerived 1).obj (structureSheafModule X))
Tag 0E64, a lemma
Tag 0E64 in the Stacks Project.
AlgebraicGeometry.invertibleCurveDegree_pullback_dualizingSheafOverField_eq_zero_of_isRationalBridge, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/ContractingRationalBridges/DualizingSheafDegree.lean, line 39.
Let
Xbe a proper scheme of dimension one over a fieldkwithH⁰(X, 𝒪_X) = kand at-worst-nodal singularities, and letC ⊆ Xbe a rational bridge. Thendeg(ω_X|_C) = 0, whereω_Xis invertible byisInvertible_dualizingSheafOverField_of_hasAtWorstNodalSingularities.
theorem invertibleCurveDegree_pullback_dualizingSheafOverField_eq_zero_of_isRationalBridge
[IsProper (X ↘ Spec (.of k))] (hdim : topologicalKrullDim X = 1)
[IsIso ((Scheme.ΓSpecIso (.of k)).inv ≫ (X ↘ Spec (.of k)).appTop)]
(hnodal : Stacks.Curves.HasAtWorstNodalSingularities k X)
(C : X.IdealSheafData) (hC : IsRationalBridge k X C) :
haveI := connectedSpace_of_isIso_globalSections k (X ↘ Spec (.of k))
letI hω := isInvertible_dualizingSheafOverField_of_hasAtWorstNodalSingularities k X hdim
hnodal
letI := Stacks.AlgebraicGeometry.Tag09NY.isInvertible_modulePullback C.subschemeι
(Stacks.Duality.dualizingSheafOverField (X ↘ Spec (.of k))) hω
invertibleCurveDegree k (C.subschemeι ≫ (X ↘ Spec (.of k)))
(Stacks.Curves.topologicalKrullDim_subscheme_eq_one_of_isRationalBridge k X hdim hC).le
((Scheme.Modules.pullback C.subschemeι).obj
(Stacks.Duality.dualizingSheafOverField (X ↘ Spec (.of k)))) = 0
Tag 0E65, a lemma
Tag 0E65 in the Stacks Project.
AlgebraicGeometry.exists_iso_sigma_isRationalBridge_baseChange, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/ContractingRationalBridges/BaseChange.lean, line 614. The attribute's comment: “CONDITIONALLY -- this is not an unconditional proof of 0E65: the binder hgeom, geometric integrality of the bridge over its field of global functions, is not a hypothesis of the tag. It cannot be discharged, because the tag's conclusion as stated -- a DISJOINT union -- is false without it, refuted by Stacks.Curves.DegenerateConic.not_exists_iso_sigma_isRationalBridge_degenerateConic for the rational bridge V(T₀² + T₁²) of V(T₂(T₀² + T₁²)) ⊂ P²_ℝ. The tag at its own hypotheses, with the disjointness dropped from the conclusion, is proved unconditionally as AlgebraicGeometry.exists_finset_isRationalBridge_baseChange in ContractingRationalBridges/BaseChangeUnion.lean”.
The disjoint decomposition of a geometrically integral rational bridge. Let
Xbe a proper one-dimensional scheme over a fieldkwithH⁰(X, 𝒪_X) = kand at-worst-nodal singularities, and letC ⊆ Xbe a rational bridge that is geometrically integral over its field of global functions. For every field extensionK/kthe inverse image ofCinX_Kis a finite disjoint union of rational bridges ofX_K, compatibly with their closed immersions intoX_K.Geometric integrality of the bridge is an extra assumption beyond those of [Stacks, Tag 0E65], and the disjointness of the decomposition is false without it: the module docstring above exhibits the plane curve
X = V(T₂(T₀² + T₁²)) ⊂ P²_ℝwhose componentC = V(T₀² + T₁²)is a rational bridge withC_ℂconnected and reducible, andStacks.Curves.DegenerateConic.not_exists_iso_sigma_isRationalBridge_degenerateConicproves that the conclusion below fails for it. So the tag itself is registered onAlgebraicGeometry.exists_finset_isRationalBridge_baseChange, which reaches the scheme-theoretic-union form of the conclusion from the tag's own hypotheses.
public theorem exists_iso_sigma_isRationalBridge_baseChange
(k K : Type u) [Field k] [Field K] [Algebra k K]
(X : Scheme.{u}) [X.Over (Spec (.of k))]
[IsProper (X ↘ Spec (.of k))]
(hdim : topologicalKrullDim X = 1)
[IsIso ((Scheme.ΓSpecIso (.of k)).inv ≫ (X ↘ Spec (.of k)).appTop)]
(hnodal : Stacks.Curves.HasAtWorstNodalSingularities k X)
(C : X.IdealSheafData)
(hC : IsRationalBridge k X C)
(hgeom :
letI : IsIntegral C.subscheme := hC.isIntegral
letI : Field Γ(C.subscheme, ⊤) :=
(isField_of_universallyClosed k
(C.subschemeι ≫ (X ↘ Spec (.of k)))).toField
GeometricallyIntegral C.subscheme.toSpecΓ) :
let g : Spec (.of K) ⟶ Spec (.of k) :=
Spec.map (CommRingCat.ofHom (algebraMap k K))
let Y := (pullback (X ↘ Spec (.of k)) g : Scheme.{u})
let p : Y ⟶ X := pullback.fst (X ↘ Spec (.of k)) g
letI : Y.Over (Spec (.of K)) := ⟨pullback.snd (X ↘ Spec (.of k)) g⟩
letI : IsProper (Y ↘ Spec (.of K)) :=
inferInstanceAs (IsProper (pullback.snd (X ↘ Spec (.of k)) g))
∃ (ι : Type u) (_ : Finite ι) (D : ι → Y.IdealSheafData)
(_ : ∀ i, IsRationalBridge K Y (D i))
(e : (∐ fun i ↦ (D i).subscheme) ≅ (C.comap p).subscheme),
e.hom ≫ (C.comap p).subschemeι =
Sigma.desc (fun i ↦ (D i).subschemeι)
AlgebraicGeometry.exists_iso_sigma_isRationalBridge_baseChange_of_perfectField, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/ContractingRationalBridges/BaseChange.lean, line 954. The attribute's comment: “CONDITIONALLY -- this is not an unconditional proof of 0E65: the binder hgeom, geometric integrality of the bridge over its field of global functions, is not a hypothesis of the tag, and [PerfectField k] is not either. Both are inherited from AlgebraicGeometry.exists_iso_sigma_isRationalBridge_baseChange, which this specialises; see the disclosure there. The tag at its own hypotheses, with the disjointness dropped from the conclusion, is proved unconditionally as AlgebraicGeometry.exists_finset_isRationalBridge_baseChange in ContractingRationalBridges/BaseChangeUnion.lean”.
The disjoint decomposition over a perfect ground field. Specialisation of
AlgebraicGeometry.exists_iso_sigma_isRationalBridge_baseChangeto a perfectk.The general statement no longer carries the two hypotheses this specialisation was introduced to discharge — geometric reducedness of
Xoverkand separability overkof the field of global functions of the bridge are now derived from nodality for an arbitrary ground field, see the implementation notes above — so nothing beyond perfectness ofkseparates the two, and the proof is an application. It is kept because it is the form in which the perfect-field case is cited elsewhere.
public theorem exists_iso_sigma_isRationalBridge_baseChange_of_perfectField
(k K : Type u) [Field k] [PerfectField k] [Field K] [Algebra k K]
(X : Scheme.{u}) [X.Over (Spec (.of k))]
[IsProper (X ↘ Spec (.of k))]
(hdim : topologicalKrullDim X = 1)
[IsIso ((Scheme.ΓSpecIso (.of k)).inv ≫ (X ↘ Spec (.of k)).appTop)]
(hnodal : Stacks.Curves.HasAtWorstNodalSingularities k X)
(C : X.IdealSheafData)
(hC : IsRationalBridge k X C)
(hgeom :
letI : IsIntegral C.subscheme := hC.isIntegral
letI : Field Γ(C.subscheme, ⊤) :=
(isField_of_universallyClosed k
(C.subschemeι ≫ (X ↘ Spec (.of k)))).toField
GeometricallyIntegral C.subscheme.toSpecΓ) :
let g : Spec (.of K) ⟶ Spec (.of k) :=
Spec.map (CommRingCat.ofHom (algebraMap k K))
let Y := (pullback (X ↘ Spec (.of k)) g : Scheme.{u})
let p : Y ⟶ X := pullback.fst (X ↘ Spec (.of k)) g
letI : Y.Over (Spec (.of K)) := ⟨pullback.snd (X ↘ Spec (.of k)) g⟩
letI : IsProper (Y ↘ Spec (.of K)) :=
inferInstanceAs (IsProper (pullback.snd (X ↘ Spec (.of k)) g))
∃ (ι : Type u) (_ : Finite ι) (D : ι → Y.IdealSheafData)
(_ : ∀ i, IsRationalBridge K Y (D i))
(e : (∐ fun i ↦ (D i).subscheme) ≅ (C.comap p).subscheme),
e.hom ≫ (C.comap p).subschemeι =
Sigma.desc (fun i ↦ (D i).subschemeι)
AlgebraicGeometry.exists_finset_isRationalBridge_baseChange, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/ContractingRationalBridges/BaseChangeUnion.lean, line 828. The attribute's comment: “base_change_union”.
[Stacks, Tag 0E65] in the union form. Let
Xbe a proper one-dimensional scheme over a fieldkwithH⁰(X, 𝒪_X) = kand at worst nodal singularities, and letC ⊆ Xbe a rational bridge. For an arbitrary field extensionK/k— no normality, separability, algebraicity or finiteness is assumed — the inverse image ofCin the base changeX_Kis the scheme-theoretic union of a finite set of rational bridges ofX_K, namely of the reduced structures on the irreducible components ofX_Klying overC.The tag asserts a disjoint union, which is false; that erratum is recorded at
AlgebraicGeometry.exists_iso_sigma_isRationalBridge_baseChange, which proves the disjoint form under the extra hypothesis that the bridge is geometrically integral over its field of global functionsk' = Γ(C, 𝒪_C). The dichotomy behind the repair is this: a rational bridge is either geometrically integral overk'— exactly the hypothesis that earlier statement carries, and thenC_Kreally is a disjoint union of[k' ⊗_k K : K]-many bridges — or it acquires precisely two geometric components, meeting in one point and carrying one point ofC ∩ X'each. In the second case the two components ofC_Kmeet, so no disjoint decomposition exists, while the union form is still correct and is what this statement proves.What makes each component come out with complementary degree exactly two is a symmetry: over a separably closed extension the components of
C_Ωall have the same image inXand are therefore conjugate, so their complementary degrees agree (Stacks.Curves.finrank_sup_complementaryCurveIdeal_eq_of_image_eq). The counting identityStacks.Curves.sum_finrank_sup_complementaryCurveIdeal_eqalone does not suffice: it only says that the complementary degrees sum to twice the number of components, which a chain of three components with degrees(1, 4, 1)satisfies just as well.
theorem exists_finset_isRationalBridge_baseChange
(k K : Type u) [Field k] [Field K] [Algebra k K]
(X : Scheme.{u}) [X.Over (Spec (.of k))] [IsProper (X ↘ Spec (.of k))]
(hdim : topologicalKrullDim X = 1)
[IsIso ((Scheme.ΓSpecIso (.of k)).inv ≫ (X ↘ Spec (.of k)).appTop)]
(hnodal : Stacks.Curves.HasAtWorstNodalSingularities k X)
(C : X.IdealSheafData) (hC : IsRationalBridge k X C) :
letI : (pullback (C := Scheme.{u}) (X ↘ Spec (.of k))
(Spec.map (CommRingCat.ofHom (algebraMap k K))) : Scheme.{u}).Over (Spec (.of K)) :=
⟨pullback.snd _ _⟩
letI : IsProper ((pullback (C := Scheme.{u}) (X ↘ Spec (.of k))
(Spec.map (CommRingCat.ofHom (algebraMap k K))) : Scheme.{u}) ↘ Spec (.of K)) :=
inferInstanceAs (IsProper (pullback.snd (X ↘ Spec (.of k))
(Spec.map (CommRingCat.ofHom (algebraMap k K)))))
∃ Λ : Finset (Set (pullback (C := Scheme.{u}) (X ↘ Spec (.of k))
(Spec.map (CommRingCat.ofHom (algebraMap k K))) : Scheme.{u})),
(∀ Z ∈ Λ, IsRationalBridge K (pullback (C := Scheme.{u}) (X ↘ Spec (.of k))
(Spec.map (CommRingCat.ofHom (algebraMap k K))))
(Scheme.IdealSheafData.vanishingIdeal
(TopologicalSpace.Closeds.closure Z))) ∧
C.comap (pullback.fst (X ↘ Spec (.of k))
(Spec.map (CommRingCat.ofHom (algebraMap k K))))
= Λ.inf fun Z => Scheme.IdealSheafData.vanishingIdeal
(TopologicalSpace.Closeds.closure Z)
Tag 0E3N, a lemma
Tag 0E3N in the Stacks Project.
Stacks.Curves.nonempty_pullback_dualizingSheafOverField_iso_contraction_bridge, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/ContractingRationalBridges/DualizingSheafPullback.lean, line 145.
Let
kbe a field, letXbe a proper scheme overkof dimension one withH⁰(X, 𝒪_X) = kand at-worst-nodal singularities, letC ⊆ Xbe a rational bridge and letc : X ⟶ Ybe the contraction ofC, withYoverkthroughg, compatibly withc. Thenc^* ω_Y ≅ ω_X.
theorem nonempty_pullback_dualizingSheafOverField_iso_contraction_bridge
(hdim : topologicalKrullDim X = 1) (hnodal : HasAtWorstNodalSingularities k X)
{C : X.IdealSheafData} {hC : IsRationalBridge k X C} {Y : Scheme.{u}} {c : X ⟶ Y}
(hc : IsContractionOfRationalBridge hC c) (g : Y ⟶ Spec (.of k))
(hcg : c ≫ g = X ↘ Spec (.of k)) :
haveI := isProper_structureMorphism_of_isContractionOfRationalBridge hdim hnodal hc hcg
Nonempty ((Scheme.Modules.pullback c).obj (Stacks.Duality.dualizingSheafOverField g) ≅
Stacks.Duality.dualizingSheafOverField (X ↘ Spec (.of k)))
Tag 0E3P, a lemma
Tag 0E3P in the Stacks Project.
AlgebraicGeometry.isAmple_dualizingSheafOverField_of_hasAtWorstNodalSingularities, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/ContractingRationalBridges/DualizingAmple.lean, line 41.
Let
kbe a field and letXbe a proper scheme overkof dimension one withH⁰(X, 𝒪_X) = k. If the singularities ofXare at worst nodal,Xhas no rational tail and no rational bridge, and the genus ofXis at least two, thenω_Xis an invertible𝒪_X-module and it is ample.
theorem isAmple_dualizingSheafOverField_of_hasAtWorstNodalSingularities
(k : Type u) [Field k] (X : Scheme.{u}) [X.Over (Spec (.of k))]
[IsProper (X ↘ Spec (.of k))] (hdim : topologicalKrullDim X = 1)
[IsIso ((Scheme.ΓSpecIso (.of k)).inv ≫ (X ↘ Spec (.of k)).appTop)]
(hnodal : Stacks.Curves.HasAtWorstNodalSingularities k X)
(htail : ∀ C : X.IdealSheafData, ¬ IsRationalTail k X C)
(hbridge : ∀ C : X.IdealSheafData, ¬ IsRationalBridge k X C)
(hg : 2 ≤ genus (X ↘ Spec (.of k))) :
∃ _ : SheafOfModules.IsInvertible X.toRingedSpace.presheaf
(structureSheafRing X.toRingedSpace).property
(Stacks.Duality.dualizingSheafOverField (X ↘ Spec (.of k))),
Scheme.Modules.IsAmple X (Stacks.Duality.dualizingSheafOverField (X ↘ Spec (.of k)))
Tag 0E3Q, a lemma
Tag 0E3Q in the Stacks Project.
AlgebraicGeometry.IsIteratedContractionOfRationalBridges.isStableContraction, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/ContractingRationalBridges/Terminal.lean, line 270. The attribute's comment: “ω_{X'} is ample”.
Stacks Project, Tag 0E3Q:
ω_{X'}is ample. LetXbe a proper scheme over a fieldkof dimension one withH⁰(X, 𝒪_X) = k, genusg ≥ 2, at-worst-nodal singularities and no rational tails, and letc : X ⟶ X'be the composite of a sequence of contractions of rational bridges (Tag 0E3M) such thatX'has no rational bridge. Thenω_{X'}is invertible and ample; more preciselycsatisfies the conditions of Tag 0E7Q:X'is proper of dimension one with at-worst-nodal singularities,𝒪_{X'} = c_* 𝒪_X,R¹ c_* 𝒪_X = 0, andω_{X'}is ample.The target has no rational tails (
Stacks.Curves.forall_not_isRationalTail_of_pullback_dualizingSheafOverField_iso, fromc^* ω_{X'} ≅ ω_X), so Tag 0E3P applies to it.
theorem isStableContraction
(htail : letI : X.Over (Spec (.of k)) := ⟨fX⟩
∀ C : X.IdealSheafData, ¬ IsRationalTail k X C)
(hg : 2 ≤ genus fX)
(hterminal : ∀ C : Y.IdealSheafData,
letI : Y.Over (Spec (.of k)) := ⟨fY⟩
∀ _ : IsProper (Y ↘ Spec (.of k)), ¬ IsRationalBridge k Y C) :
Stacks.Curves.StableModel.IsStableContraction fX fY c
AlgebraicGeometry.IsIteratedContractionOfRationalBridges.existsUnique_iso, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/ContractingRationalBridges/Terminal.lean, line 309. The attribute's comment: “the morphism X ⟶ X' is independent of choices”.
Stacks Project, Tag 0E3Q: the morphism
X ⟶ X'is independent of choices. Under the hypotheses ofAlgebraicGeometry.IsIteratedContractionOfRationalBridges.isStableContraction, ifc₂ : X ⟶ X'₂is the composite of a second sequence of contractions of rational bridges such thatX'₂has no rational bridge, then there is a unique isomorphisme : X' ≅ X'₂withc ≫ e.hom = c₂. Both composites are stable contractions pulling the dualizing sheaves back toω_X(Tag 0E3N along each chain), soStacks.Curves.StableModel.existsUnique_iso_of_pullback_dualizingSheafOverField_isoapplies.
theorem existsUnique_iso
(htail : letI : X.Over (Spec (.of k)) := ⟨fX⟩
∀ C : X.IdealSheafData, ¬ IsRationalTail k X C)
(hg : 2 ≤ genus fX)
(hterminal : ∀ C : Y.IdealSheafData,
letI : Y.Over (Spec (.of k)) := ⟨fY⟩
∀ _ : IsProper (Y ↘ Spec (.of k)), ¬ IsRationalBridge k Y C)
{Y₂ : Scheme.{u}} {fY₂ : Y₂ ⟶ Spec (.of k)} {c₂ : X ⟶ Y₂}
(hseq₂ : IsIteratedContractionOfRationalBridges k fX fY₂ c₂)
(hterminal₂ : ∀ C : Y₂.IdealSheafData,
letI : Y₂.Over (Spec (.of k)) := ⟨fY₂⟩
∀ _ : IsProper (Y₂ ↘ Spec (.of k)), ¬ IsRationalBridge k Y₂ C) :
∃! e : Y ≅ Y₂, c ≫ e.hom = c₂
AlgebraicGeometry.IsIteratedContractionOfRationalBridges.existsUnique_iso_baseChange, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/ContractingRationalBridges/TerminalBaseChange.lean, line 239. The attribute's comment: “formation of the morphism X ⟶ X' commutes with base field extensions”.
Formation of the contraction
c : X ⟶ Ycommutes with base field extensions: under the hypotheses ofAlgebraicGeometry.IsIteratedContractionOfRationalBridges.isStableContraction, letK/kbe a field extension,X_K = X ×_k KandY_K = Y ×_k KoverK, andc_K : X_K ⟶ Y_Kthe base change ofc. For every sequenced : X_K ⟶ Zof contractions of rational bridges ofX_KoverKsuch thatZhas no rational bridge, there is a unique isomorphisme : Y_K ≅ Zwithc_K ≫ e.hom = d: the morphism the construction produces forX_Kis the base change of the one forX.
theorem existsUnique_iso_baseChange
(htail : letI : X.Over (Spec (.of k)) := ⟨fX⟩
∀ C : X.IdealSheafData, ¬ IsRationalTail k X C)
(hg : 2 ≤ genus fX)
(hterminal : ∀ C : Y.IdealSheafData,
letI : Y.Over (Spec (.of k)) := ⟨fY⟩
∀ _ : IsProper (Y ↘ Spec (.of k)), ¬ IsRationalBridge k Y C)
(K : Type u) [Field K] [Algebra k K] {Z : Scheme.{u}} {fZ : Z ⟶ Spec (.of K)}
{d : pullback fX (Spec.map (CommRingCat.ofHom (algebraMap k K))) ⟶ Z}
(hd : IsIteratedContractionOfRationalBridges K
(pullback.snd fX (Spec.map (CommRingCat.ofHom (algebraMap k K)))) fZ d)
(hdterminal : ∀ C : Z.IdealSheafData,
letI : Z.Over (Spec (.of K)) := ⟨fZ⟩
∀ _ : IsProper (Z ↘ Spec (.of K)), ¬ IsRationalBridge K Z C) :
∃! e : pullback fY (Spec.map (CommRingCat.ofHom (algebraMap k K))) ≅ Z,
pullback.map fX (Spec.map (CommRingCat.ofHom (algebraMap k K))) fY
(Spec.map (CommRingCat.ofHom (algebraMap k K))) c (𝟙 _) (𝟙 _)
(by rw [Category.comp_id, hseq.comp_structureMorphism]) (by simp) ≫ e.hom = d
Sources
Section53.25 Contracting to a stable curve#
Section 53.25 of the Stacks Project, Tag 0E7N. 4 tags here are carried by 4 declarations of the repository (all in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 0E7N, the section
Tag 0E7N in the Stacks Project.
Stacks.Curves.StableModel.exists_isStableContraction_comp_tails_bridges, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/StableContraction/StableModelCharacterization.lean, line 106.
Stacks Project, Tag 0E7N: contracting to a stable curve. Let
Xbe a proper scheme over a fieldkof dimension one withH⁰(X, 𝒪_X) = k, genusg ≥ 2and at-worst-nodal singularities. Contract rational tails until none are left,t : X ⟶ X₁([Stacks, Tag 0E3L]), and then rational bridges until none are left,d : X₁ ⟶ Y([Stacks, Tag 0E3Q]). The compositec = t ≫ dis a morphism overksuch thatYis proper overkof dimension one with at-worst-nodal singularities,H⁰(Y, 𝒪_Y) = k,Yhas genusg,𝒪_Y = c_*𝒪_X,R¹c_*𝒪_X = 0, andω_Yis ample. These conditions characterizec([Stacks, Tag 0E7Q]): anyc' : X ⟶ Y'satisfying the conditions ofIsStableContractionis related tocby exactly one isomorphisme : Y ≅ Y'withc ≫ e.hom = c'.
theorem exists_isStableContraction_comp_tails_bridges (f : X ⟶ Spec (.of k)) [IsProper f]
(hdim : topologicalKrullDim X = 1) [IsIso ((Scheme.ΓSpecIso (.of k)).inv ≫ f.appTop)]
(hgenus : 2 ≤ genus f)
(hnodal : letI : X.Over (Spec (.of k)) := ⟨f⟩
Stacks.Curves.HasAtWorstNodalSingularities k X) :
∃ (X₁ : Scheme.{u}) (f₁ : X₁ ⟶ Spec (.of k)) (t : X ⟶ X₁) (Y : Scheme.{u})
(gY : Y ⟶ Spec (.of k)) (d : X₁ ⟶ Y),
IsIteratedContractionOfRationalTails k f f₁ t ∧
(∀ C : X₁.IdealSheafData, ¬ @IsRationalTail k _ X₁ ⟨f₁⟩ C) ∧
IsIteratedContractionOfRationalBridges k f₁ gY d ∧
(∀ C : Y.IdealSheafData,
letI : Y.Over (Spec (.of k)) := ⟨gY⟩
∀ _ : IsProper (Y ↘ Spec (.of k)), ¬ IsRationalBridge k Y C) ∧
IsStableContraction f gY (t ≫ d) ∧
IsIso ((Scheme.ΓSpecIso (.of k)).inv ≫ gY.appTop) ∧
genus gY = genus f ∧
∀ (Y' : Scheme.{u}) (gY' : Y' ⟶ Spec (.of k)) (c' : X ⟶ Y'),
IsStableContraction f gY' c' → ∃! e : Y ≅ Y', (t ≫ d) ≫ e.hom = c'
Tag 0E7P, a lemma
Tag 0E7P in the Stacks Project.
Stacks.Curves.DualizingPullback.nonempty_pullback_dualizingSheafOverField_iso, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/StableContraction/DualizingPullbackGorenstein.lean, line 53. The attribute's comment: “Stated for m ≥ 1. For m ≤ 0 the statement fails: let X = V(xy) ⊆ ℙ²_k and let c contract one line C to a point. Then (1)–(3) hold with m = 0 (and with m = -1), but ω_X|_C ≅ 𝒪_C(-1) while (c^*ω_Y)|_C ≅ 𝒪_C.”.
Stacks Project, Tag 0E7P. Let
c : X ⟶ Ybe a morphism of proper schemes over a fieldkwith𝒪_Y = c_*𝒪_XandR^1 c_*𝒪_X = 0, whereXandYare reduced, Gorenstein and of dimension one. IfH^1(X, ω_X^{⊗ m}) = 0andω_X^{⊗ m}is globally generated for somem ≥ 1, thenc^*ω_Y ≅ ω_X.
theorem nonempty_pullback_dualizingSheafOverField_iso
(c : X ⟶ Y) (g : Y ⟶ Spec (.of k)) [IsProper (c ≫ g)] [IsProper g]
(hO : IsIso (SheafOfModules.unitToPushforwardObjUnit c.toRingCatSheafHom))
(hR1 : IsZero (((Scheme.Modules.pushforward c).rightDerived 1).obj
(SheafOfModules.unit X.ringCatSheaf)))
[IsReduced X] [IsReduced Y] [IsGorenstein X] [IsGorenstein Y]
(hdimX : topologicalKrullDim X = 1) (hdimY : topologicalKrullDim Y = 1)
(m : ℕ) (hm : 1 ≤ m)
(hH1 : IsZero (cohomologyOverField k (c ≫ g)
(tensorSheafNPow X.toRingedSpace (dualizingSheafOverField (c ≫ g)) m) 1))
(hgen : SheafOfModules.IsGeneratedByGlobalSections
(tensorSheafNPow X.toRingedSpace (dualizingSheafOverField (c ≫ g)) m : X.Modules)) :
Nonempty ((Scheme.Modules.pullback c).obj (dualizingSheafOverField g) ≅
dualizingSheafOverField (c ≫ g))
Tag 0E7Q, a lemma
Tag 0E7Q in the Stacks Project.
Stacks.Curves.StableModel.existsUnique_isStableContraction, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/StableContraction/StableModelCharacterization.lean, line 84. The attribute's comment: “Condition (3) includes that ω_Y is invertible, as ampleness is defined for invertible modules. Uniqueness up to unique isomorphism: any two such morphisms are related by exactly one isomorphism of targets under X.”.
Stacks Project, Tag 0E7Q. Let
Xbe a proper scheme over a fieldkof dimension one withH⁰(X, 𝒪_X) = k, genusg ≥ 2and at-worst-nodal singularities. There is a morphismc : X ⟶ Yof schemes overksuch that 1.Yis proper overk,dim Y = 1, andYhas at-worst-nodal singularities, 2.𝒪_Y = c_*𝒪_XandR¹c_*𝒪_X = 0, and 3.ω_Yis ample onY(
IsStableContraction f gY c), and it is unique up to unique isomorphism: any two suchc : X ⟶ Y,c' : X ⟶ Y'are related by exactly one isomorphisme : Y ≅ Y'withc ≫ e = c'.
theorem existsUnique_isStableContraction (f : X ⟶ Spec (.of k)) [IsProper f]
(hdim : topologicalKrullDim X = 1) [IsIso ((Scheme.ΓSpecIso (.of k)).inv ≫ f.appTop)]
(hgenus : 2 ≤ genus f)
(hnodal : letI : X.Over (Spec (.of k)) := ⟨f⟩
Stacks.Curves.HasAtWorstNodalSingularities k X) :
(∃ (Y : Scheme.{u}) (gY : Y ⟶ Spec (.of k)) (c : X ⟶ Y), IsStableContraction f gY c) ∧
∀ (Y Y' : Scheme.{u}) (gY : Y ⟶ Spec (.of k)) (gY' : Y' ⟶ Spec (.of k)) (c : X ⟶ Y)
(c' : X ⟶ Y'), IsStableContraction f gY c → IsStableContraction f gY' c' →
∃! e : Y ≅ Y', c ≫ e.hom = c'
Tag 0E8X, a lemma
Tag 0E8X in the Stacks Project.
AlgebraicGeometry.isRelativelyVeryAmple_tensorPower_three_dualizingSheafOverField_and_isZero_cohomology_one, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Curves/StableContraction/TricanonicalVeryAmple.lean, line 291.
Stacks Project, Tag 0E8X. Let
Xbe a proper scheme of dimension one over a fieldkwithH⁰(X, 𝒪_X) = k, of genusg ≥ 2, with at-worst-nodal singularities, and assume the dualizing sheafω_Xis ample. Thenω_X^{⊗ 3}is very ample andH¹(X, ω_X^{⊗ 3}) = 0.
ω_Xis invertible sinceXis Gorenstein ([Stacks, Tag 0E37]).Xhas no rational tail, soω_X^{⊗ 3}is globally generated ([Stacks, Tag 0E3K]); its sections define a morphism to projective space, which is a closed immersion once it is one after base change tok̄([Stacks, Tag 02L6]). Overk̄the base change is again nodal of genusgwith ample dualizing sheaf the pullback ofω_X([Stacks, Tag 0E32]), andH¹(ℐ_Z ω^{⊗ 3}) = 0for every degree-twoZgives the criterion of [Stacks, Tag 0E8T].
theorem isRelativelyVeryAmple_tensorPower_three_dualizingSheafOverField_and_isZero_cohomology_one
(hdim : topologicalKrullDim X = 1) (hg : 2 ≤ genus (X ↘ Spec (.of k)))
(hnodal : Stacks.Curves.HasAtWorstNodalSingularities k X)
(hω : haveI := connectedSpace_of_isIso_globalSections k (X ↘ Spec (.of k))
letI := isInvertible_dualizingSheafOverField_of_hasAtWorstNodalSingularities k X hdim hnodal
Scheme.Modules.IsAmple X (Stacks.Duality.dualizingSheafOverField (X ↘ Spec (.of k)))) :
haveI := connectedSpace_of_isIso_globalSections k (X ↘ Spec (.of k))
letI := isInvertible_dualizingSheafOverField_of_hasAtWorstNodalSingularities k X hdim hnodal
Stacks.Tag01VMVeryAmple.IsRelativelyVeryAmple (X ↘ Spec (.of k))
(Stacks.SheafOfModules.Invertible.tensorPower X.presheaf X.ringCatSheaf.2
(Stacks.Duality.dualizingSheafOverField (X ↘ Spec (.of k))) 3) ∧
IsZero (cohomologyOverField k (X ↘ Spec (.of k))
(Stacks.SheafOfModules.Invertible.tensorPower X.presheaf X.ringCatSheaf.2
(Stacks.Duality.dualizingSheafOverField (X ↘ Spec (.of k))) 3) 1)
Sources
Loading dependency explorer…
The dependency explorer needs JavaScript and its graph data.