The case of triangulations: derivation of the ODE (Prop 4.8, Thm 4.10, Thm 4.11)  

> # Proposition 4.8 (proved in the paper)
# computes recursively theta_3 F_lambda as a differential polynomial in Xi(t).
# here L = [i,2^n2,1^n1] and i<=8, otherwise it will probably crash or at least loop forever
# Computes \theta_3 F_\lambda as a differential operator in \Xi(t,u,z)
FTth:=proc(L)
option remember;
local i,j,Lcut, Lcutj, res,n;
if nops(L)=0 then
 return Xi(t);
else
 i:=max(L)-3;
 Lcut:=subsop(ListTools:-Search(i+3, L)=NULL, L);   

 # if i=0 we chose to remove a part equal to i+3=3 using Eq (36)
 if i=0 then
   return t/3/z*diff(
FTth(Lcut),t) - add(Lcut[ii],ii=1..nops(Lcut))/3/z*FTth(Lcut):
 fi:

 # if i=-2 then all parts are equal to 1 and we use (37)
 if i=-2 then
   res:=t^5*z*diff(
FTth(Lcut),t):
   if nops(Lcut)=0 then res:=res+t^4*z*(u^2+u)/2; fi:
   if nops(Lcut)=1 then res:=res+t^2*u/2; fi:
   return res;
 fi:


 # in other cases we use (35)
 for j from 1 to 2 do  n[j]:=
ListTools:-Occurrences(j,Lcut); od;
 res:=
   -2*t^2*
add(add(add(
            a*(i-a)*binomial(n[1],l1)*binomial(n[2],l2)
            *
FTth([a,seq(2,ii=1..l2),seq(1,ii=1..l1)])
            *
FTth([i-a,seq(2,ii=1..n[2]-l2),seq(1,ii=1..n[1]-l1)])
         
,l1=0..n[1]),l2=0..n[2]),a=1..i-1)
  -2*t^2*
add(a*(i-a)*FTth([a,i-a,op(Lcut)]),a=1..i-1)
  +(i+2)*
FTth([i+2,op(Lcut)]);
  # this loop implements the sum over j=1..2 in the paper
  for j from 1 to 2 do
    if n[j]*(i+j)<>0 then
    # Lcut with one occurrence of j removed
     Lcutj:=subsop(ListTools:-Search(j, Lcut)=NULL, Lcut):
     res:= res-t^2*n[j]*(i+j)*
FTth([i+j,op(Lcutj)]):
    fi;
  od:
  # terms with Kronecker deltas
  if i<>-1 then
   res:=res-(2*u+i+1)*i*
FTth([i,op(Lcut)])*t^2
  fi;
  if n[2]=0 then
   i
f i=-1 and n[1]=1 then res:=res-u/2*t^2;
   elif i=0 and n[1]=0 then res:=res-(u+1)*u/2*t^2;
   fi:
  fi:
 return collect(simplify(res/z/t^2/(i+3)),diff);
fi;
end:
 

> # Example of computation
expand(FTth([4,1]));

 

`+`(`-`(`*`(`/`(5, 2), `*`(`^`(t, 9), `*`(z, `*`(diff(Xi(t), t), `*`(u)))))), `-`(`*`(`/`(5, 2), `*`(`^`(t, 9), `*`(z, `*`(diff(Xi(t), t)))))), `/`(`*`(`/`(3, 4), `*`(`^`(t, 3), `*`(diff(Xi(t), t)))),...
`+`(`-`(`*`(`/`(5, 2), `*`(`^`(t, 9), `*`(z, `*`(diff(Xi(t), t), `*`(u)))))), `-`(`*`(`/`(5, 2), `*`(`^`(t, 9), `*`(z, `*`(diff(Xi(t), t)))))), `/`(`*`(`/`(3, 4), `*`(`^`(t, 3), `*`(diff(Xi(t), t)))),...
(3.5.1)
 

> # ODE of Theorem 4.10 -- automated computation via Prop 4.8
KP1:= - 4*FTth([3,1]) + 4*FTth([2,2])
       + 4/3*(6*FTth([1,1])^2+FTth([1,1,1,1])):

KP2:= - 4*FTth([4,1]) + 4*FTth([3,2])
       + 8/3*(6*FTth([2,1])*FTth([1,1])+FTth([2,1,1,1])):
KP3:= - 6*FTth([5,1]) + 4*FTth([4,2]) + 2*FTth([3,3])
       + 8/3*(6*FTth([3,1])*FTth([1,1])+FTth([3,1,1,1]))
       + 4*(4*FTth([2,1])^2+2*FTth([2,2])*FTth([1,1])+FTth([2,2,1,1]))
      + 4/45*(60*FTth([1,1])^3+30*FTth([1,1,1,1])*FTth([1,1])
               +FTth([1,1,1,1,1,1])):

t^10*z^2*diff(KP1,t)^2 -KP2^2 + KP1*
( KP3-1/2/t^2/z*KP2
 -t^10*z^2*diff(KP1,t,t)
 -5*t^9*z^2*diff(KP1,t)
 -2*t^10*z^2*diff(Xi(t),t,t)*KP1
 -10*t^9*z^2*diff(Xi(t),t)*KP1
 -4*t^8*z^2*(u^2+u)*KP1
 -t^2*u*KP1
):
# because z is redundant with t everywhere
# and in view of forthcoming calculations, we just set z=1 in the ODE
subs(z=1,%):


bigODEtriangulations:=factor(%/t^5):

# this ODE has many terms !
nops(bigODEtriangulations);


 

494 (3.5.2)
 

>
 

> # Check of Thm 4.11
# To check the precise form of Thm 4.9 we need to examine the top-degree part of the ODE
# This is analogue to the proof of Thm 1.2 and 4.6 above

# The exponent of t is 6n and the exponent of u is k=n+2-2g
# Euler's formula gives 12g = 12 + (6n) - 6k.

ODEscaled:=
subs(u=u*beta^6,z=1,t=t/alpha/beta,subs(subs(seq(((D@@i)(Xi))(t)=Xi[i]*alpha^i*beta^(12+i),i=1..20),convert(bigODEtriangulations,D)))):

# We check that there is a term realizing the highest power in BOTH alpha and beta
# This proves that we get a recurrence of the form
# T[n,g] = (expression involving only terms with g'<=g, n'<=n)
degree(ODEscaled,alpha),degree(ODEscaled,beta);
factor(coeff(coeff(ODEscaled,alpha,1),beta,25));

# The more precise form given in thm 4.11 (explicit expression of all terms involving the highest total size)
# is equivalent to knowing the highest alpha power:
collect(coeff(ODEscaled,alpha,1),beta);

 

 

 

1, 25
`+`(`-`(`*`(`/`(1, 135), `*`(`+`(`*`(t, `*`(Xi[2])), `*`(7, `*`(Xi[1]))), `*`(`+`(`*`(`^`(t, 2), `*`(Xi[2])), `*`(7, `*`(t, `*`(Xi[1]))), `*`(42, `*`(`^`(u, 2)))))))))
`+`(`*`(`+`(`-`(`*`(`/`(49, 135), `*`(`^`(Xi[1], 2), `*`(t)))), `-`(`*`(`/`(98, 45), `*`(Xi[1], `*`(`^`(u, 2))))), `-`(`*`(`/`(1, 135), `*`(`^`(Xi[2], 2), `*`(`^`(t, 3))))), `-`(`*`(`/`(14, 135), `*`(... (3.5.3)