# Singular

##### 7.7.9.0. findInvo
Procedure from library `involut.lib` (see involut_lib).

Usage:
findInvo();

Return:
a ring containing a list L of pairs, 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:
computed the ideal of linear 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 `idJ` and the initial matrix with indeterminates `matD` are exported in the output ring

Example:
 ```LIB "involut.lib"; def a = makeWeyl(1); setring a; // this algebra is a first Weyl algebra a; ==> // characteristic : 0 ==> // number of vars : 2 ==> // block 1 : ordering dp ==> // : names x D ==> // block 2 : ordering C ==> // noncommutative relations: ==> // Dx=xD+1 def X = findInvo(); setring X; // ring with new variables, corr. to unknown coefficients X; ==> // characteristic : 0 ==> // number of vars : 4 ==> // block 1 : ordering dp ==> // : names a11 a12 a21 a22 ==> // block 2 : ordering C L; ==> [1]: ==> [1]: ==> _[1]=a11+a22 ==> _[2]=a12*a21+a22^2-1 ==> [2]: ==> _[1,1]=-a22 ==> _[1,2]=a12 ==> _[2,1]=a21 ==> _[2,2]=a22 // look at the matrix in the new variables, defining the linear involution print(L[1][2]); ==> -a22,a12, ==> a21, a22 L[1][1]; // where new variables obey these relations ==> _[1]=a11+a22 ==> _[2]=a12*a21+a22^2-1 idJ; ==> idJ[1]=-a12*a21+a11*a22+1 ==> idJ[2]=a11^2+a12*a21-1 ==> idJ[3]=a11*a12+a12*a22 ==> idJ[4]=a11*a21+a21*a22 ==> idJ[5]=a12*a21+a22^2-1 ```