Abstract Bundles
Constructors
abstract_bundle
— Methodabstract_bundle(X::AbstractVariety, ch::Union{MPolyDecRingElem, MPolyQuoRingElem})
abstract_bundle(X::AbstractVariety, r::RingElement, c::Union{MPolyDecRingElem, MPolyQuoRingElem})
Return an abstract vector bundle on X
by specifying its Chern character. Equivalently, specify its rank and total Chern class.
Examples
We show two ways of constructing the Horrocks-Mumford bundle F
[HM73]. First, we create F
as the cohomology bundle of its Beilinson monad
\[0 \rightarrow \mathcal O_{\mathbb P^4} ^5(2)\rightarrow \Lambda^2 T^*_{\mathbb P^4}(5) \rightarrow \mathcal O_{\mathbb P^4}^5(3)\rightarrow 0.\]
Then, we show the constructor above at work.
julia> P4 = abstract_projective_space(4)
AbstractVariety of dim 4
julia> A = 5*OO(P4, 2)
AbstractBundle of rank 5 on AbstractVariety of dim 4
julia> B = 2*exterior_power(cotangent_bundle(P4), 2)*OO(P4, 5)
AbstractBundle of rank 12 on AbstractVariety of dim 4
julia> C = 5*OO(P4, 3)
AbstractBundle of rank 5 on AbstractVariety of dim 4
julia> F = B-A-C
AbstractBundle of rank 2 on AbstractVariety of dim 4
julia> total_chern_class(F)
10*h^2 + 5*h + 1
julia> h = gens(P4)[1]
h
julia> F == abstract_bundle(P4, 2, 10*h^2 + 5*h + 1)
true
This function is part of the experimental code in Oscar. Please read here for more details.
Underlying Data of an Abstract Bundle
parent
— Method parent(F::AbstractBundle)
Return the underlying abstract variety of F
.
Examples
julia> G = abstract_grassmannian(3,5)
AbstractVariety of dim 6
julia> Q = tautological_bundles(G)[2]
AbstractBundle of rank 2 on AbstractVariety of dim 6
julia> parent(Q) == G
true
This function is part of the experimental code in Oscar. Please read here for more details.
chern_character
— Methodchern_character(F::AbstractBundle)
Return the Chern character of F
.
Examples
julia> G = abstract_grassmannian(3,5)
AbstractVariety of dim 6
julia> Q = tautological_bundles(G)[2]
AbstractBundle of rank 2 on AbstractVariety of dim 6
julia> chern_character(Q)
-1//2*c[1]^2 + 1//6*c[1]*c[2] - 1//24*c[1]*c[3] - c[1] + c[2] - 1//3*c[3] + 2
This function is part of the experimental code in Oscar. Please read here for more details.
rank
— Method rank(F::AbstractBundle)
Return the rank of F
.
Examples
julia> G = abstract_grassmannian(3,5)
AbstractVariety of dim 6
julia> Q = tautological_bundles(G)[2]
AbstractBundle of rank 2 on AbstractVariety of dim 6
julia> rank(symmetric_power(Q,3))
4
This function is part of the experimental code in Oscar. Please read here for more details.
total_chern_class
— Methodtotal_chern_class(F::AbstractBundle)
Return the total Chern class of F
.
Examples
julia> G = abstract_grassmannian(3,5)
AbstractVariety of dim 6
julia> Q = tautological_bundles(G)[2]
AbstractBundle of rank 2 on AbstractVariety of dim 6
julia> total_chern_class(Q)
c[1]^2 - c[1] - c[2] + 1
julia> chern_class(Q, 1)
-c[1]
julia> chern_class(Q, 2)
c[1]^2 - c[2]
This function is part of the experimental code in Oscar. Please read here for more details.
Further Data Associated to an Abstract Bundle
chern_class
— Methodchern_class(F::AbstractBundle, k::Int)
Return the k
-th Chern class of F
.
Examples
julia> T, (d,) = polynomial_ring(QQ, [:d])
(Multivariate polynomial ring in 1 variable over QQ, QQMPolyRingElem[d])
julia> QT = fraction_field(T)
Fraction field
of multivariate polynomial ring in 1 variable over QQ
julia> P4 = abstract_projective_space(4, base = QT)
AbstractVariety of dim 4
julia> h = gens(P4)[1]
h
julia> F = abstract_bundle(P4, 2, 10*h^2 + 5*h + 1) # Horrocks-Mumford bundle
AbstractBundle of rank 2 on AbstractVariety of dim 4
julia> chern_class(F*OO(P4, d), 1)
(2*d + 5)*h
julia> chern_class(F*OO(P4, d), 2)
(d^2 + 5*d + 10)*h^2
julia> chern_class(F*OO(P4, -3), 1)
-h
julia> chern_class(F*OO(P4, -3), 2)
4*h^2
This function is part of the experimental code in Oscar. Please read here for more details.
top_chern_class
— Methodtop_chern_class(F::AbstractBundle)
Return the top Chern class of F
.
Examples
julia> P4 = abstract_projective_space(4)
AbstractVariety of dim 4
julia> h = gens(P4)[1]
h
julia> F = abstract_bundle(P4, 2, 10*h^2 + 5*h + 1)
AbstractBundle of rank 2 on AbstractVariety of dim 4
julia> top_chern_class(F)
10*h^2
This function is part of the experimental code in Oscar. Please read here for more details.
total_segre_class
— Methodtotal_segre_class(F::AbstractBundle)
Return the total Segre class of F
.
Examples
julia> G = abstract_grassmannian(3,5)
AbstractVariety of dim 6
julia> Q = tautological_bundles(G)[2]
AbstractBundle of rank 2 on AbstractVariety of dim 6
julia> C = total_chern_class(Q)
c[1]^2 - c[1] - c[2] + 1
julia> S = total_segre_class(Q)
c[1] + c[2] + c[3] + 1
julia> C*S
1
This function is part of the experimental code in Oscar. Please read here for more details.
segre_class
— Methodsegre_class(F::AbstractBundle, k::Int)
Return the k
-th Segre class of F
.
Examples
julia> G = abstract_grassmannian(3,5)
AbstractVariety of dim 6
julia> Q = tautological_bundles(G)[2]
AbstractBundle of rank 2 on AbstractVariety of dim 6
julia> segre_class(Q,0)
1
julia> segre_class(Q,1)
c[1]
julia> segre_class(Q,2)
c[2]
julia> segre_class(Q,3)
c[3]
This function is part of the experimental code in Oscar. Please read here for more details.
todd_class
— Methodtodd_class(F::AbstractBundle)
Return the Todd class of F
.
Examples
julia> P = abstract_projective_space(4, symbol = "H"); # Hartshorne, p. 433
julia> F = exterior_power(cotangent_bundle(P), 3)*OO(P,3);
julia> G = OO(P, 1)+4*OO(P);
julia> Z = degeneracy_locus(F, G, 3) # rational surface in P4
AbstractVariety of dim 2
julia> TZ = tangent_bundle(Z);
julia> K = canonical_class(Z)
z - H
julia> chern_class(TZ, 1) == -K
true
julia> tc = todd_class(TZ)
-1//2*z + 1//8*H^2 + 1//2*H + 1
julia> tc == 1-1//2*K+1//12*(K^2+chern_class(TZ, 2))
true
This function is part of the experimental code in Oscar. Please read here for more details.
total_pontryagin_class
— Methodtotal_pontryagin_class(F::AbstractBundle)
Return the total Pontryagin class of F
.
This function is part of the experimental code in Oscar. Please read here for more details.
pontryagin_class
— Methodpontryagin_class(F::AbstractBundle, k::Int)
Return the k
-th Pontryagin class of F
.
This function is part of the experimental code in Oscar. Please read here for more details.
euler_characteristic
— Methodeuler_characteristic(F::AbstractBundle)
Return the Euler characteristic $\chi(F)$
euler_pairing(F::AbstractBundle, G::AbstractBundle)
Return the Euler pairing $\chi(F,G)$.
Examples
julia> P = abstract_projective_space(4, symbol = "H"); # Hartshorne, p. 433
julia> F = exterior_power(cotangent_bundle(P), 3)*OO(P,3);
julia> G = OO(P, 1)+4*OO(P);
julia> Z = degeneracy_locus(F, G, 3) # rational surface in P4
AbstractVariety of dim 2
julia> TZ = tangent_bundle(Z);
julia> tc = todd_class(TZ)
-1//2*z + 1//8*H^2 + 1//2*H + 1
julia> K = canonical_class(Z)
z - H
julia> H = hyperplane_class(Z)
H
julia> ec = euler_characteristic(OO(Z, H))
4
julia> ec == integral(1//2*H*(H-K)+1//12*(K^2+chern_class(TZ, 2)))
true
This function is part of the experimental code in Oscar. Please read here for more details.
hilbert_polynomial
— Methodhilbert_polynomial(F::AbstractBundle)
Given an abstract vector bundle F
on an abstract variety with a specified hyperplane class, return the corresponding Hilbert polynomial of F
.
Examples
julia> P2 = abstract_projective_space(2)
AbstractVariety of dim 2
julia> hilbert_polynomial(OO(P2))
1//2*t^2 + 3//2*t + 1
julia> euler_characteristic(OO(P2))
1
julia> euler_characteristic(OO(P2, 1))
3
julia> euler_characteristic(OO(P2, 2))
6
julia> euler_characteristic(OO(P2, 3))
10
This function is part of the experimental code in Oscar. Please read here for more details.
Operations on Abstract Bundles
-
— Method-(F::AbstractBundle)
*(n::RingElement, F::AbstractBundle)
+(F::AbstractBundle, G::AbstractBundle)
-(F::AbstractBundle, G::AbstractBundle)
*(F::AbstractBundle, G::AbstractBundle)
Return -F
, the sum F
$+ \dots +$ F
of n
copies of F
, F
$+$ G
, F
$-$ G
, and the tensor product of F
and G
, respectively.
Examples
julia> P3 = abstract_projective_space(3)
AbstractVariety of dim 3
julia> 4*OO(P3, 1) - OO(P3) == tangent_bundle(P3) # Euler sequence
true
This function is part of the experimental code in Oscar. Please read here for more details.
dual
— Methoddual(F::AbstractBundle)
Return the dual bundle of F
.
Examples
julia> P4 = abstract_projective_space(4)
AbstractVariety of dim 4
julia> h = gens(P4)[1]
h
julia> F = abstract_bundle(P4, 2, 10*h^2 + 5*h + 1) # Horrocks-Mumford bundle
AbstractBundle of rank 2 on AbstractVariety of dim 4
julia> c1 = chern_class(F, 1)
5*h
julia> Fd = dual(F)
AbstractBundle of rank 2 on AbstractVariety of dim 4
julia> chern_class(Fd, 1)
-5*h
julia> F == Fd*OO(P4, 5) # self-duality up to twist
true
This function is part of the experimental code in Oscar. Please read here for more details.
det
— Methoddet(F::AbstractBundle)
Return the determinant bundle of F
.
Examples
julia> P3 = abstract_projective_space(3)
AbstractVariety of dim 3
julia> T = tangent_bundle(P3)
AbstractBundle of rank 3 on AbstractVariety of dim 3
julia> chern_class(T, 1)
4*h
julia> det(T) == OO(P3, 4)
true
This function is part of the experimental code in Oscar. Please read here for more details.
exterior_power
— Methodexterior_power(F::AbstractBundle, k::Int)
Return the k
-th exterior power of F
.
This function is part of the experimental code in Oscar. Please read here for more details.
symmetric_power
— Methodsymmetric_power(F::AbstractBundle, k::Int)
symmetric_power(F::AbstractBundle, k::RingElement)
Return the k
-th symmetric power of F
. Here, k
can contain parameters.
This function is part of the experimental code in Oscar. Please read here for more details.
pullback
— Methodpullback(f::AbstractVarietyMap, F::AbstractBundle)
Return the pullback of F
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> E = pullback(i, OO(P5,1))
AbstractBundle of rank 1 on AbstractVariety of dim 2
julia> total_chern_class(E)
2*h + 1
This function is part of the experimental code in Oscar. Please read here for more details.
pushforward
— Methodpushforward(f::AbstractVarietyMap, F::AbstractBundle)
Return the pushforward of F
via f
, that is, return the alternating sum of all direct images of F
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> E = pushforward(i, OO(P2,1))
AbstractBundle of rank 0 on AbstractVariety of dim 5
julia> total_chern_class(E)
168*H^5 + 42*H^4 + 8*H^3 + 1
This function is part of the experimental code in Oscar. Please read here for more details.
Tests on Abstract Bundles
==
— Method==(F::AbstractBundle, G::AbstractBundle)
Return true
if F
is equal to G
, and false
otherwise.
Examples
julia> P2 = abstract_projective_space(2)
AbstractVariety of dim 2
julia> 3*OO(P2, 1) - OO(P2) == tangent_bundle(P2) # Euler sequence
true
This function is part of the experimental code in Oscar. Please read here for more details.