Classifier/identifier specifically for du Val singularities
has_du_val_singularities
— Functionhas_du_val_singularities(X::Scheme)
Return whether the given $X$ has at most du Val (surface) singularities.
Example:
julia> R,(x,y,z,w) = QQ[:x, :y, :z, :w]
(Multivariate polynomial ring in 4 variables over QQ, QQMPolyRingElem[x, y, z, w])
julia> I = ideal(R,[w,x^2+y^3+z^4])
Ideal generated by
w
x^2 + y^3 + z^4
julia> Rq, _ = quo(R,I)
(Quotient of multivariate polynomial ring by ideal (w, x^2 + y^3 + z^4), Map: R -> Rq)
julia> X = spec(Rq)
Spectrum
of quotient
of multivariate polynomial ring in 4 variables x, y, z, w
over rational field
by ideal (w, x^2 + y^3 + z^4)
julia> has_du_val_singularities(X)
true
is_du_val_singularity
— Functionis_du_val_singularity(P::AbsAffineRationalPoint{<:Field})
Return whether the ambient scheme of P
has at most a Du Val singularity at P
.
Note that this includes the case that $P$ is a smooth point.
is_du_val_singularity(X::AbsAffineScheme, I::Ideal)
Return whether the given $X$ has at most du Val (surface) singularities at the geometric points specified by the ideal $I$.
Note: For the ideal $I$ in a ring $R$, dim(R/I) = 0
is asserted
Example:
julia> R,(x,y,z,w) = QQ[:x, :y, :z, :w]
(Multivariate polynomial ring in 4 variables over QQ, QQMPolyRingElem[x, y, z, w])
julia> I = ideal(R,[w,x^2+y^3+z^4])
Ideal generated by
w
x^2 + y^3 + z^4
julia> Rq, _ = quo(R,I)
(Quotient of multivariate polynomial ring by ideal (w, x^2 + y^3 + z^4), Map: R -> Rq)
julia> J = ideal(R,[x,y,z,w])
Ideal generated by
x
y
z
w
julia> X = spec(Rq)
Spectrum
of quotient
of multivariate polynomial ring in 4 variables x, y, z, w
over rational field
by ideal (w, x^2 + y^3 + z^4)
julia> is_du_val_singularity(X,J)
true
decide_du_val_singularity
— Functiondecide_du_val_singularity(P::AbsAffineRationalPoint{<:Field})
Return whether the ambient scheme of P
has a Du Val singularity at P
.
Examples
julia> A3 = affine_space(QQ, [:x, :y, :z]);
julia> (x, y, z) = ambient_coordinates(A3);
julia> X = subscheme(A3, ideal([x^2+y^2-z^2]));
julia> Oscar.decide_du_val_singularity(X([0,0,0]))
(true, (:A, 1))
decide_du_val_singularity(X::AbsAffineScheme, I::Ideal)
Return a vector of tuples $T$ with the following data:
T[1]::Bool
answers whether $X$ has at most du Val (surface) singularities at the geometric points specified by the ideal $I$.T[2]::Ideal
is $I_P$ the associated prime ofI
(possibly over a suitable field extension) describing some geometrically irreducible pointT[3]::Tuple
contains the type of the singularity at $P$ e.g.(:A, 3)
T[4]::Int
number of conjugate points
If $X$ has a least one singularity which is not du Val, the returned vector contains a single tuple $T$, with the following values:
T[1]
isfalse
T[2]
represents a point at which some non-du-Val singularity is presentT[3]
is the empty tupleT[4] = 1
Note: For the ideal $I$ in a ring $R$, dim(R/I) = 0
is asserted
Example:
julia> R,(x,y,z,w) = QQ[:x, :y, :z, :w]
(Multivariate polynomial ring in 4 variables over QQ, QQMPolyRingElem[x, y, z, w])
julia> I = ideal(R,[w,x^2+y^3+z^4])
Ideal generated by
w
x^2 + y^3 + z^4
julia> Rq, _ = quo(R,I)
(Quotient of multivariate polynomial ring by ideal (w, x^2 + y^3 + z^4), Map: R -> Rq)
julia> J = ideal(R,[x,y,z,w])
Ideal generated by
x
y
z
w
julia> X = spec(Rq)
Spectrum
of quotient
of multivariate polynomial ring in 4 variables x, y, z, w
over rational field
by ideal (w, x^2 + y^3 + z^4)
julia> decide_du_val_singularity(X,J)
1-element Vector{Any}:
(true, Ideal (w, z, y, x), (:E, 6), 1)