fricas
(1) -> <spad>
fricas
)abbrev package ZEIL Zeilberger
++ Author: $author
++ Date Created: $defaultdate
++ License: BSD
++ References:
++ Description: proto
++
Zeilberger() : Exports == Implementation where
R ==> Integer
X ==> Expression R
XX ==> (X,X)->X
OF ==> OutputForm
SUP ==> SparseUnivariatePolynomial
FPX ==> FRAC SUPX
NNI ==> NonNegativeInteger
SYM ==> Symbol
SUPX ==> SUP(X)
NIXX ==> (NNI,X,X) -> X
EFSP ==> ElementaryFunctionStructurePackage(R,X)
TSPR ==> TransSolvePackage R
LEQX ==> List Equation X
EQSR ==> Record(eqs:LEQX,unk:List X,cert:X)
nz ==> normalize$EFSP
Exports == with
term : (XX,NNI,X) -> X
termRatio : (XX,NNI,X) -> Record(p0:X,r:X,s:X)
gosper : (SUPX,SUPX) -> Record(pa:SUPX,pb:SUPX,pc:SUPX)
upperBound : (Record(pa:SUPX,pb:SUPX,pc:SUPX),SUPX) -> Union(Integer,"failed")
equationsSetup : (XX,NNI,X) -> EQSR
solveEquations: (EQSR,NNI) -> Union(LEQX,"failed")
recEq: (XX,NNI,X) -> Union(Equation X,"failed")
Implementation == add
term(F:XX,J:NNI,k:X):X ==
n:X:='n::X
t:List(X):=[subscript('a,[j::OF])::X*F(n+j::X,k) for j in 0..J]
reduce(_+,t)
termRatio(F:XX,J:NNI,k:X):Record(p0:X,r:X,s:X) ==
n:X:='n::X
--q:X:=nz( term(F,J,k+1::X)/term(F,J,k) )
r12:=nz(F(n,k+1::X)/F(n,k))
s12:=nz(F(n,k)/F(n-1::X,k))
r1:=numerator r12
r2:=denominator r12
s1:=numerator s12
s2:=denominator s12
P1:=(j:NNI):X+->reduce("*",[eval(s1,n,n+j::X-i::X) for i in 0..j-1],1)
P2:=(j:NNI):X+->reduce("*",[eval(s2,n,n+l::X) for l in j+1..J],1)
p:List(X):=[subscript('a,[j::OF])::X * P1(j) * P2(j) for j in 0..J]
p0:=nz(reduce(_+,p))
u1:List(X):=[eval(s2,n,n+l::X) for l in 1..J]
u2:List(X):=[eval(s2,[n=n+l::X,k=k+1::X]) for l in 1..J]
r:= r1 * reduce("*",u1,1)
s:= r2 * reduce("*",u2,1)
qrs:=nz(r/s)
[p0,numerator qrs,denominator qrs]
gosper(r:SUPX,s:SUPX):Record(pa:SUPX,pb:SUPX,pc:SUPX) ==
lcr:=leadingCoefficient r
lcs:=leadingCoefficient s
Z:=lcr/lcs
r:=r/lcr
s:=s/lcs
h:X:='h::X
single:=create()$SingletonAsOrderedSet
Rh:X:=resultant(r,eval(s,single,single::SUPX+h::SUPX))
Rh0:List Equation X:=solve(Rh=0,'h)$TransSolvePackage(R)
nums:List X:=[rhs z for z in Rh0|integer?(rhs z)$IntegerRetractions(X)]
ints:List Integer:=[retract(u) for u in nums]
S:=[u for u in ints | u >=0 ]
output("** NNI zeroes of the resultant: ",S::OutputForm)$OutputPackage
N:=#S
p:=[subscript('p,[j::OF])::X::SUPX for j in 0..N]
q:=[subscript('q,[j::OF])::X::SUPX for j in 0..N]
w:=[subscript('w,[j::OF])::X::SUPX for j in 1..N]
p.1:=r
q.1:=s
for j in 1..N repeat
w.j:=gcd(p.j,eval(q.j,single,single::SUPX+(S.j)::SUPX))
p.(j+1) := numer(p.j / w.j)
q.(j+1) := numer(q.j / eval(w.j,single,single::SUPX-(S.j)::SUPX))
a:=Z*p.(N+1)
b:=q.(N+1)
P1:=(i:NNI):SUPX+->reduce("*",[eval(w.i,single,single::SUPX-j::SUPX) for j in 1..S.i],1)
c:=reduce("*",[P1(i) for i in 1..N],1)
[a,b,c]
upperBound(g:Record(pa:SUPX,pb:SUPX,pc:SUPX),p0:SUPX):Union(Integer,"failed") ==
single:=create()$SingletonAsOrderedSet
a:SUPX:=g.pa
b:SUPX:=g.pb
c:SUPX:=g.pc * p0
lc ==> leadingCoefficient
BA:X:=lc(eval(b,single,single::SUPX-1::SUPX)-a)
if degree(a) ~= degree(b) or lc a ~= lc b then
D:List Integer:=[degree(c)-max(degree(a),degree(b))]
else
x:X:=BA/lc(a)
if integer?(x)$IntegerRetractions(X) then
D:=[degree(c)-degree(a)+1,retract x]
else
D:=[degree(c)-degree(a)+1]
output("** D:=",D::OutputForm)$OutputPackage
output("** BA:=",BA::OutputForm)$OutputPackage
output("** lca:=",lc(a)::OutputForm)$OutputPackage
D:=[u for u in D | u>=0 ]
empty? D => "failed"
max(D)
equationsSetup(F:XX,J:NNI,k:X):EQSR ==
single:=create()$SingletonAsOrderedSet
tr:=termRatio(F,J::NNI,k::X)
ur:=univariate(tr.r,kernel 'k)
us:=univariate(tr.s,kernel 'k)
up0:=numer univariate(tr.p0,kernel 'k) --?
pr:=retract(ur)@SUPX
ps:=retract(us)@SUPX
p0:=up0 --retract(up0)@SUPX
g:=gosper(pr,ps)
d:=upperBound(g,up0)
d case "failed" => [[],[],0]
d:=d::Integer
b:=[subscript('b,[j::OF])::X for j in 0..d]
x0:=reduce(_+,[b.l*k^(l-1) for l in 1..d+1],0)
x1:=reduce(_+,[b.l*(k+1)^(l-1) for l in 1..d+1],0)
ux0:=numer univariate(x0,kernel 'k)
ux1:=numer univariate(x1,kernel 'k)
p:=g.pc * p0
p2:=g.pa
p3:=eval(g.pb,single,single::SUPX - 1::SUPX)
eqx:SUPX:=p2*ux1-p3*ux0-p
ceqx:List X:=coefficients(eqx)
output("** Equations:=",ceqx::OutputForm)$OutputPackage
a:=[subscript('a,[j::OF])::X for j in 0..J]
gp:=p3/p*ux0
gpn:X:=retract eval(numer gp,single,k::SUPX)
gpd:X:=retract eval(denom gp,single,k::SUPX)
G:X:=gpn/gpd*term(F,J,k)
[[u=0$X for u in ceqx],concat(a,b),G]
solveEquations(e:EQSR,J:NNI):Union(LEQX,"failed") ==
empty?(e.eqs) or empty?(e.unk) => "failed"
x:=[u for u in e.unk | u ~= subscript('b,[0::OF])::X ]
s:=solve(e.eqs,x)$TSPR
empty? s => "failed"
first s
recEq(F:XX,J:NNI,k:X):Union(Equation X,"failed") ==
es:=equationsSetup(F,J,k)
sol:=solveEquations(es,J)
if sol case "failed" then return "failed"
else sol:=sol::LEQX
S:=operator 'S
n:='n::X
rec:List X:=[rhs(sol.(i+1)) * S(n+i::X) for i in 0..J]
rr:=reduce(_+,rec,0)
b0:=subscript('b,[0::OF])::X
rr:=numerator nz(rr/b0)
rr=0$X</spad>
fricas
Compiling FriCAS source code from file
/var/lib/zope2.10/instance/axiom-wiki/var/LatexWiki/7413097682120512272-25px001.spad
using old system compiler.
ZEIL abbreviates package Zeilberger
------------------------------------------------------------------------
initializing NRLIB ZEIL for Zeilberger
compiling into NRLIB ZEIL
compiling exported term : ((Expression Integer,Expression Integer) -> Expression Integer,NonNegativeInteger,Expression Integer) -> Expression Integer
Time: 0.04 SEC.
compiling exported termRatio : ((Expression Integer,Expression Integer) -> Expression Integer,NonNegativeInteger,Expression Integer) -> Record(p0: Expression Integer,r: Expression Integer,s: Expression Integer)
Time: 0.07 SEC.
compiling exported gosper : (SparseUnivariatePolynomial Expression Integer,SparseUnivariatePolynomial Expression Integer) -> Record(pa: SparseUnivariatePolynomial Expression Integer,pb: SparseUnivariatePolynomial Expression Integer,pc: SparseUnivariatePolynomial Expression Integer)
Time: 0.16 SEC.
compiling exported upperBound : (Record(pa: SparseUnivariatePolynomial Expression Integer,pb: SparseUnivariatePolynomial Expression Integer,pc: SparseUnivariatePolynomial Expression Integer),SparseUnivariatePolynomial Expression Integer) -> Union(Integer,failed)
processing macro definition lc ==> leadingCoefficient
Time: 0.09 SEC.
compiling exported equationsSetup : ((Expression Integer,Expression Integer) -> Expression Integer,NonNegativeInteger,Expression Integer) -> Record(eqs: List Equation Expression Integer,unk: List Expression Integer,cert: Expression Integer)
Time: 0.24 SEC.
compiling exported solveEquations : (Record(eqs: List Equation Expression Integer,unk: List Expression Integer,cert: Expression Integer),NonNegativeInteger) -> Union(List Equation Expression Integer,failed)
Time: 0 SEC.
compiling exported recEq : ((Expression Integer,Expression Integer) -> Expression Integer,NonNegativeInteger,Expression Integer) -> Union(Equation Expression Integer,failed)
Time: 0.02 SEC.
(time taken in buildFunctor: 0)
Time: 0 SEC.
Warnings:
[1] termRatio: not known that (AlgebraicallyClosedField) is of mode (CATEGORY domain (IF (has (Integer) (IntegralDomain)) (PROGN (ATTRIBUTE (AlgebraicallyClosedFunctionSpace (Integer))) (ATTRIBUTE (TranscendentalFunctionCategory)) (ATTRIBUTE (CombinatorialOpsCategory)) (ATTRIBUTE (LiouvillianFunctionCategory)) (ATTRIBUTE (SpecialFunctionCategory)) (SIGNATURE reduce (% %)) (SIGNATURE number? ((Boolean) %)) (IF (has (Integer) (PolynomialFactorizationExplicit)) (ATTRIBUTE (PolynomialFactorizationExplicit)) noBranch) (SIGNATURE setSimplifyDenomsFlag ((Boolean) (Boolean))) (SIGNATURE getSimplifyDenomsFlag ((Boolean)))) noBranch))
[2] termRatio: not known that (TranscendentalFunctionCategory) is of mode (CATEGORY domain (IF (has (Integer) (IntegralDomain)) (PROGN (ATTRIBUTE (AlgebraicallyClosedFunctionSpace (Integer))) (ATTRIBUTE (TranscendentalFunctionCategory)) (ATTRIBUTE (CombinatorialOpsCategory)) (ATTRIBUTE (LiouvillianFunctionCategory)) (ATTRIBUTE (SpecialFunctionCategory)) (SIGNATURE reduce (% %)) (SIGNATURE number? ((Boolean) %)) (IF (has (Integer) (PolynomialFactorizationExplicit)) (ATTRIBUTE (PolynomialFactorizationExplicit)) noBranch) (SIGNATURE setSimplifyDenomsFlag ((Boolean) (Boolean))) (SIGNATURE getSimplifyDenomsFlag ((Boolean)))) noBranch))
[3] termRatio: k is BOTH a variable and a literal
[4] equationsSetup: k is BOTH a variable and a literal
Cumulative Statistics for Constructor Zeilberger
Time: 0.61 seconds
finalizing NRLIB ZEIL
Processing Zeilberger for Browser database:
--------constructor---------
--->-->Zeilberger((term ((Expression (Integer)) (Mapping (Expression (Integer)) (Expression (Integer)) (Expression (Integer))) (NonNegativeInteger) (Expression (Integer))))): Not documented!!!!
--->-->Zeilberger((termRatio ((Record (: p0 (Expression (Integer))) (: r (Expression (Integer))) (: s (Expression (Integer)))) (Mapping (Expression (Integer)) (Expression (Integer)) (Expression (Integer))) (NonNegativeInteger) (Expression (Integer))))): Not documented!!!!
--->-->Zeilberger((gosper ((Record (: pa (SparseUnivariatePolynomial (Expression (Integer)))) (: pb (SparseUnivariatePolynomial (Expression (Integer)))) (: pc (SparseUnivariatePolynomial (Expression (Integer))))) (SparseUnivariatePolynomial (Expression (Integer))) (SparseUnivariatePolynomial (Expression (Integer)))))): Not documented!!!!
--->-->Zeilberger((upperBound ((Union (Integer) failed) (Record (: pa (SparseUnivariatePolynomial (Expression (Integer)))) (: pb (SparseUnivariatePolynomial (Expression (Integer)))) (: pc (SparseUnivariatePolynomial (Expression (Integer))))) (SparseUnivariatePolynomial (Expression (Integer)))))): Not documented!!!!
--->-->Zeilberger((equationsSetup ((Record (: eqs (List (Equation (Expression (Integer))))) (: unk (List (Expression (Integer)))) (: cert (Expression (Integer)))) (Mapping (Expression (Integer)) (Expression (Integer)) (Expression (Integer))) (NonNegativeInteger) (Expression (Integer))))): Not documented!!!!
--->-->Zeilberger((solveEquations ((Union (List (Equation (Expression (Integer)))) failed) (Record (: eqs (List (Equation (Expression (Integer))))) (: unk (List (Expression (Integer)))) (: cert (Expression (Integer)))) (NonNegativeInteger)))): Not documented!!!!
--->-->Zeilberger((recEq ((Union (Equation (Expression (Integer))) failed) (Mapping (Expression (Integer)) (Expression (Integer)) (Expression (Integer))) (NonNegativeInteger) (Expression (Integer))))): Not documented!!!!
; compiling file "/var/aw/var/LatexWiki/ZEIL.NRLIB/ZEIL.lsp" (written 13 JUN 2026 05:50:04 AM):
; wrote /var/aw/var/LatexWiki/ZEIL.NRLIB/ZEIL.fasl
; compilation finished in 0:00:00.420
------------------------------------------------------------------------
Zeilberger is now explicitly exposed in frame initial
Zeilberger will be automatically loaded when needed from
/var/aw/var/LatexWiki/ZEIL.NRLIB/ZEIL
fricas
-- )co zeilberger
X ==> EXPR INT
Type: Void
fricas
S := operator 'S
fricas
----
J:=1
fricas
----
F11:(X,X)->X:= (n,k) +-> binomial(n,k)
Type: ((Expression(Integer), Expression(Integer)) -> Expression(Integer))
fricas
S(n) = sum(F11(n,k),k)
Type: Equation(Expression(Integer))
fricas
-- expected: - S(n + 1) + 2 S(n) = 0
S11:=recEq(F11,1,k)
** NNI zeroes of the resultant: []
** D:= [0]
** BA:= 2
** lca:= - 1
** Equations:= [- 2 b + a , (b - a - a )n + b - a - a ]
0 0 0 1 0 0 1 0
Type: Union(Equation(Expression(Integer)),...)
fricas
F12:(X,X)->X:= (n,k) +-> binomial(n,k)^2
Type: ((Expression(Integer), Expression(Integer)) -> Expression(Integer))
fricas
S(n) = sum(F12(n,k),k)
Type: Equation(Expression(Integer))
fricas
-- expected: (- n - 1)S(n + 1) + (4 n + 2)S(n) = 0
S12:=recEq(F12,1,k)
** NNI zeroes of the resultant: []
** D:= [1]
** BA:= 2 n + 2
** lca:= 1
** Equations:=
2
[- 2 b n - b - a , b n + (- 2 b + 2 a )n - b - 2 b + 2 a ,
1 1 0 1 0 0 1 0 0
2
(b + b - a - a )n + (2 b + 2 b - 2 a - 2 a )n + b + b - a - a ]
1 0 1 0 1 0 1 0 1 0 1 0
Type: Union(Equation(Expression(Integer)),...)
fricas
F13:(X,X)->X:= (n,k) +-> (-1)^k*binomial(2*n,k)^3 -- Dixon
Type: ((Expression(Integer), Expression(Integer)) -> Expression(Integer))
fricas
S(n) = sum(F13(n,k),k)
Type: Equation(Expression(Integer))
fricas
-- expected: (- n^2 - 2 n - 1)S(n + 1) + (- 27 n^2 - 27 n - 6)S(n) = 0
S13:=recEq(F13,1,k)
** NNI zeroes of the resultant: []
** D:= [4]
** BA:= 6 n + 6
** lca:= 1
** Equations:=
2
[- 6 b n - 2 b - a , 12 b n + (- 6 b + 12 a )n - 6 b - 3 b + 9 a ,
4 4 0 4 3 0 4 3 0
3 2
- 8 b n + (24 b + 12 b - 60 a )n + (36 b + 6 b - 6 b - 90 a )n
4 4 3 0 4 3 2 0
+
8 b - 3 b - 4 b - 33 a
4 3 2 0
,
3 2
(- 32 b - 8 b + 160 a )n + (- 24 b + 12 b + 12 b + 360 a )n
4 3 0 4 3 2 0
+
(24 b + 30 b + 12 b - 6 b + 264 a )n + 17 b + 11 b + b - 5 b
4 3 2 1 0 4 3 2 1
+
63 a
0
,
4 3
- 240 a n + (- 48 b - 24 b - 8 b - 720 a )n
0 4 3 2 0
+
2
(- 96 b - 36 b + 12 b - 792 a )n
4 3 1 0
+
(- 54 b - 6 b + 18 b + 18 b - 6 b - 378 a )n - 6 b + 6 b + 10 b
4 3 2 1 0 0 4 3 2
+
6 b - 6 b - 66 a
1 0 0
,
5 4 3
192 a n + 720 a n + (- 32 b - 24 b - 16 b - 8 b + 1056 a )n
0 0 4 3 2 1 0
+
2
(- 84 b - 60 b - 36 b - 12 b + 12 b + 756 a )n
4 3 2 1 0 0
+
(- 72 b - 48 b - 24 b + 24 b + 264 a )n - 20 b - 12 b - 4 b
4 3 2 0 0 4 3 2
+
4 b + 12 b + 36 a
1 0 0
,
6 5 4
(- 64 a - 64 a )n + (- 288 a - 288 a )n + (- 528 a - 528 a )n
1 0 1 0 1 0
+
3
(- 8 b - 8 b - 8 b - 8 b - 8 b - 504 a - 504 a )n
4 3 2 1 0 1 0
+
2
(- 24 b - 24 b - 24 b - 24 b - 24 b - 264 a - 264 a )n
4 3 2 1 0 1 0
+
(- 24 b - 24 b - 24 b - 24 b - 24 b - 72 a - 72 a )n - 8 b
4 3 2 1 0 1 0 4
+
- 8 b - 8 b - 8 b - 8 b - 8 a - 8 a
3 2 1 0 1 0
]
Type: Union(Equation(Expression(Integer)),...)
fricas
F14:(X,X)->X:= (n,k) +-> 4^(-k)*binomial(n,2*k)*binomial(2*k,k)
Type: ((Expression(Integer), Expression(Integer)) -> Expression(Integer))
fricas
S(n) = sum(F14(n,k),k)
Type: Equation(Expression(Integer))
fricas
-- expected: (- n - 1)S(n + 1) + (2 n + 1)S(n) = 0
S14:=recEq(F14,1,k)
** NNI zeroes of the resultant: []
** D:= [0]
2 n + 1
** BA:= -------
2
** lca:= 1
** Equations:=
2
- 2 b n - b + 4 a b n + (b - 4 a - 4 a )n - 4 a - 4 a
0 0 0 0 0 1 0 1 0
[-------------------, ----------------------------------------]
2 4
Type: Union(Equation(Expression(Integer)),...)
fricas
--F15:(X,X)->X:= (n,k) +-> binomial(n+k,2*k)*binomial(2*k,k)*(-1)^k/(k+1) -- only 2 eq 4 unk
F16:(X,X)->X:= (n,k) +-> (-1)^k*binomial(n,k)*binomial(2*n-2*k,n+a)
Type: ((Expression(Integer), Expression(Integer)) -> Expression(Integer))
fricas
S(n) = sum(F16(n,k),k)
Type: Equation(Expression(Integer))
fricas
-- expected: (n - a + 1)S(n + 1) + (- 2 n - 2)S(n) = 0 --***verify
S16:=recEq(F16,1,k)
** NNI zeroes of the resultant: []
** D:= [0]
** BA:= - a
** lca:= 1
** Equations:=
[(4 a + 2 a )n + (b + 2 a )a + 4 a + 2 a ,
1 0 0 0 1 0
2
(b - 16 a - 4 a )n + (- 2 b a + b - 24 a - 8 a )n
0 1 0 0 0 1 0
+
2
(b + 4 a )a - b a - 8 a - 4 a
0 0 0 1 0
/
4
]
Type: Union(Equation(Expression(Integer)),...)
fricas
F17:(X,X)->X:= (n,k) +-> binomial(x,k)*binomial(y,n-k)
Type: ((Expression(Integer), Expression(Integer)) -> Expression(Integer))
fricas
S(n) = sum(F17(n,k),k)
Type: Equation(Expression(Integer))
fricas
-- expected: (- n - 1)S(n + 1) + (y + x - n)S(n) = 0 --***verify
S17:=recEq(F17,1,k)
** NNI zeroes of the resultant: []
** D:= [0]
** BA:= y + x + 1
** lca:= 1
** Equations:=
[- b y - b x - b - a + a , - a y + (b n + b )x + (a - a )n - a ]
0 0 0 1 0 1 0 0 1 0 0
Type: Union(Equation(Expression(Integer)),...)
fricas
F18:(X,X)->X:= (n,k) +-> k*binomial(2*n+1,2*k+1)
Type: ((Expression(Integer), Expression(Integer)) -> Expression(Integer))
fricas
S(n) = sum(F18(n,k),k)
Type: Equation(Expression(Integer))
fricas
-- expected: (- 2 n^2 + n)S(n + 1) + (8 n^2 + 4 n)S(n) = 0 --***verify
S18:=recEq(F18,1,k)
** NNI zeroes of the resultant: []
** D:= [1]
** BA:= 2 n + 1
** lca:= 1
** Equations:=
2
2 b n + (- b - 4 b + 8 a )n - b - 2 b + 6 a
1 1 0 0 1 0 0
[- 2 b n - 2 a , -------------------------------------------------,
1 0 2
2
(2 b + 2 b - 4 a - 4 a )n + (3 b + 3 b - 10 a - 6 a )n + b
1 0 1 0 1 0 1 0 1
+
2 b - 6 a - 2 a
0 1 0
/
2
]
Type: Union(Equation(Expression(Integer)),...)
fricas
F19:(X,X)->X:= (n,k) +-> (-1)^k*binomial(n-k,k)*2^(n-2*k)
Type: ((Expression(Integer), Expression(Integer)) -> Expression(Integer))
fricas
S(n) = sum(F19(n,k),k)
Type: Equation(Expression(Integer))
fricas
-- expected: (n + 1)S(n + 1) + (- n - 2)S(n) = 0 --***verify
S19:=recEq(F19,1,k)
** NNI zeroes of the resultant: []
** D:= [0]
1
** BA:= - -
2
** lca:= 1
2
b + 4 a + 4 a b n + (b - 8 a - 4 a )n - 8 a - 4 a
0 1 0 0 0 1 0 1 0
** Equations:= [----------------, ----------------------------------------]
2 4
Type: Union(Equation(Expression(Integer)),...)
fricas
J:=2
fricas
F21:(X,X)->X:= (n,k) +-> binomial(2*k,k)*binomial(n,k)*(-1/2)^k -- Reed-Dawson
Type: ((Expression(Integer), Expression(Integer)) -> Expression(Integer))
fricas
S(n) = sum(F21(n,k),k)
Type: Equation(Expression(Integer))
fricas
-- expected: (- n - 2)S(n + 2) + (n + 1)S(n) = 0
S21:=recEq(F21,2,k)
** NNI zeroes of the resultant: []
** D:= [0]
** BA:= - 1
** lca:= 2
** Equations:=
[b - a , (- 2 b + a + 2 a )n - 3 b + a + 3 a ,
0 0 0 1 0 0 1 0
2
(- a - a - a )n + (- b - 3 a - 3 a - 3 a )n - 2 b - 2 a - 2 a
2 1 0 0 2 1 0 0 2 1
+
- 2 a
0
]
Type: Union(Equation(Expression(Integer)),...)
fricas
F22:(X,X)->X:= (n,k) +-> 2^(-n)*(-1)^k*binomial(2*n-2*k,n-k)*binomial(n-k,k)*x^(n-2*k)
Type: ((Expression(Integer), Expression(Integer)) -> Expression(Integer))
fricas
S(n) = sum(F22(n,k),k)
Type: Equation(Expression(Integer))
fricas
-- Legendre polynomials
-- expected: (n + 2)S(n + 2) + (- 2 n - 3)x S(n + 1) + (n + 1)S(n) = 0
S22:=recEq(F22,2,k)
** NNI zeroes of the resultant: []
** D:= [0]
2
x - 1
** BA:= ------
2
x
1
** lca:= --
2
x
** Equations:=
4 3 2
- 4 a x - 4 a x + (- b - 4 a )x + b
2 1 0 0 0
[----------------------------------------,
2
x
4 3
(16 a n + 16 a )x + (12 a n + 12 a )x
2 2 1 1
+
2
((2 b + 8 a )n + b + 12 a )x - 2 b n - 3 b
0 0 0 0 0 0
/
2
2 x
,
2 4 2 3
(- 16 a n - 32 a n - 12 a )x + (- 8 a n - 20 a n - 8 a )x
2 2 2 1 1 1
+
2 2 2
(- 4 a n - 12 a n - 8 a )x + b n + 3 b n + 2 b
0 0 0 0 0 0
/
2
4 x
]
Type: Union(Equation(Expression(Integer)),...)
fricas
F23:(X,X)->X:= (n,k) +-> 2^(-k)*factorial(n)/factorial(k)/factorial(n-2*k)
Type: ((Expression(Integer), Expression(Integer)) -> Expression(Integer))
fricas
S(n) = sum(F23(n,k),k)
Type: Equation(Expression(Integer))
fricas
-- expected: - S(n + 2) + S(n + 1) + (n + 1)S(n) = 0 --***verify
S23:=recEq(F23,2,k)
** NNI zeroes of the resultant: []
** D:= [0]
** BA:= - 2
** lca:= 2
** Equations:=
[2 b - 4 a , (- 2 b + 2 a + 4 a )n - 4 b + 2 a + 6 a ,
0 0 0 1 0 0 1 0
2
(b - 2 a - 2 a - 2 a )n + (3 b - 6 a - 6 a - 6 a )n + 2 b
0 2 1 0 0 2 1 0 0
+
- 4 a - 4 a - 4 a
2 1 0
/
2
]
Type: Union(Equation(Expression(Integer)),...)