<<RISC`SumCracker`

SumCracker Package version 0.11
written by Manuel Kauers
Copyright 2008-2011, Research Institute for Symbolic Computation (RISC),
Johannes Kepler University, Linz, Austria

Motivating Examples

Crack[SUM[1/Fibonacci[2^k],{k,0,n}],From->1]

Crack[SUM[1/Fibonacci[2^k],{k,0,n}],From->0]

Crack[SUM[1/Fibonacci[2^k,z],{k,0,n}],From->1]

Crack[SUM[1/Fibonacci[2^k,z],{k,0,n}],From->0]

Crack[SUM[q^(2^k)/u[2^(k+1)],{k,0,n}],From->1,Where->{u[n+2]==p*u[n+1]-q*u[n],u[0]==0,u[1]==1}]

Crack[SUM[q^(3 2^k)/u[3 2^(k+1)],{k,0,n}],From->1,Where->{u[n+2]==p*u[n+1]-q*u[n],u[0]==0,u[1]==1}]

Crack[SUM[q^(4 2^k)/u[4 2^(k+1)],{k,0,n}],From->1,Where->{u[n+2]==p*u[n+1]-q*u[n],u[0]==0,u[1]==1}]

Crack[SUM[q^(5 2^k)/u[5 2^(k+1)],{k,0,n}],From->1,Where->{u[n+2]==p*u[n+1]-q*u[n],u[0]==0,u[1]==1}]

Proving Identities and Inequalities

Identities

ZeroSequenceQ[d[n]e[n+1]-d[n+1]e[n]-(-1)^n q^Binomial[n,2],Where->{d[n+2]==d[n+1]+q^n d[n],d[0]==1,d[1]==0,e[n+2]==e[n+1]+q^n e[n],e[0]==0,e[1]==1}]

<<Singular.m

SumCracker`Private`GroebnerTimeout=1;

ZeroSequenceQ[CFRAC[a[k-1]x,a[k]-x,{k,0,n}]+x-1/SUM[(-x)^k/PRODUCT[a[i],{i,0,k}],{k,0,n}],Free->{a}]//AbsoluteTiming

SumCracker`Private`GroebnerTimeout=32000;

ZeroSequenceQ[SUM[px[k]pu[k]/PRODUCT[lambda[i],{i,1,k+1}],{k,0,n}]-(px[n+1]pu[n]-px[n]pu[n+1])/(x-u)/PRODUCT[lambda[i],{i,1,n+1}],Where->{px[n+2]==(x-c[n+2])px[n+1]-lambda[n+2]px[n],px[-1]==0,px[0]==1,pu[n+2]==(u-c[n+2])pu[n+1]-lambda[n+2]pu[n],pu[-1]==0,pu[0]==1},Free->{c,lambda},Infolevel->0]//AbsoluteTiming

Inequalities

ProveInequality[SUM[Lucas[k]^2/Fibonacci[k],{k,1,n}]≥(Lucas[n+2]-3)^2/(Fibonacci[n+2]-1),From->2]

ProveInequality[SUM[Lucas[k]^2/Fibonacci[k],{k,1,n}]≥(Lucas[n+2]-3)^2/(Fibonacci[n+2]-1),From->2,Using->{Fibonacci[n]≥1}]

ProveInequality[Fibonacci[n]≥1,From->2]

ProveInequality[(1+x)^n≥1+ n x,Using -> {x≥-1}]

ProveInequality[(1+x)^n≥1+ n x,Using -> {x≥-1},Variable->n]

ProveInequality[(1+x)^n≥1+ n x,Using -> {x≥-2},Variable->n]

ProveInequality[LegendreP[n+1,x]^2-LegendreP[n,x]LegendreP[n+2,x]≥0,Using->{-1≤x≤1},Variable->n]

Cracking Expressions: Crack

Indefinite Summation

Crack[SUM[(k+lambda)*GegenbauerC[k,lambda,x],{k,0,n}]]

Crack[SUM[1/Lucas[2^k],{k,0,n}],From->1]

Crack[SUM[1/Lucas[2^k],{k,0,n}],From->1,Degree->10]

Crack[SUM[1/Lucas[2^k],{k,0,n}],From->1,Degree->250]

Simplification

Crack[(p[n+2]p[n+1]^3-p[n+1]^4-p[n+2]^3p[n+1]+23 p[n+1])/(p[n]^2+2p[n+1]p[n]+p[n+1]^2-p[n+2]^2-3p[n+1]p[n+2]),Where->{p[n+3]==p[n]+p[n+1],p[0]==3,p[1]==0,p[2]==2}]

Conversion

Crack[JacobiP[n,a+1,b,x],Into->{n,JacobiP[n,a,b,x]}]

Crack[n^2 s[n]+s[n+1]/n,Into->{n,d[n]},Where->{d[n+2]==(3(2n+3)d[n+1]-(n+1)d[n])/(n+2),d[1]==3,d[2]==13,s[n+2]==(3(2n+3)s[n+1]-n s[n])/(n+3),s[1]==2,s[2]==6}]

Solving Nonlinear Difference Equations

Crack[u[n],Into->{Fibonacci[n]},Where->{u[n+1]==(3u[n]+1)/(5u[n]+3),u[1]==1}]

Discovering Algebraic Dependencies: ApproximateAnnihilator

q-Cassini' Identity

def={d[n+2]==d[n+1]+q^n d[n],d[0]==1,d[1]==0,e[n+2]==e[n+1]+q^n e[n],e[0]==0,e[1]==1};

Crack[d[n]e[n+1]-d[n+1]e[n],Into->{(-1)^n ,q^Binomial[n,2]},Where->def,Variable->n]

ApproximateAnnihilator[{d[n],d[n+1],e[n],e[n+1],(-1)^n,q^n},x,Where->def,Degree->5]//AbsoluteTiming

ApproximateAnnihilator[{d[n],d[n+1],e[n],e[n+1],(-1)^n,q^n,q^(n^2)},x,Where->def,Degree->5,Variable->n]//AbsoluteTiming

Clear[def]

Somos Sequences

vars={c[n],c[n+1],c[n+2],c[n+3],c[n+4],c[n+5],c[n+6],c[n+7]};
{t,id}=ApproximateAnnihilator[vars,Where->{c[n+4]==(c[n+3]c[n+1]+c[n+2]^2)/c[n],c[0]==1,c[1]==1,c[2]==1,c[3]==1},Degree->2]//AbsoluteTiming;
id=GroebnerBasis[id,vars];

t

ansatz[r_]:=Sum[a[i]c[n+r-i]c[n+i],{i,0,Floor[r/2]}]/.a[0]->1;
FindSomos[r_]:=ansatz[r]/.First[Solve[Thread[CoefficientList[Last[PolynomialReduce[ansatz[r],id,vars]],vars]==0]]];

FindSomos[4]

FindSomos[5]

FindSomos[6]

%/.{{a[3]->0},{a[3]->1}}

FindSomos[7]/.{{a[3]->0},{a[3]->1}}

ClearAll[vars,id,ansatz,FindSomos]

Automatically Posing Quarterly Problems

ApproximateAnnihilator[{Fibonacci[3n]/Lucas[3n],Fibonacci[3(n+1)]/Lucas[3(n+1)]},u,Degree->2]

ApproximateAnnihilator[{a[n]/b[n],a[n+1]/b[n+1]},u,Where->{a[n+2]==x a[n+1]+y a[n],b[n+2]== x b[n+1]+y b[n]},Degree->2]