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

# Edit detail for SandBoxFrobeniusAlgebra revision 16 of 26

 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 Editor: Bill Page Time: 2011/02/15 21:02:24 GMT-8 Note: 2-d associative algebras are pre-Frobenius

changed:
-K:=Y-reindex(Y,[1,3,2])
KK:=Y-reindex(Y,[1,3,2])

changed:
-C:=groebner(ravel(K))
KB:=groebner(ravel(KK))
\end{axiom}
The algebra 'Y' is anti-commutative if the following tensor
(the commutator) is zero
\begin{axiom}
AK:=Y+reindex(Y,[1,3,2])
\end{axiom}
A basis for the ideal defined by the coefficients of the
anti-commutator is given by:
\begin{axiom}
KA:=groebner(ravel(AK))

removed:
-test(Y*Y = contract(product(Y,Y),3,4))
-test(Y*Y = contract(Y,3,Y,1))
-test(reindex(reindex(Y,[1,3,2])*reindex(Y,[1,3,2]),[1,4,3,2]) = reindex(contract(product(Y,Y),1,5),[3,1,2,4]))
-test(reindex(reindex(Y,[1,3,2])*reindex(Y,[1,3,2]),[1,4,3,2]) = reindex(contract(Y,1,Y,2),[3,1,2,4]))

changed:
-AB:=groebner(ravel(AA))
-#AB
-\end{axiom}
\end{axiom}

removed:
-BB:=groebner(ravel(BA));
-#BB

\begin{axiom}
J := jacobian(ravel(UA),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 'UA'. We are looking for
coefficients of the tensor 'Y' such that 'J' transforms 'U'
into 'UA=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

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

Proof
\begin{axiom}
in?(JP,ideal ravel AA)
in?(JP,ideal ravel KK)
in?(JP,ideal ravel AK)
in?(JP,ideal ravel BA)
\end{axiom}


An n-dimensional algebra is represented by a (1,2)-tensor viewed as an operator with two inputs i,j and one output k. For example in 2 dimensions

axiom
)library DEXPR
DistributedExpression is now explicitly exposed in frame initial
DistributedExpression will be automatically loaded when needed from
/var/zope2/var/LatexWiki/DEXPR.NRLIB/DEXPR
n:=2
 (1)
Type: PositiveInteger?
axiom
T:=CartesianTensor(1,n,FRAC POLY INT)
 (2)
Type: Domain
axiom
--T:=CartesianTensor(1,n,HDMP(concat[concat concat
--  [[[script(y,[[k],[j,i]])
--    for i in 1..n]
--      for j in 1..n]
--        for k in 1..n],
--          [script(u,[[i]]) for i in 1..n],
--            [script(v,[[i]]) for i in 1..n] ],FRAC INT))
Y:T := unravel(concat concat
[[[script(y,[[k],[j,i]])
for i in 1..n]
for j in 1..n]
for k in 1..n]
)
 (3)
Type: CartesianTensor?(1,2,Fraction(Polynomial(Integer)))

Given two vectors and

axiom
U:T := unravel([script(u,[[i]]) for i in 1..n])
 (4)
Type: CartesianTensor?(1,2,Fraction(Polynomial(Integer)))
axiom
V:T := unravel([script(v,[[i]]) for i in 1..n])
 (5)
Type: CartesianTensor?(1,2,Fraction(Polynomial(Integer)))

the tensor Y operates on their tensor product to yield a vector

axiom
W:=contract(contract(Y,3,product(U,V),1),2,3)
 (6)
Type: CartesianTensor?(1,2,Fraction(Polynomial(Integer)))

Diagram:

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


or in a more convenient notation:

axiom
W:=(Y*U)*V
 (7)
Type: CartesianTensor?(1,2,Fraction(Polynomial(Integer)))

The algebra Y is commutative if the following tensor (the commutator) is zero

axiom
KK:=Y-reindex(Y,[1,3,2])
 (8)
Type: CartesianTensor?(1,2,Fraction(Polynomial(Integer)))

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

axiom
KB:=groebner(ravel(KK))
 (9)
Type: List(Polynomial(Integer))

The algebra Y is anti-commutative if the following tensor (the commutator) is zero

axiom
AK:=Y+reindex(Y,[1,3,2])
 (10)
Type: CartesianTensor?(1,2,Fraction(Polynomial(Integer)))

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

axiom
KA:=groebner(ravel(AK))
 (11)
Type: List(Polynomial(Integer))

An algebra is associative if:

  Y I  =  I Y
Y       Y

Note: right figure is mirror image of left!

2  3 6   2 5  6      2  3  4
\/ /     \ \/        \ | /
\/   =   \/    =     \|/
\       /            |
4     1             1


In other words an algebra is associative if and only if the following (3,1)-tensor is zero.

axiom
AA := reindex(reindex(Y,[1,3,2])*reindex(Y,[1,3,2]),[1,4,3,2])-Y*Y; ravel(AA)
 (12)
Type: List(Fraction(Polynomial(Integer)))

The Jacobi identity requires the following tensor to be zero:

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


axiom
BA := AA - reindex(contract(Y,1,Y,2),[3,1,4,2]); ravel(BA)
 (13)
Type: List(Fraction(Polynomial(Integer)))

A scalar product is denoted by

axiom
U:T := unravel(concat
[[script(u,[[],[j,i]])
for i in 1..n]
for j in 1..n]
)
 (14)
Type: CartesianTensor?(1,2,Fraction(Polynomial(Integer)))

## Definition 1

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

    Y I = I Y
U     U


axiom
UA := reindex(reindex(U,[2,1])*reindex(Y,[1,3,2]),[3,2,1])-U*Y
 (15)
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.

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

The matrix K transforms the coefficients of the tensor Y into coefficients of the tensor UA. We are looking for coefficients of the tensor U such that K transforms Y into UA=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

The scalar product of all 2-dimensional pre-Frobenius algebras is symmetric.

Proof: Consider the determinant of the matrix K above.

axiom
Kd:DMP(concat map(variables,ravel(U)),FRAC INT) := factor determinant(K)
 (17)
Type: DistributedMultivariatePolynomial?([*002u11,*002u12,*002u21,*002u22],Fraction(Integer))

The scalar product must also be non-degenerate

axiom
Ud:DMP(concat map(variables,ravel(U)),FRAC INT) := determinant [[U[i,j] for j in 1..n] for i in 1..n]
 (18)
Type: DistributedMultivariatePolynomial?([*002u11,*002u12,*002u21,*002u22],Fraction(Integer))

therefore U must be symmetric.

axiom
nthFactor(Kd,1)
 (19)
Type: DistributedMultivariatePolynomial?([*002u11,*002u12,*002u21,*002u22],Fraction(Integer))
axiom
US:T := unravel(map(x+->subst(x,U[2,1]=U[1,2]),ravel U))
 (20)
Type: CartesianTensor?(1,2,Fraction(Polynomial(Integer)))

## Theorem 2

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

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

axiom
UAS:T := unravel(map(x+->subst(x,U[2,1]=U[1,2]),ravel UA))
 (21)
Type: CartesianTensor?(1,2,Fraction(Polynomial(Integer)))
axiom
--solve(ravel(UAS),removeDuplicates concat map(variables,ravel(US)))
KS := jacobian(ravel(UAS),concat(map(variables,ravel(Y)))::List Symbol);
Type: Matrix(Fraction(Polynomial(Integer)))
axiom
NS:=nullSpace(KS)
 (22)
Type: List(Vector(Fraction(Polynomial(Integer))))
axiom
SS:=map((x,y)+->x=y,concat map(variables,ravel Y),
entries reduce(+,[p[i]*NS.i for i in 1..#NS]))
 (23)
Type: List(Equation(Fraction(Polynomial(Integer))))
axiom
YS:T := unravel(map(x+->subst(x,SS),ravel Y))
 (24)
Type: CartesianTensor?(1,2,Fraction(Polynomial(Integer)))

This is a 4-parameter family of 2-d pre-Frobenius algebras with a given admissible (i.e. symmetric) scalar product.

axiom
UASS:T := unravel(map(x+->subst(x,SS),ravel UAS))
 (25)
Type: CartesianTensor?(1,2,Fraction(Polynomial(Integer)))

axiom
J := jacobian(ravel(UA),concat(map(variables,ravel(U)))::List Symbol);
Type: Matrix(Fraction(Polynomial(Integer)))
axiom
UU := transpose matrix [concat(map(variables,ravel(U)))::List Symbol];
Type: Matrix(Polynomial(Integer))
axiom
J::OutputForm * UU::OutputForm = 0
 (26)
Type: Equation(OutputForm?)

The matrix J transforms the coefficients of the tensor U into coefficients of the tensor UA. We are looking for coefficients of the tensor Y such that J transforms U into UA=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.

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) ];
Type: PolynomialIdeals?(Fraction(Integer),IndexedExponents?(Symbol),Symbol,Polynomial(Fraction(Integer)))
axiom
#generators(%)
 (27)
Type: PositiveInteger?

## Theorem 3

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

Proof

axiom
in?(JP,ideal ravel AA)
 (28)
Type: Boolean
axiom
in?(JP,ideal ravel KK)
 (29)
Type: Boolean
axiom
in?(JP,ideal ravel AK)
 (30)
Type: Boolean
axiom
in?(JP,ideal ravel BA)
 (31)
Type: Boolean