Cycles and divisors
Algebraic Cycles
AbsAlgebraicCycle — Type
AbsAlgebraicCycle{CoveredSchemeType<:AbsCoveredScheme, CoefficientRingType<:Ring}An algebraic cycle $D$ on a (locally) Noetherian integral scheme $X$ with coefficients in a ring $R$ is a formal linear combination $\sum_i a_i D_i$ with $D_i \subseteq X$ integral, closed subschemes and the $a_i \in R$.
Such a cycle is represented non-uniquely as a formal sum $E = \sum_l b_l \mathcal{I}_l$ of equidimensional ideal sheaves $\mathcal{I}_l \subseteq \mathcal{O}_X$. For an equidimensional ideal sheaf $\mathcal{I}$ its interpretation as a cycle is as follows: Let $V(\mathcal{I})=E_{1} \cup \dots \cup E_{n}$ be the decomposition of the vanishing locus of $\mathcal{I}$ into irreducible components $E_i=V(\mathcal{P}_i)$ with $\mathcal{P}_i$ prime. Then $E$ corresponds to the cycle $D = \sum_{i=1}^{n} \mathrm{colength}_{\mathcal{P}_i}(\mathcal{I})E_i$.
Examples
julia> P2 = projective_space(QQ,2); (s0,s1,s2) = homogeneous_coordinates(P2);
julia> I = ideal_sheaf(P2,ideal([s0,s1^2]))
Sheaf of ideals
on scheme over QQ covered with 3 patches
1: [(s1//s0), (s2//s0)] affine 2-space
2: [(s0//s1), (s2//s1)] affine 2-space
3: [(s0//s2), (s1//s2)] affine 2-space
with restrictions
1: Ideal (1, (s1//s0)^2)
2: Ideal ((s0//s1), 1)
3: Ideal ((s0//s2), (s1//s2)^2)
julia> D = algebraic_cycle(I)
Effective algebraic cycle
on scheme over QQ covered with 3 patches
with coefficients in integer ring
given as the formal sum of
1 * sheaf of ideals
julia> irreducible_decomposition(D)
Effective algebraic cycle
on scheme over QQ covered with 3 patches
with coefficients in integer ring
given as the formal sum of
2 * sheaf of prime ideals
sourceConstructors
algebraic_cycle — Method
algebraic_cycle(X::AbsCoveredScheme, R::Ring) -> AlgebraicCycleReturn the zero AlgebraicCycle over X with coefficients in R.
Examples
julia> P, (x, y, z) = graded_polynomial_ring(QQ, [:x, :y, :z]);
julia> I = ideal([x^3-y^2*z]);
julia> Y = proj(P, I);
julia> Ycov = covered_scheme(Y);
julia> R = ZZ;
julia> algebraic_cycle(Ycov, R)
Zero algebraic cycle
on scheme over QQ covered with 3 patches
with coefficients in integer ringsourcealgebraic_cycle — Method
algebraic_cycle(I::AbsIdealSheaf, R::Ring) -> AlgebraicCycleReturn the AlgebraicCycle $D = 1 ⋅ I$ with coefficients in $R$ for a sheaf of equidimensional ideals $I$.
Note that $I$ must be equidimensional.
Examples
julia> P, (x, y, z) = graded_polynomial_ring(QQ, [:x, :y, :z]);
julia> I = ideal([x^3-y^2*z]);
julia> Y = proj(P);
julia> II = IdealSheaf(Y, I);
julia> R = ZZ;
julia> algebraic_cycle(II, R)
Effective algebraic cycle
on scheme over QQ covered with 3 patches
with coefficients in integer ring
given as the formal sum of
1 * sheaf of ideals
sourcealgebraic_cycle — Method
algebraic_cycle(I::AbsIdealSheaf) -> AlgebraicCycleReturn the AlgebraicCycle $D = 1 ⋅ I$ with coefficients in $ℤ$ for a sheaf of equidimensional ideals $I$.
Examples
julia> P, (x, y, z) = graded_polynomial_ring(QQ, [:x, :y, :z]);
julia> I = ideal([x^3-y^2*z]);
julia> Y = proj(P);
julia> II = IdealSheaf(Y, I);
julia> R = ZZ;
julia> algebraic_cycle(II, R)
Effective algebraic cycle
on scheme over QQ covered with 3 patches
with coefficients in integer ring
given as the formal sum of
1 * sheaf of idealssourceProperties
ambient_scheme — Method
components — Method
components(D::AbsAlgebraicCycle)Return a list of ideal sheaves such that D is a linear combination of the corresponding cycles.
The order of the components may change in different julia sessions. It is however consistent with the printing.
The ideal sheaves are only guaranteed equidimensional and may carry multiplicities. See irreducible_decomposition(::AbsAlgebraicCycle) for the more conventional decomposition.
irreducible_decomposition — Method
irreducible_decomposition(D::AbsAlgebraicCycle)Return a cycle $E$ equal to $D$ but as a formal sum $E = ∑ₖ aₖ ⋅ Iₖ$ where the components $Iₖ$ of $E$ are pairwise distinct sheaves of prime ideals.
Attributes
is_effective — Method
Methods
Weil Divisors
AbsWeilDivisor — Type
AbsWeilDivisor{CoveredSchemeType, CoefficientRingType} <: AbsAlgebraicCycle{CoveredSchemeType, CoefficientRingType}A Weil divisor with coefficients of type CoefficientRingType on a (locally) Noetherian integral scheme $X$ of type CoveredSchemeType.
Examples
julia> P2 = projective_space(QQ,2); (s0,s1,s2) = homogeneous_coordinates(P2);
julia> I = ideal((s0*s1)^2);
julia> II = ideal_sheaf(P2, I);
julia> D = weil_divisor(II)
Effective weil divisor
on scheme over QQ covered with 3 patches
with coefficients in integer ring
given as the formal sum of
1 * sheaf of ideals
julia> E = irreducible_decomposition(D)
Effective weil divisor
on scheme over QQ covered with 3 patches
with coefficients in integer ring
given as the formal sum of
2 * prime ideal sheaf on scheme over QQ covered with 3 patches extended from ideal ((s1//s0)) on affine 2-space
2 * prime ideal sheaf on scheme over QQ covered with 3 patches extended from ideal ((s0//s1)) on affine 2-space
julia> P = components(E)[1]
Prime ideal sheaf on Scheme over QQ covered with 3 patches extended from Ideal ((s1//s0)) on Affine 2-space
julia> components(D)[1] == II
true
julia> D[II] # to get the coefficient
1
julia> E[P]
2sourceConstructors
weil_divisor — Method
weil_divisor(X::AbsCoveredScheme, R::Ring) -> WeilDivisorReturn the zero weil divisor on X with coefficients in the ring R.
Examples
julia> P, (x, y, z) = graded_polynomial_ring(QQ, [:x, :y, :z]);
julia> I = ideal([x^3-y^2*z]);
julia> Y = proj(P, I);
julia> Ycov = covered_scheme(Y);
julia> weil_divisor(Ycov, QQ)
Zero weil divisor
on scheme over QQ covered with 3 patches
with coefficients in rational fieldsourceweil_divisor — Method
weil_divisor(I::AbsIdealSheaf) -> WeilDivisorGiven an ideal sheaf I of pure codimension $1$, return the weil divisor $D = 1 ⋅ I$ with coefficients in the integer ring.
Examples
julia> P, (x, y, z) = graded_polynomial_ring(QQ, [:x, :y, :z]);
julia> Y = proj(P);
julia> I = ideal([(x^3-y^2*z)]);
julia> II = IdealSheaf(Y, I);
julia> weil_divisor(II)
Effective weil divisor
on scheme over QQ covered with 3 patches
with coefficients in integer ring
given as the formal sum of
1 * sheaf of ideals
julia> JJ = II^2;
julia> D = weil_divisor(JJ)
Effective weil divisor
on scheme over QQ covered with 3 patches
with coefficients in integer ring
given as the formal sum of
1 * product of 2 ideal sheaves
julia> irreducible_decomposition(D)
Effective weil divisor
on scheme over QQ covered with 3 patches
with coefficients in integer ring
given as the formal sum of
2 * sheaf of prime ideals
sourceweil_divisor — Method
weil_divisor(I::AbsIdealSheaf, R::Ring; check::Bool=true)Given an ideal sheaf I of pure codimension $1$ and a ring R, return the weil divisor $D = 1 ⋅ I$ with coefficients in R.
Methods
Besides the methods for AbsAlgebraicCycle the following are available.
is_in_linear_system — Method
is_in_linear_system(f::VarietyFunctionFieldElem, D::AbsWeilDivisor; regular_on_complement::Bool=true, check::Bool=true) -> BoolReturn whether the rational function f is in the linear system $|D|$, i.e. if $(f) + D \geq 0$.
Input
regular_on_complement– set totrueiffis regular on the complement of the support ofD.
order_of_vanishing — Method
order_of_vanishing(f::VarietyFunctionFieldElem, D::AbsWeilDivisor; check::Bool=true)Return the order of vanishing of the rational function f on the prime divisor D.
intersect — Method
intersect(D::AbsWeilDivisor, E::AbsWeilDivisor; covering::Covering=default_covering(ambient_scheme(D)))Return the intersection number of the the Weil divisors D and E on a complete smooth surface as defined in [Har77].
Input
The optional keyword argument covering specifies the covering to be used for the computation.
Linear Systems
LinearSystem — Type
LinearSystemA linear system of a Weil divisor $D$ on a variety $X$, generated by rational functions $f₁,…,fᵣ ∈ K(X)$.
sourceweil_divisor — Method
Cartier Divisors
CartierDivisor — Type
CartierDivisor{CoveredSchemeType<:AbsCoveredScheme, CoeffType<:RingElem}A Cartier divisor $C$ on a scheme $X$ with coefficients $a_i$ in a ring $R$ is a formal linear combination $\sum_i a_i D_i$ of effective Cartier divisors $D_i$.
The scheme $X$ is of type CoveredSchemeType. The coefficients $a_i$ are of type CoeffType.
EffectiveCartierDivisor — Type
EffectiveCartierDivisor{CoveredSchemeType<:AbsCoveredScheme}An effective Cartier divisor on a scheme $X$ is a closed subscheme $D \subseteq X$ whose ideal sheaf $\mathcal{I}_D \subseteq \mathcal{O}_X$ is an invertible $\mathcal{O}_X$-module. In particular, $\mathcal{I}_D$ is locally principal.
Internally, $C$ stores a trivializing_covering(C::EffectiveCartierDivisor). The scheme $X$ is of type CoveredSchemeType.
Cartier divisors support elementary arithmetic.
Constructors
effective_cartier_divisor — Method
effective_cartier_divisor(I::IdealSheaf;
trivializing_covering::Covering = default_covering(scheme(I)))
-> EffectiveCartierDivisorReturn the effective Cartier divisor defined by the ideal sheaf I, given that I is principal in the given covering of the scheme on which it is defined.
Examples
julia> P, (x, y, z) = graded_polynomial_ring(QQ, [:x, :y, :z]);
julia> I = ideal([x^3-y^2*z]);
julia> Y = proj(P);
julia> II = IdealSheaf(Y, I);
julia> effective_cartier_divisor(II)
Effective cartier divisor
on scheme over QQ covered with 3 patches
1: [(y//x), (z//x)] affine 2-space
2: [(x//y), (z//y)] affine 2-space
3: [(x//z), (y//z)] affine 2-space
defined by
sheaf of ideals with restrictions
1: Ideal (-(y//x)^2*(z//x) + 1)
2: Ideal ((x//y)^3 - (z//y))
3: Ideal ((x//z)^3 - (y//z)^2)sourceeffective_cartier_divisor — Method
effective_cartier_divisor(IP::AbsProjectiveScheme, f::Union{MPolyDecRingElem, MPolyQuoRingElem})Return the effective Cartier divisor on the projective scheme $X$ defined by the homogeneous polynomial $f$.
sourcecartier_divisor — Method
cartier_divisor(E::EffectiveCartierDivisor) -> CartierDivisorConvert an EffectiveCartierDivisor into a CartierDivisor with coefficient $1$ in the ring of integers.
Examples
julia> P, (x, y, z) = graded_polynomial_ring(QQ, [:x, :y, :z]);
julia> I = ideal([x^3-y^2*z]);
julia> Y = proj(P);
julia> II = IdealSheaf(Y, I);
julia> E = effective_cartier_divisor(II)
Effective cartier divisor
on scheme over QQ covered with 3 patches
1: [(y//x), (z//x)] affine 2-space
2: [(x//y), (z//y)] affine 2-space
3: [(x//z), (y//z)] affine 2-space
defined by
sheaf of ideals with restrictions
1: Ideal (-(y//x)^2*(z//x) + 1)
2: Ideal ((x//y)^3 - (z//y))
3: Ideal ((x//z)^3 - (y//z)^2)
julia> cartier_divisor(E)
Cartier divisor
on scheme over QQ covered with 3 patches
with coefficients in integer ring
defined by the formal sum of
1 * effective cartier divisor on scheme over QQ covered with 3 patchessourcecartier_divisor — Method
cartier_divisor(IP::AbsProjectiveScheme, f::Union{MPolyDecRingElem, MPolyQuoRingElem})Return the (effective) Cartier divisor on the projective scheme $X$ defined by the homogeneous polynomial $f$.
sourceAttributes
ideal_sheaf — Method
ideal_sheaf(C::EffectiveCartierDivisor)Return the sheaf of ideals $\mathcal{I}_C \subseteq \mathcal{O}_X$ representing C.
ambient_scheme — Method
ambient_scheme — Method
coefficient_ring — Method
components — Method
components(C::CartierDivisor)Return a list of effective Cartier divisors $C_i$ such that $C$ is a linear combination of the $C_i$.
sourcetrivializing_covering — Method
trivializing_covering(C::EffectiveCartierDivisor)Return the trivializing covering of the effective Cartier divisor C.
A covering $(U_i)_{i \in I}$ is called trivializing for $C$ if $C(U_i)$ is principal for all $i \in I$.
source