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 2 of 8

1 2 3 4 5 6 7 8
Editor: page
Time: 2011/04/08 10:42:49 GMT-7
Note: Caley-Dickson

changed:
-  4-dimensional vector space representing Octonion Algebra
  8-dimensional vector space representing Octonion Algebra

changed:
-T := CartesianTensor(1,dim,EXPR INT)
R ==> EXPR INT
T ==> CartesianTensor(1,dim,EXPR INT)

changed:
-Generate structure constants for Quaternion Algebra
Generate structure constants for Octonion Algebra (the Caley-Dickson way)

changed:
-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)
Q ==> Quaternion R
O ==> DirectProduct(2,Q)
B0:=map(x+->octon(x.1,x.2,x.3,x.4,x.5,x.6,x.7,x.8),1$SQMATRIX(dim,R)::List List R)
pair(x:Q,y:Q):O==directProduct vector [x,y]
caleyOne:=pair(1,0)
B:=map(x+->pair(quatern(x.1,x.2,x.3,x.4),quatern(x.5,x.6,x.7,x.8)),1$SQMATRIX(dim,R)::List List R)

added:
\begin{axiom}
caleyMul(x:O,y:O):O == pair((x.1)*(y.1) - conjugate(y.2)*(x.2), (y.2)*(x.1) + (x.2)*conjugate(y.1))
caleyMul(caleyOne,caleyOne)
M0:=matrix [[B0.i*B0.j for j in 1..dim] for i in 1..dim]  
M:=matrix [[caleyMul(B.i,B.j) for j in 1..dim] for i in 1..dim]
\end{axiom}
\begin{axiom}
caleyConj(x:O):O == pair(conjugate(x.1), -x.2)
caleyInv(x:O):O == inv(caleyMul(caleyConj x,x).1) * caleyConj(x)
S0(y)==map(x+->(x*inv(y)=1 or x*inv(y)=-1 => x*inv(y);0),M0)
S0(B0.1)
S(y)==map(x+->(caleyMul(x,caleyInv y)=caleyOne => 1;caleyMul(x,caleyInv y)=-caleyOne => -1;0),M)
S(B.1)
Yg0:T:=unravel concat concat(map(S0,B0)::List List List R);
Yg:T:=unravel concat concat(map(S,B)::List List List R)
test(Yg0=Yg)
\end{axiom}

Octonion Algebra is Frobenius in just one way!

8-dimensional vector space representing Octonion Algebra

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

axiom
dim:=8
(1) 8
Type: PositiveInteger?
axiom
R ==> EXPR INT
Type: Void
axiom
T ==> CartesianTensor(1,dim,EXPR INT)
Type: Void
axiom
X:List T := [unravel [(i=j => 1;0) for j in 1..dim] for i in 1..dim]
(4) [[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)
(5) [[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 Octonion Algebra (the Caley-Dickson way)

axiom
Q ==> Quaternion R
Type: Void
axiom
O ==> DirectProduct(2,Q)
Type: Void
axiom
B0:=map(x+->octon(x.1,x.2,x.3,x.4,x.5,x.6,x.7,x.8),1$SQMATRIX(dim,R)::List List R)
(8) [1,i,j,k,E,I,J,K]
Type: List(Octonion(Expression(Integer)))
axiom
pair(x:Q,y:Q):O==directProduct vector [x,y]
Function declaration pair : (Quaternion(Expression(Integer)), Quaternion(Expression(Integer))) -> DirectProduct(2,Quaternion( Expression(Integer))) has been added to workspace.
Type: Void
axiom
caleyOne:=pair(1,0)
axiom
Compiling function pair with type (Quaternion(Expression(Integer)),
      Quaternion(Expression(Integer))) -> DirectProduct(2,Quaternion(
      Expression(Integer))) 
(10) [1,0]
Type: DirectProduct?(2,Quaternion(Expression(Integer)))
axiom
B:=map(x+->pair(quatern(x.1,x.2,x.3,x.4),quatern(x.5,x.6,x.7,x.8)),1$SQMATRIX(dim,R)::List List R)
(11) [[1,0],[i,0],[j,0],[k,0],[0,1],[0,i],[0,j],[0,k]]
Type: List(DirectProduct?(2,Quaternion(Expression(Integer))))

axiom
caleyMul(x:O,y:O):O == pair((x.1)*(y.1) - conjugate(y.2)*(x.2), (y.2)*(x.1) + (x.2)*conjugate(y.1))
Function declaration caleyMul : (DirectProduct(2,Quaternion( Expression(Integer))),DirectProduct(2,Quaternion(Expression( Integer)))) -> DirectProduct(2,Quaternion(Expression(Integer))) has been added to workspace.
Type: Void
axiom
caleyMul(caleyOne,caleyOne)
axiom
Compiling function caleyMul with type (DirectProduct(2,Quaternion(
      Expression(Integer))),DirectProduct(2,Quaternion(Expression(
      Integer)))) -> DirectProduct(2,Quaternion(Expression(Integer))) 
(13) [1,0]
Type: DirectProduct?(2,Quaternion(Expression(Integer)))
axiom
M0:=matrix [[B0.i*B0.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| (14) | | |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(Expression(Integer)))
axiom
M:=matrix [[caleyMul(B.i,B.j) for j in 1..dim] for i in 1..dim]
(15) +[1,0] [i,0] [j,0] [k,0] [0,1] [0,i] [0,j] [0,k] + | | |[i,0] [- 1,0] [k,0] [- j,0] [0,i] [0,- 1] [0,- k] [0,j] | | | |[j,0] [- k,0] [- 1,0] [i,0] [0,j] [0,k] [0,- 1] [0,- i]| | | |[k,0] [j,0] [- i,0] [- 1,0] [0,k] [0,- j] [0,i] [0,- 1]| | | |[0,1] [0,- i] [0,- j] [0,- k] [- 1,0] [i,0] [j,0] [k,0] | | | |[0,i] [0,1] [0,- k] [0,j] [- i,0] [- 1,0] [- k,0] [j,0] | | | |[0,j] [0,k] [0,1] [0,- i] [- j,0] [k,0] [- 1,0] [- i,0]| | | +[0,k] [0,- j] [0,i] [0,1] [- k,0] [- j,0] [i,0] [- 1,0]+
Type: Matrix(DirectProduct?(2,Quaternion(Expression(Integer))))

axiom
caleyConj(x:O):O == pair(conjugate(x.1), -x.2)
Function declaration caleyConj : DirectProduct(2,Quaternion( Expression(Integer))) -> DirectProduct(2,Quaternion(Expression( Integer))) has been added to workspace.
Type: Void
axiom
caleyInv(x:O):O == inv(caleyMul(caleyConj x,x).1) * caleyConj(x)
Function declaration caleyInv : DirectProduct(2,Quaternion( Expression(Integer))) -> DirectProduct(2,Quaternion(Expression( Integer))) has been added to workspace.
Type: Void
axiom
S0(y)==map(x+->(x*inv(y)=1 or x*inv(y)=-1 => x*inv(y);0),M0)
Type: Void
axiom
S0(B0.1)
axiom
Compiling function S0 with type Octonion(Expression(Integer)) -> 
      Matrix(Octonion(Expression(Integer))) 
+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 | (19) | | |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: Matrix(Octonion(Expression(Integer)))
axiom
S(y)==map(x+->(caleyMul(x,caleyInv y)=caleyOne => 1;caleyMul(x,caleyInv y)=-caleyOne => -1;0),M)
Type: Void
axiom
S(B.1)
axiom
Compiling function caleyConj with type DirectProduct(2,Quaternion(
      Expression(Integer))) -> DirectProduct(2,Quaternion(Expression(
      Integer)))
axiom
Compiling function caleyInv with type DirectProduct(2,Quaternion(
      Expression(Integer))) -> DirectProduct(2,Quaternion(Expression(
      Integer)))
axiom
Compiling function S with type DirectProduct(2,Quaternion(Expression
      (Integer))) -> Matrix(Integer) 
+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 | (21) | | |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: Matrix(Integer)
axiom
Yg0:T:=unravel concat concat(map(S0,B0)::List List List R);
Type: CartesianTensor?(1,8,Expression(Integer))
axiom
Yg:T:=unravel concat concat(map(S,B)::List List List R)
(23) +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))
axiom
test(Yg0=Yg)
(24) true
Type: Boolean

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 | | | (25) | | | 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)
(30) 512
Type: PositiveInteger?
axiom
ncols(J)
(31) 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)
(32) [ [- 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]))
(33) 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 | (34) | | | 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*ω)
(35) 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 (36) - p 1
Type: DistributedMultivariatePolynomial?([*01p1],Integer)
axiom
factor Ud
8 (37) - 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 | (38) | | | 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)
(39) 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])
(41) + 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)
(42) true
Type: Boolean

Definition 5

Co-unit
  i 
  U
  

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

Y=U
ι  
axiom
test(ιg * Yg = Ug)
(44) 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| (45) | | | 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| (46) | | | 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])
(48) +- 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))