Abstract Variety Maps
Types
The OSCAR type for abstract variety maps is AbstractVarietyMap.
Constructors
map — Function
map(X::AbstractVariety, Y::AbstractVariety, fˣ::Vector, fₓ = nothing; inclusion::Bool = false, symbol::String = "x")Return an abstract variety map X $\rightarrow$ Y by specifying the pullbacks of the generators of the Chow ring of Y.
In the case of an inclusion X $\hookrightarrow$ Y where the class of X is not present in the Chow ring of Y, use the argument extend_inclusion = true. Then, a copy of Y will be created, with extra classes added so that one can pushforward all classes on X.
Examples
julia> P2xP2 = abstract_projective_space(2, symbol = "k")*abstract_projective_space(2, symbol = "l")
AbstractVariety of dim 4
julia> k, l = gens(P2xP2)
2-element Vector{MPolyQuoRingElem{MPolyDecRingElem{QQFieldElem, QQMPolyRingElem}}}:
k
l
julia> P8 = abstract_projective_space(8)
AbstractVariety of dim 8
julia> h = gens(P8)[1]
h
julia> Se = map(P2xP2, P8, [k+l]) # Segre embedding
AbstractVarietyMap from AbstractVariety of dim 4 to AbstractVariety of dim 8
julia> pullback(Se, h)
k + l
julia> pushforward(Se, k+l)
6*h^5
This function is part of the experimental code in Oscar. Please read here for more details.
identity_map — Method
Underlying Data of an Abstract Variety Map
An abstract variety map is made up from (a selection of) the data discussed here:
dim — Method
dim(f::AbstractVarietyMap)Return the relative dimension of f, that is, return dim(domain(f)) - dim(codomain(f)).
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> i = map(P2, P5, [2*h])
AbstractVarietyMap from AbstractVariety of dim 2 to AbstractVariety of dim 5
julia> dim(i)
-3
This function is part of the experimental code in Oscar. Please read here for more details.
pullback — Method
pullback(f::AbstractVarietyMap, y::MPolyDecRingElem)Return the pullback of y via f.
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> i = map(P2, P5, [2*h])
AbstractVarietyMap from AbstractVariety of dim 2 to AbstractVariety of dim 5
julia> H = gens(P5)[1]
H
julia> pullback(i, H)
2*h
This function is part of the experimental code in Oscar. Please read here for more details.
pushforward — Method
pushforward(f::AbstractVarietyMap, x::MPolyDecRingElem)Return the pushforward of x via f.
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> i = map(P2, P5, [2*h])
AbstractVarietyMap from AbstractVariety of dim 2 to AbstractVariety of dim 5
julia> pushforward(i, h)
2*H^4This function is part of the experimental code in Oscar. Please read here for more details.
tangent_bundle — Method
tangent_bundle(f::AbstractVarietyMap)If domain(f) and codomain(f) are given tangent bundles, return the relative tangent bundle of f.
Examples
julia> P2 = abstract_projective_space(2)
AbstractVariety of dim 2
julia> T = tangent_bundle(P2)
AbstractBundle of rank 2 on AbstractVariety of dim 2
julia> PT = projective_bundle(T)
AbstractVariety of dim 3
julia> pr = structure_map(PT)
AbstractVarietyMap from AbstractVariety of dim 3 to AbstractVariety of dim 2
julia> PBT = pullback(pr, T)
AbstractBundle of rank 2 on AbstractVariety of dim 3
julia> tangent_bundle(PT) - PBT == tangent_bundle(pr)
true
julia> PBT*OO(PT, 1) - OO(PT) == tangent_bundle(pr) # relative Euler sequence
true
This function is part of the experimental code in Oscar. Please read here for more details.