Merge branch 'master' of ssh://git.code.sf.net/p/maxima/code
[maxima.git] / share / contrib / Zeilberger / rtest_zeilberger.mac
blob62cf455bb2972a318c660e7c1be6138177c14424
1 kill(all);
2 done$
3 (load(zeilberger),done);
4 done$
7 /* New regression tests are at end */
9 /*=================================================================*/
10 /* converted from testZeilberger.mac (mvdb) */
14 /* ------------------------------ */
15 /* Gosper's algorithm's Test File */
17 /* GOSPER_TEST */
18 g1:(-1)^k*k/(4*k^2-1);
19 k*(-1)^k/(4*k^2-1)$
20 zb_prove(g1,k,n,parGosper(g1,k,n,0));
21 true$
23 g2:1/(4*k^2-1);
24 1/(4*k^2-1)$
25 zb_prove(g2,k,n,parGosper(g2,k,n,0));
26 true$
28 g3:x^k;
29 x^k$
30 zb_prove(g3,k,n,parGosper(g3,k,n,0));
31 true$
33 g4:(-1)^k*a!/(k!*(a-k)!);
34 (-1)^k*a!/(k!*(a-k)!)$
35 zb_prove(g4,k,n,parGosper(g4,k,n,0));
36 true$
38 g5:k*k!;
39 k*k!$
40 zb_prove(g5,k,n,parGosper(g5,k,n,0));
41 true$
43 g6:(k+1)*k!/(k+1)!;
44 (k+1)*k!/(k+1)!$
45 zb_prove(g6,k,n,parGosper(g6,k,n,0));
46 true$
49 /* --------------------------------- */
50 /* Zeiberger's Algorithm's Test File */
52 /* EASY_TEST */
53 f1 : binomial(n,k);
54 binomial(n,k)$
55 zb_prove(f1,k,n,parGosper(f1,k,n,1));
56 true$
58 f2 : binomial(n,k)^2;
59 binomial(n,k)^2$
60 zb_prove(f2,k,n,parGosper(f2,k,n,1));
61 true$
63 f3 : binomial(n,k)^3;
64 binomial(n,k)^3$
65 zb_prove(f3,k,n,parGosper(f3,k,n,2));
66 true$
68 f4 : binomial(n,k)^4;
69  binomial(n,k)^4$
70 zb_prove(f4,k,n,parGosper(f4,k,n,2));
71 true$
73 /* Binomial theorem */
74 h1: binomial(n,k)*x^k;
75  binomial(n,k)*x^k$
76 zb_prove(h1,k,n,parGosper(h1,k,n,1));
77 true$
79 /* Vandermonde identity recurrence */
80 h2: binomial(a, k)* binomial(b, n-k);
81  binomial(a, k)* binomial(b, n-k);
82 zb_prove(h2,k,n,parGosper(h2,k,n,1));
83 true$
85 /*  Fibonacci-Recurrence */
86 h8: (-k+n)! / k! / (-2*k+n)!;
87 (-k+n)! / k! / (-2*k+n)!$
88 zb_prove(h8,k,n,parGosper(h8,k,n,2));
89 true$
91 /* Trinomial coefficients */
92 h9: n! / k! / (k+m)! / (-2*k-m+n)!;
93 n! / k! / (k+m)! / (-2*k-m+n)!$
94 zb_prove(h9,k,n,parGosper(h9,k,n,2));
95 true$
97 /*  First special case of Strehl identity (MEMO, Feb 25, 1992) */
98 h10: binomial(n, k)^2 * binomial( 2*k, k);
99 binomial(n, k)^2 * binomial( 2*k, k)$
100 zb_prove(h10,k,n,parGosper(h10,k,n,2));
101 true$
103 /* Fibonacci recurrence */
104 h13: (n+k)! * n! / k!^3 / (n-k)!^2;
105 (n+k)! * n! / k!^3 / (n-k)!^2$
106 zb_prove(h13,k,n,parGosper(h13,k,n,2));
107 true$
109 /* Debugging artificial examples */
110 d1 : (2*n+k-1)!/(4*n+2*k)!;
111 (2*n+k-1)!/(4*n+2*k)!$
112 zb_prove(d1,k,n,parGosper(d1,k,n,1));
113 true$
115 d2 : (3*n+k-1)!/(6*n+2*k)!;
116 (3*n+k-1)!/(6*n+2*k)!$
117 zb_prove(d2,k,n,parGosper(d2,k,n,1));
118 true$
120 /* HARD_TEST */
121 /* Dixon's identity */
122 h3: binomial(n+b, n+k)* binomial(n+c, c+k)*binomial(b+c, b+k)*(-1)^k;
123  binomial(n+b, n+k)* binomial(n+c, c+k)*binomial(b+c, b+k)*(-1)^k$
124 zb_prove(h3,k,n,parGosper(h3,k,n,1));
125 true$
127 /* Karlsson-Gosper identity 1 */
128 h4: binomial(n,k)*(n-1/4)!/(n-k-1/4)!/(2*n+k + 1/4)!*9^(-k);
129 binomial(n,k)*(n-1/4)!/(n-k-1/4)!/(2*n+k + 1/4)!*9^(-k)$
130 zb_prove(h4,k,n,parGosper(h4,k,n,1));
131 true$
133 /* Karlsson-Gosper identity 2 */
134 h5: binomial(n,k) * (n-1/4)! / (n-k-1/4)! / (2*n+k+5/4)! * 9^(-k);
135 binomial(n,k) * (n-1/4)! / (n-k-1/4)! / (2*n+k+5/4)! * 9^(-k)$
136 zb_prove(h5,k,n,parGosper(h5,k,n,1));
137 true$
139 /* Laguerre-Orthogonality */
140 h7: (k+k2)! * (n1)! * (n2)! / (k)! / (n1-k)! / (k2)! / (n2-k2)! /
141                (k)! / (k2)! * (-1)^k;
142 (k+k2)! * (n1)! * (n2)! / (k)! / (n1-k)! / (k2)! / (n2-k2)! /
143                (k)! / (k2)! * (-1)^k$
144 zb_prove(h7,k,n1,parGosper(h7,k,n1,1));
145 true$
147 /* Second special case of Strehl identity (MEMO, Feb 25, 1992) */
148 h11: binomial(n, k)^2 * binomial( 2*k, k+a);
149 binomial(n, k)^2 * binomial( 2*k, k+a)$
150 zb_prove(h11,k,n,parGosper(h11,k,n,3));
151 true$
153 /* EXTREME_TEST */
154 /* See rtest_zeilberger_extreme.mac */
157 /* End of converted file */
158 /* ================================================== */
161 /* test for unary minus, currently failing, fixed by Andrej */
162 ratsimp(AntiDifference(-1/(k*(k+1)),k));
163 1/k$
165 /* suggested by Andrej */
166 AntiDifference(2^(k^2), k);
167 NON_HYPERGEOMETRIC$
169 AntiDifference(k^k, k);
170 NON_HYPERGEOMETRIC$
172 Zeilberger(binomial(n,i), i, n);
173 [[i/(n-i+1), [2, -1]]]$
174 zb_prove(binomial(n,i),i,n,%);
175 true$