This package supports computation in intersection theory on smooth projective varieties. An abstract variety is not given by equations. Instead, one gives its graded intersection ring of algebraic cycle classes modulo numerical equivalence (tensored with the rational numbers or perhaps with some algebra over the rational numbers), its dimension, a method for counting the number of points in a cycle class of dimension zero (integration), and the Chern class of its tangent bundle (if known). The intersection ring is represented as a Macaulay2 ring, and its elements are Macaulay2 ring elements.
An abstract sheaf on an abstract variety is represented by an object of class AbstractSheaf that contains the total Chern character of the sheaf. It should be thought of as an element of the Grothendieck ring of the variety tensored with the rational numbers, which, by the Grothendieck-Riemann-Roch theorem, is isomorphic to the intersection ring; the isomorphism is provided by the Chern character.
An abstract variety map is a map between abstract varieties: the information encoded is the pull-back and push-forward maps between the corresponding intersection rings. If necessary, the push-forward map is computed automatically from multiplication and integrals.
One may start with a base variety whose intersection ring contains variables of degree 0 that can represent unknown integers in formulas, along with variables of positive degree that can be used as Chern classes of generic abstract sheaves.
This package is inspired by schubert, which was written by Sheldon Katz and Stein A. Strømme.
The theory behind the computations of intersection rings of flag bundles has been made rigorous in the paper Computations in intersection rings of flag bundles by Grayson, Seceleanu, and Stillman: see arXiv:1205.4190. The paper also treats the case of isotropic flag bundles, with the corresponding algorithms appearing here for the first time.
This documentation describes version 0.7 of Schubert2.
The source code from which this documentation is derived is in the file Schubert2.m2. The auxiliary files accompanying it are in the directory Schubert2/.