We want to test some properties of the CliffordAlgebra? domain implemented in AXIOM(TM)
axiom
DiagMat:=matrix[[1,0,0],[0,1,0],[0,0,1]]
Type: Matrix(Integer)
axiom
DQ := quadraticForm DiagMat
Type: QuadraticForm
?(3,Fraction(Integer))
axiom
CLDQ := CliffordAlgebra(3, Fraction(Integer), DQ)
Type: Domain
CLDQ contains now the Clifford algebra constructor for the Clifford algebra CL(R^3,Q)
where Q is the diagonal quadratic form in the basis of generators
axiom
basGen: List CLDQ :=[1, e(1), e(2), e(1)*e(2), e(3), e(1)*e(3), e(2)*e(3),
e(1)*e(2)*e(3)]
Type: List(CliffordAlgebra
?(3,Fraction(Integer),[[1,0,0],[0,1,0]
?,[0,0,1]]
?))
And we can now compute within this basis
axiom
elem1: CLDQ :=2*e(1)+e(2)
Type: CliffordAlgebra
?(3,Fraction(Integer),[[1,0,0],[0,1,0]
?,[0,0,1]]
?)
axiom
elem2: CLDQ :=1/2+e(2)+3*e(1)*e(3)
Type: CliffordAlgebra
?(3,Fraction(Integer),[[1,0,0],[0,1,0]
?,[0,0,1]]
?)
axiom
elem1*elem2
Type: CliffordAlgebra
?(3,Fraction(Integer),[[1,0,0],[0,1,0]
?,[0,0,1]]
?)
which is fine.
Lets now see what happens if we change the basis. We define new generators
axiom
f1:CLDQ := e(1)-e(2)
Type: CliffordAlgebra
?(3,Fraction(Integer),[[1,0,0],[0,1,0]
?,[0,0,1]]
?)
axiom
f2:CLDQ := e(2)-e(3)
Type: CliffordAlgebra
?(3,Fraction(Integer),[[1,0,0],[0,1,0]
?,[0,0,1]]
?)
axiom
f3:CLDQ := e(1)+e(2)+e(3)
Type: CliffordAlgebra
?(3,Fraction(Integer),[[1,0,0],[0,1,0]
?,[0,0,1]]
?)
axiom
lstFGen: List CLDQ := [f1, f2, f3]
Type: List(CliffordAlgebra
?(3,Fraction(Integer),[[1,0,0],[0,1,0]
?,[0,0,1]]
?))
and check what the new defining relations are
axiom
matrix [[y*x for x in lstFGen] for y in lstFGen]
Type: Matrix(CliffordAlgebra
?(3,Fraction(Integer),[[1,0,0],[0,1,0]
?,[0,0,1]]
?))
However, let us do the same calculations with another, symmetric but not diagonal quadratic form
axiom
OffDiagMat:=matrix[[0,0,1],[0,1,0],[1,0,0]]
Type: Matrix(Integer)
axiom
ODQ := quadraticForm OffDiagMat
Type: QuadraticForm
?(3,Fraction(Integer))
axiom
CLODQ := CliffordAlgebra(3, Fraction(Integer), ODQ)
Type: Domain
axiom
basGenO: List CLODQ :=[1, e(1), e(2), e(1)*e(2), e(3), e(1)*e(3),
e(2)*e(3), e(1)*e(2)*e(3)]
Type: List(CliffordAlgebra
?(3,Fraction(Integer),[[0,0,1],[0,1,0]
?,[1,0,0]]
?))
axiom
basO: List CLODQ :=[e(1), e(2), e(3)]
Type: List(CliffordAlgebra
?(3,Fraction(Integer),[[0,0,1],[0,1,0]
?,[1,0,0]]
?))
and let us check the multiplication table on the basis and in general:
axiom
matrix [[y*x for x in basO] for y in basO]
Type: Matrix(CliffordAlgebra
?(3,Fraction(Integer),[[0,0,1],[0,1,0]
?,[1,0,0]]
?))
axiom
matrix [[y*x for x in basGenO] for y in basGenO]
Type: Matrix(CliffordAlgebra
?(3,Fraction(Integer),[[0,0,1],[0,1,0]
?,[1,0,0]]
?))
which is irritation, since the Clifford product is just unevaluated
, hence the
basis elements are generated by Cliffrord products. We would liek to see the
result in a Grassmann basis
axiom
fbasis:List CLODQ :=[ 1, e(1), e(2), 1/2*(e(1)*e(2)-e(2)*e(1), e(3),
1/2*(e(1)*e(3)-e(3)*e(1), 1/2*(e(2)*e(3)-e(3)*e(2),
1/6(e(1)*e(2)*e(3) + e(2)*e(3)*e(1) +
e(3)*e(1)*e(2) - e(1)*e(3)*e(2) - e(3)*e(2)*e(1) -
e(2)*e(1)*e(3)) ]
Line 1: fbasis:List CLODQ :=[ 1, e(1), e(2),
1/2*(e(1)*e(2)-e(2)*e(1), e(3), 1/2*(e(1)*e(3)-e(3)*e(1),
1/2*(e(2)*e(3)-e(3)*e(2),
....................................................................................
...............A
Error A: Missing mate.
Line 2: 1/6(e(1)*e(2)*e(3) + e(2)*e(3)*e(1) +
e(3)*e(1)*e(2) - e(1)*e(3)*e(2) - e(3)*e(2)*e(1) -
e(2)*e(1)*e(3)) ]
....................................................................................
..........................................A
Error A: syntax error at top level
Error A: Possibly missing a )
3 error(s) parsing