This type implements Sn symmetric divisors on the moduli space of stable n-pointed genus 0 curves M0,n.
The standard basis of the Q-vector space of Sn symmetric divisors on M0,n is given by the boundary divisors Bi, as we now explain. Let ΔI be the closure of the locus of curves with two irreducible components meeting at one node such that the marked points with labels in I lie on the first component, and the marked points with labels in Ic lie on the second component. Then Bi= ∑#I=i ΔI, and the divisors B2, ..., B[n/2] form a basis of the space of symmetric divisors. See [KM].
Symmetric divisors are implemented as hash tables. The key "NumberOfPoints" records the number of marked points, i.e., the n in M0,n. The keys must be integers between 2 and [n/2]; the value of the key i is the coefficient of Bi when a divisor D is written in the standard basis.
An object of the "SymmetricDivisorM0nbar" class can be created using the function symmetricDivisorM0nbar in either one of two ways: by entering n and a linear polynomial in the Bi’s, or entering n and a list of coefficients.
Methods are included for adding two symmetric divisors, negating a divisor, multiplying a divisor by a scalar, and testing equality of two divisors. The function coefficientList returns the list of the coefficients.
The object SymmetricDivisorM0nbar is a type, with ancestor classes HashTable < Thing.