The case of bipartite maps: derivation of ODE  (Prop 3.4, Thm 4.5, Thm 4.6, Thm 4.7) 

> # Proposition 4.2 (proved in the paper)
# computes recursively theta F_lambda as a differential polynomial in eta(t).
# here L = [i,3^n3,2^n2,1^n1] and i<=6
# Computes \theta G_\lambda as a differential operator in \eta(t,u,z)
Gth:=proc(L)
option remember;
local i,j,Lcut, Lcutj, res,n;
if nops(L)=0 then
 return eta(t);
else
 i:=max(L)-1;
 Lcut:=subsop(ListTools:-Search(i+1, L)=NULL, L);
 for j from 1 to 3 do n[j]:=   ListTools:-Occurrences(j,Lcut); od;
 res:=
   2*
add(add(add(add(
      a*(i-a)*binomial(n[1],l1)*binomial(n[2],l2)*binomial(n[3],l3)
      *
Gth([a,seq(3,i=1..l3),seq(2,i=1..l2),seq(1,i=1..l1)])
      *
Gth([i-a,seq(3,i=1..n[3]-l3),seq(2,i=1..n[2]-l2),seq(1,i=1..n[1]-l1)])
     
,l1=0..n[1]),l2=0..n[2]),l3=0..n[3]),a=1..i-1)
   +2*
add(a*(i-a)*Gth([a,i-a,op(Lcut)]),a=1..i-1)
   +t*diff(
Gth(Lcut),t)
   -(n[1]+2*n[2]+3*n[3])*
Gth(Lcut)
   -z *
add(a*Gth([a,op(Lcut)]),a=1..i);
  if i>0 then
    res:=res+(u+v+i)*i*Gth([i,op(Lcut)]);
   fi;    
   # this loop implements the sum over j=1..3 in the paper
   for j from 1 to 3 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+n[j]*(i+j)*
Gth([i+j,op(Lcutj)]):
     fi;
   od:
   # term with Kronecker deltas
   if i=0 and n[1]=0 and n[2]=0 and n[3]=0  then
    res:=res+u*v/2:
   fi;
 return collect(simplify(res*t/(i+1)),diff);
fi;
end:

 

> #Example of result of computation
Gth([1]);
Gth([3]);
 

 

`+`(`*`(`^`(t, 2), `*`(diff(eta(t), t))), `*`(`/`(1, 2), `*`(u, `*`(v, `*`(t)))))
`+`(`*`(`/`(2, 3), `*`(`^`(t, 5), `*`(diff(diff(eta(t), t), t)))), `*`(`/`(2, 3), `*`(`^`(t, 5), `*`(`^`(diff(eta(t), t), 2)))), `*`(`/`(1, 6), `*`(`^`(t, 2), `*`(`+`(`*`(2, `*`(`^`(t, 2), `*`(`^`(u, ...
`+`(`*`(`/`(2, 3), `*`(`^`(t, 5), `*`(diff(diff(eta(t), t), t)))), `*`(`/`(2, 3), `*`(`^`(t, 5), `*`(`^`(diff(eta(t), t), 2)))), `*`(`/`(1, 6), `*`(`^`(t, 2), `*`(`+`(`*`(2, `*`(`^`(t, 2), `*`(`^`(u, ...
`+`(`*`(`/`(2, 3), `*`(`^`(t, 5), `*`(diff(diff(eta(t), t), t)))), `*`(`/`(2, 3), `*`(`^`(t, 5), `*`(`^`(diff(eta(t), t), 2)))), `*`(`/`(1, 6), `*`(`^`(t, 2), `*`(`+`(`*`(2, `*`(`^`(t, 2), `*`(`^`(u, ...
(3.3.1)
 

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

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

t^4*diff(KP1,t)^2 -KP2^2 + KP1*
( KP3
 -1/2*(t*(u+v+1-z)+1)*KP2
 -t^4*diff(KP1,t,t)
 -4*t^3*diff(KP1,t)
 -2*t^4*diff(eta(t),t,t)*KP1
 -8*t^3*diff(eta(t),t)*KP1
 -3*u*v*t^2*KP1
 +t*(u+v)*KP1
):

bigODEbipartite:=factor(%/t^6*135):

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


 

2126 (3.3.2)
 

> # Check of Thm 4.6
# To check the precise form of Thm 4.6 we need to examine the top-degree part of the ODE
# This is analogue to the proof of Thm 1.2 above
# We scale the variables t,u,v,z by factors alpha, beta so that the exponents of alpha, beta
# mark the values of n and of 2g in the coefficients considered.
# This relies on Euler's formula 2g = 2+e-v-f.

ODEscaled:=
subs(u=u*beta,v=v*beta,z=z*beta,t=t/alpha/beta,subs(subs(seq(((D@@i)(eta))(t)=eta[i]*alpha^i*beta^(2+i),i=1..20),convert(bigODEbipartite,D)))):

# We check that there is a term realizing the highest power in BOTH alpha and beta
degree(ODEscaled,alpha),degree(ODEscaled,beta);
factor(coeff(coeff(ODEscaled,alpha,2),beta,6));

# We now consider the highest alpha power:
collect(coeff(ODEscaled,alpha,2),beta);
# because this term has no linear term, it involves at best quadratic terms with n_1+n_2=n and the highest possible n_i appearing at order n is n-1.
# Such a term can also appear in the linear part at order n-1, so we have to examine the subleading term:
collect(coeff(ODEscaled,alpha,1),beta):
# and more precisely the linear part of this term
coeff(subs(seq(eta[i]=s*eta[i],i=1..20),%),s,1);

# The explicit form of the two terms just computed is equivalent to Thm 4.6.


 

 

 

 

2, 6
`+`(`-`(`*`(`^`(`+`(`*`(t, `*`(eta[2])), `*`(2, `*`(eta[1]))), 2))))
`*`(`+`(`-`(`*`(`^`(t, 2), `*`(`^`(eta[2], 2)))), `-`(`*`(4, `*`(t, `*`(eta[1], `*`(eta[2]))))), `-`(`*`(4, `*`(`^`(eta[1], 2))))), `*`(`^`(beta, 6)))
`*`(`+`(`*`(2, `*`(t, `*`(u, `*`(v, `*`(z, `*`(eta[2])))))), `*`(4, `*`(u, `*`(v, `*`(z, `*`(eta[1])))))), `*`(`^`(beta, 6))) (3.3.3)
 

> # Proof of Cor 4.7 (recurrence for bipartite one-face maps - ODE form)
# We extract the one-face contribution.
subs(eta(t)=z*f(t)+z^2*g(z,t),bigODEbipartite):
factor(series(%,z=0,2)):
coeff(%,z,1)*(-1/u/(u-1)/v/(v-1)*45/14/t/135):
map(factor,collect(%,diff));
 

`+`(`*`(4, `*`(diff(diff(diff(diff(diff(diff(f(t), t), t), t), t), t), t), `*`(`^`(t, 9)))), `*`(80, `*`(`^`(t, 8), `*`(diff(diff(diff(diff(diff(f(t), t), t), t), t), t)))), `-`(`*`(`^`(t, 5), `*`(`+`...
`+`(`*`(4, `*`(diff(diff(diff(diff(diff(diff(f(t), t), t), t), t), t), t), `*`(`^`(t, 9)))), `*`(80, `*`(`^`(t, 8), `*`(diff(diff(diff(diff(diff(f(t), t), t), t), t), t)))), `-`(`*`(`^`(t, 5), `*`(`+`...
`+`(`*`(4, `*`(diff(diff(diff(diff(diff(diff(f(t), t), t), t), t), t), t), `*`(`^`(t, 9)))), `*`(80, `*`(`^`(t, 8), `*`(diff(diff(diff(diff(diff(f(t), t), t), t), t), t)))), `-`(`*`(`^`(t, 5), `*`(`+`...
`+`(`*`(4, `*`(diff(diff(diff(diff(diff(diff(f(t), t), t), t), t), t), t), `*`(`^`(t, 9)))), `*`(80, `*`(`^`(t, 8), `*`(diff(diff(diff(diff(diff(f(t), t), t), t), t), t)))), `-`(`*`(`^`(t, 5), `*`(`+`...
`+`(`*`(4, `*`(diff(diff(diff(diff(diff(diff(f(t), t), t), t), t), t), t), `*`(`^`(t, 9)))), `*`(80, `*`(`^`(t, 8), `*`(diff(diff(diff(diff(diff(f(t), t), t), t), t), t)))), `-`(`*`(`^`(t, 5), `*`(`+`...
`+`(`*`(4, `*`(diff(diff(diff(diff(diff(diff(f(t), t), t), t), t), t), t), `*`(`^`(t, 9)))), `*`(80, `*`(`^`(t, 8), `*`(diff(diff(diff(diff(diff(f(t), t), t), t), t), t)))), `-`(`*`(`^`(t, 5), `*`(`+`...
`+`(`*`(4, `*`(diff(diff(diff(diff(diff(diff(f(t), t), t), t), t), t), t), `*`(`^`(t, 9)))), `*`(80, `*`(`^`(t, 8), `*`(diff(diff(diff(diff(diff(f(t), t), t), t), t), t)))), `-`(`*`(`^`(t, 5), `*`(`+`...
(3.3.4)