|
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
|
|