axiom-developer
[Top][All Lists]

## [Axiom-developer] Re: [Axiom-mail] finding source code

 From: Bertfried Fauser Subject: [Axiom-developer] Re: [Axiom-mail] finding source code Date: Fri, 30 Oct 2009 12:26:14 +0000

Hi Martin,

> So yes, I am interested, but I don't know how much I could do.

OK, I got this disclaimer, anybody states it :-))

> As I say, I don't have a rigorous mathematical background,

No worries, most things with Clifford algebras are easy.

Clifford and Grassmann bases:

the following ingrediences:

V an n-dim vector space
/\ : V x V ... x V --> /\^n V  the unital, associative antisymmetric
exterior product or Grassmann or wedge product (all sysnonyms)

Due to antisymmetry you have for ever v in V that   v/\v=0, however,
if w<>\alpha v then w/\v is a _new_ element of the algebra. Choosing
a (any) basis {ei}_i in V allows you to construct 2^n many basis elements.
Hence the algebra relations for a grassmann algebra is

Grassmann:   v/\v =0 for all v \in V
<=>     ei/\ej = -ej/\ei    (by setting v=ei+ej) and using ei/\ei=0 etc)

You have (n over 0) 0-vectors (the scalars of the base field times
identity of the algebra)
You have (n over 1) 1-vectors, that are the images of the base vectors
ei in the alegbra,
often these immages are not distingusihed from ther orignal basis
verctor life.
You have (n over 2) 2-vectors (bi-vectors) of type ei/\ej  i<j,
...
You have (n over n) = 1 n-vector (volume form) e1/\e2/\ ../\en

A vector fron the space of k-vectors is said to have degree/step/grade k

Any Grassmann alegbra element is written as a linear combination in this
2^n=\sum_k (n over k) many vector space generators (basis elements)
[Note the algebra generators are the ei only]

Geometric information is attached to the so-called decomposable
tensors (externsors,
blades,...)  So v/\w may be a line [_or_ an area], but  w/\v + x/\y is
not a generic
geometric object.

Clifford algebra:
Ingredients are now: V the same vector space as above with basis {ei}_i and
a quadratic form (which I use in its polarized matrix form) hence Q~=symmetric
matrix G over the base field. The algebra relations are now

Clifford:
we still have   ei/\ej = -ej/\ei  for i<>j
but add         ei^2=Q(ei) = ei^t G ei  (last expression is matrix
dot product, ei^t row
vector)

This set of rules _implies_ that the matrix G of the bilinear form Q
is diagonal in the
basis {ei}_i, we want a more general setting allowing any basis of V
to be used. This
is most easily done using a construction from Chevalley:

Let \gamma : V ----> (End /\V ~=) CL(V,G)    (again G~=Q) be a map
which injects the space V into the Clifford algebra CL(V,G)

We define \gamma with values in the endomorphisms of the grassmann algebra
build over V as follows (° = clifford product):

\gamma(1)  = 1°
\gamma(ei) = Ei° = Ei/\ +  Ei _|

where Ei _| Ej := Ei^t G Ej   for Ei in (the image of) V
_| is called contraction, one sees that the Clifford product has two
parts, the exterior part and the contraction part which depends on G.
If G=0 the the Clifford algebra becomes a Grassmann algebra.

Furthermore do we see that the Clifford algebra has a basis out of Grassmann
elements.  GL(V,G) ~= /\V as vector spaces (not als algebras)

lets proceed with gamma:

\gamma(ei/\ej) = (Ei /\ Ej)° = (Ei ° Ej)° -  (Ei _| Ej)°
= (Ei ° Ej)° -  (E_i^t G Ej) 1°

ect in a recursive way. This allows to construct the clifford product in
in terms of a Grassmann basis and to obtain the general multiplication

u1/\.../\uk °  v1/\../\vl = many terms of degree k+l   to abs(k-l)

[  0   1  ]
G : =   [  1   0  ]
which gives (I switch back to ei for Clifford and Grassmann)

e1 ° e1 = e1/\e1 + e1^t G e1 = 0
e1 ° e2 = e1/\e2 + e1^t G e2 = e1/\e2 + 1   (note this is no longer homogeneous)
(e1 °
e2 has degree 0 and degree 2 parts)
e2 ° e1 = e2/\e1 + e2^t G e1 = -e1/\e2 + 1
e2 ° e2 = e2/\e2 + e2^t G e2 = 0

A bit more complicated is:

e1 ° (e1/\e2) = e1/\e1/\e2 + e1_| (e1/\e2)   first term is zero due to e1/\e1=0
the second term need some thought, the bilinear form G acts only on VxV,
now we need to know how it acts on elements of V/\V, this is done by demanding
that _| is a (graded) derivation

e1 ° (e1/\e2) = (e1 _| e1) /\e2  + (-1)^(degree(e1)*degree(e1)) e1/\(e1 _| e2)
^^^^^^^^ zero                (-1)^1*1
^^^^^^^one
= -e1

similarly we get

e2  ° (e1/\e2) = e2

(e1/\e2) ° e1 is obtained by rewriting e1/\e2 = e1°e2 - e1_|e2 and
applying the needed
simplifications, .....

> In other words the two bases are the same when the inner product is in its
> diagonal form but when the bases are rotated the outer product rotated with it
> only in the case of Grassmann basis but not in the case of the Clifford basis?

No, not really. you may address a grassmann algebra as a special
clifford algebra
with Q=0 (mathematically a bit sloppy but helpful)

The point is that you need to watch what kind of product you use to
generate your
algebra. Grassmann uses /\, but Clifford has two choices, ° and /\.
geometry needs
the /\basis but AXIOM uses the ° basis and assumes that the quadratic form is
diagonal in the basis of generators (AFAIK).

1=1,  ei = ei  of course

ei/\ej       =/=  ei°ej = ei/\ej + ei^t G e_j
ei/\ej/\ek  =/=  ei°ej°ek = ei°(ej/\ek + ej^t G e_k)
= ei/\ej/\ek  + ei^t G e_j ek - ek  ei^t G ek +
ej ei^t G ek

If you write in AXIOM ei*ej, you get ei°ej and not ei/\ej + ei^t G ej  etc...

> model (It takes me some time to absorb these things)

I think in the works you mentioned, these things should be described,
otherwise look
on the arXiv for work of John Seelig, and Joan Lasenby....

> the purposes of Axiom, the code would need to be completely general and not
> otpimised for particular geometries?

That's not really true. You _just_ need a Clifford algebra, the
geometry comes as
a sort of interpretation of the objects (elements) in the algebra.
What would be needed
is the following [Hence a clifford algebra is not geometric, its the
interpretation]

1)  a grassmann basis for the clifford algebra
2) the exteriorn /\ product, contraction _| and a proper clifford product °
3) some device to generate matrices out of clifford numbers and vice versa
4) possibly a clifford solver which allows to type in equations in
clifford variables
so that you get a solution set, eg: X a generic element in CL(V,Q), find all
X with (X^2=) X°X = X

That's almost all one needs (without spinors)

Ciao
BF.

--
% PD Dr Bertfried Fauser
%       Research Fellow, School of Computer Science, Univ. of Birmingham
%       Honorary Associate, University of Tasmania
%       Privat Docent: University of Konstanz, Physics Dept
<http://www.uni-konstanz.de>
% contact |->    URL : http://clifford.physik.uni-konstanz.de/~fauser/
%              Phone : +49 1520 9874517