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 degree zero part of the intersection ring. By the Grothendieck-Riemann-Roch theorem, since we are working over the rational numbers, the Chern character provides a ring isomorphism from Grothendieck ring (tensored as before) to the intersection ring.
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.