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 3 of 4

1 2 3 4
Editor: Bill Page
Time: 2011/05/13 20:57:07 GMT-7
Note: Use new LinearOperator domain

changed:
-An n-dimensional algebra is represented by a (2,1)-tensor
2-d Example

  Use LinearOperator (LOP)

\begin{axiom}
)lib CARTEN MONAL PROP LOP
L:=LOP(OVAR ['1,'2], EXPR INT)
-- basis
dx:=basisIn()$L
Dx:=basisOut()$L
-- summation
macro Σ(f,b,i) == reduce(+,[f*b.i for i in 1..#b])
-- identity
I:L:=[1]
-- twist
X:L:=[2,1]
-- co-evaluation
Λ:L:=co(1)
-- evaluation
V:L:=ev(1)
\end{axiom}

Algebra

  An n-dimensional algebra is represented by a (2,1)-tensor

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

\begin{axiom}
Y:=Σ(Σ(Σ(script(y,[[i,j],[k]]),dx,i),dx,j),Dx,k)
\end{axiom}

Multiplication

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

\begin{axiom}
P:=Σ(script(p,[[],[i]]),Dx,i)
Q:=Σ(script(q,[[],[i]]),Dx,i)

changed:
-R:=contract(contract(Y,3,product(P,Q),1),2,3)
R:=(P,Q)/Y

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

  An algebra is said to be *associative* if::

    Y    =    Y
     Y       Y

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

changed:
-\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
\begin{axiom} 
YY := (Y,I)/Y - (I,Y)/Y
\end{axiom}

Commutator

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

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

changed:
-YC:=Y-reindex(Y,[1,3,2])
YC:=Y-(X/Y)

changed:
-The algebra $Y$ is *anti-commutative* if::
-
-  Y = -Y
-
-  i   j     i  j     j  i
-   \ /   =   \/   =   \/
-    |         \       /
-    k          k     k
Anti-commutator

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

    Y = -Y

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

changed:
-YA:=Y+reindex(Y,[1,3,2])
YA:=Y+(X/Y)

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

  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

changed:
-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
YX := YY - (I,X)/(Y,I)/Y
\end{axiom}

Scalar Product

  A scalar product is denoted by the (2,0)-tensor

changed:
-U:T := unravel(concat
-  [[script(u,[[],[j,i]])
-    for i in 1..n]
-      for j in 1..n]
-        )
-\end{axiom}
U:=Σ(Σ(script(u,[[],[i,j]]),dx,i),dx,j)
\end{axiom}


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

changed:
-Ud:DMP(concat map(variables,ravel(U)),FRAC INT) := determinant [[U[i,j] for j in 1..n] for i in 1..n]
Ud:DMP(concat map(variables,ravel(U)),FRAC INT) := determinant [[retract((Dx.i,Dx.j)/U) for j in 1..#Dx] for i in 1..#Dx]

changed:
-US:T := unravel(map(x+->subst(x,U[2,1]=U[1,2]),ravel U))
-\end{axiom}
US:=eval(U,retract((Dx.2,Dx.1)/U)=retract((Dx.1,Dx.2)/U))
\end{axiom}

changed:
-YUS:T :=  reindex(reindex(US,[2,1])*reindex(Y,[1,3,2]),[3,2,1])-US*Y
YUS := (I,Y)/US - (Y,I)/US

changed:
-YS:T := unravel(map(x+->subst(x,SS),ravel Y))
YS:=eval(U,SS)

changed:
-test(unravel(map(x+->subst(x,SS),ravel YUS))$T=0*YU)
-\end{axiom}
test(eval(YUS,SS)=0*YUS)
\end{axiom}

changed:
-    matrix([row(J,i1),row(J,i2),row(J,i3),row(J,i4)]))
    matrix([row(J,i1),row(J,i2),row(J,i3),row(J,i4)]))::FRAC POLY INT

changed:
-YYI:=ideal ravel YY;
YYI:=ideal(ravel(YY)::List FRAC POLY INT);

changed:
-YCI:=ideal ravel YC;
YCI:=ideal(ravel(YC)::List FRAC POLY INT);

changed:
-YAI:=ideal ravel YA;
YAI:=ideal(ravel(YA)::List FRAC POLY INT);

changed:
-YXI:=ideal ravel YX;
YXI:=ideal(ravel(YX)::List FRAC POLY INT);

changed:
-Three traces of two graftings of an algebra gives six
  Three traces of two graftings of an algebra gives six

changed:
-LS:=contract(Y*Y,1,2)
-RS:=reindex(contract(reindex(Y,[1,3,2])*reindex(Y,[1,3,2]),1,2),[2,1])
LS:=
  ( Y Λ  )/ _
  (  Y I )/ _
      V
RS:=
  (  Λ Y )/ _
  ( I Y  )/ _
     V

changed:
-RD:=contract(Y*Y,1,3)
-LD:=reindex(contract(reindex(Y,[1,3,2])*reindex(Y,[1,3,2]),1,3),[2,1])
RD:=
  (  I Λ I  ) / _
  (   Y X   ) / _
  (    Y I  ) / _
        V
LD:=
  (  I Λ I  ) / _
  (   X Y   ) / _
  (  I Y    ) / _
      V

changed:
-RT:=contract(Y*Y,1,4)
-LT:=reindex(contract(reindex(Y,[1,3,2])*reindex(Y,[1,3,2]),1,4),[2,1])
RT:=
  (  Λ I I ) / _
  ( I Y I  ) / _
  (  I Y   ) / _
      V
LT:=
  ( I I Λ  ) / _
  (  I Y I ) / _
  (   Y I  ) / _
       V

changed:
-test(RT=reindex(RT,[2,1]))
-test(LT=reindex(LT,[2,1]))
test(RT = X/RT)
test(LT = X/LT)

changed:
-in?(ideal ravel(RT-RS),YYI)
-in?(ideal ravel(LT-LS),YYI)
in?(ideal(ravel(RT-RS)::List FRAC POLY INT),YYI)
in?(ideal(ravel(LT-LS)::List FRAC POLY INT),YYI)

changed:
-in?(ideal ravel(RS),YXI)
-in?(ideal ravel(LS),YXI)
in?(ideal(ravel(RS)::List FRAC POLY INT),YXI)
in?(ideal(ravel(LS)::List FRAC POLY INT),YXI)

changed:
-in?(ideal ravel(RT+RD),YXI)
-\end{axiom}
-
-From BillPage Fri May 13 11:28:33 -0700 2011
-From: Bill Page
-Date: Fri, 13 May 2011 11:28:33 -0700
-Subject: Use new LinearOperator domain
-Message-ID: <20110513112833-0700@axiom-wiki.newsynthesis.org>
-
-SandBoxFrobeniusAlgebra updated
in?(ideal(ravel(RT+RD)::List FRAC POLY INT),YXI)
\end{axiom}

References

See also:

2-d Example

Use LinearOperator? (LOP)

fricas
(1) -> )lib CARTEN MONAL PROP LOP
CartesianTensor is now explicitly exposed in frame initial CartesianTensor will be automatically loaded when needed from /var/aw/var/LatexWiki/CARTEN.NRLIB/CARTEN Monoidal is now explicitly exposed in frame initial Monoidal will be automatically loaded when needed from /var/aw/var/LatexWiki/MONAL.NRLIB/MONAL Prop is now explicitly exposed in frame initial Prop will be automatically loaded when needed from /var/aw/var/LatexWiki/PROP.NRLIB/PROP LinearOperator is now explicitly exposed in frame initial LinearOperator will be automatically loaded when needed from /var/aw/var/LatexWiki/LOP.NRLIB/LOP L:=LOP(OVAR ['1,'2], EXPR INT)

\label{eq1}\hbox{\axiomType{LinearOperator}\ } (\hbox{\axiomType{OrderedVariableList}\ } ([ 1, 2 ]) , \hbox{\axiomType{Expression}\ } (\hbox{\axiomType{Integer}\ }))(1)
Type: Type
fricas
-- basis
dx:=basisIn()$L

\label{eq2}\left[{|_{\ }^{1}}, \:{|_{\ }^{2}}\right](2)
Type: List(LinearOperator?(OrderedVariableList?([1,2]),Expression(Integer)))
fricas
Dx:=basisOut()$L

\label{eq3}\left[{|_{1}}, \:{|_{2}}\right](3)
Type: List(LinearOperator?(OrderedVariableList?([1,2]),Expression(Integer)))
fricas
-- summation
macro Σ(f,b,i) == reduce(+,[f*b.i for i in 1..#b])
Type: Void
fricas
-- identity
I:L:=[1]

\label{eq4}{|_{1}^{1}}+{|_{2}^{2}}(4)
Type: LinearOperator?(OrderedVariableList?([1,2]),Expression(Integer))
fricas
-- twist
X:L:=[2,1]

\label{eq5}{|_{1 \  1}^{1 \  1}}+{|_{2 \  1}^{1 \  2}}+{|_{1 \  2}^{2 \  1}}+{|_{2 \  2}^{2 \  2}}(5)
Type: LinearOperator?(OrderedVariableList?([1,2]),Expression(Integer))
fricas
-- co-evaluation
Λ:L:=co(1)

\label{eq6}{|_{1 \  1}}+{|_{2 \  2}}(6)
Type: LinearOperator?(OrderedVariableList?([1,2]),Expression(Integer))
fricas
-- evaluation
V:L:=ev(1)

\label{eq7}{|_{\ }^{1 \  1}}+{|_{\ }^{2 \  2}}(7)
Type: LinearOperator?(OrderedVariableList?([1,2]),Expression(Integer))

Algebra

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
Y:=Σ(Σ(Σ(script(y,[[i,j],[k]]),dx,i),dx,j),Dx,k)

\label{eq8}\begin{array}{@{}l}
\displaystyle
{{y_{1, \: 1}^{1}}\ {|_{1}^{1 \  1}}}+{{y_{1, \: 1}^{2}}\ {|_{2}^{1 \  1}}}+{{y_{1, \: 2}^{1}}\ {|_{1}^{1 \  2}}}+{{y_{1, \: 2}^{2}}\ {|_{2}^{1 \  2}}}+ 
\
\
\displaystyle
{{y_{2, \: 1}^{1}}\ {|_{1}^{2 \  1}}}+{{y_{2, \: 1}^{2}}\ {|_{2}^{2 \  1}}}+{{y_{2, \: 2}^{1}}\ {|_{1}^{2 \  2}}}+{{y_{2, \: 2}^{2}}\ {|_{2}^{2 \  2}}}
(8)
Type: LinearOperator?(OrderedVariableList?([1,2]),Expression(Integer))

Multiplication

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

fricas
P:=Σ(script(p,[[],[i]]),Dx,i)

\label{eq9}{{p^{1}}\ {|_{1}}}+{{p^{2}}\ {|_{2}}}(9)
Type: LinearOperator?(OrderedVariableList?([1,2]),Expression(Integer))
fricas
Q:=Σ(script(q,[[],[i]]),Dx,i)

\label{eq10}{{q^{1}}\ {|_{1}}}+{{q^{2}}\ {|_{2}}}(10)
Type: LinearOperator?(OrderedVariableList?([1,2]),Expression(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:=(P,Q)/Y

\label{eq11}\begin{array}{@{}l}
\displaystyle
{{\left({
\begin{array}{@{}l}
\displaystyle
{{p^{2}}\ {q^{2}}\ {y_{2, \: 2}^{1}}}+{{p^{2}}\ {q^{1}}\ {y_{2, \: 1}^{1}}}+{{p^{1}}\ {q^{2}}\ {y_{1, \: 2}^{1}}}+ 
\
\
\displaystyle
{{p^{1}}\ {q^{1}}\ {y_{1, \: 1}^{1}}}
(11)
Type: LinearOperator?(OrderedVariableList?([1,2]),Expression(Integer))

Pictorially:

  P Q
   Y
   R

  or more explicitly

  Pi Qj
   \/
    \
     Rk

Associator

An algebra is said to be associative if:

    Y    =    Y
     Y       Y

    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{eq12}
\Psi  = \{ {\psi_l}^{ijk} =  {y^e}_{ij} {y^l}_{ek} - {y^l}_{ie} {y^e}_{jk} \}
(12)
(associator) is zero.
fricas
YY := (Y,I)/Y - (I,Y)/Y

\label{eq13}\begin{array}{@{}l}
\displaystyle
{{\left({{y_{1, \: 1}^{2}}\ {y_{2, \: 1}^{1}}}-{{y_{1, \: 1}^{2}}\ {y_{1, \: 2}^{1}}}\right)}\ {|_{1}^{1 \  1 \  1}}}+ 
\
\
\displaystyle
{{\left({{y_{1, \: 1}^{2}}\ {y_{2, \: 1}^{2}}}-{{y_{1, \: 1}^{2}}\ {y_{1, \: 2}^{2}}}\right)}\ {|_{2}^{1 \  1 \  1}}}+ 
\
\
\displaystyle
{{\left({{y_{1, \: 1}^{2}}\ {y_{2, \: 2}^{1}}}-{{y_{1, \: 2}^{1}}\ {y_{1, \: 2}^{2}}}\right)}\ {|_{1}^{1 \  1 \  2}}}+ 
\
\
\displaystyle
{{\left({
\begin{array}{@{}l}
\displaystyle
{{y_{1, \: 1}^{2}}\ {y_{2, \: 2}^{2}}}-{{y_{1, \: 2}^{2}}^{2}}+{{y_{1, \: 1}^{1}}\ {y_{1, \: 2}^{2}}}- 
\
\
\displaystyle
{{y_{1, \: 1}^{2}}\ {y_{1, \: 2}^{1}}}
(13)
Type: LinearOperator?(OrderedVariableList?([1,2]),Expression(Integer))

Commutator

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{eq14}
\mathcal{C} = \{ {c^k}_{ij} = {y^k}_{ij} - {y^k}_{ji} \}
(14)
(commutator) is zero.
fricas
YC:=Y-(X/Y)

\label{eq15}\begin{array}{@{}l}
\displaystyle
{{\left(-{y_{2, \: 1}^{1}}+{y_{1, \: 2}^{1}}\right)}\ {|_{1}^{1 \  2}}}+{{\left(-{y_{2, \: 1}^{2}}+{y_{1, \: 2}^{2}}\right)}\ {|_{2}^{1 \  2}}}+ 
\
\
\displaystyle
{{\left({y_{2, \: 1}^{1}}-{y_{1, \: 2}^{1}}\right)}\ {|_{1}^{2 \  1}}}+{{\left({y_{2, \: 1}^{2}}-{y_{1, \: 2}^{2}}\right)}\ {|_{2}^{2 \  1}}}
(15)
Type: LinearOperator?(OrderedVariableList?([1,2]),Expression(Integer))

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

fricas
groebner(ravel(YC))
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(Expression(Integer))
Perhaps you should use "@" to indicate the required return type, or "$" to specify which version of the function you need.

Anti-commutator

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{eq16}
\mathcal{A} = \{ {a^k}_{ij} = {y^k}_{ij} + {y^k}_{ji} \}
(16)
(anti-commutator) is zero.
fricas
YA:=Y+(X/Y)

\label{eq17}\begin{array}{@{}l}
\displaystyle
{2 \ {y_{1, \: 1}^{1}}\ {|_{1}^{1 \  1}}}+{2 \ {y_{1, \: 1}^{2}}\ {|_{2}^{1 \  1}}}+{{\left({y_{2, \: 1}^{1}}+{y_{1, \: 2}^{1}}\right)}\ {|_{1}^{1 \  2}}}+ 
\
\
\displaystyle
{{\left({y_{2, \: 1}^{2}}+{y_{1, \: 2}^{2}}\right)}\ {|_{2}^{1 \  2}}}+{{\left({y_{2, \: 1}^{1}}+{y_{1, \: 2}^{1}}\right)}\ {|_{1}^{2 \  1}}}+ 
\
\
\displaystyle
{{\left({y_{2, \: 1}^{2}}+{y_{1, \: 2}^{2}}\right)}\ {|_{2}^{2 \  1}}}+{2 \ {y_{2, \: 2}^{1}}\ {|_{1}^{2 \  2}}}+{2 \ {y_{2, \: 2}^{2}}\ {|_{2}^{2 \  2}}}
(17)
Type: LinearOperator?(OrderedVariableList?([1,2]),Expression(Integer))

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

fricas
groebner(ravel(YA))
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(Expression(Integer))
Perhaps you should use "@" to indicate the required return type, or "$" to specify which version of the function you need.

Jacobi

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{eq18}
\Theta = \{ {\theta^l}_{ijk} =  {y^l}_{ek} {y^e}_{ij} - {y^l}_{ie} {y^e}_{jk} - {y^l}_{ej} {y^e}_{ik} \}
(18)
is zero.

fricas
YX := YY - (I,X)/(Y,I)/Y

\label{eq19}\begin{array}{@{}l}
\displaystyle
{{\left(-{{y_{1, \: 1}^{2}}\ {y_{1, \: 2}^{1}}}-{{y_{1, \: 1}^{1}}^{2}}\right)}\ {|_{1}^{1 \  1 \  1}}}+ 
\
\
\displaystyle
{{\left(-{{y_{1, \: 1}^{2}}\ {y_{1, \: 2}^{2}}}-{{y_{1, \: 1}^{1}}\ {y_{1, \: 1}^{2}}}\right)}\ {|_{2}^{1 \  1 \  1}}}+ 
\
\
\displaystyle
{{\left({
\begin{array}{@{}l}
\displaystyle
{{y_{1, \: 1}^{2}}\ {y_{2, \: 2}^{1}}}-{{y_{1, \: 2}^{2}}\ {y_{2, \: 1}^{1}}}-{{y_{1, \: 2}^{1}}\ {y_{1, \: 2}^{2}}}- 
\
\
\displaystyle
{{y_{1, \: 1}^{1}}\ {y_{1, \: 2}^{1}}}
(19)
Type: LinearOperator?(OrderedVariableList?([1,2]),Expression(Integer))

Scalar Product

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

fricas
U:=Σ(Σ(script(u,[[],[i,j]]),dx,i),dx,j)

\label{eq20}{{u^{1, \: 1}}\ {|_{\ }^{1 \  1}}}+{{u^{1, \: 2}}\ {|_{\ }^{1 \  2}}}+{{u^{2, \: 1}}\ {|_{\ }^{2 \  1}}}+{{u^{2, \: 2}}\ {|_{\ }^{2 \  2}}}(20)
Type: LinearOperator?(OrderedVariableList?([1,2]),Expression(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{eq21}
  \Phi = \{ \phi^{ijk} = {y^e}_{ij} u_{ek} - u_{ie} {y_e}^{jk} \}
  (21)
(three-point function) is zero.

fricas
YU := (Y,I)/U - (I,Y)/U

\label{eq22}\begin{array}{@{}l}
\displaystyle
{{\left({u^{2, \: 1}}-{u^{1, \: 2}}\right)}\ {y_{1, \: 1}^{2}}\ {|_{\ }^{1 \  1 \  1}}}+ 
\
\
\displaystyle
{{\left({
\begin{array}{@{}l}
\displaystyle
-{{u^{1, \: 2}}\ {y_{1, \: 2}^{2}}}-{{u^{1, \: 1}}\ {y_{1, \: 2}^{1}}}+{{u^{2, \: 2}}\ {y_{1, \: 1}^{2}}}+ 
\
\
\displaystyle
{{u^{1, \: 2}}\ {y_{1, \: 1}^{1}}}
(22)
Type: LinearOperator?(OrderedVariableList?([1,2]),Expression(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(Expression(Integer))
fricas
yy := transpose matrix [concat(map(variables,ravel(Y)))::List Symbol];
Type: Matrix(Polynomial(Integer))
fricas
K::OutputForm * yy::OutputForm = 0

\label{eq23}\begin{array}{@{}l}
\displaystyle
{{\left[ 
\begin{array}{cccccccc}
0 &{{u^{2, \: 1}}-{u^{1, \: 2}}}& 0 & 0 & 0 & 0 & 0 & 0 
\
{u^{1, \: 2}}&{u^{2, \: 2}}& -{u^{1, \: 1}}& -{u^{1, \: 2}}& 0 & 0 & 0 & 0 
\
0 & 0 &{u^{1, \: 1}}&{u^{2, \: 1}}& -{u^{1, \: 1}}& -{u^{1, \: 2}}& 0 & 0 
\
0 & 0 &{u^{1, \: 2}}&{u^{2, \: 2}}& 0 & 0 & -{u^{1, \: 1}}& -{u^{1, \: 2}}
\
-{u^{2, \: 1}}& -{u^{2, \: 2}}& 0 & 0 &{u^{1, \: 1}}&{u^{2, \: 1}}& 0 & 0 
\
0 & 0 & -{u^{2, \: 1}}& -{u^{2, \: 2}}&{u^{1, \: 2}}&{u^{2, \: 2}}& 0 & 0 
\
0 & 0 & 0 & 0 & -{u^{2, \: 1}}& -{u^{2, \: 2}}&{u^{1, \: 1}}&{u^{2, \: 1}}
\
0 & 0 & 0 & 0 & 0 & 0 &{-{u^{2, \: 1}}+{u^{1, \: 2}}}& 0 
(23)
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{eq24}{{\left({u^{1, \: 2}}-{u^{2, \: 1}}\right)}^{4}}\ {{\left({{u^{1, \: 1}}\ {u^{2, \: 2}}}-{{u^{1, \: 2}}\ {u^{2, \: 1}}}\right)}^{2}}(24)
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 [[retract((Dx.i,Dx.j)/U) for j in 1..#Dx] for i in 1..#Dx]

\label{eq25}{{u^{1, \: 1}}\ {u^{2, \: 2}}}-{{u^{1, \: 2}}\ {u^{2, \: 1}}}(25)
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 := (I,Y)/US - (Y,I)/US
There are 15 exposed and 15 unexposed library operations named / having 2 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) Tuple(LinearOperator(OrderedVariableList([1,2]),Expression(Integer))) Variable(US)
Perhaps you should use "@" to indicate the required return type, or "$" to specify which version of the function you need.

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

fricas
test(eval(YUS,SS)=0*YUS)
There are 10 exposed and 6 unexposed library operations named eval having 2 argument(s) but none was determined to be applicable. Use HyperDoc Browse, or issue )display op eval 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 eval with argument type(s) Variable(YUS) Variable(SS)
Perhaps you should use "@" to indicate the required return type, or "$" to specify which version of the function you need.

Alternatively we may consider

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

\label{eq26}\begin{array}{@{}l}
\displaystyle
{{\left[ 
\begin{array}{cccc}
0 & -{y_{1, \: 1}^{2}}&{y_{1, \: 1}^{2}}& 0 
\
-{y_{1, \: 2}^{1}}&{-{y_{1, \: 2}^{2}}+{y_{1, \: 1}^{1}}}& 0 &{y_{1, \: 1}^{2}}
\
{-{y_{2, \: 1}^{1}}+{y_{1, \: 2}^{1}}}& -{y_{2, \: 1}^{2}}&{y_{1, \: 2}^{2}}& 0 
\
-{y_{2, \: 2}^{1}}&{-{y_{2, \: 2}^{2}}+{y_{1, \: 2}^{1}}}& 0 &{y_{1, \: 2}^{2}}
\
{y_{2, \: 1}^{1}}& 0 &{{y_{2, \: 1}^{2}}-{y_{1, \: 1}^{1}}}& -{y_{1, \: 1}^{2}}
\
0 &{y_{2, \: 1}^{1}}& -{y_{1, \: 2}^{1}}&{{y_{2, \: 1}^{2}}-{y_{1, \: 2}^{2}}}
\
{y_{2, \: 2}^{1}}& 0 &{{y_{2, \: 2}^{2}}-{y_{2, \: 1}^{1}}}& -{y_{2, \: 1}^{2}}
\
0 &{y_{2, \: 2}^{1}}& -{y_{2, \: 2}^{1}}& 0 
(26)
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)]))::FRAC POLY INT
      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{eq27}51(27)
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)::List FRAC POLY INT);
Type: PolynomialIdeal?(Fraction(Integer),IndexedExponents?(Symbol),Symbol,Polynomial(Fraction(Integer)))
fricas
in?(JP,YYI)  -- associative

\label{eq28} \mbox{\rm true} (28)
Type: Boolean
fricas
YCI:=ideal(ravel(YC)::List FRAC POLY INT);
Type: PolynomialIdeal?(Fraction(Integer),IndexedExponents?(Symbol),Symbol,Polynomial(Fraction(Integer)))
fricas
in?(JP,YCI)  -- commutative

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

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

\label{eq31} \mbox{\rm true} (31)
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{eq32}
LS = \{ {y^e}_{ij} {y^f}_{ef} \} \
RS = \{ {y^f}_{fe} {y^e}_{ji} \}
(32)

fricas
LS:=
  ( Y Λ  )/ _
  (  Y I )/ _
      V

\label{eq33}\begin{array}{@{}l}
\displaystyle
{{\left({{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}}\right)}\ {|_{\ }^{1 \  1}}}+ 
\
\
\displaystyle
{{\left({
\begin{array}{@{}l}
\displaystyle
{{y_{1, \: 2}^{2}}\ {y_{2, \: 2}^{2}}}+{{y_{1, \: 2}^{2}}\ {y_{2, \: 1}^{1}}}+{{y_{1, \: 2}^{1}}\ {y_{1, \: 2}^{2}}}+ 
\
\
\displaystyle
{{y_{1, \: 1}^{1}}\ {y_{1, \: 2}^{1}}}
(33)
Type: LinearOperator?(OrderedVariableList?([1,2]),Expression(Integer))
fricas
RS:=
  (  Λ Y )/ _
  ( I Y  )/ _
     V

\label{eq34}\begin{array}{@{}l}
\displaystyle
{{\left({{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}}\right)}\ {|_{\ }^{1 \  1}}}+ 
\
\
\displaystyle
{{\left({
\begin{array}{@{}l}
\displaystyle
{{y_{1, \: 2}^{2}}\ {y_{2, \: 2}^{2}}}+{{y_{1, \: 2}^{1}}\ {y_{2, \: 1}^{2}}}+{{y_{1, \: 2}^{1}}\ {y_{1, \: 2}^{2}}}+ 
\
\
\displaystyle
{{y_{1, \: 1}^{1}}\ {y_{1, \: 2}^{1}}}
(34)
Type: LinearOperator?(OrderedVariableList?([1,2]),Expression(Integer))
fricas
test(LS=RS)

\label{eq35} \mbox{\rm false} (35)
Type: Boolean

Left and right deer:

   RD                 LD

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

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


\label{eq36}
RD = \{ {y^e}_{if} {y^f}_{ej} \} \
LD = \{ {y^f}_{ie} {y^e}_{fj} \}
(36)
Left and right deer forms are identical but different from snails.
fricas
RD:=
  (  I Λ I  ) / _
  (   Y X   ) / _
  (    Y I  ) / _
        V

\label{eq37}\begin{array}{@{}l}
\displaystyle
{{\left({{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}}\right)}\ {|_{\ }^{1 \  1}}}+ 
\
\
\displaystyle
{{\left({
\begin{array}{@{}l}
\displaystyle
{{y_{1, \: 2}^{2}}\ {y_{2, \: 2}^{2}}}+{{y_{1, \: 1}^{2}}\ {y_{2, \: 2}^{1}}}+{{y_{1, \: 2}^{1}}\ {y_{1, \: 2}^{2}}}+ 
\
\
\displaystyle
{{y_{1, \: 1}^{1}}\ {y_{1, \: 2}^{1}}}
(37)
Type: LinearOperator?(OrderedVariableList?([1,2]),Expression(Integer))
fricas
LD:=
  (  I Λ I  ) / _
  (   X Y   ) / _
  (  I Y    ) / _
      V

\label{eq38}\begin{array}{@{}l}
\displaystyle
{{\left({{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}}\right)}\ {|_{\ }^{1 \  1}}}+ 
\
\
\displaystyle
{{\left({
\begin{array}{@{}l}
\displaystyle
{{y_{1, \: 2}^{2}}\ {y_{2, \: 2}^{2}}}+{{y_{1, \: 1}^{2}}\ {y_{2, \: 2}^{1}}}+{{y_{1, \: 2}^{1}}\ {y_{1, \: 2}^{2}}}+ 
\
\
\displaystyle
{{y_{1, \: 1}^{1}}\ {y_{1, \: 2}^{1}}}
(38)
Type: LinearOperator?(OrderedVariableList?([1,2]),Expression(Integer))
fricas
test(LD=RD)

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

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

\label{eq41} \mbox{\rm false} (41)
Type: Boolean

Left and right turtles:

  RT                   LT

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

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


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

fricas
RT:=
  (  Λ I I ) / _
  ( I Y I  ) / _
  (  I Y   ) / _
      V

\label{eq43}\begin{array}{@{}l}
\displaystyle
{{\left({{y_{2, \: 1}^{2}}^{2}}+{2 \ {y_{1, \: 1}^{2}}\ {y_{2, \: 1}^{1}}}+{{y_{1, \: 1}^{1}}^{2}}\right)}\ {|_{\ }^{1 \  1}}}+ 
\
\
\displaystyle
{{\left({
\begin{array}{@{}l}
\displaystyle
{{y_{2, \: 1}^{2}}\ {y_{2, \: 2}^{2}}}+{{y_{1, \: 1}^{2}}\ {y_{2, \: 2}^{1}}}+{{y_{1, \: 2}^{2}}\ {y_{2, \: 1}^{1}}}+ 
\
\
\displaystyle
{{y_{1, \: 1}^{1}}\ {y_{1, \: 2}^{1}}}
(43)
Type: LinearOperator?(OrderedVariableList?([1,2]),Expression(Integer))
fricas
LT:=
  ( I I Λ  ) / _
  (  I Y I ) / _
  (   Y I  ) / _
       V

\label{eq44}\begin{array}{@{}l}
\displaystyle
{{\left({{y_{1, \: 2}^{2}}^{2}}+{2 \ {y_{1, \: 1}^{2}}\ {y_{1, \: 2}^{1}}}+{{y_{1, \: 1}^{1}}^{2}}\right)}\ {|_{\ }^{1 \  1}}}+ 
\
\
\displaystyle
{{\left({
\begin{array}{@{}l}
\displaystyle
{{y_{1, \: 2}^{2}}\ {y_{2, \: 2}^{2}}}+{{y_{1, \: 1}^{2}}\ {y_{2, \: 2}^{1}}}+{{y_{1, \: 2}^{1}}\ {y_{2, \: 1}^{2}}}+ 
\
\
\displaystyle
{{y_{1, \: 1}^{1}}\ {y_{2, \: 1}^{1}}}
(44)
Type: LinearOperator?(OrderedVariableList?([1,2]),Expression(Integer))
fricas
test(LT=RT)

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

The turles are symmetric

fricas
test(RT = X/RT)

\label{eq46} \mbox{\rm true} (46)
Type: Boolean
fricas
test(LT = X/LT)

\label{eq47} \mbox{\rm true} (47)
Type: Boolean

Five of the six forms are independent.

fricas
test(RT=RS)

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

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

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

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

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

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

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

fricas
in?(ideal(ravel(RT-RS)::List FRAC POLY INT),YYI)

\label{eq54} \mbox{\rm true} (54)
Type: Boolean
fricas
in?(ideal(ravel(LT-LS)::List FRAC POLY INT),YYI)

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

If the Jacobi identity holds then both snails are zero

fricas
in?(ideal(ravel(RS)::List FRAC POLY INT),YXI)

\label{eq56} \mbox{\rm true} (56)
Type: Boolean
fricas
in?(ideal(ravel(LS)::List FRAC POLY INT),YXI)

\label{eq57} \mbox{\rm true} (57)
Type: Boolean

and right turtle and deer have opposite signs

fricas
in?(ideal(ravel(RT+RD)::List FRAC POLY INT),YXI)

\label{eq58} \mbox{\rm false} (58)
Type: Boolean