Cartier divisors on an integral scheme #
This file defines Cartier divisors without inventing a meromorphic-function sheaf that Mathlib
does not yet have. For an integral scheme X, the function field K(X) is upstream. At a point
x, the local Cartier group is
K(X)ˣ / 𝒪_{X,x}ˣ,
where local units enter K(X)ˣ through the canonical map from the stalk. A Cartier divisor is a
section of these stalkwise quotients that is locally represented by one nonzero rational
function. This is the usual local-equations definition of a Cartier divisor on an integral
scheme, expressed without a sheaf quotient.
The construction provides:
- the abelian group
Scheme.CartierDivisor X; - principal divisors and the explicit quotient
CartierDivisor.ClassGroup X; - codimension-one coefficients through Mathlib's
Scheme.ord; - pullback from explicit function-field data that carries local units to local units.
Deliberate boundaries #
Mathlib v4.32.1 does not construct a function-field map for an arbitrary morphism of integral
schemes, so this file does not claim an unconditional pullback. CartierPullbackData states the
exact missing hypotheses. Likewise, coefficient is not packaged as an AlgebraicCycle: the
upstream order-of-vanishing API does not yet prove local finiteness of its support. No cycle
infrastructure is duplicated here.
Units in the local ring at x, viewed as units of the function field.
Equations
- X.localUnitHom x = Units.map ↑(algebraMap ↑(X.presheaf.stalk x) ↑X.functionField)
Instances For
Rational functions that are units in the local ring at x, in additive notation.
Equations
- X.localUnits x = Subgroup.toAddSubgroup (X.localUnitHom x).range
Instances For
A germ of a Cartier divisor at x: a rational function modulo local units.
Equations
- X.LocalCartierClass x = (Additive (↑X.functionField)ˣ ⧸ X.localUnits x)
Instances For
The local Cartier class of a nonzero rational function.
Equations
- X.localCartierClass x = QuotientAddGroup.mk' (X.localUnits x)
Instances For
Two local equations give the same germ precisely when their quotient is a local unit.
A family of local Cartier classes is Cartier when it is locally represented by a single nonzero rational function.
Equations
- X.IsCartier D = ∀ (x : ↥X), ∃ (U : X.Opens), x ∈ U ∧ ∃ (f : Additive (↑X.functionField)ˣ), ∀ y ∈ U, D y = (X.localCartierClass y) f
Instances For
The additive subgroup of locally representable families: Cartier divisors on X.
Equations
- X.cartierDivisor = { carrier := X.IsCartier, add_mem' := ⋯, zero_mem' := ⋯, neg_mem' := ⋯ }
Instances For
Cartier divisors on an integral scheme.
Equations
Instances For
Cartier divisors are equal when all of their local classes are equal.
Every Cartier divisor admits a rational local equation around every point.
Principal Cartier divisors, as an additive homomorphism from the multiplicative function field written additively.
Equations
- AlgebraicGeometry.Scheme.CartierDivisor.principal X = { toFun := fun (f : Additive (↑X.functionField)ˣ) => ⟨fun (x : ↥X) => (X.localCartierClass x) f, ⋯⟩, map_zero' := ⋯, map_add' := ⋯ }
Instances For
The principal divisor attached to a nonzero rational function.
Equations
Instances For
The subgroup of principal Cartier divisors.
Equations
Instances For
Cartier divisor classes: Cartier divisors modulo principal equivalence.
Equations
Instances For
The quotient map from Cartier divisors to Cartier divisor classes.
Equations
Instances For
The quotient relation defining Cartier divisor classes.
Explicit principal-equivalence form of the quotient relation.
Order of vanishing of nonzero rational functions, as an additive homomorphism.
Equations
- AlgebraicGeometry.Scheme.CartierDivisor.ordUnitHom x = { toFun := fun (f : Additive (↑X.functionField)ˣ) => AlgebraicGeometry.Scheme.ord (↑(Additive.toMul f)) x, map_zero' := ⋯, map_add' := ⋯ }
Instances For
Order of vanishing descends to a local Cartier class because local units have order zero.
Equations
Instances For
The codimension-one coefficient of a Cartier divisor. At other points this uses the upstream
junk value 0 of Scheme.ord.
Equations
Instances For
Data sufficient to pull Cartier divisors back along a scheme morphism.
The field map and the condition that it carries local units to local units are explicit because Mathlib v4.32.1 provides no such map for an arbitrary scheme morphism.
Instances For
The induced map on local Cartier classes.
Equations
- AlgebraicGeometry.Scheme.CartierPullbackData.localMap f p x = QuotientAddGroup.map (Y.localUnits (f x)) (X.localUnits x) p.fieldMap ⋯
Instances For
Pullback of Cartier divisors from explicit compatible function-field data.
Equations
- One or more equations did not get rendered due to their size.