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