Blowups

present_finite_extension_ringMethod
  present_finite_extension_ring(F::Oscar.AffAlgHom)

Given a finite homomorphism F $:$ A $\rightarrow$ B of algebras of type <: Union{MPolyRing, MPolyQuoRing} over a field, return a presentation

\[A^r \rightarrow A^s\rightarrow B \rightarrow 0\]

of B as an A-module.

More precisely, return a tuple (gensB, M, pf), say, where

  • gensB is a vector of polynomials representing generators for B as an A-module,
  • M is an r $\times$ s-matrix of polynomials defining the map $A^r \rightarrow A^s$, and
  • pf is a map which gives rise to a section of the map $ A^s\rightarrow B$.
Note

The finiteness condition on F is checked by the function.

Examples

julia> R, (x, y, z) = polynomial_ring(QQ, ["x", "y", "z"]);

julia> I = ideal(R, [z^2-y^2*(y+1)])
Ideal generated by
  -y^3 - y^2 + z^2

julia> A, _ = quo(R, I)
(Quotient of multivariate polynomial ring by ideal (-y^3 - y^2 + z^2), Map: R -> A)

julia> B, (s,t) =  polynomial_ring(QQ, ["s", "t"]);

julia> F = hom(A,B, [s, t^2-1, t*(t^2-1)])
Ring homomorphism
  from quotient of multivariate polynomial ring by ideal (-y^3 - y^2 + z^2)
  to multivariate polynomial ring in 2 variables over QQ
defined by
  x -> s
  y -> t^2 - 1
  z -> t^3 - t

julia> gensB, M, pf = present_finite_extension_ring(F);

julia> gensB
2-element Vector{QQMPolyRingElem}:
 t
 1

julia> M
2×2 Matrix{QQMPolyRingElem}:
 y   -z
 -z  y^2 + y

julia> pf(s)
2-element Vector{QQMPolyRingElem}:
 0
 x

julia> pf(t)
2-element Vector{QQMPolyRingElem}:
 1
 0
julia> A, (a, b, c) = polynomial_ring(QQ, ["a", "b", "c"]);

julia> R, (x, y, z) = polynomial_ring(QQ, ["x", "y", "z"]);

julia> I = ideal(R, [x*y])
Ideal generated by
  x*y

julia> B, _ = quo(R, I)
(Quotient of multivariate polynomial ring by ideal (x*y), Map: R -> B)

julia> (x, y, z) = gens(B)
3-element Vector{MPolyQuoRingElem{QQMPolyRingElem}}:
 x
 y
 z

julia> F = hom(A, B, [x^2+z, y^2-1, z^3])
Ring homomorphism
  from multivariate polynomial ring in 3 variables over QQ
  to quotient of multivariate polynomial ring by ideal (x*y)
defined by
  a -> x^2 + z
  b -> y^2 - 1
  c -> z^3

julia> gensB, M, pf = present_finite_extension_ring(F);

julia> gensB
2-element Vector{QQMPolyRingElem}:
 y
 1

julia> M
2×2 Matrix{QQMPolyRingElem}:
 a^3 - c  0
 0        a^3*b + a^3 - b*c - c

julia> pf(y)
2-element Vector{QQMPolyRingElem}:
 1
 0

julia> pf(one(B))
2-element Vector{QQMPolyRingElem}:
 0
 1
Experimental

This function is part of the experimental code in Oscar. Please read here for more details.

source
blowupMethod
  blowup(i::AbstractVarietyMap; symbol::String="e")

Given an inclusion i$ : $ X $\rightarrow$ Y, say, return the blowup of Y along X.

More precisely, return a tuple (Bl, E, j), say, where

  • Bl, an abstract variety, is the blowup,
  • E, an abstract variety, is the exceptional divisor, and
  • j, a map of abstract varieties, is the inclusion of E into Bl.
Note

The resulting maps Bl $\rightarrow$ Y and E $\rightarrow$ X are obtained entering structure_map(E) and structure_map(Bl), respectively.

Examples

julia> P2 = abstract_projective_space(2)
AbstractVariety of dim 2

julia> P5 = abstract_projective_space(5, symbol = "H")
AbstractVariety of dim 5

julia> h = gens(P2)[1]
h

julia> H = gens(P5)[1]
H

julia> i = hom(P2, P5, [2*h])
AbstractVarietyMap from AbstractVariety of dim 2 to AbstractVariety of dim 5

julia> Bl, E, j = blowup(i)
(AbstractVariety of dim 5, AbstractVariety of dim 4, AbstractVarietyMap from AbstractVariety of dim 4 to AbstractVariety of dim 5)

julia> e, HBl = gens(chow_ring(Bl))
2-element Vector{MPolyQuoRingElem{MPolyDecRingElem{QQFieldElem, QQMPolyRingElem}}}:
 e
 H

julia> integral((6*HBl-2*e)^5)
3264
Experimental

This function is part of the experimental code in Oscar. Please read here for more details.

source
blowup_pointsMethod
function blowup_points(X::AbstractVariety, n::Int; symbol::String = "e")

Return the blowup of X at n points.

Examples

julia> P2 = abstract_projective_space(2)
AbstractVariety of dim 2

julia> Bl = blowup_points(P2, 1)
AbstractVariety of dim 2

julia> chow_ring(Bl)
Quotient
  of multivariate polynomial ring in 2 variables over QQ graded by
    e -> [1]
    h -> [1]
  by ideal (h^3, e*h, e^3, e^2 + h^2)
Experimental

This function is part of the experimental code in Oscar. Please read here for more details.

source