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

Edit detail for Octonion Algebra is Frobenius in Just One Way revision 1 of 8

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}

Octonion Algebra is Frobenius in just one way!

4-dimensional vector space representing Octonion Algebra

axiom
)set output tex off
 
axiom
)set output algebra on

axiom
dim:=8
(1) 8
Type: PositiveInteger?
axiom
T := CartesianTensor(1,dim,EXPR INT)
(2) CartesianTensor(1,8,Expression(Integer))
Type: Type
axiom
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]]
Type: List(CartesianTensor?(1,8,Expression(Integer)))
axiom
X(1),X(2)
(4) [[1,0,0,0,0,0,0,0],[0,1,0,0,0,0,0,0]]
Type: Tuple(CartesianTensor?(1,8,Expression(Integer)))

Generate structure constants for Quaternion Algebra

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)
(5) [1,i,j,k,E,I,J,K]
Type: List(Octonion(Fraction(Integer)))
axiom
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+
Type: Matrix(Octonion(Fraction(Integer)))
axiom
S(y)==map(x+->(x*inv(y)=1 or x*inv(y)=-1 => x*inv(y);0),M)
Type: Void
axiom
Yg:T:=unravel concat concat(map(S,B)::List List List FRAC POLY INT)
axiom
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+
Type: CartesianTensor?(1,8,Expression(Integer))

A scalar product is denoted by the (2,0)-tensor U = \{ u_{ij} \}

axiom
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 | + +
Type: CartesianTensor?(1,8,Expression(Integer))

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


\label{eq1}
  \Phi = \{ \phi^{ijk} = {y^e}_{ij} u_{ek} - u_{ie} {y_e}^{jk} \}
  (1)
(three-point function) is zero.

axiom
ω := reindex(reindex(U,[2,1])*reindex(Yg,[1,3,2]),[3,2,1])-U*Yg;
Type: CartesianTensor?(1,8,Expression(Integer))

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.

axiom
)expose MCALCFN
MultiVariableCalculusFunctions is now explicitly exposed in frame initial J := jacobian(ravel ω,concat(map(variables,ravel U))::List Symbol);
Type: Matrix(Expression(Integer))
axiom
uu := transpose matrix [concat(map(variables,ravel(U)))::List Symbol];
Type: Matrix(Polynomial(Integer))
axiom
J::OutputForm * uu::OutputForm = 0;
Type: Equation(OutputForm?)
axiom
nrows(J)
(14) 512
Type: PositiveInteger?
axiom
ncols(J)
(15) 64
Type: PositiveInteger?

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:

axiom
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] ]
Type: List(Vector(Expression(Integer)))
axiom
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
Type: List(Equation(Expression(Integer)))
axiom
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+
Type: CartesianTensor?(1,8,Expression(Integer))

This defines a family of pre-Frobenius algebras:

axiom
test(unravel(map(x+->subst(x,SS),ravel ω))$T=0*ω)
(19) true
Type: Boolean

The scalar product must be non-degenerate:

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]
8 (20) - p 1
Type: DistributedMultivariatePolynomial?([*01p1],Integer)
axiom
factor Ud
8 (21) - p 1
Type: Factored(DistributedMultivariatePolynomial?([*01p1],Integer))

Definition 3

Co-pairing

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)
+ 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+
Type: CartesianTensor?(1,8,Expression(Integer))

dimension
Ω
U
axiom
contract(contract(Ωg,1,Ug,1),1,2)
(23) 8
Type: CartesianTensor?(1,8,Expression(Integer))

Definition 4

Co-multiplication

axiom
λg:=reindex(contract(contract(Ug*Yg,1,Ωg,1),1,Ωg,1),[2,3,1]);
Type: CartesianTensor?(1,8,Expression(Integer))
axiom
-- 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 +
Type: CartesianTensor?(1,8,Expression(Integer))

i  
λ=Ω
axiom
test(λg*X(1)=Ωg)
(26) true
Type: Boolean

Definition 5

Co-unit
  i 
  U
  

axiom
ιg:=X(1)*Ug
(27) [- p ,0,0,0,0,0,0,0] 1
Type: CartesianTensor?(1,8,Expression(Integer))

Y=U
ι  
axiom
test(ιg * Yg = Ug)
(28) true
Type: Boolean

For example:

axiom
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+
Type: CartesianTensor?(1,8,Expression(Integer))
axiom
Ω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+
Type: CartesianTensor?(1,8,Expression(Integer))
axiom
λg0:T:=unravel eval(ravel λg,[p[1]=1]);
Type: CartesianTensor?(1,8,Expression(Integer))
axiom
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 +
Type: CartesianTensor?(1,8,Expression(Integer))