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 = 3*B + 2*B + 4*B 2 3 4 o1 : S_8-symmetric divisor on M-0-8-bar |
i2 : isExtremalSymmetricFDivisor(D) o2 = true |
i3 : D=kappaDivisorM0nbar(8) 5 8 9 o3 = -*B + -*B + -*B 7 2 7 3 7 4 o3 : S_8-symmetric divisor on M-0-8-bar |
i4 : isExtremalSymmetricFDivisor(D) o4 = false |