Changeset 28734e in git


Ignore:
Timestamp:
Feb 21, 2009, 4:26:42 PM (14 years ago)
Author:
Viktor Levandovskyy <levandov@…>
Branches:
(u'spielwiese', '828514cf6e480e4bafc26df99217bf2a1ed1ef45')
Children:
019a78d9b792cb277c1ba4090e9edfa00c9d19fe
Parents:
40b31de81774f2cb2360815a1a5e3b8c608dd76f
Message:
*levandov: stuff for rational Groebner bases updated


git-svn-id: file:///usr/local/Singular/svn/trunk@11426 2c84dea3-7e68-4137-9b89-c4e89433aadc
Location:
Singular/LIB
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • Singular/LIB/dmodapp.lib

    r40b31de r28734e  
    11//////////////////////////////////////////////////////////////////////////////
    2 version="$Id: dmodapp.lib,v 1.18 2009-02-12 20:25:23 levandov Exp $";
     2version="$Id: dmodapp.lib,v 1.19 2009-02-21 15:26:41 levandov Exp $";
    33category="Noncommutative";
    44info="
     
    595595{
    596596  // Appel F1, d = b', SST p.48
    597   ring @r = (0,a,b,c,d),(x,y,Dx,Dy),(a(0,0,1,1),dp);
     597  ring @r = (0,a,b,c,d),(x,y,Dx,Dy),(a(0,0,1,1),a(0,0,1,0),dp);
    598598  matrix @D[4][4];
    599599  @D[1,3]=1; @D[2,4]=1;
     
    611611{
    612612  "EXAMPLE:"; echo = 2;
    613   ring r = 0,x,dp;
    614613  def A = appelF1();
    615614  setring A;
     
    626625{
    627626  // Appel F2, c = b', SST p.85
    628   ring @r = (0,a,b,c),(x,y,Dx,Dy),(a(0,0,1,1),dp);
     627  ring @r = (0,a,b,c),(x,y,Dx,Dy),(a(0,0,1,1),a(0,0,1,0),dp);
    629628  matrix @D[4][4];
    630629  @D[1,3]=1; @D[2,4]=1;
     
    641640{
    642641  "EXAMPLE:"; echo = 2;
    643   ring r = 0,x,dp;
    644642  def A = appelF2();
    645643  setring A;
     
    656654{
    657655  // Appel F4, d = c', SST, p. 39
    658   ring @r = (0,a,b,c,d),(x,y,Dx,Dy),(a(0,0,1,1),dp);
     656  ring @r = (0,a,b,c,d),(x,y,Dx,Dy),(a(0,0,1,1),a(0,0,1,0),dp);
    659657  matrix @D[4][4];
    660658  @D[1,3]=1; @D[2,4]=1;
     
    671669{
    672670  "EXAMPLE:"; echo = 2;
    673   ring r = 0,x,dp;
    674671  def A = appelF4();
    675672  setring A;
  • Singular/LIB/ratgb.lib

    r40b31de r28734e  
    11//////////////////////////////////////////////////////////////////////////////
    2 version="$Id: ratgb.lib,v 1.13 2009-01-14 16:07:05 Singular Exp $";
     2version="$Id: ratgb.lib,v 1.14 2009-02-21 15:26:42 levandov Exp $";
    33category="Noncommutative";
    44info="
    5 LIBRARY: ratgb.lib  Groebner bases in Ore localizations
     5LIBRARY: ratgb.lib  Groebner bases in Ore localizations of noncommutative G-algebras
    66AUTHOR: Viktor Levandovskyy,     levandov@risc.uni-linz.ac.at
     7
     8THEORY: Let A be an operator algebra with R = K[x1,.,xN] as subring. The operators
     9are usually denoted by {d1,..,dM}. Assume, that A is a G-algebra, then the set S=R-{0}
     10is multiplicatively closed and is an Ore set in A. That is, for any s in S and a in A,
     11there exist t in S and b in A, such that sa=bt. In other words one can transform
     12any left fraction into the right fraction. The algebra A_S is entermed an Ore
     13localization of A with respect to S. This library provides Groebner basis
     14procedure for A_S, performing polynomial computations only.
    715
    816PROCEDURES:
     
    1321
    1422LIB "poly.lib";
     23LIB "dmodapp.lib"; // for Appel1, Appel2, Appel4
    1524
    1625//static
     
    5362@* the first block of length n contains the elements
    5463@*     with respect to which one localizes,
    55 @* the basering is equipped with the elimination ordering
     64@* the basering is equipped with the elimination block ordering
    5665@*     for the variables in the second block
    5766NOTE: the output ring O is commutative. The ideal rGBid in O
     
    6069vector space D-dimension of I are computed and printed out.
    6170@* Setting optional integer eng to 1, slimgb is taken as Groebner engine
    62 TRACING: In order to see the steps of the computation, set printlevel to >=2
     71DISPLAY: In order to see the steps of the computation, set printlevel to >=2
    6372EXAMPLE: example ratstd; shows examples
    6473"
     
    150159  RL[2] = tmp1;
    151160
    152   // assume the ordering is the block with (a(0:is),ORD)
    153   // set up ORD as the ordering
     161  // old: assume the ordering is the block with (a(0:is),ORD)
     162  // old :set up ORD as the ordering
    154163  //  L; "RL:"; RL;
    155164  if (size(L[3]) != 3)
    156165  {
    157     "note: strange ordering";
    158   }
    159   kill tmp2; list tmp2;
    160   tmp2[1] = L[3][2];
    161   tmp2[2] = L[3][3];
    162   RL[3]   = tmp2;
    163 
     166    //"note: strange ordering";
     167    // NEW assume: ordering is the antiblock with (a(0:is),a(*1),a(*), ORD)
     168    // get the a() parts after is => they should form a complete D-ordering
     169    list L3 = L[3]; list NL3; kill tmp3; list tmp3;
     170    int @sl = size(L3);
     171    int w=1; int z; intvec va,vb;
     172    while(L3[w][1] == "a")
     173    {
     174      va = L3[w][2];
     175      for(z=1;z<=nvars(save)-is;z++)
     176      {
     177        vb[z] = va[is+z];
     178      }
     179      tmp3[1] = "a";
     180      tmp3[2] = vb;
     181      NL3[w] = tmp3; tmp3=0;
     182      w++;
     183    }
     184    // check for completeness: must be >= nvars(save)-is rows
     185    if (w < nvars(save)-is)
     186    {
     187      "note: ordering is incomplete on D. Adding lower Dp block";
     188      // adding: positive things like Dp
     189      tmp3[1]= "Dp";
     190      for (z=1; z<=nvars(save)-is; z++)
     191      {
     192        va[is+z] = 1;
     193      }
     194      tmp3[2] = va;
     195      NL3[w] = tmp3; tmp3 = 0;
     196      w++;
     197    }
     198    NL3[w] = L3[@sl]; // module ord?
     199    RL[3] = NL3;
     200  }
     201  else
     202  {
     203    kill tmp2; list tmp2;
     204    tmp2[1] = L[3][2];
     205    tmp2[2] = L[3][3];
     206    RL[3]   = tmp2;
     207  }
    164208  // factor ideal is ignored
    165209  RL[4] = ideal(0);
     210
     211  //  "ringlist:"; RL;
    166212
    167213  def @RAT = ring(RL);
     
    284330{
    285331  "EXAMPLE:"; echo = 2;
    286   ring r = 0,(k,n,K,N),(a(0,1),dp);
    287   matrix D[4][4];
    288   D[1,3] = K;
    289   D[2,4] = N;
     332  ring r = 0,(k,n,K,N),(a(0,0,1,1),a(0,0,1,0),dp);
     333  matrix D[4][4]; D[1,3] = K; D[2,4] = N;
    290334  def S = nc_algebra(1,D);
    291   setring S;
     335  setring S; // S is the 2nd shift algebra
    292336  ideal I = (k+1)*K - (n-k), (n-k+1)*N - (n+1);
    293   int is = 1;
     337  int is = 2; // hence 1st and 2nd variables treated as units
    294338  def A  = ratstd(I,is);
    295339  pGBid; // polynomial form
     
    298342}
    299343
    300 static proc exParam()
     344/*
     345proc exParamAppelF4()
    301346{
    302347  // Appel F4
    303348  LIB "ratgb.lib";
    304   ring r = (0,a,b,c,d),(x,y,Dx,Dy),(a(0,0,1,1),dp);
     349  ring r = (0,a,b,c,d),(x,y,Dx,Dy),(a(0,0,1,1),a(0,0,1,0),dp);
    305350  matrix @D[4][4];
    306351  @D[1,3]=1; @D[2,4]=1;
     
    314359  setring A;
    315360  rGBid; // rational form
    316 }
     361  // hence, the K(x,y) basis is {1,Dx,Dy,Dy^2}
     362}
     363
     364// more examples:
     365
     366// F1 is hard
     367appel F1
     368{
     369  LIB "dmodapp.lib";
     370  LIB "ratgb.lib";
     371  def A = appelF1();
     372  setring A;
     373  IAppel1;
     374  def F1 = ratstd(IAppel1,2);
     375  lead(pGBid);
     376  setring F1; rGBid;
     377}
     378
     379// F2 is much easier
     380appel F2
     381{
     382  LIB "dmodapp.lib";
     383  LIB "ratgb.lib";
     384  def A = appelF2();
     385  setring A;
     386  IAppel2;
     387  def F1 = ratstd(IAppel2,2);
     388  lead(pGBid);
     389  setring F1; rGBid;
     390}
     391
     392// F4 is feasible
     393appel F4
     394{
     395  LIB "dmodapp.lib";
     396  LIB "ratgb.lib";
     397  def A = appelF4();
     398  setring A;
     399  IAppel4;
     400  def F1 = ratstd(IAppel4,2);
     401  lead(pGBid);
     402  setring F1; rGBid;
     403}
     404
     405
     406*/
Note: See TracChangeset for help on using the changeset viewer.