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

Edit detail for SandBoxNonAssociativeAlgebra revision 5 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/24 08:40:54 GMT-7
Note: Jordan

added:

\begin{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..)))
e:Vector INT:=[1,0,0,0]
i:Vector INT:=[0,1,0,0]
j:Vector INT:=[0,0,1,0]
k:Vector INT:=[0,0,0,1]
e**e=e
i**i=e
j**j=e
k**k=e
e*i=e
e*j=e
e*k=e
i*e=-e
j*e=-e
k*e=-e
i*j=k
j*i=-k
i*k=j
k*i=-j
j*k=i
k*j=-i
\end{axiom}

removed:
-_*_*(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..)))

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]
LatexWiki Image(1)
Type: Vector Integer
axiom
i:Vector INT:=[0,1,0,0]
LatexWiki Image(2)
Type: Vector Integer
axiom
j:Vector INT:=[0,0,1,0]
LatexWiki Image(3)
Type: Vector Integer
axiom
k:Vector INT:=[0,0,0,1]
LatexWiki Image(4)
Type: Vector Integer
axiom
e**e=e
axiom
Compiling function ** with type (Vector Integer,Vector Integer) -> 
      Vector Integer
LatexWiki Image(5)
Type: Equation Vector Integer
axiom
i**i=e
LatexWiki Image(6)
Type: Equation Vector Integer
axiom
j**j=e
LatexWiki Image(7)
Type: Equation Vector Integer
axiom
k**k=e
LatexWiki Image(8)
Type: Equation Vector Integer
axiom
e*i=e There are 34 exposed and 23 unexposed library operations named * having 2 argument(s) but none was determined to be applicable. Use HyperDoc Browse, or issue )display op * to learn more about the available operations. Perhaps package-calling the operation or using coercions on the arguments will allow you to apply the operation. Cannot find a definition or applicable library operation named * with argument type(s) Vector Integer Vector Integer Perhaps you should use "@" to indicate the required return type, or "$" to specify which version of the function you need. e*j=e There are 34 exposed and 23 unexposed library operations named * having 2 argument(s) but none was determined to be applicable. Use HyperDoc Browse, or issue )display op * to learn more about the available operations. Perhaps package-calling the operation or using coercions on the arguments will allow you to apply the operation. Cannot find a definition or applicable library operation named * with argument type(s) Vector Integer Vector Integer Perhaps you should use "@" to indicate the required return type, or "$" to specify which version of the function you need. e*k=e There are 34 exposed and 23 unexposed library operations named * having 2 argument(s) but none was determined to be applicable. Use HyperDoc Browse, or issue )display op * to learn more about the available operations. Perhaps package-calling the operation or using coercions on the arguments will allow you to apply the operation. Cannot find a definition or applicable library operation named * with argument type(s) Vector Integer Vector Integer Perhaps you should use "@" to indicate the required return type, or "$" to specify which version of the function you need. i*e=-e There are 34 exposed and 23 unexposed library operations named * having 2 argument(s) but none was determined to be applicable. Use HyperDoc Browse, or issue )display op * to learn more about the available operations. Perhaps package-calling the operation or using coercions on the arguments will allow you to apply the operation. Cannot find a definition or applicable library operation named * with argument type(s) Vector Integer Vector Integer Perhaps you should use "@" to indicate the required return type, or "$" to specify which version of the function you need. j*e=-e There are 34 exposed and 23 unexposed library operations named * having 2 argument(s) but none was determined to be applicable. Use HyperDoc Browse, or issue )display op * to learn more about the available operations. Perhaps package-calling the operation or using coercions on the arguments will allow you to apply the operation. Cannot find a definition or applicable library operation named * with argument type(s) Vector Integer Vector Integer Perhaps you should use "@" to indicate the required return type, or "$" to specify which version of the function you need. k*e=-e There are 34 exposed and 23 unexposed library operations named * having 2 argument(s) but none was determined to be applicable. Use HyperDoc Browse, or issue )display op * to learn more about the available operations. Perhaps package-calling the operation or using coercions on the arguments will allow you to apply the operation. Cannot find a definition or applicable library operation named * with argument type(s) Vector Integer Vector Integer Perhaps you should use "@" to indicate the required return type, or "$" to specify which version of the function you need. i*j=k There are 34 exposed and 23 unexposed library operations named * having 2 argument(s) but none was determined to be applicable. Use HyperDoc Browse, or issue )display op * to learn more about the available operations. Perhaps package-calling the operation or using coercions on the arguments will allow you to apply the operation. Cannot find a definition or applicable library operation named * with argument type(s) Vector Integer Vector Integer Perhaps you should use "@" to indicate the required return type, or "$" to specify which version of the function you need. j*i=-k There are 34 exposed and 23 unexposed library operations named * having 2 argument(s) but none was determined to be applicable. Use HyperDoc Browse, or issue )display op * to learn more about the available operations. Perhaps package-calling the operation or using coercions on the arguments will allow you to apply the operation. Cannot find a definition or applicable library operation named * with argument type(s) Vector Integer Vector Integer Perhaps you should use "@" to indicate the required return type, or "$" to specify which version of the function you need. i*k=j There are 34 exposed and 23 unexposed library operations named * having 2 argument(s) but none was determined to be applicable. Use HyperDoc Browse, or issue )display op * to learn more about the available operations. Perhaps package-calling the operation or using coercions on the arguments will allow you to apply the operation. Cannot find a definition or applicable library operation named * with argument type(s) Vector Integer Vector Integer Perhaps you should use "@" to indicate the required return type, or "$" to specify which version of the function you need. k*i=-j There are 34 exposed and 23 unexposed library operations named * having 2 argument(s) but none was determined to be applicable. Use HyperDoc Browse, or issue )display op * to learn more about the available operations. Perhaps package-calling the operation or using coercions on the arguments will allow you to apply the operation. Cannot find a definition or applicable library operation named * with argument type(s) Vector Integer Vector Integer Perhaps you should use "@" to indicate the required return type, or "$" to specify which version of the function you need. j*k=i There are 34 exposed and 23 unexposed library operations named * having 2 argument(s) but none was determined to be applicable. Use HyperDoc Browse, or issue )display op * to learn more about the available operations. Perhaps package-calling the operation or using coercions on the arguments will allow you to apply the operation. Cannot find a definition or applicable library operation named * with argument type(s) Vector Integer Vector Integer Perhaps you should use "@" to indicate the required return type, or "$" to specify which version of the function you need. k*j=-i There are 34 exposed and 23 unexposed library operations named * having 2 argument(s) but none was determined to be applicable. Use HyperDoc Browse, or issue )display op * to learn more about the available operations. Perhaps package-calling the operation or using coercions on the arguments will allow you to apply the operation. Cannot find a definition or applicable library operation named * with argument type(s) Vector Integer Vector Integer Perhaps you should use "@" to indicate the required return type, or "$" to specify which version of the function you need.

axiom
all:=[a1,a2,a3,a4,b1,b2,b3,b4,c1,c2,c3,c4]
LatexWiki Image(9)
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]
LatexWiki Image(10)
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]
LatexWiki Image(11)
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]
LatexWiki Image(12)
Type: Vector DistributedMultivariatePolynomial?([a1,a2,a3,a4,b1,b2,b3,b4,c1,c2,c3,c4]?,Integer)
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)
LatexWiki Image(13)
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]
LatexWiki Image(14)
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]
LatexWiki Image(15)
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]
LatexWiki Image(16)
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)
LatexWiki Image(17)
Type: Vector DistributedMultivariatePolynomial?([a1,a2,a3,a4,b1,b2,b3,b4,c1,c2,c3,c4]?,Integer)
axiom
(a0 ** b0) ** c0 + (c0 ** a0) ** b0 + (b0 ** c0) ** a0
LatexWiki Image(18)
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")