(* pu7.m: S. A. Fulling, Nov. 1995 (first version summer 1994) *) Off[General::spell1] Share[]; orderRules = { x1^(n1_)*x2^(n2_) :> x1^n2*x2^n1 /; n2 > n1, x1^(n1_)*x3^(n3_) :> x1^n3*x3^n1 /; n3 > n1, x2^(n2_)*x3^(n3_) :> x2^n3*x3^n2 /; n3 > n2, x1^(n1_)*x4^(n4_) :> x1^n4*x4^n1 /; n4 > n1, x2^(n2_)*x4^(n4_) :> x2^n4*x4^n2 /; n4 > n2, x3^(n3_)*x4^(n4_) :> x3^n4*x4^n3 /; n4 > n3, x1^(n1_)*x5^(n5_) :> x1^n5*x5^n1 /; n5 > n1, x2^(n2_)*x5^(n5_) :> x2^n5*x5^n2 /; n5 > n2, x3^(n3_)*x5^(n5_) :> x3^n5*x5^n3 /; n5 > n3, x4^(n4_)*x5^(n5_) :> x4^n5*x5^n4 /; n5 > n4, x1^(n1_)*x6^(n6_) :> x1^n6*x6^n1 /; n6 > n1, x2^(n2_)*x6^(n6_) :> x2^n6*x6^n2 /; n6 > n2, x3^(n3_)*x6^(n6_) :> x3^n6*x6^n3 /; n6 > n3, x4^(n4_)*x6^(n6_) :> x4^n6*x6^n4 /; n6 > n4, x5^(n5_)*x6^(n6_) :> x5^n6*x6^n5 /; n6 > n5, x1^(n1_)*x7^(n7_) :> x1^n7*x7^n1 /; n7 > n1, x2^(n2_)*x7^(n7_) :> x2^n7*x7^n2 /; n7 > n2, x3^(n3_)*x7^(n7_) :> x3^n7*x7^n3 /; n7 > n3, x4^(n4_)*x7^(n7_) :> x4^n7*x7^n4 /; n7 > n4, x5^(n5_)*x7^(n7_) :> x5^n7*x7^n5 /; n7 > n5, x6^(n6_)*x7^(n7_) :> x6^n7*x7^n6 /; n7 > n6 }; qmax = 4 max = 2(qmax+1) link12 = Sum[t^(2j) c[j] x1^j x2^j, {j, 0, qmax}] + O[t]^max link13 = link12 /. x2->x3; link23 = link13 /. x1->x2; link14 = link12 /. x2->x4; link24 = link14 /. x1->x2; link34 = link14 /. x1->x3; link15 = link12 /. x2->x5; link25 = link15 /. x1->x2; link35 = link15 /. x1->x3; link45 = link15 /. x1->x4; link16 = link12 /. x2->x6; link26 = link16 /. x1->x2; link36 = link16 /. x1->x3; link46 = link16 /. x1->x4; link56 = link16 /. x1->x5; link17 = link12 /. x2->x7; link27 = link17 /. x1->x2; link37 = link17 /. x1->x3; link47 = link17 /. x1->x4; link57 = link17 /. x1->x5; link67 = link17 /. x1->x6; point1 = Sum[t^(2j) c[j] x1^(2j), {j, 0, qmax}] + O[t]^max point2 = point1 /. x1 -> x2; point3 = point1 /. x1 -> x3; point4 = point1 /. x1 -> x4; point5 = point1 /. x1 -> x5; point6 = point1 /. x1 -> x6; point7 = point1 /. x1 -> x7; pointpair12 = Sum[t^(4j) c[j]^2 x1^(2j) x2^(2j), {j, 0, Floor[qmax/2]}] + O[t]^max pointpair34 = pointpair12 //. {x1 -> x3, x2 -> x4}; pointpair45 = pointpair34 /. x3 -> x5; pointpair56 = pointpair12 //. {x1 -> x5, x2 -> x6}; pointpair67 = pointpair56 /. x5 -> x7; angle3 = Sum[t^(4j) c[j]^2 x1^j x2^j x3^(2j), {j, 0, Floor[qmax/2]}] + O[t]^max angle4 = angle3 /. x3 -> x4; angle51 = angle3 /. x3 -> x5; angle53 = angle51 //. {x1 -> x3, x2 -> x4}; angle61 = angle51 /. x5 -> x6; angle63 = angle53 /. x5 -> x6; angle64 = angle61 //. {x1 -> x4, x2 -> x5}; angle71 = angle51 /. x5 -> x7; angle73 = angle53 /. x5 -> x7; angle74 = angle64 /. x6 -> x7; angle75 = angle71 //. {x1 -> x5, x2 -> x6}; pointtriple = Sum[t^(6j) c[j]^3 x1^(2j) x2^(2j) x3^(2j), {j, 0, Floor[qmax/3]}] + O[t]^max linktriple = pointtriple; pointtriple4 = pointtriple //. {x1 -> x4, x2 -> x5, x3 -> x6}; linktriple4 = pointtriple4; pointtriple5 = pointtriple4 /. x4 -> x7; linktriple5 = pointtriple5; biglinktriple = Sum[t^(6j) c[j]^3 x1^j x2^j x3^j x4^j x5^j x6^j, {j, 0, Floor[qmax/3]}] + O[t]^max pyramid4 = Sum[t^(6j) c[j]^3 x1^j x2^j x3^j x4^(3j), {j, 0, Floor[qmax/3]}] + O[t]^max pyramid5 = pyramid4 /. x4 -> x5; pyramid6 = pyramid4 /. x4 -> x6; pyramid7 = pyramid4 /. x4 -> x7; newpyramid7 = pyramid7 //. {x1 -> x4, x2 -> x5, x3 -> x6}; linkpair13 = Sum[t^(4j) c[j]^2 x1^j x2^j x3^j x4^j, {j, 0, Floor[qmax/2]}] + O[t]^max linkpair15 = linkpair13 //. {x3 -> x5, x4 -> x6}; linkpair35 = linkpair15 //. {x1 -> x3, x2 -> x4}; linkpair46 = linkpair35 /. x3 -> x7; pointquad = Sum[t^(8j) c[j]^4 x1^(2j) x2^(2j) x3^(2j) x4^(2j), {j, 0, Floor[qmax/4]}] +O[t]^max linkquad = pointquad; quadpyr5 = Sum[t^(8j) c[j]^4 x1^j x2^j x3^j x4^j x5^(4j), {j, 0, Floor[qmax/4]}] + O[t]^max quadpyr6 = quadpyr5 /. x5 -> x6; quadpyr7 = quadpyr5 /. x5 -> x7; pyrpair = Sum[t^(12j) c[j]^6 x1^(2j) x2^(2j) x3^(2j) x4^(3j) x5^(3j), {j, 0, Floor[qmax/6]}] +O[t]^max pyrpair6 = pyrpair //. {x4 -> x6, x5 -> x7}; pointquint = Sum[t^(10j) c[j]^5 x1^(2j) x2^(2j) x3^(2j) x4^(2j) x5^(2j), {j, 0, Floor[qmax/5]}] +O[t]^max linkquint = pointquint; quintpyr6 = Sum[t^(10j) c[j]^5 x1^j x2^j x3^j x4^j x5^j x6^(5j), {j, 0, Floor[qmax/5]}] + O[t]^max quintpyr7 = quintpyr6 /. x6 -> x7; quadpyrpair = Sum[t^(8j) c[j]^4 x1^j x2^j x3^j x4^j x5^(2j) x6^(2j), {j, 0, Floor[qmax/4]}] +O[t]^max quintpyrpair = Sum[t^(20j) c[j]^10 x1^(2j) x2^(2j) x3^(2j) x4^(2j) x5^(2j) * x6^(5j) x7^(5j), {j, 0, Floor[qmax/10]}] + O[t]^max quadpyrtrip = Sum[t^(24j) c[j]^12 x1^(3j) x2^(3j) x3^(3j) x4^(3j) x5^(4j) * x6^(4j) x7^(4j), {j, 0, Floor[qmax/12]}] + O[t]^max pointsex = Sum[t^(12j) c[j]^6 x1^(2j) x2^(2j) x3^(2j) x4^(2j) x5^(2j) x6^(2j), {j, 0, Floor[qmax/6]}] + O[t]^max linksex = pointsex; sexpyr = Sum[t^(12j) c[j]^6 x1^j x2^j x3^j x4^j x5^j x6^j x7^(6j), {j, 0, Floor[qmax/5]}] + O[t]^max pointsept = Sum[t^(14j) c[j]^7 x1^(2j) x2^(2j) x3^(2j) x4^(2j) x5^(2j) * x6^(2j) x7^(2j), {j, 0, Floor[qmax/7]}] + O[t]^max linksept = pointsept; identity = link12*link13*link23*link14*link24*link34*link15*link25* link35*link45*link16*link26*link36*link46*link56*link17*link27* link37*link47*link57*link67* point1*point2*point3*point4*point5*point6*point7; transpos = link12*link34*link35*link45*link36*link46*link56*link37*link47* link57*link67*angle3*angle4*angle51*angle61*angle71* pointpair12*point3*point4*point5*point6*point7; threecycles = linktriple*pyramid4*pyramid5*pyramid6*pyramid7* link45*link46*link56*link47*link57*link67* pointtriple*point4*point5*point6*point7; transposprs = link12*link34*linkpair13^2*angle51*angle53*angle61*angle63* angle71*angle73*link56*link57*link67* pointpair12*pointpair34*point5*point6*point7; fourcycles = linkquad*linkpair13*quadpyr5*quadpyr6*quadpyr7*link56*link57* link67*pointquad*point5*point6*point7; transpthreecyc = linktriple*link45*pyrpair*pyramid6*pyramid7*angle64* angle74*link67*pointtriple*pointpair45*point6*point7; fivecycles = linkquint^2*quintpyr6*quintpyr7*link67*pointquint*point6*point7; transpostrip = link12*link34*link56*linkpair13^2*linkpair15^2*linkpair35^2* angle71*angle73*angle75*pointpair12*pointpair34*pointpair56*point7; transpfourcyc = linkquad*linkpair13*quadpyrpair^2*link56*angle75*quadpyr7* pointquad*pointpair56*point7; threecycprs = linktriple*linktriple4*biglinktriple^3*pyramid7*newpyramid7* pointtriple*pointtriple4*point7; sixcycles = linksex^2*biglinktriple*sexpyr*pointsex*point7; transpprthreecyc = linktriple*pyrpair*pyrpair6*link45*link67*linkpair46^2* pointtriple*pointpair45*pointpair67; transpfivecyc = linkquint^2*quintpyrpair*link67*pointquint*pointpair67; threecycfourcyc = linkquad*linkpair13*quadpyrtrip*linktriple5* pointquad*pointtriple5; cyclics = linksept^3*pointsept; pu7series = (1/5040)(identity + 21*transpos + 70*threecycles + 105*transposprs + 210*fourcycles + 420*transpthreecyc + 504*fivecycles + 105*transpostrip + 630*transpfourcyc + 280*threecycprs + 840*sixcycles + 210*transpprthreecyc + 504*transpfivecyc + 420*threecycfourcyc + 720*cyclics); pu7temp = (Expand[Normal[pu7series] * x1^2 x2^2 x3^2 x4^2 x5^2 * x6^2 x7^2] //. orderRules)/ (x1^2 x2^2 x3^2 x4^2 x5^2 x6^2 x7^2); pu7 = Collect[pu7temp, Prepend[Table[c[qmax-i], {i,0,qmax}], t]] pu7point = pu7 //. c[n_] -> 1 pu7line = pu7 //. {x1->1, x2->1, x3->1, x4->1, x5->1, x6->1, x7->1} pu7total = pu7line //. c[n_] -> 1 Save["pu7.out", pu7, pu7point, pu7line, pu7total] Quit[]