Abstract Bundles

Types

The OSCAR type for abstract varieties is AbstractBundle.

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

0OP45(2)Λ2TP4(5)OP45(3)0.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
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
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
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)

Return the Euler characteristic χ(F)\chi(F)

euler_pairing(F::AbstractBundle, G::AbstractBundle)

Return the Euler pairing χ(F,G)\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
Experimental

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

source
hilbert_polynomialMethod
hilbert_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
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(P5,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
This documentation is not for the latest stable release, but for either the development version or an older release.
Click here to go to the documentation for the latest stable release.