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

Edit detail for SandBoxFrobeniusAlgebra revision 9 of 26

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
Editor: Bill Page
Time: 2011/02/13 17:59:51 GMT-8
Note: operads and tensor symmetries

added:
Diagram::

  U   V
  2i  3j
   \ /
    |
    1k
    W


added:
  2   3      5   6
   \ /        \ /
    |          |
    1          4


changed:
-  1  2 5   1 4  5
-   \/ /     \ \/ 
-    \/   =   \/  
-     \       /   
-      6     3    
  2  3 6   2 5  6      2  3  4
   \/ /     \ \/        \ | /
    \/   =   \/    =     \|/
     \       /            |
      4     1             1

changed:
-$A=\{ {a_s}^{kji} =  {y_s}^{kr} {y_r}^{ji} - {y_s}^{ri} {y_r}^{kj} \}$
$A=\{ {a_s}^{kji} =  {y_s}^{kr} {y_r}^{ji} - {y_r}^{kj} {y_s}^{ri} \}$

changed:
-A := Y*Y - reindex(Y,[1,3,2])*reindex(Y,[1,3,2]); ravel(A)
test(Y*Y = contract(product(Y,Y),3,4))
test(Y*Y = contract(Y,3,Y,1))
test(reindex(reindex(Y,[1,3,2])*reindex(Y,[1,3,2]),[1,4,3,2]) = reindex(contract(product(Y,Y),1,5),[3,1,2,4]))
test(reindex(reindex(Y,[1,3,2])*reindex(Y,[1,3,2]),[1,4,3,2])=reindex(contract(Y,1,Y,2),[3,1,2,4]))
AA := reindex(contract(Y,1,Y,2),[3,1,2,4])-Y*Y; ravel(A)
A:=groebner(ravel(A))
#A

An n-dimensional algebra is represented by a (1,2)-tensor Y=\{ {y_k}^{ji} \} \ i,j,k =1,2, ... n viewed as an operator with two inputs i,j and one output k. For example in 2 dimensions

fricas
(1) -> )library DEXPR
DistributedExpression is now explicitly exposed in frame initial DistributedExpression will be automatically loaded when needed from /var/aw/var/LatexWiki/DEXPR.NRLIB/DEXPR n:=2

\label{eq1}2(1)
Type: PositiveInteger?
fricas
T:=CartesianTensor(1,n,DEXPR INT)

\label{eq2}\hbox{\axiomType{CartesianTensor}\ } \left({1, \: 2, \:{\hbox{\axiomType{DistributedExpression}\ } \left({\hbox{\axiomType{Integer}\ }}\right)}}\right)(2)
Type: Type
fricas
Y:=unravel(concat concat
  [[[script(y,[[k],[j,i]])
    for i in 1..n]
      for j in 1..n]
        for k in 1..n]
          )$T

\label{eq3}\begin{array}{@{}l}
\displaystyle
\left[{\left[ 
\begin{array}{cc}
{x_{1}}&{x_{1}}
\
{x_{1}}&{x_{1}}
(3)
Type: CartesianTensor?(1,2,DistributedExpression?(Integer))

Given two vectors U=\{ u_i \} and V=\{ v_j \}

fricas
U:=unravel([script(u,[[i]]) for i in 1..n])$T

\label{eq4}\left[{x_{1}}, \:{x_{1}}\right](4)
Type: CartesianTensor?(1,2,DistributedExpression?(Integer))
fricas
V:=unravel([script(v,[[i]]) for i in 1..n])$T

\label{eq5}\left[{x_{1}}, \:{x_{1}}\right](5)
Type: CartesianTensor?(1,2,DistributedExpression?(Integer))

the tensor Y operates on their tensor product to yield a vector W=\{ w_k = {y_k}^{ji} u_i v_j \}

fricas
W:=contract(contract(Y,3,product(U,V),1),2,3)

\label{eq6}\begin{array}{@{}l}
\displaystyle
\left[{{{x_{4}}\ {x_{6}}\ {x_{8}}}+{{x_{2}}\ {x_{5}}\ {x_{8}}}+{{x_{3}}\ {x_{6}}\ {x_{7}}}+{{x_{1}}\ {x_{5}}\ {x_{7}}}}, \: \right.
\
\
\displaystyle
\left.{{{x_{4}}\ {x_{6}}\ {x_{8}}}+{{x_{2}}\ {x_{5}}\ {x_{8}}}+{{x_{3}}\ {x_{6}}\ {x_{7}}}+{{x_{1}}\ {x_{5}}\ {x_{7}}}}\right] (6)
Type: CartesianTensor?(1,2,DistributedExpression?(Integer))

Diagram:

  U   V
  2i  3j
   \ /
    |
    1k
    W

or in a more convenient notation:

fricas
W:=(Y*U)*V

\label{eq7}\begin{array}{@{}l}
\displaystyle
\left[{{{x_{4}}\ {x_{6}}\ {x_{8}}}+{{x_{2}}\ {x_{5}}\ {x_{8}}}+{{x_{3}}\ {x_{6}}\ {x_{7}}}+{{x_{1}}\ {x_{5}}\ {x_{7}}}}, \: \right.
\
\
\displaystyle
\left.{{{x_{4}}\ {x_{6}}\ {x_{8}}}+{{x_{2}}\ {x_{5}}\ {x_{8}}}+{{x_{3}}\ {x_{6}}\ {x_{7}}}+{{x_{1}}\ {x_{5}}\ {x_{7}}}}\right] (7)
Type: CartesianTensor?(1,2,DistributedExpression?(Integer))

The algebra Y is commutative if the following tensor (the commutator) is zero

fricas
K:=Y-reindex(Y,[1,3,2])

\label{eq8}\begin{array}{@{}l}
\displaystyle
\left[{\left[ 
\begin{array}{cc}
0 &{{x_{2}}-{x_{1}}}
\
{-{x_{2}}+{x_{1}}}& 0 
(8)
Type: CartesianTensor?(1,2,DistributedExpression?(Integer))

A basis for the ideal defined by the coefficients of the commutator is given by:

fricas
C:=groebner(ravel(K))
There are 2 exposed and 6 unexposed library operations named groebner having 1 argument(s) but none was determined to be applicable. Use HyperDoc Browse, or issue )display op groebner to learn more about the available operations. Perhaps package-calling the operation or using coercions on the arguments will allow you to apply the operation.
Cannot find a definition or applicable library operation named groebner with argument type(s) List(DistributedExpression(Integer))
Perhaps you should use "@" to indicate the required return type, or "$" to specify which version of the function you need.

An algebra is associative if:

  Y I  =  I Y
   Y       Y

  2   3      5   6
   \ /        \ /
    |          |
    1          4

  Note: right figure is mirror image of left!

  2  3 6   2 5  6      2  3  4
   \/ /     \ \/        \ | /
    \/   =   \/    =     \|/
     \       /            |
      4     1             1

In other words an algebra is associative if and only if the following (3,1)-tensor A=\{ {a_s}^{kji} =  {y_s}^{kr} {y_r}^{ji} - {y_r}^{kj} {y_s}^{ri} \} is zero.

fricas
test(Y*Y = contract(product(Y,Y),3,4))

\label{eq9} \mbox{\rm true} (9)
Type: Boolean
fricas
test(Y*Y = contract(Y,3,Y,1))

\label{eq10} \mbox{\rm true} (10)
Type: Boolean
fricas
test(reindex(reindex(Y,[1,3,2])*reindex(Y,[1,3,2]),[1,4,3,2]) = reindex(contract(product(Y,Y),1,5),[3,1,2,4]))

\label{eq11} \mbox{\rm true} (11)
Type: Boolean
fricas
test(reindex(reindex(Y,[1,3,2])*reindex(Y,[1,3,2]),[1,4,3,2])=reindex(contract(Y,1,Y,2),[3,1,2,4]))

\label{eq12} \mbox{\rm true} (12)
Type: Boolean
fricas
AA := reindex(contract(Y,1,Y,2),[3,1,2,4])-Y*Y; ravel(A)
There are 1 exposed and 0 unexposed library operations named ravel having 1 argument(s) but none was determined to be applicable. Use HyperDoc Browse, or issue )display op ravel to learn more about the available operations. Perhaps package-calling the operation or using coercions on the arguments will allow you to apply the operation.
Cannot find a definition or applicable library operation named ravel with argument type(s) Variable(A)
Perhaps you should use "@" to indicate the required return type, or "$" to specify which version of the function you need.