Clifford algebras were invented to understand rigid transformations on their base space V. To explore the zero divisors of C we consider the action on C of multiplying on the left by an element x of C. In particular consider the action of multiplying by an element of {x| m(x)=1} where “m(x)” = |x|2 = <x> = (mag2 x) = (sum of squares of scalar coefficients in basis expansion of x) . λx.m(x) = m is not one of the functions normally of significance in Clifford algebras but it is a coordinate free function. Some of these formulae fail if V’s quadratic form is not positive definite.
m(xy) = m(x)m(y) is true for octonions but not for sedenions. Octonions are a divisions algebra and sedenions are not even though most sedenions have inverses. m(xy) = m(x)m(y) is true for Cl(n, 0) only if 0≤n<3.
Definitions for this page
C = Cl(4, 0),
V is the 4D space within C that generates C,
BV = {γ0, γ1, γ2, γ3} is an orthonormal basis for V,
t = γ0γ1γ2γ3,
For set x, P(x) is the power set of x, sometimes written 2x.
It is the set of subsets of x.
If x ⊆ C and x is finite then Π(x) is the product of the elements of x. Π(∅) = 1. Π(BV) = t.
(Π is ambiguous due to lack of commutativity but I use it where the only ambiguity is the sign and where sign doesn't matter.)
If x ⊆ C then −x = {−z | z ∊ x}.
BC = {Π(x) | x⊆BV} is a basis for C.
The code below reveals that the set B = {a(t+1) | a ∊ C} is an 8 dimensional subspace of left zero divisors which is spanned by a set Q of 8 independent Clifford numbers. Q = {1+γ0123, γ0+γ123, γ1−γ023, γ01−γ23, γ2+γ013, γ02+γ13, γ12−γ03, γ012−γ3}.
The code works as follows: Q = {x(t+1)|x ∊ BC}. Q spans B.
B is closed under multiplication. An example of aa=0: (γ0+γ123)(γ0+γ123) = 0.
; generate set of subsets where set is a list: (define (P a) (if (null? a) '(()) (let ((c (car a))) (let L ((x (P (cdr a)))) (if (null? x) '() (cons (car x) (cons (cons c (car x)) (L (cdr x))))))))) ; multi operand multiply: (define (lm x)(if (null? x) C1 (C* (car x) (lm (cdr x))))) ; generate all subsets of basis for V then generate basis for C. (define CB (map lm (map reverse (P (reverse basis))))) ; numlist turns a number tree into a list of numbers. ; below a must be a number tree and b a number list. Returns a number list. (define (numlist a) (let nl ((a a)(b '())) (if (number? a) (cons a b) (nl (car a) (nl (cdr a) b))))) ; observe generation of basis for C suitable for rank software. ; (map numlist (map lm (map reverse (P basis)))) ; => twist permutation. (define Q (map numlist (let ((T (C+ C1 (C* (C* g0 g1) (C* g2 g3))))) (map (lambda (p) (C* p T)) (map lm (map reverse (P basis)))))))
Q => ( (1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1) (0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0) (0 0 0 0 1 0 0 0 0 0 0 -1 0 0 0 0) (0 0 0 -1 0 0 0 0 0 0 0 0 1 0 0 0) (0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0) (0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0) (0 0 0 0 0 0 1 0 0 -1 0 0 0 0 0 0) (0 -1 0 0 0 0 0 0 0 0 0 0 0 0 1 0) (0 1 0 0 0 0 0 0 0 0 0 0 0 0 -1 0) (0 0 0 0 0 0 -1 0 0 1 0 0 0 0 0 0) (0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0) (0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0) (0 0 0 1 0 0 0 0 0 0 0 0 -1 0 0 0) (0 0 0 0 -1 0 0 0 0 0 0 1 0 0 0 0) (0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0) (1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1)) which is of rank 8. The first 8 are independent and for i = 0 thru 7 (15-i)th vector is same or negative of ith vector.
(define (treestr x) (let ld ((x x)) (if (and (pair? x)(null? (cdr x))) (car x) (ld (let z ((x x)) (if (and (pair? x)(pair? (cdr x))) (cons (cons (car x)(cadr x)) (z (cddr x))) '())))))) (define trn transpose) ; The following computes the smallest subset of Q that spans what Q does. (define Q (map treestr (trn (Rank (trn Q))))) ; Q is the computed set referred to above and (Sr Q) generates random elements form B.Here we automate this so we can perform this process on other discovered zero divisors.