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

Edit detail for SandBoxFrobeniusAlgebra revision 13 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 15:37:10 GMT-8
Note: scalar product

changed:
-$Y=\{ {y_k}^{ji} \} \ i,j,k =1,2, ... n $
$Y=\{ {y_k}^{ji} \ i,j,k =1,2, ... n \}$

changed:
---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))
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))

changed:
-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(AA)
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(reindex(Y,[1,3,2])*reindex(Y,[1,3,2]),[1,4,3,2])-Y*Y; ravel(AA)

changed:
-
A scalar product is denoted by $U = \{ u^{ij} \}$
\begin{axiom}
U:=unravel(concat
  [[script(u,[[],[j,i]])
    for i in 1..n]
      for j in 1..n]
        )$T
\end{axiom}
We say that the scalar product is "associative" if the following tensor equation holds::

  Y I = I Y
   U     U

\begin{axiom}
UA := reindex(reindex(U,[2,1])*reindex(Y,[1,3,2]),[3,2,1])-U*Y; ravel(UA)
\end{axiom}

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
--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))
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

  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(reindex(Y,[1,3,2])*reindex(Y,[1,3,2]),[1,4,3,2])-Y*Y; ravel(AA)

\label{eq13}\begin{array}{@{}l}
\displaystyle
\left[{-{{x_{1}}\ {x_{3}}}+{{x_{1}}\ {x_{2}}}}, \:{-{{x_{1}}\ {x_{4}}}+{{x_{2}}\ {x_{3}}}}, \: \right.
\
\
\displaystyle
\left.{{{x_{4}}\ {x_{5}}}-{{x_{3}}\ {x_{5}}}-{{x_{1}}\ {x_{4}}}+{{x_{2}}\ {x_{3}}}}, \: \right.
\
\
\displaystyle
\left.{-{{x_{3}}\ {x_{5}}}+{{x_{4}}^{2}}-{{x_{1}}\ {x_{4}}}+{{x_{2}}\ {x_{3}}}}, \:{{{x_{1}}\ {x_{4}}}-{{x_{2}}\ {x_{3}}}}, \: \right.
\
\
\displaystyle
\left.{-{{x_{2}}\ {x_{3}}}+{{x_{1}}\ {x_{3}}}}, \:{{{x_{3}}\ {x_{5}}}-{{x_{4}}^{2}}+{{x_{1}}\ {x_{4}}}-{{x_{2}}\ {x_{3}}}}, \: \right.
\
\
\displaystyle
\left.{{{x_{1}}\ {x_{3}}}-{{x_{1}}\ {x_{2}}}}, \:{-{{x_{2}}\ {x_{3}}}+{{x_{1}}\ {x_{3}}}}, \: \right.
\
\
\displaystyle
\left.{{{x_{2}}\ {x_{5}}}-{{x_{3}}\ {x_{4}}}+{{x_{1}}\ {x_{3}}}-{{x_{2}}^{2}}}, \:{{{x_{1}}\ {x_{3}}}-{{x_{1}}\ {x_{2}}}}, \:{{{x_{1}}\ {x_{4}}}-{{x_{2}}\ {x_{3}}}}, \right.
\
\
\displaystyle
\left.\:{-{{x_{2}}\ {x_{5}}}+{{x_{3}}\ {x_{4}}}-{{x_{1}}\ {x_{3}}}+{{x_{2}}^{2}}}, \: \right.
\
\
\displaystyle
\left.{-{{x_{2}}\ {x_{5}}}+{{x_{3}}\ {x_{4}}}-{{x_{1}}\ {x_{3}}}+{{x_{1}}\ {x_{2}}}}, \:{-{{x_{1}}\ {x_{4}}}+{{x_{2}}\ {x_{3}}}}, \: \right.
\
\
\displaystyle
\left.{{{x_{2}}\ {x_{3}}}-{{x_{1}}\ {x_{3}}}}\right] 
(13)
Type: List(DistributedExpression?(Integer))
fricas
AB:=groebner(ravel(AA))
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.

The Jacobi identity requires the following tensor to be zero:

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

fricas
BA := AA - reindex(contract(Y,1,Y,2),[3,1,4,2]); ravel(BA)

\label{eq14}\begin{array}{@{}l}
\displaystyle
\left[{-{{x_{3}}^{2}}-{{x_{1}}\ {x_{2}}}}, \:{-{{x_{5}}\ {x_{6}}}-{{x_{1}}\ {x_{5}}}-{{x_{1}}\ {x_{4}}}+{{x_{2}}\ {x_{3}}}}, \: \right.
\
\
\displaystyle
\left.{-{{x_{5}}\ {x_{7}}}-{{x_{1}}\ {x_{6}}}+{{x_{2}}\ {x_{5}}}-{{x_{3}}\ {x_{4}}}}, \:{-{{x_{2}}\ {x_{4}}}-{{x_{1}}\ {x_{3}}}}, \: \right.
\
\
\displaystyle
\left.{-{{x_{3}}\ {x_{4}}}-{{x_{1}}\ {x_{2}}}}, \:{-{{x_{4}}\ {x_{6}}}-{{x_{1}}\ {x_{5}}}-{{x_{3}}\ {x_{4}}}+{{x_{2}}\ {x_{4}}}}, \: \right.
\
\
\displaystyle
\left.{{{x_{3}}\ {x_{6}}}-{{x_{4}}\ {x_{5}}}-{{x_{4}}^{2}}+{{x_{1}}\ {x_{4}}}-{2 \ {x_{2}}\ {x_{3}}}}, \:{-{{x_{2}}\ {x_{3}}}-{{x_{1}}\ {x_{2}}}}, \: \right.
\
\
\displaystyle
\left.{-{{x_{2}}\ {x_{3}}}-{{x_{1}}\ {x_{2}}}}, \:{{{x_{3}}\ {x_{6}}}-{2 \ {x_{4}}\ {x_{5}}}+{{x_{1}}\ {x_{4}}}-{{x_{3}}^{2}}-{{x_{2}}\ {x_{3}}}}, \: \right.
\
\
\displaystyle
\left.{-{{x_{2}}\ {x_{6}}}+{{x_{3}}\ {x_{5}}}-{{x_{3}}\ {x_{4}}}-{{x_{1}}\ {x_{3}}}}, \:{-{{x_{3}}\ {x_{4}}}-{{x_{1}}\ {x_{2}}}}, \: \right.
\
\
\displaystyle
\left.{-{{x_{2}}\ {x_{4}}}-{{x_{1}}\ {x_{3}}}}, \:{-{{x_{2}}\ {x_{7}}}+{{x_{3}}\ {x_{6}}}-{{x_{4}}\ {x_{5}}}-{{x_{1}}\ {x_{3}}}}, \: \right.
\
\
\displaystyle
\left.{-{{x_{3}}\ {x_{6}}}-{{x_{2}}\ {x_{6}}}+{{x_{4}}\ {x_{5}}}-{{x_{1}}\ {x_{2}}}}, \:{-{{x_{2}}\ {x_{3}}}-{{x_{1}}^{2}}}\right] (14)
Type: List(DistributedExpression?(Integer))
fricas
BB:=groebner(ravel(BA));
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.

A scalar product is denoted by U = \{ u^{ij} \}

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

\label{eq15}\left[ 
\begin{array}{cc}
{x_{1}}&{x_{1}}
\
{x_{1}}&{x_{1}}
(15)
Type: CartesianTensor?(1,2,DistributedExpression?(Integer))

We say that the scalar product is "associative" if the following tensor equation holds:

  Y I = I Y
   U     U

fricas
UA := reindex(reindex(U,[2,1])*reindex(Y,[1,3,2]),[3,2,1])-U*Y; ravel(UA)

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