We say a symmetric divisor on M0,n is a symmetric F-divisor if D . F ≥0 for every F curve.
Let SF0,n denote the cone of all Sn symmetric divisors on M0,n that intersect all the F-curves nonnegatively. This cone contains the cone of Sn symmetric nef divisors. (Fulton’s F Conjecture predicts that the two cones are equal). See [AGSS] Section 2 for more details.
This function first checks to see if D is an F-divisor. If not, the function returns false. If so, the function goes on to check whether D is an extremal ray of the cone SF0,n. It does so by finding all the F-curves which D intersects in degree zero (i.e., finding how many facets of the cone D lies on) and then checking to see whether this set contains sufficiently many independent hyperplanes to determine an extremal ray.
In the example below, we check that the divisor 3B2+2B3+4B4 is extremal in the cone SF0,8 for n=8. We also check that the divisor kappa (see kappaDivisorM0nbar), which is known to be very ample, is not an extremal ray of SF0,8.
i1 : D=symmetricDivisorM0nbar(8,3*B_2+2*B_3+4*B_4) o1 = SymmetricDivisorM0nbar{2 => 3 } 3 => 2 4 => 4 NumberOfPoints => 8 o1 : SymmetricDivisorM0nbar |
i2 : isExtremalSymmetricFDivisor(D) o2 = true |
i3 : D=kappaDivisorM0nbar(8) 5 o3 = SymmetricDivisorM0nbar{2 => - } 7 8 3 => - 7 9 4 => - 7 NumberOfPoints => 8 o3 : SymmetricDivisorM0nbar |
i4 : isExtremalSymmetricFDivisor(D) o4 = false |