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

Usage:
findInvo();

Return:
a ring containing a list L of pairs, where
L[i] = ideal; a Groebner Basis of an i-th associated prime,
L[i] = matrix, defining a linear map, with entries, reduced with respect to L[i]

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; ==> // coefficients: QQ ==> // 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; ==> // coefficients: QQ ==> // number of vars : 4 ==> // block 1 : ordering dp ==> // : names a11 a12 a21 a22 ==> // block 2 : ordering C L; ==> : ==> : ==> _=a11+a22 ==> _=a12*a21+a22^2-1 ==> : ==> _[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); ==> -a22,a12, ==> a21, a22 L; // where new variables obey these relations ==> _=a11+a22 ==> _=a12*a21+a22^2-1 idJ; ==> idJ=-a12*a21+a11*a22+1 ==> idJ=a11^2+a12*a21-1 ==> idJ=a11*a12+a12*a22 ==> idJ=a11*a21+a21*a22 ==> idJ=a12*a21+a22^2-1 ``` 