Bundles
We try to keep the same syntax for AbsBundle
and TnBundle
. Note that not all methods are available for TnBundle
.
Construct bundles
IntersectionTheory.bundle
— Functionbundle(X::AbsVariety, ch)
bundle(X::AbsVariety, r, c)
Construct a bundle on $X$ by specifying its Chern character, or its rank and total Chern class.
IntersectionTheory.OO
— FunctionOO(X::AbsVariety)
OO(X::TnVariety)
Return the trivial bundle $\mathcal O_X$ on $X$.
OO(X::AbsVariety, n)
OO(X::AbsVariety, D)
Return the line bundle $\mathcal O_X(n)$ on $X$ if $X$ has been given a polarization, or a line bundle $\mathcal O_X(D)$ with first Chern class $D$.
IntersectionTheory.bundles
— Functionbundles(X::AbsVariety)
bundles(X::TnVariety)
Return the tautological bundles of a variety $X$. Same as X.bundles
.
IntersectionTheory.tangent_bundle
— Methodtangent_bundle(X::AbsVariety)
tangent_bundle(X::TnVariety)
Return the tangent bundle of a variety $X$. Same as X.T
.
IntersectionTheory.cotangent_bundle
— Methodcotangent_bundle(X::AbsVariety)
cotangent_bundle(X::TnVariety)
Return the cotangent bundle of a variety $X$.
IntersectionTheory.canonical_bundle
— Functioncanonical_bundle(X::AbsVariety)
Return the canonical bundle of a variety $X$.
IntersectionTheory.canonical_class
— Functioncanonical_class(X::AbsVariety)
Return the canonical class of a variety $X$.
Examples
julia> OO(proj(2))
AbsBundle of rank 1 on AbsVariety of dim 2
julia> bundles(grassmannian(2, 4))
2-element Vector{IntersectionTheory.AbsBundle}:
AbsBundle of rank 2 on AbsVariety of dim 4
AbsBundle of rank 2 on AbsVariety of dim 4
julia> bundles(grassmannian(2, 4, bott=true))
2-element Vector{IntersectionTheory.TnBundle}:
TnBundle of rank 2 on TnVariety of dim 4 with 6 fixed points
TnBundle of rank 2 on TnVariety of dim 4 with 6 fixed points
julia> tangent_bundle(variety(3))
AbsBundle of rank 3 on AbsVariety of dim 3
Characteristic classes
IntersectionTheory.ch
— Functionch(F::AbsBundle)
Return the Chern character.
IntersectionTheory.chern
— Methodchern(F::AbsBundle)
chern(F::TnBundle)
Compute the total Chern class.
IntersectionTheory.chern
— Methodchern(k::Int, F::AbsBundle)
chern(k::Int, F::TnBundle)
Compute the $k$-th Chern class.
IntersectionTheory.ctop
— Functionctop(F::AbsBundle)
ctop(F::TnBundle)
Compute the top Chern class.
IntersectionTheory.segre
— Functionsegre(F::AbsBundle)
Compute the total Segre class.
segre(k::Int, F::AbsBundle)
Compute the $k$-th Segre class.
IntersectionTheory.chi
— Functionchi(F::AbsBundle)
chi(F::AbsBundle, G::AbsBundle)
Compute the holomorphic Euler characteristic $\chi(F)$, or the Euler pairing $\chi(F,G)$.
IntersectionTheory.todd
— Methodtodd(F::AbsBundle)
Compute the Todd class.
IntersectionTheory.pontryagin
— Methodpontryagin(F::AbsBundle)
Compute the total Pontryagin class.
IntersectionTheory.pontryagin
— Methodpontryagin(k::Int, F::AbsBundle)
Compute the $k$-th Pontryagin class.
For a TnBundle
of rank $r$, since there are no Chow ring present, its Chern classes are represented as formal polynomials in $r$ variables. Arithmetics are only available for Chern classes of a same TnBundle
. See examples below.
Examples
For AbsBundle
.
julia> X, (F,) = variety(2, [2=>"c"]);
julia> ch(F)
2 + c₁ + 1//2*c₁^2 - c₂
julia> chern(F)
1 + c₁ + c₂
julia> pontryagin(F)
1 + c₁^2 - 2*c₂
julia> chern(proj(2))
1 + 3*h + 3*h^2
julia> chern(2, proj(2))
3*h^2
julia> todd(proj(2))
1 + 3//2*h + h^2
julia> chi(cotangent_bundle(proj(2)))
-1
julia> G = grassmannian(2, 4); S, Q = bundles(G);
julia> chern(1, S)
c₁
julia> integral(chern(1, S)^4)
2
julia> chern(1, S) * chern(2, Q)
c₁*c₂
For TnBundle
.
julia> G = grassmannian(2, 4, bott=true); S, Q = bundles(G);
julia> chern(1, S)
Chern class c₁ of TnBundle of rank 2 on TnVariety of dim 4 with 6 fixed points
julia> integral(chern(1, S)^4)
2
julia> chern(1, S) * chern(2, Q) # this will not work
ERROR: AssertionError: a.F == b.F
Operators
IntersectionTheory.symmetric_power
— Functionsymmetric_power(k, F::AbsBundle)
symmetric_power(k::Int, F::TnBundle)
Return the $k$-th symmetric power. For an AbsBundle
, $k$ can contain parameters.
IntersectionTheory.exterior_power
— Functionexterior_power(k::Int, F::AbsBundle)
exterior_power(k::Int, F::TnBundle)
Return the $k$-th exterior power.
LinearAlgebra.det
— Functiondet(F::AbsBundle)
det(F::TnBundle)
Return the determinant bundle.
IntersectionTheory.dual
— Functiondual(F::AbsBundle)
dual(F::TnBundle)
Return the dual bundle.
IntersectionTheory.schur_functor
— Functionschur_functor(λ::AbstractVector, F::AbsBundle)
Return the result of the Schur functor $\mathbf S^\lambda$.