# Singular

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

Usage:
ncdetection();

Return:
ideal, representing an involution map

Purpose:
compute classical involutions (i.e. acting rather on operators than on variables) for some particular noncommutative algebras

Assume:
the procedure is aimed at non-commutative algebras with differential, shift or advance operators arising in Control Theory. It has to be executed in a ring.

Example:
 ```LIB "involut.lib"; ring R = 0,(x,y,z,D(1..3)),dp; matrix D[6][6]; D[1,4]=1; D[2,5]=1; D[3,6]=1; def r = nc_algebra(1,D); setring r; ncdetection(); ==> _[1]=x ==> _[2]=y ==> _[3]=z ==> _[4]=-D(1) ==> _[5]=-D(2) ==> _[6]=-D(3) kill r, R; //---------------------------------------- ring R=0,(x,S),dp; def r = nc_algebra(1,-S); setring r; ncdetection(); ==> _[1]=-x ==> _[2]=S kill r, R; //---------------------------------------- ring R=0,(x,D(1),S),dp; matrix D[3][3]; D[1,2]=1; D[1,3]=-S; def r = nc_algebra(1,D); setring r; ncdetection(); ==> _[1]=-x ==> _[2]=D(1) ==> _[3]=S ```