Abstract Bundles

Constructors

abstract_bundleMethod
abstract_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
Experimental

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

source

Underlying Data of an Abstract Bundle

parentMethod
 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
Experimental

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

source
rankMethod
 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
Experimental

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

source
chern_characterMethod
chern_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
Experimental

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

source
total_chern_classMethod
total_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]
Experimental

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

source

Further Data Associated to an Abstract Bundle

chern_classMethod
chern_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
Experimental

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

source
top_chern_classMethod
top_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
Experimental

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

source
total_segre_classMethod
total_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
Experimental

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

source
segre_classMethod
segre_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]
Experimental

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

source
todd_classMethod
todd_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
Experimental

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

source
total_pontryagin_classMethod
total_pontryagin_class(F::AbstractBundle)

Return the total Pontryagin class of F.

Experimental

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

source
pontryagin_classMethod
pontryagin_class(F::AbstractBundle, k::Int)

Return the k-th Pontryagin class of F.

Experimental

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

source
euler_characteristicMethod
euler_characteristic(F::AbstractBundle)
euler_pairing(F::AbstractBundle, G::AbstractBundle)

Return the holomorphic Euler characteristic $\chi(F)$ and the Euler pairing $\chi(F,G)$, respectively.

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
Experimental

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

source
hilbert_polynomialMethod
hilbert_polynomial(F::AbstractBundle)

If an abstract vector bundle F on an abstract variety with a specified hyperplane class is given, 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
Experimental

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

source

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
Experimental

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

source
dualMethod
dual(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
Experimental

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

source
detMethod
det(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
Experimental

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

source
exterior_powerMethod
exterior_power(F::AbstractBundle, k::Int)

Return the k-th exterior power of F.

Experimental

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

source
symmetric_powerMethod
symmetric_power(F::AbstractBundle, k::Int)
symmetric_power(F::AbstractBundle, k::RingElement)

Return the k-th symmetric power of F. Here, k can contain parameters.

Experimental

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

source
pullbackMethod
pullback(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(P2,1))
AbstractBundle of rank 1 on AbstractVariety of dim 2

julia> total_chern_class(E)
2*h + 1
Experimental

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

source
pushforwardMethod
pushforward(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
Experimental

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

source

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
Experimental

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

source