Skip to content

Commit 73ace91

Browse files
authored
Intersection theory: Extend documentation on Bott formula (#4769)
1 parent af2d5e0 commit 73ace91

File tree

3 files changed

+459
-35
lines changed

3 files changed

+459
-35
lines changed

experimental/IntersectionTheory/docs/src/BottFormulas.md

+128-15
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,48 @@ CurrentModule = Oscar
33
DocTestSetup = Oscar.doctestsetup()
44
```
55

6-
# Bott's Formula
6+
# Localization and Bott's Formula
77

8-
## Abstract Varieties With a Torus Action
8+
Recall that our focus in this chapter is on abstract intersection theory: We discuss computations which manipulate collections of data
9+
referred to as abstract varieties, and we interprete the results as applying to all (smooth projective complex) varieties sharing the data.
10+
The tools presented in this section allow for more efficient computations in the case of varieties with a (split) torus action whose
11+
fixed point set is finite. They are based on localization and a version of Bott's formula which is formulated in the language of
12+
equivariant intersection theory. See [Dan14](@cite) and the references cited there.
13+
14+
Using Bott's formula in enumerative geometry goes back to [ES02](@cite). We quote from that paper:
15+
16+
> Many parameter spaces carry natural actions of algebraic tori, in particular those coming from projective enumerative problems. In 1967, Bott gave a residue formula that allows one to express the degree of certain zero-cycles on a smooth complete variety with an action of an algebraic torus in terms of local contributions supported on the components of the fixpoint set. These components tend to have much simpler structure than the whole space; indeed, in many interesting cases, including all the examples of the present paper, the fixpoints are actually isolated.
17+
18+
We represent an *abstract variety with a torus action* by specifying its dimension together with the fixed points of the action and, possibly, further data.
19+
20+
!!! note
21+
In order to work with a version of Bott's formula for orbifolds, it is allowed to specify multiplicities at the fixed points. See the section on Kontsevich moduli spaces.
22+
23+
An *abstract equivariant vector bundle under a torus action* is represented by its rank and its base variety, together with its localizations at the fixed points.
24+
25+
!!! note
26+
Recall that an equivariant vector bundle over a point is a representation of the group under consideration (in our case, a torus).
27+
28+
29+
## Torus Representations
30+
31+
### Types
32+
33+
For our purposes here, we offer the type `TnRep`.
34+
35+
### Constructors
36+
37+
```@docs
38+
tn_representation(w::Vector{<:IntegerUnion})
39+
```
40+
41+
## Operations on Torus Representations
42+
43+
```@docs
44+
dual(F::TnRep)
45+
```
46+
47+
## Varieties With a Torus Action
948

1049
### Types
1150

@@ -48,33 +87,107 @@ tautological_bundles(X::TnVariety)
4887

4988
### Further Data Associated to an Abstract Variety With a Torus Action
5089

51-
`trivial_line_bundle(X::TnVariety)`
52-
`cotangent_bundle(X::TnVariety)`
53-
`euler_number(X::TnVariety)`
54-
55-
!!! note
56-
If `X` is of type `TnVariety`, entering `total_chern_class(X)` returns the total Chern class of the tangent bundle of `X`.
57-
Similarly for entering `chern_class(X, k)`.
90+
As for the type `AbstractVariety`, we have the methods `trivial_line_bundle(X::TnVariety)` (alternatively, `OO(X::TnVariety)`),
91+
`cotangent_bundle(X::TnVariety)`, and `euler_number(X::TnVariety)`. Morever, if `X` is of type `TnVariety`, entering `total_chern_class(X)`
92+
returns the total Chern class of the tangent bundle of `X`. Similarly for entering `chern_class(X, k)`.
5893

5994

60-
## Equivariant Abstract Bundles Under a Torus Action
95+
## Abstract Equivariant Vector Bundles Under a Torus Action
6196

6297
### Types
6398

99+
The OSCAR type for an abstract equivariant vector bundle under a torus action is `TnBundle`.
100+
64101
### Constructors
65102

66-
### Specialized Constructors
103+
```@docs
104+
tn_bundle(X::TnVariety, r::Int, f::Function)
105+
```
106+
107+
### Underlying Data of an Equivariant Bundle
108+
109+
If `F` is of type `TnBundle`, then `rank(F)` and `parent(F)` return the rank and the
110+
underlying variety of `F`, respectively. Moreover, we have:
111+
112+
```@docs
113+
localization(F::TnBundle)
114+
```
115+
116+
### Operations on Abstract Equivariant Vector Bundles
67117

68-
### Underlying Data of an Equivariant Abstract Bundle
118+
```@docs
119+
dual(F::TnBundle)
120+
```
121+
122+
## Chern Classes and Their Integration
69123

70-
### Further Data Associated to an Equivariant Abstract Bundle
124+
In contrast to the varieties of type `AbstractVariety`, there are no associated Chow rings for the varieties of type `TnVariety`.
125+
In order to work with polynomial expressions in the Chern classes of an abstract equivariant vector bundle, Oscar
126+
internally creates an appropriate polynomial ring. We illustrate this in the examples below.
127+
128+
### Types
71129

72-
## Integrating ...
130+
To work with with polynomial expressions in Chern classes, we offer the type `TnBundleChern`.
131+
132+
### Constructors
133+
134+
```@docs
135+
chern_class(F::TnBundle, f::RingElem)
136+
```
73137

138+
```@docs
139+
total_chern_class(F::TnBundle)
140+
```
74141

142+
### Underlying Data of Chern Classes
75143

76-
## Example: Linear Subspaces on Hypersurfaces
144+
```@docs
145+
tn_bundle(c::TnBundleChern)
146+
```
147+
148+
```@docs
149+
polynomial(c::TnBundleChern)
150+
```
151+
152+
### Operations on Chern Classes
153+
154+
The usual arithmetic operations are available.
155+
156+
###### Examples
157+
158+
```jldoctest
159+
julia> G = tn_grassmannian(1, 3);
160+
161+
julia> T = tangent_bundle(G)
162+
TnBundle of rank 2 on TnVariety of dim 2 with 3 fixed points
163+
164+
julia> c1 = chern_class(T, 1)
165+
Chern class c[1] of TnBundle of rank 2 on TnVariety of dim 2 with 3 fixed points
166+
167+
julia> c2 = chern_class(T, 2)
168+
Chern class c[2] of TnBundle of rank 2 on TnVariety of dim 2 with 3 fixed points
169+
170+
julia> c = c1^2-3*c2
171+
Chern class c[1]^2 - 3*c[2] of TnBundle of rank 2 on TnVariety of dim 2 with 3 fixed points
172+
173+
julia> typeof(c)
174+
TnBundleChern
175+
176+
```
177+
178+
### Integration
179+
180+
```@docs
181+
integral(c::TnBundleChern)
182+
```
183+
184+
## Examples: Linear Subspaces on Hypersurfaces
77185

78186
```@docs
79187
linear_subspaces_on_hypersurface(k::Int, d::Int; bott::Bool = true)
80188
```
189+
190+
## Kontsevich Moduli Spaces
191+
192+
## Examples: Rational Curves on Complete Intersections
193+

0 commit comments

Comments
 (0)