Function: Cli5plus[`dwedge`], Cli5plus[`&dw`] - Graßmann wedge product for a different filtration

Calling Sequence:

c1 := dwedge[K](p1,p2,...,pn)
c1 := &dw[K](p1,p2,...,pn)

Parameters:

p1,p2,...,pn - Clifford polynoms (elements of one of these types: `type/clibasmon` , `type/climon` , `type/clipolynom` )

K - index of type name, symbol, matrix, array, or `&*`(numeric,{name,symbol,matrix,array})

Output:

c1 : a Clifford polynom

Description:

The dotted-wedge (dwedge) accompanies the Graßmann wedge product, but differs in its graduation. In fact both products are isomorphic as exterior products, but relay on different filtrations. The dotted wedge product and the undotted one are related by the process of cliffordization which is used in CLIFFORD internally to compute the Clifford product in Cl(V,B). However, the cliffordization is performed in this case by an antisymmetric bilinear form B=F, say F(x,y)=-F(y,x), where x and y are 1-vectors in V.

Procedure 'dwedge' requires one index of type name, symbol, matrix, array, `&*`(numeric,{name,symbol,matrix,array}). When the index is a matrix or an array, it must be antisymmetric.

It can be shown that the Wick-theorem of normalordering, well known in QFT and many particle QM, is exactly described by this process.

While being isomorphic as Graßmann algebras and hence beeing interchangeable, the difference becomes important when further structures are considered. For example, when a Clifford algebra is build over the space of this differently graded Graßmann algebra, or when quantum deformations are modeled within an undeformed Clifford algebra, etc..

The dotted wedge is a wrapper function which actually uses `convert/wedge_to_dwedge` and `convert/dwedge_to_wedge` to map between the two basis sets. This is possible since the new Graßmann algebra is a cliffordized Graßmann algebra w.r.t. a bilinear form F as stated above.

The ampersand version of this procedure is called `&dw`.

NOTE: Til now both types of algebras are expanded (formally) over the same basis Grassmann monomials which, according to CLIFFORD's convention, are written as eiwej... . It is the responsibility of the user to keep track which type of wedge he/she is using and which expression is based on which exterior product, dotted or undotted. It is a good idea it to assign such expressions to a descriptive lhs, see below.

References:

[1] Ablamowicz, R.: “Helmstetter formula and rigid motions with CLIFFORD”, in "Advances in Geometric Algebra with Applications in Science and Engineering -- Automatic Theorem proving, Computer Vision, Quantum and Neural Computing, and Robotics", Eds. Eduardo Bayro-Corrochano and Garret Sobczyk, Birkhäuser, 2001.
[2] Ablamowicz, R. and Bertfried Fauser: “On the decomposition of Clifford algebras of arbitrary bilinear form”, Rafal Ablamowicz and Bertfried Fauser, in “Clifford Algebras and their Applications in Mathematical Physics”, Eds. Rafal Ablamowicz and Bertfried Fauser, Vol. 1: Algebra and Physics, Birkhäuser, Boston, 2000, pages 341--366 (see also http://www.birkhauser.com/cgi-win/isbn/0-8176-4182-3).
[3] “Clifford Algebras and their Applications in Mathematical Physics”, Eds. Rafal Ablamowicz and Bertfried Fauser, Vol. 1: Algebra and Physics, Birkhäuser, Boston, 2000, (ISBN 0-8176-4182-3) (for more information go to http://math.tntech.edu/rafal/mexico/mexico.html).
[4] Ablamowicz, R. and P. Lounesto: “On Clifford algebras of a bilinear form with an antisymmetric part,” with P. Lounesto, in “Clifford Algebras with Numeric and Symbolic computations”, Eds. R. Ablamowicz, P. Lounesto, and J. Parra, Birkhäuser, Boston, 1996, pages 167-188.
[5] “Clifford Algebras with Numeric and Symbolic Computations”, Eds. Rafal Ablamowicz, Pertti Lounesto, and J. Parra, Birkhäuser, Boston, 1996 (ISBN 0-8176-3907-1).

Examples:

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

Example 1 : Simple examples first:

> dwedge[K](e1+2*e1we3,e4+3*e1we2);
dwedge[-K](e1+2*e1we3,e4+3*e1we2);
&dw(e1+2*e1we3,e4+3*e1we2); #default index in `&dw` is F
&dw[-F](e1+2*e1we3,e4+3*e1we2);

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

>

Example 2: Observe that conversion from the undotted wedge basis to the dotted wedge basis using antisymmetric form F and 'dwedge[F]' are related through the following identity:

convert(e1we2w...wen,wedge_to_dwedge,F) = dwedge[F](e1,e2,...,en)

which can be shown as follows in dim_V <=6:

> F:=array(1..9,1..9,antisymmetric):

> ##when dim_V = 2:
simplify(dwedge[F](e1,e2)=convert(wedge(e1,e2),wedge_to_dwedge,F));

[Maple Math]

> ##when dim_V = 3:
simplify(dwedge[F](e1,e2,e3)=convert(wedge(e1,e2,e3),wedge_to_dwedge,F));

[Maple Math]

> ##when dim_V = 4:
simplify(dwedge[F](e1,e2,e3,e4)=convert(wedge(e1,e2,e3,e4),wedge_to_dwedge,F));

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

> ##when dim_V = 5:
simplify(dwedge[F](e1,e2,e3,e4,e5)-convert(wedge(e1,e2,e3,e4,e5),wedge_to_dwedge,F));

[Maple Math]

> ##when dim_V = 6:
simplify(dwedge[F](e1,e2,e3,e4,e5,e6)-convert(wedge(e1,e2,e3,e4,e5,e6),wedge_to_dwedge,F));

[Maple Math]

>

Example 3: Operation 'dwedge' is associative with Id as a unit:

> dwedge[F](dwedge[F](e1,e2),e3);
dwedge[F](e1,dwedge[F](e2,e3));

[Maple Math]

[Maple Math]

> dwedge[F](dwedge[F](e1,e2we3),e4);
dwedge[F](e1,dwedge[F](e2we3,e4));%%-%;

[Maple Math]

[Maple Math]

[Maple Math]

> dwedge[F](dwedge[F](e1,e2we3),e4we5);
dwedge[F](e1,dwedge[F](e2we3,e4we5));%%-%;

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

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

[Maple Math]

Finally, for some arbitrary random Clifford polynomials expressed in Grassmann undotted basis:

> u:=2+e1-3*e2we3+e4we5we6:
v:=3-4*e1we2we3+e7:
z:=4-2*e3we4+e5we6-e8:

> dwedge[F](Id,u)=u; #unity
dwedge[F](u,Id)=u;

[Maple Math]

[Maple Math]

> dwedge[F](dwedge[F](u,v),z):#associativity
dwedge[F](u,dwedge[F](v,z)):%%-%;

[Maple Math]

Wea also have the following Commutative Diagram 5: Wedge in undotted and dwedge in dotted bases :

wedge(u,v) = convert(dwedge(convert(u,wedge_to_dwedge,F),convert(v,wedge_to_dwedge,F)),dwedge_to_wedge,-F)

which we show as follows:

> uu:=convert(u,wedge_to_dwedge,F); #u converted to dotted basis
vv:=convert(v,wedge_to_dwedge,F); #v converted to dotted basis

[Maple Math]

[Maple Math]

> out1:=dwedge[F](uu,vv): #dwedge computed w.r.t. F

> out2:=convert(out1,dwedge_to_wedge,-F); #previous result converted back to undotted basis

[Maple Math]

> out3:=wedge(u,v); #direct computation of the wedge product in undotted basis

[Maple Math]

> out2-out3; #the same results!

[Maple Math]

>

Example 4: (Dotted and undotted wedge bases) First we expand the basis of the original wedge into the dotted wedge and back. For this purpose we choose dim_V=3 and consider Cl(C,B) where the antisymmetric part of B is denoted by F (and its negative by FT), while the symmetric part of B is denoted by g.

> dim_V:=3:
F:=array(1..dim_V,1..dim_V,antisymmetric):
g:=array(1..dim_V,1..dim_V,symmetric):
B:=evalm(g+F):
FT:=evalm(-F):
F,FT = evalm(F),evalm(FT);
g,B = evalm(g),evalm(B);
w_bas:=cbasis(dim_V); ## the wedge basis

[Maple Math]

[Maple Math]

[Maple Math]

Now we map the convert function onto this basis to get the dotted-wedge basis (and back to test that this device works properly)

> d_bas:=map(convert,w_bas,wedge_to_dwedge,F);
test_wbas:=map(convert,d_bas,dwedge_to_wedge,-F);

[Maple Math]

[Maple Math]

Note that only the scalar Id and the one vector basis elements ei are unaltered and that the other basis elements of higher grade pick up additional terms of lower grade (which preserves the filtration).

It is possible to define aliases for the dotted wedge basis "monomials" similar to the Grassmann basis monomials used by 'CLIFFORD'. For example, we could denote the element e1we2 + F[1,2]*Id by e1de2 or e1We2, and smilarly for other elements:

> alias(e1We2=e1we2 + F[1,2]*Id,
e1We3=e1we3 + F[1,3]*Id,
e2We3=e2we3 + F[2,3]*Id,
e1We2We3=e1we2we3+F[2,3]*e1-F[1,3]*e2+F[1,2]*e3);

[Maple Math]

and then Maple will display automatically dotted basis in d_bas in terms of the aliases:

> d_bas;

[Maple Math]

While command 'cbasis' displays basis elements in the Grassmann basis by default, it is not difficult to write a new procedure that would display the dotted basis instead. For example, procedure 'dottedbasis' returns such basis. Since we have defined aliases above, output from 'dottedcbasis' will be automatically converted to aliases:

> dottedcbasis[F](3);

[Maple Math]

> dottedcbasis[F](3,'even');

[Maple Math]

> dottedcbasis[F](3,2);

[Maple Math]

With the procedure 'findbasis' which returns linearly independent elements from a list, we can verify that the above lists contain linearly independent elements:

> findbasis(dottedcbasis[F](3));

[Maple Math]

> findbasis(dottedcbasis[F](3,'even'));

[Maple Math]

> findbasis(dottedcbasis[F](3,2));

[Maple Math]

>

Example 5: (Commutative Diagram 1: Contraction in dotted and undotted bases) The contraction w.r.t. any bilinear form works on both sets in the same manner which can be seen if we re-convert the dotted-wedge basis after the computation into the wedge basis. In a reasonable setting, the antisymmetric bilinear form F would be the antisymmetric part of B. To read more about the left contraction LC in Cl(B), go to the help page for LC or see [1, 2, 4]. To illustrate this fact, we first compute left contraction by e1 of every element in the standard Grassmann wedge basis w_bas with respect to the entire form B:

> 'w_bas'=w_bas; #standard Grassmann wedge basis in Cl(B)

[Maple Math]

> w_wout:=map2(LC,e1,w_bas,B);#left contraction LC in Cl(B) w.w.t. B in wedge basis

[Maple Math]
[Maple Math]

Next, we compute left contraction by e1 of every element in the dotted wedge basis d_bas with respect to the entire form B. Recall from the above that conversion from the wedge basis to the dotted wedge basis used the antisymmetric part F of B:

> 'd_bas'=d_bas; #dotted wedge basis in Cl(B)

[Maple Math]

> w_dout1:=map2(LC,e1,d_bas,B);#left contraction LC in Cl(B) w.w.t. B in dotted wedge basis

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

Notice that in the above coefficients of g, the symmetric part of B, are mixed with the coefficients of the antisymmetric part F of B. To remove the F coefficients, we need to convert back the above result to the un-dotted standard Grassmann basis using the negative -F, that is, the negative of the antisymmetric part of B in the conversion process:

> w_dout:=map(convert,w_dout1,dwedge_to_wedge,-F);#converting back to undotted basis

[Maple Math]
[Maple Math]

> map(simplify,w_dout-w_wout);

[Maple Math]

>

This computation shows clearly the isomorphy between both pictures. To show that the new structure is nevertheless valuable for other reasons, we proceed with Clifford products.

Example 6: (Commutative Diagram 2: Clifford product in dotted and undotted bases) We can build a Clifford algebra Cl(B) over each basis set, that is, w_wout or w_dout, but with different bilinear forms: when B=g and when B=g+F (following notation from [1, 2, 4]), where g is the symmetric part of B and F is the antisymmetric part of B:

> B,g,F=evalm(B),evalm(g),evalm(F); #previously defined

[Maple Math]

Let us compute some such Clifford products using the facility of cmul to take a bilinear form (here in matrix form) as index. We will show an example with the following two elements:

> w_p1:=e1we2;
w_p2:=a*e3+b*e2we3;

[Maple Math]

[Maple Math]

We can then define Clifford product 'cmulg' with respect to the symmetric part g, and another Clifford product 'cmulB' with respect to the entire form B:

> cmulg:=proc() RETURN(cmul[g](args)) end:
cmulB:=proc() RETURN(cmul[B](args)) end:

Thus, we are ready to perform computations around our commutative diagram.

First, we compute Clifford product cmul[g] in Cl(g), that is, with respect to the symmetric part g of the bilinear form B, of the two above defined elements w_p1 and w_p2 expressed in undotted Grassmann basis.

> w_out1:=cmulg(w_p1,w_p2); ## Clifford product w.r.t. g in Cl(g) in wedge basis

[Maple Math]

Now, we convert each element p1 and p2 to the dotted wedge basis:

> d_p1:=convert(w_p1,wedge_to_dwedge,F);
d_p2:=convert(w_p2,wedge_to_dwedge,F); #incomplete conversion to e1We2, etc. basis

[Maple Math]

[Maple Math]

We now compute the Clifford product of d_p1 and d_p2 in Cl(B) in the dotted wedge basis:

> d_out1:=cmulB(d_p1,d_p2); ## Clifford product w.r.t. B=g+F in Cl(B) in dwedge basis

[Maple Math]
[Maple Math]

We now convert the above result back to the un-dotted wedge basis:

> w_out2:=convert(d_out1,dwedge_to_wedge,-F); ## convert result dwedge-> wedge

[Maple Math]

Finally, we show that this result is the same as before when we computed Clifford product of p1 and p2 in Cl(g):

> simplify(w_out1-w_out2); ## show equality !

[Maple Math]

>

This shows (one can prove this) that the Clifford algebra Cl(g) of the symmetric part g of B using the undotted exterior basis is isomorphic, as an associative algebra, to the Clifford algebra Cl(B) of the entire bilinear form B = g + F spanned by the dotted wedge basis if the antisymmetric part F of B is exactly the same F as is used to connect the two basis sets (cf. [1, 2, 4]).

Example 7: (Commutative Diagram 3: Reversion in dotted and undotted bases) We proceed to show that the expansion of the Clifford basis elements into the dotted or undotted exterior products has also implications for other well known operations such as e.g. the Clifford reversion. Only if the bilinear form is symmetric, we find that the reversion is grade preserving, otherwise it reflects only the filtration (i.e. is in general a sum of terms of the same and lower degrees).

> reversion(e1we2,B); #reversion with respect to B
reversion(e1we2,g); #reversion with respect to g (classical result)

[Maple Math]

[Maple Math]

Observe in the above that only when B[1,2]=B[2,1], the result is -e1we2 known from the theory of classical Clifford algebras. Likewise,

> cbas:=cbasis(3);

[Maple Math]

> map(reversion,cbas,B);

[Maple Math]

If instead of B we use a symmetric matrix 'g' defined above, we obtain instead

> map(reversion,cbas,g);

[Maple Math]

Convert now e1we2 to the dotted basis and call it e1We2:

> convert(e1we2,wedge_to_dwedge,F);

[Maple Math]

Apply reversion to e1We2 with respect to F to get the reversed element in the dotted basis:

> reversed_e1We2:=reversion(e1We2,F);

[Maple Math]

Observe, that the above element is equal to the negative of e1We2 just like reversing e1we2 with respect to the symmetric part g of B:

> reversed_e1We2+e1We2;

[Maple Math]

Finally, convert reversed_e1We2 to the un-dotted standard Grassmann basis to get -e1we2:

> convert(reversed_e1We2,dwedge_to_wedge,-F);

[Maple Math]

The above, of course, can be obtained by applying reversion to e1we2 with respect to the symmetric part of B:

> reversion(e1we2,g); #reversion with respect to the symmetric part g of B

[Maple Math]

This shows that the dotted wedge basis is the particular basis which is stable under the Clifford reversion computed with respect to F, the antisymmetric part of the bilinear form B. This requirement allows one to distinguish Clifford algebras Cl(g) which have a symmetric bilinear form g from those which do not have such symmetric bilinear form but a more general form B instead. We call the former classical Clifford algebras while we use the term quantum Clifford algebras for the general non-necessarily-symmetric case.

Example 8: It is easy to write a wrapper for the Graßmann co-product too. Since the co-product &gco makes essential use of the decomposition of elements into one-vectors, we expect that the dotted-Graßmann co-product will depend on F, that is, then antisymmetric part of B. First we have to load Bigebra package.
NOTE: &gco_d computes the dotted Graßmann co-product in the undotted wedge basis! (The Graßmann co-product on the dotted wedge basis w.r.t. the dotted wedge basis is according to the isomorphy theorem for those algebras identical to the original Graßmann co-product).

> _CLIENV[_SILENT]:=`true`:with(Bigebra);

Warning, new definition for init

Warning, new definition for drop_t

Warning, new definition for gco_d_monom

Warning, new definition for gco_monom

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

> w_p1:=e1we2;
w_p2:=&gco_d(w_p1);

[Maple Math]

[Maple Math]

The following examples compose the dotted co-product with dotted and undotted wedge (acting on a wedge basis!!)

> dwedge[F](e1,e2);
dwedge[F](e1,e2,e3);

[Maple Math]

[Maple Math]

We then substitute `&dw` and `&w` for the tensor product sign `&t` and evaluate. We will show the results sided by side for easier comparison:

> subs(`&t`=`&dw`,&gco_d(Id));simplify(%);
subs(`&t`=`&w`,&gco_d(Id));simplify(%);

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

> subs(`&t`=`&dw`,&gco_d(e1));simplify(%);
subs(`&t`=`&w`,&gco_d(e1));simplify(%);

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

> subs(`&t`=`&dw`,&gco_d(e2));simplify(%);
subs(`&t`=`&w`,&gco_d(e2));simplify(%);

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

> subs(`&t`=`&dw`,&gco_d(e1we2));simplify(%);
subs(`&t`=`&w`,&gco_d(e1we2));simplify(%);

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

> subs(`&t`=`&dw`,&gco_d(e1we3));simplify(%);
subs(`&t`=`&w`,&gco_d(e1we3));simplify(%);

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

> subs(`&t`=`&dw`,&gco_d(e2we3));simplify(%);
subs(`&t`=`&w`,&gco_d(e2we3));simplify(%);

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

> subs(`&t`=`&dw`,&gco_d(e1we2we3));simplify(%);
subs(`&t`=`&w`,&gco_d(e1we2we3));simplify(%);

[Maple Math]
[Maple Math]

[Maple Math]

[Maple Math]
[Maple Math]

[Maple Math]

It is of utmost importance, that in these calculations we find that the usual loop tangle mult \citc Delta_{mult} which come up with the dimension of the spaces involved fails here. This might have an strong impact on the renormalization theory in QFT.

Note however, that if we do everything in the same algebra we end up with the correct factor 2^(grade_of_x) for the dotted bi-vector e1we2:

> d_p1:=&gco_d(dwedge[F](e1,e2));

[Maple Math]

> drop_t(&map(d_p1,1,dwedge[F]));

[Maple Math]

> d_p2:=convert(%,wedge_to_dwedge,F);#comes up with the factor 4 in the dotted basis
'd_p2'=-4*reversion(e1we2);

[Maple Math]

[Maple Math]

>

See Also: Bigebra [`&gco`] , Bigebra[`&cco`] , Bigebra[`&t`] , Bigebra[drop_t] , Bigebra[`&map`]

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