FUNCTION: qzeilb - summation of terminating q-hypergeometric series by the q-version of Zeilberger's algorithm. Copyright 1992, 1996, 1998, 2000 by Tom H. Koornwinder (thk@science.uva.nl) VERSION: December 11, 2000, for Maple 6. The 1992 version was a competely rewritten version of a Maple procedure q_ident_prover.maple by D. Zeilberger. The 1996 version was adapted to Maple V, Release 3 and 4. The 1998 version was adapted to Maple V, Release 4 and 5. The present version works in Maple 6, as well as in Maple V, Release 4 and 5. Thanks to Peter Paule, Axel Riese and Wolfram Koepf for helpful remarks. Thanks to Harald Boeing & Wolfram Koepf for the procedure q_exponent from their package qsum CALLING SEQUENCE: qzeilb([a1, a2, ... ], [b1, b2, ... ], q, z, f(n), l, t) PARAMETERS: [a1, a2, ... ] - list of numerator coefficients [b1, b2, ... ] - list of denominator coefficients q - base of q-hypergeometric function z - argument of q-hypergeometric function n - truncate q-hypergeometric series as a sum from 0 to n f(n) - user proposed name of truncated q-hypergeometric series as function of n l - required order of recurrence looked for in the q-Zeilberger algorithm t - optional, positive integer determining talklevel of output, default max(1,printlevel) DESCRIPTION: - The function {qzeilb(a,b,q,z,f(n),l) tries to evaluate (if l=0 or 1) the truncated q-hypergeometric series f(n):=sum(qfac(a1,q,k) * qfac(a2,q,k) ... / (qfac(b1,q,k) * fqac(b2,q,k) *...) / qfac(q,q,k) * ((-1)^k * q^(k*(k-1)/2))^(r-s+1) * z^k, k=0..n) where r is the number of terms in the list of numerator coefficients, s the number of terms in the list of denominator coefficients, and where the q-shifted factorial qfac(c,q,k) is defined by qfac(c, q, infinity) / qfac(c*q^k, q, infinity) in terms of the infinite q-product qfac(c,q,infinity) given by product( (1-c*q^j), j=0..infinity ) If l>1 then the function tries to find a recurrence relation in $n$ of order $l$ for the series. - If l>=1 then one of the numerator coefficients must equal q^(-n). - If l=0 then the q-version of Gosper's algorithm is applied. - If l=0 or 1 and if evaluation of the sum is possible for all n=0,1,2, ... as a quotient of products of q-shifted factorials then the function will return in this form, with the notation qfac(c,q,k) being used for the q-shifted factorial. - In all other cases, where the algorithm succeeds, the function will return as a recurrence expressing f(n) in terms of f(n-1), f(n-2)}, ... , f(n-l), followed by the inequality n>n1 for which the recurrence is valid. Here f(n) denotes the series given by the input, in its dependence on n. - If the algorithm fails then nothing is returned. - If l>0, t>2 and the algorithm succeeds then a short proof of the outcome will be printed. There f(n,k) will denote the k th term of f(n). - This function should be defined by inputting the file qzeilb with the read command. - The code has been tested in Maple 6 EXAMPLES: > read qzeilb; > qzeilb([q^(-n),b],[c],q,q,f(n),1); (-n) qfac(c/b, q, n) (1/b) ------------------------- qfac(c, q, n) > qzeilb([b],[ ],q,q,f(n),0); (n + 1) (-q + b q ) qfac(b, q, n) ------------------------------- qfac(q, q, n) q (b - 1) > qzeilb([q^(-n),b,q*c],[q*b,c],q,q,f(n),1); n (q - 1) b f(n - 1) -------------------, 1 < n n b q - 1 > qzeilb([q^(-n),b],[c],q,z,f(n),2); 2 2 n n n 2 n n 2 - (z q - q q - c q q + (q ) q c - q z b q + (q ) c) f(n - 1) n n / n n (q - q ) (z b q - q c) f(n - 2) / (q q (-q c + q)) + --------------------------------, 1 < n / n n q q (-q c + q) > qzeilb([a^2,q*a,-q*a,b,c,d,a^4*q^(n+1)/b/c/d,q^(-n)], > [a,-a,a^2*q/b,a^2*q/c,a^2*q/d,b*c*d*a^(-2)*q^(-n),a^2*q^(n+1)],q,q,f(n),1); 2 2 2 q a q a q a 2 qfac(----, q, n) qfac(----, q, n) qfac(----, q, n) qfac(q a , q, n) d c b c d b / 2 2 2 / | q a a q a q / |qfac(-----, q, n) qfac(----, q, n) qfac(----, q, n) / \ b c d c d 2 \ a q | qfac(----, q, n)| b / >