Progress on the curve orbifold locus with embedded points. (This is only for CY 3folds at present, but I don't think that is essential). Theorem For CY 3-fold with B = point basket and C = curve basket, the Hilbert series is PI + (sum over Ga in C) b*(b-term) and N*(N-term) + (sum over Q in B) Qorb(r,[a,b,c],0) Here PI = (1+a*t+b*t^2+a*t^3+t^4)/(1-t)^4 = 1 + P1 t + P2 t^2 + ..; depends on P1 and P2. The curve basket consists of data (r,a,b,N), where Ga is a curve of transverse type 1/r(a,r-a), and b and N are integers (interpreted below). The "degree" b-term is "sectional" Qorb(r,[a,r-a],r)/(1-t^r) with denominator [1,1,r,r], and the "normal" N-term is calculated by function Nterm(r,a) return t^2* (t^(r-2)*(1+t^be)*InverseMod(Denom([be,be,r-be]) div (1-t)^3,((1-t^r) div (1-t))) mod ((1-t^r) div (1-t)))/Denom([1,1,1,r]) where be is InverseMod(a,r); end function; (This is not currently right, e.g. for pure 1/5(2,3) curves.) This item in the basket contributes b*Qorb(r,[a,r-a],r)/(1-t^r) + N*Nterm(r,a) Qorb is calculated by the now standard function: function Qorb(r,LL,k) L := [ Integers() | i : i in LL ]; // this allows empty list if (k + &+L) mod r ne 0 then error "Error: Canonical weight not compatible"; end if; n := #LL; Pi := &*[ R | 1-t^i : i in LL]; h := Degree(GCD(1-t^r, Pi)); // degree of GCD(A,B) // -- simpler calc? l := Floor((k+n+1)/2+h); // If l < 0 we need a kludge to avoid programming // Laurent polynomials properly de := Maximum(0,Ceiling(-l/r)); m := l + de*r; A := (1-t^r) div (1-t); B := Pi div (1-t)^n; H,al_throwaway,be:=XGCD(A,t^m*B); return t^m*be/(H*(1-t)^n*(1-t^r)*t^(de*r)); end function; Intepretation of the curve terms: b is "degree Ga_r modified by fractional contributions" from embedded points on Ga_r, and N is the normal data (the difference between the degrees of the two isotypical components a and r-a of the normal bundle) similarly modified. The b-term corresponds to taking a virtual section by a hypersurface in |rA|. The N-term is the "second term" of [Buckley and Szendroi]. To prove the theorem, we eventually have to parse terms and translate between fractional geometric quantities such as A^3 and deg Ga_r in terms of what is in the basket. In making up a basket, we don't need to do this parsing, so everything is integral. Example: take PI := (1-3*t+5*t^2-3*t^3+4*t^4)/(1-t)^4; // = 1 + t + 3*t^2 + .. r := 2; b := 1; b*Qorb(2,[1,1],2)/(1-t^2) + N*Nterm(2,1); // -t^3 / [1,1,2,2] r:=3; b:=1; a:=1; N:=-1; b*Qorb(3,[1,2],3)/(1-t^3)+N*Nterm(r,a); // (-t^3-2*t^4-t^5)/[1,1,3,3] (1-3*t+5*t^2-3*t^3+t^4)/(1-t)^4 + -t^3/Denom([1,1,2,2]) + (-t^3-2*t^4-t^5)/Denom([1,1,3,3]); gives Y11 in PP(1,2,2,3,3). What is going on at the embedded points? Qorb(r,[a,b,c],k) (with a+b+c+k==0 mod r) contains the r-periodic term. It has denominator (1-t)^3*(1-t^r)*H where H = hcf ( (1-t^r)/(1-t), prod (1-t^ai)/(1-t) ). In other words, if a,b or c has a common factor s with r, an extra factor of (1-t^s) appears in the denominator, so that the denominator is divisible by (1-t^s)*(1-t^r), so divisible by (1-t^s)^2. This means that if you parse Qorb(r,[a,b,c],k) into different factors or r, you find that the embedded point contributes fractional pieces to the curve locus. PartialFractionDecomposition tells us how much this contribution is worth: Example > Qorb(34,[1,10,23],0); (t^34 + t^33 + t^32 + t^30 + t^29 + t^28 + t^26 + t^23 + t^22 + t^20 + t^19 + t^18 + t^16 + t^15 + t^12 + t^10 + t^9 + t^8 + t^6 + t^5 + t^4)/(t^38 - 2*t^37 + 2*t^35 - t^34 - t^4 + 2*t^3 - 2*t + 1) > PartialFractionDecomposition($1*(1-t)^4); [ <1, 1, 1>, , , , ] the piece of this with denom [1,1,2,2] is the 3rd line 7/17. So the fact that the 1/2 curve has an embedded 1/34 point means that its degree is == 7/17 mod ZZ. Example Y70 in PP(1,2,10,23,34) has a curve of 1/2 of degree 70/(2*5*17) = 7/17. The embedded point 1/34(1,10,23) adds -7/17 to this degree to make it the integer d = 0. So the orbifold contribution is (sum of the isolated odd points) + Qorb(34,[9,10,15],0) + 0*Qorb(2,[1,1],2)/(1-t^2) [ 1, 2, 10, 23, 34, 70 ] [ [ 23, 2, 10, 11 ], [ 34, 1, 10, 23 ] ] [ [ 2, 1, 1 ] ] [ 0 ] > 70/2/5/17-7/17; 0