login  home  contents  what's new  discussion  bug reports     help  links  subscribe  changes  refresh  edit

Edit detail for SandBoxNonAssociativeAlgebra revision 14 of 25

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
Editor: Bill Page
Time: 2008/04/28 21:52:57 GMT-7
Note: properties

changed:
-
\begin{axiom}
V has FramedNonAssociativeAlgebra(Fraction Integer)
basisOfCenter()$AlgebraPackage(Fraction Integer,V)
basisOfCentroid()$AlgebraPackage(Fraction Integer,V)
basisOfNucleus()$AlgebraPackage(Fraction Integer,V)
basisOfLeftNucloid()$AlgebraPackage(Fraction Integer,V)
\end{axiom}

\begin{axiom}
G:=GenericNonAssociativeAlgebra(Fraction Integer, 4, [e,i,j,k],sc)
)show G
p1:=generic([x1,y1,z1,w1])$G
p2:=generic([x2,y2,z2,w2])$G
p3:=generic([x3,y3,z3,w3])$G
associator(p1,p2,p3)$G
leftRegularRepresentation(p1)
rightRegularRepresentation(p1)
\end{axiom}

Ref: http://arxiv.org/abs/0711.3220

Fourvector algebra

Author: Diego Saa (Submitted on 20 Nov 2007)

Abstract: The algebra of fourvectors is described. The fourvectors are more appropriate than the Hamilton quaternions for its use in Physics and the sciences in general. The fourvectors embrace the 3D vectors in a natural form. It is shown the excellent ability to perform rotations with the use of fourvectors, as well as their use in relativity for producing Lorentz boosts, which are understood as simple rotations.

fricas
(1) -> _*_*(x,y)==concat(x(1) * y(1) + dot(x(2..), y(2..)), x(1) * y(2..) - x(2..) * y(1) + cross(x(2..), y(2..)))
Type: Void
fricas
e:Vector INT:=[1,0,0,0]

\label{eq1}\left[ 1, \: 0, \: 0, \: 0 \right](1)
Type: Vector(Integer)
fricas
i:Vector INT:=[0,1,0,0]

\label{eq2}\left[ 0, \: 1, \: 0, \: 0 \right](2)
Type: Vector(Integer)
fricas
j:Vector INT:=[0,0,1,0]

\label{eq3}\left[ 0, \: 0, \: 1, \: 0 \right](3)
Type: Vector(Integer)
fricas
k:Vector INT:=[0,0,0,1]

\label{eq4}\left[ 0, \: 0, \: 0, \: 1 \right](4)
Type: Vector(Integer)
fricas
test(e**e=e)  and _
test(i**i=e)  and _
test(j**j=e)  and _
test(k**k=e)  and _
test(e**i=i)  and _
test(e**j=j)  and _
test(e**k=k)  and _
test(i**e=-i) and _
test(j**e=-j) and _
test(k**e=-k) and _
test(i**j=k)  and _
test(j**i=-k) and _
test(k**i=j)  and _
test(i**k=-j) and _
test(j**k=i)  and _
test(k**j=-i)
fricas
Compiling function ** with type (Vector(Integer), Vector(Integer))
       -> Vector(Integer)

\label{eq5} \mbox{\rm true} (5)
Type: Boolean

Axiom has a domain for NonAssociative? Algebra

This is documented in the article: Computations in Algebras of Fixed Rank by Johannes Grabmeir and Robert Wisbauer, from the book "Computational Algebra" By Klaus G. Fischer, Philippe Loustaunau, Jay Shapiro.

The algebra above can be given by structural constants.

fricas
)clear all
All user variables and function definitions have been cleared. sc:Vector Matrix Fraction Integer := [ _ [[ 1, 0, 0, 0], _ [ 0, 1, 0, 0], _ [ 0, 0, 1, 0], _ [ 0, 0, 0, 1]], _ [[ 0, 1, 0, 0], _ [-1, 0, 0, 0], _ [ 0, 0, 0, 1], _ [ 0, 0,-1, 0]], _ [[ 0, 0, 1, 0], _ [ 0, 0, 0,-1], _ [-1, 0, 0, 0], _ [ 0, 1, 0, 0]], _ [[ 0, 0, 0, 1], _ [ 0, 0, 1, 0], _ [ 0,-1, 0, 0], _ [-1, 0, 0, 0]]];
Type: Vector(Matrix(Fraction(Integer)))
fricas
V:=AlgebraGivenByStructuralConstants(Fraction Integer, 4, [e,i,j,k],sc)

\label{eq6}\hbox{\axiomType{AlgebraGivenByStructuralConstants}\ } \left({{\hbox{\axiomType{Fraction}\ } \left({\hbox{\axiomType{Integer}\ }}\right)}, \: 4, \:{\left[ e , \: i , \: j , \: k \right]}, \:{\left[{\left[ 
\begin{array}{cccc}
1 & 0 & 0 & 0 
\
0 & 1 & 0 & 0 
\
0 & 0 & 1 & 0 
\
0 & 0 & 0 & 1 
(6)
Type: Type
fricas
)show V
AlgebraGivenByStructuralConstants(Fraction(Integer),4,[e,i,j,k],[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]],[[0,1,0,0],[-1,0,0,0],[0,0,0,1],[0,0,-1,0]],[[0,0,1,0],[0,0,0,-1],[-1,0,0,0],[0,1,0,0]],[[0,0,0,1],[0,0,1,0],[0,-1,0,0],[-1,0,0,0]]]) is a domain constructor. Abbreviation for AlgebraGivenByStructuralConstants is ALGSC This constructor is exposed in this frame. 89 names for 110 operations in this domain. ------------------------------- Operations --------------------------------
0 : () -> % ?*? : (%, %) -> % ?*? : (Integer, %) -> % ?*? : (PositiveInteger, %) -> % ?+? : (%, %) -> % -? : % -> % ?-? : (%, %) -> % ?=? : (%, %) -> Boolean ?^? : (%, PositiveInteger) -> % alternative? : () -> Boolean antiAssociative? : () -> Boolean antiCommutative? : () -> Boolean antiCommutator : (%, %) -> % associative? : () -> Boolean associator : (%, %, %) -> % basis : () -> Vector(%) coerce : % -> OutputForm commutative? : () -> Boolean commutator : (%, %) -> % flexible? : () -> Boolean hash : % -> SingleInteger jacobiIdentity? : () -> Boolean jordanAdmissible? : () -> Boolean jordanAlgebra? : () -> Boolean latex : % -> String leadingMonomial : % -> % leftAlternative? : () -> Boolean leftNorm : % -> Fraction(Integer) lieAdmissible? : () -> Boolean lieAlgebra? : () -> Boolean monomial? : % -> Boolean monomials : % -> List(%) opposite? : (%, %) -> Boolean powerAssociative? : () -> Boolean rank : () -> PositiveInteger recip : % -> Union(%,"failed") reductum : % -> % rightAlternative? : () -> Boolean sample : () -> % smaller? : (%, %) -> Boolean someBasis : () -> Vector(%) unit : () -> Union(%,"failed") zero? : % -> Boolean ?~=? : (%, %) -> Boolean ?*? : (%, Fraction(Integer)) -> % ?*? : (Fraction(Integer), %) -> % ?*? : (NonNegativeInteger, %) -> % ?*? : (SquareMatrix(4,Fraction(Integer)), %) -> % apply : (Matrix(Fraction(Integer)), %) -> % associatorDependence : () -> List(Vector(Fraction(Integer))) coefficient : (%, OrderedVariableList([e,i,j,k])) -> Fraction(Integer) coefficients : % -> List(Fraction(Integer)) coerce : Vector(Fraction(Integer)) -> % conditionsForIdempotents : () -> List(Polynomial(Fraction(Integer))) conditionsForIdempotents : Vector(%) -> List(Polynomial(Fraction(Integer))) construct : List(Record(k: OrderedVariableList([e,i,j,k]),c: Fraction(Integer))) -> % constructOrdered : List(Record(k: OrderedVariableList([e,i,j,k]),c: Fraction(Integer))) -> % convert : Vector(Fraction(Integer)) -> % convert : % -> Vector(Fraction(Integer)) coordinates : Vector(%) -> Matrix(Fraction(Integer)) coordinates : (Vector(%), Vector(%)) -> Matrix(Fraction(Integer)) coordinates : % -> Vector(Fraction(Integer)) coordinates : (%, Vector(%)) -> Vector(Fraction(Integer)) elt : (%, Integer) -> Fraction(Integer) hashUpdate! : (HashState, %) -> HashState leadingCoefficient : % -> Fraction(Integer) leadingSupport : % -> OrderedVariableList([e,i,j,k]) leadingTerm : % -> Record(k: OrderedVariableList([e,i,j,k]),c: Fraction(Integer)) leftCharacteristicPolynomial : % -> SparseUnivariatePolynomial(Fraction(Integer)) leftDiscriminant : () -> Fraction(Integer) leftDiscriminant : Vector(%) -> Fraction(Integer) leftMinimalPolynomial : % -> SparseUnivariatePolynomial(Fraction(Integer)) leftPower : (%, PositiveInteger) -> % leftRankPolynomial : () -> SparseUnivariatePolynomial(Polynomial(Fraction(Integer))) leftRecip : % -> Union(%,"failed") leftRegularRepresentation : % -> Matrix(Fraction(Integer)) leftRegularRepresentation : (%, Vector(%)) -> Matrix(Fraction(Integer)) leftTrace : % -> Fraction(Integer) leftTraceMatrix : () -> Matrix(Fraction(Integer)) leftTraceMatrix : Vector(%) -> Matrix(Fraction(Integer)) leftUnit : () -> Union(%,"failed") leftUnits : () -> Union(Record(particular: %,basis: List(%)),"failed") linearExtend : ((OrderedVariableList([e,i,j,k]) -> Fraction(Integer)), %) -> Fraction(Integer) listOfTerms : % -> List(Record(k: OrderedVariableList([e,i,j,k]),c: Fraction(Integer))) map : ((Fraction(Integer) -> Fraction(Integer)), %) -> % monomial : (Fraction(Integer), OrderedVariableList([e,i,j,k])) -> % noncommutativeJordanAlgebra? : () -> Boolean numberOfMonomials : % -> NonNegativeInteger plenaryPower : (%, PositiveInteger) -> % represents : Vector(Fraction(Integer)) -> % represents : (Vector(Fraction(Integer)), Vector(%)) -> % rightCharacteristicPolynomial : % -> SparseUnivariatePolynomial(Fraction(Integer)) rightDiscriminant : () -> Fraction(Integer) rightDiscriminant : Vector(%) -> Fraction(Integer) rightMinimalPolynomial : % -> SparseUnivariatePolynomial(Fraction(Integer)) rightNorm : % -> Fraction(Integer) rightPower : (%, PositiveInteger) -> % rightRankPolynomial : () -> SparseUnivariatePolynomial(Polynomial(Fraction(Integer))) rightRecip : % -> Union(%,"failed") rightRegularRepresentation : % -> Matrix(Fraction(Integer)) rightRegularRepresentation : (%, Vector(%)) -> Matrix(Fraction(Integer)) rightTrace : % -> Fraction(Integer) rightTraceMatrix : () -> Matrix(Fraction(Integer)) rightTraceMatrix : Vector(%) -> Matrix(Fraction(Integer)) rightUnit : () -> Union(%,"failed") rightUnits : () -> Union(Record(particular: %,basis: List(%)),"failed") structuralConstants : () -> Vector(Matrix(Fraction(Integer))) structuralConstants : Vector(%) -> Vector(Matrix(Fraction(Integer))) subtractIfCan : (%, %) -> Union(%,"failed") support : % -> List(OrderedVariableList([e,i,j,k]))

fricas
a:=basis()$V

\label{eq7}\left[ e , \: i , \: j , \: k \right](7)
Type: Vector(AlgebraGivenByStructuralConstants?(Fraction(Integer),4,[e, i, j, k],[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], [[0, 1, 0, 0], [-1, 0, 0, 0], [0, 0, 0, 1], [0, 0, -1, 0]], [[0, 0, 1, 0], [0, 0, 0, -1], [-1, 0, 0, 0], [0, 1, 0, 0]], [[0, 0, 0, 1], [0, 0, 1, 0], [0, -1, 0, 0], [-1, 0, 0, 0]]]))
fricas
matrix([[(a.i * a.j) for j in 1..4] for i in 1..4])$OutputForm

\label{eq8}\left[ 
\begin{array}{cccc}
e & i & j & k 
\
- i & e & k & - j 
\
- j & - k & e & i 
\
- k & j & - i & e 
(8)
Type: OutputForm?
fricas
leftUnit()$V

\label{eq9}e(9)
Type: Union(AlgebraGivenByStructuralConstants?(Fraction(Integer),4,[e, i, j, k],[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], [[0, 1, 0, 0], [-1, 0, 0, 0], [0, 0, 0, 1], [0, 0, -1, 0]], [[0, 0, 1, 0], [0, 0, 0, -1], [-1, 0, 0, 0], [0, 1, 0, 0]], [[0, 0, 0, 1], [0, 0, 1, 0], [0, -1, 0, 0], [-1, 0, 0, 0]]]),...)
fricas
rightUnit()$V

\label{eq10}\verb#"failed"#(10)
Type: Union("failed",...)
fricas
alternative?()$V

\label{eq11} \mbox{\rm false} (11)
Type: Boolean
fricas
leftAlternative?()$V

\label{eq12} \mbox{\rm false} (12)
Type: Boolean
fricas
rightAlternative?()$V

\label{eq13} \mbox{\rm false} (13)
Type: Boolean
fricas
associative?()$V

\label{eq14} \mbox{\rm false} (14)
Type: Boolean
fricas
antiAssociative?()$V

\label{eq15} \mbox{\rm false} (15)
Type: Boolean
fricas
--powerAssociative?()$V
commutative?()$V

\label{eq16} \mbox{\rm false} (16)
Type: Boolean
fricas
jordanAlgebra?()$V

\label{eq17} \mbox{\rm false} (17)
Type: Boolean
fricas
jordanAdmissible?()$V

\label{eq18} \mbox{\rm false} (18)
Type: Boolean
fricas
noncommutativeJordanAlgebra?()$V

\label{eq19} \mbox{\rm false} (19)
Type: Boolean
fricas
lieAlgebra?()$V

\label{eq20} \mbox{\rm false} (20)
Type: Boolean
fricas
lieAdmissible?()$V

\label{eq21} \mbox{\rm false} (21)
Type: Boolean
fricas
jacobiIdentity?()$V

\label{eq22} \mbox{\rm false} (22)
Type: Boolean

fricas
V has FramedNonAssociativeAlgebra(Fraction Integer)

\label{eq23} \mbox{\rm true} (23)
Type: Boolean
fricas
basisOfCenter()$AlgebraPackage(Fraction Integer,V)

\label{eq24}\left[ \right](24)
Type: List(AlgebraGivenByStructuralConstants?(Fraction(Integer),4,[e, i, j, k],[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], [[0, 1, 0, 0], [-1, 0, 0, 0], [0, 0, 0, 1], [0, 0, -1, 0]], [[0, 0, 1, 0], [0, 0, 0, -1], [-1, 0, 0, 0], [0, 1, 0, 0]], [[0, 0, 0, 1], [0, 0, 1, 0], [0, -1, 0, 0], [-1, 0, 0, 0]]]))
fricas
basisOfCentroid()$AlgebraPackage(Fraction Integer,V)

\label{eq25}\left[ \left[ 
\begin{array}{cccc}
1 & 0 & 0 & 0 
\
0 & 1 & 0 & 0 
\
0 & 0 & 1 & 0 
\
0 & 0 & 0 & 1 
(25)
Type: List(Matrix(Fraction(Integer)))
fricas
basisOfNucleus()$AlgebraPackage(Fraction Integer,V)

\label{eq26}\left[ \right](26)
Type: List(AlgebraGivenByStructuralConstants?(Fraction(Integer),4,[e, i, j, k],[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], [[0, 1, 0, 0], [-1, 0, 0, 0], [0, 0, 0, 1], [0, 0, -1, 0]], [[0, 0, 1, 0], [0, 0, 0, -1], [-1, 0, 0, 0], [0, 1, 0, 0]], [[0, 0, 0, 1], [0, 0, 1, 0], [0, -1, 0, 0], [-1, 0, 0, 0]]]))
fricas
basisOfLeftNucloid()$AlgebraPackage(Fraction Integer,V)

\label{eq27}\left[ \left[ 
\begin{array}{cccc}
1 & 0 & 0 & 0 
\
0 & 1 & 0 & 0 
\
0 & 0 & 1 & 0 
\
0 & 0 & 0 & 1 
(27)
Type: List(Matrix(Fraction(Integer)))

fricas
G:=GenericNonAssociativeAlgebra(Fraction Integer, 4, [e,i,j,k],sc)

\label{eq28}\hbox{\axiomType{GenericNonAssociativeAlgebra}\ } \left({{\hbox{\axiomType{Fraction}\ } \left({\hbox{\axiomType{Integer}\ }}\right)}, \: 4, \:{\left[ e , \: i , \: j , \: k \right]}, \:{\left[{\left[ 
\begin{array}{cccc}
1 & 0 & 0 & 0 
\
0 & 1 & 0 & 0 
\
0 & 0 & 1 & 0 
\
0 & 0 & 0 & 1 
(28)
Type: Type
fricas
)show G
GenericNonAssociativeAlgebra(Fraction(Integer),4,[e,i,j,k],[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]],[[0,1,0,0],[-1,0,0,0],[0,0,0,1],[0,0,-1,0]],[[0,0,1,0],[0,0,0,-1],[-1,0,0,0],[0,1,0,0]],[[0,0,0,1],[0,0,1,0],[0,-1,0,0],[-1,0,0,0]]]) is a domain constructor. Abbreviation for GenericNonAssociativeAlgebra is GCNAALG This constructor is not exposed in this frame. 82 names for 112 operations in this domain. ------------------------------- Operations --------------------------------
0 : () -> % ?*? : (%, %) -> % ?*? : (Integer, %) -> % ?*? : (PositiveInteger, %) -> % ?+? : (%, %) -> % -? : % -> % ?-? : (%, %) -> % ?=? : (%, %) -> Boolean ?^? : (%, PositiveInteger) -> % alternative? : () -> Boolean antiAssociative? : () -> Boolean antiCommutative? : () -> Boolean antiCommutator : (%, %) -> % associative? : () -> Boolean associator : (%, %, %) -> % basis : () -> Vector(%) coerce : % -> OutputForm commutative? : () -> Boolean commutator : (%, %) -> % flexible? : () -> Boolean generic : () -> % generic : Symbol -> % generic : Vector(%) -> % generic : Vector(Symbol) -> % hash : % -> SingleInteger jacobiIdentity? : () -> Boolean jordanAdmissible? : () -> Boolean jordanAlgebra? : () -> Boolean latex : % -> String leftAlternative? : () -> Boolean lieAdmissible? : () -> Boolean lieAlgebra? : () -> Boolean opposite? : (%, %) -> Boolean powerAssociative? : () -> Boolean rank : () -> PositiveInteger recip : % -> Union(%,"failed") rightAlternative? : () -> Boolean sample : () -> % someBasis : () -> Vector(%) unit : () -> Union(%,"failed") zero? : % -> Boolean ?~=? : (%, %) -> Boolean ?*? : (%, Fraction(Polynomial(Fraction(Integer)))) -> % ?*? : (Fraction(Polynomial(Fraction(Integer))), %) -> % ?*? : (NonNegativeInteger, %) -> % ?*? : (SquareMatrix(4,Fraction(Polynomial(Fraction(Integer)))), %) -> % apply : (Matrix(Fraction(Polynomial(Fraction(Integer)))), %) -> % associatorDependence : () -> List(Vector(Fraction(Polynomial(Fraction(Integer))))) coerce : Vector(Fraction(Polynomial(Fraction(Integer)))) -> % conditionsForIdempotents : () -> List(Polynomial(Fraction(Integer))) conditionsForIdempotents : Vector(%) -> List(Polynomial(Fraction(Integer))) conditionsForIdempotents : () -> List(Polynomial(Fraction(Polynomial(Fraction(Integer))))) conditionsForIdempotents : Vector(%) -> List(Polynomial(Fraction(Polynomial(Fraction(Integer))))) convert : Vector(Fraction(Polynomial(Fraction(Integer)))) -> % convert : % -> Vector(Fraction(Polynomial(Fraction(Integer)))) coordinates : Vector(%) -> Matrix(Fraction(Polynomial(Fraction(Integer)))) coordinates : (Vector(%), Vector(%)) -> Matrix(Fraction(Polynomial(Fraction(Integer)))) coordinates : % -> Vector(Fraction(Polynomial(Fraction(Integer)))) coordinates : (%, Vector(%)) -> Vector(Fraction(Polynomial(Fraction(Integer)))) elt : (%, Integer) -> Fraction(Polynomial(Fraction(Integer))) generic : (Symbol, Vector(%)) -> % generic : (Vector(Symbol), Vector(%)) -> % genericLeftDiscriminant : () -> Fraction(Polynomial(Fraction(Integer))) genericLeftMinimalPolynomial : % -> SparseUnivariatePolynomial(Fraction(Polynomial(Fraction(Integer)))) genericLeftNorm : % -> Fraction(Polynomial(Fraction(Integer))) genericLeftTrace : % -> Fraction(Polynomial(Fraction(Integer))) genericLeftTraceForm : (%, %) -> Fraction(Polynomial(Fraction(Integer))) genericRightDiscriminant : () -> Fraction(Polynomial(Fraction(Integer))) genericRightMinimalPolynomial : % -> SparseUnivariatePolynomial(Fraction(Polynomial(Fraction(Integer)))) genericRightNorm : % -> Fraction(Polynomial(Fraction(Integer))) genericRightTrace : % -> Fraction(Polynomial(Fraction(Integer))) genericRightTraceForm : (%, %) -> Fraction(Polynomial(Fraction(Integer))) hashUpdate! : (HashState, %) -> HashState leftCharacteristicPolynomial : % -> SparseUnivariatePolynomial(Fraction(Polynomial(Fraction(Integer)))) leftDiscriminant : () -> Fraction(Polynomial(Fraction(Integer))) leftDiscriminant : Vector(%) -> Fraction(Polynomial(Fraction(Integer))) leftMinimalPolynomial : % -> SparseUnivariatePolynomial(Fraction(Polynomial(Fraction(Integer)))) leftNorm : % -> Fraction(Polynomial(Fraction(Integer))) leftPower : (%, PositiveInteger) -> % leftRankPolynomial : () -> SparseUnivariatePolynomial(Fraction(Polynomial(Fraction(Integer)))) leftRankPolynomial : () -> SparseUnivariatePolynomial(Polynomial(Fraction(Polynomial(Fraction(Integer))))) leftRecip : % -> Union(%,"failed") leftRegularRepresentation : % -> Matrix(Fraction(Polynomial(Fraction(Integer)))) leftRegularRepresentation : (%, Vector(%)) -> Matrix(Fraction(Polynomial(Fraction(Integer)))) leftTrace : % -> Fraction(Polynomial(Fraction(Integer))) leftTraceMatrix : () -> Matrix(Fraction(Polynomial(Fraction(Integer)))) leftTraceMatrix : Vector(%) -> Matrix(Fraction(Polynomial(Fraction(Integer)))) leftUnit : () -> Union(%,"failed") leftUnits : () -> Union(Record(particular: %,basis: List(%)),"failed") noncommutativeJordanAlgebra? : () -> Boolean plenaryPower : (%, PositiveInteger) -> % represents : Vector(Fraction(Polynomial(Fraction(Integer)))) -> % represents : (Vector(Fraction(Polynomial(Fraction(Integer)))), Vector(%)) -> % rightCharacteristicPolynomial : % -> SparseUnivariatePolynomial(Fraction(Polynomial(Fraction(Integer)))) rightDiscriminant : () -> Fraction(Polynomial(Fraction(Integer))) rightDiscriminant : Vector(%) -> Fraction(Polynomial(Fraction(Integer))) rightMinimalPolynomial : % -> SparseUnivariatePolynomial(Fraction(Polynomial(Fraction(Integer)))) rightNorm : % -> Fraction(Polynomial(Fraction(Integer))) rightPower : (%, PositiveInteger) -> % rightRankPolynomial : () -> SparseUnivariatePolynomial(Fraction(Polynomial(Fraction(Integer)))) rightRankPolynomial : () -> SparseUnivariatePolynomial(Polynomial(Fraction(Polynomial(Fraction(Integer))))) rightRecip : % -> Union(%,"failed") rightRegularRepresentation : % -> Matrix(Fraction(Polynomial(Fraction(Integer)))) rightRegularRepresentation : (%, Vector(%)) -> Matrix(Fraction(Polynomial(Fraction(Integer)))) rightTrace : % -> Fraction(Polynomial(Fraction(Integer))) rightTraceMatrix : () -> Matrix(Fraction(Polynomial(Fraction(Integer)))) rightTraceMatrix : Vector(%) -> Matrix(Fraction(Polynomial(Fraction(Integer)))) rightUnit : () -> Union(%,"failed") rightUnits : () -> Union(Record(particular: %,basis: List(%)),"failed") structuralConstants : () -> Vector(Matrix(Fraction(Polynomial(Fraction(Integer))))) structuralConstants : Vector(%) -> Vector(Matrix(Fraction(Polynomial(Fraction(Integer))))) subtractIfCan : (%, %) -> Union(%,"failed")
p1:=generic([x1,y1,z1,w1])$G

\label{eq29}{w 1 \  k}+{z 1 \  j}+{y 1 \  i}+{x 1 \  e}(29)
Type: GenericNonAssociativeAlgebra?(Fraction(Integer),4,[e, i, j, k],[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], [[0, 1, 0, 0], [-1, 0, 0, 0], [0, 0, 0, 1], [0, 0, -1, 0]], [[0, 0, 1, 0], [0, 0, 0, -1], [-1, 0, 0, 0], [0, 1, 0, 0]], [[0, 0, 0, 1], [0, 0, 1, 0], [0, -1, 0, 0], [-1, 0, 0, 0]]])
fricas
p2:=generic([x2,y2,z2,w2])$G

\label{eq30}{w 2 \  k}+{z 2 \  j}+{y 2 \  i}+{x 2 \  e}(30)
Type: GenericNonAssociativeAlgebra?(Fraction(Integer),4,[e, i, j, k],[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], [[0, 1, 0, 0], [-1, 0, 0, 0], [0, 0, 0, 1], [0, 0, -1, 0]], [[0, 0, 1, 0], [0, 0, 0, -1], [-1, 0, 0, 0], [0, 1, 0, 0]], [[0, 0, 0, 1], [0, 0, 1, 0], [0, -1, 0, 0], [-1, 0, 0, 0]]])
fricas
p3:=generic([x3,y3,z3,w3])$G

\label{eq31}{w 3 \  k}+{z 3 \  j}+{y 3 \  i}+{x 3 \  e}(31)
Type: GenericNonAssociativeAlgebra?(Fraction(Integer),4,[e, i, j, k],[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], [[0, 1, 0, 0], [-1, 0, 0, 0], [0, 0, 0, 1], [0, 0, -1, 0]], [[0, 0, 1, 0], [0, 0, 0, -1], [-1, 0, 0, 0], [0, 1, 0, 0]], [[0, 0, 0, 1], [0, 0, 1, 0], [0, -1, 0, 0], [-1, 0, 0, 0]]])
fricas
associator(p1,p2,p3)$G

\label{eq32}\begin{array}{@{}l}
\displaystyle
{{\left({
\begin{array}{@{}l}
\displaystyle
-{2 \  x 2 \  y 1 \  z 3}+{2 \  w 3 \  z 1 \  z 2}+{2 \  x 2 \  y 3 \  z 1}+ 
\
\
\displaystyle
{2 \  w 3 \  y 1 \  y 2}+{2 \  w 1 \  x 2 \  x 3}+{2 \  w 1 \  w 2 \  w 3}
(32)
Type: GenericNonAssociativeAlgebra?(Fraction(Integer),4,[e, i, j, k],[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], [[0, 1, 0, 0], [-1, 0, 0, 0], [0, 0, 0, 1], [0, 0, -1, 0]], [[0, 0, 1, 0], [0, 0, 0, -1], [-1, 0, 0, 0], [0, 1, 0, 0]], [[0, 0, 0, 1], [0, 0, 1, 0], [0, -1, 0, 0], [-1, 0, 0, 0]]])
fricas
leftRegularRepresentation(p1)

\label{eq33}\left[ 
\begin{array}{cccc}
x 1 & y 1 & z 1 & w 1 
\
- y 1 & x 1 & - w 1 & z 1 
\
- z 1 & w 1 & x 1 & - y 1 
\
- w 1 & - z 1 & y 1 & x 1 
(33)
Type: Matrix(Fraction(Polynomial(Fraction(Integer))))
fricas
rightRegularRepresentation(p1)

\label{eq34}\left[ 
\begin{array}{cccc}
x 1 & y 1 & z 1 & w 1 
\
y 1 & - x 1 & w 1 & - z 1 
\
z 1 & - w 1 & - x 1 & y 1 
\
w 1 & z 1 & - y 1 & - x 1 
(34)
Type: Matrix(Fraction(Polynomial(Fraction(Integer))))