Function: Cliff5[reversion] - reversion anti-automorphism in a Clifford algebra Cl(B) or Cl(K)

Calling Sequence:

reversion(p);
reversion(p,K);

Parameters:

p - expression of the type 'cliscalar' or 'clipolynom'
K - (optional) argument of type name, symbol, matrix, or array, or `&*`(numeric,{name,symbol,array,matrix})

Description:

Procedure 'reversion' calculates reversion in the Clifford algebra Cl(K). When no optional argument is used, it operates in Cl(B), that is, the default value of K is B. It is linear in its argument and it is always a Clifford algebra anti-automorphism. See `type/cliscalar` and `type/clipolynom` for more help on the types.

When the antisymmetric part of B is not zero, 'reversion' does not preserve the multilinear structure of the algebra because it mixes grades, i.e., it does not preserve the gradation of the exterior algebra.

Procedure of 'reversion' is an automorphism of Cl(B) of order 2.

This procedure may also be applied to matrices with entries in a Clifford algebra in which case it is applied to each matrix entry.

Examples:

> restart:with(Cliff5):

Example 1: Reversing with respect to the default bilinear form B in Cl(B):

> reversion((2+alpha)*Id);

[Maple Math]

> reversion(e1we2); #note the off-diagonal entries of B

[Maple Math]

> reversion(e2we1); #note the off-diagonal entries of B

[Maple Math]

> reversion(e1we2we3):clicollect(%);

[Maple Math]

>

The same but reversion is now performed with respect to some other form K and -K:

> reversion((2+alpha)*Id,K);
reversion((2+alpha)*Id,-K);

[Maple Math]

[Maple Math]

> reversion(e1we2,K); #note the off-diagonal entries of K
reversion(e1we2,-K); #note the off-diagonal entries of K

[Maple Math]

[Maple Math]

> reversion(e2we1,K); #note the off-diagonal entries of K
reversion(e2we1,-K); #note the off-diagonal entries of K

[Maple Math]

[Maple Math]

> reversion(e1we2we3,K):clicollect(%);
reversion(e1we2we3,-K):clicollect(%);

[Maple Math]

[Maple Math]

> u:=4+Pi*e1we4+2*e1we2we3:v:=a+3*e2we4+e3:

Notice that when the bilinear form B is not symmetric, 'reversion' does not preserve the gradation in Cl(B):

> revv:=clicollect(reversion(v));

[Maple Math]

> revu:=clicollect(reversion(u));

[Maple Math]

However, 'reversion' still is an anti-automorphism in Cl(B):

> uv:=cmul(u,v); #compute product of u and v in Cl(B)

[Maple Math]
[Maple Math]
[Maple Math]

> evalb(expand(reversion(uv)-cmul(revv,revu))=0);

[Maple Math]

The same computation but in Cl(K):

> revv:=clicollect(reversion(v,K));
revu:=clicollect(reversion(u,K));
uv:=cmul[K](u,v); #compute product of u and v in Cl(K)
evalb(expand(reversion(uv,K)-cmul[K](revv,revu))=0);

[Maple Math]

[Maple Math]

[Maple Math]
[Maple Math]
[Maple Math]

[Maple Math]

Reversion when matrix has been assigned to a name:

> B,K:=matrix(2,2,[a,b,c,d]),matrix(2,2,[a,0,0,d]);

[Maple Math]

> u:=4+Pi*e1we2+2*e1+e2we1;

[Maple Math]

> reversion(u,B);

[Maple Math]

> reversion(u,-B);

[Maple Math]

> reversion(u,2*B);

[Maple Math]

> reversion(u,-3*K);

[Maple Math]

> reversion(u,K);

[Maple Math]

Example 2: When the bilinear form B is diagonal, the reversion does preserve the gradation in Cl(Q) and it is also an anti-automorphism in Cl(Q):

> B:=linalg[diag](1,1,-1):

> u:=4+Pi*e1we3+2*e1we2we3;revu:=reversion(u);
v:=a*e1+3*e2we3+e3;revv:=reversion(v);

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

> clicollect(reversion(cmulQ(u,v)));

[Maple Math]

> cmulQ(revv,revu);

[Maple Math]

> M:=linalg[matrix](2,2,[3+e2we3,2-3*e1we2we3,2*Id,e1we2-e3we2]);

[Maple Math]

> reversion(M);

[Maple Math]

>

Example 3: Let's see some examples how we can compute reversion in Cl(B) with a specific matrix assigned.

> K:='K':g:='g':B:='B':F:='F':
reversion(e1we2);
reversion(e1we2,X);
reversion(e1we2,-X);
reversion(e1we2,B);

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

> reversion(2*Pi*e1we2);
reversion(2*Pi*e1we2,X);
reversion(2*Pi*e1we2,B);

[Maple Math]

[Maple Math]

[Maple Math]

> reversion(2*e1we2+3-2*e4we5-eiwej);
reversion(2*e1we2+3-2*e4we5-eiwej,B);
reversion(2*e1we2+3-2*e4we5-eiwej,K);

[Maple Math]

[Maple Math]

[Maple Math]

Now, let's assign a specific matrix to B:

> dim_V:=3:
matF:=linalg[matrix](dim_V,dim_V,(i,j)->if i=j then RETURN(0) elif i<j then RETURN(F[i,j]) else RETURN(-F[j,i]) fi);
matg:=linalg[matrix](dim_V,dim_V,(i,j)-> if i<j then RETURN(g[i,j]) else RETURN(g[j,i]) fi);
matB:=evalm(matg+matF);

[Maple Math]

[Maple Math]

[Maple Math]

> cbas:=cbasis(dim_V);

[Maple Math]

> for x in cbas do
print(`x = `,x);
'reversion(x)'=reversion(x);
'reversion(x,-matB)'=reversion(x,-matB);
'reversion(x,-matF)'=reversion(x,-matF);
'reversion(x,-matg)'=reversion(x,-matg);
print(`***************`);
od;

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

> M:=matrix(2,2,[2*e1we2+2*e4-eiwej+4*Id,e3-4*e5,2-4*e1we2,1+2*Pi*e3we2]);

[Maple Math]

> reversion(M);

[Maple Math]

> reversion(M,X);

[Maple Math]

> reversion(M,-X);

[Maple Math]

> reversion(M,g);

[Maple Math]

Note that since the M[1,1] enrty in the matrix M contained a Grassmann basis monomial eiwej with unassigned indices i and j, the result also containg these indices as in matg[i,j].

>

Example 4: The reversion procedure in Cl(B) can be extended and applied to Clifford polynomials expressed in terms of the Clifford basis monomials, or, expressions of `type/cliprod` . To extend 'reversion' to such terms, user needs to load in package 'Cli5plus' :

> restart:with(Cliff5):with(Cli5plus);

Warning, new definition for init

Warning, definitions for type/climon and type/clipolynom now include &C and &C[K]. Type ?cliprod for help.

[Maple Math]
[Maple Math]

Procedure 'clirev' in that package extends 'reversion'. That is, macro(reversion=clirev) is defined when 'Cli5plus' is loaded in. One can use direct procedure 'clirev' or one can continue using the name 'reversion':

> reversion(e1 &C e2),clirev(e1 &C e2);

[Maple Math]

> reversion(`&C`[B](e1,e2),B),clirev(`&C`[B](e1,e2),B);

[Maple Math]

> reversion(`&C`[K](e1,e2),K),clirev(`&C`[K](e1,e2),K);

[Maple Math]

An error message will appear if appropriate name is not used in 'reversion' or 'clirev', or when mixed indices are used:

> reversion(`&C`[K](e1,e2)),clirev(`&C`[K](e1,e2));

Error, (in clirev) optional (or default B) parameter in clirev differs from indices encountered in its cliprod arguments. Found these names as indices of &C:, {K, B}

> reversion(`&C`[K](e1,e2)-`&C`[M](e4,e5),B);

Error, (in clirev) optional (or default B) parameter in clirev differs from indices encountered in its cliprod arguments. Found these names as indices of &C:, {K, B, M}

>

See Also: Cliff5[conjugation] , Cliff5[gradeinv] , Cliff5[`type/clipolynom`] , Cliff5[`type/climon`] , Cliff5[`type/clibasmon`] , Cliff5[`type/cliscalar`]


(c) Copyright October 8, 1995, by Rafal Ablamowicz & Bertfried Fauser, all rights reserved.
Last modified: December 26, 2001, RA/BF.