Clifford Algebra

CliffordAlgebra(n,K,Q) defines a vector space of dimension 2^n over the field K with a given quadratic form Q. If {e1..en} is a basis for K^n then

{ 1,
  e(i)         1 <= i <= n,
  e(i1)*e(i2)  1 <= i1 < i2 <=n,
  ...,
  e(1)*e(2)*...*e(n) }

is a basis for the Clifford algebra. The algebra is defined by the relations

e(i)*e(i) = Q(e(i))
e(i)*e(j) = -e(j)*e(i),  for i ^= j

Examples of Clifford Algebras are gaussians (complex numbers), quaternions, exterior algebras and spin algebras.

Complex Numbers as a Clifford Algebra

This is the field over which we will work, rational functions with integer coefficients.

K := Fraction Polynomial Integer
 Fraction Polynomial Integer
                       Type: Domain

We use this matrix for the quadratic form.

m := matrix [ [-1] ]
 [- 1]
                       Type: Matrix Integer

We get complex arithmetic by using this domain.

C := CliffordAlgebra(1, K, quadraticForm m)
 CliffordAlgebra(1,Fraction Polynomial Integer,MATRIX)
                       Type: Domain

Here is i, the usual square root of -1.

i: C := e(1)
 e
  1
             Type: CliffordAlgebra(1,Fraction Polynomial Integer,MATRIX)

Here are some examples of the arithmetic.

x := a + b * i
 a + b e
        1
             Type: CliffordAlgebra(1,Fraction Polynomial Integer,MATRIX)

y := c + d * i
 c + d e
        1
             Type: CliffordAlgebra(1,Fraction Polynomial Integer,MATRIX)

x * y
 - b d + a c + (a d + b c)e
                           1
             Type: CliffordAlgebra(1,Fraction Polynomial Integer,MATRIX)

Quaternion Numbers as a Clifford Algebra

This is the field over which we will work, rational functions with integer coefficients.

K := Fraction Polynomial Integer
 Fraction Polynomial Integer
                    Type: Domain

We use this matrix for the quadratic form.

m := matrix [ [-1,0],[0,-1] ]
 +- 1   0 +
 |        |
 + 0   - 1+
                    Type: Matrix Integer

The resulting domain is the quaternions.

H  := CliffordAlgebra(2, K, quadraticForm m)
 CliffordAlgebra(2,Fraction Polynomial Integer,MATRIX)
                    Type: Domain

We use Hamilton’s notation for i, j, k.

i: H  := e(1)
 e
  1
            Type: CliffordAlgebra(2,Fraction Polynomial Integer,MATRIX)

j: H  := e(2)
 e
  2
            Type: CliffordAlgebra(2,Fraction Polynomial Integer,MATRIX)

k: H  := i * j
 e e
  1 2
            Type: CliffordAlgebra(2,Fraction Polynomial Integer,MATRIX)

x := a + b * i + c * j + d * k
 a + b e  + c e  + d e e
        1      2      1 2
            Type: CliffordAlgebra(2,Fraction Polynomial Integer,MATRIX)

y := e + f * i + g * j + h * k
 e + f e  + g e  + h e e
        1      2      1 2
            Type: CliffordAlgebra(2,Fraction Polynomial Integer,MATRIX)

x + y
 e + a + (f + b)e  + (g + c)e  + (h + d)e e
                 1           2           1 2
            Type: CliffordAlgebra(2,Fraction Polynomial Integer,MATRIX)

x * y
 - d h - c g - b f + a e + (c h - d g + a f + b e)e
                                                   1
 +
   (- b h + a g + d f + c e)e  + (a h + b g - c f + d e)e e
                             2                           1 2
            Type: CliffordAlgebra(2,Fraction Polynomial Integer,MATRIX)

y * x
 - d h - c g - b f + a e + (- c h + d g + a f + b e)e
                                                     1
 +
   (b h + a g - d f + c e)e  + (a h - b g + c f + d e)e e
                           2                           1 2
                Type: CliffordAlgebra(2,Fraction Polynomial Integer,MATRIX)

Exterior Algebra on a Three Space

This is the field over which we will work, rational functions with integer coefficients.

K := Fraction Polynomial Integer
 Fraction Polynomial Integer
                Type: Domain

If we chose the three by three zero quadratic form, we obtain the exterior algebra on e(1),e(2),e(3).

Ext := CliffordAlgebra(3, K, quadraticForm 0)
 CliffordAlgebra(3,Fraction Polynomial Integer,MATRIX)
                Type: Domain

This is a three dimensional vector algebra. We define i, j, k as the unit vectors.

i: Ext := e(1)
 e
  1
           Type: CliffordAlgebra(3,Fraction Polynomial Integer,MATRIX)

j: Ext := e(2)
 e
  2
           Type: CliffordAlgebra(3,Fraction Polynomial Integer,MATRIX)

k: Ext := e(3)
 e
  3
           Type: CliffordAlgebra(3,Fraction Polynomial Integer,MATRIX)

Now it is possible to do arithmetic.

x := x1*i + x2*j + x3*k
 x1 e  + x2 e  + x3 e
     1       2       3
           Type: CliffordAlgebra(3,Fraction Polynomial Integer,MATRIX)

y := y1*i + y2*j + y3*k
 y1 e  + y2 e  + y3 e
     1       2       3
           Type: CliffordAlgebra(3,Fraction Polynomial Integer,MATRIX)

x + y
 (y1 + x1)e  + (y2 + x2)e  + (y3 + x3)e
           1             2             3
           Type: CliffordAlgebra(3,Fraction Polynomial Integer,MATRIX)

x * y + y * x
 0
           Type: CliffordAlgebra(3,Fraction Polynomial Integer,MATRIX)

On an n space, a grade p form has a dual n-p form. In particular, in three space the dual of a grade two element identifies

e1*e2 -> e3, e2*e3 -> e1, e3*e1 -> e2.

dual2 a == coefficient(a,[2,3]) * i + coefficient(a,[3,1]) * j + coefficient(a,[1,2]) * k
                    Type: Void

The vector cross product is then given by this.

dual2(x*y)
 (x2 y3 - x3 y2)e  + (- x1 y3 + x3 y1)e  + (x1 y2 - x2 y1)e
                 1                     2                   3
         Type: CliffordAlgebra(3,Fraction Polynomial Integer,MATRIX)

Dirac Spin Algebra

In this section we will work over the field of rational numbers.

K := Fraction Integer
 Fraction Integer
                     Type: Domain

We define the quadratic form to be the Minkowski space-time metric.

g := matrix [ [1,0,0,0], [0,-1,0,0], [0,0,-1,0], [0,0,0,-1] ]
 +1   0    0    0 +
 |                |
 |0  - 1   0    0 |
 |                |
 |0   0   - 1   0 |
 |                |
 +0   0    0   - 1+
                     Type: Matrix Integer

We obtain the Dirac spin algebra used in Relativistic Quantum Field Theory.

D := CliffordAlgebra(4,K, quadraticForm g)
 CliffordAlgebra(4,Fraction Integer,MATRIX)
                     Type: Domain

The usual notation for the basis is gamma with a superscript. For FriCAS input we will use gam(i):

gam := [e(i)$D for i in 1..4]
 [e ,e ,e ,e ]
   1  2  3  4
               Type: List CliffordAlgebra(4,Fraction Integer,MATRIX)

There are various contraction identities of the form

g(l,t)*gam(l)*gam(m)*gam(n)*gam(r)*gam(s)*gam(t) =
    2*(gam(s)gam(m)gam(n)gam(r) + gam(r)*gam(n)*gam(m)*gam(s))

where a sum over l and t is implied.

Verify this identity for particular values of m,n,r,s.

m := 1; n:= 2; r := 3; s := 4;
                    Type: PositiveInteger

lhs := reduce(+, [reduce(+, [ g(l,t)*gam(l)*gam(m)*gam(n)*gam(r)*gam(s)*gam(t) for l in 1..4]) for t in 1..4])
 - 4e e e e
     1 2 3 4
                    Type: CliffordAlgebra(4,Fraction Integer,MATRIX)

rhs := 2*(gam s * gam m*gam n*gam r + gam r*gam n*gam m*gam s)
 - 4e e e e
     1 2 3 4
                    Type: CliffordAlgebra(4,Fraction Integer,MATRIX)

See Also:

  • )help Complex
  • )help Quaternion
  • )show CliffordAlgebra
  • $FriCAS/doc/src/algebra/clifford.spad

Table Of Contents

This Page