======================== Formal ice-cream: Start with \rth(a) and set b = a^{-1} mod r. Define Scores (b/r) = i in ZZ such that bi/r scores = i in ZZ such that [bi/r] > [b(i-1)/r]. This is obviously invariant under translation i -> r + i. It also has the reflection symmetry i <-> -a+1-i and i <-> r-a+1-i. While slightly less obvious, this boils down to bi + r - bi == 0 mod r so that bi scores if and only if b(-i+1) scores. The function NoScores(b/r) has the same symmetries. Now for any k with a+k == 0 mod r, I define Pnum(\rth(a),k) to be either a segment of Scores(b/r) or a segment of NoScores(b/r) (depending on parity) that is a symmetric Laurent polynomial of degree k+r+1 that is zero in degree up to [c/2] where c = k+2. so that Ptot = Pnum/(1-t)*(1-t^r) is symmetric of degree k. For exa 1/7(2), b = 4, Scores (4/7) = .. + t^-3 + t^-1 + 1 + t^2 + t^4 + t^6 + t^7 + t^9 + .. (you only need to write down one segment of this mod r) For k = -2, k+r+1 eq 6, I could take the segment 1+t^2+t^4+t^6 for Scores(4/7), but that has nonzero coeff in degree zero = c/2, so I must do -t-t^3-t^5. For ex P_I = 1/(1-t)^2 and Ptot = (-t-t^3-t^5)/(1-t)*(1-t^7) gives (1+t^2+t^4+t^6)/(1-t)*(1-t^7), and this corresponds to the genuine example C_8 in PP(1,2,7). Sim for k = 5, t^4+t^6+t^7+t^9 is symmetric of deg 13, and is zero in degree up to c/2 = 3. The point is that the formula should cover things like PP(2,7) for which k = -9, c = -7, so that P_I = 0, and the contributions Ptot(1/7(2),-9) and Ptot(1/2(1),-9) have to cancel out in deg < 0, and give 1/(1-t^2)(1-t^7) in deg >= 0. This points the way to what we have to do to reclaim Kaori's results in this language. In turn, $P_\orb$ is the sum of a {\em periodic term} $P_{\per}$ and a {\em growing term} $P_{\grow}$ (see Theorem~\ref{th!main}). ========================= Case dim 1 Pper and Pgrow are simple and conceptual; they form a foundation for the case of isolated n-dimensional singularities; The orbifold point \rth(a) at P of curve corresponds to a rational divisor (b/r)P where b = a\1 mod r. Pper is the "small change" lost in rounding down: the rational divisor (bi/r)P has fractional part {bi/r}P. Rational functions have integral poles, so the RR space \sL(iA) or divisorial sheaf \Oh_C(iA) corresponding to the fractional divisor iA (defined by the usual valuation condition \div f + iA \ge0) is actually \sL([iA]) or \Oh_C([iA]). On a curve, if A = (b/r)P then when we apply RR to iA, we lost the fractional part {bi/r} in loose change. This loss contributes \[ Pper(\rth(a)=\sum_{i\ge0} -{bi/r}t^i \] to the Hilbert series. Since the sum is periodic the sum over i\ge0 equals \frac1{1-t^r} times the sum over an interval i=1,\dots,r-1 (the contribution is zero when i is a multiple of r, so don't worry about the ends of the intervals). Lemma Pper(\rth(a)=\sum_{i\ge0} -{bi/r}t^i is the inverse of (1-t^a) mod (1-t^r)/(1-t). It is important to understand what this contribution Pper(\rth(a) is (and is not). The polynomial RR formula on a curve is \[ \hbox{RR}(C,iA)=1-g+i\deg A \] with \deg A\in H^2(C,\Q)=\Q. The right-hand side is a polynomial function of i. To relate it to \chi(\Oh_C(iA)), I must add the contribution -{bi/r} to account for the passage from the fractional divisor iA to the first Chern class of \Oh_C([iA]). =========== I think the statement for a pure m-dim orbifold locus of transverse type 1/r[L] in the context of K = kA is P = P_Initial + P_Orb where P_Orb is a sum of P_i / (1-t)^{m+1} * (1-t^r)^{n-m} and the P_i are Laurent polynomials, the same as in the 0-dim orbifold formula shifted to a suitable interval to give right symmetric degree. Surface S13 in PP(1,1,4,4) has curve Ga of 1/4(1) and k = 3 so c = 6. > PI := (1-t-t^5+t^6)/(1-t)^3; > A := (t^4+t^5)/&*[1-t^i : i in [1,1,4]]; > B := (-t^5-t^6-t^7)/&*[1-t^i : i in [1,4,4]]; > (PI+2*A+B)*&*[1-t^i : i in [1,1,4,4]]; -t^13 + 1 You can try out PI+a*A+b*B in a range of values of a,b; e.g., > (PI+A+B)*&*[1-t^i : i in [1,1,4,8,12]]; t^29 - t^24 - t^5 + 1 Predicts S(5,24) in PP(1,1,4,8,12). Note that genus Ga = 1 > (PI+3*A+B)*&*[1-t^i : i in [1,1,4,4,4,5]]; -t^22 + 2*t^14 + 2*t^13 + t^12 - t^10 - 2*t^9 - 2*t^8 + 1 A Pfaffian 3 3 4 4 \\ 4 5 5 \\ 5 5 \\ 6. I think that Ga is PP(z1,z2) and PP(z3) is an isolated nonquasismooth point. Maybe a mirage. > (PI+3*A+2*B)*&*[1-t^i : i in [1,1,4,4,4]]; t^17 - t^9 - t^8 + 1 Predicts S(8,9) in PP(1,1,4,4,4) > (PI+3*A+3*B)*&*[1-t^i : i in [1,1,4,4,4]]; t^17 - t^12 - t^5 + 1 Predicts S(5,12) in PP(1,1,4,4,4) Here b = deg Ga the orbifold curve 1/4(1), whereas increasing a (?) possibly increments genus(Ga) or adds isolated or embedded points In the same way, B is easy to understand as Porb(4,[1],7)/(1-t^4), whereas A with its factor of (1+t) is more subtle. There is also a hint that B only occurs in the comb A+B = (t^4+t^5+t^6+t^7+t^8)/ denom[1,4,4]. ============================================== Program that works at Kyoto Dec 2005 Qorb(r,LL,k) // taken from .magmarc for testing > Qorb(3,[1],2); t^3/(t^4 - t^3 - t + 1) > Qorb(3,[1],-1); (-t^2 - t)/(t^4 - t^3 - t + 1) > Qorb(5,[2,2],1); (t^5 - t^4 + t^3)/(t^7 - 2*t^6 + t^5 - t^2 + 2*t - 1) > Qorb(5,[2,2],-4); (2*t^3 + t^2 + t + 2)/(t^7 - 2*t^6 + t^5 - t^2 + 2*t - 1) > 1/&*[1-t^i : i in [2,2,5]] - Qorb(5,[2,2],-4); (-2*t - 3)/(t^5 - t^4 - 2*t^3 + 2*t^2 + t - 1) > $1*&*[1-t^i : i in [1,2,2]]; 2*t + 3 > 1/&*[1-t^i : i in [2,2,5]] - Qorb(5,[2,2],-9); -1/(t^7 - t^6 - 2*t^5 + 2*t^4 + t^3 - t^2) > > $1*&*[1-t^i : i in [1,2,2]]; 1/t^2 > [1/&*[1-t^i : i in [2,2,2*r+1]] - Qorb(2*r+1,[2,2],-2*r-5) : r in [1..10]]; [ 1/(t^6 - t^5 - 2*t^4 + 2*t^3 + t^2 - t), -1/(t^7 - t^6 - 2*t^5 + 2*t^4 + t^3 - t^2), 1/(t^8 - t^7 - 2*t^6 + 2*t^5 + t^4 - t^3), -1/(t^9 - t^8 - 2*t^7 + 2*t^6 + t^5 - t^4), 1/(t^10 - t^9 - 2*t^8 + 2*t^7 + t^6 - t^5), -1/(t^11 - t^10 - 2*t^9 + 2*t^8 + t^7 - t^6), 1/(t^12 - t^11 - 2*t^10 + 2*t^9 + t^8 - t^7), -1/(t^13 - t^12 - 2*t^11 + 2*t^10 + t^9 - t^8), 1/(t^14 - t^13 - 2*t^12 + 2*t^11 + t^10 - t^9), -1/(t^15 - t^14 - 2*t^13 + 2*t^12 + t^11 - t^10) ] > [(-1)^r*1/t^r/&*[1-t^i : i in [1,2,2]] eq 1/&*[1-t^i : i in [2,2,2*r+1]] - Qorb(2*r+1,[2,2],-2*r-5) : r in [1..10]]; // all true > [(1/&*[1-t^i : i in [3,3,3*r+1]] - Qorb(3*r+1,[3,3],-3*r-7))*&*[1-t^i: i in [1,3,3]] : r in [1..10]]; // Test 1: when n = 1, this is just a translate of Scores(b/r). > [Qorb(13,[i],13-i) : i in [1..12]]; [ t^13/(t^14 - t^13 - t + 1), (-t^18 - t^16 - t^14 - t^11 - t^9 - t^7)/(t^14 - t^13 - t + 1), (-t^17 - t^14 - t^10 - t^7)/(t^14 - t^13 - t + 1), (t^17 + t^16 + t^15 + t^13 + t^12 + t^11 + t^10 + t^8 + t^7 + t^6)/(t^14 - t^13 - t + 1), (-t^16 - t^14 - t^11 - t^8 - t^6)/(t^14 - t^13 - t + 1), (-t^14 - t^7)/(t^14 - t^13 - t + 1), (t^13 + t^7)/(t^14 - t^13 - t + 1), (-t^15 - t^14 - t^12 - t^10 - t^9 - t^7 - t^5 - t^4)/(t^14 - t^13 - t + 1), (t^13 + t^9 + t^5)/(t^14 - t^13 - t + 1), (t^13 + t^10 + t^7 + t^4)/(t^14 - t^13 - t + 1), (t^13 + t^11 + t^9 + t^7 + t^5 + t^3)/(t^14 - t^13 - t + 1), (t^13 + t^12 + t^11 + t^10 + t^9 + t^8 + t^7 + t^6 + t^5 + t^4 + t^3 + t^2)/(t^14 - t^13 - t + 1) ] // Test 2: PP(7,9,23) has 1/7(2,2), 1/9(7,5), 1/23(7,9) in k = -39 // and PP(3,4,5,7) has k = -19 Qorb(7,[2,2],-39) + Qorb(9,[5,7],-39) + Qorb(23,[7,9],-39); -1/(t^39 - t^32 - t^30 + t^23 - t^16 + t^9 + t^7 - 1) $1 eq 1/&*[1-t^i : i in [7,9,23]]; true Qorb(3,[1,2,1],-19) + Qorb(4,[3,1,3],-19) + Qorb(5,[3,4,2],-19) + Qorb(7,[3,4,5],-19); 1/(t^19 - t^16 - t^15 - t^14 + t^11 + t^10 + t^9 + t^8 - t^5 - t^4 - t^3 + 1) $1 eq 1/&*[1-t^i : i in [3,4,5,7]]; true // Test 3: Fano with k = -2 PI := (1-2*t+t^2)/(1-t)^4; X := PI + Qorb(5,[1,2,4],-2); X*&*[1-t^i: i in [1,1,2,3,4,5]]; // t^14 - t^8 - t^6 + 1 ==================================== Older experiments, ?? Aug 2005 Suppose I have a 1/2(1,1) point on a surface with KS = 2A, c = 5 Pper(1/2(1,1)) := 1/4*1/(1-t^2)*(-t) Pgrow is of the form Numgrow/(1-t)^3 so that Pper + Pgrow has coeff 0 in deg 1, 2 (= [c/2]) and has Gor symmetry. So Numgrow = 1/4*t - 3/4*t^2 ============================= Suppose I have a 1/7(2,3) point on a surface with KS = 2A, c = 5 Pper(1/7(2,3)) := 1/7*1/(1-t^7)*(-4*t - 2*t^3 - 3*t^4 - 3*t^5 - 2*t^6); Pgrow is of the form Numgrow/(1-t)^3 so that Pper + Pgrow has coeff 0 in deg 1, 2 (= [c/2]) and has Gor symmetry. So Numgrow = 4/7*t - 12/7*t^2 (that is, the first 2 coeffs of Pper*(1-t)^3 This happens to be right. Porb := Pper + Numgrow/(1-t)^3; PI:= (1-t+2*t^2+2*t^3-t^4+t^5)/(1-t)^3; (PI+Porb)*&*[1-t^i: i in [1,1,2,2,3,3,7]]; // gives codim 4 c.i. S(4,5,6,6) in PP(1,1,2,2,3,3,7) // t^21-t^17-t^16-2*t^15+t^12+2*t^11+2*t^10+t^9-2*t^6-t^5-t^4+1 // this is a mirage, but it's Hilbert series is Kosher. function Pper(r,L) if &or[GreatestCommonDivisor([r,a]) ne 1 : a in L] // other mugtraps? then error "Error: Not Coprime"; end if; A := (t^r-1) div (t-1); B := t*&*[1-t^i : i in L]; h_throwaway, al_throwaway, be := XGCD(A,B); return t*be; // I have edit out r compared to previous versions end function; Note. I put t in the denom B then multiply out by t. This is just a kludge that enforces the basis t,t^2,.. t^(r-1) for polynomials mod 1+t+..t^(r-1), in place of 1,t,.. t^(r-2). function Pgrow(r,L,c) // takes account of c // put in a mugtrap to ensure the qt sing 1/r(L) has right canonical class ========================================== a:=5; b:=11; c:=13; P := [a*b,a*c,b*c]; k := - &+P; k; // work with PP(a*b,a*c,b*c) X := 1/&*[1-t^i: i in P]- Qorb(P[1],[P[2],P[3]],k)- Qorb(P[2],[P[1],P[3]],k) - Qorb(P[3],[P[1],P[2]],k); X; Conclusion: X is of the form M5*Qorb(5,[143],k+5)/(1-t^5) + N5/[1,1,5]/t^128 where M5 is 0 and N5 is (-3*t^2 + t - 3)/t + M11*Qorb(11,[65],k+11)/(1-t^11) + N11/[1,1,11]/t^125 where M11 is (1+t^3+t^5+t^8)/t^4 and N11 is (t^8 + t^6 - t^5 + 2*t^4 - t^3 + t^2 + 1)/t^4 + M13*Qorb(13,[3],k+13)/(1-t^13) + N13/1,1,13]/t^124 where M13 is (1-t^4+t^5-t^6+t^10)/t^5 and N13 is (2*t^10 + t^8 + t^7 - t^6 + 3*t^5 - t^4 + t^3 + t^2 + 2)/t^4 Derivation. You get M5, M11, M13 by the following steps: for M13, since 1/13(3) 55 = 3 mod 13, collect the Ph(13)^2 term from W := PartialFractionDecomposition(X*t^115*(1-t)^2*(1-t^3)); A0 := W[5,3]; // then A := A0*t^7 mod Ph(13); // = 1-t^4+t^5-t^6+t^10; M13 := A/t^5; // why t^7? could have done X*t^122*(1-t)^2*(1-t^3) /* for M11, 1/11(10), that is 65 = 10 mod 11, collect the Ph(11)^2 term from */ W := PartialFractionDecomposition(X*t^115*(1-t)^2*(1-t^10)); A0 := W[2,3]; // A := A0*t^10 mod Ph(11); // = 1 + t^3 + t^5 + t^8 M11 := A/t^4; > XX := X-M11*Qorb(11,[65],k+11)/(1-t^11)-M13*Qorb(13,[3],k+13)/(1-t^13); > PartialFractionDecomposition(XX*t^129*(1-t)^3); a:=5; b:=12; c:=13; P := [a*b,a*c,b*c]; k := - &+P; k; // work with PP(a*b,a*c,b*c) X := 1/&*[1-t^i: i in P]- Qorb(P[1],[P[2],P[3]],k)- Qorb(P[2],[P[1],P[3]],k) - Qorb(P[3],[P[1],P[2]],k); X; r := c; al := a*b mod r; W := PartialFractionDecomposition(X*t^122*(1-t)^2*(1-t^8)); A := W[9,3]; X1 := X - A/t^5*Qorb(r,[al],k+r)/(1-t^r); W1 := PartialFractionDecomposition (X1*t^137*(1-t)^3); A1 := W1[10,3]; X2 := X1 - A1/t^137/&*[1-t^i : i in [1,1,13]]; AA := A/t^5*Qorb(r,[al],k+r)/(1-t^r) + A1/t^137/&*[1-t^i : i in [1,1,13]]; AA*t^135*(1-t)^3 eq (1+t+t^2+t^3)/Ph(13)^2 + (2*t+2*t^2+2*t^3+t^4)/Ph(13); Conclusion: although AA is Gor sym, its components are not. X2*t^135 eq -(1+t+t^2)*(t^3+t^6+t^9)/&*[1-t^i : i in [1,12,12]] -(1+t+t^2)*(1+t)/&*[1-t^i : i in [1,1,12]]; t^4*InverseMod(Numerator(AA),Ph(13)); t^13 + t^9 + t^5 that's ice cream function for 3/13 So AA is related to Porb(13,[9],281) W := PartialFractionDecomposition(X*t^120*(1-t)^2*(1-t^21)); =============================== // This is the beginning of the successful conclusion // Go back to the previous case PP(55, 65, 143), k = -263: a:=5; b:=11; c:=13; P := [a*b,a*c,b*c]; k := - &+P; k; // work with PP(a*b,a*c,b*c) X := 1/Denom(P)- Qorb(P[1],[P[2],P[3]],k)- Qorb(P[2],[P[1],P[3]],k) - Qorb(P[3],[P[1],P[2]],k); X; // 1/13(3) W13 := PartialFractionDecomposition(X*t^115*(1-t)^2*(1-t^3)); // [i: i in [0..12] | IsGev(t^i*W13[5,3]*Numerator(Qorb(13,[3],k+13)) mod Ph(13))]; A13 := t^2*W13[5,3]*Numerator(Qorb(13,[3],k+13)) mod Ph(13); X13 := X - A13/Denom([1,13,13])/t^123; V13 := PartialFractionDecomposition(X13*t^123*(1-t)^3); // [i : i in [0..12] | IsGev(t^i*V13[4,3] mod Ph(13))]; B13 := (t^6*V13[4,3] mod Ph(13))/t^6; Y13 := X13 - B13/t^123/Denom([1,1,13]); // 1/11(10) W11 := PartialFractionDecomposition(X*t^115*(1-t)^2*(1-t^10)); // [i: i in [0..12] | IsGev(t^i*W11[2,3]*Numerator(Qorb(11,[10],k+11)) mod Ph(13))]; A11 := t^10*W11[2,3]*Numerator(Qorb(11,[10],k+11)) mod Ph(11); X11 := X-A11/Denom([1,11,11])/t^124; V11 := PartialFractionDecomposition(X11*t^124*(1-t)^3); // [i : i in [0..11] | IsGev(t^i*V11[2,3] mod Ph(11))]; B11 := (t^5*V11[2,3] mod Ph(11))/t^5; Y11 := X11 - B11/t^124/Denom([1,1,11]); // 1/5(3) no leading term in 1/Ph(5)^2 A5 := 0; X5 := X - A5/Denom([1,5,5])/t^123; V5 := PartialFractionDecomposition(X5*t^123*(1-t)^3); // [i : i in [0..4] | IsGev(t^i*V5[1,3] mod Ph(5))]; B5 := (t*V5[1,3] mod Ph(5))/t; Y5 := X5 - B5/t^128/Denom([1,1,5]); X - A13/Denom([1,13,13])/t^123 - B13/t^123/Denom([1,1,13]) -A11/Denom([1,11,11])/t^124 - B11/t^124/Denom([1,1,11]) - B5/t^128/Denom([1,1,5]); =============================== a:=5; b:=9; c:=13; // PP(45,65,117), k = -227 P := [a*b,a*c,b*c]; k := - &+P; k; // work with PP(a*b,a*c,b*c) X := 1/Denom(P)- Qorb(P[1],[P[2],P[3]],k)- Qorb(P[2],[P[1],P[3]],k) - Qorb(P[3],[P[1],P[2]],k); X; // 1/13(6) W13 := PartialFractionDecomposition(X*t^115*(1-t)^2*(1-t^6)); // [i: i in [0..12] | IsGev(t^i*W13[5,3]*Numerator(Qorb(13,[6],k+13)) mod Ph(13))]; // [ 4, 5 ] A13 := t^4*W13[5,3]*Numerator(Qorb(13,[6],k+13)) mod Ph(13)); X13 := X-A13/Denom([1,13,13])/t^105; =============================== // PP(60, 65, 156), k = -281. The hard point is 1-t^12 has many factors a:=5; b:=12; c:=13; P := [a*b,a*c,b*c]; k := - &+P; k; // work with PP(a*b,a*c,b*c) X := 1/&*[1-t^i: i in P]- Qorb(P[1],[P[2],P[3]],k)- Qorb(P[2],[P[1],P[3]],k) - Qorb(P[3],[P[1],P[2]],k); X; W13 := PartialFractionDecomposition(X*t^120*(1-t)^2*(1-t^8)); /* [i: i in [0..12] | IsGev(t^i*W13[9,3]*Numerator(Qorb(13,[8],k+13)) mod Ph(13))]; Answer is [ 9, 10, 11, 12 ] */ A13 := t^9*W13[9,3]*Numerator(Qorb(13,[8],k+13)) mod Ph(13); X13 := X - A13/Denom([1,13,13])/t^131; V13 := PartialFractionDecomposition(X13*t^131*(1-t)^3); /* [i: i in [0..12] | IsGev(t^i*V13[10,3] mod Ph(13))]; Answer is [ 4, 5, 6, 7, 8, 9, 10, 11 ] */ B13 := (t^4*V13[10,3] mod Ph(13))/t^4; Y13 := X13 - B13/t^131/Denom([1,1,13]); Y13 eq -(1+t+t^2)*(1+t)/t^135/Denom([1,1,12]) -(1+t+t^2)*(t^3+t^6+t^9)/t^135/Denom([1,12,12]); > PartialFractionDecomposition((X-X2)*t^135*(1-t)^3); [ , ] (X-X2)*t^134*(1-t)^3 eq (1+t+t^2+t^3)/t/Ph(13)^2 + (2+2*t+2*t^2+t^3)/Ph(13); // instead of (1+t+t^2+t^3) should use A = -t^4 -..-t^12, which throws // a 1 over to the /Ph(13) term making it symmetric: (X-X2)*t^135 eq t^4*A/&*[1-t^i : i in [1,13,13]] + A1/&*[1-t^i : i in [1,1,13]]; > A; -t^8 - t^7 - t^6 - t^5 - t^4 - t^3 - t^2 - t - 1 > A1; t^4 + 2*t^3 + 2*t^2 + 2*t + 1 then all the terms of Gor sym of same degree -11 function IsGev(f) K := FunctionField(Q); fie := homK|1/t>; g:=f/fie(K!f); if #Terms(Numerator(g)) eq 1 then if IsEven(Degree(Numerator(g))-Degree(Denominator(g))) then return true, Degree(Numerator(g))-Degree(Denominator(g)); else return false; end if; else return false; end if; end function; function IsGod(f) K := FunctionField(Q); fie := homK|1/t>; g:=f/fie(K!f); if #Terms(Numerator(g)) eq 1 then if IsEven(Degree(Numerator(g))-Degree(Denominator(g))) then return false; else true, Degree(Numerator(g))-Degree(Denominator(g)); end if; else return false; end if; end function; &+[ f( v[1^p], v[2^p], v[3^p] ) : p in sub ] where v := [a,b,c]; ============================= // Fri 6th Jan // the beginning of the end The term in 1/(1-t^r)^2 is A * Qorb(1/r,[a1,.. an-1],k+r)/(1-t^r where A is a Gorenstein symmetric Laurent poly of degree 0 supported in [[-r/2]+1, [r/2]-1]. The term in 1/(1-t^r) is B * 1/t^(k+r)/(1-t)^n/(1-t^r) where B is a Gor sym Laurent poly of degree r supported in [1, r-1]. A and B can be calculated from PX(t) using PartialFractionDecomp ? or more simply mult by other denominators and taking mod Ph(r). ? ============================= // Ex. PP(55, 65, 143), k = -263: a:=5; b:=11; c:=13; P := [a*b,a*c,b*c]; k := - &+P; k; // work with PP(a*b,a*c,b*c) X := 1/Denom(P)- Qorb(P[1],[P[2],P[3]],k)- Qorb(P[2],[P[1],P[3]],k) - Qorb(P[3],[P[1],P[2]],k); X; // 1/13(3) W13 := PartialFractionDecomposition(X*t^115*(1-t)^2*(1-t^3)); // [i: i in [0..12] | IsGev(t^i*W13[5,3] mod Ph(13))]; // says [7, 8] A13 := (t^7*W13[5,3] mod Ph(13))/t^5; X13 := X - A13*Qorb(13,[3],k+13)/(1-t^13); V13 := PartialFractionDecomposition(X13*t^128*(1-t)^3); // [i : i in [0..12] | IsGev(t^i*V13[4,3] mod Ph(13))]; B13 := (t*V13[4,3] mod Ph(13))/t^5; Y13 := X13 - B13/t^124/Denom([1,1,13]); // 1/11(10) W11 := PartialFractionDecomposition(X*t^115*(1-t)^2*(1-t^10)); // [i: i in [0..10] | IsGev(t^i*W11[2,3] mod Ph(11))]; A11 := (W11[2,3] mod Ph(11))/t^5; X11 := X-A11*Qorb(11,[10],k+11)/(1-t^11); V11 := PartialFractionDecomposition(X11*t^124*(1-t)^3); // [i : i in [0..10] | IsGev(t^i*V11[2,3] mod Ph(11))]; B11 := (t^5*V11[2,3] mod Ph(11))/t^4; Y11 := X11 - B11/t^125/Denom([1,1,11]); // 1/5(3) no leading term in 1/Ph(5)^2 A5 := 0; X5 := X - A5/Denom([1,5,5])/t^115; V5 := PartialFractionDecomposition(X5*t^115*(1-t)^3); // [i : i in [0..4] | IsGev(t^i*V5[1,3] mod Ph(5))]; // gives [0,4] B5 := (t^4*V5[1,3] mod Ph(5))/t; Y5 := X5 - B5/t^128/Denom([1,1,5]); X - A13*Qorb(13,[3],k+13)/(1-t^13) - B13/t^124/Denom([1,1,13]) - A11*Qorb(11,[10],k+11)/(1-t^11) - B11/t^125/Denom([1,1,11]) - B5/t^128/Denom([1,1,5]); /* where A13 is (t^10 - t^6 + t^5 - t^4 + 1)/t^5 and B13 is (2*t^10 + t^8 + t^7 - t^6 + 3*t^5 - t^4 + t^3 + t^2 + 2)/t^5 A11 is (t^8 + t^5 + t^3 + 1)/t^4 and B11 is (t^8 + t^6 - t^5 + 2*t^4 - t^3 + t^2 + 1)/t^4 A5 is 0 and B5 is (-3*t^2 + t - 3)/t */ ============================= // Ex. PP(55, 65, 143), k = -263: a:=6; b:=11; c:=13; P := [a*b,a*c,b*c]; k := - &+P; k; // work with PP(a*b,a*c,b*c) X := 1/Denom(P)- Qorb(P[1],[P[2],P[3]],k)- Qorb(P[2],[P[1],P[3]],k) - Qorb(P[3],[P[1],P[2]],k); X; // 1/13(1) W13 := PartialFractionDecomposition(X*t^126*(1-t)^3); // [i: i in [0..12] | IsGev(t^i*W13[9,3] mod Ph(13))]; // says [9, 10] A13 := (t^9*W13[5,3] mod Ph(13))/t^5; X13 := X - A13*Qorb(13,[1],k+13)/(1-t^13); V13 := PartialFractionDecomposition(X13*t^135*(1-t)^3); // [i : i in [0..12] | IsGev(t^i*V13[9,3] mod Ph(13))]; B13 := t^4*V13[3,3] mod Ph(13); Y13 := X13 - B13/t^141/Denom([1,1,13]); // 1/11(10) no leading term A11 := 0; X11 := X - A11; V11 := PartialFractionDecomposition(X11*t^126*(1-t)^3); ====================================== // Ex. PP(65,110,143) with k = 318 // completely worked out P := [65,110,143]; k := -&+P; X := 1/Denom(P)- Qorb(P[1],[P[2],P[3]],k)- Qorb(P[2],[P[1],P[3]],k) - Qorb(P[3],[P[1],P[2]],k); X; // 1/13(6) W13 := PartialFractionDecomposition(X*t^140*(1-t)^2*(1-t^6)); // [i: i in [0..12] | IsGev(t^i*W13[5,3] mod Ph(13))]; // says [7, 8, 9, 10] A13 := (t^7*W13[5,3] mod Ph(13))/t^4; X13 := X - A13*Qorb(13,[6],k+13)/(1-t^13); // [i : i in [0..12] | IsGev(t^i*V13[3,3] mod Ph(13))]; V13 := PartialFractionDecomposition(X13*t^153*(1-t)^3); // [i : i in [0..12] | IsGod(t^i*V13[3,3] mod Ph(13))]; // Note need odd B13 := t^4*V13[3,3] mod Ph(13); Y13 := X13 - B13/t^157/Denom([1,1,13]); // 1/11(10) W11 := PartialFractionDecomposition(X*t^140*(1-t)^2*(1-t^10)); // [i: i in [0..10] | IsGev(t^i*W11[2,3] mod Ph(11))]; A11 := (t^6*W11[2,3] mod Ph(11))/t^3; X11 := X - A11*Qorb(11,[10],k+11)/(1-t^11); V11 := PartialFractionDecomposition(X11*t^155*(1-t)^3); // [i : i in [0..10] | IsGod(t^i*V11[2,3] mod Ph(11))]; // Note need odd B11 := V11[2,3] mod Ph(11); Y11 := X11 - B11/t^155/Denom([1,1,11]); // 1/5(3) // no term in 1/(1-t^5)^2 X5 := X; V5 := PartialFractionDecomposition(X5*t^150*(1-t)^3); // [i: i in [0..4] | IsGod(t^i*V5[1,3] mod Ph(5))]; // gives [2] B5 := t^2*V5[1,3] mod Ph(5); Y5 := X5 - B5/t^157/Denom([1,1,5]); X - A13*Qorb(13,[6],k+13)/(1-t^13) - B13/t^157/Denom([1,1,13]) - A11*Qorb(11,[10],k+11)/(1-t^11) - B11/t^155/Denom([1,1,11]) - B5/t^157/Denom([1,1,5]); /* where A13 is (-t^8 - t^5 - t^3 - 1)/t^4 and B13 is -2*t^11 - t^10 - t^9 - 2*t^8 - t^7 - t^6 - t^5 - t^4 - 2*t^3 - t^2 - t - 2 A11 is (t^6 + 1)/t^3 and B11 is -t^5 - 1 A5 is 0 and B5 is 2*t^3 + t^2 + t + 2 What are the B? B13/t^157/Denom([1,1,13]) eq -t^3*Qorb(13,[5,7],-324); B11/t^155/Denom([1,1,11]) eq -t^4*Qorb(11,[1,6],-326); B5/t^157/Denom([1,1,5]) eq -t^3*Qorb(5,[2,2],-324); ============================= // Ex. PP(55, 65, 143), k = -263: a:=5; b:=11; c:=13; P := [a*b,a*c,b*c]; k := - &+P; k; // work with PP(a*b,a*c,b*c) X := 1/Denom(P)- Qorb(P[1],[P[2],P[3]],k)- Qorb(P[2],[P[1],P[3]],k) - Qorb(P[3],[P[1],P[2]],k); X; // 1/13(3) W13 := PartialFractionDecomposition(X*t^115*(1-t)^2*(1-t^3)); // [i: i in [0..12] | IsGev(t^i*W13[5,3] mod Ph(13))]; // says [7, 8] A13 := (t^7*W13[5,3] mod Ph(13))/t^5; X13 := X - A13*Qorb(13,[3],k+13)/(1-t^13); V13 := PartialFractionDecomposition(X13*t^128*(1-t)^3); // [i : i in [0..12] | IsGev(t^i*V13[4,3] mod Ph(13))]; B13 := t*V13[4,3] mod Ph(13); Y13 := X13 - B13/t^129/Denom([1,1,13]); // 1/11(10) W11 := PartialFractionDecomposition(X*t^115*(1-t)^2*(1-t^10)); // [i: i in [0..10] | IsGev(t^i*W11[2,3] mod Ph(11))]; A11 := (W11[2,3] mod Ph(11))/t^5; X11 := X-A11*Qorb(11,[10],k+11)/(1-t^11); V11 := PartialFractionDecomposition(X11*t^124*(1-t)^3); // [i : i in [0..10] | IsGev(t^i*V11[2,3] mod Ph(11))]; B11 := t^5*V11[2,3] mod Ph(11); Y11 := X11 - B11/t^129/Denom([1,1,11]); // 1/5(3) no leading term in 1/Ph(5)^2 A5 := 0; X5 := X - A5/Denom([1,5,5])/t^115; V5 := PartialFractionDecomposition(X5*t^115*(1-t)^3); // [i : i in [0..4] | IsGev(t^i*V5[1,3] mod Ph(5))]; // gives [0,4] B5 := t^4*V5[1,3] mod Ph(5); Y5 := X5 - B5/t^129/Denom([1,1,5]); X - A13*Qorb(13,[3],k+13)/(1-t^13) - B13/t^129/Denom([1,1,13]) - A11*Qorb(11,[10],k+11)/(1-t^11) - B11/t^129/Denom([1,1,11]) - B5/t^129/Denom([1,1,5]); What are the B? B11/t^129/Denom([1,1,11]) eq -1/t^2*Qorb(11,[2,4],-259); true B5*((1-t^3) div (1-t)) mod Ph(5) eq t*(1-t)^2; true /* where A13 is (t^10 - t^6 + t^5 - t^4 + 1)/t^5 and B13 is 2*t^10 + t^8 + t^7 - t^6 + 3*t^5 - t^4 + t^3 + t^2 + 2 A11 is (t^8 + t^5 + t^3 + 1)/t^4 and B11 is t^8 + t^6 - t^5 + 2*t^4 - t^3 + t^2 + 1 A5 is 0 and B5 is -3*t^2 + t - 3 */ ==================================== really old stuff ============================================== A12 := -t + t^2 - t^3 - 3*t^5 - 3*t^6; meaning that Pper = 1/7 * 1/(1-t^7) * A12 Pgrow for k = 4, c = 7, [c/2] = 3 ================================= > (1-t)^3*A12/(1-t^7); (-3*t^8 + 3*t^7 + 3*t^6 - 4*t^5 + 3*t^4 - 4*t^3 + 3*t^2 - t)/(t^6 + t^5 + t^4 + t^3 + t^2 + t + 1) S!$1; -s + 4*s^2 - 7*s^3 + 7*s^4 - 7*s^5 + 7*s^6 - 7*s^8 + 7*s^9 - 7*s^10 + 7*s^11 - 7*s^12 + 7*s^13 - 7*s^15 B := t - 4*t^2 + 7*t^3; adding B kills the first 3 terms up to [c/2] in Pgrow; B not at all symmetric 1/7*(A12/(1-t^7) + B/(1-t)^3) eq (t^4+t^6+t^7+t^9)/&*[1-t^i : i in [1,1,7]]; Then top is symmetric of degree 13, and bottom of deg 9, so the whole is symm of deg k = 4. 1/7*(A12/(1-t^7) + B/(1-t)^3) eq -(t^8+t^10+t^12)/&*[1-t^i : i in [1,1,7]]; This is symm of deg 20 - 9 = 11 Pgrow for k = 11, c = 14, [c/2] = 7 =================================== -s + 4*s^2 - 7*s^3 + 7*s^4 - 7*s^5 + 7*s^6 - 7*s^8 B := t - 4*t^2 + 7*t^3 - 7*t^4 + 7*t^5 - 7*t^6; 1/7*(A12/(1-t^7) + B/(1-t)^3) eq -(t^8+t^10+t^12)/&*[1-t^i : i in [1,1,7]]; The top -(t^8+t^10+t^12) is symm of deg 20, so the whole is sym of deg 20 - 9 = +11 Pgrow for k = -3, c = 0 ======================= B := (t - 4*t^2 + 7*t^3 - 7*t^4 + 7*t^5 - 7*t^6)/t^7; doesn't work; instead, reverse engineer from Ptot B := -6*t+3*t^2; 1/7*(A12/(1-t^7) + B/(1-t)^3) (-t -t^3 - t^5)/&*[1-t^i : i in [1,1,7]]; Pgrow for k = -10, c = -7 ========================= C := (t^4+t^6+t^7+t^9)/t^7/&*[1-t^i : i in [1,1,7]]; 7*C-A12/(1-t^7); (-3*t^5 + 6*t^4 - 7*t^2 + 7*t - 7)/t^3/(t^3 - 3*t^2 + 3*t - 1) B := (-7 + 7*t - 7*t^2 + 6*t^4 - 3*t^5)/t^3; B := 7/t^3 - 7/t^2 + 7/t - 6*t + 3*t^2; 1/7*(A12/(1-t^7) + B/(1-t)^3); eq (1/t^3+1/t+1+t^2)/&*[1-t^i: i in [1,1,7]]; that is, -7*t^-3 + 7*t^-2 -7*t^-1 + 6*t - 3*t^2; Pgrow for k = -17, c = -14 ========================== C := -(t+t^3+t^5)/t^7/&*[1-t^i : i in [1,1,7]]; 7*C-A12/(1-t^7); B:=-7/t^6 + 7/t^5 - 7/t^4 + 7/t^3 - 7/t^2 + 7/t - 6*t + 3*t^2; 1/7*(A12/(1-t^7) + B/(1-t)^3); To make Ptot = Pper + Pgrow(1/r(a1..an),k) in general: There will be some small value of k for which that specification works and is minimal. e.g. for +P(1/7(1,2), k = -3, c = 0, B := -6*t+3*t^2 gives 1/7*(A12/(1-t^7) + B/(1-t)^3) = -t-t^3-t^5. This is symmetric of degree 6, so num/1,1,7 is sym of deg k = -3. We get all the other values of k by rolling around from that, so that Ptot(1/7(1,2), -3+2*7*a) Consider B = \sum b_i*t^i summed from i = 1 to r-1 as poly in QQ[t] and given n in NN and an interval J = [d+1,.. d+r-1] with d in ZZ. Then there exists a unique Laurent polynomial A = \sum a_jt^j summed for j in J with a_j in QQ such that (1-t)^{n+1}*B + (1-t)*A = (1-t^r)*L for a Laurent polynomial L, or equivalently (1-t)^n*B + A = (1+t+.. t^r-1})*L. Proof Consider the quotient ring V = QQ[t]/(1+t+.. t^r-1}). This is an (r-1)-dimensional vector space with basis 1,t,.. t^{r-2}. However, t maps to an invertible element of V, so that V = QQ[t,t^{-1}]/(1+t+.. t^{r-1}), and the r elements t^j for j in J also base V. Therefore the class of (1-t)^n*B modulo the ideal of QQ[t,t^{-1}] generated by (1+t+.. t^{r-1}) can be expressed uniquely as a linear combination of t^j for j in J. QED ============= NumPper(1/r(a_1,.. a_n)) = \sum b_i*t^i is defined as the inverse mod 1+t+.. t^{r-1} of \prod (1-t^{a_j}). Lemma 1. For n = 1 NumPper(1/r(a)) = sum -(bibar/r)*t^i, where as usual b = inverse of a mod r, bibar = smallest residue mod r, and the sum runs from 1 to r-1. 2. For any n, NumPper(1/r(a_1,.. a_n)) = \prod NumPper(1/r(a_j)) mod 1+t+.. t^{r-1}. Proof of 1. Consider (1-t^a)*sum -bibar*t^i = sum -bibar*t^i + sum bibar*t^{a+i} Working mod 1+t+.. t^{r-1} allows me to substitute t^r = 1, or subtract a multiple of 1+t+.. t^{r-1} or t+t^2+.. t^r. Then the right-hand side evaluates to r. For example, r = 7 and a = 2; then b = 4 and we consider -4t - t^2 - 5t^3 - 2t^4 - 6t^5 - 3t^6; multiplying by (1-t^2) gives -4t - t^2 - 5t^3 - 2t^4 - 6t^5 - 3t^6 + 4t^3 + t^4 + 5t^5 + 2t^6 + 6t^7 + 3t^8; according to my rules, I can replace 3t^8 by 3t and 6t^7 by (7 - 1) and the whole sums to 7 - (1 + t + t^2 + .. t^6) = 7. In general, for clarity, break up the second sum as sum over a+i <= r-1 and a+i >= r, and change the dummy index from i to j = a+i. Then the second sum mod 1-t^r gives sum_{j=a+1}^{r-1} \overline{b(j-a)}*t^j + sum_{j=r}^{r+a-1} \overline{b(j-a)}*t^{j-r} = sum_{j=a+1}^{r-1} (bjbar - 1)*t^j + (r-1)*t^r + sum_{j=r+1}^{r+a-1} (bjbar - 1)*t^j. In fact, the coefficient of t^r is bibar where i is r-a, so is r-1. Whereas for i = 1,.. r-1, the coefficient of each t^i is (bibar - 1); this includes the missing term i = a in the sum, when babar = 1 and the coefficient is zero. Now in each term with j>=r, substitute t^r |-> 1 to get (1-t^a)*sum -bibar*t^i = r - (1 + t + .. t^r) = r. ======================== Start with 1/r(a) and define b = a^-1 mod r. Define Scores (b/r) = i in ZZ such that bi/r scores = i in ZZ such that [bi/r] > [b(i-1)/r]. This is obviously invariant under translation i -> r + i. It also the reflection symmetry i <-> -a+1-i and i <-> r-a+1-i. While slightly less obvious, this boils down to bi + r - bi == 0 mod r so that bi scores if and only if b(-i+1) scores. The function NoScores(b/r) has the same symmetries. Now for any k with a+k == 0 mod r, I define Pnum(1/r(a),k) to be either a segment of Scores(b/r) or a segment of NoScores(b/r) (depending on parity) that is a symmetric Laurent polynomial of degree k+r+1 that is zero in degree up to [c/2] where c = k+2. so that Ptot = Pnum/(1-t)*(1-t^r) is symmetric of degree k. For exa 1/7(2), b = 4, Scores (4/7) = .. + t^-3 + t^-1 + 1 + t^2 + t^4 + t^6 + t^7 + t^9 + .. (you only need to write down one segment of this mod r) Then top t^4 + t^6 + t^7 + t^9 is symmetric of degree 13, and bottom of deg 9, so the whole is symm of deg k = 4. Pgrow for k = 11, c = 14, [c/2] = 7 =================================== -s + 4*s^2 - 7*s^3 + 7*s^4 - 7*s^5 + 7*s^6 - 7*s^8 The top -(t^8+t^10+t^12) is symm of deg 20, so the whole is sym of deg 20 - 9 = +11 Pgrow for k = -3, c = 0 ======================= B := (t - 4*t^2 + 7*t^3 - 7*t^4 + 7*t^5 - 7*t^6)/t^7; doesn't work; instead, reverse engineer from Ptot B := -6*t+3*t^2; 1/7*(A12/(1-t^7) + B/(1-t)^3) (-t -t^3 - t^5)/&*[1-t^i : i in [1,1,7]]; Pgrow for k = -10, c = -7 ========================= C := (t^4+t^6+t^7+t^9)/t^7/&*[1-t^i : i in [1,1,7]]; 7*C-A12/(1-t^7); (-3*t^5 + 6*t^4 - 7*t^2 + 7*t - 7)/t^3/(t^3 - 3*t^2 + 3*t - 1) B := (-7 + 7*t - 7*t^2 + 6*t^4 - 3*t^5)/t^3; B := 7/t^3 - 7/t^2 + 7/t - 6*t + 3*t^2; 1/7*(A12/(1-t^7) + B/(1-t)^3); B := t - 4*t^2 + 7*t^3; adding B kills the first 3 terms up to [c/2] in Pgrow; B not at all symmetric Pgrow for k = -3, c = 0 ======================= B := (t - 4*t^2 + 7*t^3 - 7*t^4 + 7*t^5 - 7*t^6)/t^7; doesn't work; instead, reverse engineer from Ptot B := -6*t+3*t^2; (-t -t^3 - t^5)/&*[1-t^i : i in [1,1,7]]; Pgrow for k = -10, c = -7 ========================= C := (t^4+t^6+t^7+t^9)/t^7/&*[1-t^i : i in [1,1,7]]; 7*C-A12/(1-t^7); (-3*t^5 + 6*t^4 - 7*t^2 + 7*t - 7)/t^3/(t^3 - 3*t^2 + 3*t - 1) B := (-7 + 7*t - 7*t^2 + 6*t^4 - 3*t^5)/t^3; B := 7/t^3 - 7/t^2 + 7/t - 6*t + 3*t^2; ==================================== Suppose I have a 1/2(1,1) point on a surface with KS = 2A, c = 5 Pper(1/2(1,1)) := 1/4*1/(1-t^2)*(-t) Pgrow is of the form Numgrow/(1-t)^3 so that Pper + Pgrow has coeff 0 in deg 1, 2 (= [c/2]) and has Gor symmetry. So Numgrow = 1/4*t - 3/4*t^2 ============================= Suppose I have a 1/7(2,3) point on a surface with KS = 2A, c = 5 Pper(1/7(2,3)) := 1/7*1/(1-t^7)*(-4*t - 2*t^3 - 3*t^4 - 3*t^5 - 2*t^6); Pgrow is of the form Numgrow/(1-t)^3 so that Pper + Pgrow has coeff 0 in deg 1, 2 (= [c/2]) and has Gor symmetry. So Numgrow = 4/7*t - 12/7*t^2 (that is, the first 2 coeffs of Pper*(1-t)^3 This happens to be right. Porb := Pper + Numgrow/(1-t)^3; PI:= (1-t+2*t^2+2*t^3-t^4+t^5)/(1-t)^3; (PI+Porb)*&*[1-t^i: i in [1,1,2,2,3,3,7]]; // gives codim 4 c.i. S(4,5,6,6) in PP(1,1,2,2,3,3,7) // t^21-t^17-t^16-2*t^15+t^12+2*t^11+2*t^10+t^9-2*t^6-t^5-t^4+1 // this is a mirage, but it's Hilbert series is Kosher. function Pper(r,L) if &or[GreatestCommonDivisor([r,a]) ne 1 : a in L] // other mugtraps? then error "Error: Not Coprime"; end if; A := (t^r-1) div (t-1); B := t*&*[1-t^i : i in L]; h_throwaway, al_throwaway, be := XGCD(A,B); return t*be; // I have edit out r compared to previous versions end function; Note. I put t in the denom B then multiply out by t. This is just a kludge that enforces the basis t,t^2,.. t^(r-1) for polynomials mod 1+t+..t^(r-1), in place of 1,t,.. t^(r-2). function Pgrow(r,L,c) // takes account of c // put in a mugtrap to ensure the qt sing 1/r(L) has right canonical class ========================================== 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; Given 1/r(a1,..an), in context of KX = kA Define l = [(k+n+1)/2] + degree(h) A := (t^r-1) div (t-1) B := product (1-t^ai)/(1-t) Write hcf(A,t^l*B) =: H = al * A + be * t^l * B return t^l * be / (H * (1-t)^n * (1-t^r)). Since be is in the range [0,r-2] it follows that be+l is in the ratio [Floor((k+n+1)/2+h),Floor((k+n+1)/2+h)+r-2],