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

Edit detail for SandBoxAlgebraOfObservers2 revision 1 of 5

1 2 3 4 5
Editor: Bill Page
Time: 2017/04/26 22:43:06 GMT+0
Note: All idempotent operators

changed:
-
Obs(2) is a 4 dimensional Frobenius Algebra

Generators of Obs(2)
\begin{axiom}
)set output abbreviate on
)set message type off
V := OrderedVariableList [p,q]
vars:List V := enumerate()$V
\end{axiom}

--Representation
\begin{axiom}
M := FreeMonoid V
divisible := Record(lm: M,rm: M)
gamma(i:Symbol,j:Symbol):Symbol == concat([string 'γ,string i,string j])::Symbol
--subscript('γ,[concat(string i, string j)::Symbol])
mass(i:Symbol):Symbol == concat("m",string i)::Symbol -- subscript('m,[i])
B := OrderedVariableList(concat [ _
  [mass i for i in vars], _
  concat [[gamma(vars i ,vars j) for i in (j+1)..#vars] for j in 1..#vars] ])
K := FRAC SMP(Integer,B)
--K := Expression Integer
MK := FreeModule(K,M)
m(x:V):K == mass(x::Symbol)
m(vars 1)
γ(x:V,y:V):K ==
  if x<y then
    return variable(gamma(x::Symbol,y::Symbol))$B
  if x>y then
    return variable(gamma(y::Symbol,x::Symbol))$B
  return 1
γ(vars 2,vars 1)
--Basis
basis:List M := concat(vars,concat [[i::M*j::M for j in vars | i~=j] for i in vars])
\end{axiom}
Idempotent: ii --> mᵢ γᵢᵢ i
\begin{axiom}
idem(p:MK):MK ==
  -- p = c*q
  q := leadingSupport p
  c := leadingCoefficient p
  for i in vars::List M repeat
    f := divide(q, i*i)
    if f case divisible then -- q = f.lm * ii * f.rm
      return monomial(c * m i * γ(i,i), elt(f,lm) * i * elt(f,rm))
      --return monomial(c * γ(i,i), elt(f,lm) * i * elt(f,rm))
  return p
idem(basis(1)*basis(1))
\end{axiom}

Reductions: ijk --> mᵢmⱼ γᵢⱼγⱼₖ/γᵢₖ ik
\begin{axiom}
reduct(p:MK):MK ==
  q := leadingSupport p
  c := leadingCoefficient p
  for i in vars repeat
    for j in vars::List M | j ~= i repeat
      for k in vars::List M | k ~= j repeat
        f:=divide(q, i*j*k)
        if f case divisible then
          return monomial(c * m j * γ(i,j) * γ(j,k) / γ(i,k), _
          --return monomial(c * γ(i,j) * γ(j,k) / γ(i,k), _
                     elt(f,lm) * i * k * elt(f,rm))
  return p
reduct(basis(1)*basis(2)*basis(1))
\end{axiom}

An endomorphism on the K-Module is defined by the fixed point of applied rules
\begin{axiom}
Y(p:MK):MK ==
  repeat
    r := p; p := idem reduct r
    if r=p then return p
Y(basis(1)*basis(2))
\end{axiom}

Matrix

Algebra is the free algebra product modulo the fixed point
\begin{axiom}
MT := [[Y(i*j) for j in basis] for i in basis]
\end{axiom}

Structure Constants
\begin{axiom}
mat3(y:M):List List K == map(z+->map(x+->coefficient(x,y),z),MT)
ss:=map(mat3, basis)
\end{axiom}

Algebra
\begin{axiom}
cats(m:M):Symbol==concat(map(x+->string(x.gen::Symbol),factors m))::Symbol
A:=AlgebraGivenByStructuralConstants(K,#(basis)::PI,map(cats,basis),ss::Vector(Matrix K))
alternative?()$A
antiAssociative?()$A
antiCommutative?()$A
associative?()$A
commutative?()$A
flexible?()$A
jacobiIdentity?()$A
jordanAdmissible?()$A
jordanAlgebra?()$A
leftAlternative?()$A
lieAdmissible?()$A
lieAlgebra?()$A
--powerAssociative?()$A
rightAlternative?()$A
\end{axiom}

Check Multiplication
\begin{axiom}
AB := entries basis()$A
A2MK(z:A):MK==reduce(+,map((x:K,y:M):MK+->(x::K)*y,coordinates(z),basis))
test(MT=map(x+->map(A2MK,x),[[i*j for j in AB] for i in AB]))
\end{axiom}

Trace
\begin{axiom}
[rightTrace(i)$A for i in AB]
[leftTrace(i)$A for i in AB]
trace(i)==rightTrace(i) / #vars
[trace(i) for i in AB]
\end{axiom}

\begin{axiom}
p:=AB(1); q:=AB(2);
test(p*p=trace(p)*p)
test(q*q=trace(q)*q)
\end{axiom}

Center
\begin{axiom}
C:=basisOfCenter()$AlgebraPackage(K,A); # C
c:=C(1)
[c*i-i*c for i in AB]
c*c
test(c*c=c)
\end{axiom}

Unit
\begin{axiom}
n := #vars/trace(c) * c
test(n = unit()$A)
trace(n)
test(n*n=n)

f:=gcd map(x+->denom x,coordinates(n))
--Silberstein symmetric matrix
ff:= matrix [[(i=j => 1$K; γ(i,j)) for j in vars] for i in vars]
test(f = - determinant(ff))
(f*n)::OutputForm / f::OutputForm
\end{axiom}

Orthogonal Observers
\begin{axiom}
dual(p) == trace(p)*n - p
--dual(p) == n - (1/trace(p))*p
p' := dual p
trace p'
p'' := dual p'
trace p''

test(p' * p' = trace(p')*p')
p * p'
p' * p
q' := dual q
trace(q')
test(q' * q' = trace(q')*q')
q * q'
q' * q

p' * q'
q' * p'
p' * q
q * p'
p * q'
q' * p
\end{axiom}

Orthogonal Observers are Derivations if there are only two observers
\begin{axiom}
test(p'*(p*q) = (p'*p)*q + p*(p'*q))
test(q'*(p*q) = (q'*p)*q + p*(q'*q))
test((p*q)*p' = (p*p')*q + p*(q*p'))
test((p*q)*q' = (p*q')*q + p*(q*q'))
\end{axiom}

Momentum
\begin{axiom}
P:=reduce(+,concat [[1/γ(basis i,basis j)*AB(i)*AB(j) for j in 1..size()$V] for i in 1..size()$V])
trace(P)
u:=1/trace(P)*P
u*u-u
trace(u)
\end{axiom}

All idempotents

\begin{axiom}
ideq:=conditionsForIdempotents()$GCNAALG(K,#(basis)::PI,map(cats,basis),ss::Vector(Matrix K))
gbs:=groebnerFactorize ideq;
#gbs
\end{axiom}

\begin{axiom}
)set output tex off
)set output algebra on
\end{axiom}

\begin{axiom}
s9:=solve(gbs.9)
i9:=represents(reverse map(rhs,s9.1))$A
test(i9=n)
\end{axiom}

\begin{axiom}
s8:=solve(gbs.8)
i8:=represents(reverse map(rhs,s8.1))$A
test(i8=n-1/trace(p*q)*p*q)
\end{axiom}

\begin{axiom}
s7:=solve(gbs.7)
i7:=represents(reverse map(rhs,s7.1))$A
test(i7=n-1/trace(q*p)*q*p)
\end{axiom}

\begin{axiom}
s6:=solve(gbs.6)
i6:=represents(reverse map(rhs,s6.1))$A
test(i6=1/trace(q*p)*q*p)
\end{axiom}

\begin{axiom}
gbs.5
s5:=solve(gbs.5)
\end{axiom}

\begin{axiom}
s4:=solve(gbs.4)
i4:=represents(reverse map(rhs,s4.1))$A
\end{axiom}

\begin{axiom}
s3:=solve(gbs.3)
i3:=represents(reverse map(rhs,s3.1))$A
test(i3=1/trace(p*q)*p*q)
\end{axiom}

\begin{axiom}
gbs.2
-- apparently we need to look for solutions in a larger ring
ex2:=map(x+->interpret(x::InputForm)$InputFormFunctions1(FRAC POLY INT),concat(gbs.2,[%x3-%x4]))
s2:=solve(ex2,[%x1,%x2,%x3,%x4])
#s2
-- need this to convert solution back to K
(mp,mq,γqp):K
i2:=represents(map(x+->interpret(rhs(x)::InputForm)$InputFormFunctions1(K),s2.1))$A
i2':=represents(map(x+->interpret(rhs(x)::InputForm)$InputFormFunctions1(K),s2.2))$A
test(n-i2=i2')
expr2:=map(x+->interpret(x::InputForm)$InputFormFunctions1(EXPR INT)=0,concat(gbs.2,[]))
solve(expr2,[%x1,%x2,%x3])
gbs.1
--s1:=solve(concat(gbs.1,[%x1-1,%x4-1]))
s1:=solve(concat(gbs.1,[%x1-m('p)/trace(P),%x2-m('q)/trace(P)]))
i1:=represents(reverse map(rhs,s1.1))$A
test(i1=u)
eval(gbs.1,[x=e for x in [%x1,%x2,%x3,%x4] for e in entries coordinates(u)])
eval(gbs.1,[x=e for x in [%x1,%x2,%x3,%x4] for e in entries coordinates(n-u)])
expr1a:=map(x+->interpret(x::InputForm)$InputFormFunctions1(EXPR INT)=0,concat(gbs.1,[]))
solve(expr1a,[%x1,%x2])
expr1b:=map(x+->interpret(x::InputForm)$InputFormFunctions1(EXPR INT)=0,concat(gbs.1,[%x3-%x4]))
solve(expr1b,[%x1,%x2,%x3])
\end{axiom}


Obs(2) is a 4 dimensional Frobenius Algebra

Generators of Obs(2)

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

\label{eq1}\hbox{\axiomType{OVAR}\ } ([ p , q ])(1)
fricas
vars:List V := enumerate()$V

\label{eq2}\left[ p , \: q \right](2)

--Representation

fricas
M := FreeMonoid V

\label{eq3}\hbox{\axiomType{FMONOID}\ } (\hbox{\axiomType{OVAR}\ } ([ p , q ]))(3)
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)
fricas
gamma(i:Symbol,j:Symbol):Symbol == concat([string 'γ,string i,string j])::Symbol
Function declaration gamma : (SYMBOL,SYMBOL) -> SYMBOL has been added to workspace. --subscript('γ,[concat(string i, string j)::Symbol]) mass(i:Symbol):Symbol == concat("m",string i)::Symbol -- subscript('m,[i])
Function declaration mass : SYMBOL -> SYMBOL has been added to workspace. B := OrderedVariableList(concat [ _ [mass i for i in vars], _ concat [[gamma(vars i ,vars j) for i in (j+1)..#vars] for j in 1..#vars] ])
fricas
Compiling function mass with type SYMBOL -> SYMBOL
fricas
Compiling function gamma with type (SYMBOL,SYMBOL) -> SYMBOL

\label{eq5}\hbox{\axiomType{OVAR}\ } ([ mp , mq , �� qp ])(5)
fricas
K := FRAC SMP(Integer,B)

\label{eq6}\hbox{\axiomType{FRAC}\ } (\hbox{\axiomType{SMP}\ } (\hbox{\axiomType{INT}\ } , \hbox{\axiomType{OVAR}\ } ([ mp , mq , �� qp ])))(6)
fricas
--K := Expression Integer
MK := FreeModule(K,M)

\label{eq7}FM (\hbox{\axiomType{FRAC}\ } (\hbox{\axiomType{SMP}\ } (\hbox{\axiomType{INT}\ } , \hbox{\axiomType{OVAR}\ } ([ mp , mq , �� qp ]))) , \hbox{\axiomType{FMONOID}\ } (\hbox{\axiomType{OVAR}\ } ([ p , q ])))(7)
fricas
m(x:V):K == mass(x::Symbol)
Function declaration m : OVAR([p,q]) -> FRAC(SMP(INT,OVAR([mp,mq,γqp ]))) has been added to workspace. m(vars 1)
fricas
Compiling function m with type OVAR([p,q]) -> FRAC(SMP(INT,OVAR([mp,
      mq,γqp])))

\label{eq8}mp(8)
fricas
γ(x:V,y:V):K ==
  if x<y then
    return variable(gamma(x::Symbol,y::Symbol))$B
  if x>y then
    return variable(gamma(y::Symbol,x::Symbol))$B
  return 1
Function declaration γ : (OVAR([p,q]),OVAR([p,q])) -> FRAC(SMP(INT, OVAR([mp,mq,γqp]))) has been added to workspace. Compiled code for gamma has been cleared. γ(vars 2,vars 1)
fricas
Compiling function gamma with type (SYMBOL,SYMBOL) -> SYMBOL
fricas
Compiling function γ with type (OVAR([p,q]),OVAR([p,q])) -> FRAC(SMP
      (INT,OVAR([mp,mq,γqp])))

\label{eq9}�� qp(9)
fricas
--Basis
basis:List M := concat(vars,concat [[i::M*j::M for j in vars | i~=j] for i in vars])

\label{eq10}\left[ p , \: q , \:{p \  q}, \:{q \  p}\right](10)

Idempotent: ii --> mᵢ γᵢᵢ i

fricas
idem(p:MK):MK ==
  -- p = c*q
  q := leadingSupport p
  c := leadingCoefficient p
  for i in vars::List M repeat
    f := divide(q, i*i)
    if f case divisible then -- q = f.lm * ii * f.rm
      return monomial(c * m i * γ(i,i), elt(f,lm) * i * elt(f,rm))
      --return monomial(c * γ(i,i), elt(f,lm) * i * elt(f,rm))
  return p
Function declaration idem : FM(FRAC(SMP(INT,OVAR([mp,mq,γqp]))), FMONOID(OVAR([p,q]))) -> FM(FRAC(SMP(INT,OVAR([mp,mq,γqp]))), FMONOID(OVAR([p,q]))) has been added to workspace. idem(basis(1)*basis(1))
fricas
Compiling function idem with type FM(FRAC(SMP(INT,OVAR([mp,mq,γqp]))
      ),FMONOID(OVAR([p,q]))) -> FM(FRAC(SMP(INT,OVAR([mp,mq,γqp]))),
      FMONOID(OVAR([p,q])))

\label{eq11}mp \  p(11)

Reductions: ijk --> mᵢmⱼ γᵢⱼγⱼₖ/γᵢₖ ik

fricas
reduct(p:MK):MK ==
  q := leadingSupport p
  c := leadingCoefficient p
  for i in vars repeat
    for j in vars::List M | j ~= i repeat
      for k in vars::List M | k ~= j repeat
        f:=divide(q, i*j*k)
        if f case divisible then
          return monomial(c * m j * γ(i,j) * γ(j,k) / γ(i,k), _
          --return monomial(c * γ(i,j) * γ(j,k) / γ(i,k), _
                     elt(f,lm) * i * k * elt(f,rm))
  return p
Function declaration reduct : FM(FRAC(SMP(INT,OVAR([mp,mq,γqp]))), FMONOID(OVAR([p,q]))) -> FM(FRAC(SMP(INT,OVAR([mp,mq,γqp]))), FMONOID(OVAR([p,q]))) has been added to workspace. reduct(basis(1)*basis(2)*basis(1))
fricas
Compiling function reduct with type FM(FRAC(SMP(INT,OVAR([mp,mq,γqp]
      ))),FMONOID(OVAR([p,q]))) -> FM(FRAC(SMP(INT,OVAR([mp,mq,γqp]))),
      FMONOID(OVAR([p,q])))

\label{eq12}{{�� qp}^{2}}\  mq \ {{p}^{2}}(12)

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

fricas
Y(p:MK):MK ==
  repeat
    r := p; p := idem reduct r
    if r=p then return p
Function declaration Y : FM(FRAC(SMP(INT,OVAR([mp,mq,γqp]))),FMONOID (OVAR([p,q]))) -> FM(FRAC(SMP(INT,OVAR([mp,mq,γqp]))),FMONOID( OVAR([p,q]))) has been added to workspace. Y(basis(1)*basis(2))
fricas
Compiling function Y with type FM(FRAC(SMP(INT,OVAR([mp,mq,γqp]))),
      FMONOID(OVAR([p,q]))) -> FM(FRAC(SMP(INT,OVAR([mp,mq,γqp]))),
      FMONOID(OVAR([p,q])))

\label{eq13}p \  q(13)

Matrix

Algebra is the free algebra product modulo the fixed point

fricas
MT := [[Y(i*j) for j in basis] for i in basis]

\label{eq14}\begin{array}{@{}l}
\displaystyle
\left[{\left[{mp \  p}, \:{p \  q}, \:{mp \  p \  q}, \:{{{�� qp}^{2}}\  mq \  mp \  p}\right]}, \: \right.
\
\
\displaystyle
\left.{\left[{q \  p}, \:{mq \  q}, \:{{{�� qp}^{2}}\  mq \  mp \  q}, \:{mq \  q \  p}\right]}, \: \right.
\
\
\displaystyle
\left.{\left[{{{�� qp}^{2}}\  mq \  mp \  p}, \:{mq \  p \  q}, \:{{{�� qp}^{2}}\  mq \  mp \  p \  q}, \:{{{�� qp}^{2}}\ {{mq}^{2}}\  mp \  p}\right]}, \: \right.
\
\
\displaystyle
\left.{\left[{mp \  q \  p}, \:{{{�� qp}^{2}}\  mq \  mp \  q}, \:{{{�� qp}^{2}}\  mq \ {{mp}^{2}}\  q}, \:{{{�� qp}^{2}}\  mq \  mp \  q \  p}\right]}\right] 
(14)

Structure Constants

fricas
mat3(y:M):List List K == map(z+->map(x+->coefficient(x,y),z),MT)
Function declaration mat3 : FMONOID(OVAR([p,q])) -> LIST(LIST(FRAC( SMP(INT,OVAR([mp,mq,γqp]))))) has been added to workspace. ss:=map(mat3, basis)
fricas
Compiling function mat3 with type FMONOID(OVAR([p,q])) -> LIST(LIST(
      FRAC(SMP(INT,OVAR([mp,mq,γqp])))))

\label{eq15}\begin{array}{@{}l}
\displaystyle
\left[{
\begin{array}{@{}l}
\displaystyle
\left[{\left[ mp , \: 0, \: 0, \:{{{�� qp}^{2}}\  mq \  mp}\right]}, \:{\left[ 0, \: 0, \: 0, \: 0 \right]}, \: \right.
\
\
\displaystyle
\left.{\left[{{{�� qp}^{2}}\  mq \  mp}, \: 0, \: 0, \:{{{�� qp}^{2}}\ {{mq}^{2}}\  mp}\right]}, \:{\left[ 0, \: 0, \: 0, \: 0 \right]}\right] 
(15)

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. A:=AlgebraGivenByStructuralConstants(K,#(basis)::PI,map(cats,basis),ss::Vector(Matrix K))
fricas
Compiling function cats with type FMONOID(OVAR([p,q])) -> SYMBOL

\label{eq16}\hbox{\axiomType{ALGSC}\ } (\hbox{\axiomType{FRAC}\ } (\hbox{\axiomType{SMP}\ } (\hbox{\axiomType{INT}\ } , \hbox{\axiomType{OVAR}\ } ([ mp , mq , �� qp ]))) , 4, [ p , q , pq , qp ] , [ [ [ mp , 0, 0, �� qp^2 <em> mq </em> mp ] , [ 0, 0, 0, 0 ] , [ �� qp^2 <em> mq </em> mp , 0, 0, �� qp^2 <em> mq^2 </em> mp ] , [ 0, 0, 0, 0 ] ] , [ [ 0, 0, 0, 0 ] , [ 0, mq , �� qp^2 <em> mq </em> mp , 0 ] , [ 0, 0, 0, 0 ] , [ 0, �� qp^2 <em> mq </em> mp , �� qp^2 <em> mq </em> mp^2, 0 ] ] , [ [ 0, 1, mp , 0 ] , [ 0, 0, 0, 0 ] , [ 0, mq , �� qp^2 <em> mq </em> mp , 0 ] , [ 0, 0, 0, 0 ] ] , [ [ 0, 0, 0, 0 ] , [ 1, 0, 0, mq ] , [ 0, 0, 0, 0 ] , [ mp , 0, 0, �� qp^2 <em> mq </em> mp ] ] ])(16)
fricas
alternative?()$A
algebra satisfies 2*associator(a,b,b) = 0 = 2*associator(a,a,b) = 0

\label{eq17} \mbox{\rm true} (17)
fricas
antiAssociative?()$A
algebra is not anti-associative

\label{eq18} \mbox{\rm false} (18)
fricas
antiCommutative?()$A
algebra is not anti-commutative

\label{eq19} \mbox{\rm false} (19)
fricas
associative?()$A
algebra is associative

\label{eq20} \mbox{\rm true} (20)
fricas
commutative?()$A
algebra is not commutative

\label{eq21} \mbox{\rm false} (21)
fricas
flexible?()$A
algebra is flexible

\label{eq22} \mbox{\rm true} (22)
fricas
jacobiIdentity?()$A
Jacobi identity does not hold

\label{eq23} \mbox{\rm false} (23)
fricas
jordanAdmissible?()$A
algebra is not Jordan admissible

\label{eq24} \mbox{\rm false} (24)
fricas
jordanAlgebra?()$A
algebra is not commutative this is not a Jordan algebra

\label{eq25} \mbox{\rm false} (25)
fricas
leftAlternative?()$A
algebra is left alternative

\label{eq26} \mbox{\rm true} (26)
fricas
lieAdmissible?()$A
algebra is Lie admissible

\label{eq27} \mbox{\rm true} (27)
fricas
lieAlgebra?()$A
algebra is not anti-commutative this is not a Lie algebra

\label{eq28} \mbox{\rm false} (28)
fricas
--powerAssociative?()$A
rightAlternative?()$A
algebra is right alternative

\label{eq29} \mbox{\rm true} (29)

Check Multiplication

fricas
AB := entries basis()$A

\label{eq30}\left[ p , \: q , \: pq , \: qp \right](30)
fricas
A2MK(z:A):MK==reduce(+,map((x:K,y:M):MK+->(x::K)*y,coordinates(z),basis))
Function declaration A2MK : ALGSC(FRAC(SMP(INT,OVAR([mp,mq,γqp]))),4 ,[p,q,pq,qp],[[[mp,0,0,γqp^2*mq*mp],[0,0,0,0],[γqp^2*mq*mp,0,0, γqp^2*mq^2*mp],[0,0,0,0]],[[0,0,0,0],[0,mq,γqp^2*mq*mp,0],[0,0,0, 0],[0,γqp^2*mq*mp,γqp^2*mq*mp^2,0]],[[0,1,mp,0],[0,0,0,0],[0,mq, γqp^2*mq*mp,0],[0,0,0,0]],[[0,0,0,0],[1,0,0,mq],[0,0,0,0],[mp,0,0 ,γqp^2*mq*mp]]]) -> FM(FRAC(SMP(INT,OVAR([mp,mq,γqp]))),FMONOID( OVAR([p,q]))) has been added to workspace. 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(SMP(INT,OVAR([mp,mq,γqp
      ]))),4,[p,q,pq,qp],[[[mp,0,0,γqp^2*mq*mp],[0,0,0,0],[γqp^2*mq*mp,
      0,0,γqp^2*mq^2*mp],[0,0,0,0]],[[0,0,0,0],[0,mq,γqp^2*mq*mp,0],[0,
      0,0,0],[0,γqp^2*mq*mp,γqp^2*mq*mp^2,0]],[[0,1,mp,0],[0,0,0,0],[0,
      mq,γqp^2*mq*mp,0],[0,0,0,0]],[[0,0,0,0],[1,0,0,mq],[0,0,0,0],[mp,
      0,0,γqp^2*mq*mp]]]) -> FM(FRAC(SMP(INT,OVAR([mp,mq,γqp]))),
      FMONOID(OVAR([p,q])))

\label{eq31} \mbox{\rm true} (31)

Trace

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

\label{eq32}\left[{2 \  mp}, \:{2 \  mq}, \:{2 \ {{�� qp}^{2}}\  mq \  mp}, \:{2 \ {{�� qp}^{2}}\  mq \  mp}\right](32)
fricas
[leftTrace(i)$A for i in AB]

\label{eq33}\left[{2 \  mp}, \:{2 \  mq}, \:{2 \ {{�� qp}^{2}}\  mq \  mp}, \:{2 \ {{�� qp}^{2}}\  mq \  mp}\right](33)
fricas
trace(i)==rightTrace(i) / #vars
[trace(i) for i in AB]
fricas
Compiling function trace with type ALGSC(FRAC(SMP(INT,OVAR([mp,mq,
      γqp]))),4,[p,q,pq,qp],[[[mp,0,0,γqp^2*mq*mp],[0,0,0,0],[γqp^2*mq*
      mp,0,0,γqp^2*mq^2*mp],[0,0,0,0]],[[0,0,0,0],[0,mq,γqp^2*mq*mp,0],
      [0,0,0,0],[0,γqp^2*mq*mp,γqp^2*mq*mp^2,0]],[[0,1,mp,0],[0,0,0,0],
      [0,mq,γqp^2*mq*mp,0],[0,0,0,0]],[[0,0,0,0],[1,0,0,mq],[0,0,0,0],[
      mp,0,0,γqp^2*mq*mp]]]) -> FRAC(SMP(INT,OVAR([mp,mq,γqp])))

\label{eq34}\left[ mp , \: mq , \:{{{�� qp}^{2}}\  mq \  mp}, \:{{{�� qp}^{2}}\  mq \  mp}\right](34)

fricas
p:=AB(1); q:=AB(2);
test(p*p=trace(p)*p)

\label{eq35} \mbox{\rm true} (35)
fricas
test(q*q=trace(q)*q)

\label{eq36} \mbox{\rm true} (36)

Center

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

\label{eq37}1(37)
fricas
c:=C(1)

\label{eq38}qp + pq -{mp \  q}-{mq \  p}(38)
fricas
[c*i-i*c for i in AB]

\label{eq39}\left[ 0, \: 0, \: 0, \: 0 \right](39)
fricas
c*c

\label{eq40}\begin{array}{@{}l}
\displaystyle
{{\left({{�� qp}^{2}}- 1 \right)}\  mq \  mp \  qp}+{{\left({{�� qp}^{2}}- 1 \right)}\  mq \  mp \  pq}+ 
\
\
\displaystyle
{{\left(-{{�� qp}^{2}}+ 1 \right)}\  mq \ {{mp}^{2}}\  q}+{{\left(-{{�� qp}^{2}}+ 1 \right)}\ {{mq}^{2}}\  mp \  p}
(40)
fricas
test(c*c=c)

\label{eq41} \mbox{\rm false} (41)

Unit

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

\label{eq42}\begin{array}{@{}l}
\displaystyle
{{1 \over{{\left({{�� qp}^{2}}- 1 \right)}\  mq \  mp}}\  qp}+{{1 \over{{\left({{�� qp}^{2}}- 1 \right)}\  mq \  mp}}\  pq}- 
\
\
\displaystyle
{{1 \over{{\left({{�� qp}^{2}}- 1 \right)}\  mq}}\  q}-{{1 \over{{\left({{�� qp}^{2}}- 1 \right)}\  mp}}\  p}
(42)
fricas
test(n = unit()$A)

\label{eq43} \mbox{\rm true} (43)
fricas
trace(n)

\label{eq44}2(44)
fricas
test(n*n=n)

\label{eq45} \mbox{\rm true} (45)
fricas
f:=gcd map(x+->denom x,coordinates(n))

\label{eq46}{{�� qp}^{2}}- 1(46)
fricas
--Silberstein symmetric matrix
ff:= matrix [[(i=j => 1$K; γ(i,j)) for j in vars] for i in vars]

\label{eq47}\left[ 
\begin{array}{cc}
1 & �� qp 
\
�� qp & 1 
(47)
fricas
test(f = - determinant(ff))

\label{eq48} \mbox{\rm true} (48)
fricas
(f*n)::OutputForm / f::OutputForm

\label{eq49}{{{1 \over{mq \  mp}}\  qp}+{{1 \over{mq \  mp}}\  pq}-{{1 \over mq}\  q}-{{1 \over mp}\  p}}\over{{{�� qp}^{2}}- 1}(49)

Orthogonal Observers

fricas
dual(p) == trace(p)*n - p
--dual(p) == n - (1/trace(p))*p p' := dual p
fricas
Compiling function dual with type ALGSC(FRAC(SMP(INT,OVAR([mp,mq,γqp
      ]))),4,[p,q,pq,qp],[[[mp,0,0,γqp^2*mq*mp],[0,0,0,0],[γqp^2*mq*mp,
      0,0,γqp^2*mq^2*mp],[0,0,0,0]],[[0,0,0,0],[0,mq,γqp^2*mq*mp,0],[0,
      0,0,0],[0,γqp^2*mq*mp,γqp^2*mq*mp^2,0]],[[0,1,mp,0],[0,0,0,0],[0,
      mq,γqp^2*mq*mp,0],[0,0,0,0]],[[0,0,0,0],[1,0,0,mq],[0,0,0,0],[mp,
      0,0,γqp^2*mq*mp]]]) -> ALGSC(FRAC(SMP(INT,OVAR([mp,mq,γqp]))),4,[
      p,q,pq,qp],[[[mp,0,0,γqp^2*mq*mp],[0,0,0,0],[γqp^2*mq*mp,0,0,γqp^
      2*mq^2*mp],[0,0,0,0]],[[0,0,0,0],[0,mq,γqp^2*mq*mp,0],[0,0,0,0],[
      0,γqp^2*mq*mp,γqp^2*mq*mp^2,0]],[[0,1,mp,0],[0,0,0,0],[0,mq,γqp^2
      *mq*mp,0],[0,0,0,0]],[[0,0,0,0],[1,0,0,mq],[0,0,0,0],[mp,0,0,γqp^
      2*mq*mp]]])

\label{eq50}\begin{array}{@{}l}
\displaystyle
{{1 \over{{\left({{�� qp}^{2}}- 1 \right)}\  mq}}\  qp}+{{1 \over{{\left({{�� qp}^{2}}- 1 \right)}\  mq}}\  pq}-{{mp \over{{\left({{�� qp}^{2}}- 1 \right)}\  mq}}\  q}- 
\
\
\displaystyle
{{{{�� qp}^{2}}\over{{{�� qp}^{2}}- 1}}\  p}
(50)
fricas
trace p'

\label{eq51}mp(51)
fricas
p'' := dual p'

\label{eq52}p(52)
fricas
trace p''

\label{eq53}mp(53)
fricas
test(p' * p' = trace(p')*p')

\label{eq54} \mbox{\rm true} (54)
fricas
p * p'

\label{eq55}0(55)
fricas
p' * p

\label{eq56}0(56)
fricas
q' := dual q

\label{eq57}\begin{array}{@{}l}
\displaystyle
{{1 \over{{\left({{�� qp}^{2}}- 1 \right)}\  mp}}\  qp}+{{1 \over{{\left({{�� qp}^{2}}- 1 \right)}\  mp}}\  pq}-{{{{�� qp}^{2}}\over{{{�� qp}^{2}}- 1}}\  q}- 
\
\
\displaystyle
{{mq \over{{\left({{�� qp}^{2}}- 1 \right)}\  mp}}\  p}
(57)
fricas
trace(q')

\label{eq58}mq(58)
fricas
test(q' * q' = trace(q')*q')

\label{eq59} \mbox{\rm true} (59)
fricas
q * q'

\label{eq60}0(60)
fricas
q' * q

\label{eq61}0(61)
fricas
p' * q'

\label{eq62}{{1 \over{{{�� qp}^{2}}- 1}}\  qp}+{{{{�� qp}^{2}}\over{{{�� qp}^{2}}- 1}}\  pq}-{{{{{�� qp}^{2}}\  mp}\over{{{�� qp}^{2}}- 1}}\  q}-{{{{{�� qp}^{2}}\  mq}\over{{{�� qp}^{2}}- 1}}\  p}(62)
fricas
q' * p'

\label{eq63}{{{{�� qp}^{2}}\over{{{�� qp}^{2}}- 1}}\  qp}+{{1 \over{{{�� qp}^{2}}- 1}}\  pq}-{{{{{�� qp}^{2}}\  mp}\over{{{�� qp}^{2}}- 1}}\  q}-{{{{{�� qp}^{2}}\  mq}\over{{{�� qp}^{2}}- 1}}\  p}(63)
fricas
p' * q

\label{eq64}- pq +{mp \  q}(64)
fricas
q * p'

\label{eq65}- qp +{mp \  q}(65)
fricas
p * q'

\label{eq66}- pq +{mq \  p}(66)
fricas
q' * p

\label{eq67}- qp +{mq \  p}(67)

Orthogonal Observers are Derivations if there are only two observers

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

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

\label{eq69} \mbox{\rm true} (69)
fricas
test((p*q)*p' = (p*p')*q + p*(q*p'))

\label{eq70} \mbox{\rm true} (70)
fricas
test((p*q)*q' = (p*q')*q + p*(q*q'))

\label{eq71} \mbox{\rm true} (71)

Momentum

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

\label{eq72}{{1 \over �� qp}\  qp}+{{1 \over �� qp}\  pq}+{mq \  q}+{mp \  p}(72)
fricas
trace(P)

\label{eq73}{{mp}^{2}}+{2 \  �� qp \  mq \  mp}+{{mq}^{2}}(73)
fricas
u:=1/trace(P)*P

\label{eq74}\begin{array}{@{}l}
\displaystyle
{{1 \over{{�� qp \ {{mp}^{2}}}+{2 \ {{�� qp}^{2}}\  mq \  mp}+{�� qp \ {{mq}^{2}}}}}\  qp}+ 
\
\
\displaystyle
{{1 \over{{�� qp \ {{mp}^{2}}}+{2 \ {{�� qp}^{2}}\  mq \  mp}+{�� qp \ {{mq}^{2}}}}}\  pq}+ 
\
\
\displaystyle
{{mq \over{{{mp}^{2}}+{2 \  �� qp \  mq \  mp}+{{mq}^{2}}}}\  q}+{{mp \over{{{mp}^{2}}+{2 \  �� qp \  mq \  mp}+{{mq}^{2}}}}\  p}
(74)
fricas
u*u-u

\label{eq75}0(75)
fricas
trace(u)

\label{eq76}1(76)

All idempotents

fricas
ideq:=conditionsForIdempotents()$GCNAALG(K,#(basis)::PI,map(cats,basis),ss::Vector(Matrix K))

\label{eq77}\begin{array}{@{}l}
\displaystyle
\left[{
\begin{array}{@{}l}
\displaystyle
{{\left({{{�� qp}^{2}}\ {{mq}^{2}}\  mp \  \%x 3}+{{{�� qp}^{2}}\  mq \  mp \  \%x 1}\right)}\  \%x 4}+ 
\
\
\displaystyle
{{{�� qp}^{2}}\  mq \  mp \  \%x 1 \  \%x 3}+{mp \ {{\%x 1}^{2}}}- \%x 1 
(77)
fricas
gbs:=groebnerFactorize ideq;
#gbs

\label{eq78}9(78)

fricas
)set output tex off
 
fricas
)set output algebra on

fricas
s9:=solve(gbs.9)
(93) [ 1 1 1 [%x4 = ---------------, %x3 = ---------------, %x2 = - ------------, 2 2 2 (γqp - 1)mq mp (γqp - 1)mq mp (γqp - 1)mq 1 %x1 = - ------------] 2 (γqp - 1)mp ] i9:=represents(reverse map(rhs,s9.1))$A
(94) 1 1 1 1 --------------- qp + --------------- pq - ------------ q - ------------ p 2 2 2 2 (γqp - 1)mq mp (γqp - 1)mq mp (γqp - 1)mq (γqp - 1)mp test(i9=n)
(95) true

fricas
s8:=solve(gbs.8)
(96) [ 1 1 1 [%x4 = ---------------, %x3 = ------------------, %x2 = - ------------, 2 4 2 2 (γqp - 1)mq mp (γqp - γqp )mq mp (γqp - 1)mq 1 %x1 = - ------------] 2 (γqp - 1)mp ] i8:=represents(reverse map(rhs,s8.1))$A
(97) 1 1 1 1 --------------- qp + ------------------ pq - ------------ q - ------------ p 2 4 2 2 2 (γqp - 1)mq mp (γqp - γqp )mq mp (γqp - 1)mq (γqp - 1)mp test(i8=n-1/trace(p*q)*p*q)
(98) true

fricas
s7:=solve(gbs.7)
(99) [ 1 1 1 [%x4 = ------------------, %x3 = ---------------, %x2 = - ------------, 4 2 2 2 (γqp - γqp )mq mp (γqp - 1)mq mp (γqp - 1)mq 1 %x1 = - ------------] 2 (γqp - 1)mp ] i7:=represents(reverse map(rhs,s7.1))$A
(100) 1 1 1 1 ------------------ qp + --------------- pq - ------------ q - ------------ p 4 2 2 2 2 (γqp - γqp )mq mp (γqp - 1)mq mp (γqp - 1)mq (γqp - 1)mp test(i7=n-1/trace(q*p)*q*p)
(101) true

fricas
s6:=solve(gbs.6)
1 (102) [[%x4 = ---------,%x3 = 0,%x2 = 0,%x1 = 0]] 2 γqp mq mp i6:=represents(reverse map(rhs,s6.1))$A
1 (103) --------- qp 2 γqp mq mp test(i6=1/trace(q*p)*q*p)
(104) true

fricas
gbs.5
(105) [1] s5:=solve(gbs.5)
(106) []

fricas
s4:=solve(gbs.4)
(107) [[%x4 = 0,%x3 = 0,%x2 = 0,%x1 = 0]] i4:=represents(reverse map(rhs,s4.1))$A
(108) 0

fricas
s3:=solve(gbs.3)
1 (109) [[%x4 = 0,%x3 = ---------,%x2 = 0,%x1 = 0]] 2 γqp mq mp i3:=represents(reverse map(rhs,s3.1))$A
1 (110) --------- pq 2 γqp mq mp test(i3=1/trace(p*q)*p*q)
(111) true

fricas
gbs.2
(112) 2 1 [%x4 + %x3 + ------ %x1 - ---------, 2 2 γqp mq γqp mq mp 2 2 1 1 2 mp %x3 + (------ %x1 - ---------)%x3 + ------- %x1 , %x2 - -- %x1] 2 2 2 2 mq γqp mq γqp mq mp γqp mq -- apparently we need to look for solutions in a larger ring ex2:=map(x+->interpret(x::InputForm)$InputFormFunctions1(FRAC POLY INT),concat(gbs.2,[%x3-%x4]))
(113) 2 (%x4 + %x3)mp mq γqp + 2%x1 mp - 1 [-----------------------------------, 2 mp mq γqp 2 2 2 2 %x3 mp mq γqp + (2%x1 %x3 mp - %x3)mq + %x1 mp %x2 mq - %x1 mp -----------------------------------------------, ---------------, 2 2 mq mp mq γqp - %x4 + %x3] s2:=solve(ex2,[%x1,%x2,%x3,%x4])
(114) [ 1 1 [%x1 = - -------------, %x2 = - -------------, 2mp γqp - 2mp 2mq γqp - 2mq 1 1 %x3 = ------------------------, %x4 = ------------------------] 2 2 2mp mq γqp - 2mp mq γqp 2mp mq γqp - 2mp mq γqp ,
1 1 1 [%x1 = -------------, %x2 = -------------, %x3 = ------------------------, 2mp γqp + 2mp 2mq γqp + 2mq 2 2mp mq γqp + 2mp mq γqp 1 %x4 = ------------------------] 2 2mp mq γqp + 2mp mq γqp ] #s2
(115) 2 -- need this to convert solution back to K (mp,mq,γqp):K
i2:=represents(map(x+->interpret(rhs(x)::InputForm)$InputFormFunctions1(K),s2.1))$A
(117) 1 1 1 ------------------- qp + ------------------- pq - ------------ q 2 2 (2γqp - 2)mq (2γqp - 2γqp)mq mp (2γqp - 2γqp)mq mp + 1 - ------------ p (2γqp - 2)mp i2':=represents(map(x+->interpret(rhs(x)::InputForm)$InputFormFunctions1(K),s2.2))$A
(118) 1 1 1 ------------------- qp + ------------------- pq + ------------ q 2 2 (2γqp + 2)mq (2γqp + 2γqp)mq mp (2γqp + 2γqp)mq mp + 1 ------------ p (2γqp + 2)mp test(n-i2=i2')
(119) true expr2:=map(x+->interpret(x::InputForm)$InputFormFunctions1(EXPR INT)=0,concat(gbs.2,[]))
(120) 2 (%x4 + %x3)mp mq γqp + 2%x1 mp - 1 [----------------------------------- = 0, 2 mp mq γqp 2 2 2 2 %x3 mp mq γqp + (2%x1 %x3 mp - %x3)mq + %x1 mp %x2 mq - %x1 mp ----------------------------------------------- = 0, --------------- = 0] 2 2 mq mp mq γqp solve(expr2,[%x1,%x2,%x3])
(121) [ [ %x1 = +------------------------------------------------------+ | 2 4 4 6 2 4 4 3 3 4 \|- 16%x4 mp mq γqp + (16%x4 mp mq + 16%x4 mp mq )γqp + 2 2 2 - 4%x4 mp mq γqp / 2 2 4mp mq γqp ,
%x2 = +------------------------------------------------------+ | 2 4 4 6 2 4 4 3 3 4 \|- 16%x4 mp mq γqp + (16%x4 mp mq + 16%x4 mp mq )γqp + 2 2 2 - 4%x4 mp mq γqp / 2 2 4mp mq γqp ,
%x3 = +------------------------------------------------------+ | 2 4 4 6 2 4 4 3 3 4 - \|- 16%x4 mp mq γqp + (16%x4 mp mq + 16%x4 mp mq )γqp + 2 2 4 2 2 2 - 2%x4 mp mq γqp + (4%x4 mp mq + 2mp mq)γqp / 2 2 4 2mp mq γqp ] ,
[ %x1 = +------------------------------------------------------+ | 2 4 4 6 2 4 4 3 3 4 - \|- 16%x4 mp mq γqp + (16%x4 mp mq + 16%x4 mp mq )γqp + 2 2 2 - 4%x4 mp mq γqp / 2 2 4mp mq γqp ,
%x2 = +------------------------------------------------------+ | 2 4 4 6 2 4 4 3 3 4 - \|- 16%x4 mp mq γqp + (16%x4 mp mq + 16%x4 mp mq )γqp + 2 2 2 - 4%x4 mp mq γqp / 2 2 4mp mq γqp ,
%x3 = +------------------------------------------------------+ | 2 4 4 6 2 4 4 3 3 4 \|- 16%x4 mp mq γqp + (16%x4 mp mq + 16%x4 mp mq )γqp + 2 2 4 2 2 2 - 2%x4 mp mq γqp + (4%x4 mp mq + 2mp mq)γqp / 2 2 4 2mp mq γqp ] ] gbs.1
(122) 1 1 1 [%x4 + %x3 + ------ %x2 + ------ %x1 - ---------, 2 2 2 γqp mp γqp mq γqp mq mp 2 1 1 1 1 %x3 + (------ %x2 + ------ %x1 - ---------)%x3 + --------- %x1 %x2] 2 2 2 2 γqp mp γqp mq γqp mq mp γqp mq mp --s1:=solve(concat(gbs.1,[%x1-1,%x4-1])) s1:=solve(concat(gbs.1,[%x1-m('p)/trace(P),%x2-m('q)/trace(P)]))
(123) [ 1 [%x4 = ------------------------------, 2 2 2 γqp mp + 2γqp mq mp + γqp mq 1 mq %x3 = ------------------------------, %x2 = ----------------------, 2 2 2 2 2 γqp mp + 2γqp mq mp + γqp mq mp + 2γqp mq mp + mq mp %x1 = ----------------------] 2 2 mp + 2γqp mq mp + mq ] i1:=represents(reverse map(rhs,s1.1))$A
(124) 1 1 ------------------------------ qp + ------------------------------ pq 2 2 2 2 2 2 γqp mp + 2γqp mq mp + γqp mq γqp mp + 2γqp mq mp + γqp mq + mq mp ---------------------- q + ---------------------- p 2 2 2 2 mp + 2γqp mq mp + mq mp + 2γqp mq mp + mq test(i1=u)
(125) true eval(gbs.1,[x=e for x in [%x1,%x2,%x3,%x4] for e in entries coordinates(u)])
(126) [0,0] eval(gbs.1,[x=e for x in [%x1,%x2,%x3,%x4] for e in entries coordinates(n-u)])
(127) [0,0] expr1a:=map(x+->interpret(x::InputForm)$InputFormFunctions1(EXPR INT)=0,concat(gbs.1,[]))
(128) 2 (%x4 + %x3)mp mq γqp + %x2 mq + %x1 mp - 1 [------------------------------------------- = 0, 2 mp mq γqp 2 2 %x3 mp mq γqp + %x2 %x3 mq + %x1 %x3 mp - %x3 + %x1 %x2 -------------------------------------------------------- = 0] 2 mp mq γqp solve(expr1a,[%x1,%x2])
(129) [ [ %x1 = ROOT 2 2 2 2 4 (%x4 + 2%x3 %x4 + %x3 )mp mq γqp + 2 2 2 (- 4%x3 %x4 mp mq + (- 2%x4 - 2%x3)mp mq)γqp + 1 + 2 (- %x4 - %x3)mp mq γqp + 1 / 2mp ,
%x2 = - ROOT 2 2 2 2 4 (%x4 + 2%x3 %x4 + %x3 )mp mq γqp + 2 2 2 (- 4%x3 %x4 mp mq + (- 2%x4 - 2%x3)mp mq)γqp + 1 + 2 (- %x4 - %x3)mp mq γqp + 1 / 2mq ] ,
[ %x1 = - ROOT 2 2 2 2 4 (%x4 + 2%x3 %x4 + %x3 )mp mq γqp + 2 2 2 (- 4%x3 %x4 mp mq + (- 2%x4 - 2%x3)mp mq)γqp + 1 + 2 (- %x4 - %x3)mp mq γqp + 1 / 2mp ,
%x2 = ROOT 2 2 2 2 4 (%x4 + 2%x3 %x4 + %x3 )mp mq γqp + 2 2 2 (- 4%x3 %x4 mp mq + (- 2%x4 - 2%x3)mp mq)γqp + 1 + 2 (- %x4 - %x3)mp mq γqp + 1 / 2mq ] ] expr1b:=map(x+->interpret(x::InputForm)$InputFormFunctions1(EXPR INT)=0,concat(gbs.1,[%x3-%x4]))
(130) 2 (%x4 + %x3)mp mq γqp + %x2 mq + %x1 mp - 1 [------------------------------------------- = 0, 2 mp mq γqp 2 2 %x3 mp mq γqp + %x2 %x3 mq + %x1 %x3 mp - %x3 + %x1 %x2 -------------------------------------------------------- = 0, 2 mp mq γqp - %x4 + %x3 = 0] solve(expr1b,[%x1,%x2,%x3])
(131) [ [ %x1 = +------------------------------------------------------+ | 2 2 2 4 2 2 2 2 - \|4%x4 mp mq γqp + (- 4%x4 mp mq - 4%x4 mp mq)γqp + 1 + 2 - 2%x4 mp mq γqp + 1 / 2mp ,
%x2 = +------------------------------------------------------+ | 2 2 2 4 2 2 2 2 \|4%x4 mp mq γqp + (- 4%x4 mp mq - 4%x4 mp mq)γqp + 1 + 2 - 2%x4 mp mq γqp + 1 / 2mq , %x3 = %x4] ,
[ %x1 = +------------------------------------------------------+ | 2 2 2 4 2 2 2 2 \|4%x4 mp mq γqp + (- 4%x4 mp mq - 4%x4 mp mq)γqp + 1 + 2 - 2%x4 mp mq γqp + 1 / 2mp ,
%x2 = +------------------------------------------------------+ | 2 2 2 4 2 2 2 2 - \|4%x4 mp mq γqp + (- 4%x4 mp mq - 4%x4 mp mq)γqp + 1 + 2 - 2%x4 mp mq γqp + 1 / 2mq , %x3 = %x4] ]