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

Edit detail for SandBoxObserverAsIdempotent2 revision 12 of 18

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
Editor: Bill Page
Time: 2016/04/09 01:58:38 GMT+0
Note: Lie bracket

changed:
-Orthogonal Observers
Lie bracket

added:
pq:=p*q-q*p
trace(pq)
\end{axiom}

Orthogonal Observers
\begin{axiom}

Obs(2) is a 4 dimensional Frobenius Algebra

This page uses FriCAS? as underlying system.

fricas
)version
Value = "FriCAS 1.2.7 compiled at Tue Sep 29 13:45:04 UTC 2015"

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
base(x:MK):M == leadingSupport(x)
Function declaration base : 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(base(ij),k*k)
    if kk case divisible then
      ij:=monom(leftDiv(kk)*k*rightDiv(kk), coeff(ij)*m(k)*γ(k,k))
  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(base(ij),i*j*k)
        if ijk case divisible then
          ij := monom(leftDiv(ijk)*i*k*rightDiv(ijk), coeff(ij)*m(j)*γ(i,j)*γ(j,k)/γ(i,k))
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 base with type FM(FRAC(POLY(INT)),FMONOID(OVAR([p
      ,q]))) -> FMONOID(OVAR([p,q]))
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 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 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])))
fricas
Compiling function monomial with type FM(FRAC(POLY(INT)),FMONOID(
      OVAR([p,q]))) -> 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
Internal Error The function powerAssociative? with signature hashcode is missing from domain AlgebraGivenByStructuralConstants (Fraction (DistributedMultivariatePolynomial ((*01000m p) (*01000m q) (*01000γ pp) (*01000γ pq) (*01000γ qp) (*01000γ qq)) (Integer))) 4(p q pq qp)UNPRINTABLE

Check Multiplication

fricas
AB := entries basis()$A

\label{eq24}\left[ p , \: q , \: pq , \: qp \right](24)
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{eq25} \mbox{\rm true} (25)
Type: BOOLEAN

Trace

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

\label{eq26}\left[{2 \ {m_{p}}}, \:{2 \ {m_{q}}}, \:{2 \ {m_{p}}\ {m_{q}}\ {{��_{pq}}^{2}}}, \:{2 \ {m_{p}}\ {m_{q}}\ {{��_{pq}}^{2}}}\right](26)
Type: LIST(FRAC(DMP([m[p],m[q],γ[pp],γ[pq],γ[qp],γ[qq]],INT)))
fricas
[leftTrace(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
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{eq28}\left[{m_{p}}, \:{m_{q}}, \:{{m_{p}}\ {m_{q}}\ {{��_{pq}}^{2}}}, \:{{m_{p}}\ {m_{q}}\ {{��_{pq}}^{2}}}\right](28)
Type: LIST(FRAC(DMP([m[p],m[q],γ[pp],γ[pq],γ[qp],γ[qq]],INT)))

Center

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

\label{eq29}1(29)
Type: PI
fricas
c:=C(1)

\label{eq30}qp + pq -{{m_{p}}\  q}-{{m_{q}}\  p}(30)
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{eq31}\left[ 0, \: 0, \: 0, \: 0 \right](31)
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
test(c*c=c)

\label{eq32} \mbox{\rm false} (32)
Type: BOOLEAN

Unit

fricas
rightTrace(c)

\label{eq33}{4 \ {m_{p}}\ {m_{q}}\ {{��_{pq}}^{2}}}-{4 \ {m_{p}}\ {m_{q}}}(33)
Type: FRAC(DMP([m[p],m[q],γ[pp],γ[pq],γ[qp],γ[qq]],INT))
fricas
n := #basis / rightTrace(c) * c

\label{eq34}\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}
(34)
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{eq35}2(35)
Type: FRAC(DMP([m[p],m[q],γ[pp],γ[pq],γ[qp],γ[qq]],INT))
fricas
test(n*n=n)

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

fricas
test(n=unit()$A)

\label{eq37} \mbox{\rm true} (37)
Type: BOOLEAN
fricas
f:=gcd map(x+->denom x,coordinates(n))

\label{eq38}{{��_{pq}}^{2}}- 1(38)
Type: DMP([m[p],m[q],γ[pp],γ[pq],γ[qp],γ[qq]],INT)
fricas
--ff:= matrix [[γ(i,j)::R for j in gens] for i in gens]
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{eq39}\left[ 
\begin{array}{cc}
1 &{��_{pq}}
\
{��_{pq}}& 1 
(39)
Type: MATRIX(FRAC(POLY(INT)))
fricas
--ff:= matrix [[eval(γ(i,j)::R,[γ(gens(1),gens(1))=0,γ(gens(2),gens(2))=0,γ(gens(2),gens(1))=γ(gens(1),gens(2))]) for j in gens] for i in gens]
-determinant(ff)

\label{eq40}{{��_{pq}}^{2}}- 1(40)
Type: FRAC(POLY(INT))
fricas
test(f = %)

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

\label{eq42}{{{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}(42)
Type: OUTFORM

Lie bracket

fricas
p:=AB(1)

\label{eq43}p(43)
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{eq44}m_{p}(44)
Type: FRAC(DMP([m[p],m[q],γ[pp],γ[pq],γ[qp],γ[qq]],INT))
fricas
p*p-trace(p)*p

\label{eq45}0(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
q:=AB(2)

\label{eq46}q(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(q)

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

\label{eq48}0(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
p*q

\label{eq49}pq(49)
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{eq50}- qp + pq(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(pq)

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

Orthogonal Observers

fricas
p' := trace(p)*n-p

\label{eq52}\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}
(52)
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{eq53}m_{p}(53)
Type: FRAC(DMP([m[p],m[q],γ[pp],γ[pq],γ[qp],γ[qq]],INT))
fricas
p' * p' - trace(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
p * p'

\label{eq55}0(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
p' * p

\label{eq56}0(56)
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' := trace(q)*n-q

\label{eq57}\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}
(57)
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{eq58}m_{q}(58)
Type: FRAC(DMP([m[p],m[q],γ[pp],γ[pq],γ[qp],γ[qq]],INT))
fricas
q' * q' - trace(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
q * q'

\label{eq60}0(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
q' * q

\label{eq61}0(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}{{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}(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
p * q'

\label{eq63}- pq +{{m_{q}}\  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
p' * q

\label{eq64}- pq +{{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}{{{{��_{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}(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]]])
fricas
q * p'

\label{eq66}- qp +{{m_{p}}\  q}(66)
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{eq67}- qp +{{m_{q}}\  p}(67)
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]]])

Antisymmetric γ

fricas
eqAnti:List Equation EXPR INT := concat [[(i>j => γ(i,j)=γ(i,j);i=j =>γ(i,j)=0;γ(i,j)=-γ(j,i)) for j in gens] for i in gens]

\label{eq68}\left[{{��_{pp}}= 0}, \:{{��_{pq}}={��_{pq}}}, \:{{��_{qp}}= -{��_{pq}}}, \:{{��_{qq}}= 0}\right](68)
Type: LIST(EQ(EXPR(INT)))
fricas
anti(x:R):R == subst(x::EXPR INT, eqAnti)::FRAC POLY INT
Function declaration anti : FRAC(DMP([m[p],m[q],γ[pp],γ[pq],γ[qp],γ[ qq]],INT)) -> FRAC(DMP([m[p],m[q],γ[pp],γ[pq],γ[qp],γ[qq]],INT)) has been added to workspace.
Type: VOID
fricas
(anti(f)*map(anti ,coordinates(n))::A)::OutputForm / anti(f)::OutputForm
fricas
Compiling function anti with type FRAC(DMP([m[p],m[q],γ[pp],γ[pq],γ[
      qp],γ[qq]],INT)) -> FRAC(DMP([m[p],m[q],γ[pp],γ[pq],γ[qp],γ[qq]],
      INT))

\label{eq69}{{{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}(69)
Type: OUTFORM

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{eq70}{{1 \over{��_{qp}}}\  qp}+{{1 \over{��_{pq}}}\  pq}+{{{m_{q}}\over{��_{qq}}}\  q}+{{{m_{p}}\over{��_{pp}}}\  p}(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
trace(P)

\label{eq71}{\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}}}
(71)
Type: FRAC(DMP([m[p],m[q],γ[pp],γ[pq],γ[qp],γ[qq]],INT))
fricas
c:=1/trace(P)*P

\label{eq72}\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}}}
(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]]])
fricas
c*c-c

\label{eq73}\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}}}
(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(c)

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

Scalar Product

fricas
S := matrix [[trace(x*y) for y in AB] for x in AB]

\label{eq75}\left[ 
\begin{array}{cccc}
{{m_{p}}^{2}}&{{m_{p}}\ {m_{q}}\ {{��_{pq}}^{2}}}&{{{m_{p}}^{2}}\ {m_{q}}\ {{��_{pq}}^{2}}}&{{{m_{p}}^{2}}\ {m_{q}}\ {{��_{pq}}^{2}}}
\
{{m_{p}}\ {m_{q}}\ {{��_{pq}}^{2}}}&{{m_{q}}^{2}}&{{m_{p}}\ {{m_{q}}^{2}}\ {{��_{pq}}^{2}}}&{{m_{p}}\ {{m_{q}}^{2}}\ {{��_{pq}}^{2}}}
\
{{{m_{p}}^{2}}\ {m_{q}}\ {{��_{pq}}^{2}}}&{{m_{p}}\ {{m_{q}}^{2}}\ {{��_{pq}}^{2}}}&{{{m_{p}}^{2}}\ {{m_{q}}^{2}}\ {{��_{pq}}^{4}}}&{{{m_{p}}^{2}}\ {{m_{q}}^{2}}\ {{��_{pq}}^{2}}}
\
{{{m_{p}}^{2}}\ {m_{q}}\ {{��_{pq}}^{2}}}&{{m_{p}}\ {{m_{q}}^{2}}\ {{��_{pq}}^{2}}}&{{{m_{p}}^{2}}\ {{m_{q}}^{2}}\ {{��_{pq}}^{2}}}&{{{m_{p}}^{2}}\ {{m_{q}}^{2}}\ {{��_{pq}}^{4}}}
(75)
Type: MATRIX(FRAC(DMP([m[p],m[q],γ[pp],γ[pq],γ[qp],γ[qq]],INT)))