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

Edit detail for SandBoxObserverAsIdempotent2 revision 17 of 18

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
Editor: Bill Page
Time: 2017/04/18 21:25:28 GMT+0
Note: cleanup

added:

Brackets
\begin{axiom}
p*q - q*p
p'*q - q'*p
p'*q' - q'*p'
\end{axiom}

Obs(2) is a 4 dimensional Frobenius Algebra

Generators of Obs(2)

fricas
)set output abbreviate on
V := OrderedVariableList [p,q]

\label{eq1}\hbox{\axiomType{OVAR}\ } ([ p , q ])(1)
Type: TYPE
fricas
M := FreeMonoid V

\label{eq2}\hbox{\axiomType{FMONOID}\ } (\hbox{\axiomType{OVAR}\ } ([ p , q ]))(2)
Type: TYPE
fricas
gens:List M := enumerate()$V

\label{eq3}\left[ p , \: q \right](3)
Type: LIST(FMONOID(OVAR([p,q])))

Representation

fricas
divisible := Record(lm: M,rm: M)

\label{eq4}\mbox{\rm \hbox{\axiomType{Record}\ } (lm : \hbox{\axiomType{FMONOID}\ } (\hbox{\axiomType{OVAR}\ } ([ p , q ])) , rm : \hbox{\axiomType{FMONOID}\ } (\hbox{\axiomType{OVAR}\ } ([ p , q ])))}(4)
Type: TYPE
fricas
leftDiv(k:Union(divisible,"failed")):M == (k::divisible).lm
Function declaration leftDiv : Union(Record(lm: FMONOID(OVAR([p,q])) ,rm: FMONOID(OVAR([p,q]))),"failed") -> FMONOID(OVAR([p,q])) has been added to workspace.
Type: VOID
fricas
rightDiv(k:Union(divisible,"failed")):M == (k::divisible).rm
Function declaration rightDiv : Union(Record(lm: FMONOID(OVAR([p,q]) ),rm: FMONOID(OVAR([p,q]))),"failed") -> FMONOID(OVAR([p,q])) has been added to workspace.
Type: VOID
fricas
K := FRAC POLY INT

\label{eq5}\hbox{\axiomType{FRAC}\ } (\hbox{\axiomType{POLY}\ } (\hbox{\axiomType{INT}\ }))(5)
Type: TYPE
fricas
MK := FreeModule(K,M)

\label{eq6}FM (\hbox{\axiomType{FRAC}\ } (\hbox{\axiomType{POLY}\ } (\hbox{\axiomType{INT}\ })) , \hbox{\axiomType{FMONOID}\ } (\hbox{\axiomType{OVAR}\ } ([ p , q ])))(6)
Type: TYPE
fricas
coeff(x:MK):K == leadingCoefficient(x)
Function declaration coeff : FM(FRAC(POLY(INT)),FMONOID(OVAR([p,q])) ) -> FRAC(POLY(INT)) has been added to workspace.
Type: VOID
fricas
monomial(x:MK):M == leadingSupport(x)
Function declaration monomial : FM(FRAC(POLY(INT)),FMONOID(OVAR([p,q ]))) -> FMONOID(OVAR([p,q])) has been added to workspace.
Type: VOID
fricas
m(x:M):Symbol == subscript('m,[retract(x)::Symbol])
Function declaration m : FMONOID(OVAR([p,q])) -> SYMBOL has been added to workspace.
Type: VOID
fricas
γ(x:M,y:M):Symbol == subscript('γ,[concat(string retract x, string retract y)::Symbol])
Function declaration γ : (FMONOID(OVAR([p,q])),FMONOID(OVAR([p,q]))) -> SYMBOL has been added to workspace.
Type: VOID

Basis

fricas
basis := concat(gens,concat [[i*j for j in gens | i~=j] for i in gens])

\label{eq7}\left[ p , \: q , \:{p \  q}, \:{q \  p}\right](7)
Type: LIST(FMONOID(OVAR([p,q])))

Idempotent

fricas
rule1(ij:MK):MK ==
  for k in gens repeat
    kk := divide(monomial(ij),k*k)
    if kk case divisible then
      ij:=(coeff(ij) * m(k)*γ(k,k)) * (leftDiv(kk) * k * rightDiv(kk))
  return(ij)
Function declaration rule1 : FM(FRAC(POLY(INT)),FMONOID(OVAR([p,q])) ) -> FM(FRAC(POLY(INT)),FMONOID(OVAR([p,q]))) has been added to workspace.
Type: VOID

Reduction

fricas
rule2(ij:MK):MK ==
  for i in gens repeat
    for j in gens | j ~= i repeat
      for k in gens | k ~= j repeat
        ijk:=divide(monomial(ij),i*j*k)
        if ijk case divisible then
          if i=k then
            ij := (coeff(ij)*m(i)*m(j)*γ(i,j)*γ(j,i) ) * _
                  (leftDiv(ijk)*i*rightDiv(ijk))
          else
            ij := (coeff(ij)*m(j)*γ(i,j)*γ(j,k) / γ(i,k) ) * _
                  (leftDiv(ijk)*i*k*rightDiv(ijk))
  return(ij)
Function declaration rule2 : FM(FRAC(POLY(INT)),FMONOID(OVAR([p,q])) ) -> FM(FRAC(POLY(INT)),FMONOID(OVAR([p,q]))) has been added to workspace.
Type: VOID

An endomorphism on the K-Module is defined by the fixed point of applied rules

fricas
mod(ij:MK):MK ==
  ijFix:MK := 1
  while ijFix~=ij repeat
    ijFix := ij
    ij := rule1(ij)
    ij := rule2(ij)
  return(ij)
Function declaration mod : FM(FRAC(POLY(INT)),FMONOID(OVAR([p,q]))) -> FM(FRAC(POLY(INT)),FMONOID(OVAR([p,q]))) has been added to workspace.
Type: VOID

Matrix

Algebra is the free algebra product modulo the fixed point

fricas
--MT := [[mod(i*j) for j in basis] for i in basis]
-- idempotent
MT := [[monomial(eval(coeff(mod(i*j)),[γ(gens(1),gens(1))=1, γ(gens(2), gens(2))=1, γ(gens(2), gens(1))=γ(gens(1), gens(2))]), monomial(mod(i*j)))$MK for j in basis] for i in basis]
fricas
Compiling function monomial with type FM(FRAC(POLY(INT)),FMONOID(
      OVAR([p,q]))) -> FMONOID(OVAR([p,q]))
fricas
Compiling function coeff with type FM(FRAC(POLY(INT)),FMONOID(OVAR([
      p,q]))) -> FRAC(POLY(INT))
fricas
Compiling function m with type FMONOID(OVAR([p,q])) -> SYMBOL
fricas
Compiling function γ with type (FMONOID(OVAR([p,q])),FMONOID(OVAR([p
      ,q]))) -> SYMBOL
fricas
Compiling function leftDiv with type Union(Record(lm: FMONOID(OVAR([
      p,q])),rm: FMONOID(OVAR([p,q]))),"failed") -> FMONOID(OVAR([p,q])
      )
fricas
Compiling function rightDiv with type Union(Record(lm: FMONOID(OVAR(
      [p,q])),rm: FMONOID(OVAR([p,q]))),"failed") -> FMONOID(OVAR([p,q]
      ))
fricas
Compiling function rule1 with type FM(FRAC(POLY(INT)),FMONOID(OVAR([
      p,q]))) -> FM(FRAC(POLY(INT)),FMONOID(OVAR([p,q])))
fricas
Compiling function rule2 with type FM(FRAC(POLY(INT)),FMONOID(OVAR([
      p,q]))) -> FM(FRAC(POLY(INT)),FMONOID(OVAR([p,q])))
fricas
Compiling function mod with type FM(FRAC(POLY(INT)),FMONOID(OVAR([p,
      q]))) -> FM(FRAC(POLY(INT)),FMONOID(OVAR([p,q])))

\label{eq8}\begin{array}{@{}l}
\displaystyle
\left[{\left[{{m_{p}}\  p}, \:{p \  q}, \:{{m_{p}}\  p \  q}, \:{{m_{p}}\ {m_{q}}\ {{��_{pq}}^{2}}\  p}\right]}, \: \right.
\
\
\displaystyle
\left.{\left[{q \  p}, \:{{m_{q}}\  q}, \:{{m_{p}}\ {m_{q}}\ {{��_{pq}}^{2}}\  q}, \:{{m_{q}}\  q \  p}\right]}, \: \right.
\
\
\displaystyle
\left.{\left[{{m_{p}}\ {m_{q}}\ {{��_{pq}}^{2}}\  p}, \:{{m_{q}}\  p \  q}, \:{{m_{p}}\ {m_{q}}\ {{��_{pq}}^{2}}\  p \  q}, \:{{m_{p}}\ {{m_{q}}^{2}}\ {{��_{pq}}^{2}}\  p}\right]}, \: \right.
\
\
\displaystyle
\left.{\left[{{m_{p}}\  q \  p}, \:{{m_{p}}\ {m_{q}}\ {{��_{pq}}^{2}}\  q}, \:{{{m_{p}}^{2}}\ {m_{q}}\ {{��_{pq}}^{2}}\  q}, \:{{m_{p}}\ {m_{q}}\ {{��_{pq}}^{2}}\  q \  p}\right]}\right] (8)
Type: LIST(LIST(FM(FRAC(POLY(INT)),FMONOID(OVAR([p,q])))))

Structure Constants

fricas
R:=FRAC DMP(concat [[m(i) for i in gens],concat [[γ(j,i) for i in gens] for j in gens]], INT)

\label{eq9}\hbox{\axiomType{FRAC}\ } (\hbox{\axiomType{DMP}\ } ([ m [ p ] , m [ q ] , �� [ pp ] , �� [ pq ] , �� [ qp ] , �� [ qq ] ] , \hbox{\axiomType{INT}\ }))(9)
Type: TYPE
fricas
mat3(y:M):List List R == map(z+->map(x+->coefficient(x,y)::FRAC POLY INT,z),MT)
Function declaration mat3 : FMONOID(OVAR([p,q])) -> LIST(LIST(FRAC( DMP([m[p],m[q],γ[pp],γ[pq],γ[qp],γ[qq]],INT)))) has been added to workspace.
Type: VOID
fricas
ss:=map(mat3, basis)
fricas
Compiling function mat3 with type FMONOID(OVAR([p,q])) -> LIST(LIST(
      FRAC(DMP([m[p],m[q],γ[pp],γ[pq],γ[qp],γ[qq]],INT))))

\label{eq10}\begin{array}{@{}l}
\displaystyle
\left[{
\begin{array}{@{}l}
\displaystyle
\left[{\left[{m_{p}}, \: 0, \: 0, \:{{m_{p}}\ {m_{q}}\ {{��_{pq}}^{2}}}\right]}, \:{\left[ 0, \: 0, \: 0, \: 0 \right]}, \: \right.
\
\
\displaystyle
\left.{\left[{{m_{p}}\ {m_{q}}\ {{��_{pq}}^{2}}}, \: 0, \: 0, \:{{m_{p}}\ {{m_{q}}^{2}}\ {{��_{pq}}^{2}}}\right]}, \:{\left[ 0, \: 0, \: 0, \: 0 \right]}\right] 
(10)
Type: LIST(LIST(LIST(FRAC(DMP([m[p],m[q],γ[pp],γ[pq],γ[qp],γ[qq]],INT)))))

Algebra

fricas
cats(m:M):Symbol==concat(map(x+->string(x.gen::Symbol),factors m))::Symbol
Function declaration cats : FMONOID(OVAR([p,q])) -> SYMBOL has been added to workspace.
Type: VOID
fricas
A:=AlgebraGivenByStructuralConstants(R,#(basis)::PI,map(cats,basis),ss::Vector(Matrix R))
fricas
Compiling function cats with type FMONOID(OVAR([p,q])) -> SYMBOL

\label{eq11}\hbox{\axiomType{ALGSC}\ } (\hbox{\axiomType{FRAC}\ } (\hbox{\axiomType{DMP}\ } ([ m [ p ] , m [ q ] , �� [ pp ] , �� [ pq ] , �� [ qp ] , �� [ qq ] ] , \hbox{\axiomType{INT}\ })) , 4, [ p , q , pq , qp ] , [ [ [ m [ p ] , 0, 0, m [ p ] * m [ q ] * �� [ pq ]^2 ] , [ 0, 0, 0, 0 ] , [ m [ p ] * m [ q ] * �� [ pq ]^2, 0, 0, m [ p ] * m [ q ]^2 * �� [ pq ]^2 ] , [ 0, 0, 0, 0 ] ] , [ [ 0, 0, 0, 0 ] , [ 0, m [ q ] , m [ p ] * m [ q ] * �� [ pq ]^2, 0 ] , [ 0, 0, 0, 0 ] , [ 0, m [ p ] * m [ q ] * �� [ pq ]^2, m [ p ]^2 * m [ q ] * �� [ pq ]^2, 0 ] ] , [ [ 0, 1, m [ p ] , 0 ] , [ 0, 0, 0, 0 ] , [ 0, m [ q ] , m [ p ] * m [ q ] * �� [ pq ]^2, 0 ] , [ 0, 0, 0, 0 ] ] , [ [ 0, 0, 0, 0 ] , [ 1, 0, 0, m [ q ] ] , [ 0, 0, 0, 0 ] , [ m [ p ] , 0, 0, m [ p ] * m [ q ] * �� [ pq ]^2 ] ] ])(11)
Type: TYPE
fricas
alternative?()$A
algebra satisfies 2*associator(a,b,b) = 0 = 2*associator(a,a,b) = 0

\label{eq12} \mbox{\rm true} (12)
Type: BOOLEAN
fricas
antiAssociative?()$A
algebra is not anti-associative

\label{eq13} \mbox{\rm false} (13)
Type: BOOLEAN
fricas
antiCommutative?()$A
algebra is not anti-commutative

\label{eq14} \mbox{\rm false} (14)
Type: BOOLEAN
fricas
associative?()$A
algebra is associative

\label{eq15} \mbox{\rm true} (15)
Type: BOOLEAN
fricas
commutative?()$A
algebra is not commutative

\label{eq16} \mbox{\rm false} (16)
Type: BOOLEAN
fricas
flexible?()$A
algebra is flexible

\label{eq17} \mbox{\rm true} (17)
Type: BOOLEAN
fricas
jacobiIdentity?()$A
Jacobi identity does not hold

\label{eq18} \mbox{\rm false} (18)
Type: BOOLEAN
fricas
jordanAdmissible?()$A
algebra is not Jordan admissible

\label{eq19} \mbox{\rm false} (19)
Type: BOOLEAN
fricas
jordanAlgebra?()$A
algebra is not commutative this is not a Jordan algebra

\label{eq20} \mbox{\rm false} (20)
Type: BOOLEAN
fricas
leftAlternative?()$A
algebra is left alternative

\label{eq21} \mbox{\rm true} (21)
Type: BOOLEAN
fricas
lieAdmissible?()$A
algebra is Lie admissible

\label{eq22} \mbox{\rm true} (22)
Type: BOOLEAN
fricas
lieAlgebra?()$A
algebra is not anti-commutative this is not a Lie algebra

\label{eq23} \mbox{\rm false} (23)
Type: BOOLEAN
fricas
--powerAssociative?()$A
rightAlternative?()$A
algebra is right alternative

\label{eq24} \mbox{\rm true} (24)
Type: BOOLEAN

Check Multiplication

fricas
AB := entries basis()$A

\label{eq25}\left[ p , \: q , \: pq , \: qp \right](25)
Type: LIST(ALGSC(FRAC(DMP([m[p],m[q],γ[pp],γ[pq],γ[qp],γ[qq]],INT)),4,[p,q,pq,qp],[[[m[p],0,0,m[p]*m[q]*γ[pq]^2],[0,0,0,0],[m[p]*m[q]*γ[pq]^2,0,0,m[p]*m[q]^2*γ[pq]^2],[0,0,0,0]],[[0,0,0,0],[0,m[q],m[p]*m[q]*γ[pq]^2,0],[0,0,0,0],[0,m[p]*m[q]*γ[pq]^2,m[p]^2*m[q]*γ[pq]^2,0]],[[0,1,m[p],0],[0,0,0,0],[0,m[q],m[p]*m[q]*γ[pq]^2,0],[0,0,0,0]],[[0,0,0,0],[1,0,0,m[q]],[0,0,0,0],[m[p],0,0,m[p]*m[q]*γ[pq]^2]]]))
fricas
A2MK(z:A):MK==reduce(+,map((x:R,y:M):MK+->(x::K)*y,coordinates(z),basis))
Function declaration A2MK : ALGSC(FRAC(DMP([m[p],m[q],γ[pp],γ[pq],γ[ qp],γ[qq]],INT)),4,[p,q,pq,qp],[[[m[p],0,0,m[p]*m[q]*γ[pq]^2],[0, 0,0,0],[m[p]*m[q]*γ[pq]^2,0,0,m[p]*m[q]^2*γ[pq]^2],[0,0,0,0]],[[0 ,0,0,0],[0,m[q],m[p]*m[q]*γ[pq]^2,0],[0,0,0,0],[0,m[p]*m[q]*γ[pq] ^2,m[p]^2*m[q]*γ[pq]^2,0]],[[0,1,m[p],0],[0,0,0,0],[0,m[q],m[p]*m [q]*γ[pq]^2,0],[0,0,0,0]],[[0,0,0,0],[1,0,0,m[q]],[0,0,0,0],[m[p] ,0,0,m[p]*m[q]*γ[pq]^2]]]) -> FM(FRAC(POLY(INT)),FMONOID(OVAR([p, q]))) has been added to workspace.
Type: VOID
fricas
test(MT=map(x+->map(A2MK,x),[[i*j for j in AB] for i in AB]))
fricas
Compiling function A2MK with type ALGSC(FRAC(DMP([m[p],m[q],γ[pp],γ[
      pq],γ[qp],γ[qq]],INT)),4,[p,q,pq,qp],[[[m[p],0,0,m[p]*m[q]*γ[pq]^
      2],[0,0,0,0],[m[p]*m[q]*γ[pq]^2,0,0,m[p]*m[q]^2*γ[pq]^2],[0,0,0,0
      ]],[[0,0,0,0],[0,m[q],m[p]*m[q]*γ[pq]^2,0],[0,0,0,0],[0,m[p]*m[q]
      *γ[pq]^2,m[p]^2*m[q]*γ[pq]^2,0]],[[0,1,m[p],0],[0,0,0,0],[0,m[q],
      m[p]*m[q]*γ[pq]^2,0],[0,0,0,0]],[[0,0,0,0],[1,0,0,m[q]],[0,0,0,0]
      ,[m[p],0,0,m[p]*m[q]*γ[pq]^2]]]) -> FM(FRAC(POLY(INT)),FMONOID(
      OVAR([p,q])))

\label{eq26} \mbox{\rm true} (26)
Type: BOOLEAN

Trace

fricas
[rightTrace(i)$A for i in AB]

\label{eq27}\left[{2 \ {m_{p}}}, \:{2 \ {m_{q}}}, \:{2 \ {m_{p}}\ {m_{q}}\ {{��_{pq}}^{2}}}, \:{2 \ {m_{p}}\ {m_{q}}\ {{��_{pq}}^{2}}}\right](27)
Type: LIST(FRAC(DMP([m[p],m[q],γ[pp],γ[pq],γ[qp],γ[qq]],INT)))
fricas
[leftTrace(i)$A for i in AB]

\label{eq28}\left[{2 \ {m_{p}}}, \:{2 \ {m_{q}}}, \:{2 \ {m_{p}}\ {m_{q}}\ {{��_{pq}}^{2}}}, \:{2 \ {m_{p}}\ {m_{q}}\ {{��_{pq}}^{2}}}\right](28)
Type: LIST(FRAC(DMP([m[p],m[q],γ[pp],γ[pq],γ[qp],γ[qq]],INT)))
fricas
trace(i)==rightTrace(i) / #gens
Type: VOID
fricas
[trace(i) for i in AB]
fricas
Compiling function trace with type ALGSC(FRAC(DMP([m[p],m[q],γ[pp],γ
      [pq],γ[qp],γ[qq]],INT)),4,[p,q,pq,qp],[[[m[p],0,0,m[p]*m[q]*γ[pq]
      ^2],[0,0,0,0],[m[p]*m[q]*γ[pq]^2,0,0,m[p]*m[q]^2*γ[pq]^2],[0,0,0,
      0]],[[0,0,0,0],[0,m[q],m[p]*m[q]*γ[pq]^2,0],[0,0,0,0],[0,m[p]*m[q
      ]*γ[pq]^2,m[p]^2*m[q]*γ[pq]^2,0]],[[0,1,m[p],0],[0,0,0,0],[0,m[q]
      ,m[p]*m[q]*γ[pq]^2,0],[0,0,0,0]],[[0,0,0,0],[1,0,0,m[q]],[0,0,0,0
      ],[m[p],0,0,m[p]*m[q]*γ[pq]^2]]]) -> FRAC(DMP([m[p],m[q],γ[pp],γ[
      pq],γ[qp],γ[qq]],INT))

\label{eq29}\left[{m_{p}}, \:{m_{q}}, \:{{m_{p}}\ {m_{q}}\ {{��_{pq}}^{2}}}, \:{{m_{p}}\ {m_{q}}\ {{��_{pq}}^{2}}}\right](29)
Type: LIST(FRAC(DMP([m[p],m[q],γ[pp],γ[pq],γ[qp],γ[qq]],INT)))

fricas
p:=AB(1); q:=AB(2);
Type: ALGSC(FRAC(DMP([m[p],m[q],γ[pp],γ[pq],γ[qp],γ[qq]],INT)),4,[p,q,pq,qp],[[[m[p],0,0,m[p]*m[q]*γ[pq]^2],[0,0,0,0],[m[p]*m[q]*γ[pq]^2,0,0,m[p]*m[q]^2*γ[pq]^2],[0,0,0,0]],[[0,0,0,0],[0,m[q],m[p]*m[q]*γ[pq]^2,0],[0,0,0,0],[0,m[p]*m[q]*γ[pq]^2,m[p]^2*m[q]*γ[pq]^2,0]],[[0,1,m[p],0],[0,0,0,0],[0,m[q],m[p]*m[q]*γ[pq]^2,0],[0,0,0,0]],[[0,0,0,0],[1,0,0,m[q]],[0,0,0,0],[m[p],0,0,m[p]*m[q]*γ[pq]^2]]])
fricas
test(p*p=trace(p)*p)

\label{eq30} \mbox{\rm true} (30)
Type: BOOLEAN
fricas
test(q*q=trace(q)*q)

\label{eq31} \mbox{\rm true} (31)
Type: BOOLEAN

Center

fricas
C:=basisOfCenter()$AlgebraPackage(R,A); # C

\label{eq32}1(32)
Type: PI
fricas
c:=C(1)

\label{eq33}qp + pq -{{m_{p}}\  q}-{{m_{q}}\  p}(33)
Type: ALGSC(FRAC(DMP([m[p],m[q],γ[pp],γ[pq],γ[qp],γ[qq]],INT)),4,[p,q,pq,qp],[[[m[p],0,0,m[p]*m[q]*γ[pq]^2],[0,0,0,0],[m[p]*m[q]*γ[pq]^2,0,0,m[p]*m[q]^2*γ[pq]^2],[0,0,0,0]],[[0,0,0,0],[0,m[q],m[p]*m[q]*γ[pq]^2,0],[0,0,0,0],[0,m[p]*m[q]*γ[pq]^2,m[p]^2*m[q]*γ[pq]^2,0]],[[0,1,m[p],0],[0,0,0,0],[0,m[q],m[p]*m[q]*γ[pq]^2,0],[0,0,0,0]],[[0,0,0,0],[1,0,0,m[q]],[0,0,0,0],[m[p],0,0,m[p]*m[q]*γ[pq]^2]]])
fricas
[c*i-i*c for i in AB]

\label{eq34}\left[ 0, \: 0, \: 0, \: 0 \right](34)
Type: LIST(ALGSC(FRAC(DMP([m[p],m[q],γ[pp],γ[pq],γ[qp],γ[qq]],INT)),4,[p,q,pq,qp],[[[m[p],0,0,m[p]*m[q]*γ[pq]^2],[0,0,0,0],[m[p]*m[q]*γ[pq]^2,0,0,m[p]*m[q]^2*γ[pq]^2],[0,0,0,0]],[[0,0,0,0],[0,m[q],m[p]*m[q]*γ[pq]^2,0],[0,0,0,0],[0,m[p]*m[q]*γ[pq]^2,m[p]^2*m[q]*γ[pq]^2,0]],[[0,1,m[p],0],[0,0,0,0],[0,m[q],m[p]*m[q]*γ[pq]^2,0],[0,0,0,0]],[[0,0,0,0],[1,0,0,m[q]],[0,0,0,0],[m[p],0,0,m[p]*m[q]*γ[pq]^2]]]))
fricas
c*c

\label{eq35}\begin{array}{@{}l}
\displaystyle
{{\left({{m_{p}}\ {m_{q}}\ {{��_{pq}}^{2}}}-{{m_{p}}\ {m_{q}}}\right)}\  qp}+{{\left({{m_{p}}\ {m_{q}}\ {{��_{pq}}^{2}}}-{{m_{p}}\ {m_{q}}}\right)}\  pq}+ 
\
\
\displaystyle
{{\left(-{{{m_{p}}^{2}}\ {m_{q}}\ {{��_{pq}}^{2}}}+{{{m_{p}}^{2}}\ {m_{q}}}\right)}\  q}+ 
\
\
\displaystyle
{{\left(-{{m_{p}}\ {{m_{q}}^{2}}\ {{��_{pq}}^{2}}}+{{m_{p}}\ {{m_{q}}^{2}}}\right)}\  p}
(35)
Type: ALGSC(FRAC(DMP([m[p],m[q],γ[pp],γ[pq],γ[qp],γ[qq]],INT)),4,[p,q,pq,qp],[[[m[p],0,0,m[p]*m[q]*γ[pq]^2],[0,0,0,0],[m[p]*m[q]*γ[pq]^2,0,0,m[p]*m[q]^2*γ[pq]^2],[0,0,0,0]],[[0,0,0,0],[0,m[q],m[p]*m[q]*γ[pq]^2,0],[0,0,0,0],[0,m[p]*m[q]*γ[pq]^2,m[p]^2*m[q]*γ[pq]^2,0]],[[0,1,m[p],0],[0,0,0,0],[0,m[q],m[p]*m[q]*γ[pq]^2,0],[0,0,0,0]],[[0,0,0,0],[1,0,0,m[q]],[0,0,0,0],[m[p],0,0,m[p]*m[q]*γ[pq]^2]]])
fricas
test(c*c=c)

\label{eq36} \mbox{\rm false} (36)
Type: BOOLEAN

Unit

fricas
n := #gens/trace(c) * c

\label{eq37}\begin{array}{@{}l}
\displaystyle
{{1 \over{{{m_{p}}\ {m_{q}}\ {{��_{pq}}^{2}}}-{{m_{p}}\ {m_{q}}}}}\  qp}+{{1 \over{{{m_{p}}\ {m_{q}}\ {{��_{pq}}^{2}}}-{{m_{p}}\ {m_{q}}}}}\  pq}- 
\
\
\displaystyle
{{1 \over{{{m_{q}}\ {{��_{pq}}^{2}}}-{m_{q}}}}\  q}-{{1 \over{{{m_{p}}\ {{��_{pq}}^{2}}}-{m_{p}}}}\  p}
(37)
Type: ALGSC(FRAC(DMP([m[p],m[q],γ[pp],γ[pq],γ[qp],γ[qq]],INT)),4,[p,q,pq,qp],[[[m[p],0,0,m[p]*m[q]*γ[pq]^2],[0,0,0,0],[m[p]*m[q]*γ[pq]^2,0,0,m[p]*m[q]^2*γ[pq]^2],[0,0,0,0]],[[0,0,0,0],[0,m[q],m[p]*m[q]*γ[pq]^2,0],[0,0,0,0],[0,m[p]*m[q]*γ[pq]^2,m[p]^2*m[q]*γ[pq]^2,0]],[[0,1,m[p],0],[0,0,0,0],[0,m[q],m[p]*m[q]*γ[pq]^2,0],[0,0,0,0]],[[0,0,0,0],[1,0,0,m[q]],[0,0,0,0],[m[p],0,0,m[p]*m[q]*γ[pq]^2]]])
fricas
trace(n)

\label{eq38}2(38)
Type: FRAC(DMP([m[p],m[q],γ[pp],γ[pq],γ[qp],γ[qq]],INT))
fricas
test(n*n=n)

\label{eq39} \mbox{\rm true} (39)
Type: BOOLEAN
fricas
test(n=unit()$A)

\label{eq40} \mbox{\rm true} (40)
Type: BOOLEAN

fricas
f:=gcd map(x+->denom x,coordinates(n))

\label{eq41}{{��_{pq}}^{2}}- 1(41)
Type: DMP([m[p],m[q],γ[pp],γ[pq],γ[qp],γ[qq]],INT)
fricas
--Silberstein symmetric matrix
ff:= matrix [[eval(γ(i,j)::R,[γ(gens(1),gens(1))=1,γ(gens(2),gens(2))=1,γ(gens(2),gens(1))=γ(gens(1),gens(2))]) for j in gens] for i in gens]

\label{eq42}\left[ 
\begin{array}{cc}
1 &{��_{pq}}
\
{��_{pq}}& 1 
(42)
Type: MATRIX(FRAC(POLY(INT)))
fricas
test(f = - determinant(ff))

\label{eq43} \mbox{\rm true} (43)
Type: BOOLEAN
fricas
(f*n)::OutputForm / f::OutputForm

\label{eq44}{{{1 \over{{m_{p}}\ {m_{q}}}}\  qp}+{{1 \over{{m_{p}}\ {m_{q}}}}\  pq}-{{1 \over{m_{q}}}\  q}-{{1 \over{m_{p}}}\  p}}\over{{{��_{pq}}^{2}}- 1}(44)
Type: OUTFORM

Lie bracket

fricas
p*q

\label{eq45}pq(45)
Type: ALGSC(FRAC(DMP([m[p],m[q],γ[pp],γ[pq],γ[qp],γ[qq]],INT)),4,[p,q,pq,qp],[[[m[p],0,0,m[p]*m[q]*γ[pq]^2],[0,0,0,0],[m[p]*m[q]*γ[pq]^2,0,0,m[p]*m[q]^2*γ[pq]^2],[0,0,0,0]],[[0,0,0,0],[0,m[q],m[p]*m[q]*γ[pq]^2,0],[0,0,0,0],[0,m[p]*m[q]*γ[pq]^2,m[p]^2*m[q]*γ[pq]^2,0]],[[0,1,m[p],0],[0,0,0,0],[0,m[q],m[p]*m[q]*γ[pq]^2,0],[0,0,0,0]],[[0,0,0,0],[1,0,0,m[q]],[0,0,0,0],[m[p],0,0,m[p]*m[q]*γ[pq]^2]]])
fricas
pq:=p*q-q*p

\label{eq46}- qp + pq(46)
Type: ALGSC(FRAC(DMP([m[p],m[q],γ[pp],γ[pq],γ[qp],γ[qq]],INT)),4,[p,q,pq,qp],[[[m[p],0,0,m[p]*m[q]*γ[pq]^2],[0,0,0,0],[m[p]*m[q]*γ[pq]^2,0,0,m[p]*m[q]^2*γ[pq]^2],[0,0,0,0]],[[0,0,0,0],[0,m[q],m[p]*m[q]*γ[pq]^2,0],[0,0,0,0],[0,m[p]*m[q]*γ[pq]^2,m[p]^2*m[q]*γ[pq]^2,0]],[[0,1,m[p],0],[0,0,0,0],[0,m[q],m[p]*m[q]*γ[pq]^2,0],[0,0,0,0]],[[0,0,0,0],[1,0,0,m[q]],[0,0,0,0],[m[p],0,0,m[p]*m[q]*γ[pq]^2]]])
fricas
trace(pq)

\label{eq47}0(47)
Type: FRAC(DMP([m[p],m[q],γ[pp],γ[pq],γ[qp],γ[qq]],INT))

Orthogonal Observers

fricas
dual(p) == trace(p)*n - p
Type: VOID
fricas
--dual(p) == n - (1/trace(p))*p
--dual(p) == n - p
p' := dual p
fricas
Compiling function dual with type ALGSC(FRAC(DMP([m[p],m[q],γ[pp],γ[
      pq],γ[qp],γ[qq]],INT)),4,[p,q,pq,qp],[[[m[p],0,0,m[p]*m[q]*γ[pq]^
      2],[0,0,0,0],[m[p]*m[q]*γ[pq]^2,0,0,m[p]*m[q]^2*γ[pq]^2],[0,0,0,0
      ]],[[0,0,0,0],[0,m[q],m[p]*m[q]*γ[pq]^2,0],[0,0,0,0],[0,m[p]*m[q]
      *γ[pq]^2,m[p]^2*m[q]*γ[pq]^2,0]],[[0,1,m[p],0],[0,0,0,0],[0,m[q],
      m[p]*m[q]*γ[pq]^2,0],[0,0,0,0]],[[0,0,0,0],[1,0,0,m[q]],[0,0,0,0]
      ,[m[p],0,0,m[p]*m[q]*γ[pq]^2]]]) -> ALGSC(FRAC(DMP([m[p],m[q],γ[
      pp],γ[pq],γ[qp],γ[qq]],INT)),4,[p,q,pq,qp],[[[m[p],0,0,m[p]*m[q]*
      γ[pq]^2],[0,0,0,0],[m[p]*m[q]*γ[pq]^2,0,0,m[p]*m[q]^2*γ[pq]^2],[0
      ,0,0,0]],[[0,0,0,0],[0,m[q],m[p]*m[q]*γ[pq]^2,0],[0,0,0,0],[0,m[p
      ]*m[q]*γ[pq]^2,m[p]^2*m[q]*γ[pq]^2,0]],[[0,1,m[p],0],[0,0,0,0],[0
      ,m[q],m[p]*m[q]*γ[pq]^2,0],[0,0,0,0]],[[0,0,0,0],[1,0,0,m[q]],[0,
      0,0,0],[m[p],0,0,m[p]*m[q]*γ[pq]^2]]])

\label{eq48}\begin{array}{@{}l}
\displaystyle
{{1 \over{{{m_{q}}\ {{��_{pq}}^{2}}}-{m_{q}}}}\  qp}+{{1 \over{{{m_{q}}\ {{��_{pq}}^{2}}}-{m_{q}}}}\  pq}-{{{m_{p}}\over{{{m_{q}}\ {{��_{pq}}^{2}}}-{m_{q}}}}\  q}- 
\
\
\displaystyle
{{{{��_{pq}}^{2}}\over{{{��_{pq}}^{2}}- 1}}\  p}
(48)
Type: ALGSC(FRAC(DMP([m[p],m[q],γ[pp],γ[pq],γ[qp],γ[qq]],INT)),4,[p,q,pq,qp],[[[m[p],0,0,m[p]*m[q]*γ[pq]^2],[0,0,0,0],[m[p]*m[q]*γ[pq]^2,0,0,m[p]*m[q]^2*γ[pq]^2],[0,0,0,0]],[[0,0,0,0],[0,m[q],m[p]*m[q]*γ[pq]^2,0],[0,0,0,0],[0,m[p]*m[q]*γ[pq]^2,m[p]^2*m[q]*γ[pq]^2,0]],[[0,1,m[p],0],[0,0,0,0],[0,m[q],m[p]*m[q]*γ[pq]^2,0],[0,0,0,0]],[[0,0,0,0],[1,0,0,m[q]],[0,0,0,0],[m[p],0,0,m[p]*m[q]*γ[pq]^2]]])
fricas
trace p'

\label{eq49}m_{p}(49)
Type: FRAC(DMP([m[p],m[q],γ[pp],γ[pq],γ[qp],γ[qq]],INT))
fricas
p'' := dual p'

\label{eq50}p(50)
Type: ALGSC(FRAC(DMP([m[p],m[q],γ[pp],γ[pq],γ[qp],γ[qq]],INT)),4,[p,q,pq,qp],[[[m[p],0,0,m[p]*m[q]*γ[pq]^2],[0,0,0,0],[m[p]*m[q]*γ[pq]^2,0,0,m[p]*m[q]^2*γ[pq]^2],[0,0,0,0]],[[0,0,0,0],[0,m[q],m[p]*m[q]*γ[pq]^2,0],[0,0,0,0],[0,m[p]*m[q]*γ[pq]^2,m[p]^2*m[q]*γ[pq]^2,0]],[[0,1,m[p],0],[0,0,0,0],[0,m[q],m[p]*m[q]*γ[pq]^2,0],[0,0,0,0]],[[0,0,0,0],[1,0,0,m[q]],[0,0,0,0],[m[p],0,0,m[p]*m[q]*γ[pq]^2]]])
fricas
trace p''

\label{eq51}m_{p}(51)
Type: FRAC(DMP([m[p],m[q],γ[pp],γ[pq],γ[qp],γ[qq]],INT))

fricas
test(p' * p' = trace(p')*p')

\label{eq52} \mbox{\rm true} (52)
Type: BOOLEAN
fricas
p * p'

\label{eq53}0(53)
Type: ALGSC(FRAC(DMP([m[p],m[q],γ[pp],γ[pq],γ[qp],γ[qq]],INT)),4,[p,q,pq,qp],[[[m[p],0,0,m[p]*m[q]*γ[pq]^2],[0,0,0,0],[m[p]*m[q]*γ[pq]^2,0,0,m[p]*m[q]^2*γ[pq]^2],[0,0,0,0]],[[0,0,0,0],[0,m[q],m[p]*m[q]*γ[pq]^2,0],[0,0,0,0],[0,m[p]*m[q]*γ[pq]^2,m[p]^2*m[q]*γ[pq]^2,0]],[[0,1,m[p],0],[0,0,0,0],[0,m[q],m[p]*m[q]*γ[pq]^2,0],[0,0,0,0]],[[0,0,0,0],[1,0,0,m[q]],[0,0,0,0],[m[p],0,0,m[p]*m[q]*γ[pq]^2]]])
fricas
p' * p

\label{eq54}0(54)
Type: ALGSC(FRAC(DMP([m[p],m[q],γ[pp],γ[pq],γ[qp],γ[qq]],INT)),4,[p,q,pq,qp],[[[m[p],0,0,m[p]*m[q]*γ[pq]^2],[0,0,0,0],[m[p]*m[q]*γ[pq]^2,0,0,m[p]*m[q]^2*γ[pq]^2],[0,0,0,0]],[[0,0,0,0],[0,m[q],m[p]*m[q]*γ[pq]^2,0],[0,0,0,0],[0,m[p]*m[q]*γ[pq]^2,m[p]^2*m[q]*γ[pq]^2,0]],[[0,1,m[p],0],[0,0,0,0],[0,m[q],m[p]*m[q]*γ[pq]^2,0],[0,0,0,0]],[[0,0,0,0],[1,0,0,m[q]],[0,0,0,0],[m[p],0,0,m[p]*m[q]*γ[pq]^2]]])
fricas
q' := dual q

\label{eq55}\begin{array}{@{}l}
\displaystyle
{{1 \over{{{m_{p}}\ {{��_{pq}}^{2}}}-{m_{p}}}}\  qp}+{{1 \over{{{m_{p}}\ {{��_{pq}}^{2}}}-{m_{p}}}}\  pq}-{{{{��_{pq}}^{2}}\over{{{��_{pq}}^{2}}- 1}}\  q}- 
\
\
\displaystyle
{{{m_{q}}\over{{{m_{p}}\ {{��_{pq}}^{2}}}-{m_{p}}}}\  p}
(55)
Type: ALGSC(FRAC(DMP([m[p],m[q],γ[pp],γ[pq],γ[qp],γ[qq]],INT)),4,[p,q,pq,qp],[[[m[p],0,0,m[p]*m[q]*γ[pq]^2],[0,0,0,0],[m[p]*m[q]*γ[pq]^2,0,0,m[p]*m[q]^2*γ[pq]^2],[0,0,0,0]],[[0,0,0,0],[0,m[q],m[p]*m[q]*γ[pq]^2,0],[0,0,0,0],[0,m[p]*m[q]*γ[pq]^2,m[p]^2*m[q]*γ[pq]^2,0]],[[0,1,m[p],0],[0,0,0,0],[0,m[q],m[p]*m[q]*γ[pq]^2,0],[0,0,0,0]],[[0,0,0,0],[1,0,0,m[q]],[0,0,0,0],[m[p],0,0,m[p]*m[q]*γ[pq]^2]]])
fricas
trace(q')

\label{eq56}m_{q}(56)
Type: FRAC(DMP([m[p],m[q],γ[pp],γ[pq],γ[qp],γ[qq]],INT))
fricas
test(q' * q' = trace(q')*q')

\label{eq57} \mbox{\rm true} (57)
Type: BOOLEAN
fricas
q * q'

\label{eq58}0(58)
Type: ALGSC(FRAC(DMP([m[p],m[q],γ[pp],γ[pq],γ[qp],γ[qq]],INT)),4,[p,q,pq,qp],[[[m[p],0,0,m[p]*m[q]*γ[pq]^2],[0,0,0,0],[m[p]*m[q]*γ[pq]^2,0,0,m[p]*m[q]^2*γ[pq]^2],[0,0,0,0]],[[0,0,0,0],[0,m[q],m[p]*m[q]*γ[pq]^2,0],[0,0,0,0],[0,m[p]*m[q]*γ[pq]^2,m[p]^2*m[q]*γ[pq]^2,0]],[[0,1,m[p],0],[0,0,0,0],[0,m[q],m[p]*m[q]*γ[pq]^2,0],[0,0,0,0]],[[0,0,0,0],[1,0,0,m[q]],[0,0,0,0],[m[p],0,0,m[p]*m[q]*γ[pq]^2]]])
fricas
q' * q

\label{eq59}0(59)
Type: ALGSC(FRAC(DMP([m[p],m[q],γ[pp],γ[pq],γ[qp],γ[qq]],INT)),4,[p,q,pq,qp],[[[m[p],0,0,m[p]*m[q]*γ[pq]^2],[0,0,0,0],[m[p]*m[q]*γ[pq]^2,0,0,m[p]*m[q]^2*γ[pq]^2],[0,0,0,0]],[[0,0,0,0],[0,m[q],m[p]*m[q]*γ[pq]^2,0],[0,0,0,0],[0,m[p]*m[q]*γ[pq]^2,m[p]^2*m[q]*γ[pq]^2,0]],[[0,1,m[p],0],[0,0,0,0],[0,m[q],m[p]*m[q]*γ[pq]^2,0],[0,0,0,0]],[[0,0,0,0],[1,0,0,m[q]],[0,0,0,0],[m[p],0,0,m[p]*m[q]*γ[pq]^2]]])
fricas
--
p' * q'

\label{eq60}{{1 \over{{{��_{pq}}^{2}}- 1}}\  qp}+{{{{��_{pq}}^{2}}\over{{{��_{pq}}^{2}}- 1}}\  pq}-{{{{m_{p}}\ {{��_{pq}}^{2}}}\over{{{��_{pq}}^{2}}- 1}}\  q}-{{{{m_{q}}\ {{��_{pq}}^{2}}}\over{{{��_{pq}}^{2}}- 1}}\  p}(60)
Type: ALGSC(FRAC(DMP([m[p],m[q],γ[pp],γ[pq],γ[qp],γ[qq]],INT)),4,[p,q,pq,qp],[[[m[p],0,0,m[p]*m[q]*γ[pq]^2],[0,0,0,0],[m[p]*m[q]*γ[pq]^2,0,0,m[p]*m[q]^2*γ[pq]^2],[0,0,0,0]],[[0,0,0,0],[0,m[q],m[p]*m[q]*γ[pq]^2,0],[0,0,0,0],[0,m[p]*m[q]*γ[pq]^2,m[p]^2*m[q]*γ[pq]^2,0]],[[0,1,m[p],0],[0,0,0,0],[0,m[q],m[p]*m[q]*γ[pq]^2,0],[0,0,0,0]],[[0,0,0,0],[1,0,0,m[q]],[0,0,0,0],[m[p],0,0,m[p]*m[q]*γ[pq]^2]]])
fricas
p * q'

\label{eq61}- pq +{{m_{q}}\  p}(61)
Type: ALGSC(FRAC(DMP([m[p],m[q],γ[pp],γ[pq],γ[qp],γ[qq]],INT)),4,[p,q,pq,qp],[[[m[p],0,0,m[p]*m[q]*γ[pq]^2],[0,0,0,0],[m[p]*m[q]*γ[pq]^2,0,0,m[p]*m[q]^2*γ[pq]^2],[0,0,0,0]],[[0,0,0,0],[0,m[q],m[p]*m[q]*γ[pq]^2,0],[0,0,0,0],[0,m[p]*m[q]*γ[pq]^2,m[p]^2*m[q]*γ[pq]^2,0]],[[0,1,m[p],0],[0,0,0,0],[0,m[q],m[p]*m[q]*γ[pq]^2,0],[0,0,0,0]],[[0,0,0,0],[1,0,0,m[q]],[0,0,0,0],[m[p],0,0,m[p]*m[q]*γ[pq]^2]]])
fricas
p' * q

\label{eq62}- pq +{{m_{p}}\  q}(62)
Type: ALGSC(FRAC(DMP([m[p],m[q],γ[pp],γ[pq],γ[qp],γ[qq]],INT)),4,[p,q,pq,qp],[[[m[p],0,0,m[p]*m[q]*γ[pq]^2],[0,0,0,0],[m[p]*m[q]*γ[pq]^2,0,0,m[p]*m[q]^2*γ[pq]^2],[0,0,0,0]],[[0,0,0,0],[0,m[q],m[p]*m[q]*γ[pq]^2,0],[0,0,0,0],[0,m[p]*m[q]*γ[pq]^2,m[p]^2*m[q]*γ[pq]^2,0]],[[0,1,m[p],0],[0,0,0,0],[0,m[q],m[p]*m[q]*γ[pq]^2,0],[0,0,0,0]],[[0,0,0,0],[1,0,0,m[q]],[0,0,0,0],[m[p],0,0,m[p]*m[q]*γ[pq]^2]]])
fricas
--
q' * p'

\label{eq63}{{{{��_{pq}}^{2}}\over{{{��_{pq}}^{2}}- 1}}\  qp}+{{1 \over{{{��_{pq}}^{2}}- 1}}\  pq}-{{{{m_{p}}\ {{��_{pq}}^{2}}}\over{{{��_{pq}}^{2}}- 1}}\  q}-{{{{m_{q}}\ {{��_{pq}}^{2}}}\over{{{��_{pq}}^{2}}- 1}}\  p}(63)
Type: ALGSC(FRAC(DMP([m[p],m[q],γ[pp],γ[pq],γ[qp],γ[qq]],INT)),4,[p,q,pq,qp],[[[m[p],0,0,m[p]*m[q]*γ[pq]^2],[0,0,0,0],[m[p]*m[q]*γ[pq]^2,0,0,m[p]*m[q]^2*γ[pq]^2],[0,0,0,0]],[[0,0,0,0],[0,m[q],m[p]*m[q]*γ[pq]^2,0],[0,0,0,0],[0,m[p]*m[q]*γ[pq]^2,m[p]^2*m[q]*γ[pq]^2,0]],[[0,1,m[p],0],[0,0,0,0],[0,m[q],m[p]*m[q]*γ[pq]^2,0],[0,0,0,0]],[[0,0,0,0],[1,0,0,m[q]],[0,0,0,0],[m[p],0,0,m[p]*m[q]*γ[pq]^2]]])
fricas
q * p'

\label{eq64}- qp +{{m_{p}}\  q}(64)
Type: ALGSC(FRAC(DMP([m[p],m[q],γ[pp],γ[pq],γ[qp],γ[qq]],INT)),4,[p,q,pq,qp],[[[m[p],0,0,m[p]*m[q]*γ[pq]^2],[0,0,0,0],[m[p]*m[q]*γ[pq]^2,0,0,m[p]*m[q]^2*γ[pq]^2],[0,0,0,0]],[[0,0,0,0],[0,m[q],m[p]*m[q]*γ[pq]^2,0],[0,0,0,0],[0,m[p]*m[q]*γ[pq]^2,m[p]^2*m[q]*γ[pq]^2,0]],[[0,1,m[p],0],[0,0,0,0],[0,m[q],m[p]*m[q]*γ[pq]^2,0],[0,0,0,0]],[[0,0,0,0],[1,0,0,m[q]],[0,0,0,0],[m[p],0,0,m[p]*m[q]*γ[pq]^2]]])
fricas
q' * p

\label{eq65}- qp +{{m_{q}}\  p}(65)
Type: ALGSC(FRAC(DMP([m[p],m[q],γ[pp],γ[pq],γ[qp],γ[qq]],INT)),4,[p,q,pq,qp],[[[m[p],0,0,m[p]*m[q]*γ[pq]^2],[0,0,0,0],[m[p]*m[q]*γ[pq]^2,0,0,m[p]*m[q]^2*γ[pq]^2],[0,0,0,0]],[[0,0,0,0],[0,m[q],m[p]*m[q]*γ[pq]^2,0],[0,0,0,0],[0,m[p]*m[q]*γ[pq]^2,m[p]^2*m[q]*γ[pq]^2,0]],[[0,1,m[p],0],[0,0,0,0],[0,m[q],m[p]*m[q]*γ[pq]^2,0],[0,0,0,0]],[[0,0,0,0],[1,0,0,m[q]],[0,0,0,0],[m[p],0,0,m[p]*m[q]*γ[pq]^2]]])

Orthogonal Observers are Derivations

fricas
test(p'*(p*q) = (p'*p)*q + p*(p'*q))

\label{eq66} \mbox{\rm true} (66)
Type: BOOLEAN
fricas
test(q'*(p*q) = (q'*p)*q + p*(q'*q))

\label{eq67} \mbox{\rm true} (67)
Type: BOOLEAN
fricas
test((p*q)*p' = (p*p')*q + p*(q*p'))

\label{eq68} \mbox{\rm true} (68)
Type: BOOLEAN
fricas
test((p*q)*q' = (p*q')*q + p*(q*q'))

\label{eq69} \mbox{\rm true} (69)
Type: BOOLEAN

Brackets

fricas
p*q - q*p

\label{eq70}- qp + pq(70)
Type: ALGSC(FRAC(DMP([m[p],m[q],γ[pp],γ[pq],γ[qp],γ[qq]],INT)),4,[p,q,pq,qp],[[[m[p],0,0,m[p]*m[q]*γ[pq]^2],[0,0,0,0],[m[p]*m[q]*γ[pq]^2,0,0,m[p]*m[q]^2*γ[pq]^2],[0,0,0,0]],[[0,0,0,0],[0,m[q],m[p]*m[q]*γ[pq]^2,0],[0,0,0,0],[0,m[p]*m[q]*γ[pq]^2,m[p]^2*m[q]*γ[pq]^2,0]],[[0,1,m[p],0],[0,0,0,0],[0,m[q],m[p]*m[q]*γ[pq]^2,0],[0,0,0,0]],[[0,0,0,0],[1,0,0,m[q]],[0,0,0,0],[m[p],0,0,m[p]*m[q]*γ[pq]^2]]])
fricas
p'*q - q'*p

\label{eq71}qp - pq +{{m_{p}}\  q}-{{m_{q}}\  p}(71)
Type: ALGSC(FRAC(DMP([m[p],m[q],γ[pp],γ[pq],γ[qp],γ[qq]],INT)),4,[p,q,pq,qp],[[[m[p],0,0,m[p]*m[q]*γ[pq]^2],[0,0,0,0],[m[p]*m[q]*γ[pq]^2,0,0,m[p]*m[q]^2*γ[pq]^2],[0,0,0,0]],[[0,0,0,0],[0,m[q],m[p]*m[q]*γ[pq]^2,0],[0,0,0,0],[0,m[p]*m[q]*γ[pq]^2,m[p]^2*m[q]*γ[pq]^2,0]],[[0,1,m[p],0],[0,0,0,0],[0,m[q],m[p]*m[q]*γ[pq]^2,0],[0,0,0,0]],[[0,0,0,0],[1,0,0,m[q]],[0,0,0,0],[m[p],0,0,m[p]*m[q]*γ[pq]^2]]])
fricas
p'*q' - q'*p'

\label{eq72}- qp + pq(72)
Type: ALGSC(FRAC(DMP([m[p],m[q],γ[pp],γ[pq],γ[qp],γ[qq]],INT)),4,[p,q,pq,qp],[[[m[p],0,0,m[p]*m[q]*γ[pq]^2],[0,0,0,0],[m[p]*m[q]*γ[pq]^2,0,0,m[p]*m[q]^2*γ[pq]^2],[0,0,0,0]],[[0,0,0,0],[0,m[q],m[p]*m[q]*γ[pq]^2,0],[0,0,0,0],[0,m[p]*m[q]*γ[pq]^2,m[p]^2*m[q]*γ[pq]^2,0]],[[0,1,m[p],0],[0,0,0,0],[0,m[q],m[p]*m[q]*γ[pq]^2,0],[0,0,0,0]],[[0,0,0,0],[1,0,0,m[q]],[0,0,0,0],[m[p],0,0,m[p]*m[q]*γ[pq]^2]]])

Momentum

fricas
P:=reduce(+,concat [[(1/γ(basis(i),basis(j)))::R*AB(i)*AB(j) for j in 1..size()$V] for i in 1..size()$V])

\label{eq73}{{1 \over{��_{qp}}}\  qp}+{{1 \over{��_{pq}}}\  pq}+{{{m_{q}}\over{��_{qq}}}\  q}+{{{m_{p}}\over{��_{pp}}}\  p}(73)
Type: ALGSC(FRAC(DMP([m[p],m[q],γ[pp],γ[pq],γ[qp],γ[qq]],INT)),4,[p,q,pq,qp],[[[m[p],0,0,m[p]*m[q]*γ[pq]^2],[0,0,0,0],[m[p]*m[q]*γ[pq]^2,0,0,m[p]*m[q]^2*γ[pq]^2],[0,0,0,0]],[[0,0,0,0],[0,m[q],m[p]*m[q]*γ[pq]^2,0],[0,0,0,0],[0,m[p]*m[q]*γ[pq]^2,m[p]^2*m[q]*γ[pq]^2,0]],[[0,1,m[p],0],[0,0,0,0],[0,m[q],m[p]*m[q]*γ[pq]^2,0],[0,0,0,0]],[[0,0,0,0],[1,0,0,m[q]],[0,0,0,0],[m[p],0,0,m[p]*m[q]*γ[pq]^2]]])
fricas
trace(P)

\label{eq74}{\left(
\begin{array}{@{}l}
\displaystyle
{{{m_{p}}^{2}}\ {��_{qp}}\ {��_{qq}}}+{{m_{p}}\ {m_{q}}\ {��_{pp}}\ {{��_{pq}}^{2}}\ {��_{qq}}}+{{m_{p}}\ {m_{q}}\ {��_{pp}}\ {��_{pq}}\ {��_{qp}}\ {��_{qq}}}+ 
\
\
\displaystyle
{{{m_{q}}^{2}}\ {��_{pp}}\ {��_{qp}}}
(74)
Type: FRAC(DMP([m[p],m[q],γ[pp],γ[pq],γ[qp],γ[qq]],INT))
fricas
c:=1/trace(P)*P

\label{eq75}\begin{array}{@{}l}
\displaystyle
{{{{��_{pp}}\ {��_{qq}}}\over{\left(
\begin{array}{@{}l}
\displaystyle
{{{m_{p}}^{2}}\ {��_{qp}}\ {��_{qq}}}+{{m_{p}}\ {m_{q}}\ {��_{pp}}\ {{��_{pq}}^{2}}\ {��_{qq}}}+ 
\
\
\displaystyle
{{m_{p}}\ {m_{q}}\ {��_{pp}}\ {��_{pq}}\ {��_{qp}}\ {��_{qq}}}+{{{m_{q}}^{2}}\ {��_{pp}}\ {��_{qp}}}
(75)
Type: ALGSC(FRAC(DMP([m[p],m[q],γ[pp],γ[pq],γ[qp],γ[qq]],INT)),4,[p,q,pq,qp],[[[m[p],0,0,m[p]*m[q]*γ[pq]^2],[0,0,0,0],[m[p]*m[q]*γ[pq]^2,0,0,m[p]*m[q]^2*γ[pq]^2],[0,0,0,0]],[[0,0,0,0],[0,m[q],m[p]*m[q]*γ[pq]^2,0],[0,0,0,0],[0,m[p]*m[q]*γ[pq]^2,m[p]^2*m[q]*γ[pq]^2,0]],[[0,1,m[p],0],[0,0,0,0],[0,m[q],m[p]*m[q]*γ[pq]^2,0],[0,0,0,0]],[[0,0,0,0],[1,0,0,m[q]],[0,0,0,0],[m[p],0,0,m[p]*m[q]*γ[pq]^2]]])
fricas
c*c-c

\label{eq76}\begin{array}{@{}l}
\displaystyle
{{{-{{m_{p}}\ {m_{q}}\ {{��_{pp}}^{2}}\ {��_{pq}}\ {��_{qp}}\ {{��_{qq}}^{2}}}+{{m_{p}}\ {m_{q}}\ {��_{pp}}\ {{��_{qp}}^{2}}\ {��_{qq}}}}\over{\left(
\begin{array}{@{}l}
\displaystyle
{{{m_{p}}^{4}}\ {{��_{qp}}^{2}}\ {{��_{qq}}^{2}}}+{2 \ {{m_{p}}^{3}}\ {m_{q}}\ {��_{pp}}\ {{��_{pq}}^{2}}\ {��_{qp}}\ {{��_{qq}}^{2}}}+ 
\
\
\displaystyle
{2 \ {{m_{p}}^{3}}\ {m_{q}}\ {��_{pp}}\ {��_{pq}}\ {{��_{qp}}^{2}}\ {{��_{qq}}^{2}}}+{{{m_{p}}^{2}}\ {{m_{q}}^{2}}\ {{��_{pp}}^{2}}\ {{��_{pq}}^{4}}\ {{��_{qq}}^{2}}}+ 
\
\
\displaystyle
{2 \ {{m_{p}}^{2}}\ {{m_{q}}^{2}}\ {{��_{pp}}^{2}}\ {{��_{pq}}^{3}}\ {��_{qp}}\ {{��_{qq}}^{2}}}+ 
\
\
\displaystyle
{{{m_{p}}^{2}}\ {{m_{q}}^{2}}\ {{��_{pp}}^{2}}\ {{��_{pq}}^{2}}\ {{��_{qp}}^{2}}\ {{��_{qq}}^{2}}}+ 
\
\
\displaystyle
{2 \ {{m_{p}}^{2}}\ {{m_{q}}^{2}}\ {��_{pp}}\ {{��_{qp}}^{2}}\ {��_{qq}}}+{2 \ {m_{p}}\ {{m_{q}}^{3}}\ {{��_{pp}}^{2}}\ {{��_{pq}}^{2}}\ {��_{qp}}\ {��_{qq}}}+ 
\
\
\displaystyle
{2 \ {m_{p}}\ {{m_{q}}^{3}}\ {{��_{pp}}^{2}}\ {��_{pq}}\ {{��_{qp}}^{2}}\ {��_{qq}}}+{{{m_{q}}^{4}}\ {{��_{pp}}^{2}}\ {{��_{qp}}^{2}}}
(76)
Type: ALGSC(FRAC(DMP([m[p],m[q],γ[pp],γ[pq],γ[qp],γ[qq]],INT)),4,[p,q,pq,qp],[[[m[p],0,0,m[p]*m[q]*γ[pq]^2],[0,0,0,0],[m[p]*m[q]*γ[pq]^2,0,0,m[p]*m[q]^2*γ[pq]^2],[0,0,0,0]],[[0,0,0,0],[0,m[q],m[p]*m[q]*γ[pq]^2,0],[0,0,0,0],[0,m[p]*m[q]*γ[pq]^2,m[p]^2*m[q]*γ[pq]^2,0]],[[0,1,m[p],0],[0,0,0,0],[0,m[q],m[p]*m[q]*γ[pq]^2,0],[0,0,0,0]],[[0,0,0,0],[1,0,0,m[q]],[0,0,0,0],[m[p],0,0,m[p]*m[q]*γ[pq]^2]]])
fricas
trace(c)

\label{eq77}1(77)
Type: FRAC(DMP([m[p],m[q],γ[pp],γ[pq],γ[qp],γ[qq]],INT))