Classifier/identifier specifically for du Val singularities

has_du_val_singularitiesFunction
has_du_val_singularities(X::Scheme)

Return whether the given $X$ has at most du Val (surface) singularities.

Examples

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
source
is_du_val_singularityFunction
is_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.

source
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

Examples

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
source
decide_du_val_singularityFunction
decide_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))
source
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 of I (possibly over a suitable field extension) describing some geometrically irreducible point
  • T[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] is false
  • T[2] represents a point at which some non-du-Val singularity is present
  • T[3] is the empty tuple
  • T[4] = 1

Note: For the ideal $I$ in a ring $R$, dim(R/I) = 0 is asserted

Examples

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)
source