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

Edit detail for Frobenius Algebra, Vector Spaces and Polynomial Ideals revision 1 of 4

1 2 3 4
Editor: Bill Page
Time: 2011/04/06 21:14:06 GMT-7
Note: turtles are symmetric

changed:
-
References

- "Frobenius algebras and 2D topological quantum field theories":http://mat.uab.es/~kock/TQFT.html
  by Joachim Kock

  Especially "Tensor calculus (linear algebra in coordinates)"
  in section 2.3.31, page 123.

See also:

- http://ncatlab.org/nlab/show/Frobenius+algebra
  by John Baez, et al.

- "Ideals, Varieties, and Algorithms":http://www.cs.amherst.edu/~dac/iva.html#MR5
  by David A. Cox, et al.

An n-dimensional algebra is represented by a (2,1)-tensor
$Y=\{ {y^k}_{ij} \ i,j,k =1,2, ... n \}$
viewed as a linear operator with two inputs $i,j$ and one
output $k$. For example in 2 dimensions
\begin{axiom}
n:=2
T:=CartesianTensor(1,n,FRAC POLY INT)
Y:T := unravel(concat concat
  [[[script(y,[[i,j],[k]])
    for i in 1..n]
      for j in 1..n]
        for k in 1..n]
          )
\end{axiom}
Given two vectors $P=\{ p^i \}$ and $Q=\{ q^j \}$
\begin{axiom}
P:T := unravel([script(p,[[],[i]]) for i in 1..n])
Q:T := unravel([script(q,[[],[i]]) for i in 1..n])
\end{axiom}
the tensor $Y$ operates on their tensor product to
yield a vector $R=\{ r_k = {y^k}_{ij} p^i q^j \}$
\begin{axiom}
R:=contract(contract(Y,3,product(P,Q),1),2,3)
\end{axiom}
Pictorially::

  P Q
   Y
   R

  or more explicitly

  Pi Qj
   \/
    \
     Rk

In Axiom we may use the more convenient tensor inner
product denoted by '*' that combines tensor product with
a contraction on the last index of the first tensor and
the first index of the second tensor.
\begin{axiom}
R:=(Y*P)*Q
\end{axiom}
An algebra is said to be *associative* if::

  Y    =    Y
   Y       Y

**Note:** the right hand side of the equation above is
implicitly the mirror image of the left hand side::

  i   j   k   i  j     k   i     j  k
   \  |  /     \/     /     \     \/
    \ | /       \    /       \    /
     \|/    =    e  k    -    i  e
      |           \/           \/
      |            \           /
      l             l         l

This requires that the following (3,1)-tensor
\begin{equation}
\Psi  = \{ {\psi_l}^{ijk} =  {y^e}_{ij} {y^l}_{ek} - {y^l}_{ie} {y^e}_{jk} \}
\end{equation}
(associator) is zero.
\begin{axiom}
YY := reindex(reindex(Y,[1,3,2])*reindex(Y,[1,3,2]),[1,4,3,2])-Y*Y; ravel(YY)
\end{axiom}

The algebra $Y$ is *commutative* if::

  Y = Y

  i   j     i  j     j  i
   \ /   =   \/   -   \/
    |         \       /
    k          k     k

This requires that the following (2,1)-tensor
\begin{equation}
\mathcal{C} = \{ {c^k}_{ij} = {y^k}_{ij} - {y^k}_{ji} \}
\end{equation}
(commutator) is zero.
\begin{axiom}
YC:=Y-reindex(Y,[1,3,2])
\end{axiom}
A basis for the ideal defined by the coefficients of the
commutator is given by:
\begin{axiom}
groebner(ravel(YC))
\end{axiom}

The algebra $Y$ is *anti-commutative* if::

  Y = -Y

  i   j     i  j     j  i
   \ /   =   \/   =   \/
    |         \       /
    k          k     k

This requires that the following (2,1)-tensor
\begin{equation}
\mathcal{A} = \{ {a^k}_{ij} = {y^k}_{ij} + {y^k}_{ji} \}
\end{equation}
(anti-commutator) is zero.
\begin{axiom}
YA:=Y+reindex(Y,[1,3,2])
\end{axiom}
A basis for the ideal defined by the coefficients of the
commutator is given by:
\begin{axiom}
groebner(ravel(YA))
\end{axiom}

The *Jacobi identity* is::

            X
  Y =  Y + Y
   Y  Y     Y

  i     j     k  i      j     k  i     j      k   i  j   k
   \    |    /    \    /     /    \     \    /     \  \ /
    \   |   /      \  /     /      \     \  /       \  0
     \  |  /        \/     /        \     \/         \/ \
      \ | /          \    /          \    /           \  \
       \|/     =      e  k      -     i  e       -     e  j
        |              \/              \/               \/
        |               \              /                /
        l                l            l                 l

An algebra satisfies the Jacobi identity if and only if
the following (3,1)-tensor
\begin{equation}
\Theta = \{ {\theta^l}_{ijk} =  {y^l}_{ek} {y^e}_{ij} - {y^l}_{ie} {y^e}_{jk} - {y^l}_{ej} {y^e}_{ik} \}
\end{equation}
is zero.

\begin{axiom}
YX := YY - reindex(contract(Y,1,Y,2),[3,1,4,2]); ravel(YX)
\end{axiom}
A scalar product is denoted by the (2,0)-tensor
$U = \{ u_{ij} \}$
\begin{axiom}
U:T := unravel(concat
  [[script(u,[[],[j,i]])
    for i in 1..n]
      for j in 1..n]
        )
\end{axiom}
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

  \begin{equation}
  \Phi = \{ \phi^{ijk} = {y^e}_{ij} u_{ek} - u_{ie} {y_e}^{jk} \}
  \end{equation}
  (three-point function) is zero.

\begin{axiom}
YU := reindex(reindex(U,[2,1])*reindex(Y,[1,3,2]),[3,2,1])-U*Y
\end{axiom}
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)$ or we
may consider an scalar product U as given, and look for all
algebras $Y=Y(U)$ such that the scalar product is associative. 

This problem can be solved using linear algebra.
\begin{axiom}
)expose MCALCFN
K := jacobian(ravel(YU),concat(map(variables,ravel(Y)))::List Symbol);
yy := transpose matrix [concat(map(variables,ravel(Y)))::List Symbol];
K::OutputForm * yy::OutputForm = 0
\end{axiom}
The matrix 'K' transforms the coefficients of the tensor $Y$
into coefficients of the tensor $\Phi$. We are looking for
coefficients of the tensor $U$ such that 'K' transforms the
tensor $Y$ into $\Phi=0$ for any $Y$.

A necessary condition for the equation to have a non-trivial
solution is that the matrix 'K' be degenerate.

Theorem 1

  All 2-dimensional pre-Frobenius algebras are symmetric.

Proof: Consider the determinant of the matrix 'K' above.
\begin{axiom}
Kd := factor(determinant(K)::DMP(concat map(variables,ravel(U)),FRAC INT))
\end{axiom}
The scalar product must also be non-degenerate
\begin{axiom}
Ud:DMP(concat map(variables,ravel(U)),FRAC INT) := determinant [[U[i,j] for j in 1..n] for i in 1..n]
\end{axiom}
therefore U must be symmetric.
\begin{axiom}
nthFactor(Kd,1)
US:T := unravel(map(x+->subst(x,U[2,1]=U[1,2]),ravel U))
\end{axiom}

Theorem 2

  All 2-dimensional algebras with associative scalar product
  are commutative.

Proof: The basis of the null space of the symmetric 
'K' matrix are all symmetric

\begin{axiom}
YUS:T :=  reindex(reindex(US,[2,1])*reindex(Y,[1,3,2]),[3,2,1])-US*Y
KS := jacobian(ravel(YUS),concat(map(variables,ravel(Y)))::List Symbol);
NS:=nullSpace(KS)
SS:=map((x,y)+->x=y,concat map(variables,ravel Y),
  entries reduce(+,[p[i]*NS.i for i in 1..#NS]))
YS:T := unravel(map(x+->subst(x,SS),ravel Y))
\end{axiom}
This defines a 4-parameter family of 2-d pre-Frobenius algebras
\begin{axiom}
test(unravel(map(x+->subst(x,SS),ravel YUS))$T=0*YU)
\end{axiom}

Alternatively we may consider
\begin{axiom}
J := jacobian(ravel(YU),concat(map(variables,ravel(U)))::List Symbol);
uu := transpose matrix [concat(map(variables,ravel(U)))::List Symbol];
J::OutputForm * uu::OutputForm = 0
\end{axiom}
The matrix 'J' transforms the coefficients of the tensor $U$
into coefficients of the tensor $\Phi$. We are looking for
coefficients of the tensor $Y$ such that 'J' transforms the
tensor $U$ into $\Phi=0$ for any $U$.

A necessary condition for the equation to have a non-trivial
solution is that all 70 of the 4x4 sub-matrices of 'J' are
degenerate. To this end we can form the polynomial ideal of
the determinants of these sub-matrices.
\begin{axiom}
JP:=ideal concat concat concat
  [[[[ determinant(
    matrix([row(J,i1),row(J,i2),row(J,i3),row(J,i4)]))
      for i4 in (i3+1)..maxRowIndex(J) ] 
        for i3 in (i2+1)..(maxRowIndex(J)-1) ]
          for i2 in (i1+1)..(maxRowIndex(J)-2) ]
            for i1 in minRowIndex(J)..(maxRowIndex(J)-3) ];
#generators(%)
\end{axiom}
Theorem 3

  If a 2-d algebra is associative, commutative, anti-commutative
  or if it satisfies the Jacobi identity then it is a
  pre-Frobenius algebra.

Proof

Consider the ideals of the associator, commutator, anti-commutator
and Jacobi identity
\begin{axiom}
YYI:=ideal ravel YY;
in?(JP,YYI)  -- associative
YCI:=ideal ravel YC;
in?(JP,YCI)  -- commutative
YAI:=ideal ravel YA;
in?(JP,YAI)  -- anti-commutative
YXI:=ideal ravel YX;
in?(JP,YXI) -- Jacobi identity
\end{axiom}

Y-forms

Three traces of two graftings of an algebra gives six
(2,0)-forms.

Left snail and right snail::

  LS                    RS

  Y /\                    /\ Y
   Y  )                  (  Y
    \/                    \/

  i  j                        j  i
   \/                          \/
    \    /\              /\    /
     e  f  \            /  f  e
      \/    \          /    \/
       \    /          \    /
        f  /            \  f
         \/              \/

\begin{equation}
LS = \{ {y^e}_{ij} {y^f}_{ef} \} \
RS = \{ {y^f}_{fe} {y^e}_{ji} \}
\end{equation}

\begin{axiom}
LS:=contract(Y*Y,1,2)
RS:=reindex(contract(reindex(Y,[1,3,2])*reindex(Y,[1,3,2]),1,2),[2,1])
test(LS=RS)
\end{axiom}

Left and right deer::

   RD                 LD

   \ /\/              \/\ /
    Y /\              /\ Y
     Y  )            (  Y
      \/              \/

   i            j    i            j
    \    /\    /      \    /\    /
     \  f  \  /        \  /  f  /
      \/    \/          \/    \/
       \    /\          /\    /
        e  /  \        /  \  e
         \/    \      /    \/
          \    /      \    /
           f  /        \  f
            \/          \/

\begin{equation}
RD = \{ {y^e}_{if} {y^f}_{ej} \} \
LD = \{ {y^f}_{ie} {y^e}_{fj} \}
\end{equation}
Left and right deer forms are identical but different from snails.
\begin{axiom}
RD:=contract(Y*Y,1,3)
LD:=reindex(contract(reindex(Y,[1,3,2])*reindex(Y,[1,3,2]),1,3),[2,1])
test(LD=RD)
test(RD=RS)
test(RD=LS)
\end{axiom}

Left and right turtles::

  RT                   LT

   /\ / /               \ \ /\
  (  Y /                 \ Y  )
   \  Y                   Y  /
    \/                     \/

           i     j      i     j
    /\    /     /        \     \    /\
   /  f  /     /          \     \  f  \
  /    \/     /            \     \/    \
  \     \    /              \    /     /
   \     e  /                \  e     /
    \     \/                  \/     /
     \    /                    \    /
      \  f                      f  /
       \/                        \/

\begin{equation}
RT = \{ {y^e}_{fi} {y^f}_{ej} \} \
LT = \{ {y^f}_{ie} {y^e}_{jf} \}
\end{equation}

\begin{axiom}
RT:=contract(Y*Y,1,4)
LT:=reindex(contract(reindex(Y,[1,3,2])*reindex(Y,[1,3,2]),1,4),[2,1])
test(LT=RT)
\end{axiom}
The turles are symmetric
\begin{axiom}
test(RT=reindex(RT,[2,1]))
test(LT=reindex(LT,[2,1]))
\end{axiom}
Five of the six forms are independent.
\begin{axiom}
test(RT=RS)
test(RT=LS)
test(RT=RD)
test(LT=RS)
test(LT=LS)
test(LT=RD)
\end{axiom}
Associativity implies right turtle equals right snail
and left turtle equals left snail.
\begin{axiom}
in?(ideal ravel(RT-RS),YYI)
in?(ideal ravel(LT-LS),YYI)
\end{axiom}
If the Jacobi identity holds then both snails are zero
\begin{axiom}
in?(ideal ravel(RS),YXI)
in?(ideal ravel(LS),YXI)
\end{axiom}
and right turtle and deer have opposite signs
\begin{axiom}
in?(ideal ravel(RT+RD),YXI)
\end{axiom}

References

See also:

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

fricas
(1) -> n:=2

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

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

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

Given two vectors P=\{ p^i \} and Q=\{ q^j \}

fricas
P:T := unravel([script(p,[[],[i]]) for i in 1..n])

\label{eq4}\left[{p^{1}}, \:{p^{2}}\right](4)
Type: CartesianTensor?(1,2,Fraction(Polynomial(Integer)))
fricas
Q:T := unravel([script(q,[[],[i]]) for i in 1..n])

\label{eq5}\left[{q^{1}}, \:{q^{2}}\right](5)
Type: CartesianTensor?(1,2,Fraction(Polynomial(Integer)))

the tensor Y operates on their tensor product to yield a vector R=\{ r_k = {y^k}_{ij} p^i q^j \}

fricas
R:=contract(contract(Y,3,product(P,Q),1),2,3)

\label{eq6}\begin{array}{@{}l}
\displaystyle
\left[{{{p^{2}}\ {q^{2}}\ {y_{2, \: 2}^{1}}}+{{p^{2}}\ {q^{1}}\ {y_{2, \: 1}^{1}}}+{{p^{1}}\ {q^{2}}\ {y_{1, \: 2}^{1}}}+{{p^{1}}\ {q^{1}}\ {y_{1, \: 1}^{1}}}}, \: \right.
\
\
\displaystyle
\left.{{{p^{2}}\ {q^{2}}\ {y_{2, \: 2}^{2}}}+{{p^{2}}\ {q^{1}}\ {y_{2, \: 1}^{2}}}+{{p^{1}}\ {q^{2}}\ {y_{1, \: 2}^{2}}}+{{p^{1}}\ {q^{1}}\ {y_{1, \: 1}^{2}}}}\right] 
(6)
Type: CartesianTensor?(1,2,Fraction(Polynomial(Integer)))

Pictorially:

  P Q
   Y
   R

  or more explicitly

  Pi Qj
   \/
    \
     Rk

In Axiom we may use the more convenient tensor inner product denoted by * that combines tensor product with a contraction on the last index of the first tensor and the first index of the second tensor.

fricas
R:=(Y*P)*Q

\label{eq7}\begin{array}{@{}l}
\displaystyle
\left[{{{p^{2}}\ {q^{2}}\ {y_{2, \: 2}^{1}}}+{{p^{2}}\ {q^{1}}\ {y_{2, \: 1}^{1}}}+{{p^{1}}\ {q^{2}}\ {y_{1, \: 2}^{1}}}+{{p^{1}}\ {q^{1}}\ {y_{1, \: 1}^{1}}}}, \: \right.
\
\
\displaystyle
\left.{{{p^{2}}\ {q^{2}}\ {y_{2, \: 2}^{2}}}+{{p^{2}}\ {q^{1}}\ {y_{2, \: 1}^{2}}}+{{p^{1}}\ {q^{2}}\ {y_{1, \: 2}^{2}}}+{{p^{1}}\ {q^{1}}\ {y_{1, \: 1}^{2}}}}\right] 
(7)
Type: CartesianTensor?(1,2,Fraction(Polynomial(Integer)))

An algebra is said to be associative if:

  Y    =    Y
   Y       Y

Note: the right hand side of the equation above is implicitly the mirror image of the left hand side:

  i   j   k   i  j     k   i     j  k
   \  |  /     \/     /     \     \/
    \ | /       \    /       \    /
     \|/    =    e  k    -    i  e
      |           \/           \/
      |            \           /
      l             l         l

This requires that the following (3,1)-tensor


\label{eq8}
\Psi  = \{ {\psi_l}^{ijk} =  {y^e}_{ij} {y^l}_{ek} - {y^l}_{ie} {y^e}_{jk} \}
(8)
(associator) is zero.
fricas
YY := reindex(reindex(Y,[1,3,2])*reindex(Y,[1,3,2]),[1,4,3,2])-Y*Y; ravel(YY)

\label{eq9}\begin{array}{@{}l}
\displaystyle
\left[{-{{y_{1, \: 1}^{2}}\ {y_{2, \: 1}^{1}}}+{{y_{1, \: 1}^{2}}\ {y_{1, \: 2}^{1}}}}, \:{{{y_{1, \: 1}^{2}}\ {y_{2, \: 2}^{1}}}-{{y_{2, \: 1}^{1}}\ {y_{2, \: 1}^{2}}}}, \right.
\
\
\displaystyle
\left.\:{{{y_{1, \: 2}^{1}}\ {y_{2, \: 1}^{2}}}+{{\left(-{y_{1, \: 2}^{2}}+{y_{1, \: 1}^{1}}\right)}\ {y_{2, \: 1}^{1}}}-{{y_{1, \: 1}^{1}}\ {y_{1, \: 2}^{1}}}}, \: \right.
\
\
\displaystyle
\left.{-{{y_{2, \: 1}^{1}}\ {y_{2, \: 2}^{2}}}+{{\left({y_{2, \: 1}^{2}}-{y_{1, \: 1}^{1}}\right)}\ {y_{2, \: 2}^{1}}}+{{y_{2, \: 1}^{1}}^{2}}}, \: \right.
\
\
\displaystyle
\left.{-{{y_{1, \: 1}^{2}}\ {y_{2, \: 2}^{1}}}+{{y_{1, \: 2}^{1}}\ {y_{1, \: 2}^{2}}}}, \:{{\left(-{y_{2, \: 1}^{2}}+{y_{1, \: 2}^{2}}\right)}\ {y_{2, \: 2}^{1}}}, \: \right.
\
\
\displaystyle
\left.{{{y_{1, \: 2}^{1}}\ {y_{2, \: 2}^{2}}}+{{\left(-{y_{1, \: 2}^{2}}+{y_{1, \: 1}^{1}}\right)}\ {y_{2, \: 2}^{1}}}-{{y_{1, \: 2}^{1}}^{2}}}, \: \right.
\
\
\displaystyle
\left.{{\left({y_{2, \: 1}^{1}}-{y_{1, \: 2}^{1}}\right)}\ {y_{2, \: 2}^{1}}}, \:{-{{y_{1, \: 1}^{2}}\ {y_{2, \: 1}^{2}}}+{{y_{1, \: 1}^{2}}\ {y_{1, \: 2}^{2}}}}, \: \right.
\
\
\displaystyle
\left.{{{y_{1, \: 1}^{2}}\ {y_{2, \: 2}^{2}}}-{{y_{2, \: 1}^{2}}^{2}}+{{y_{1, \: 1}^{1}}\ {y_{2, \: 1}^{2}}}-{{y_{1, \: 1}^{2}}\ {y_{2, \: 1}^{1}}}}, \: \right.
\
\
\displaystyle
\left.{{{y_{1, \: 1}^{2}}\ {y_{2, \: 1}^{1}}}-{{y_{1, \: 1}^{2}}\ {y_{1, \: 2}^{1}}}}, \:{-{{y_{1, \: 1}^{2}}\ {y_{2, \: 2}^{1}}}+{{y_{2, \: 1}^{1}}\ {y_{2, \: 1}^{2}}}}, \right.
\
\
\displaystyle
\left.\:{-{{y_{1, \: 1}^{2}}\ {y_{2, \: 2}^{2}}}+{{y_{1, \: 2}^{2}}^{2}}-{{y_{1, \: 1}^{1}}\ {y_{1, \: 2}^{2}}}+{{y_{1, \: 1}^{2}}\ {y_{1, \: 2}^{1}}}}, \: \right.
\
\
\displaystyle
\left.{{{\left(-{y_{2, \: 1}^{2}}+{y_{1, \: 2}^{2}}\right)}\ {y_{2, \: 2}^{2}}}+{{y_{1, \: 2}^{1}}\ {y_{2, \: 1}^{2}}}-{{y_{1, \: 2}^{2}}\ {y_{2, \: 1}^{1}}}}, \: \right.
\
\
\displaystyle
\left.{{{y_{1, \: 1}^{2}}\ {y_{2, \: 2}^{1}}}-{{y_{1, \: 2}^{1}}\ {y_{1, \: 2}^{2}}}}, \:{{\left({y_{2, \: 1}^{2}}-{y_{1, \: 2}^{2}}\right)}\ {y_{2, \: 2}^{1}}}\right] 
(9)
Type: List(Fraction(Polynomial(Integer)))

The algebra Y is commutative if:

  Y = Y

  i   j     i  j     j  i
   \ /   =   \/   -   \/
    |         \       /
    k          k     k

This requires that the following (2,1)-tensor


\label{eq10}
\mathcal{C} = \{ {c^k}_{ij} = {y^k}_{ij} - {y^k}_{ji} \}
(10)
(commutator) is zero.
fricas
YC:=Y-reindex(Y,[1,3,2])

\label{eq11}\begin{array}{@{}l}
\displaystyle
\left[{\left[ 
\begin{array}{cc}
0 &{{y_{2, \: 1}^{1}}-{y_{1, \: 2}^{1}}}
\
{-{y_{2, \: 1}^{1}}+{y_{1, \: 2}^{1}}}& 0 
(11)
Type: CartesianTensor?(1,2,Fraction(Polynomial(Integer)))

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

fricas
groebner(ravel(YC))

\label{eq12}\left[{{y_{2, \: 1}^{2}}-{y_{1, \: 2}^{2}}}, \:{{y_{2, \: 1}^{1}}-{y_{1, \: 2}^{1}}}\right](12)
Type: List(Polynomial(Integer))

The algebra Y is anti-commutative if:

  Y = -Y

  i   j     i  j     j  i
   \ /   =   \/   =   \/
    |         \       /
    k          k     k

This requires that the following (2,1)-tensor


\label{eq13}
\mathcal{A} = \{ {a^k}_{ij} = {y^k}_{ij} + {y^k}_{ji} \}
(13)
(anti-commutator) is zero.
fricas
YA:=Y+reindex(Y,[1,3,2])

\label{eq14}\begin{array}{@{}l}
\displaystyle
\left[{\left[ 
\begin{array}{cc}
{2 \ {y_{1, \: 1}^{1}}}&{{y_{2, \: 1}^{1}}+{y_{1, \: 2}^{1}}}
\
{{y_{2, \: 1}^{1}}+{y_{1, \: 2}^{1}}}&{2 \ {y_{2, \: 2}^{1}}}
(14)
Type: CartesianTensor?(1,2,Fraction(Polynomial(Integer)))

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

fricas
groebner(ravel(YA))

\label{eq15}\left[{y_{2, \: 2}^{2}}, \:{y_{2, \: 2}^{1}}, \:{{y_{2, \: 1}^{2}}+{y_{1, \: 2}^{2}}}, \:{{y_{2, \: 1}^{1}}+{y_{1, \: 2}^{1}}}, \:{y_{1, \: 1}^{2}}, \:{y_{1, \: 1}^{1}}\right](15)
Type: List(Polynomial(Integer))

The Jacobi identity is:

            X
  Y =  Y + Y
   Y  Y     Y

  i     j     k  i      j     k  i     j      k   i  j   k
   \    |    /    \    /     /    \     \    /     \  \ /
    \   |   /      \  /     /      \     \  /       \  0
     \  |  /        \/     /        \     \/         \/ \
      \ | /          \    /          \    /           \  \
       \|/     =      e  k      -     i  e       -     e  j
        |              \/              \/               \/
        |               \              /                /
        l                l            l                 l

An algebra satisfies the Jacobi identity if and only if the following (3,1)-tensor


\label{eq16}
\Theta = \{ {\theta^l}_{ijk} =  {y^l}_{ek} {y^e}_{ij} - {y^l}_{ie} {y^e}_{jk} - {y^l}_{ej} {y^e}_{ik} \}
(16)
is zero.

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

\label{eq17}\begin{array}{@{}l}
\displaystyle
\left[{-{{y_{1, \: 1}^{2}}\ {y_{2, \: 1}^{1}}}-{{y_{1, \: 1}^{1}}^{2}}}, \: \right.
\
\
\displaystyle
\left.{{{y_{1, \: 1}^{2}}\ {y_{2, \: 2}^{1}}}+{{\left(-{y_{2, \: 1}^{1}}-{y_{1, \: 2}^{1}}\right)}\ {y_{2, \: 1}^{2}}}-{{y_{1, \: 1}^{1}}\ {y_{2, \: 1}^{1}}}}, \: \right.
\
\
\displaystyle
\left.{-{{y_{1, \: 1}^{2}}\ {y_{2, \: 2}^{1}}}+{{y_{1, \: 2}^{1}}\ {y_{2, \: 1}^{2}}}-{{y_{1, \: 2}^{2}}\ {y_{2, \: 1}^{1}}}-{{y_{1, \: 1}^{1}}\ {y_{1, \: 2}^{1}}}}, \right.
\
\
\displaystyle
\left.\:{-{{y_{2, \: 1}^{1}}\ {y_{2, \: 2}^{2}}}-{{y_{1, \: 1}^{1}}\ {y_{2, \: 2}^{1}}}}, \: \right.
\
\
\displaystyle
\left.{-{{y_{1, \: 1}^{2}}\ {y_{2, \: 2}^{1}}}-{{y_{1, \: 1}^{1}}\ {y_{1, \: 2}^{1}}}}, \: \right.
\
\
\displaystyle
\left.{-{{y_{1, \: 2}^{1}}\ {y_{2, \: 2}^{2}}}+{{\left(-{y_{2, \: 1}^{2}}+{y_{1, \: 2}^{2}}-{y_{1, \: 1}^{1}}\right)}\ {y_{2, \: 2}^{1}}}}, \: \right.
\
\
\displaystyle
\left.{
\begin{array}{@{}l}
\displaystyle
{{y_{1, \: 2}^{1}}\ {y_{2, \: 2}^{2}}}+{{\left(-{2 \ {y_{1, \: 2}^{2}}}+{y_{1, \: 1}^{1}}\right)}\ {y_{2, \: 2}^{1}}}-{{y_{1, \: 2}^{1}}\ {y_{2, \: 1}^{1}}}- 
\
\
\displaystyle
{{y_{1, \: 2}^{1}}^{2}}
(17)
Type: List(Fraction(Polynomial(Integer)))

A scalar product is denoted by the (2,0)-tensor U = \{ u_{ij} \}

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

\label{eq18}\left[ 
\begin{array}{cc}
{u^{1, \: 1}}&{u^{1, \: 2}}
\
{u^{2, \: 1}}&{u^{2, \: 2}}
(18)
Type: CartesianTensor?(1,2,Fraction(Polynomial(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{eq19}
  \Phi = \{ \phi^{ijk} = {y^e}_{ij} u_{ek} - u_{ie} {y_e}^{jk} \}
  (19)
(three-point function) is zero.

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

\label{eq20}\begin{array}{@{}l}
\displaystyle
\left[{\left[ 
\begin{array}{cc}
{{\left({u^{2, \: 1}}-{u^{1, \: 2}}\right)}\ {y_{1, \: 1}^{2}}}&{-{{u^{1, \: 2}}\ {y_{2, \: 1}^{2}}}-{{u^{1, \: 1}}\ {y_{2, \: 1}^{1}}}+{{u^{2, \: 2}}\ {y_{1, \: 1}^{2}}}+{{u^{1, \: 2}}\ {y_{1, \: 1}^{1}}}}
\
{{{u^{2, \: 1}}\ {y_{2, \: 1}^{2}}}+{{u^{1, \: 1}}\ {y_{2, \: 1}^{1}}}-{{u^{1, \: 2}}\ {y_{1, \: 2}^{2}}}-{{u^{1, \: 1}}\ {y_{1, \: 2}^{1}}}}&{-{{u^{1, \: 2}}\ {y_{2, \: 2}^{2}}}-{{u^{1, \: 1}}\ {y_{2, \: 2}^{1}}}+{{u^{2, \: 2}}\ {y_{2, \: 1}^{2}}}+{{u^{1, \: 2}}\ {y_{2, \: 1}^{1}}}}
(20)
Type: CartesianTensor?(1,2,Fraction(Polynomial(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) or we may consider an scalar product U as given, and look for all algebras Y=Y(U) such that the scalar product is associative.

This problem can be solved using linear algebra.

fricas
)expose MCALCFN
MultiVariableCalculusFunctions is now explicitly exposed in frame initial K := jacobian(ravel(YU),concat(map(variables,ravel(Y)))::List Symbol);
Type: Matrix(Fraction(Polynomial(Integer)))
fricas
yy := transpose matrix [concat(map(variables,ravel(Y)))::List Symbol];
Type: Matrix(Polynomial(Integer))
fricas
K::OutputForm * yy::OutputForm = 0

\label{eq21}\begin{array}{@{}l}
\displaystyle
{{\left[ 
\begin{array}{cccccccc}
0 & 0 & 0 & 0 &{{u^{2, \: 1}}-{u^{1, \: 2}}}& 0 & 0 & 0 
\
{u^{1, \: 2}}& -{u^{1, \: 1}}& 0 & 0 &{u^{2, \: 2}}& -{u^{1, \: 2}}& 0 & 0 
\
0 &{u^{1, \: 1}}& -{u^{1, \: 1}}& 0 & 0 &{u^{2, \: 1}}& -{u^{1, \: 2}}& 0 
\
0 &{u^{1, \: 2}}& 0 & -{u^{1, \: 1}}& 0 &{u^{2, \: 2}}& 0 & -{u^{1, \: 2}}
\
-{u^{2, \: 1}}& 0 &{u^{1, \: 1}}& 0 & -{u^{2, \: 2}}& 0 &{u^{2, \: 1}}& 0 
\
0 & -{u^{2, \: 1}}&{u^{1, \: 2}}& 0 & 0 & -{u^{2, \: 2}}&{u^{2, \: 2}}& 0 
\
0 & 0 & -{u^{2, \: 1}}&{u^{1, \: 1}}& 0 & 0 & -{u^{2, \: 2}}&{u^{2, \: 1}}
\
0 & 0 & 0 &{-{u^{2, \: 1}}+{u^{1, \: 2}}}& 0 & 0 & 0 & 0 
(21)
Type: Equation(OutputForm?)

The matrix K transforms the coefficients of the tensor Y into coefficients of the tensor \Phi. We are looking for coefficients of the tensor U such that K transforms the tensor Y into \Phi=0 for any Y.

A necessary condition for the equation to have a non-trivial solution is that the matrix K be degenerate.

Theorem 1

All 2-dimensional pre-Frobenius algebras are symmetric.

Proof: Consider the determinant of the matrix K above.

fricas
Kd := factor(determinant(K)::DMP(concat map(variables,ravel(U)),FRAC INT))

\label{eq22}{{\left({{u^{1, \: 1}}\ {u^{2, \: 2}}}-{{u^{1, \: 2}}\ {u^{2, \: 1}}}\right)}^{2}}\ {{\left({u^{1, \: 2}}-{u^{2, \: 1}}\right)}^{4}}(22)
Type: Factored(DistributedMultivariatePolynomial?([u[;1,1],u[;1,2],u[;2,1],u[;2,2]],Fraction(Integer)))

The scalar product must also be non-degenerate

fricas
Ud:DMP(concat map(variables,ravel(U)),FRAC INT) := determinant [[U[i,j] for j in 1..n] for i in 1..n]

\label{eq23}{{u^{1, \: 1}}\ {u^{2, \: 2}}}-{{u^{1, \: 2}}\ {u^{2, \: 1}}}(23)
Type: DistributedMultivariatePolynomial?([u[;1,1],u[;1,2],u[;2,1],u[;2,2]],Fraction(Integer))

therefore U must be symmetric.

fricas
nthFactor(Kd,1)
There are no exposed library operations named nthFactor but there are 3 unexposed operations with that name. Use HyperDoc Browse or issue )display op nthFactor to learn more about the available operations.
Cannot find a definition or applicable library operation named nthFactor with argument type(s) Factored(DistributedMultivariatePolynomial([u[;1,1],u[;1,2],u[;2,1],u[;2,2]],Fraction(Integer))) PositiveInteger
Perhaps you should use "@" to indicate the required return type, or "$" to specify which version of the function you need.

Theorem 2

All 2-dimensional algebras with associative scalar product are commutative.

Proof: The basis of the null space of the symmetric K matrix are all symmetric

fricas
YUS:T :=  reindex(reindex(US,[2,1])*reindex(Y,[1,3,2]),[3,2,1])-US*Y
>> Error detected within library code: The list is not a permutation.

This defines a 4-parameter family of 2-d pre-Frobenius algebras

fricas
test(unravel(map(x+->subst(x,SS),ravel YUS))$T=0*YU)
There are 3 exposed and 0 unexposed library operations named subst having 2 argument(s) but none was determined to be applicable. Use HyperDoc Browse, or issue )display op subst 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 subst with argument type(s) Fraction(Polynomial(Integer)) Variable(SS)
Perhaps you should use "@" to indicate the required return type, or "$" to specify which version of the function you need. FriCAS will attempt to step through and interpret the code.
Anonymous user functions created with +-> that are processed in interpret-code mode must have result target information available. This information is not present so FriCAS cannot proceed any further. This may be remedied by declaring the function.

Alternatively we may consider

fricas
J := jacobian(ravel(YU),concat(map(variables,ravel(U)))::List Symbol);
Type: Matrix(Fraction(Polynomial(Integer)))
fricas
uu := transpose matrix [concat(map(variables,ravel(U)))::List Symbol];
Type: Matrix(Polynomial(Integer))
fricas
J::OutputForm * uu::OutputForm = 0

\label{eq24}\begin{array}{@{}l}
\displaystyle
{{\left[ 
\begin{array}{cccc}
0 & -{y_{1, \: 1}^{2}}&{y_{1, \: 1}^{2}}& 0 
\
-{y_{2, \: 1}^{1}}&{-{y_{2, \: 1}^{2}}+{y_{1, \: 1}^{1}}}& 0 &{y_{1, \: 1}^{2}}
\
{{y_{2, \: 1}^{1}}-{y_{1, \: 2}^{1}}}& -{y_{1, \: 2}^{2}}&{y_{2, \: 1}^{2}}& 0 
\
-{y_{2, \: 2}^{1}}&{-{y_{2, \: 2}^{2}}+{y_{2, \: 1}^{1}}}& 0 &{y_{2, \: 1}^{2}}
\
{y_{1, \: 2}^{1}}& 0 &{{y_{1, \: 2}^{2}}-{y_{1, \: 1}^{1}}}& -{y_{1, \: 1}^{2}}
\
0 &{y_{1, \: 2}^{1}}& -{y_{2, \: 1}^{1}}&{-{y_{2, \: 1}^{2}}+{y_{1, \: 2}^{2}}}
\
{y_{2, \: 2}^{1}}& 0 &{{y_{2, \: 2}^{2}}-{y_{1, \: 2}^{1}}}& -{y_{1, \: 2}^{2}}
\
0 &{y_{2, \: 2}^{1}}& -{y_{2, \: 2}^{1}}& 0 
(24)
Type: Equation(OutputForm?)

The matrix J transforms the coefficients of the tensor U into coefficients of the tensor \Phi. We are looking for coefficients of the tensor Y such that J transforms the tensor U into \Phi=0 for any U.

A necessary condition for the equation to have a non-trivial solution is that all 70 of the 4x4 sub-matrices of J are degenerate. To this end we can form the polynomial ideal of the determinants of these sub-matrices.

fricas
JP:=ideal concat concat concat
  [[[[ determinant(
    matrix([row(J,i1),row(J,i2),row(J,i3),row(J,i4)]))
      for i4 in (i3+1)..maxRowIndex(J) ] 
        for i3 in (i2+1)..(maxRowIndex(J)-1) ]
          for i2 in (i1+1)..(maxRowIndex(J)-2) ]
            for i1 in minRowIndex(J)..(maxRowIndex(J)-3) ];
Type: PolynomialIdeal?(Fraction(Integer),IndexedExponents?(Symbol),Symbol,Polynomial(Fraction(Integer)))
fricas
#generators(%)

\label{eq25}51(25)
Type: PositiveInteger?

Theorem 3

If a 2-d algebra is associative, commutative, anti-commutative or if it satisfies the Jacobi identity then it is a pre-Frobenius algebra.

Proof

Consider the ideals of the associator, commutator, anti-commutator and Jacobi identity

fricas
YYI:=ideal ravel YY;
Type: PolynomialIdeal?(Fraction(Integer),IndexedExponents?(Symbol),Symbol,Polynomial(Fraction(Integer)))
fricas
in?(JP,YYI)  -- associative

\label{eq26} \mbox{\rm true} (26)
Type: Boolean
fricas
YCI:=ideal ravel YC;
Type: PolynomialIdeal?(Fraction(Integer),IndexedExponents?(Symbol),Symbol,Polynomial(Fraction(Integer)))
fricas
in?(JP,YCI)  -- commutative

\label{eq27} \mbox{\rm true} (27)
Type: Boolean
fricas
YAI:=ideal ravel YA;
Type: PolynomialIdeal?(Fraction(Integer),IndexedExponents?(Symbol),Symbol,Polynomial(Fraction(Integer)))
fricas
in?(JP,YAI)  -- anti-commutative

\label{eq28} \mbox{\rm true} (28)
Type: Boolean
fricas
YXI:=ideal ravel YX;
Type: PolynomialIdeal?(Fraction(Integer),IndexedExponents?(Symbol),Symbol,Polynomial(Fraction(Integer)))
fricas
in?(JP,YXI) -- Jacobi identity

\label{eq29} \mbox{\rm true} (29)
Type: Boolean

Y-forms

Three traces of two graftings of an algebra gives six (2,0)-forms.

Left snail and right snail:

  LS                    RS

  Y /\                    /\ Y
   Y  )                  (  Y
    \/                    \/

  i  j                        j  i
   \/                          \/
    \    /\              /\    /
     e  f  \            /  f  e
      \/    \          /    \/
       \    /          \    /
        f  /            \  f
         \/              \/


\label{eq30}
LS = \{ {y^e}_{ij} {y^f}_{ef} \} \
RS = \{ {y^f}_{fe} {y^e}_{ji} \}
(30)

fricas
LS:=contract(Y*Y,1,2)

\label{eq31}\left[ 
\begin{array}{cc}
{{{y_{1, \: 1}^{2}}\ {y_{2, \: 2}^{2}}}+{{y_{1, \: 1}^{2}}\ {y_{2, \: 1}^{1}}}+{{y_{1, \: 1}^{1}}\ {y_{1, \: 2}^{2}}}+{{y_{1, \: 1}^{1}}^{2}}}&{{{y_{2, \: 1}^{2}}\ {y_{2, \: 2}^{2}}}+{{y_{2, \: 1}^{1}}\ {y_{2, \: 1}^{2}}}+{{\left({y_{1, \: 2}^{2}}+{y_{1, \: 1}^{1}}\right)}\ {y_{2, \: 1}^{1}}}}
\
{{{y_{1, \: 2}^{2}}\ {y_{2, \: 2}^{2}}}+{{y_{1, \: 2}^{2}}\ {y_{2, \: 1}^{1}}}+{{y_{1, \: 2}^{1}}\ {y_{1, \: 2}^{2}}}+{{y_{1, \: 1}^{1}}\ {y_{1, \: 2}^{1}}}}&{{{y_{2, \: 2}^{2}}^{2}}+{{y_{2, \: 1}^{1}}\ {y_{2, \: 2}^{2}}}+{{\left({y_{1, \: 2}^{2}}+{y_{1, \: 1}^{1}}\right)}\ {y_{2, \: 2}^{1}}}}
(31)
Type: CartesianTensor?(1,2,Fraction(Polynomial(Integer)))
fricas
RS:=reindex(contract(reindex(Y,[1,3,2])*reindex(Y,[1,3,2]),1,2),[2,1])

\label{eq32}\left[ 
\begin{array}{cc}
{{{y_{1, \: 1}^{2}}\ {y_{2, \: 2}^{2}}}+{{y_{1, \: 1}^{1}}\ {y_{2, \: 1}^{2}}}+{{y_{1, \: 1}^{2}}\ {y_{1, \: 2}^{1}}}+{{y_{1, \: 1}^{1}}^{2}}}&{{{y_{2, \: 1}^{2}}\ {y_{2, \: 2}^{2}}}+{{\left({y_{2, \: 1}^{1}}+{y_{1, \: 2}^{1}}\right)}\ {y_{2, \: 1}^{2}}}+{{y_{1, \: 1}^{1}}\ {y_{2, \: 1}^{1}}}}
\
{{{y_{1, \: 2}^{2}}\ {y_{2, \: 2}^{2}}}+{{y_{1, \: 2}^{1}}\ {y_{2, \: 1}^{2}}}+{{y_{1, \: 2}^{1}}\ {y_{1, \: 2}^{2}}}+{{y_{1, \: 1}^{1}}\ {y_{1, \: 2}^{1}}}}&{{{y_{2, \: 2}^{2}}^{2}}+{{y_{1, \: 2}^{1}}\ {y_{2, \: 2}^{2}}}+{{\left({y_{2, \: 1}^{2}}+{y_{1, \: 1}^{1}}\right)}\ {y_{2, \: 2}^{1}}}}
(32)
Type: CartesianTensor?(1,2,Fraction(Polynomial(Integer)))
fricas
test(LS=RS)

\label{eq33} \mbox{\rm false} (33)
Type: Boolean

Left and right deer:

   RD                 LD

   \ /\/              \/\ /
    Y /\              /\ Y
     Y  )            (  Y
      \/              \/

   i            j    i            j
    \    /\    /      \    /\    /
     \  f  \  /        \  /  f  /
      \/    \/          \/    \/
       \    /\          /\    /
        e  /  \        /  \  e
         \/    \      /    \/
          \    /      \    /
           f  /        \  f
            \/          \/


\label{eq34}
RD = \{ {y^e}_{if} {y^f}_{ej} \} \
LD = \{ {y^f}_{ie} {y^e}_{fj} \}
(34)
Left and right deer forms are identical but different from snails.
fricas
RD:=contract(Y*Y,1,3)

\label{eq35}\left[ 
\begin{array}{cc}
{{{y_{1, \: 2}^{2}}\ {y_{2, \: 1}^{2}}}+{{y_{1, \: 1}^{2}}\ {y_{2, \: 1}^{1}}}+{{y_{1, \: 1}^{2}}\ {y_{1, \: 2}^{1}}}+{{y_{1, \: 1}^{1}}^{2}}}&{{{y_{2, \: 1}^{2}}\ {y_{2, \: 2}^{2}}}+{{y_{1, \: 1}^{2}}\ {y_{2, \: 2}^{1}}}+{{y_{2, \: 1}^{1}}\ {y_{2, \: 1}^{2}}}+{{y_{1, \: 1}^{1}}\ {y_{2, \: 1}^{1}}}}
\
{{{y_{1, \: 2}^{2}}\ {y_{2, \: 2}^{2}}}+{{y_{1, \: 1}^{2}}\ {y_{2, \: 2}^{1}}}+{{y_{1, \: 2}^{1}}\ {y_{1, \: 2}^{2}}}+{{y_{1, \: 1}^{1}}\ {y_{1, \: 2}^{1}}}}&{{{y_{2, \: 2}^{2}}^{2}}+{{\left({y_{2, \: 1}^{2}}+{y_{1, \: 2}^{2}}\right)}\ {y_{2, \: 2}^{1}}}+{{y_{1, \: 2}^{1}}\ {y_{2, \: 1}^{1}}}}
(35)
Type: CartesianTensor?(1,2,Fraction(Polynomial(Integer)))
fricas
LD:=reindex(contract(reindex(Y,[1,3,2])*reindex(Y,[1,3,2]),1,3),[2,1])

\label{eq36}\left[ 
\begin{array}{cc}
{{{y_{1, \: 2}^{2}}\ {y_{2, \: 1}^{2}}}+{{y_{1, \: 1}^{2}}\ {y_{2, \: 1}^{1}}}+{{y_{1, \: 1}^{2}}\ {y_{1, \: 2}^{1}}}+{{y_{1, \: 1}^{1}}^{2}}}&{{{y_{2, \: 1}^{2}}\ {y_{2, \: 2}^{2}}}+{{y_{1, \: 1}^{2}}\ {y_{2, \: 2}^{1}}}+{{y_{2, \: 1}^{1}}\ {y_{2, \: 1}^{2}}}+{{y_{1, \: 1}^{1}}\ {y_{2, \: 1}^{1}}}}
\
{{{y_{1, \: 2}^{2}}\ {y_{2, \: 2}^{2}}}+{{y_{1, \: 1}^{2}}\ {y_{2, \: 2}^{1}}}+{{y_{1, \: 2}^{1}}\ {y_{1, \: 2}^{2}}}+{{y_{1, \: 1}^{1}}\ {y_{1, \: 2}^{1}}}}&{{{y_{2, \: 2}^{2}}^{2}}+{{\left({y_{2, \: 1}^{2}}+{y_{1, \: 2}^{2}}\right)}\ {y_{2, \: 2}^{1}}}+{{y_{1, \: 2}^{1}}\ {y_{2, \: 1}^{1}}}}
(36)
Type: CartesianTensor?(1,2,Fraction(Polynomial(Integer)))
fricas
test(LD=RD)

\label{eq37} \mbox{\rm true} (37)
Type: Boolean
fricas
test(RD=RS)

\label{eq38} \mbox{\rm false} (38)
Type: Boolean
fricas
test(RD=LS)

\label{eq39} \mbox{\rm false} (39)
Type: Boolean

Left and right turtles:

  RT                   LT

   /\ / /               \ \ /\
  (  Y /                 \ Y  )
   \  Y                   Y  /
    \/                     \/

           i     j      i     j
    /\    /     /        \     \    /\
   /  f  /     /          \     \  f  \
  /    \/     /            \     \/    \
  \     \    /              \    /     /
   \     e  /                \  e     /
    \     \/                  \/     /
     \    /                    \    /
      \  f                      f  /
       \/                        \/


\label{eq40}
RT = \{ {y^e}_{fi} {y^f}_{ej} \} \
LT = \{ {y^f}_{ie} {y^e}_{jf} \}
(40)

fricas
RT:=contract(Y*Y,1,4)

\label{eq41}\left[ 
\begin{array}{cc}
{{{y_{2, \: 1}^{2}}^{2}}+{2 \ {y_{1, \: 1}^{2}}\ {y_{2, \: 1}^{1}}}+{{y_{1, \: 1}^{1}}^{2}}}&{{{y_{2, \: 1}^{2}}\ {y_{2, \: 2}^{2}}}+{{y_{1, \: 1}^{2}}\ {y_{2, \: 2}^{1}}}+{{y_{1, \: 2}^{2}}\ {y_{2, \: 1}^{1}}}+{{y_{1, \: 1}^{1}}\ {y_{1, \: 2}^{1}}}}
\
{{{y_{2, \: 1}^{2}}\ {y_{2, \: 2}^{2}}}+{{y_{1, \: 1}^{2}}\ {y_{2, \: 2}^{1}}}+{{y_{1, \: 2}^{2}}\ {y_{2, \: 1}^{1}}}+{{y_{1, \: 1}^{1}}\ {y_{1, \: 2}^{1}}}}&{{{y_{2, \: 2}^{2}}^{2}}+{2 \ {y_{1, \: 2}^{2}}\ {y_{2, \: 2}^{1}}}+{{y_{1, \: 2}^{1}}^{2}}}
(41)
Type: CartesianTensor?(1,2,Fraction(Polynomial(Integer)))
fricas
LT:=reindex(contract(reindex(Y,[1,3,2])*reindex(Y,[1,3,2]),1,4),[2,1])

\label{eq42}\left[ 
\begin{array}{cc}
{{{y_{1, \: 2}^{2}}^{2}}+{2 \ {y_{1, \: 1}^{2}}\ {y_{1, \: 2}^{1}}}+{{y_{1, \: 1}^{1}}^{2}}}&{{{y_{1, \: 2}^{2}}\ {y_{2, \: 2}^{2}}}+{{y_{1, \: 1}^{2}}\ {y_{2, \: 2}^{1}}}+{{y_{1, \: 2}^{1}}\ {y_{2, \: 1}^{2}}}+{{y_{1, \: 1}^{1}}\ {y_{2, \: 1}^{1}}}}
\
{{{y_{1, \: 2}^{2}}\ {y_{2, \: 2}^{2}}}+{{y_{1, \: 1}^{2}}\ {y_{2, \: 2}^{1}}}+{{y_{1, \: 2}^{1}}\ {y_{2, \: 1}^{2}}}+{{y_{1, \: 1}^{1}}\ {y_{2, \: 1}^{1}}}}&{{{y_{2, \: 2}^{2}}^{2}}+{2 \ {y_{2, \: 1}^{2}}\ {y_{2, \: 2}^{1}}}+{{y_{2, \: 1}^{1}}^{2}}}
(42)
Type: CartesianTensor?(1,2,Fraction(Polynomial(Integer)))
fricas
test(LT=RT)

\label{eq43} \mbox{\rm false} (43)
Type: Boolean

The turles are symmetric

fricas
test(RT=reindex(RT,[2,1]))

\label{eq44} \mbox{\rm true} (44)
Type: Boolean
fricas
test(LT=reindex(LT,[2,1]))

\label{eq45} \mbox{\rm true} (45)
Type: Boolean

Five of the six forms are independent.

fricas
test(RT=RS)

\label{eq46} \mbox{\rm false} (46)
Type: Boolean
fricas
test(RT=LS)

\label{eq47} \mbox{\rm false} (47)
Type: Boolean
fricas
test(RT=RD)

\label{eq48} \mbox{\rm false} (48)
Type: Boolean
fricas
test(LT=RS)

\label{eq49} \mbox{\rm false} (49)
Type: Boolean
fricas
test(LT=LS)

\label{eq50} \mbox{\rm false} (50)
Type: Boolean
fricas
test(LT=RD)

\label{eq51} \mbox{\rm false} (51)
Type: Boolean

Associativity implies right turtle equals right snail and left turtle equals left snail.

fricas
in?(ideal ravel(RT-RS),YYI)

\label{eq52} \mbox{\rm true} (52)
Type: Boolean
fricas
in?(ideal ravel(LT-LS),YYI)

\label{eq53} \mbox{\rm true} (53)
Type: Boolean

If the Jacobi identity holds then both snails are zero

fricas
in?(ideal ravel(RS),YXI)

\label{eq54} \mbox{\rm true} (54)
Type: Boolean
fricas
in?(ideal ravel(LS),YXI)

\label{eq55} \mbox{\rm true} (55)
Type: Boolean

and right turtle and deer have opposite signs

fricas
in?(ideal ravel(RT+RD),YXI)

\label{eq56} \mbox{\rm true} (56)
Type: Boolean