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

Edit detail for The Algebra of Complex Numbers Is Frobenius In Many Ways revision 1 of 11

1 2 3 4 5 6 7 8 9 10 11
Editor: Bill Page
Time: 2011/04/27 23:40:10 GMT-7
Note: three-point function

changed:
-
The Algebra of Complex Numbers Is Frobenius In Many Ways

Linear operators over a 2-dimensional vector space representing the algebra of complex numbers

Ref:

- http://arxiv.org/abs/1103.5113

  $S_3$-permuted Frobenius Algebras

  *Zbigniew Oziewicz (UNAM), Gregory Peter Wene (UTSA)*

- http://mat.uab.es/~kock/TQFT.html

  Frobenius algebras and 2D topological quantum field theories

  *Joachim Kock*

- http://en.wikipedia.org/wiki/Frobenius_algebra

We need the Axiom LinearOperator library.
\begin{axiom}
)library CARTEN MONAL PROP LIN CALEY
\end{axiom}

Use the following macros for convenient notation
\begin{axiom}
-- summation
macro Σ(x,i,n)==reduce(+,[x for i in n])
-- list
macro Ξ(f,i,n)==[f for i in n]
-- subscript
macro sb == subscript
\end{axiom}

𝐋 is the domain of 2-dimensional linear operators over the rational functions ℚ (Expression Integer), i.e. ratio of polynomials with integer coefficients.
\begin{axiom}
dim:=2
macro ℒ == List
macro ℂ == CaleyDickson
macro ℚ == Expression Integer
𝐋 := LinearOperator(dim, OVAR [], ℚ)
𝐞:ℒ 𝐋      := basisVectors()
𝐝:ℒ 𝐋      := basisForms()
o:𝐋:=1     -- identity for product
I:𝐋:=[1]   -- identity for composition
X:𝐋:=[2,1] -- twist
\end{axiom}

Now generate structure constants for Quaternion Algebra

The basis consists of the real and imaginary units. We use quaternion multiplication to form the "multiplication table" as a matrix. Then the structure constants can be obtained by dividing each matrix entry by the list of basis vectors.

Split-complex can be specified by Caley-Dickson parameter (q0 = -1)
\begin{axiom}
q0:=sb('q,[0])
--q0:=1  -- split-complex
QQ := ℂ(ℚ,'i,q0);
\end{axiom}

Basis: Each B.i is a quaternion number
\begin{axiom}
B:ℒ QQ := map(x +-> hyper x,1$SQMATRIX(dim,ℚ)::ℒ ℒ ℚ)
-- Multiplication table:
M:Matrix QQ := matrix Ξ(Ξ(B.i*B.j, i,1..dim), j,1..dim)
-- Function to divide the matrix entries by a basis element
S(y) == map(x +-> real(x/y),M)
-- The result is a nested list
ѕ :=map(S,B)::ℒ ℒ ℒ ℚ
-- structure constants form a tensor operator
Y := Σ(Σ(Σ(ѕ(i)(k)(j)*𝐞.i*𝐝.j*𝐝.k, i,1..dim), j,1..dim), k,1..dim)
arity Y
matrix Ξ(Ξ((𝐞.i*𝐞.j)/Y, i,1..dim), j,1..dim)
\end{axiom}

Multiplication of arbitrary quaternions $a$ and $b$
\begin{axiom}
a:=Σ(sb('a,[i])*𝐞.i, i,1..dim)
b:=Σ(sb('b,[i])*𝐞.i, i,1..dim)
(a*b)/Y
\end{axiom}

A scalar product is denoted by the (2,0)-tensor
$U = \{ u_{ij} \}$
\begin{axiom}
U:=Σ(Σ(script('u,[[],[i,j]])*𝐝.i*𝐝.j, i,1..dim), j,1..dim)
\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:
$$
\scalebox{1} % Change this value to rescale the drawing.
{
\begin{pspicture}(0,-0.92)(4.82,0.92)
\psbezier[linewidth=0.04](2.2,0.9)(2.2,0.1)(2.6,0.1)(2.6,0.9)
\psline[linewidth=0.04cm](2.4,0.3)(2.4,-0.1)
\psbezier[linewidth=0.04](2.4,-0.1)(2.4,-0.9)(3.0,-0.9)(3.0,-0.1)
\psline[linewidth=0.04cm](3.0,-0.1)(3.0,0.9)
\psbezier[linewidth=0.04](4.8,0.9)(4.8,0.1)(4.4,0.1)(4.4,0.9)
\psline[linewidth=0.04cm](4.6,0.3)(4.6,-0.1)
\psbezier[linewidth=0.04](4.6,-0.1)(4.6,-0.9)(4.0,-0.9)(4.0,-0.1)
\psline[linewidth=0.04cm](4.0,-0.1)(4.0,0.9)
\usefont{T1}{ptm}{m}{n}
\rput(3.4948437,0.205){-}
\psline[linewidth=0.04cm](0.6,-0.7)(0.6,0.9)
\psbezier[linewidth=0.04](0.0,-0.1)(0.0,-0.9)(1.2,-0.9)(1.2,-0.1)
\psline[linewidth=0.04cm](0.0,-0.1)(0.0,0.9)
\psline[linewidth=0.04cm](1.2,-0.1)(1.2,0.9)
\usefont{T1}{ptm}{m}{n}
\rput(1.6948438,0.205){=}
\end{pspicture} 
}
$$

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

Using the LinearOperator domain in Axiom and some carefully chosen symbols we can easily enter expressions that are both readable and interpreted by Axiom as "graphical calculus" diagrams describing complex products and compositions of linear operators.

\begin{axiom}

ω:𝐋 :=
     o    Y I      /
     o     U       -
     o    I Y      /
     o     U       o

\end{axiom}

Note: The only purpose of the o symbols on the left above is to serve as a constant left-side margin as required by Axiom. The symbols on the right describe the relation between row.

Definition 2

  An algebra with a non-degenerate associative scalar product
  is called a [Frobenius Algebra].

We may consider the problem where multiplication Y is given,
and look for all associative scalar products $U = U(Y)$ 

This problem can be solved using linear algebra.

\begin{axiom}
)expose MCALCFN
J := jacobian(ravel ω,concat map(variables,ravel U)::ℒ Symbol);
u := transpose matrix [concat map(variables,ravel U)::ℒ Symbol];
J::OutputForm * u::OutputForm = 0
nrows(J),ncols(J)
\end{axiom}

The matrix 'J' transforms the coefficients of the tensor $U$
into coefficients of the tensor $\Phi$. We are looking for
the general linear family of tensors $U=U(Y,p_i)$ such that
'J' transforms $U$ into $\Phi=0$ for any such $U$.

If the null space of the 'J' matrix is not empty we can use
the basis to find all non-trivial solutions for U:

\begin{axiom}
Ñ:=nullSpace(J)
ℰ:=map((x,y)+->x=y, concat
       map(variables,ravel U), entries Σ(sb('p,[i])*Ñ.i, i,1..#Ñ) )
\end{axiom}

This defines a family of pre-Frobenius algebras:
\begin{axiom}
zero? eval(ω,ℰ)
\end{axiom}

In two dimensions the pairing is necessarily symmetric!
\begin{axiom}
Ų:𝐋 := eval(U,ℰ)
matrix Ξ(Ξ((𝐞.i 𝐞.j)/Ų, i,1..dim), j,1..dim)
\end{axiom}

This is the most general form of the "dot product" of two
complex numbers
\begin{axiom}
(a*b)/Ų
(a*a)/Ų
\end{axiom}

The scalar product must be non-degenerate:
\begin{axiom}
Ů:=determinant Ξ(Ξ(retract((𝐞.i * 𝐞.j)/Ų), j,1..dim), i,1..dim)
factor Ů
\end{axiom}

Definition 3

  Co-pairing

Solve the [Snake Relation] as a system of linear equations.
\begin{axiom}
Ω:𝐋:=Σ(Σ(script('u,[[i,j]])*𝐞.i*𝐞.j, i,1..dim), j,1..dim)
d1:=(I*Ω)/(Ų*I);
d2:=(Ω*I)/(I*Ų);
equate(f,g)==map((x,y)+->(x=y),ravel f, ravel g);
eq1:=equate(d1,I);
eq2:=equate(d2,I);
snake:=solve(concat(eq1,eq2),concat Ξ(Ξ(script('u,[[i,j]]), i,1..dim), j,1..dim));
if #snake ~= 1 then error "no solution"
Ω:=eval(Ω,snake(1))
matrix Ξ(Ξ(Ω/(𝐝.i*𝐝.j), i,1..dim), j,1..dim)
\end{axiom}

Check "dimension" and the snake relations.
\begin{axiom}

d:𝐋:=
    o   Ω    /
    o   X    /
    o   Ų    o

test
    (    I Ω     )  /
    (     Ų I    )  =  I

test
    (     Ω I    )  /
    (    I Ų     )  =  I

\end{axiom}

Definition 4

  Co-algebra

Compute the "three-point" function and use it to define co-multiplication.
\begin{axiom}
W:=(Y,I)/Ų
λ:=(Ω,I,Ω)/(I,W,I)
\end{axiom}

\begin{axiom}

test
     (    I Ω     )  /
     (     Y I    )  =  λ

test
     (     Ω I    )  /
     (    I Y     )  =  λ

\end{axiom}

Frobenius Condition
\begin{axiom}

Χ :=
         Y    /
         λ

test
     (   λ I   )  /
     (  I Y    )  =  Χ

test
     (   I λ   )  /
     (    Y I  )  =  Χ

\end{axiom}

i = Unit of the algebra
\begin{axiom}
i:=𝐞.1
test
     o    i     /
     o    λ     =    Ω

\end{axiom}

Handle
\begin{axiom}

H:𝐋 :=
         λ     /
         X     /
         Y     

\end{axiom}

Definition 5

  <center>Co-unit<pre>
  i 
  U
  </pre></center>

\begin{axiom}

ι:𝐋:=
    o    i I    /
    o     Ų    o

\end{axiom}
<center><pre>
Y=U
ι  
</pre></center>
\begin{axiom}
test
   o     Y     /
   o     ι     o  = Ų

\end{axiom}

For example:
\begin{axiom}
ex1:=[q[0]=1,p[1]=0,p[2]=1]
Ų0:𝐋  :=eval(Ų,ex1)
Ω0:𝐋  :=eval(Ω,ex1)$𝐋
λ0:𝐋  :=eval(λ,ex1)$𝐋
H0:𝐋 :=eval(H,ex1)$𝐋
\end{axiom}

The Algebra of Complex Numbers Is Frobenius In Many Ways

Linear operators over a 2-dimensional vector space representing the algebra of complex numbers

Ref:

We need the Axiom LinearOperator? library.

axiom
)library CARTEN MONAL PROP LIN CALEY
CartesianTensor is now explicitly exposed in frame initial CartesianTensor will be automatically loaded when needed from /var/zope2/var/LatexWiki/CARTEN.NRLIB/CARTEN Monoidal is now explicitly exposed in frame initial Monoidal will be automatically loaded when needed from /var/zope2/var/LatexWiki/MONAL.NRLIB/MONAL Prop is now explicitly exposed in frame initial Prop will be automatically loaded when needed from /var/zope2/var/LatexWiki/PROP.NRLIB/PROP LinearOperator is now explicitly exposed in frame initial LinearOperator will be automatically loaded when needed from /var/zope2/var/LatexWiki/LIN.NRLIB/LIN CaleyDickson is now explicitly exposed in frame initial CaleyDickson will be automatically loaded when needed from /var/zope2/var/LatexWiki/CALEY.NRLIB/CALEY

Use the following macros for convenient notation

axiom
-- summation
macro Σ(x,i,n)==reduce(+,[x for i in n])
Type: Void
axiom
-- list
macro Ξ(f,i,n)==[f for i in n]
Type: Void
axiom
-- subscript
macro sb == subscript
Type: Void

𝐋 is the domain of 2-dimensional linear operators over the rational functions ℚ (Expression Integer), i.e. ratio of polynomials with integer coefficients.

axiom
dim:=2

\label{eq1}2(1)
Type: PositiveInteger?
axiom
macro ℒ == List
Type: Void
axiom
macro ℂ == CaleyDickson
Type: Void
axiom
macro ℚ == Expression Integer
Type: Void
axiom
𝐋 := LinearOperator(dim, OVAR [], ℚ)

\label{eq2}\hbox{\axiomType{LinearOperator}\ } (2, \hbox{\axiomType{OrderedVariableList}\ } ([ ]) , \hbox{\axiomType{Expression}\ } (\hbox{\axiomType{Integer}\ }))(2)
Type: Type
axiom
𝐞:ℒ 𝐋      := basisVectors()

\label{eq3}\left[{|_{1}}, \:{|_{2}}\right](3)
Type: List(LinearOperator?(2,OrderedVariableList?([]),Expression(Integer)))
axiom
𝐝:ℒ 𝐋      := basisForms()

\label{eq4}\left[{|_{\ }^{1}}, \:{|_{\ }^{2}}\right](4)
Type: List(LinearOperator?(2,OrderedVariableList?([]),Expression(Integer)))
axiom
o:𝐋:=1     -- identity for product

\label{eq5}1(5)
Type: LinearOperator?(2,OrderedVariableList?([]),Expression(Integer))
axiom
I:𝐋:=[1]   -- identity for composition

\label{eq6}{|_{1}^{1}}+{|_{2}^{2}}(6)
Type: LinearOperator?(2,OrderedVariableList?([]),Expression(Integer))
axiom
X:𝐋:=[2,1] -- twist

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

Now generate structure constants for Quaternion Algebra

The basis consists of the real and imaginary units. We use quaternion multiplication to form the "multiplication table" as a matrix. Then the structure constants can be obtained by dividing each matrix entry by the list of basis vectors.

Split-complex can be specified by Caley-Dickson parameter (q0 = -1)

axiom
q0:=sb('q,[0])

\label{eq8}q_{0}(8)
Type: Symbol
axiom
--q0:=1  -- split-complex
QQ := ℂ(ℚ,'i,q0);
Type: Type

Basis: Each B.i is a quaternion number

axiom
B:ℒ QQ := map(x +-> hyper x,1$SQMATRIX(dim,ℚ)::ℒ ℒ ℚ)

\label{eq9}\left[ 1, \: i \right](9)
Type: List(CaleyDickson?(Expression(Integer),i,*01q(0)))
axiom
-- Multiplication table:
M:Matrix QQ := matrix Ξ(Ξ(B.i*B.j, i,1..dim), j,1..dim)

\label{eq10}\left[ 
\begin{array}{cc}
1 & i 
\
i & -{q_{0}}
(10)
Type: Matrix(CaleyDickson?(Expression(Integer),i,*01q(0)))
axiom
-- Function to divide the matrix entries by a basis element
S(y) == map(x +-> real(x/y),M)
Type: Void
axiom
-- The result is a nested list
ѕ :=map(S,B)::ℒ ℒ ℒ ℚ
axiom
Compiling function S with type CaleyDickson(Expression(Integer),i,
      *01q(0)) -> Matrix(Expression(Integer))

\label{eq11}\left[{\left[{\left[ 1, \: 0 \right]}, \:{\left[ 0, \: -{q_{0}}\right]}\right]}, \:{\left[{\left[ 0, \: 1 \right]}, \:{\left[ 1, \: 0 \right]}\right]}\right](11)
Type: List(List(List(Expression(Integer))))
axiom
-- structure constants form a tensor operator
Y := Σ(Σ(Σ(ѕ(i)(k)(j)*𝐞.i*𝐝.j*𝐝.k, i,1..dim), j,1..dim), k,1..dim)

\label{eq12}{|_{1}^{1 \  1}}+{|_{2}^{1 \  2}}+{|_{2}^{2 \  1}}-{{q_{0}}\ {|_{1}^{2 \  2}}}(12)
Type: LinearOperator?(2,OrderedVariableList?([]),Expression(Integer))
axiom
arity Y

\label{eq13}2 \over 1(13)
Type: Prop(LinearOperator?(2,OrderedVariableList?([]),Expression(Integer)))
axiom
matrix Ξ(Ξ((𝐞.i*𝐞.j)/Y, i,1..dim), j,1..dim)

\label{eq14}\left[ 
\begin{array}{cc}
{|_{1}}&{|_{2}}
\
{|_{2}}& -{{q_{0}}\ {|_{1}}}
(14)
Type: Matrix(LinearOperator?(2,OrderedVariableList?([]),Expression(Integer)))

Multiplication of arbitrary quaternions a and b

axiom
a:=Σ(sb('a,[i])*𝐞.i, i,1..dim)

\label{eq15}{{a_{1}}\ {|_{1}}}+{{a_{2}}\ {|_{2}}}(15)
Type: LinearOperator?(2,OrderedVariableList?([]),Expression(Integer))
axiom
b:=Σ(sb('b,[i])*𝐞.i, i,1..dim)

\label{eq16}{{b_{1}}\ {|_{1}}}+{{b_{2}}\ {|_{2}}}(16)
Type: LinearOperator?(2,OrderedVariableList?([]),Expression(Integer))
axiom
(a*b)/Y

\label{eq17}{{\left(-{{a_{2}}\ {b_{2}}\ {q_{0}}}+{{a_{1}}\ {b_{1}}}\right)}\ {|_{1}}}+{{\left({{a_{1}}\ {b_{2}}}+{{a_{2}}\ {b_{1}}}\right)}\ {|_{2}}}(17)
Type: LinearOperator?(2,OrderedVariableList?([]),Expression(Integer))

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

axiom
U:=Σ(Σ(script('u,[[],[i,j]])*𝐝.i*𝐝.j, i,1..dim), j,1..dim)

\label{eq18}{{u^{1, \: 1}}\ {|_{\ }^{1 \  1}}}+{{u^{1, \: 2}}\ {|_{\ }^{1 \  2}}}+{{u^{2, \: 1}}\ {|_{\ }^{2 \  1}}}+{{u^{2, \: 2}}\ {|_{\ }^{2 \  2}}}(18)
Type: LinearOperator?(2,OrderedVariableList?([]),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:


\scalebox{1} % Change this value to rescale the drawing.
{
\begin{pspicture}(0,-0.92)(4.82,0.92)
\psbezier[linewidth=0.04](2.2,0.9)(2.2,0.1)(2.6,0.1)(2.6,0.9)
\psline[linewidth=0.04cm](2.4,0.3)(2.4,-0.1)
\psbezier[linewidth=0.04](2.4,-0.1)(2.4,-0.9)(3.0,-0.9)(3.0,-0.1)
\psline[linewidth=0.04cm](3.0,-0.1)(3.0,0.9)
\psbezier[linewidth=0.04](4.8,0.9)(4.8,0.1)(4.4,0.1)(4.4,0.9)
\psline[linewidth=0.04cm](4.6,0.3)(4.6,-0.1)
\psbezier[linewidth=0.04](4.6,-0.1)(4.6,-0.9)(4.0,-0.9)(4.0,-0.1)
\psline[linewidth=0.04cm](4.0,-0.1)(4.0,0.9)
\usefont{T1}{ptm}{m}{n}
\rput(3.4948437,0.205){-}
\psline[linewidth=0.04cm](0.6,-0.7)(0.6,0.9)
\psbezier[linewidth=0.04](0.0,-0.1)(0.0,-0.9)(1.2,-0.9)(1.2,-0.1)
\psline[linewidth=0.04cm](0.0,-0.1)(0.0,0.9)
\psline[linewidth=0.04cm](1.2,-0.1)(1.2,0.9)
\usefont{T1}{ptm}{m}{n}
\rput(1.6948438,0.205){=}
\end{pspicture} 
}
 


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

Using the LinearOperator? domain in Axiom and some carefully chosen symbols we can easily enter expressions that are both readable and interpreted by Axiom as "graphical calculus" diagrams describing complex products and compositions of linear operators.

axiom
ω:𝐋 :=
     o    Y I      /
     o     U       -
     o    I Y      /
     o     U       o

\label{eq20}\begin{array}{@{}l}
\displaystyle
{{\left({u^{2, \: 1}}-{u^{1, \: 2}}\right)}\ {|_{\ }^{1 \  2 \  1}}}+{{\left({{u^{1, \: 1}}\ {q_{0}}}+{u^{2, \: 2}}\right)}\ {|_{\ }^{1 \  2 \  2}}}+ 
\
\
\displaystyle
{{\left(-{{u^{1, \: 1}}\ {q_{0}}}-{u^{2, \: 2}}\right)}\ {|_{\ }^{2 \  2 \  1}}}+{{\left({u^{2, \: 1}}-{u^{1, \: 2}}\right)}\ {q_{0}}\ {|_{\ }^{2 \  2 \  2}}}
(20)
Type: LinearOperator?(2,OrderedVariableList?([]),Expression(Integer))

Note: The only purpose of the o symbols on the left above is to serve as a constant left-side margin as required by Axiom. The symbols on the right describe the relation between row.

Definition 2

An algebra with a non-degenerate associative scalar product is called a [Frobenius Algebra]?.

We may consider the problem where multiplication Y is given, and look for all associative scalar products U = U(Y)

This problem can be solved using linear algebra.

axiom
)expose MCALCFN
MultiVariableCalculusFunctions is now explicitly exposed in frame initial J := jacobian(ravel ω,concat map(variables,ravel U)::ℒ Symbol);
Type: Matrix(Expression(Integer))
axiom
u := transpose matrix [concat map(variables,ravel U)::ℒ Symbol];
Type: Matrix(Polynomial(Integer))
axiom
J::OutputForm * u::OutputForm = 0

\label{eq21}\begin{array}{@{}l}
\displaystyle
{{\left[ 
\begin{array}{cccc}
0 & 0 & 0 & 0 
\
0 & 0 & 0 & 0 
\
0 & - 1 & 1 & 0 
\
{q_{0}}& 0 & 0 & 1 
\
0 & 0 & 0 & 0 
\
0 & 0 & 0 & 0 
\
-{q_{0}}& 0 & 0 & - 1 
\
0 & -{q_{0}}&{q_{0}}& 0 
(21)
Type: Equation(OutputForm?)
axiom
nrows(J),ncols(J)

\label{eq22}\left[ 8, \: 4 \right](22)
Type: Tuple(PositiveInteger?)

The matrix J transforms the coefficients of the tensor U into coefficients of the tensor \Phi. We are looking for the general linear family of tensors U=U(Y,p_i) such that J transforms U into \Phi=0 for any such U.

If the null space of the J matrix is not empty we can use the basis to find all non-trivial solutions for U:

axiom
Ñ:=nullSpace(J)

\label{eq23}\left[{\left[ 0, \: 1, \: 1, \: 0 \right]}, \:{\left[ -{1 \over{q_{0}}}, \: 0, \: 0, \: 1 \right]}\right](23)
Type: List(Vector(Expression(Integer)))
axiom
ℰ:=map((x,y)+->x=y, concat
       map(variables,ravel U), entries Σ(sb('p,[i])*Ñ.i, i,1..#Ñ) )

\label{eq24}\left[{{u^{1, \: 1}}= -{{p_{2}}\over{q_{0}}}}, \:{{u^{1, \: 2}}={p_{1}}}, \:{{u^{2, \: 1}}={p_{1}}}, \:{{u^{2, \: 2}}={p_{2}}}\right](24)
Type: List(Equation(Expression(Integer)))

This defines a family of pre-Frobenius algebras:

axiom
zero? eval(ω,ℰ)

\label{eq25} \mbox{\rm true} (25)
Type: Boolean

In two dimensions the pairing is necessarily symmetric!

axiom
Ų:𝐋 := eval(U,ℰ)

\label{eq26}-{{{p_{2}}\over{q_{0}}}\ {|_{\ }^{1 \  1}}}+{{p_{1}}\ {|_{\ }^{1 \  2}}}+{{p_{1}}\ {|_{\ }^{2 \  1}}}+{{p_{2}}\ {|_{\ }^{2 \  2}}}(26)
Type: LinearOperator?(2,OrderedVariableList?([]),Expression(Integer))
axiom
matrix Ξ(Ξ((𝐞.i 𝐞.j)/Ų, i,1..dim), j,1..dim)

\label{eq27}\left[ 
\begin{array}{cc}
-{{p_{2}}\over{q_{0}}}&{p_{1}}
\
{p_{1}}&{p_{2}}
(27)
Type: Matrix(LinearOperator?(2,OrderedVariableList?([]),Expression(Integer)))

This is the most general form of the "dot product" of two complex numbers

axiom
(a*b)/Ų

\label{eq28}{{{\left({{a_{2}}\ {b_{2}}\ {p_{2}}}+{{\left({{a_{1}}\ {b_{2}}}+{{a_{2}}\ {b_{1}}}\right)}\ {p_{1}}}\right)}\ {q_{0}}}-{{a_{1}}\ {b_{1}}\ {p_{2}}}}\over{q_{0}}(28)
Type: LinearOperator?(2,OrderedVariableList?([]),Expression(Integer))
axiom
(a*a)/Ų

\label{eq29}{{{\left({{{a_{2}}^2}\ {p_{2}}}+{2 \ {a_{1}}\ {a_{2}}\ {p_{1}}}\right)}\ {q_{0}}}-{{{a_{1}}^2}\ {p_{2}}}}\over{q_{0}}(29)
Type: LinearOperator?(2,OrderedVariableList?([]),Expression(Integer))

The scalar product must be non-degenerate:

axiom
Ů:=determinant Ξ(Ξ(retract((𝐞.i * 𝐞.j)/Ų), j,1..dim), i,1..dim)

\label{eq30}{-{{{p_{1}}^2}\ {q_{0}}}-{{p_{2}}^2}}\over{q_{0}}(30)
Type: Expression(Integer)
axiom
factor Ů

\label{eq31}{-{{{p_{1}}^2}\ {q_{0}}}-{{p_{2}}^2}}\over{q_{0}}(31)
Type: Factored(Expression(Integer))

Definition 3

Co-pairing

Solve the [Snake Relation]? as a system of linear equations.

axiom
Ω:𝐋:=Σ(Σ(script('u,[[i,j]])*𝐞.i*𝐞.j, i,1..dim), j,1..dim)

\label{eq32}{{u_{1, \: 1}}\ {|_{1 \  1}}}+{{u_{1, \: 2}}\ {|_{1 \  2}}}+{{u_{2, \: 1}}\ {|_{2 \  1}}}+{{u_{2, \: 2}}\ {|_{2 \  2}}}(32)
Type: LinearOperator?(2,OrderedVariableList?([]),Expression(Integer))
axiom
d1:=(I*Ω)/(Ų*I);
Type: LinearOperator?(2,OrderedVariableList?([]),Expression(Integer))
axiom
d2:=(Ω*I)/(I*Ų);
Type: LinearOperator?(2,OrderedVariableList?([]),Expression(Integer))
axiom
equate(f,g)==map((x,y)+->(x=y),ravel f, ravel g);
Type: Void
axiom
eq1:=equate(d1,I);
axiom
Compiling function equate with type (LinearOperator(2,
      OrderedVariableList([]),Expression(Integer)),LinearOperator(2,
      OrderedVariableList([]),Expression(Integer))) -> List(Equation(
      Expression(Integer)))
Type: List(Equation(Expression(Integer)))
axiom
eq2:=equate(d2,I);
Type: List(Equation(Expression(Integer)))
axiom
snake:=solve(concat(eq1,eq2),concat Ξ(Ξ(script('u,[[i,j]]), i,1..dim), j,1..dim));
Type: List(List(Equation(Expression(Integer))))
axiom
if #snake ~= 1 then error "no solution"
Type: Void
axiom
Ω:=eval(Ω,snake(1))

\label{eq33}\begin{array}{@{}l}
\displaystyle
-{{{{p_{2}}\ {q_{0}}}\over{{{{p_{1}}^2}\ {q_{0}}}+{{p_{2}}^2}}}\ {|_{1 \  1}}}+{{{{p_{1}}\ {q_{0}}}\over{{{{p_{1}}^2}\ {q_{0}}}+{{p_{2}}^2}}}\ {|_{1 \  2}}}+ 
\
\
\displaystyle
{{{{p_{1}}\ {q_{0}}}\over{{{{p_{1}}^2}\ {q_{0}}}+{{p_{2}}^2}}}\ {|_{2 \  1}}}+{{{p_{2}}\over{{{{p_{1}}^2}\ {q_{0}}}+{{p_{2}}^2}}}\ {|_{2 \  2}}}
(33)
Type: LinearOperator?(2,OrderedVariableList?([]),Expression(Integer))
axiom
matrix Ξ(Ξ(Ω/(𝐝.i*𝐝.j), i,1..dim), j,1..dim)

\label{eq34}\left[ 
\begin{array}{cc}
-{{{p_{2}}\ {q_{0}}}\over{{{{p_{1}}^2}\ {q_{0}}}+{{p_{2}}^2}}}&{{{p_{1}}\ {q_{0}}}\over{{{{p_{1}}^2}\ {q_{0}}}+{{p_{2}}^2}}}
\
{{{p_{1}}\ {q_{0}}}\over{{{{p_{1}}^2}\ {q_{0}}}+{{p_{2}}^2}}}&{{p_{2}}\over{{{{p_{1}}^2}\ {q_{0}}}+{{p_{2}}^2}}}
(34)
Type: Matrix(LinearOperator?(2,OrderedVariableList?([]),Expression(Integer)))

Check "dimension" and the snake relations.

axiom
d:𝐋:=
    o   Ω    /
    o   X    /
    o   Ų    o

\label{eq35}2(35)
Type: LinearOperator?(2,OrderedVariableList?([]),Expression(Integer))
axiom
test
    (    I Ω     )  /
    (     Ų I    )  =  I

\label{eq36} \mbox{\rm true} (36)
Type: Boolean
axiom
test
    (     Ω I    )  /
    (    I Ų     )  =  I

\label{eq37} \mbox{\rm true} (37)
Type: Boolean

Definition 4

Co-algebra

Compute the "three-point" function and use it to define co-multiplication.

axiom
W:=(Y,I)/Ų

\label{eq38}\begin{array}{@{}l}
\displaystyle
-{{{p_{2}}\over{q_{0}}}\ {|_{\ }^{1 \  1 \  1}}}+{{p_{1}}\ {|_{\ }^{1 \  1 \  2}}}+{{p_{1}}\ {|_{\ }^{1 \  2 \  1}}}+{{p_{2}}\ {|_{\ }^{1 \  2 \  2}}}+ 
\
\
\displaystyle
{{p_{1}}\ {|_{\ }^{2 \  1 \  1}}}+{{p_{2}}\ {|_{\ }^{2 \  1 \  2}}}+{{p_{2}}\ {|_{\ }^{2 \  2 \  1}}}-{{p_{1}}\ {q_{0}}\ {|_{\ }^{2 \  2 \  2}}}
(38)
Type: LinearOperator?(2,OrderedVariableList?([]),Expression(Integer))
axiom
λ:=(Ω,I,Ω)/(I,W,I)

\label{eq39}\begin{array}{@{}l}
\displaystyle
-{{{{p_{2}}\ {q_{0}}}\over{{{{p_{1}}^2}\ {q_{0}}}+{{p_{2}}^2}}}\ {|_{1 \  1}^{1}}}+{{{{p_{1}}\ {q_{0}}}\over{{{{p_{1}}^2}\ {q_{0}}}+{{p_{2}}^2}}}\ {|_{1 \  2}^{1}}}+ 
\
\
\displaystyle
{{{{p_{1}}\ {q_{0}}}\over{{{{p_{1}}^2}\ {q_{0}}}+{{p_{2}}^2}}}\ {|_{2 \  1}^{1}}}+{{{p_{2}}\over{{{{p_{1}}^2}\ {q_{0}}}+{{p_{2}}^2}}}\ {|_{2 \  2}^{1}}}- 
\
\
\displaystyle
{{{{p_{1}}\ {{q_{0}}^2}}\over{{{{p_{1}}^2}\ {q_{0}}}+{{p_{2}}^2}}}\ {|_{1 \  1}^{2}}}-{{{{p_{2}}\ {q_{0}}}\over{{{{p_{1}}^2}\ {q_{0}}}+{{p_{2}}^2}}}\ {|_{1 \  2}^{2}}}- 
\
\
\displaystyle
{{{{p_{2}}\ {q_{0}}}\over{{{{p_{1}}^2}\ {q_{0}}}+{{p_{2}}^2}}}\ {|_{2 \  1}^{2}}}+{{{{p_{1}}\ {q_{0}}}\over{{{{p_{1}}^2}\ {q_{0}}}+{{p_{2}}^2}}}\ {|_{2 \  2}^{2}}}
(39)
Type: LinearOperator?(2,OrderedVariableList?([]),Expression(Integer))

axiom
test
     (    I Ω     )  /
     (     Y I    )  =  λ

\label{eq40} \mbox{\rm true} (40)
Type: Boolean
axiom
test
     (     Ω I    )  /
     (    I Y     )  =  λ

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

Frobenius Condition

axiom
Χ :=
         Y    /
         λ

\label{eq42}\begin{array}{@{}l}
\displaystyle
-{{{{p_{2}}\ {q_{0}}}\over{{{{p_{1}}^2}\ {q_{0}}}+{{p_{2}}^2}}}\ {|_{1 \  1}^{1 \  1}}}+{{{{p_{1}}\ {q_{0}}}\over{{{{p_{1}}^2}\ {q_{0}}}+{{p_{2}}^2}}}\ {|_{1 \  2}^{1 \  1}}}+ 
\
\
\displaystyle
{{{{p_{1}}\ {q_{0}}}\over{{{{p_{1}}^2}\ {q_{0}}}+{{p_{2}}^2}}}\ {|_{2 \  1}^{1 \  1}}}+{{{p_{2}}\over{{{{p_{1}}^2}\ {q_{0}}}+{{p_{2}}^2}}}\ {|_{2 \  2}^{1 \  1}}}- 
\
\
\displaystyle
{{{{p_{1}}\ {{q_{0}}^2}}\over{{{{p_{1}}^2}\ {q_{0}}}+{{p_{2}}^2}}}\ {|_{1 \  1}^{1 \  2}}}-{{{{p_{2}}\ {q_{0}}}\over{{{{p_{1}}^2}\ {q_{0}}}+{{p_{2}}^2}}}\ {|_{1 \  2}^{1 \  2}}}- 
\
\
\displaystyle
{{{{p_{2}}\ {q_{0}}}\over{{{{p_{1}}^2}\ {q_{0}}}+{{p_{2}}^2}}}\ {|_{2 \  1}^{1 \  2}}}+{{{{p_{1}}\ {q_{0}}}\over{{{{p_{1}}^2}\ {q_{0}}}+{{p_{2}}^2}}}\ {|_{2 \  2}^{1 \  2}}}- 
\
\
\displaystyle
{{{{p_{1}}\ {{q_{0}}^2}}\over{{{{p_{1}}^2}\ {q_{0}}}+{{p_{2}}^2}}}\ {|_{1 \  1}^{2 \  1}}}-{{{{p_{2}}\ {q_{0}}}\over{{{{p_{1}}^2}\ {q_{0}}}+{{p_{2}}^2}}}\ {|_{1 \  2}^{2 \  1}}}- 
\
\
\displaystyle
{{{{p_{2}}\ {q_{0}}}\over{{{{p_{1}}^2}\ {q_{0}}}+{{p_{2}}^2}}}\ {|_{2 \  1}^{2 \  1}}}+{{{{p_{1}}\ {q_{0}}}\over{{{{p_{1}}^2}\ {q_{0}}}+{{p_{2}}^2}}}\ {|_{2 \  2}^{2 \  1}}}+ 
\
\
\displaystyle
{{{{p_{2}}\ {{q_{0}}^2}}\over{{{{p_{1}}^2}\ {q_{0}}}+{{p_{2}}^2}}}\ {|_{1 \  1}^{2 \  2}}}-{{{{p_{1}}\ {{q_{0}}^2}}\over{{{{p_{1}}^2}\ {q_{0}}}+{{p_{2}}^2}}}\ {|_{1 \  2}^{2 \  2}}}- 
\
\
\displaystyle
{{{{p_{1}}\ {{q_{0}}^2}}\over{{{{p_{1}}^2}\ {q_{0}}}+{{p_{2}}^2}}}\ {|_{2 \  1}^{2 \  2}}}-{{{{p_{2}}\ {q_{0}}}\over{{{{p_{1}}^2}\ {q_{0}}}+{{p_{2}}^2}}}\ {|_{2 \  2}^{2 \  2}}}
(42)
Type: LinearOperator?(2,OrderedVariableList?([]),Expression(Integer))
axiom
test
     (   λ I   )  /
     (  I Y    )  =  Χ

\label{eq43} \mbox{\rm true} (43)
Type: Boolean
axiom
test
     (   I λ   )  /
     (    Y I  )  =  Χ

\label{eq44} \mbox{\rm true} (44)
Type: Boolean

i = Unit of the algebra

axiom
i:=𝐞.1

\label{eq45}|_{1}(45)
Type: LinearOperator?(2,OrderedVariableList?([]),Expression(Integer))
axiom
test
     o    i     /
     o    λ     =    Ω

\label{eq46} \mbox{\rm true} (46)
Type: Boolean

Handle

axiom
H:𝐋 :=
         λ     /
         X     /
         Y

\label{eq47}\begin{array}{@{}l}
\displaystyle
-{{{2 \ {p_{2}}\ {q_{0}}}\over{{{{p_{1}}^2}\ {q_{0}}}+{{p_{2}}^2}}}\ {|_{1}^{1}}}+{{{2 \ {p_{1}}\ {q_{0}}}\over{{{{p_{1}}^2}\ {q_{0}}}+{{p_{2}}^2}}}\ {|_{2}^{1}}}-{{{2 \ {p_{1}}\ {{q_{0}}^2}}\over{{{{p_{1}}^2}\ {q_{0}}}+{{p_{2}}^2}}}\ {|_{1}^{2}}}- 
\
\
\displaystyle
{{{2 \ {p_{2}}\ {q_{0}}}\over{{{{p_{1}}^2}\ {q_{0}}}+{{p_{2}}^2}}}\ {|_{2}^{2}}}
(47)
Type: LinearOperator?(2,OrderedVariableList?([]),Expression(Integer))

Definition 5

Co-unit
  i 
  U
  

axiom
ι:𝐋:=
    o    i I    /
    o     Ų    o

\label{eq48}-{{{p_{2}}\over{q_{0}}}\ {|_{\ }^{1}}}+{{p_{1}}\ {|_{\ }^{2}}}(48)
Type: LinearOperator?(2,OrderedVariableList?([]),Expression(Integer))

Y=U
ι  
axiom
test
   o     Y     /
   o     ι     o  = Ų

\label{eq49} \mbox{\rm true} (49)
Type: Boolean

For example:

axiom
ex1:=[q[0]=1,p[1]=0,p[2]=1]

\label{eq50}\left[{{q_{0}}= 1}, \:{{p_{1}}= 0}, \:{{p_{2}}= 1}\right](50)
Type: List(Equation(Polynomial(Integer)))
axiom
Ų0:𝐋  :=eval(Ų,ex1)

\label{eq51}-{|_{\ }^{1 \  1}}+{|_{\ }^{2 \  2}}(51)
Type: LinearOperator?(2,OrderedVariableList?([]),Expression(Integer))
axiom
Ω0:𝐋  :=eval(Ω,ex1)$𝐋

\label{eq52}-{|_{1 \  1}}+{|_{2 \  2}}(52)
Type: LinearOperator?(2,OrderedVariableList?([]),Expression(Integer))
axiom
λ0:𝐋  :=eval(λ,ex1)$𝐋

\label{eq53}-{|_{1 \  1}^{1}}+{|_{2 \  2}^{1}}-{|_{1 \  2}^{2}}-{|_{2 \  1}^{2}}(53)
Type: LinearOperator?(2,OrderedVariableList?([]),Expression(Integer))
axiom
H0:𝐋 :=eval(H,ex1)$𝐋

\label{eq54}-{2 \ {|_{1}^{1}}}-{2 \ {|_{2}^{2}}}(54)
Type: LinearOperator?(2,OrderedVariableList?([]),Expression(Integer))