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. axiom _*_*(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
axiom e:Vector INT:=[1,0,0,0]
Type: Vector Integer
axiom i:Vector INT:=[0,1,0,0]
Type: Vector Integer
axiom j:Vector INT:=[0,0,1,0]
Type: Vector Integer
axiom k:Vector INT:=[0,0,0,1]
Type: Vector Integer
axiom 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) axiom Compiling function ** with type (Vector Integer,Vector Integer) ->
Vector Integer
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. axiom )clear all Type: Vector Matrix Fraction Integer
axiom V:=AlgebraGivenByStructuralConstants(Fraction Integer, 4, [e,i,j,k],sc)
Type: Domain
Multiplication axiom a:=basis()$V
Type: Vector AlgebraGivenByStructuralConstants(Fraction Integer,4,[e,i,j,k]?,[MATRIX,MATRIX,MATRIX,MATRIX]?)
axiom matrix([[(a.i * a.j) for j in 1..4] for i in 1..4])$OutputForm
Type: OutputForm
Commutator and Associator axiom matrix([[commutator(a.x,a.y) for x in 1..4] for y in 1..4])$OutputForm
Type: OutputForm
axiom [matrix([[associator(a.x,a.y,a.z) for x in 1..4] for y in 1..4])$OutputForm for z in 1..4]
Type: List OutputForm
axiom for x in 1..4 repeat
for y in 1..4 repeat
for z in 1..4 repeat
if associator(a.x,a.y,a.z) ~= 0$V then
output([[a.x,a.y,a.z],"=",associator(a.x,a.y,a.z)])
Type: Void
Volume form? axiom a.2 * (a.3 * a.4) = (a.2 * a.3) * a.4
Type: Equation AlgebraGivenByStructuralConstants(Fraction Integer,4,[e,i,j,k]?,[MATRIX,MATRIX,MATRIX,MATRIX]?)
Check standard properties axiom leftUnit()$V
Type: Union(AlgebraGivenByStructuralConstants(Fraction Integer,4,[e,i,j,k]?,[MATRIX,MATRIX,MATRIX,MATRIX]?),...)
axiom rightUnit()$V
Type: Union("failed",...)
axiom alternative?()$V
Type: Boolean
axiom leftAlternative?()$V
Type: Boolean
axiom rightAlternative?()$V
Type: Boolean
axiom associative?()$V
Type: Boolean
axiom antiAssociative?()$V
Type: Boolean
axiom --powerAssociative?()$V commutative?()$V
Type: Boolean
axiom antiCommutative?()$V
Type: Boolean
axiom jordanAlgebra?()$V
Type: Boolean
axiom jordanAdmissible?()$V
Type: Boolean
axiom noncommutativeJordanAlgebra?()$V
Type: Boolean
axiom lieAlgebra?()$V
Type: Boolean
axiom lieAdmissible?()$V
Type: Boolean
axiom jacobiIdentity?()$V
Type: Boolean
Commuting elements axiom V has FramedNonAssociativeAlgebra(Fraction Integer)
Type: Boolean
axiom basisOfCommutingElements()$AlgebraPackage(Fraction Integer,V)
Type: List AlgebraGivenByStructuralConstants(Fraction Integer,4,[e,i,j,k]?,[MATRIX,MATRIX,MATRIX,MATRIX]?)
axiom basisOfCenter()$AlgebraPackage(Fraction Integer,V)
Type: List AlgebraGivenByStructuralConstants(Fraction Integer,4,[e,i,j,k]?,[MATRIX,MATRIX,MATRIX,MATRIX]?)
axiom basisOfCentroid()$AlgebraPackage(Fraction Integer,V)
Type: List Matrix Fraction Integer
axiom basisOfNucleus()$AlgebraPackage(Fraction Integer,V)
Type: List AlgebraGivenByStructuralConstants(Fraction Integer,4,[e,i,j,k]?,[MATRIX,MATRIX,MATRIX,MATRIX]?)
axiom basisOfLeftNucloid()$AlgebraPackage(Fraction Integer,V)
Type: List Matrix Fraction Integer
Symbolic computations axiom G:=GenericNonAssociativeAlgebra(Fraction Integer, 4, [e,i,j,k],sc)
Type: Domain
Look for Idempotents axiom conditionsForIdempotents()$G
Type: List Polynomial Fraction Integer
axiom gb:=groebnerFactorize %
Type: List List Polynomial Fraction Integer
axiom associatorDependence()$G
Type: List Vector Fraction Polynomial Fraction Integer
axiom q:=leftRankPolynomial()$G
Type: SparseUnivariatePolynomial? Fraction Polynomial Fraction Integer
axiom map(factor,coefficients q)
Type: List Factored Fraction Polynomial Fraction Integer
axiom rightUnit()$G
Type: Union("failed",...)
axiom p1:=generic([x1,y1,z1,w1])$G
axiom p2:=generic([x2,y2,z2,w2])$G
axiom p3:=generic([x3,y3,z3,w3])$G
axiom leftRecip(p1)$G
Type: Union(GenericNonAssociativeAlgebra(Fraction Integer,4,[e,i,j,k]?,[MATRIX,MATRIX,MATRIX,MATRIX]?),...)
axiom rightRecip(p1)$G
Type: Union("failed",...)
axiom leftRegularRepresentation(p1)
Type: Matrix Fraction Polynomial Fraction Integer
axiom rightRegularRepresentation(p1)
Type: Matrix Fraction Polynomial Fraction Integer
axiom associator(p1,p2,p3)$G
axiom associator(p1,p1,p2)
axiom associator(p1,p2,p2)
axiom p1*p1
axiom p1*p2 + p2*p1
axiom p1*(p1*p1)+(p1*p1)*p1
|










