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

Usage:
findInvoDiag();

Return:
a ring together with a list of pairs L, 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:
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 `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 = findInvoDiag(); setring X; // ring with new variables, corresponding to unknown coefficients X; ==> // coefficients: QQ ==> // number of vars : 2 ==> // block 1 : ordering dp ==> // : names a11 a22 ==> // block 2 : ordering C // print matrices, defining linear involutions print(L); // a first matrix: we see it is constant ==> -1,0, ==> 0, 1 print(L); // and a second possible matrix; it is constant too ==> 1,0, ==> 0,-1 L; // let us take a look on the whole list ==> : ==> : ==> _=a22-1 ==> _=a11+1 ==> : ==> _[1,1]=-1 ==> _[1,2]=0 ==> _[2,1]=0 ==> _[2,2]=1 ==> : ==> : ==> _=a22+1 ==> _=a11-1 ==> : ==> _[1,1]=1 ==> _[1,2]=0 ==> _[2,1]=0 ==> _[2,2]=-1 idJ; ==> idJ=a11*a22+1 ==> idJ=a11^2-1 ==> idJ=a22^2-1 ``` 