|  |  7.5.18.0. elimWeight Procedure from libraryncpreim.lib(see  ncpreim_lib).
 
Example:Usage:
elimWeight(v); v an intvec
Assume:
The basering is a G-algebra.
The entries of v are in the range 1..nvars(basering) and the
corresponding variables generate an admissible subalgebra.
 
Return:
intvec, say w, such that the ordering (a(w),<), where < is
any admissible global ordering, is an elimination ordering
for the subalgebra generated by the variables indexed by the
entries of the given intvec.
Note:
If no such ordering exists, the zero intvec is returned.
Remark:
Reference: (BGL), (GML)
 |  | LIB "ncpreim.lib";
// (Lev): Example 2
ring r = 0,(a,b,x,d),Dp;
matrix D[4][4];
D[1,2] = 3*a;  D[1,4] = 3*x^2;  D[2,3] = -x;
D[2,4] = d;    D[3,4] = 1;
def A = nc_algebra(1,D);
setring A; A;
==> // coefficients: QQ
==> // number of vars : 4
==> //        block   1 : ordering Dp
==> //                  : names    a b x d
==> //        block   2 : ordering C
==> // noncommutative relations:
==> //    ba=ab+3a
==> //    da=ad+3x2
==> //    xb=bx-x
==> //    db=bd+d
==> //    dx=xd+1
// Since d*a-a*d = 3*x^2, any admissible ordering has to satisfy
// x^2 < a*d, while any elimination ordering for {x,d} additionally
// has to fulfil a << x and a << d.
// Hence neither a block ordering with weights
// (1,1,1,1) nor a weighted ordering with weight (0,0,1,1) will do.
intvec v = 3,4;
elimWeight(v);
==> 0,0,1,2
 | 
 
 |