|
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);
setring a; // this algebra is a first Weyl algebra
def X = findAuto(2);
setring X; // ring with new variables - unknown coefficients
size(L); // we have (size(L)) families in the answer
==> 2
// 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;
ncalgebra(1,s); // the shift algebra
s*x; // the only relation in the algebra is:
==> xs+s
def Y = findAuto(0);
setring Y;
size(L); // here, we have 1 parametrized family
==> 1
print(L[1][2]); // here, @p is a nonzero parameter
==> 1,a12,
==> 0,(@p)
| findInvo
|