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

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 viewed as an operator with two inputs i,j and one output k. For example in 2 dimensions

axiom
)library DEXPR
DistributedExpression is now explicitly exposed in frame initial
DistributedExpression will be automatically loaded when needed from
/var/zope2/var/LatexWiki/DEXPR.NRLIB/DEXPR
n:=2 (1)
Type: PositiveInteger?
axiom
T:=CartesianTensor(1,n,DEXPR INT) (2)
Type: Domain
axiom
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 (3) Type: CartesianTensor?(1,2,DistributedExpression?(Integer)) Given two vectors and axiom U:=unravel([script(u,[[i]]) for i in 1..n])$T (4)
Type: CartesianTensor?(1,2,DistributedExpression?(Integer))
axiom
V:=unravel([script(v,[[i]]) for i in 1..n])$T (5) Type: CartesianTensor?(1,2,DistributedExpression?(Integer)) the tensor Y operates on their tensor product to yield a vector axiom W:=contract(contract(Y,3,product(U,V),1),2,3) (6) Type: CartesianTensor?(1,2,DistributedExpression?(Integer)) Diagram:  U V 2i 3j \ / | 1k W  or in a more convenient notation: axiom W:=(Y*U)*V (7) Type: CartesianTensor?(1,2,DistributedExpression?(Integer)) The algebra Y is commutative if the following tensor (the commutator) is zero axiom K:=Y-reindex(Y,[1,3,2]) (8) Type: CartesianTensor?(1,2,DistributedExpression?(Integer)) A basis for the ideal defined by the coefficients of the commutator is given by: axiom C:=groebner(ravel(K)) (9) Type: List(Polynomial(Integer)) 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 is zero. axiom test(Y*Y = contract(product(Y,Y),3,4)) (10) Type: Boolean axiom test(Y*Y = contract(Y,3,Y,1)) (11) Type: Boolean axiom 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])) (12) Type: Boolean axiom 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])) (13) Type: Boolean axiom 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.
A:=groebner(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
or "$" to specify which version of the function you need. #A There are 2 exposed and 1 unexposed library operations named # having 1 argument(s) but none was determined to be applicable. Use HyperDoc Browse, or issue )display op # 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 # 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.