[GAP Forum] Advice on programming an algebra with two fields in GAP

Stephen Blake stebla at ntlworld.com
Mon Jun 27 12:03:10 BST 2005


Dear GAP Forum,
 
I would like to implement an algebra of projective geometry in GAP,
and I need some advice on how to implement the field. The algebra is
essentially Grassmann algebra. [The section entitled "A. N. Whitehead's 
geometric algebra" on my web-pages contains much more information on
this stuff.] I'll illustrate the problem using the algebra of the
projective plane. 
 
Take three reference points (generators) for the plane as a,b,c. A basis
for the algebra consists of the following elements:
a, b, c, ab, ac, bc, abc   
Physically, ab=-ba is the line through the pair of points a, b. The line
ab is the entire line, not just the segment between the two points. 
 
An arbitrary point p in the projective plane is made by taking a linear
combination of the reference points e.g. p=2a-3b+7c. In projective
geometry an overall numerical factor multiplying the subspace has no
physical significance so p and 4p (say) represent the same point in
space. 

The basis element abc represents the entire projective plane. Because of
anti-commutativity of the pairs of points (ab=-ba so aa=0) all the 
elements of grade 3 represent the entire projective plane modulo an 
unimportant weight. Thus pab=(2a-3b+7c)ab=2aab-3bab+7cab=0+0+7abc=7abc.
Since all the grade 3 products of points like pqr are proportional to
abc, then the products pqr behave like numbers and it is tempting to set
abc=1. However, this is not quite correct because according to Klein's
Erlangen Programme, the group for projective geometry is the general
linear group. If we transform points as p->f(p) where f is an element of
the general linear group (in my way of thinking operators act on things
to their right) then f(abc)=det(f)abc whilst numbers transform as
scalars f(2)=2 (say). I call the numbers like abc "pseudonumbers" to
remind myself that they don't transform as scalars. Now these
pseudonumbers can weight the elements of the algebra in the same way as
the field of scalar numbers. For example, the product of a pair of lines
gives the point at the intersection of the lines, 
ab.ac=-(abc)a  
and the resultant point a is weighted by a pseudonumber. So, two fields 
appear, the field of (scalar) numbers and the field of pseudonumbers. 

I've implemented this algebra as a neat way of doing computational
geometry in the scientific interpreters Scilab and Yorick. I got around
the problem of the two fields by the grubby fix of simply assuming
abc=1. However, I want to use GAP to investigate some physics-based
extensions of the algebra and I would like to handle the two kinds of
fields properly in my GAP implementation without the grubby fix abc=1.
[The algebra I've been illustrating is basically the same as the one in
the paper "On the Exterior Calculus of Invariant Theory" by Barnabei,
Brini and Rota, Journal of Algebra 96, 120-160 (1985). The BBR paper
ignores the problem of the fields of numbers and pseudonumbers by
restricting the group of transformations to the special linear group -
the group of linear transformations with unit determinant; when det(f)=1
numbers and pseudonumbers are indistinguishable. However, the algebra is
really an algebra of projective geometry so the group should be the
general linear group.] 

Yours sincerely
Stephen Blake
http://homepage.ntlworld.com/stebla 




More information about the Forum mailing list