|\^/| 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