|\^/| Maple V Release 4 (INRIA)
._|\| |/|_. Copyright (c) 1981-1996 by Waterloo Maple Inc. All rights
\ MAPLE / reserved. Maple and Maple V are registered trademarks of
<____ ____> Waterloo Maple Inc.
| Type ? for help.
The following examples are presented as is. They accompany the
paper ``Non-commutative Elimination in Ore Algebras Proves
Multivariate Identities'', by Frederic Chyzak and Bruno Salvy.
Some results of this session may differ from those of the paper due
to changes in the program. For the reason of changes and new bugs,
I also did not reproduce all the examples of the session. This will
be done in the future.
Frederic Chyzak, May 14, 1997.
Modified (minor corrections), May 27, 1997.
>
Change this according to your configuration.
> libname:=`/home/musigny/algo/chyzak/ArchivesMgfun/Lib1.3-released`,libname:
> with(Mgfun):
Patch a bug in this version.
> `type/OreAlgebra`:=readlib(`type/Mgfun/OreAlgebra`):
>
Section 1.4.1. Jacobi polynomials
> A:=Ore_algebra(comm={a,b},shift=[Sn,n],diff=[Dx,x]):
> G:=[2*(n+2)*(n+a+b+2)*(2*n+a+b+2)*Sn^2
> -((2*n+a+b+3)*(a^2-b^2)+(2*n+a+b+2)
> *(2*n+a+b+3)*(2*n+a+b+4)*x)*Sn
> +2*(n+a+1)*(n+b+1)*(2*n+a+b+4),
> (2*n+a+b+2)*(1-x^2)*Dx*Sn-(n+1)
> *(a-b-(2*n+a+b+2)*x)*Sn-2*(n+a+1)*(n+b+1)]:
> skewelim(G[1],G[2],Sn,A);
bytes used=2007872, alloc=1703624, time=0.47
bytes used=4036816, alloc=2358864, time=1.01
bytes used=6055480, alloc=2752008, time=1.49
bytes used=8085600, alloc=2752008, time=2.00
2 2 2 2
-n a - n - n - n b + Dx a x + Dx b x + 2 Dx x + Dx a - Dx b + Dx x - Dx
>
Section 1.4.2. Gauss's hypergeometric function
> A:=Ore_algebra(comm={b,c},diff=[Dz,z],shift=[Sa,a]):
> P:=z*(1-z)*Dz^2+(c-(a+b+1)*z)*Dz-a*b:
> H:=a*Sa-(z*Dz+a):
> skewelim(P,H,Dz,A);
2 2 2
z a Sa + a - 2 a Sa - z a Sa + a Sa + 1 + Sa c - 2 Sa - z Sa + z Sa - c
2
+ Sa - z b Sa
> A:=Ore_algebra(comm={a,b,c},diff=[Dz,z]):
> GCD:=skewgcdex(P,z*Dz+a,Dz,A):
> B:=collect((a-1)*subs(a=a-1,GCD[3]/GCD[1]),Dz,factor);
z (-1 + z) Dz a - c + z b
B := ------------- + -----------
a - c a - c
>
Section 1.4.3. Partially hypergeometric series
> A:=shift_algebra([Sn,n],[Sk,k],[comm,z]):
> h:=(-1)^k*binomial(n,k)^2*binomial(n+k,k)^2;
k 2 2
h := (-1) binomial(n, k) binomial(n + k, k)
> G:=hypergeomtoholon(h,A):
> G:=collect(G,{Sn,Sk},factor);
bytes used=10086136, alloc=2883056, time=2.78
2 2
G := [Sn (n + 1 - k) - (n + 1 + k) , comm - 1,
4 2 2
(k + 1) Sk + (n + 1 + k) (n - k) ]
> L:=op(select(has,G,Sk));
4 2 2
L := (k + 1) Sk + (n + 1 + k) (n - k)
You can run this if you have gfun in the share library.
with(share):
readshare(gfun,analysis):
with(gfun):
applyopr(L,u(k),A);
rectodiffeq({"},u(k),f(z));
M:=collect(subs({seq((D@@i)(f)(z)=Dz^i,i=0..4)},"),Dz,factor);
Otherwise, here is the result.
> M:=z^3*(z+1)*Dz^4+2*z^2*(4*z+3)*Dz^3-z*(-14*z+2*z*n+2*z*n^2-7)*Dz^2
> +(-4*z*n^2+4*z-4*z*n+1)*Dz+(n+1)^2*n^2;
3 4 2 3 2 2
M := z (z + 1) Dz + 2 z (4 z + 3) Dz - z (-14 z + 2 z n + 2 z n - 7) Dz
2 2 2
+ (-4 z n + 4 z - 4 z n + 1) Dz + (n + 1) n
> H:=Sn;
H := Sn
Naive method that returns an operator of order 7.
> normal(applyopr(H,h,A)/h,expanded);
2 2
n + 2 n + 2 n k + 1 + 2 k + k
-------------------------------
2 2
n + 2 n - 2 n k + 1 - 2 k + k
> P:=numer("): Q:=denom(""):
> A:=Ore_algebra(diff=[Dz,z],shift=[Sn,n]):
> P2:=collect(subs({seq(k^i=oppower(z*Dz,i,A),i=1..degree(P,k))},P),Dz,factor);
2 2 2
P2 := z Dz + z (2 n + 3) Dz + (n + 1)
> Q2:=collect(subs({seq(k^i=oppower(z*Dz,i,A),i=1..degree(Q,k))},Q),Dz,factor);
2 2 2
Q2 := z Dz - z (2 n + 1) Dz + (n + 1)
> collect(Q2*H-P2,{Dz,Sn},distributed,factor);
2 2 2 2 2
(n + 1) Sn - z (2 n + 1) Dz Sn + z Dz Sn - z Dz - z (2 n + 3) Dz
2
- (n + 1)
The contiguity relation of order 7 is:
> C[7]:=collect(skewelim(",M,Dz,A),Sn,factor);
bytes used=12086512, alloc=2883056, time=3.54
bytes used=14097224, alloc=2883056, time=4.18
bytes used=16097680, alloc=3014104, time=4.82
bytes used=18128736, alloc=3538296, time=5.37
bytes used=20138792, alloc=3538296, time=5.98
bytes used=22146304, alloc=3538296, time=6.42
bytes used=24159072, alloc=3538296, time=6.88
bytes used=26166096, alloc=3538296, time=7.39
bytes used=28257808, alloc=3538296, time=7.89
bytes used=30262752, alloc=3669344, time=8.37
bytes used=32279200, alloc=3669344, time=8.87
bytes used=34301168, alloc=3669344, time=9.44
bytes used=36301616, alloc=4062488, time=10.04
bytes used=38303872, alloc=4062488, time=10.92
bytes used=40613376, alloc=4455632, time=11.83
bytes used=42645896, alloc=4455632, time=12.41
bytes used=44663680, alloc=4455632, time=12.93
bytes used=46690952, alloc=4455632, time=13.36
bytes used=48693192, alloc=4455632, time=13.79
bytes used=50998240, alloc=4586680, time=14.26
bytes used=53073040, alloc=4586680, time=14.76
bytes used=55332712, alloc=4586680, time=15.30
bytes used=57394080, alloc=4586680, time=16.03
bytes used=59417232, alloc=4586680, time=17.08
bytes used=61433016, alloc=4586680, time=17.63
bytes used=63439400, alloc=4586680, time=18.17
bytes used=65485352, alloc=4586680, time=18.67
bytes used=67555152, alloc=4586680, time=19.21
bytes used=69568824, alloc=4586680, time=19.74
bytes used=71571424, alloc=4586680, time=20.18
bytes used=73573944, alloc=4586680, time=20.62
bytes used=75577368, alloc=4586680, time=21.06
bytes used=77605352, alloc=4586680, time=21.50
bytes used=79610424, alloc=4586680, time=21.93
bytes used=81618720, alloc=4586680, time=22.35
bytes used=83619320, alloc=4586680, time=22.78
bytes used=85828144, alloc=4586680, time=23.35
bytes used=87843120, alloc=4586680, time=23.80
bytes used=89879064, alloc=4586680, time=24.23
bytes used=91900584, alloc=4586680, time=24.66
bytes used=93921984, alloc=4586680, time=25.09
bytes used=95996256, alloc=4717728, time=25.55
bytes used=98070272, alloc=5110872, time=26.00
bytes used=100127800, alloc=5110872, time=26.44
bytes used=102155416, alloc=5110872, time=26.88
bytes used=104165568, alloc=5110872, time=27.31
bytes used=106173944, alloc=5110872, time=27.75
bytes used=108191224, alloc=5110872, time=28.18
bytes used=110207384, alloc=5110872, time=28.62
bytes used=112212728, alloc=5110872, time=29.05
bytes used=114269232, alloc=5241920, time=29.50
bytes used=116335216, alloc=5241920, time=29.95
bytes used=118335680, alloc=5241920, time=30.53
bytes used=120336144, alloc=5241920, time=31.46
bytes used=122336472, alloc=5241920, time=32.41
bytes used=124336912, alloc=5766112, time=33.39
bytes used=127337664, alloc=7338688, time=34.64
bytes used=129341400, alloc=7993928, time=35.26
bytes used=131344936, alloc=8124976, time=35.90
bytes used=133389320, alloc=8124976, time=36.53
bytes used=135453128, alloc=8256024, time=37.19
bytes used=137516328, alloc=8256024, time=37.84
bytes used=139520424, alloc=8387072, time=38.47
bytes used=141589992, alloc=8387072, time=39.11
bytes used=143608656, alloc=8387072, time=39.75
bytes used=145674768, alloc=8518120, time=40.40
bytes used=147690232, alloc=8518120, time=41.04
bytes used=149734296, alloc=8518120, time=41.68
bytes used=151756664, alloc=8518120, time=42.32
bytes used=153766304, alloc=8518120, time=42.95
bytes used=155790800, alloc=8649168, time=43.53
bytes used=157799088, alloc=8649168, time=43.98
bytes used=159842480, alloc=8649168, time=44.45
bytes used=161862152, alloc=8649168, time=44.90
bytes used=163937456, alloc=8649168, time=45.37
bytes used=165994744, alloc=8649168, time=45.84
bytes used=168006736, alloc=8649168, time=46.30
bytes used=170042416, alloc=8649168, time=46.81
bytes used=172067816, alloc=8649168, time=47.33
bytes used=174071912, alloc=8649168, time=47.84
bytes used=176101904, alloc=8649168, time=48.36
bytes used=178106000, alloc=8649168, time=48.87
bytes used=180110896, alloc=8649168, time=49.39
bytes used=182122576, alloc=8649168, time=49.91
bytes used=184135752, alloc=8649168, time=50.43
bytes used=186151600, alloc=8649168, time=50.95
bytes used=188178344, alloc=8649168, time=51.47
bytes used=190201944, alloc=8649168, time=52.00
bytes used=192209784, alloc=8649168, time=52.52
bytes used=194220528, alloc=8649168, time=53.04
bytes used=196223992, alloc=8649168, time=53.56
bytes used=198227328, alloc=8649168, time=54.08
bytes used=200240216, alloc=8649168, time=54.61
bytes used=202248344, alloc=8649168, time=55.13
bytes used=204268880, alloc=8649168, time=55.67
bytes used=206282912, alloc=8649168, time=56.19
bytes used=208298776, alloc=8649168, time=56.73
bytes used=210299280, alloc=8649168, time=57.65
bytes used=212299632, alloc=8649168, time=58.66
bytes used=214300936, alloc=8649168, time=59.69
bytes used=216301248, alloc=8649168, time=60.76
bytes used=218301592, alloc=8649168, time=61.86
bytes used=220302488, alloc=8649168, time=63.00
bytes used=222302832, alloc=8911264, time=64.14
bytes used=224328160, alloc=9697552, time=65.04
bytes used=226331560, alloc=10876984, time=65.82
bytes used=228365288, alloc=11139080, time=66.63
bytes used=230403552, alloc=11270128, time=67.44
bytes used=232429784, alloc=11270128, time=68.26
bytes used=234459960, alloc=11401176, time=69.08
bytes used=236489288, alloc=11401176, time=69.90
bytes used=238513552, alloc=11401176, time=70.72
bytes used=240514784, alloc=11401176, time=71.54
bytes used=242554352, alloc=11794320, time=72.35
bytes used=244563072, alloc=11794320, time=73.18
bytes used=246577664, alloc=11794320, time=74.01
bytes used=248593208, alloc=11794320, time=74.83
bytes used=250594456, alloc=11794320, time=75.66
bytes used=252611592, alloc=11794320, time=76.48
bytes used=254613360, alloc=11794320, time=77.31
bytes used=256615928, alloc=11794320, time=78.13
bytes used=258625768, alloc=11794320, time=78.96
bytes used=260645352, alloc=11794320, time=79.79
bytes used=262670608, alloc=11794320, time=80.62
bytes used=264691256, alloc=11794320, time=81.45
bytes used=266713376, alloc=11794320, time=82.28
bytes used=268719384, alloc=11794320, time=83.11
bytes used=271078864, alloc=12318512, time=83.89
bytes used=273280976, alloc=12580608, time=85.18
bytes used=275316608, alloc=12580608, time=86.07
bytes used=277385320, alloc=12580608, time=87.03
bytes used=279388528, alloc=12580608, time=87.74
bytes used=281449240, alloc=12580608, time=88.51
bytes used=283496832, alloc=12580608, time=89.22
bytes used=285497208, alloc=12580608, time=90.69
bytes used=287497672, alloc=12580608, time=92.58
bytes used=289498056, alloc=12580608, time=94.49
bytes used=291498408, alloc=12580608, time=96.38
bytes used=293498856, alloc=12580608, time=98.30
bytes used=295499216, alloc=12580608, time=100.21
bytes used=297499528, alloc=12580608, time=102.12
bytes used=299499976, alloc=12580608, time=103.96
bytes used=301500424, alloc=12580608, time=105.76
bytes used=303500816, alloc=12580608, time=107.58
bytes used=305501208, alloc=12580608, time=109.40
bytes used=307501536, alloc=12580608, time=111.21
bytes used=309501984, alloc=12580608, time=113.05
bytes used=311502528, alloc=12580608, time=114.85
bytes used=313520520, alloc=12580608, time=116.33
bytes used=315558744, alloc=12580608, time=117.13
bytes used=317748200, alloc=12580608, time=117.95
bytes used=319854728, alloc=12580608, time=118.75
bytes used=321954344, alloc=12580608, time=119.56
bytes used=323968632, alloc=12580608, time=120.33
bytes used=325969424, alloc=12580608, time=121.10
bytes used=328079256, alloc=12580608, time=121.89
bytes used=330089528, alloc=12580608, time=122.61
bytes used=332124672, alloc=12580608, time=123.33
bytes used=334297912, alloc=12580608, time=124.15
bytes used=336322080, alloc=12580608, time=124.90
bytes used=338616768, alloc=12580608, time=125.63
bytes used=340704184, alloc=12580608, time=126.45
bytes used=342720464, alloc=12580608, time=127.39
bytes used=344766640, alloc=12580608, time=128.18
bytes used=346767040, alloc=12580608, time=129.79
bytes used=348767392, alloc=12580608, time=131.70
bytes used=350767856, alloc=12580608, time=133.61
bytes used=352768312, alloc=12580608, time=135.51
bytes used=354768856, alloc=12580608, time=137.42
bytes used=356769376, alloc=12580608, time=139.35
bytes used=358769744, alloc=12580608, time=141.19
bytes used=360770144, alloc=12580608, time=143.03
bytes used=362770432, alloc=12580608, time=144.88
bytes used=364770864, alloc=12580608, time=146.72
bytes used=366771352, alloc=12580608, time=148.55
bytes used=368774000, alloc=12580608, time=149.88
bytes used=370778464, alloc=12580608, time=150.70
bytes used=372930624, alloc=12580608, time=151.50
bytes used=374938856, alloc=12580608, time=152.29
bytes used=377083624, alloc=12580608, time=153.10
bytes used=379274312, alloc=12580608, time=153.88
bytes used=381530952, alloc=12580608, time=154.67
bytes used=383817576, alloc=12580608, time=155.45
bytes used=385845456, alloc=12580608, time=156.16
bytes used=387879112, alloc=12580608, time=156.88
bytes used=390088656, alloc=12580608, time=157.68
bytes used=392106056, alloc=12580608, time=158.41
bytes used=394140264, alloc=12580608, time=159.15
bytes used=397714880, alloc=12580608, time=160.01
bytes used=399787976, alloc=12580608, time=161.18
bytes used=401788272, alloc=12580608, time=161.93
bytes used=403788608, alloc=12580608, time=163.43
bytes used=405788968, alloc=12580608, time=165.34
bytes used=407789488, alloc=12580608, time=167.26
bytes used=409789952, alloc=12580608, time=169.17
bytes used=411790272, alloc=12580608, time=171.07
bytes used=413790568, alloc=12580608, time=172.96
bytes used=415790936, alloc=12580608, time=174.81
bytes used=417792504, alloc=12580608, time=176.66
bytes used=419792952, alloc=12580608, time=178.47
bytes used=421793400, alloc=12580608, time=180.33
bytes used=423793872, alloc=12580608, time=182.14
bytes used=425802080, alloc=12580608, time=183.57
bytes used=428008192, alloc=12580608, time=184.40
bytes used=430102208, alloc=12580608, time=185.20
bytes used=432303976, alloc=12580608, time=186.04
bytes used=434307256, alloc=12580608, time=186.84
bytes used=436310776, alloc=12580608, time=187.56
bytes used=438642272, alloc=12580608, time=188.34
bytes used=440663176, alloc=12580608, time=189.04
bytes used=442945296, alloc=12580608, time=189.81
bytes used=445303480, alloc=12580608, time=190.59
bytes used=447321608, alloc=12580608, time=191.30
bytes used=449356416, alloc=12580608, time=192.03
bytes used=451664072, alloc=12580608, time=192.84
bytes used=454025496, alloc=12580608, time=193.62
bytes used=456033488, alloc=12580608, time=194.34
bytes used=458051424, alloc=12580608, time=195.06
bytes used=460334552, alloc=12580608, time=195.84
bytes used=462345736, alloc=12580608, time=196.55
bytes used=464350864, alloc=12580608, time=197.25
bytes used=466362600, alloc=12580608, time=197.94
bytes used=468445704, alloc=12580608, time=199.02
bytes used=470577728, alloc=12580608, time=199.78
bytes used=472807656, alloc=12580608, time=200.58
bytes used=474822192, alloc=12580608, time=201.33
bytes used=477036320, alloc=12580608, time=202.08
bytes used=479051992, alloc=12580608, time=202.80
bytes used=481393392, alloc=12580608, time=203.61
bytes used=483634400, alloc=12580608, time=204.37
bytes used=485642280, alloc=12580608, time=205.12
bytes used=487983080, alloc=12580608, time=205.92
bytes used=490197072, alloc=12580608, time=206.73
bytes used=492392000, alloc=12580608, time=207.52
bytes used=494615256, alloc=12580608, time=208.33
bytes used=496736848, alloc=12580608, time=209.09
bytes used=498948672, alloc=12580608, time=209.91
bytes used=501077224, alloc=12580608, time=210.69
bytes used=503437672, alloc=12580608, time=211.49
bytes used=505445648, alloc=12580608, time=212.22
bytes used=507463528, alloc=12580608, time=212.99
bytes used=509766256, alloc=12580608, time=213.79
bytes used=511788144, alloc=12580608, time=214.53
bytes used=513790032, alloc=12580608, time=215.26
bytes used=515808840, alloc=12580608, time=216.04
bytes used=518095344, alloc=12580608, time=216.84
bytes used=520106544, alloc=12580608, time=217.59
bytes used=522111648, alloc=12580608, time=218.31
bytes used=524123408, alloc=12580608, time=219.07
bytes used=526339560, alloc=12580608, time=219.88
bytes used=528548608, alloc=12580608, time=220.69
bytes used=530774216, alloc=12580608, time=221.49
bytes used=532790504, alloc=12580608, time=222.16
bytes used=534853128, alloc=12580608, time=222.71
bytes used=536862264, alloc=12580608, time=223.26
bytes used=538876280, alloc=12580608, time=223.81
bytes used=540900376, alloc=12580608, time=224.44
bytes used=542909240, alloc=12580608, time=225.00
bytes used=544916216, alloc=12580608, time=225.58
bytes used=546916952, alloc=12580608, time=226.34
bytes used=548917648, alloc=12580608, time=227.39
bytes used=550918824, alloc=12580608, time=228.54
bytes used=552920248, alloc=12580608, time=229.60
2 4 6
C[7] := -(2 n + 5) (2 n + 3) (n + 3) (2 n + 7) (n + 6) (n + 7) (80 n z
6 6 2 5 2 5 5 4
+ 16 n + 64 n z + 1344 n z + 1680 n z + 336 n + 2812 n
4 2 4 3 3 2 3
+ 11068 n z + 14024 n z + 59136 z n + 11928 n + 45192 z n
2 2 2 2 2
+ 95317 z n + 132146 z n + 26929 n + 30723 n + 97839 n z + 148470 z n
2 7
+ 65892 z + 13926 + 37926 z ) Sn - (2 n + 5) (2 n + 3) (n + 3) (2 n + 13)
2 5 5 2 3
(n + 6) (-267188865 n - 2810946 n z - 36558969 n + 5308699674 z n
7 2 2 3
- 237936 n z - 343911303 n + 1942323726 z - 253024934 n
2 2 4 6 2 4
+ 7294149117 z n + 217344 n z + 153854757 n z - 118027892 n
8 2 6 10
- 27864 n z + 61213146 z n + 74932194 z n - 7634895 n - 112 n
3 2 6 7 9 3 9
+ 5805308712 z n - 1157982 n z - 1064208 n + 91136 n z - 1776 n z
10 2 9 2 3 2
+ 2112 n z + 94272 n z + 4178435604 z n + 5719229619 n z
10 3 10 3 9
+ 2048 n z - 48 n z + 21778944 z n + 35742924 z - 4912 n
7 2 8 2 8 3 3 3
+ 21115680 n z + 1854108 n z + 1781376 n z + 4496164156 z n
3 7 3 6 3 8
+ 1260508536 z + 20079744 n z + 144030240 n z - 94980 n
4 2 5 3 4 3 5 2
+ 2446159284 n z + 684014160 n z + 2167153888 n z + 747533139 n z
6
- 90076386) Sn - (2 n + 5) (2 n + 3) (2 n + 11) (85986404676 n
5 5 2 3
+ 483287935450 n z + 42906452495 n + 7214712213739 z n
7 2 2 3
+ 38728426434 n z + 142476377942 n + 1240168995240 z + 140759325855 n
2 2 4 4 6
+ 7414419736502 z n + 1060559347776 n z + 771940158784 z n
4 5 6 2 4
+ 2284329208368 z n + 694980071674 n z + 92611050594 n
7 4 8 2
+ 190570480448 n z + 6914943860 n z + 1680767812396 z n
4 4 3
+ 1027535345112 z n + 1002247646400 z + 7210521226000 z n
4 2 13 6 11 12
+ 7022713614000 z n + 336 n + 14420346306 n + 509884 n + 19392 n
10 3 2 6 7
+ 8079996 n + 13682650948296 z n + 159600076920 n z + 3564500133 n
9 3 11 2 9
+ 23350952808 + 7559783776 n z + 21306988 n z + 898404042 n z
10 2 9 2 3
+ 348550828 n z + 3824465873 n z + 8210026188432 z n
2 11 3 11 10 3
+ 4528595526708 n z + 42668928 n z + 5104760 n z + 693507584 n z
10 3 13 4
+ 82653816 n z + 1637039252154 z n + 16384 n z + 282250162032 z
9 9 4 7 2 8 2
+ 86013981 n + 4517690624 n z + 167545606625 n z + 29689194154 n z
13 3 12 3 13 12 2
+ 26624 n z + 1580032 n z + 3216 n z + 783872 n z
12 13 2 11 4 10 4
+ 189888 n z + 13120 n z + 25930752 n z + 418210816 n z
8 3 3 3 3
+ 58286832432 n z + 13511037661940 z n + 2200064944896 z
7 3 6 3 4 4
+ 326533490992 n z + 1343604801980 n z + 4862476649552 z n
8 4 2 5 3
+ 648860962 n + 4661946810770 n z + 4053512450028 n z
4 3 5 2 4
+ 8838498205900 n z + 2115800273987 n z + 4004292023424 z n
12 4 4 8 5
+ 966656 n z + 34459329792 z n ) Sn + (2 n + 9) (2 n + 3) (2 n + 13)
5 5 2 3
(46053809388 n + 634562643130 n z + 33085521973 n + 8926613181009 z n
7 2 2
+ 62787989214 n z + 83182050706 n + 1160209491000 z + 11523220920
3 2 2 4
+ 89917367765 n + 8311331715330 z n + 1257462926348 n z
4 6 4 5 6 2
+ 1082954631744 z n + 2884936058448 z n + 1185181654754 n z
4 7 4 8
+ 64925778266 n + 297655968192 n z + 12483737564 n z
2 4
+ 1642199836716 z n + 917574777528 z n + 807866136000 z
4 3 4 2 13 6
+ 7461641061744 z n + 6631955306064 z n + 560 n + 12249111378 n
11 12 10 3 2
+ 704100 n + 29440 n + 10136540 n + 13910092243648 z n
6 7 9 3 11 2
+ 232646448964 n z + 3338131859 n + 16305338944 n z + 64691060 n z
9 10 2 9 2
+ 1807328726 n z + 941280204 n z + 9191040175 n z
3 2 11 3
+ 7602320946336 z n + 4623878113500 n z + 115392256 n z
11 10 3 10
+ 12756616 n z + 1675034624 n z + 185331192 n z
3 13 4 9
+ 1758422210082 z n + 49152 n z + 231596949360 z + 97936163 n
9 4 7 2 8 2 13 3
+ 8777472768 n z + 319814508279 n z + 63547672678 n z + 90112 n z
12 3 13 12 2 12
+ 4782080 n z + 9968 n z + 2676224 n z + 528640 n z
13 2 11 4 10 4 8 3
+ 50368 n z + 62702592 n z + 906654720 n z + 112293555296 n z
3 3 3 7 3
+ 15156416516288 z n + 1866003515040 z + 562342435424 n z
6 3 4 4 8
+ 2071109198296 n z + 5546371391664 z n + 670104558 n
4 2 5 3 4 3
+ 6396147845746 n z + 5603671818176 n z + 10987462278952 n z
5 2 4 12 4
+ 3231341124665 n z + 3476991692160 z n + 2605056 n z
4 8 4
+ 60008279808 z n ) Sn - (2 n + 7) (2 n + 3) (2 n + 13) (34497078156 n
5 5 2 3
+ 447680623994 n z + 27352736917 n + 5499248038545 z n
7 2 2 3
+ 48624025054 n z + 63836711782 n + 610197447720 z + 70724042517 n
2 2 4 4 6
+ 4859515283350 z n + 845762274820 n z + 811887892416 z n
4 5 6 2 4
+ 2074421627472 z n + 851895678246 n z + 52351911278 n
7 4 8 2
+ 232808309184 n z + 10115487316 n z + 1001893454084 z n
4 4 3
+ 532621021560 z n + 484905960000 z + 4954911455088 z n
4 2 13 6 11 12
+ 4245061542960 z n + 560 n + 10382799574 n + 673380 n + 28800 n
10 3 2 6 7
+ 9471620 n + 8531414872896 z n + 172031841612 n z + 2900711699 n
9 3 11 2 9 10 2
+ 13735426624 n z + 59210612 n z + 1530795606 n z + 822649876 n z
9 2 3 2
+ 7661023215 n z + 4468121065632 z n + 2564826281340 n z
11 3 11 10 3 10
+ 106151680 n z + 11767432 n z + 1475258368 n z + 163909832 n z
3 13 4 9
+ 1126781871522 z n + 49152 n z + 127804460880 z + 89361763 n
9 4 7 2 8 2 13 3
+ 7473224448 n z + 241721896055 n z + 50463545810 n z + 90112 n z
12 3 13 12 2 12
+ 4589568 n z + 9968 n z + 2562048 n z + 508032 n z
13 2 11 4 10 4 8 3
+ 50368 n z + 57984000 n z + 804842496 n z + 90406827424 n z
3 3 3 7 3
+ 9712518187968 z n + 1052358864480 z + 432470082144 n z
6 3 4 4 8
+ 1521125868328 n z + 3829409246160 z n + 596796138 n
4 2 5 3 4 3
+ 4150173636854 n z + 3930740514624 n z + 7363953429720 n z
5 2 4 12 4
+ 2207367226009 n z + 2151373929600 z n + 2506752 n z + 8428824360
4 8 3
+ 48974588160 z n ) Sn + (2 n + 5) (2 n + 13) (2 n + 11) (4434266916 n
5 5 2 3 7
+ 41624849882 n z + 6182227951 n + 194646861355 z n + 6507045058 n z
2 2 3 2 2
+ 9462409362 n + 6911840376 z + 12083336671 n + 125422522194 z n
4 4 6 4 5
+ 64633238480 n z + 95267825856 z n + 204293021232 z n
6 2 4 7 4 8
+ 65065622078 n z + 10297384054 n + 32398803776 n z + 1602053980 n z
2 4 4 3
+ 50161182276 z n + 21208829592 z n + 19845000000 z + 341168970000 z n
4 2 13 6 11 12
+ 244498146000 z n + 336 n + 2689603670 n + 325564 n + 15552 n
10 3 2 6 7
+ 4079140 n + 369397670424 z n + 19278024184 n z + 858452261 n
9 3 11 2 9 10 2
+ 2271110496 n z + 11550316 n z + 284375882 n z + 136576628 n z
9 2 3 2
+ 1069412113 n z + 155812968720 z n + 45826603284 n z
11 3 11 10 3 10
+ 23892864 n z + 2929784 n z + 285908480 n z + 35403464 n z
3 13 4 9
+ 70073637818 z n + 16384 n z + 3989481552 z + 34114141 n
9 4 7 2 8 2 13 3
+ 1435778304 n z + 22915448929 n z + 5846250782 n z + 26624 n z
12 3 13 12 2 12
+ 1188864 n z + 3216 n z + 580608 n z + 144576 n z
13 2 11 4 10 4
+ 13120 n z + 14920704 n z + 179682304 n z + 939708216
8 3 3 3 3
+ 12638717904 n z + 519696090996 z n + 29438640000 z
7 3 6 3 4 4
+ 50670026032 n z + 148124954820 n z + 315535254320 z n
8 4 2 5 3
+ 201021446 n + 194504508774 n z + 315665832108 n z
4 3 5 2 4
+ 484252867348 n z + 133451236003 n z + 104050800000 z n
12 4 4 8 2
+ 737280 n z + 8035664640 z n ) Sn + (2 n + 11) (2 n + 3) (n + 5)
2 5 5
(2 n + 13) (n + 2) (-35950959 n - 11678046 n z - 12667479 n
2 3 7 2 2 3
+ 802740966 z n - 402576 n z - 58553847 n + 112682934 z - 54664538 n
2 2 4 6 2 4
+ 807453069 z n - 34080048 n z + 56145957 n z - 32345036 n
8 2 6
- 38232 n z - 9631386 - 79896102 z n - 55681602 z n - 3326031 n
10 3 2 6 7 9 3
- 112 n + 723291528 z n - 2671326 n z - 578544 n + 72704 n z
9 10 2 9 2 3 2
- 2064 n z + 2112 n z + 74688 n z + 404481900 z n + 460142493 n z
10 3 10 3 9
+ 2048 n z - 48 n z - 65617152 z n - 16917444 z - 4048 n
7 2 8 2 8 3 3 3
+ 10105824 n z + 1149084 n z + 1117824 n z + 733073092 z n
3 7 3 6 3 8
+ 97335000 z + 9780096 n z + 53820960 n z - 63876 n
4 2 5 3 4 3 5 2
+ 501150588 n z + 194382768 n z + 466223200 n z + 205519773 n z )
2 4 6
Sn + (n + 5) (2 n + 13) (2 n + 11) (2 n + 9) (n + 2) (n + 1) (16 n
6 2 6 5 2 5 5 4 2
+ 64 n z + 80 n z + 1728 n z + 2160 n z + 432 n + 18748 n z
4 4 3 2 3 3
+ 23624 n z + 4732 n + 26856 n + 104184 z n + 133632 z n
2 2 2 2 2
+ 311701 z n + 411698 z n + 83185 n + 475425 n z + 655146 z n
2
+ 133389 n + 86670 + 288750 z + 421428 z)
(This needs several minutes.)
Improved method that returns an operator of order 3.
> GCD:=subs(n=n+1,skewgcdex(subs(n=n-1,Q2),M,Dz,A)):
> U:=collect(GCD[2],Dz,factor);
3 3 2 2
U := 4 z (z + 1) Dz + 3 z (z n + 9 z + n + 5) Dz
2 2 3 2
- z (-9 - 2 n - 7 n + 6 z n + 3 z n - 31 z) Dz + n + 3 n + 3 n + 1
3 2
- 24 z n - 4 z - 5 z n - 21 z n
> factor(GCD[1]);
5
(n + 1)
We reduce U&*P/GCD[1] modulo M.
> PR:=collect(opprod(U,P2,A),Dz,factor):
> PDIV:=skewpdiv(PR,M,Dz,A):
bytes used=554920624, alloc=12580608, time=230.55
Therefore, H=Sn is
> R:=collect(PDIV[3]/PDIV[1]/GCD[1],Dz,factor);
3 3 2 2
z (z + 1) Dz z (2 z n + 2 n + 11 + 14 z) Dz
R := 12 -------------- + 4 --------------------------------
3 3
(n + 1) (n + 1)
2 2
z (5 z n - n - 4 n + 2 z n - 9 z - 6) Dz 16 z n - n + 4 z - 1
- 4 ------------------------------------------ - --------------------
3 n + 1
(n + 1)
(Fraction-free) Gaussian elimination:
> T[1]:=[1,1]:
> T[Sn]:=[numer(R),denom(R)]:
> T[Sn^2]:=[opprod(subs(n=n+1,"[1]),numer(R),A),subs(n=n+1,"[2])*denom(R)]:
> T[Sn^3]:=[opprod(subs(n=n+1,"[1]),numer(R),A),subs(n=n+1,"[2])*denom(R)]:
> T[Sn^4]:=[opprod(subs(n=n+1,"[1]),numer(R),A),subs(n=n+1,"[2])*denom(R)]:
bytes used=556924256, alloc=12580608, time=231.16
> skewpdiv(T[Sn^2][1],M,Dz,A):
> T[Sn^2]:=["[3],T[Sn^2][2]*"[1]]:
> skewpdiv(T[Sn^3][1],M,Dz,A):
bytes used=558924688, alloc=12580608, time=231.86
> T[Sn^3]:=["[3],T[Sn^3][2]*"[1]]:
> skewpdiv(T[Sn^4][1],M,Dz,A):
bytes used=561003544, alloc=12580608, time=232.55
bytes used=563016856, alloc=12580608, time=233.22
bytes used=565017232, alloc=12580608, time=233.88
> T[Sn^4]:=["[3],T[Sn^4][2]*"[1]]:
> Z:=collect(add(eta[i]*T[Sn^i][1]/T[Sn^i][2],i=0..4),Dz,numer@normal):
bytes used=567054168, alloc=12580608, time=234.52
> SOL:=solve({coeffs(Z,Dz)},{seq(eta[i],i=0..4)}):
bytes used=569087904, alloc=12580608, time=235.88
bytes used=571088272, alloc=12580608, time=237.07
bytes used=575032120, alloc=12580608, time=238.34
bytes used=583929984, alloc=13628992, time=240.66
The contiguity relation of order 4 is:
> C[4]:=collect(primpart(subs(SOL,add(eta[i]*Sn^i,i=0..4)),Sn),Sn,factor);
bytes used=585930576, alloc=13628992, time=241.78
C[4] :=
3 2 2 4
(n + 3) (2 n + 3) (n + 4) (16 z n + 4 n + 64 z n + 16 n + 63 z + 15) Sn
4 4 2 4 3
+ (2 n + 3) (n + 3) (2 n + 7) (32 n z + 256 n z - 8 n - 88 n
3 2 3 2 2 2 2
+ 352 z n + 2816 z n + 11344 z n + 1418 z n - 350 n - 591 n
2 2 3
+ 19752 n z + 2445 z n + 12516 z + 1482 z - 354) Sn + (2 n + 5) (
5 5 2 3 2 2
10735 n + 12960 n z + 360 n + 1210240 z n + 11997 n + 745500 z
3 2 2 4 6 2 4
+ 6940 n + 2141280 z n + 79354 n z + 4096 n z + 2194 n
2 6 3 2 6
+ 445305 z n + 407275 z n + 24 n + 2162304 z n + 864 n z
3 2 3 3 3
+ 2011520 z n + 1978400 n z + 253540 z n + 151522 z + 1216000 z n
3 6 3 4 2 5 3 4 3
+ 764400 z + 4096 n z + 377024 n z + 61440 n z + 377600 n z
5 2 2 4 4
+ 61440 n z + 3886) Sn + (2 n + 3) (n + 2) (2 n + 7) (32 n z - 8 n
4 2 3 3 2 3 2 2
+ 256 n z + 288 z n - 72 n + 2304 z n + 938 z n - 230 n
2 2 2 2
+ 7504 z n + 1335 z n - 309 n + 10488 n z + 5356 z + 707 z - 149) Sn
3 2 2
+ (2 n + 7) (n + 2) (n + 1) (16 z n + 4 n + 24 n + 96 z n + 143 z + 35)
>
Section 1.4.4 Sylvester's dialytic elimination
> A:=Ore_algebra(shift=[Sn,n],shift=[Sm,m],comm={alpha,x},polynom=m);
A := Ore_algebra
> skewelim(op(hypergeomtoholon(
> (-1)^m*GAMMA(alpha+n-m)/m!/(n-2*m)!*(2*x)^(n-2*m),A)),m,A);
2 2
2 x Sn n Sm + 2 x Sn Sm + 2 x Sn Sm alpha - Sn n Sm - n - 2 Sn Sm - 2 alpha
> map(collect,series(",Sm=1),Sn,factor);
2
((-n - 2) Sn + 2 (n + 1 + alpha) x Sn - n - 2 alpha) +
2
((-n - 2) Sn + 2 (n + 1 + alpha) x Sn) (Sm - 1)
>
Section 1.5. First example (Jacobi polynomials)
> A:=Ore_algebra(comm={a,b},shift=[Sn,n],diff=[Dx,x]):
> G:=[2*(n+2)*(n+a+b+2)*(2*n+a+b+2)*Sn^2
> -((2*n+a+b+3)*(a^2-b^2)+(2*n+a+b+2)
> *(2*n+a+b+3)*(2*n+a+b+4)*x)*Sn
> +2*(n+a+1)*(n+b+1)*(2*n+a+b+4),
> (2*n+a+b+2)*(1-x^2)*Dx*Sn-(n+1)
> *(a-b-(2*n+a+b+2)*x)*Sn-2*(n+a+1)*(n+b+1)]:
> T:=termorder(A,plex=[Sn,Dx]):
bytes used=587251296, alloc=13628992, time=242.45
bytes used=587277920, alloc=13628992, time=242.58
> remove(has,gbasis(G,T),Sn);
bytes used=589285976, alloc=13628992, time=243.52
bytes used=591296912, alloc=13628992, time=244.32
2 2 2 2
[Dx x + Dx a x + Dx b x + 2 Dx x - n a + Dx a - n - n b - Dx - n - Dx b]
>
Section 2.2.2. Example of addition of partial finite functions
With rectangular systems.
> A:=Ore_algebra(diff=[Dx,x],diff=[Dy,y],comm={mu,nu}):
> T:=termorder(A,tdeg=[Dx,Dy]):
bytes used=591823128, alloc=13628992, time=244.60
bytes used=591846856, alloc=13628992, time=244.74
> GL[f]:=gbasis([Dx-mu,Dy-nu],T);
GL[f] := [Dy - nu, Dx - mu]
> GL[g]:=gbasis([x^2*Dx^2+x*Dx+x^2-mu^2,y^2*Dy^2+y*Dy+y^2-nu^2],T);
2 2 2 2 2 2 2 2
GL[g] := [y Dy + y Dy + y - nu , Dx x + Dx x + x - mu ]
Patch a bug in this version.
> A[indet]:=A[all_indets]:
> collect(dependency(f(x,y)+g(x,y),x,3,GL,T),Dx,factor);
2 2 2 2 2 3
x (mu x + x + mu x - mu ) Dx
3 3 3 2 3 2 2
- x (mu x + mu x - x - 2 mu x - mu x + 3 mu ) Dx
4 2 3 3 2 2 4 2 2 4 4 2
+ (-mu x - mu x - 4 mu x + mu - mu + mu x + x - x ) Dx
4 2 4 3 2 2 2 4 2 3 4 2
- mu (x + mu x + mu x - x - 2 mu x - mu x - 3 mu x + mu - mu )
> collect(dependency(f(x,y)+g(x,y),y,3,GL,T),Dy,factor);
bytes used=593853480, alloc=13628992, time=245.81
2 2 2 2 2 3
y (nu y + y + nu y - nu ) Dy
2 3 3 3 2 3 2
- y (3 nu + nu y - nu y - 2 nu y - y + nu y ) Dy
2 4 3 3 4 2 2 2 2 4 4 2
+ (-nu + nu - nu y + y - y - 4 nu y + nu y - nu y ) Dy
4 2 4 3 2 2 2 4 2 3 4 2
- nu (y + nu y + nu y - y - 2 nu y - nu y - 3 nu y + nu - nu )
Using the FGLM algorithm:
> collect(hsum([[GL[f],T],[GL[g],T]],T),{Dx,Dy},distributed,factor);
bytes used=594455120, alloc=13628992, time=246.25
bytes used=594493840, alloc=13628992, time=246.41
bytes used=596538096, alloc=13628992, time=247.35
2 2 2 2 2 3
[y (nu y + y + nu y - nu ) Dy
2 3 3 3 2 3 2
- y (3 nu + nu y - nu y - 2 nu y - y + nu y ) Dy
2 4 3 3 4 2 2 2 2 4 4 2
+ (-nu + nu - nu y + y - y - 4 nu y + nu y - nu y ) Dy
4 2 4 3 2 2 2 4 2 3 4 2
- nu (y + nu y + nu y - y - 2 nu y - nu y - 3 nu y + nu - nu ),
2 2
-mu (y - nu) (y + nu) + (y - nu) (y + nu) Dx - mu y Dy - mu y Dy
2 2 2 2 2 2 2 2 2 2
+ Dx y Dy + Dx y Dy , x mu y - x mu nu + x y mu - x nu mu
2 2 2 2 2 2 2 2
- nu y x + nu y mu - nu y x + nu y mu
2 2 2 2 2 2 2 2 2 2
- x (nu y + y + nu y - nu ) Dx + y (mu x + x + mu x - mu ) Dy
2 2 2 2 2 2 2 2 2 2
+ y (mu x + x + mu x - mu ) Dy - x (nu y + y + nu y - nu ) Dx ]
By intersection of ideals.
> A:=Ore_algebra(diff=[Dx,x],diff=[Dy,y],comm={mu,nu,t}):
> T:=termorder(A,lexdeg=[[t],[Dx,Dy]]):
bytes used=598038240, alloc=13628992, time=248.16
bytes used=598076840, alloc=13628992, time=248.32
> G:=[t*(Dx-mu),t*(Dy-nu),(1-t)*(x^2*Dx^2+x*Dx+x^2-mu^2),
> (1-t)*(y^2*Dy^2+y*Dy+y^2-nu^2)];
2 2 2 2
G := [t (Dx - mu), t (Dy - nu), (1 - t) (Dx x + Dx x + x - mu ),
2 2 2 2
(1 - t) (y Dy + y Dy + y - nu )]
> GB:=gbasis(G,T):
bytes used=600081752, alloc=13628992, time=249.24
> collect(remove(has,GB,t),{Dx,Dy},distributed,factor);
2 2 2 3 4 2 4 2 4 4 3 2
[-nu (-nu - 2 nu y + nu y - nu y + nu + nu y + y - 3 nu y - y )
2 3 3 3 3 2 2
- y (-y + nu y - nu y + nu y - 2 nu y + 3 nu ) Dy
2 4 2 4 4 2 3 3 4 2 2 2
+ (-nu + y + nu y - nu y - nu y + nu - 4 nu y - y ) Dy
2 2 2 2 2 3
+ y (nu y + y + nu y - nu ) Dy , -mu (y - nu) (y + nu)
2 2 2 2
+ (y - nu) (y + nu) Dx - mu y Dy - mu y Dy + Dx y Dy + Dx y Dy,
2 2 2 2 2 2 2 2 2 2 2 2 2 2
x mu y - x mu nu + x y mu - x nu mu - nu y x + nu y mu
2 2 2 2 2 2
- nu y x + nu y mu - x (nu y + y + nu y - nu ) Dx
2 2 2 2 2 2 2 2 2 2
+ y (mu x + mu x - mu + x ) Dy + y (mu x + mu x - mu + x ) Dy
2 2 2 2 2 2
- x (nu y + y + nu y - nu ) Dx ]
>
Section 3.2. Example of creative telescoping by Groebner bases
> A:=Ore_algebra(comm={a,b},shift=[Sn,n],diff=[Dx,x],diff=[Dy,y]):
> G:=[2*(n+2)*(n+a+b+2)*(2*n+a+b+2)*Sn^2
> -y*(2*n+a+b+3)*(a^2-b^2+4*x*n^2+4*x*n*a+4*x*n*b
> +12*x*n+x*a^2+2*x*a*b+6*x*a+x*b^2+6*x*b+8*x)*Sn
> +2*(n+a+1)*(n+b+1)*(2*n+a+b+4)*y^2,
> -2*(n+a+1)*(n+b+1)*y+(n+1)*(-a+b+2*x*n+x*a+x*b+2*x)*Sn
> -(x-1)*(x+1)*(2*n+a+b+2)*Dx*Sn,
> n*(n+a+b+1)+(b-a-x*a-x*b-2*x)*Dx-(x-1)*(x+1)*Dx^2,
> y*Dy-n]:
> T:=termorder(A,lexdeg=[[n],[Sn,Dx,Dy]]):
bytes used=601675232, alloc=13628992, time=250.10
bytes used=601718048, alloc=13628992, time=250.25
> GB:=gbasis(G,T):
bytes used=603718536, alloc=13628992, time=251.20
bytes used=605719616, alloc=13628992, time=252.05
bytes used=607721032, alloc=13628992, time=252.93
bytes used=609721584, alloc=13628992, time=253.82
bytes used=611722000, alloc=13628992, time=254.65
> CT:=collect(subs(Sn=1,GB[2..6]),[Dx,Dy],distributed,factor);
2 2
CT := [(b - a - x a - x b - 2 x) Dx + y Dy + y (2 + a + b) Dy
2
- (x - 1) (x + 1) Dx , 2 y (1 + b) (1 + a) + (x - 1) (x + 1) (a + b) Dx
2 2
- 2 y (-y + x) Dy
- y (-2 y a - 2 y b - 6 y + x a + 2 x + x b - a + b) Dy
+ 2 y (x - 1) (x + 1) Dy Dx,
2 y (1 + b) (1 + a) (2 x a + a + 2 x b - b + 2 x)
2 2
+ (x - 1) (x + 1) (4 y + 4 y a b + 4 y a + 4 y b - a + b ) Dx
2 2
+ 2 y (4 y x a + y a + 4 y x b + 12 y x - y b - 3 b - 6 - 3 a) Dy + y (
2 2 2
2 y a + 24 y x b + 12 y x a b - 2 y b - 6 y b + 6 y a + 4 x b y
2 2 2 2
+ 24 y x a + 28 y x + 4 x a y - 4 - b - x b - 6 a - 6 a b - 6 b + x a
2 2
- a ) Dy + 4 y (x - 1) (x + 1) (3 + a + b) Dy Dx
3 2 3 3
+ 4 y (x - 1) (x + 1) Dy Dx + 4 y (y x - 1) Dy , -2 x + 2 y - a + b
2 2 2 2
- 3 x a - x b - x a - 3 x b + b + 2 y b + 2 y a - 2 x a b - a
2 2
+ 2 y a b - 2 (x - 1) (x + 1) Dx - 2 y (-y + 2 y x - 1) Dy
2 2 2
+ (2 + 2 b - 4 y x a - 4 y x b + 2 a + 2 y b + 2 y a - 8 y x + 6 y ) Dy,
2 2 2 2
y (-x b - x b + x a + b + a + b + x a + a)
+ (x - 1) (x + 1) (a + b + y a - y b) Dx
+ y (-y x b + y a + y b + y x a - x a + b - x b - a) Dy]
> R:=sqrt(1-2*x*y+y^2): P:=1/(R*(1-y+R)^a*(1+y+R)^b):
> map(simplify,map(applyopr,CT,P,A));
bytes used=613722544, alloc=13628992, time=255.70
bytes used=615778320, alloc=13628992, time=256.70
bytes used=617919744, alloc=13628992, time=257.55
bytes used=619931992, alloc=13628992, time=258.62
bytes used=621947392, alloc=13628992, time=259.35
bytes used=624132344, alloc=13628992, time=260.25
bytes used=626132848, alloc=13628992, time=261.36
bytes used=628133296, alloc=13628992, time=262.61
bytes used=630322056, alloc=13628992, time=263.65
bytes used=633743768, alloc=13628992, time=264.75
bytes used=635757752, alloc=13628992, time=265.54
bytes used=637763512, alloc=13628992, time=266.37
bytes used=639928280, alloc=13628992, time=267.28
bytes used=642028152, alloc=13628992, time=268.20
bytes used=644033208, alloc=13628992, time=269.09
bytes used=646849424, alloc=13628992, time=270.26
bytes used=650649600, alloc=14022136, time=271.69
bytes used=652654384, alloc=14022136, time=272.62
bytes used=654672264, alloc=14022136, time=273.40
bytes used=656688448, alloc=14022136, time=274.26
bytes used=658689784, alloc=14022136, time=275.13
bytes used=660738224, alloc=14022136, time=276.02
bytes used=662771800, alloc=14022136, time=276.98
bytes used=665084040, alloc=14022136, time=278.03
bytes used=667997440, alloc=14546328, time=279.21
bytes used=670018776, alloc=14546328, time=280.42
bytes used=672543128, alloc=14546328, time=281.45
bytes used=686413816, alloc=18739864, time=286.60
bytes used=689634616, alloc=20312440, time=288.41
bytes used=694488168, alloc=23981784, time=291.33
bytes used=696502840, alloc=23981784, time=292.62
bytes used=698592344, alloc=23981784, time=293.44
[0, 0, 0, 0, 0]
>
Section 3.3. Extension of Takayama's algorithm for definite integral
to definite anti-partial
> hdefsum(G,n=vanishing,A):
bytes used=699984736, alloc=23981784, time=294.15
bytes used=700027552, alloc=23981784, time=294.34
bytes used=700106216, alloc=23981784, time=294.52
bytes used=700144816, alloc=23981784, time=294.70
bytes used=702177432, alloc=23981784, time=295.66
> map(collect,",{Dx,Dy},distributed,factor);
2 2 2
[(a + x b + x a + 2 x - b) Dx - y Dy - y (2 + a + b) Dy + (x - 1) (x + 1) Dx
2 2
, 2 y (1 + b) (1 + a) + (x - 1) (x + 1) (a + b) Dx - 2 y (-y + x) Dy
- y (-2 y a - 2 y b - 6 y + x a + 2 x + x b - a + b) Dy
+ 2 y (x - 1) (x + 1) Dy Dx,
-2 y (1 + b) (1 + a) (-y a - y b - 6 y + a + 2 x a - b + 2 x b + 2 x)
2 2 2 2 2
+ (x - 1) (x + 1) (-2 y a b - 4 y - b + y b + y a + a ) Dx - 2 y
2 2 2 2
(-16 y - 3 y b - 3 y a + 6 y x b + 6 y x a + 22 y x - 6 - 3 a - 3 b) Dy
2 2 2 2 2 2 2 2
- y (-52 y - 26 y b - 2 y a - 2 y b - 8 y a b - 26 y a + 40 y x
2 2 2 2
+ 14 y x a b + 5 x a y + y a - y b + 32 y x a + 5 x b y + 32 y x b - 4
2 2 2 2
- a - b - 6 a - 6 b - x b + x a - 6 a b) Dy
3 2 3
- 4 y (-y + 2 y x - 1) Dy ]
bytes used=704203112, alloc=23981784, time=296.60
The algebra defined by
A:=orealg(comm=[a,b,n],diff=[Dx,x],diff=[Dy,y]):
is used internally only.
>
Section 3.4.1. An identity between Franel and Apery numbers
Operator for the left-hand side.
> A:=shift_algebra([Sn,n],[Sk,k]):
> P1:=collect(op(
> hdefsum(hypergeomtoholon(binomial(n,k)^2*binomial(n+k,k)^2,A),
> k=vanishing,A)),Sn,factor);
bytes used=704317224, alloc=23981784, time=296.81
bytes used=704355824, alloc=23981784, time=297.00
bytes used=704433984, alloc=23981784, time=297.18
bytes used=704468392, alloc=23981784, time=297.37
bytes used=706468848, alloc=23981784, time=298.32
3 2 2 3
P1 := -(n + 2) Sn + (2 n + 3) (17 n + 51 n + 39) Sn - (n + 1)
Operator for the right-hand side.
> B:=shift_algebra([Sk,k],[Sj,j]):
> hdefsum(hypergeomtoholon(binomial(k,j)^3,B),
> j=vanishing,B);
bytes used=707530648, alloc=23981784, time=298.93
bytes used=707569248, alloc=23981784, time=299.11
bytes used=707645592, alloc=23981784, time=299.31
bytes used=707680000, alloc=23981784, time=299.49
2 2 2 2 2 2
[7 Sk k + 21 Sk k + 16 Sk + 8 k + 16 k + 8 - Sk k - 4 Sk k - 4 Sk ]
> T:=termorder(A,tdeg=[Sn,Sk]):
bytes used=709445120, alloc=23981784, time=300.40
bytes used=709468848, alloc=23981784, time=300.57
> [gbasis([op(""),Sn-1],T),T];
[[Sn - 1,
2 2 2 2 2 2
7 Sk k + 21 Sk k + 16 Sk + 8 k + 16 k + 8 - Sk k - 4 Sk k - 4 Sk ],
term_order]
> [gbasis(hypergeomtoholon(binomial(n,k)*binomial(n+k,k),A),T),T];
2 2 2
[[2 Sk k + Sk + Sk k - n - n + k + k , Sn n + Sn - Sn k - n - 1 - k],
term_order]
> P2:=collect(op(hdefsum(hprod(["","],T),k=vanishing,A)),Sn,factor);
bytes used=709861104, alloc=23981784, time=300.90
bytes used=709885072, alloc=23981784, time=301.08
bytes used=709971200, alloc=23981784, time=301.28
bytes used=709995168, alloc=23981784, time=301.46
bytes used=711997664, alloc=23981784, time=302.47
bytes used=714002440, alloc=23981784, time=303.45
bytes used=716002784, alloc=23981784, time=304.46
3 4
P2 := -(n + 3) (2 n + 3) (n + 4) Sn
2 3
+ (2 n + 7) (2 n + 3) (n + 3) (18 n + 125 n + 218) Sn
4 3 2 2
- (2 n + 5) (70 n + 700 n + 2559 n + 4045 n + 2318) Sn
2
+ (2 n + 7) (2 n + 3) (n + 2) (18 n + 55 n + 43) Sn
3
- (2 n + 7) (n + 2) (n + 1)
Proof of the identity
> GCD:=skewgcdex(P1,P2,Sn,A);
2 3 2 3 3 2 2 2
GCD := [-1 - 3 n + 117 Sn - Sn n - 3 n - n + 34 Sn n - 6 Sn n - 12 Sn n
2 2
+ 153 Sn n + 231 Sn n - 8 Sn , 1, 0,
2 2 2 2 2 2
-14 - 2 Sn n - 9 Sn n - 9 Sn + 21 Sn + 4 Sn n + 20 Sn n - 2 n - 11 n,
1]
> collect(opprod(GCD[4],P1,A),Sn,factor);
3 4
(n + 3) (2 n + 3) (n + 4) Sn
2 3
- (2 n + 7) (2 n + 3) (n + 3) (18 n + 125 n + 218) Sn
4 3 2 2
+ (2 n + 5) (70 n + 700 n + 2559 n + 4045 n + 2318) Sn
2
- (2 n + 7) (2 n + 3) (n + 2) (18 n + 55 n + 43) Sn
3
+ (2 n + 7) (n + 2) (n + 1)
> seq(add(binomial(n,k)^2*binomial(n+k,k)^2,k=0..n),n=0..3);
1, 5, 73, 1445
> seq(add(binomial(n,k)*binomial(n+k,k)*
> add(binomial(k,j)^3,j=0..k),k=0..n),n=0..3);
1, 5, 73, 1445
Therefore both sides are equal and satisfy
> collect(GCD[1],Sn,factor);
3 2 2 3
-(n + 2) Sn + (2 n + 3) (17 n + 51 n + 39) Sn - (n + 1)
>
Section 3.4.2. A Rogers-Ramanujan identity
> A:=Ore_algebra(comm=q,qshift=[Sn,qn,q],qshift=[Sk,qk,q]):
> h:=q^(k^2)/qfactorial(k)/qfactorial(n-k);
2
(k )
q
h := -------------------------------------
qfactorial[q](k) qfactorial[q](n - k)
> G:=collect(numer(subs({q^n=qn,q^k=qk},normal(
> [Sn-subs(n=n+1,h)/h,Sk-subs(k=k+1,h)/h],expanded))),{Sn,Sk},factor);
2
G := [(-qk + q qn) Sn + qk, (-qk + qn) (-1 + qk q) Sk - qk q (-qk + qn) ]
> collect(op(hdefqsum(expand(G),qk=vanishing,A)),Sn,factor);
bytes used=717235880, alloc=23981784, time=305.20
bytes used=717274480, alloc=23981784, time=305.41
bytes used=717355912, alloc=23981784, time=305.61
bytes used=717390320, alloc=23981784, time=305.82
3 3 2 4 2 2 3 2 2
-(q - 1) (q qn - 1) Sn - q (-qn + q qn + q qn + 1 - q qn - q qn ) Sn
2 2 3 2
+ (1 + q - q qn + q qn ) Sn - q
> quit
bytes used=718942840, alloc=23981784, time=306.42