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]); |
(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); |
(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. |
(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)); |
(3.3.4) |