| ##### 7.5.8.0. involution Procedure from library `involut.lib` (see involut_lib). Usage: involution(m, theta); m is a poly/vector/ideal/matrix/module, theta is a map Return: object of the same type as m Purpose: applies the involution, presented by theta to the object m Theory: for an involution theta and two polynomials a,b from the algebra, theta(ab) = theta(b) theta(a); theta is linear with respect to the ground field Note: This is generalized "theta(m)" for data types unsupported by "map". Example:
    LIB "involut.lib";
    ring R = 0,(x,d),dp;
    def r = nc_algebra(1,1); setring r; // Weyl-Algebra
    map F = r,x,-d;
    F(F);  // should be maxideal(1) for an involution
    ==> _[1]=x
    ==> _[2]=d
    poly f =  x*d^2+d;
    poly If = involution(f,F);
    f-If;
    ==> 0
    poly g = x^2*d+2*x*d+3*x+7*d;
    poly tg = -d*x^2-2*d*x+3*x-7*d;
    poly Ig = involution(g,F);
    tg-Ig;
    ==> 0
    ideal I = f,g;
    ideal II = involution(I,F);
    II;
    ==> II[1]=xd2+d
    ==> II[2]=-x2d-2xd+x-7d-2
    matrix(I) - involution(II,F);
    ==> _[1,1]=0
    ==> _[1,2]=0
    module M  = [f,g,0],[g,0,x^2*d];
    module IM = involution(M,F);
    print(IM);
    ==> xd2+d,          -x2d-2xd+x-7d-2,
    ==> -x2d-2xd+x-7d-2,0,
    ==> 0,              -x2d-2x
    print(matrix(M) - involution(IM,F));
    ==> 0,0,
    ==> 0,0,
    ==> 0,0

User manual for Singular version 4.4.1, 2025, generated by texi2html.