|
7.5.3.0. findAuto
Procedure from library involut.lib (see involut_lib).
- Usage:
- findAuto(n); n an integer
- Return:
- a ring together with a list of pairs L, where
L[i][1] = 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:
- computes the ideal of linear automorphisms of the basering, given by a matrix, n-th power of which gives identity (i.e. unipotent matrix)
- Note:
- if n=0, a matrix, defining an automorphism is not assumed to be unipotent but just non-degenerate. A nonzero parameter
@p is introduced as the value of the determinant of the matrix above.
For convenience, the full ideal of relations idJ and the initial matrix with indeterminates matD are mutually exported in the output ring
Example:
| LIB "involut.lib";
def a = makeWeyl(1);
==> // characteristic : 0
==> // number of vars : 2
==> // block 1 : ordering dp
==> // : names x D
==> // block 2 : ordering C
==> // noncommutative relations: ...
setring a; // this algebra is a first Weyl algebra
def X = findAuto(2);
==> // characteristic : 0
==> // number of vars : 6
==> // block 1 : ordering dp
==> // : names x D a11 a12 a21 a22
==> // block 2 : ordering C
==> // noncommutative relations: ...
setring X; // ring with new variables - unknown coefficients
size(L); // we have (size(L)) families in the answer
==> 3
// look at matrices, defining linear automorphisms:
print(L[1][2]); // a first one: we see it is the identity
==> -1,0,
==> 0, -1
print(L[2][2]); // and a second possible matrix; it is diagonal
==> 1,0,
==> 0,1
// L; // we can take a look on the whole list, too
kill X; kill a;
//----------- find all the linear automorphisms --------------------
//----------- use the call findAuto(0) --------------------
ring r = 0,(x,s),dp;
nc_algebra(1,s); // the shift algebra
==> // characteristic : 0
==> // number of vars : 2
==> // block 1 : ordering dp
==> // : names x s
==> // block 2 : ordering C
==> // noncommutative relations: ...
s*x; // the only relation in the algebra is:
==> xs
def Y = findAuto(0);
==> // characteristic : 0
==> // number of vars : 6
==> // block 1 : ordering dp
==> // : names x s a11 a12 a21 a22
==> // block 2 : ordering C
==> // noncommutative relations: ...
setring Y;
size(L); // here, we have 1 parametrized family
==> 1
print(L[1][2]); // here, @p is a nonzero parameter
==> a11,a12,
==> a21,a22
| findInvo
|