### 6.8.6 Certificat de Wilf-Zeilberger pour une identité : wz_certificate

wz_certificate(U,res,n,k) renvoie le certificat de Wilf-Zeilberger pour une identité de la forme sum(U,k)=res Par exemple, si on veut prouver que pour tout n∈ ℕ :
sum((-1)`^`k*comb(n,k)*comb(2k,k)*4`^`(n-k),k=0..n); estégale à :
comb(2n,n),
on forme le quotient :
F(n,k):=(-1)`^`k*comb(n,k)*comb(2k,k)*4`^`(n-k)/comb(2n,n).
Il s’agit donc de montrer que :
sum(F(n,k),k=0..n) == sum(F(n+1,k),k=0..n+1)
On cherche s’il existe une fonction G telle que :
F(n+1,k)-F(n,k)=G(n,k+1)-G(n,k), comme ca sum(F(n+1,k),k=0..n+1)-sum(F(n,k),k=0..n)=
sum(F(n+1,k)-F(n,k),k=1..n)+F(n+1,n+1)+F(n+1,0)-F(n,0)=
sum(G(n,k+1)-G(n,k),k=1..n)+F(n+1,n+1)+F(n+1,0)-F(n,0)
ce qui est une somme qui se simplifie en :
G(n,n+1)-G(n,1)+F(n+1,n+1)+F(n+1,0)-F(n,0).
Le certificat de Wilf-Zeilberger renvoie R(n,k) qui est une fonction rationnelle de n et k prouvant l’existence de G, plus precisement G(n,k)=R(n,k)*F(n,k-1).
On tape :

wz_certificate((-1)`^`k*comb(n,k)*comb(2k,k)*4`^`(n-k),comb(2n,n),n,k);

On obtient R(n,k) :

(-1+2*k)/(1+2*n)

On tape :

F(n,k):=(-1)`^`k*comb(n,k)*comb(2k,k)*4`^`n-k)/comb(2n,n)
R(n,k):=(-1+2*k)/(1+2*n)
G(n,k):=R(n,k)*F(n,k-1)
simplify(G(n,n+1)-G(n,1)+F(n+1,n+1)+F(n+1,0)-F(n,0))

On obtient la valeur de sum(F(n+1,k),k=0..n+1)-sum(F(n,k),k=0..n) :

0

ce qui prouve que sum(F(n,k),k=0..n) ne dépend pas de n et donc
sum((-1)`^`k*comb(n,k)*comb(2k,k)*4`^`(n-k),k=0..n)/comb(2n,n) ne dépend pas de n et donc cette somme vaut F(0,0) c’est à dire 1
Donc on a prouver que :
sum((-1)`^`k*comb(n,k)*comb(2k,k)*4`^`(n-k),k=0..n); estégale à :
comb(2n,n)