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

# Edit detail for SandBoxFrobeniusAlgebra revision 11 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/14 10:51:21 GMT-8 Note: associator bases

changed:
-T:=CartesianTensor(1,n,DEXPR INT)
--T:=CartesianTensor(1,n,DEXPR INT)
T:=CartesianTensor(1,n,HDMP(concat[concat concat
[[[script(y,[[k],[j,i]])
for i in 1..n]
for j in 1..n]
for k in 1..n],
[script(u,[[i]]) for i in 1..n],
[script(v,[[i]]) for i in 1..n] ],FRAC INT))

removed:
-  2   3      5   6
-   \ /        \ /
-    |          |
-    1          4
-

changed:
-A:=groebner(ravel(AA))
-#A
AB:=groebner(ravel(AA))
#AB

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)
T:=CartesianTensor(1,n,HDMP(concat[concat concat
[[[script(y,[[k],[j,i]])
for i in 1..n]
for j in 1..n]
for k in 1..n],
[script(u,[[i]]) for i in 1..n],
[script(v,[[i]]) for i in 1..n] ],FRAC
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,HomogeneousDistributedMultivariatePolynomial?([*012y111,*012y112,*012y121,*012y122,*012y211,*012y212,*012y221,*012y222,*01u1,*01u2,*01v1,*01v2],Fraction(Integer))) Given two vectors and axiom U:=unravel([script(u,[[i]]) for i in 1..n])$T
 (4)
Type: CartesianTensor?(1,2,HomogeneousDistributedMultivariatePolynomial?([*012y111,*012y112,*012y121,*012y122,*012y211,*012y212,*012y221,*012y222,*01u1,*01u2,*01v1,*01v2],Fraction(Integer)))
axiom
V:=unravel([script(v,[[i]]) for i in 1..n])\$T
 (5)
Type: CartesianTensor?(1,2,HomogeneousDistributedMultivariatePolynomial?([*012y111,*012y112,*012y121,*012y122,*012y211,*012y212,*012y221,*012y222,*01u1,*01u2,*01v1,*01v2],Fraction(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,HomogeneousDistributedMultivariatePolynomial?([*012y111,*012y112,*012y121,*012y122,*012y211,*012y212,*012y221,*012y222,*01u1,*01u2,*01v1,*01v2],Fraction(Integer)))

Diagram:

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

or in a more convenient notation:

axiom
W:=(Y*U)*V
 (7)
Type: CartesianTensor?(1,2,HomogeneousDistributedMultivariatePolynomial?([*012y111,*012y112,*012y121,*012y122,*012y211,*012y212,*012y221,*012y222,*01u1,*01u2,*01v1,*01v2],Fraction(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,HomogeneousDistributedMultivariatePolynomial?([*012y111,*012y112,*012y121,*012y122,*012y211,*012y212,*012y221,*012y222,*01u1,*01u2,*01v1,*01v2],Fraction(Integer)))

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

axiom
C:=groebner(ravel(K))
 (9)
Type: List(HomogeneousDistributedMultivariatePolynomial?([*012y111,*012y112,*012y121,*012y122,*012y211,*012y212,*012y221,*012y222,*01u1,*01u2,*01v1,*01v2],Fraction(Integer)))

An algebra is associative if:

Y I  =  I Y
Y       Y

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(AA)
 (14)
Type: List(HomogeneousDistributedMultivariatePolynomial?([*012y111,*012y112,*012y121,*012y122,*012y211,*012y212,*012y221,*012y222,*01u1,*01u2,*01v1,*01v2],Fraction(Integer)))
axiom
AB:=groebner(ravel(AA))
 (15)
Type: List(HomogeneousDistributedMultivariatePolynomial?([*012y111,*012y112,*012y121,*012y122,*012y211,*012y212,*012y221,*012y222,*01u1,*01u2,*01v1,*01v2],Fraction(Integer)))
axiom
#AB
 (16)
Type: PositiveInteger?