|  |  7.5.8.0. findInvoDiag Procedure from libraryinvolut.lib(see  involut_lib).
 
Example:Usage:
findInvoDiag();
Return:
a ring together with a list of pairs L, where
L[i][1] = ideal; a Groebner Basis of an i-th associated prime,
 L[i][2] = matrix, defining a linear map, with entries, reduced with respect to L[i][1]
 
Purpose:
compute homothetic (diagonal) involutions of the basering
Assume:
the relations on the algebra are of the form YX = XY + D, that is
the current ring is a G-algebra of Lie type.
Note:
for convenience, the full ideal of relations idJand the initial matrix with indeterminatesmatDare exported in the output ring
 See also:
 findInvo;
 involution.|  | LIB "involut.lib";
def a = makeWeyl(1);
setring a; // this algebra is a first Weyl algebra
a;
==> // coefficients: QQ considered as a field
==> // number of vars : 2
==> //        block   1 : ordering dp
==> //                  : names    x D
==> //        block   2 : ordering C
==> // noncommutative relations:
==> //    Dx=xD+1
def X = findInvoDiag();
setring X; // ring with new variables, corresponding to unknown coefficients
X;
==> // coefficients: QQ considered as a field
==> // number of vars : 2
==> //        block   1 : ordering dp
==> //                  : names    a11 a22
==> //        block   2 : ordering C
// print matrices, defining linear involutions
print(L[1][2]);  // a first matrix: we see it is constant
==> -1,0,
==> 0, 1 
print(L[2][2]);  // and a second possible matrix; it is constant too
==> 1,0,
==> 0,-1
L; // let us take a look on the whole list
==> [1]:
==>    [1]:
==>       _[1]=a22-1
==>       _[2]=a11+1
==>    [2]:
==>       _[1,1]=-1
==>       _[1,2]=0
==>       _[2,1]=0
==>       _[2,2]=1
==> [2]:
==>    [1]:
==>       _[1]=a22+1
==>       _[2]=a11-1
==>    [2]:
==>       _[1,1]=1
==>       _[1,2]=0
==>       _[2,1]=0
==>       _[2,2]=-1
idJ;
==> idJ[1]=a11*a22+1
==> idJ[2]=a11^2-1
==> idJ[3]=a22^2-1
 | 
 
 |