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

Edit detail for SandBox Grassmann Algebra Is Frobenius In Many Ways revision 2 of 8

1 2 3 4 5 6 7 8
Editor: Bill Page
Time: 2011/04/05 09:50:48 GMT-7
Note: draft

changed:
-T:=CartesianTensor(1,n,FRAC POLY INT)
T:=CartesianTensor(1,dim,FRAC POLY INT)

changed:
-    for i in 1..diim]
    for i in 1..dim]

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

changed:
-yy := transpose matrix [concat(map(variables,ravel(Y)))::List Symbol];
-K::OutputForm * yy::OutputForm = 0
--yy := transpose matrix [concat(map(variables,ravel(Y)))::List Symbol];
--K::OutputForm * yy::OutputForm = 0

changed:
-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..dim] for i in 1..dim]
-\end{axiom}
-
-The basis of the null space of the 'K' matrix
-\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 family of pre-Frobenius algebras
-\begin{axiom}
---test(unravel(map(x+->subst(x,SS),ravel YUS))$T=0*YU)
-\end{axiom}
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..dim] for i in 1..dim]
  \end{axiom}

The basis of the null space of the 'K' matrix::

  !\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 family of pre-Frobenius algebras::

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

changed:
-uu := transpose matrix [concat(map(variables,ravel(U)))::List Symbol];
-J::OutputForm * uu::OutputForm = 0
--uu := transpose matrix [concat(map(variables,ravel(U)))::List Symbol];
--J::OutputForm * uu::OutputForm = 0

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


2^n-dimensional vector space representing Grassmann algebra with n generators

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

axiom
n:=2

\label{eq1}2(1)
Type: PositiveInteger?
axiom
dim:=2^n

\label{eq2}4(2)
Type: PositiveInteger?
axiom
T:=CartesianTensor(1,dim,FRAC POLY INT)

\label{eq3}\hbox{\axiomType{CartesianTensor}\ } (1, 4, \hbox{\axiomType{Fraction}\ } (\hbox{\axiomType{Polynomial}\ } (\hbox{\axiomType{Integer}\ })))(3)
Type: Type
axiom
Y:T := unravel(concat concat
  [[[script(y,[[i,j],[k]])
    for i in 1..dim]
      for j in 1..dim]
        for k in 1..dim]
          )

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

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

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

\label{eq5}\left[ 
\begin{array}{cccc}
{u^{1, \: 1}}&{u^{1, \: 2}}&{u^{1, \: 3}}&{u^{1, \: 4}}
\
{u^{2, \: 1}}&{u^{2, \: 2}}&{u^{2, \: 3}}&{u^{2, \: 4}}
\
{u^{3, \: 1}}&{u^{3, \: 2}}&{u^{3, \: 3}}&{u^{3, \: 4}}
\
{u^{4, \: 1}}&{u^{4, \: 2}}&{u^{4, \: 3}}&{u^{4, \: 4}}
(5)
Type: CartesianTensor?(1,4,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{eq6}
  \Phi = \{ \phi^{ijk} = {y^e}_{ij} u_{ek} - u_{ie} {y_e}^{jk} \}
  (6)
(three-point function) is zero.

axiom
YU := reindex(reindex(U,[2,1])*reindex(Y,[1,3,2]),[3,2,1])-U*Y;
Type: CartesianTensor?(1,4,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(YU),concat(map(variables,ravel(Y)))::List Symbol);
Type: Matrix(Fraction(Polynomial(Integer)))

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.

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..dim] for i in 1..dim]
  \end{axiom}

The basis of the null space of the K matrix:

  \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 family of pre-Frobenius algebras:

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

Alternatively we may consider

axiom
J := jacobian(ravel(YU),concat(map(variables,ravel(U)))::List Symbol);
Type: Matrix(Fraction(Polynomial(Integer)))

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}