|
|
last edited 11 years ago by Bill Page |
1 2 3 4 5 6 7 8 | ||
Editor: page
Time: 2011/04/07 15:59:27 GMT-7 |
||
Note: new |
changed: - Octonion Algebra is Frobenius in just one way! 4-dimensional vector space representing Octonion Algebra \begin{axiom} )set output tex off )set output algebra on \end{axiom} \begin{axiom} dim:=8 T := CartesianTensor(1,dim,EXPR INT) X:List T := [unravel [(i=j => 1;0) for j in 1..dim] for i in 1..dim] X(1),X(2) \end{axiom} Generate structure constants for Quaternion Algebra \begin{axiom} B:=map(x+->octon(x.1,x.2,x.3,x.4,x.5,x.6,x.7,x.8),1$SQMATRIX(dim,FRAC INT)::List List FRAC INT) M:=matrix [[B.i*B.j for j in 1..dim] for i in 1..dim] S(y)==map(x+->(x*inv(y)=1 or x*inv(y)=-1 => x*inv(y);0),M) Yg:T:=unravel concat concat(map(S,B)::List List List FRAC POLY INT) \end{axiom} A scalar product is denoted by the (2,0)-tensor $U = \{ u_{ij} \}$ \begin{axiom} U:T := unravel(concat [[script(u,[[],[j,i]]) for i in 1..dim] for j in 1..dim] ) \end{axiom} Definition 1 We say that the scalar product is *associative* if the tensor equation holds:: Y = Y U U In other words, if the (3,0)-tensor:: i j k i j k i j k \ | / \/ / \ \/ \|/ = \ / - \ / 0 0 0 \begin{equation} \Phi = \{ \phi^{ijk} = {y^e}_{ij} u_{ek} - u_{ie} {y_e}^{jk} \} \end{equation} (three-point function) is zero. \begin{axiom} ω := reindex(reindex(U,[2,1])*reindex(Yg,[1,3,2]),[3,2,1])-U*Yg; \end{axiom} Definition 2 An algebra with a non-degenerate associative scalar product is called *pre-Frobenius*. We may consider the problem where multiplication Y is given, and look for all associative scalar products $U = U(Y)$ This problem can be solved using linear algebra. \begin{axiom} )expose MCALCFN J := jacobian(ravel ω,concat(map(variables,ravel U))::List Symbol); uu := transpose matrix [concat(map(variables,ravel(U)))::List Symbol]; J::OutputForm * uu::OutputForm = 0; nrows(J) ncols(J) \end{axiom} The matrix 'J' transforms the coefficients of the tensor $U$ into coefficients of the tensor $\Phi$. We are looking for the general linear family of tensors $U=U(Y,p_i)$ such that 'J' transforms $U$ into $\Phi=0$ for any such $U$. If the null space of the 'J' matrix is not empty we can use the basis to find all non-trivial solutions for U: \begin{axiom} NJ:=nullSpace(J) SS:=map((x,y)+->x=y,concat map(variables,ravel U), entries reduce(+,[p[i]*NJ.i for i in 1..#NJ])) Ug:T := unravel(map(x+->subst(x,SS),ravel U)) \end{axiom} This defines a family of pre-Frobenius algebras: \begin{axiom} test(unravel(map(x+->subst(x,SS),ravel ω))$T=0*ω) \end{axiom} The scalar product must be non-degenerate: \begin{axiom} Ud:DMP([p[i] for i in 1..#NJ],INT) := determinant [[Ug[i,j] for j in 1..dim] for i in 1..dim] factor Ud \end{axiom} Definition 3 Co-pairing \begin{axiom} Ωg:T:=unravel concat(transpose(1/Ud*adjoint([[Ug[i,j] for j in 1..dim] for i in 1..dim]).adjMat)::List List FRAC POLY INT) \end{axiom} <center><pre> dimension Ω U </pre></center> \begin{axiom} contract(contract(Ωg,1,Ug,1),1,2) \end{axiom} Definition 4 Co-multiplication \begin{axiom} λg:=reindex(contract(contract(Ug*Yg,1,Ωg,1),1,Ωg,1),[2,3,1]); -- just for display reindex(λg,[3,1,2]) \end{axiom} <center><pre> i λ=Ω </pre></center> \begin{axiom} test(λg*X(1)=Ωg) \end{axiom} Definition 5 <center>Co-unit<pre> i U </pre></center> \begin{axiom} ιg:=X(1)*Ug \end{axiom} <center><pre> Y=U ι </pre></center> \begin{axiom} test(ιg * Yg = Ug) \end{axiom} For example: \begin{axiom} Ug0:T:=unravel eval(ravel Ug,[p[1]=1]) Ωg0:T:=unravel eval(ravel Ωg,[p[1]=1]) λg0:T:=unravel eval(ravel λg,[p[1]=1]); reindex(λg0,[3,1,2]) \end{axiom}
4-dimensional vector space representing Octonion Algebra
)set output tex off
)set output algebra on
dim:=8
(1) 8
T := CartesianTensor(1,dim, EXPR INT)
(2) CartesianTensor(1,8, Expression(Integer))
X:List T := [unravel [(i=j => 1;0) for j in 1..dim] for i in 1..dim]
(3) [[1,0, 0, 0, 0, 0, 0, 0], [0, 1, 0, 0, 0, 0, 0, 0], [0, 0, 1, 0, 0, 0, 0, 0], [0, 0, 0, 1, 0, 0, 0, 0], [0, 0, 0, 0, 1, 0, 0, 0], [0, 0, 0, 0, 0, 1, 0, 0], [0, 0, 0, 0, 0, 0, 1, 0], [0, 0, 0, 0, 0, 0, 0, 1]]
X(1),X(2)
(4) [[1,0, 0, 0, 0, 0, 0, 0], [0, 1, 0, 0, 0, 0, 0, 0]]
Generate structure constants for Quaternion Algebra
B:=map(x+->octon(x.1,x.2, x.3, x.4, x.5, x.6, x.7, x.8), 1$SQMATRIX(dim, FRAC INT)::List List FRAC INT)
(5) [1,i, j, k, E, I, J, K]
M:=matrix [[B.i*B.j for j in 1..dim] for i in 1..dim]
+1 i j k E I J K + | | |i - 1 k - j I - E - K J | | | |j - k - 1 i J K - E - I| | | |k j - i - 1 K - J I - E| (6) | | |E - I - J - K - 1 i j k | | | |I E - K J - i - 1 - k j | | | |J K E - I - j k - 1 - i| | | +K - J I E - k - j i - 1+
S(y)==map(x+->(x*inv(y)=1 or x*inv(y)=-1 => x*inv(y);0),M)
Yg:T:=unravel concat concat(map(S,B)::List List List FRAC POLY INT)
Compiling function S with type Octonion(Fraction(Integer)) -> Matrix (Octonion(Fraction(Integer)))
(8) +1 0 0 0 0 0 0 0 + +0 1 0 0 0 0 0 0 + | | | | |0 - 1 0 0 0 0 0 0 | |1 0 0 0 0 0 0 0 | | | | | |0 0 - 1 0 0 0 0 0 | |0 0 0 1 0 0 0 0 | | | | | |0 0 0 - 1 0 0 0 0 | |0 0 - 1 0 0 0 0 0 | [| |,| |, |0 0 0 0 - 1 0 0 0 | |0 0 0 0 0 1 0 0 | | | | | |0 0 0 0 0 - 1 0 0 | |0 0 0 0 - 1 0 0 0 | | | | | |0 0 0 0 0 0 - 1 0 | |0 0 0 0 0 0 0 - 1| | | | | +0 0 0 0 0 0 0 - 1+ +0 0 0 0 0 0 1 0 + +0 0 1 0 0 0 0 0+ +0 0 0 1 0 0 0 0+ | | | | |0 0 0 - 1 0 0 0 0| |0 0 1 0 0 0 0 0| | | | | |1 0 0 0 0 0 0 0| |0 - 1 0 0 0 0 0 0| | | | | |0 1 0 0 0 0 0 0| |1 0 0 0 0 0 0 0| | |, | |, |0 0 0 0 0 0 1 0| |0 0 0 0 0 0 0 1| | | | | |0 0 0 0 0 0 0 1| |0 0 0 0 0 0 - 1 0| | | | | |0 0 0 0 - 1 0 0 0| |0 0 0 0 0 1 0 0| | | | | +0 0 0 0 0 - 1 0 0+ +0 0 0 0 - 1 0 0 0+ +0 0 0 0 1 0 0 0 + +0 0 0 0 0 1 0 0 + | | | | |0 0 0 0 0 - 1 0 0 | |0 0 0 0 1 0 0 0 | | | | | |0 0 0 0 0 0 - 1 0 | |0 0 0 0 0 0 0 - 1| | | | | |0 0 0 0 0 0 0 - 1| |0 0 0 0 0 0 1 0 | | |, | |, |1 0 0 0 0 0 0 0 | |0 - 1 0 0 0 0 0 0 | | | | | |0 1 0 0 0 0 0 0 | |1 0 0 0 0 0 0 0 | | | | | |0 0 1 0 0 0 0 0 | |0 0 0 - 1 0 0 0 0 | | | | | +0 0 0 1 0 0 0 0 + +0 0 1 0 0 0 0 0 + +0 0 0 0 0 0 1 0+ +0 0 0 0 0 0 0 1+ | | | | |0 0 0 0 0 0 0 1| |0 0 0 0 0 0 - 1 0| | | | | |0 0 0 0 1 0 0 0| |0 0 0 0 0 1 0 0| | | | | |0 0 0 0 0 - 1 0 0| |0 0 0 0 1 0 0 0| | |, | |] |0 0 - 1 0 0 0 0 0| |0 0 0 - 1 0 0 0 0| | | | | |0 0 0 1 0 0 0 0| |0 0 - 1 0 0 0 0 0| | | | | |1 0 0 0 0 0 0 0| |0 1 0 0 0 0 0 0| | | | | +0 - 1 0 0 0 0 0 0+ +1 0 0 0 0 0 0 0+
A scalar product is denoted by the (2,0)-tensor
U:T := unravel(concat [[script(u,[[], [j, i]]) for i in 1..dim] for j in 1..dim] )
+ 1,1 1, 2 1, 3 1, 4 1, 5 1, 6 1, 7 1, 8+ |u u u u u u u u | | | | | | 2, 1 2, 2 2, 3 2, 4 2, 5 2, 6 2, 7 2, 8| |u u u u u u u u | | | | | | 3, 1 3, 2 3, 3 3, 4 3, 5 3, 6 3, 7 3, 8| |u u u u u u u u | | | | | | 4, 1 4, 2 4, 3 4, 4 4, 5 4, 6 4, 7 4, 8| |u u u u u u u u | | | (9) | | | 5, 1 5, 2 5, 3 5, 4 5, 5 5, 6 5, 7 5, 8| |u u u u u u u u | | | | | | 6, 1 6, 2 6, 3 6, 4 6, 5 6, 6 6, 7 6, 8| |u u u u u u u u | | | | | | 7, 1 7, 2 7, 3 7, 4 7, 5 7, 6 7, 7 7, 8| |u u u u u u u u | | | | | | 8, 1 8, 2 8, 3 8, 4 8, 5 8, 6 8, 7 8, 8| |u u u u u u u u | + +
We say that the scalar product is associative if the tensor equation holds:
Y = Y U U
In other words, if the (3,0)-tensor:
i j k i j k i j k \ | / \/ / \ \/ \|/ = \ / - \ / 0 0 0
(1) |
ω := reindex(reindex(U,[2, 1])*reindex(Yg, [1, 3, 2]), [3, 2, 1])-U*Yg;
An algebra with a non-degenerate associative scalar product is called pre-Frobenius.
We may consider the problem where multiplication Y is given, and look for all associative scalar products
This problem can be solved using linear algebra.
)expose MCALCFN
MultiVariableCalculusFunctions is now explicitly exposed in frame initial J := jacobian(ravel ω,concat(map(variables, ravel U))::List Symbol);
uu := transpose matrix [concat(map(variables,ravel(U)))::List Symbol];
J::OutputForm * uu::OutputForm = 0;
nrows(J)
(14) 512
ncols(J)
(15) 64
The matrix J
transforms the coefficients of the tensor
into coefficients of the tensor . We are looking for
the general linear family of tensors such that
J
transforms into for any such .
If the null space of the J
matrix is not empty we can use
the basis to find all non-trivial solutions for U:
NJ:=nullSpace(J)
(16) [ [- 1,0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1] ]
SS:=map((x,y)+->x=y, concat map(variables, ravel U), entries reduce(+, [p[i]*NJ.i for i in 1..#NJ]))
(17) 1,1 1, 2 1, 3 1, 4 1, 5 1, 6 1, 7 1, 8 [u = - p , u = 0, u = 0, u = 0, u = 0, u = 0, u = 0, u = 0, 1 2, 1 2, 2 2, 3 2, 4 2, 5 2, 6 2, 7 2, 8 u = 0, u = p , u = 0, u = 0, u = 0, u = 0, u = 0, u = 0, 1 3, 1 3, 2 3, 3 3, 4 3, 5 3, 6 3, 7 3, 8 u = 0, u = 0, u = p , u = 0, u = 0, u = 0, u = 0, u = 0, 1 4, 1 4, 2 4, 3 4, 4 4, 5 4, 6 4, 7 4, 8 u = 0, u = 0, u = 0, u = p , u = 0, u = 0, u = 0, u = 0, 1 5, 1 5, 2 5, 3 5, 4 5, 5 5, 6 5, 7 5, 8 u = 0, u = 0, u = 0, u = 0, u = p , u = 0, u = 0, u = 0, 1 6, 1 6, 2 6, 3 6, 4 6, 5 6, 6 6, 7 6, 8 u = 0, u = 0, u = 0, u = 0, u = 0, u = p , u = 0, u = 0, 1 7, 1 7, 2 7, 3 7, 4 7, 5 7, 6 7, 7 7, 8 u = 0, u = 0, u = 0, u = 0, u = 0, u = 0, u = p , u = 0, 1 8, 1 8, 2 8, 3 8, 4 8, 5 8, 6 8, 7 8, 8 u = 0, u = 0, u = 0, u = 0, u = 0, u = 0, u = 0, u = p ] 1
Ug:T := unravel(map(x+->subst(x,SS), ravel U))
+- p 0 0 0 0 0 0 0 + | 1 | | | | 0 p 0 0 0 0 0 0 | | 1 | | | | 0 0 p 0 0 0 0 0 | | 1 | | | | 0 0 0 p 0 0 0 0 | | 1 | (18) | | | 0 0 0 0 p 0 0 0 | | 1 | | | | 0 0 0 0 0 p 0 0 | | 1 | | | | 0 0 0 0 0 0 p 0 | | 1 | | | | 0 0 0 0 0 0 0 p | + 1+
This defines a family of pre-Frobenius algebras:
test(unravel(map(x+->subst(x,SS), ravel ω))$T=0*ω)
(19) true
The scalar product must be non-degenerate:
Ud:DMP([p[i] for i in 1..#NJ],INT) := determinant [[Ug[i, j] for j in 1..dim] for i in 1..dim]
8 (20) - p 1
factor Ud
8 (21) - p 1
Co-pairing
Ωg:T:=unravel concat(transpose(1/Ud*adjoint([[Ug[i,j] for j in 1..dim] for i in 1..dim]).adjMat)::List List FRAC POLY INT)
+ 1 + |- -- 0 0 0 0 0 0 0 | | p | | 1 | | | | 1 | | 0 -- 0 0 0 0 0 0 | | p | | 1 | | | | 1 | | 0 0 -- 0 0 0 0 0 | | p | | 1 | | | | 1 | | 0 0 0 -- 0 0 0 0 | | p | | 1 | (22) | | | 1 | | 0 0 0 0 -- 0 0 0 | | p | | 1 | | | | 1 | | 0 0 0 0 0 -- 0 0 | | p | | 1 | | | | 1 | | 0 0 0 0 0 0 -- 0 | | p | | 1 | | | | 1| | 0 0 0 0 0 0 0 --| | p | + 1+
dimension Ω U
contract(contract(Ωg,1, Ug, 1), 1, 2)
(23) 8
Co-multiplication
λg:=reindex(contract(contract(Ug*Yg,1, Ωg, 1), 1, Ωg, 1), [2, 3, 1]);
-- just for display reindex(λg,[3, 1, 2])
(25) + 1 + |- -- 0 0 0 0 0 0 0 | | p | | 1 | | | | 1 | | 0 -- 0 0 0 0 0 0 | | p | | 1 | | | | 1 | | 0 0 -- 0 0 0 0 0 | | p | | 1 | | | | 1 | | 0 0 0 -- 0 0 0 0 | | p | | 1 | [| |,| 1 | | 0 0 0 0 -- 0 0 0 | | p | | 1 | | | | 1 | | 0 0 0 0 0 -- 0 0 | | p | | 1 | | | | 1 | | 0 0 0 0 0 0 -- 0 | | p | | 1 | | | | 1| | 0 0 0 0 0 0 0 --| | p | + 1+ + 1 + | 0 - -- 0 0 0 0 0 0 | | p | | 1 | | | | 1 | |- -- 0 0 0 0 0 0 0 | | p | | 1 | | | | 1 | | 0 0 0 -- 0 0 0 0 | | p | | 1 | | | | 1 | | 0 0 - -- 0 0 0 0 0 | | p | | 1 | | |, | 1 | | 0 0 0 0 0 -- 0 0 | | p | | 1 | | | | 1 | | 0 0 0 0 - -- 0 0 0 | | p | | 1 | | | | 1| | 0 0 0 0 0 0 0 - --| | p | | 1| | | | 1 | | 0 0 0 0 0 0 -- 0 | | p | + 1 + + 1 + | 0 0 - -- 0 0 0 0 0 | | p | | 1 | | | | 1 | | 0 0 0 - -- 0 0 0 0 | | p | | 1 | | | | 1 | |- -- 0 0 0 0 0 0 0 | | p | | 1 | | | | 1 | | 0 -- 0 0 0 0 0 0 | | p | | 1 | | |, | 1 | | 0 0 0 0 0 0 -- 0 | | p | | 1 | | | | 1| | 0 0 0 0 0 0 0 --| | p | | 1| | | | 1 | | 0 0 0 0 - -- 0 0 0 | | p | | 1 | | | | 1 | | 0 0 0 0 0 - -- 0 0 | | p | + 1 + + 1 + | 0 0 0 - -- 0 0 0 0 | | p | | 1 | | | | 1 | | 0 0 -- 0 0 0 0 0 | | p | | 1 | | | | 1 | | 0 - -- 0 0 0 0 0 0 | | p | | 1 | | | | 1 | |- -- 0 0 0 0 0 0 0 | | p | | 1 | | |, | 1| | 0 0 0 0 0 0 0 --| | p | | 1| | | | 1 | | 0 0 0 0 0 0 - -- 0 | | p | | 1 | | | | 1 | | 0 0 0 0 0 -- 0 0 | | p | | 1 | | | | 1 | | 0 0 0 0 - -- 0 0 0 | | p | + 1 + + 1 + | 0 0 0 0 - -- 0 0 0 | | p | | 1 | | | | 1 | | 0 0 0 0 0 - -- 0 0 | | p | | 1 | | | | 1 | | 0 0 0 0 0 0 - -- 0 | | p | | 1 | | | | 1| | 0 0 0 0 0 0 0 - --| | p | | 1| | |, | 1 | |- -- 0 0 0 0 0 0 0 | | p | | 1 | | | | 1 | | 0 -- 0 0 0 0 0 0 | | p | | 1 | | | | 1 | | 0 0 -- 0 0 0 0 0 | | p | | 1 | | | | 1 | | 0 0 0 -- 0 0 0 0 | | p | + 1 + + 1 + | 0 0 0 0 0 - -- 0 0 | | p | | 1 | | | | 1 | | 0 0 0 0 -- 0 0 0 | | p | | 1 | | | | 1| | 0 0 0 0 0 0 0 - --| | p | | 1| | | | 1 | | 0 0 0 0 0 0 -- 0 | | p | | 1 | | |, | 1 | | 0 - -- 0 0 0 0 0 0 | | p | | 1 | | | | 1 | |- -- 0 0 0 0 0 0 0 | | p | | 1 | | | | 1 | | 0 0 0 - -- 0 0 0 0 | | p | | 1 | | | | 1 | | 0 0 -- 0 0 0 0 0 | | p | + 1 + + 1 + | 0 0 0 0 0 0 - -- 0 | | p | | 1 | | | | 1| | 0 0 0 0 0 0 0 --| | p | | 1| | | | 1 | | 0 0 0 0 -- 0 0 0 | | p | | 1 | | | | 1 | | 0 0 0 0 0 - -- 0 0 | | p | | 1 | | |, | 1 | | 0 0 - -- 0 0 0 0 0 | | p | | 1 | | | | 1 | | 0 0 0 -- 0 0 0 0 | | p | | 1 | | | | 1 | |- -- 0 0 0 0 0 0 0 | | p | | 1 | | | | 1 | | 0 - -- 0 0 0 0 0 0 | | p | + 1 + + 1+ | 0 0 0 0 0 0 0 - --| | p | | 1| | | | 1 | | 0 0 0 0 0 0 - -- 0 | | p | | 1 | | | | 1 | | 0 0 0 0 0 -- 0 0 | | p | | 1 | | | | 1 | | 0 0 0 0 -- 0 0 0 | | p | | 1 | | |] | 1 | | 0 0 0 - -- 0 0 0 0 | | p | | 1 | | | | 1 | | 0 0 - -- 0 0 0 0 0 | | p | | 1 | | | | 1 | | 0 -- 0 0 0 0 0 0 | | p | | 1 | | | | 1 | |- -- 0 0 0 0 0 0 0 | | p | + 1 +
i λ=Ω
test(λg*X(1)=Ωg)
(26) true
i U
ιg:=X(1)*Ug
(27) [- p ,0, 0, 0, 0, 0, 0, 0] 1
Y=U ι
test(ιg * Yg = Ug)
(28) true
For example:
Ug0:T:=unravel eval(ravel Ug,[p[1]=1])
+- 1 0 0 0 0 0 0 0+ | | | 0 1 0 0 0 0 0 0| | | | 0 0 1 0 0 0 0 0| | | | 0 0 0 1 0 0 0 0| (29) | | | 0 0 0 0 1 0 0 0| | | | 0 0 0 0 0 1 0 0| | | | 0 0 0 0 0 0 1 0| | | + 0 0 0 0 0 0 0 1+
Ωg0:T:=unravel eval(ravel Ωg,[p[1]=1])
+- 1 0 0 0 0 0 0 0+ | | | 0 1 0 0 0 0 0 0| | | | 0 0 1 0 0 0 0 0| | | | 0 0 0 1 0 0 0 0| (30) | | | 0 0 0 0 1 0 0 0| | | | 0 0 0 0 0 1 0 0| | | | 0 0 0 0 0 0 1 0| | | + 0 0 0 0 0 0 0 1+
λg0:T:=unravel eval(ravel λg,[p[1]=1]);
reindex(λg0,[3, 1, 2])
(32) +- 1 0 0 0 0 0 0 0+ + 0 - 1 0 0 0 0 0 0 + | | | | | 0 1 0 0 0 0 0 0| |- 1 0 0 0 0 0 0 0 | | | | | | 0 0 1 0 0 0 0 0| | 0 0 0 1 0 0 0 0 | | | | | | 0 0 0 1 0 0 0 0| | 0 0 - 1 0 0 0 0 0 | [| |,| |, | 0 0 0 0 1 0 0 0| | 0 0 0 0 0 1 0 0 | | | | | | 0 0 0 0 0 1 0 0| | 0 0 0 0 - 1 0 0 0 | | | | | | 0 0 0 0 0 0 1 0| | 0 0 0 0 0 0 0 - 1| | | | | + 0 0 0 0 0 0 0 1+ + 0 0 0 0 0 0 1 0 + + 0 0 - 1 0 0 0 0 0+ + 0 0 0 - 1 0 0 0 0+ | | | | | 0 0 0 - 1 0 0 0 0| | 0 0 1 0 0 0 0 0| | | | | |- 1 0 0 0 0 0 0 0| | 0 - 1 0 0 0 0 0 0| | | | | | 0 1 0 0 0 0 0 0| |- 1 0 0 0 0 0 0 0| | |, | |, | 0 0 0 0 0 0 1 0| | 0 0 0 0 0 0 0 1| | | | | | 0 0 0 0 0 0 0 1| | 0 0 0 0 0 0 - 1 0| | | | | | 0 0 0 0 - 1 0 0 0| | 0 0 0 0 0 1 0 0| | | | | + 0 0 0 0 0 - 1 0 0+ + 0 0 0 0 - 1 0 0 0+ + 0 0 0 0 - 1 0 0 0 + + 0 0 0 0 0 - 1 0 0 + | | | | | 0 0 0 0 0 - 1 0 0 | | 0 0 0 0 1 0 0 0 | | | | | | 0 0 0 0 0 0 - 1 0 | | 0 0 0 0 0 0 0 - 1| | | | | | 0 0 0 0 0 0 0 - 1| | 0 0 0 0 0 0 1 0 | | |, | |, |- 1 0 0 0 0 0 0 0 | | 0 - 1 0 0 0 0 0 0 | | | | | | 0 1 0 0 0 0 0 0 | |- 1 0 0 0 0 0 0 0 | | | | | | 0 0 1 0 0 0 0 0 | | 0 0 0 - 1 0 0 0 0 | | | | | + 0 0 0 1 0 0 0 0 + + 0 0 1 0 0 0 0 0 + + 0 0 0 0 0 0 - 1 0+ + 0 0 0 0 0 0 0 - 1+ | | | | | 0 0 0 0 0 0 0 1| | 0 0 0 0 0 0 - 1 0 | | | | | | 0 0 0 0 1 0 0 0| | 0 0 0 0 0 1 0 0 | | | | | | 0 0 0 0 0 - 1 0 0| | 0 0 0 0 1 0 0 0 | | |, | |] | 0 0 - 1 0 0 0 0 0| | 0 0 0 - 1 0 0 0 0 | | | | | | 0 0 0 1 0 0 0 0| | 0 0 - 1 0 0 0 0 0 | | | | | |- 1 0 0 0 0 0 0 0| | 0 1 0 0 0 0 0 0 | | | | | + 0 - 1 0 0 0 0 0 0+ +- 1 0 0 0 0 0 0 0 +