Blowups
blowup
— Method 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, andj
, a map of abstract varieties, is the inclusion ofE
intoBl
.
The resulting maps Bl
$\rightarrow$ Y
and E
$\rightarrow$ X
are obtained entering structure_map(Bl)
and structure_map(E)
, respectively.
Examples
Taken from the sage package Chow by Lehn/Sorger:
julia> P2xP2 = abstract_projective_space(2, symbol = "k")*abstract_projective_space(2, symbol = "l")
AbstractVariety of dim 4
julia> P8 = abstract_projective_space(8)
AbstractVariety of dim 8
julia> k, l = gens(P2xP2)
2-element Vector{MPolyQuoRingElem{MPolyDecRingElem{QQFieldElem, QQMPolyRingElem}}}:
k
l
julia> Se = map(P2xP2, P8, [k+l])
AbstractVarietyMap from AbstractVariety of dim 4 to AbstractVariety of dim 8
julia> Bl, E, j = blowup(Se)
(AbstractVariety of dim 8, AbstractVariety of dim 7, AbstractVarietyMap from AbstractVariety of dim 7 to AbstractVariety of dim 8)
julia> betti_numbers(Bl)
9-element Vector{Int64}:
1
2
4
7
8
7
4
2
1
The Steiner problem:
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 = map(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
This function is part of the experimental code in Oscar. Please read here for more details.
blowup_points
— Methodfunction 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 (e*h, e^2 + h^2)
This function is part of the experimental code in Oscar. Please read here for more details.