Module

Basic.lean

Nyll.SchemeTheory.Divisors.Basic
33 declarations indexed from sourceView source ↗

Effective Cartier divisors and normal crossings

This file supplies scheme-theoretic boundary data using Scheme.IdealSheafData. The stalk ideal is constructed canonically as the supremum of the images of the ideal on affine neighbourhoods. Effective Cartier and normal-crossings conditions are then stated as local properties of this actual ideal-sheaf data.

The closed support and radical of an ideal sheaf are already provided by Scheme.IdealSheafData.support and Scheme.IdealSheafData.radical.

Declarations

AlgebraicGeometry.Scheme.IsRegularAt

A scheme is regular at a point when its local ring there is regular.

Source context 5 commands

Surrounding namespaces, section variables, and local commands at this declaration.

open CategoryTheory
open scoped BigOperators
namespace AlgebraicGeometry
universe u
namespace Scheme
def IsRegularAt (X : Scheme.{u}) (x : X) : Prop
AlgebraicGeometry.Scheme.IsRegularAlong

A scheme is regular along a set when it is regular at every point of it.

Source context 5 commands

Surrounding namespaces, section variables, and local commands at this declaration.

open CategoryTheory
open scoped BigOperators
namespace AlgebraicGeometry
universe u
namespace Scheme
def IsRegularAlong (X : Scheme.{u}) (Z : Set X) : Prop
AlgebraicGeometry.Scheme.IsRegularSystemOfParameters

A finite family in a local ring is a regular system of parameters when it is a regular sequence and generates the maximal ideal.

Source context 5 commands

Surrounding namespaces, section variables, and local commands at this declaration.

open CategoryTheory
open scoped BigOperators
namespace AlgebraicGeometry
universe u
namespace Scheme
def IsRegularSystemOfParameters
    {R : Type u} [CommRing R] [IsLocalRing R] {d : ℕ}
    (t : Fin d → R) : Prop
AlgebraicGeometry.Scheme.IsRegularSystemOfParameters.map_ringEquiv

Ring isomorphisms transport a regular system of parameters by mapping its concrete regular sequence and its maximal ideal.

Source context 5 commands

Surrounding namespaces, section variables, and local commands at this declaration.

open CategoryTheory
open scoped BigOperators
namespace AlgebraicGeometry
universe u
namespace Scheme
theorem IsRegularSystemOfParameters.map_ringEquiv
    {R S : Type u} [CommRing R] [CommRing S]
    [IsLocalRing R] [IsLocalRing S] {d : ℕ} {t : Fin d → R}
    (h : IsRegularSystemOfParameters t) (e : R ≃+* S) :
    IsRegularSystemOfParameters (e ∘ t)
AlgebraicGeometry.Scheme.initialParameterProduct

The product of the first r members of a parameter family.

Source context 5 commands

Surrounding namespaces, section variables, and local commands at this declaration.

open CategoryTheory
open scoped BigOperators
namespace AlgebraicGeometry
universe u
namespace Scheme
def initialParameterProduct
    {R : Type u} [CommMonoid R] {d : ℕ}
    (t : Fin d → R) (r : ℕ) (hr : r ≤ d) : R
AlgebraicGeometry.Scheme.IdealSheafData.stalkIdeal

The ideal in the local ring obtained from an ideal sheaf.

It is the supremum of the images of the ideals on all affine neighbourhoods of the point. This avoids choosing a particular affine chart and is the direct ideal-theoretic analogue of forming the stalk of a subsheaf.

Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

open CategoryTheory
open scoped BigOperators
namespace AlgebraicGeometry
universe u
namespace Scheme
namespace IdealSheafData
variable {X : Scheme.{u}}
def stalkIdeal (I : X.IdealSheafData) (x : X) :
    Ideal (X.presheaf.stalk x)
AlgebraicGeometry.Scheme.IdealSheafData.map_ideal_le_stalkIdeal

The contribution of any affine neighbourhood is contained in the stalk ideal.

Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

open CategoryTheory
open scoped BigOperators
namespace AlgebraicGeometry
universe u
namespace Scheme
namespace IdealSheafData
variable {X : Scheme.{u}}
lemma map_ideal_le_stalkIdeal (I : X.IdealSheafData) (x : X)
    (U : X.affineOpens) (hx : x ∈ U.1) :
    (I.ideal U).map (X.presheaf.germ U.1 x hx).hom ≤ I.stalkIdeal x
AlgebraicGeometry.Scheme.IdealSheafData.stalkIdeal_mono

Taking the stalk ideal is monotone in the ideal sheaf.

Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

open CategoryTheory
open scoped BigOperators
namespace AlgebraicGeometry
universe u
namespace Scheme
namespace IdealSheafData
variable {X : Scheme.{u}}
lemma stalkIdeal_mono {I J : X.IdealSheafData} (h : I ≤ J) (x : X) :
    I.stalkIdeal x ≤ J.stalkIdeal x
AlgebraicGeometry.Scheme.IdealSheafData.stalkIdeal_top

The stalk ideal of the unit ideal sheaf is the unit ideal.

Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

open CategoryTheory
open scoped BigOperators
namespace AlgebraicGeometry
universe u
namespace Scheme
namespace IdealSheafData
variable {X : Scheme.{u}}
lemma stalkIdeal_top (x : X) :
    (⊤ : X.IdealSheafData).stalkIdeal x = ⊤
AlgebraicGeometry.Scheme.IdealSheafData.IsReduced

An ideal sheaf is radical when it agrees with its sheafwise radical. Equivalently, it carries the reduced closed-subscheme structure on its support.

Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

open CategoryTheory
open scoped BigOperators
namespace AlgebraicGeometry
universe u
namespace Scheme
namespace IdealSheafData
variable {X : Scheme.{u}}
def IsReduced (I : X.IdealSheafData) : Prop
AlgebraicGeometry.Scheme.IdealSheafData.IsEffectiveCartierAt

An ideal sheaf is an effective Cartier divisor at x if it is generated on an affine neighbourhood of x by a non-zero-divisor.

Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

open CategoryTheory
open scoped BigOperators
namespace AlgebraicGeometry
universe u
namespace Scheme
namespace IdealSheafData
variable {X : Scheme.{u}}
def IsEffectiveCartierAt (I : X.IdealSheafData) (x : X) : Prop
AlgebraicGeometry.Scheme.IdealSheafData.IsEffectiveCartier

An ideal sheaf defines an effective Cartier divisor if it does so at every point.

Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

open CategoryTheory
open scoped BigOperators
namespace AlgebraicGeometry
universe u
namespace Scheme
namespace IdealSheafData
variable {X : Scheme.{u}}
def IsEffectiveCartier (I : X.IdealSheafData) : Prop
AlgebraicGeometry.Scheme.IdealSheafData.isEffectiveCartier_top

The unit ideal sheaf is the empty effective Cartier divisor.

Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

open CategoryTheory
open scoped BigOperators
namespace AlgebraicGeometry
universe u
namespace Scheme
namespace IdealSheafData
variable {X : Scheme.{u}}
lemma isEffectiveCartier_top :
    IsEffectiveCartier (⊤ : X.IdealSheafData)
AlgebraicGeometry.Scheme.IdealSheafData.IsStrictNormalCrossingsAt

An ideal sheaf has strict normal crossings at x when the ambient local ring is regular and its stalk ideal is generated by a product of an initial segment of a regular system of parameters. This pointwise predicate is intended for points in the support.

Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

open CategoryTheory
open scoped BigOperators
namespace AlgebraicGeometry
universe u
namespace Scheme
namespace IdealSheafData
variable {X : Scheme.{u}}
def IsStrictNormalCrossingsAt (I : X.IdealSheafData) (x : X) : Prop
AlgebraicGeometry.Scheme.IdealSheafData.IsStrictNormalCrossings

An ideal sheaf has strict normal crossings if it has strict normal crossings at every point of its support.

Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

open CategoryTheory
open scoped BigOperators
namespace AlgebraicGeometry
universe u
namespace Scheme
namespace IdealSheafData
variable {X : Scheme.{u}}
def IsStrictNormalCrossings (I : X.IdealSheafData) : Prop
AlgebraicGeometry.Scheme.IdealSheafData.IsNormalCrossingsAt

An ideal sheaf has normal crossings at x when an étale neighbourhood whose image contains x makes its pullback a strict-normal-crossings ideal sheaf.

Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

open CategoryTheory
open scoped BigOperators
namespace AlgebraicGeometry
universe u
namespace Scheme
namespace IdealSheafData
variable {X : Scheme.{u}}
def IsNormalCrossingsAt (I : X.IdealSheafData) (x : X) : Prop
AlgebraicGeometry.Scheme.IdealSheafData.IsNormalCrossings

An ideal sheaf has normal crossings if it does so at every point of its support.

Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

open CategoryTheory
open scoped BigOperators
namespace AlgebraicGeometry
universe u
namespace Scheme
namespace IdealSheafData
variable {X : Scheme.{u}}
def IsNormalCrossings (I : X.IdealSheafData) : Prop
AlgebraicGeometry.Scheme.IdealSheafData.IsAmbientRegularAlongSupport

The ambient scheme is regular along the support of an ideal sheaf.

Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

open CategoryTheory
open scoped BigOperators
namespace AlgebraicGeometry
universe u
namespace Scheme
namespace IdealSheafData
variable {X : Scheme.{u}}
def IsAmbientRegularAlongSupport (I : X.IdealSheafData) : Prop
AlgebraicGeometry.Scheme.IdealSheafData.IsStrictNormalCrossings.isAmbientRegularAlongSupport

Strict normal crossings force regularity of the ambient scheme along the support.

Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

open CategoryTheory
open scoped BigOperators
namespace AlgebraicGeometry
universe u
namespace Scheme
namespace IdealSheafData
variable {X : Scheme.{u}}
lemma IsStrictNormalCrossings.isAmbientRegularAlongSupport
    {I : X.IdealSheafData} (hI : I.IsStrictNormalCrossings) :
    I.IsAmbientRegularAlongSupport
AlgebraicGeometry.Scheme.IdealSheafData.IsStrictNormalCrossings.isNormalCrossings

Strict normal crossings are normal crossings, using the identity étale neighbourhood.

Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

open CategoryTheory
open scoped BigOperators
namespace AlgebraicGeometry
universe u
namespace Scheme
namespace IdealSheafData
variable {X : Scheme.{u}}
lemma IsStrictNormalCrossings.isNormalCrossings
    {I : X.IdealSheafData} (hI : I.IsStrictNormalCrossings) :
    I.IsNormalCrossings
AlgebraicGeometry.Scheme.EffectiveCartierDivisor

An effective Cartier divisor on a scheme, represented by its ideal sheaf.

Source context 5 commands

Surrounding namespaces, section variables, and local commands at this declaration.

open CategoryTheory
open scoped BigOperators
namespace AlgebraicGeometry
universe u
namespace Scheme
def EffectiveCartierDivisor (X : Scheme.{u})
Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

open CategoryTheory
open scoped BigOperators
namespace AlgebraicGeometry
universe u
namespace Scheme
namespace EffectiveCartierDivisor
variable {X : Scheme.{u}}
instance : Coe (EffectiveCartierDivisor X) X.IdealSheafData
AlgebraicGeometry.Scheme.EffectiveCartierDivisor.empty

The empty effective Cartier divisor.

Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

open CategoryTheory
open scoped BigOperators
namespace AlgebraicGeometry
universe u
namespace Scheme
namespace EffectiveCartierDivisor
variable {X : Scheme.{u}}
def empty (X : Scheme.{u}) : EffectiveCartierDivisor X
AlgebraicGeometry.Scheme.EffectiveCartierDivisor.support

The closed support of an effective Cartier divisor.

Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

open CategoryTheory
open scoped BigOperators
namespace AlgebraicGeometry
universe u
namespace Scheme
namespace EffectiveCartierDivisor
variable {X : Scheme.{u}}
def support (D : EffectiveCartierDivisor X) : TopologicalSpace.Closeds X
AlgebraicGeometry.Scheme.EffectiveCartierDivisor.support_empty

The empty divisor has empty support.

Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

open CategoryTheory
open scoped BigOperators
namespace AlgebraicGeometry
universe u
namespace Scheme
namespace EffectiveCartierDivisor
variable {X : Scheme.{u}}
lemma support_empty (X : Scheme.{u}) :
    (empty X).support = ⊥
AlgebraicGeometry.Scheme.EffectiveCartierDivisor.IsReduced

A reduced effective Cartier divisor has radical ideal sheaf.

Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

open CategoryTheory
open scoped BigOperators
namespace AlgebraicGeometry
universe u
namespace Scheme
namespace EffectiveCartierDivisor
variable {X : Scheme.{u}}
def IsReduced (D : EffectiveCartierDivisor X) : Prop
AlgebraicGeometry.Scheme.EffectiveCartierDivisor.isReduced_empty

The empty effective Cartier divisor is reduced.

Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

open CategoryTheory
open scoped BigOperators
namespace AlgebraicGeometry
universe u
namespace Scheme
namespace EffectiveCartierDivisor
variable {X : Scheme.{u}}
lemma isReduced_empty (X : Scheme.{u}) :
    (empty X).IsReduced
AlgebraicGeometry.Scheme.EffectiveCartierDivisor.IsStrictNormalCrossingsAt

Strict normal crossings at a point of an effective Cartier divisor.

Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

open CategoryTheory
open scoped BigOperators
namespace AlgebraicGeometry
universe u
namespace Scheme
namespace EffectiveCartierDivisor
variable {X : Scheme.{u}}
def IsStrictNormalCrossingsAt (D : EffectiveCartierDivisor X) (x : X) : Prop
AlgebraicGeometry.Scheme.EffectiveCartierDivisor.IsStrictNormalCrossings

Strict normal crossings for an effective Cartier divisor.

Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

open CategoryTheory
open scoped BigOperators
namespace AlgebraicGeometry
universe u
namespace Scheme
namespace EffectiveCartierDivisor
variable {X : Scheme.{u}}
def IsStrictNormalCrossings (D : EffectiveCartierDivisor X) : Prop
AlgebraicGeometry.Scheme.EffectiveCartierDivisor.IsNormalCrossingsAt

Normal crossings at a point of an effective Cartier divisor.

Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

open CategoryTheory
open scoped BigOperators
namespace AlgebraicGeometry
universe u
namespace Scheme
namespace EffectiveCartierDivisor
variable {X : Scheme.{u}}
def IsNormalCrossingsAt (D : EffectiveCartierDivisor X) (x : X) : Prop
AlgebraicGeometry.Scheme.EffectiveCartierDivisor.IsNormalCrossings

Normal crossings for an effective Cartier divisor.

Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

open CategoryTheory
open scoped BigOperators
namespace AlgebraicGeometry
universe u
namespace Scheme
namespace EffectiveCartierDivisor
variable {X : Scheme.{u}}
def IsNormalCrossings (D : EffectiveCartierDivisor X) : Prop
AlgebraicGeometry.Scheme.EffectiveCartierDivisor.IsAmbientRegularAlongSupport

The ambient scheme is regular along the support of an effective Cartier divisor.

Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

open CategoryTheory
open scoped BigOperators
namespace AlgebraicGeometry
universe u
namespace Scheme
namespace EffectiveCartierDivisor
variable {X : Scheme.{u}}
def IsAmbientRegularAlongSupport (D : EffectiveCartierDivisor X) : Prop
AlgebraicGeometry.Scheme.EffectiveCartierDivisor.IsStrictNormalCrossings.isNormalCrossings

A strict-normal-crossings effective Cartier divisor is a normal-crossings divisor.

Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

open CategoryTheory
open scoped BigOperators
namespace AlgebraicGeometry
universe u
namespace Scheme
namespace EffectiveCartierDivisor
variable {X : Scheme.{u}}
lemma IsStrictNormalCrossings.isNormalCrossings
    {D : EffectiveCartierDivisor X} (hD : D.IsStrictNormalCrossings) :
    D.IsNormalCrossings