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
all:=[a1,a2,a3,a4,b1,b2,b3,b4,c1,c2,c3,c4]
Type: List OrderedVariableList
? [a1,a2,a3,a4,b1,b2,b3,b4,c1,c2,c3,c4]
?
axiom
a:Vector DMP(all,INT):=[a1,a2,a3,a4]
Type: Vector DistributedMultivariatePolynomial
?([a1,a2,a3,a4,b1,b2,b3,b4,c1,c2,c3,c4]
?,Integer)
axiom
b:Vector DMP(all,INT):=[b1,b2,b3,b4]
Type: Vector DistributedMultivariatePolynomial
?([a1,a2,a3,a4,b1,b2,b3,b4,c1,c2,c3,c4]
?,Integer)
axiom
c:Vector DMP(all,INT):=[c1,c2,c3,c4]
Type: Vector DistributedMultivariatePolynomial
?([a1,a2,a3,a4,b1,b2,b3,b4,c1,c2,c3,c4]
?,Integer)
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
-- Jordan?
a ** (b ** c) + c ** (a ** b) + b ** (c ** a)
axiom
Compiling function ** with type (Vector
DistributedMultivariatePolynomial([a1,a2,a3,a4,b1,b2,b3,b4,c1,c2,
c3,c4],Integer),Vector DistributedMultivariatePolynomial([a1,a2,
a3,a4,b1,b2,b3,b4,c1,c2,c3,c4],Integer)) -> Vector
DistributedMultivariatePolynomial([a1,a2,a3,a4,b1,b2,b3,b4,c1,c2,
c3,c4],Integer)
Type: Vector DistributedMultivariatePolynomial
?([a1,a2,a3,a4,b1,b2,b3,b4,c1,c2,c3,c4]
?,Integer)
axiom
a0:Vector DMP(all,INT):=[0,a2,a3,a4]
Type: Vector DistributedMultivariatePolynomial
?([a1,a2,a3,a4,b1,b2,b3,b4,c1,c2,c3,c4]
?,Integer)
axiom
b0:Vector DMP(all,INT):=[0,b2,b3,b4]
Type: Vector DistributedMultivariatePolynomial
?([a1,a2,a3,a4,b1,b2,b3,b4,c1,c2,c3,c4]
?,Integer)
axiom
c0:Vector DMP(all,INT):=[0,c2,c3,c4]
Type: Vector DistributedMultivariatePolynomial
?([a1,a2,a3,a4,b1,b2,b3,b4,c1,c2,c3,c4]
?,Integer)
axiom
-- Jordan?
a0 ** (b0 ** c0) + c0 ** (a0 ** b0) + b0 ** (c0 ** a0)
Type: Vector DistributedMultivariatePolynomial
?([a1,a2,a3,a4,b1,b2,b3,b4,c1,c2,c3,c4]
?,Integer)
Axiom has a domain for NonAssociative? Algebra
axiom
)show NonAssociativeAlgebra
NonAssociativeAlgebra R: CommutativeRing is a category constructor
Abbreviation for NonAssociativeAlgebra is NAALG
This constructor is exposed in this frame.
Issue )edit /usr/local/lib/axiom/target/x86_64-unknown-linux/../../src/algebra/NAALG.spad to see algebra source code for NAALG
------------------------------- Operations --------------------------------
?*? : (R,%) -> % ?*? : (%,R) -> %
?*? : (%,%) -> % ?*? : (Integer,%) -> %
?*? : (PositiveInteger,%) -> % ?**? : (%,PositiveInteger) -> %
?+? : (%,%) -> % ?-? : (%,%) -> %
-? : % -> % ?=? : (%,%) -> Boolean
0 : () -> % antiCommutator : (%,%) -> %
associator : (%,%,%) -> % coerce : % -> OutputForm
commutator : (%,%) -> % hash : % -> SingleInteger
latex : % -> String sample : () -> %
zero? : % -> Boolean ?~=? : (%,%) -> Boolean
?*? : (NonNegativeInteger,%) -> %
leftPower : (%,PositiveInteger) -> %
plenaryPower : (%,PositiveInteger) -> %
rightPower : (%,PositiveInteger) -> %
subtractIfCan : (%,%) -> Union(%,"failed")