Clifford Algebras

Clifford algebras are represented in Magma as structure constant algebras and therefore many of the functions described in Chapter ALGEBRAS apply to Clifford algebras. However, the base ring of a Clifford algebra is required to be an exact field (see Chapter INTRODUCTION TO RINGS). The Magma type of a Clifford algebra is AlgClff and the type of an element of a Clifford algebra is AlgClffElt. All Clifford algebras are created with the attributes

space: the quadratic space from which the Clifford algebra is derived;
embedding: the standard embedding of the quadratic space into the Clifford algebra.

Let C be the Clifford algebra of the quadratic form Q defined on the vector space V. If e1, e2, ..., en is a basis for V, a basis for C is the set of all products e1i1e2i2 ... vnin, where ik is 0 or 1 for all k. The function k |-> ik is the characteristic function of a subset of {1, 2, ..., n}, namely S = {k | ik = 1 }. The map S |-> 1 + ∑k∈S 2k - 1 is a bijection between the subsets of {1, 2, ..., n} and the integers in the interval [1 ... 2n].

Thus the elements of C can be represented by a sequence of pairs < S, a > where S is a subset of {1, 2, ..., n} and a is a field element. Multiplication is determined by the fact that for all u, v∈V we have

v2 = Q(v).1quadand uv + vu = β(u, v).1,

where β is the polar form of Q.

Contents

CliffordAlgebra(Q) : AlgMatElt -> AlgClff, ModTupFld, Map
This function returns a triple C, V, f, where C is the Clifford algebra of the quadratic form Q, V is the quadratic space of Q, and f is the standard embedding of V into C.
CliffordAlgebra(V) : ModTupFld -> AlgClff, Map
If V is a quadratic space with quadratic form Q, this function returns the pair C, f, where C is the Clifford algebra of Q and f is the standard embedding of V into C.

Example AlgClff_CliffQuatEx (H95E1)

A quaternion algebra is a special case of a Clifford algebra.
> C,V,f := CliffordAlgebra(-IdentityMatrix(Rationals(),2));
> i := f(V.1);
> j := f(V.2);
> i^2 eq -One(C);
true
> j^2 eq -One(C);
true
> i*j eq -j*i;
true

Print Names for Generators

The generators of a Clifford algebra C defined on a quadratic space V are the images of the standard basis elements of V under the embedding of V in C. If C is a Clifford algebra note that C.1, C.2 and so on refer to the basis elements of the underlying vector space of C not its generators.

The AssignNames procedure can be used to associate names with the generators of a Clifford algebra after its creation.

AssignNames(~C, S) : AlgClff, [ MonStgElt ]) ->
Procedure to change the names of the generators of a Clifford algebra C. The i-th generator will be given the name of the i-th element of the sequence S; the sequence may have length less than the number of generators of C, in which case the remaining generator names remain unchanged.

This procedure changes only the names used in printing the elements of C. It does not assign to identifiers corresponding to the strings in S; to do this, use assignment statements, or use angle brackets when creating the Clifford algebra. This procedure is called by the generator assignment operators < > at the time of creation of a Clifford algebra.

Name(C, i) : AlgClff, RngIntElt -> AlgClffElt
Given a Clifford algebra C, return the i-th generator of C (as an element of C).
AsPolynomial(v) : AlgClffElt ->
Print the element v of a Clifford algebra as a polynomial in its generators; that is, as a polynomial in the basis elements of its quadratic space. By default the generators are labelled e1, e2, ..., en.

Example AlgClff_CliffordGen (H95E2)

The generator assignment construction (see Section Generator Assignment) can be used to assign names to the generators of a Clifford algebra.

> C<x,y,z> := CliffordAlgebra(IdentityMatrix(GF(5),3));
> f := x^2 + 3*y + y*z;
> f;
(1 0 3 0 0 0 1 0)
> AsPolynomial(f);
y*z + 3*y + 1

Example AlgClff_CliffordNames (H95E3)

The names of the generators for printing (via AsPolynomial) can be changed using AssignNames. Furthermore, assigning new print names to the generators does not change the identifiers themselves.
> C<[x]> := CliffordAlgebra(IdentityMatrix(GF(5),3));
> f := 3*C.1 + 2*C.2 + C.5 +C.6;
> AsPolynomial(f);
x[1]*x[3] + 2*x[1] + x[3] + 3
> Name(C,3) eq C.5;
true
> AssignNames(~C,["x","y","z"]);
> AsPolynomial(f);
x*z + 2*x + z + 3
> x[2];
(0 0 1 0 0 0 0 0)
> y;
User error: Identifier 'y' has not been declared or assigned

Elements of a Clifford Algebra

elt< C | r1, r2, ..., rm > : AlgClff, RngElt, RngElt, ..., RngElt -> AlgClffElt
Given a Clifford algebra C of dimension m = 2n over a field F, and field elements r1, r2, ..., rm ∈F construct the element r1 * C.1 + r2 * C.2 + ... + rm * C.m of C.
C ! L : AlgClff, SeqEnum[RngElt] -> AlgGenElt
Given a Clifford algebra C of dimension m = 2n and a sequence L = [r1, r2, ..., rm] of elements of the base ring R of C, construct the element r1 * C.1 + r2 * C.2 + ... + rm * C.m of C.
SeqToClifford(C, ss) : AlgClff, SeqEnum -> AlgClffElt
Convert a sequence ss of pairs < S, a > to an element of the Clifford algebra C, where S is a subset of {1, ..., n}, a is in the base field and the dimension of C is 2n.
SeqFromClifford(v) : AlgClffElt -> SeqEnum
The sequence of pairs < S, a > which represents the element v of a Clifford algebra.

Example AlgClff_Eltfromseq (H95E4)

We illustrate the conversion of a Clifford algebra element to its monomial representation.
> K<z> := GF(5,2);
> Q := StandardQuadraticForm(4,K);
> C,V,f := CliffordAlgebra(Q);
> x := elt< C | 1,0,2,z,0,z^2,z^11,0,0,0,0,z,0,0,0,z^13 >;
> L := SeqFromClifford(x);
> L;
[
    <[], 1>,
    <[ 2 ], 2>,
    <[ 1, 2 ], z>,
    <[ 1, 3 ], z^2>,
    <[ 2, 3 ], z^11>,
    <[ 1, 2, 4 ], z>,
    <[ 1, 2, 3, 4 ], z^13>
]
> x eq SeqToClifford(C,L);
true
> AsPolynomial(x);
z^13*e1*e2*e3*e4 + z*e1*e2*e4 + z*e1*e2 + z^2*e1*e3 + z^11*e2*e3 + 2*e2 + 1
BasisProduct(C, i, j) : AlgClff, RngIntElt, RngIntElt -> AlgGenElt
The product of the i-th and j-th basis element of the Clifford algebra C.
BasisProduct(C, L) : AlgClff, SeqEnum -> AlgGenElt
The product of the basis elements (indexed by L) of the quadratic space of the Clifford algebra C.
BasisElement(C, S) : AlgClff, SetEnum -> AlgClffElt
The basis element C.j of the Clifford algebra C corresponding to the subset S of {1, 2, ..., n} where j = 1 + ∑k∈S2k - 1. If e1, e2, ..., en is the standard basis for the quadratic space of C, this corresponds to the product ei1 * ei2 * ... * eih, where S = {i1, i2, ..., ih} and i1 < i2 < ... < ih.
V2.28, 13 July 2023