Blowups
present_finite_extension_ring
— Method 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 forB
as anA
-module,M
is anr
$\times$s
-matrix of polynomials defining the map $A^r \rightarrow A^s$, andpf
is a map which gives rise to a section of the map $ A^s\rightarrow B$.
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
This function is part of the experimental code in Oscar. Please read here for more details.
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(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
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 (h^3, e*h, e^3, e^2 + h^2)
This function is part of the experimental code in Oscar. Please read here for more details.