|
|
|
last edited 14 years ago by Bill Page |
| 1 2 3 4 5 6 7 8 | ||
|
Editor: Bill Page
Time: 2011/04/05 14:25:04 GMT-7 |
||
| Note: AntiSymm | ||
added:
Generate structure constants for Grassmann Algebra
\begin{axiom}
-- Construct a basis for the Grassmann algebra
GA:=AntiSymm(INT,[subscript(g,[i]) for i in 1..n])
B:=[exp(reverse concat([0 for i in 1..n-length(x)],wholeRagits(x::RADIX(2))))$GA for x in 0..dim-1]
-- Compute the multiplication table
M:=matrix [[B.i * B.j for j in 1..dim] for i in 1..dim]
-- The structure constants of the algebra are given by the coefficients
-- of the polynomials in the multiplication table with respect to the basis
S(y)==map(x+->coefficient(x,y),M)
Yg:T:=unravel concat concat(map(S,B)::List List List FRAC POLY INT)
\end{axiom}
-dimensional vector space representing Grassmann algebra with
generators
An algebra is represented by a (2,1)-tensor
viewed as a linear operator with two inputs
and one
output
. For example:
n:=2
| (1) |
dim:=2^n
| (2) |
T:=CartesianTensor(1,dim, FRAC POLY INT)
| (3) |
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] )
![]() | (4) |
Generate structure constants for Grassmann Algebra
-- Construct a basis for the Grassmann algebra GA:=AntiSymm(INT,[subscript(g, [i]) for i in 1..n])
| (5) |
B:=[exp(reverse concat([0 for i in 1..n-length(x)],wholeRagits(x::RADIX(2))))$GA for x in 0..dim-1]
| (6) |
-- Compute the multiplication table M:=matrix [[B.i * B.j for j in 1..dim] for i in 1..dim]
![]() | (7) |
-- The structure constants of the algebra are given by the coefficients -- of the polynomials in the multiplication table with respect to the basis S(y)==map(x+->coefficient(x,y), M)
Yg:T:=unravel concat concat(map(S,B)::List List List FRAC POLY INT)
Compiling function S with type AntiSymm(Integer,[*01g1, *01g2]) -> Matrix(Integer)
![]() | (8) |
A scalar product is denoted by the (2,0)-tensor
U:T := unravel(concat [[script(u,[[], [j, i]]) for i in 1..dim] for j in 1..dim] )
![]() | (9) |
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
| (10) |
YU := reindex(reindex(U,[2, 1])*reindex(Y, [1, 3, 2]), [3, 2, 1])-U*Y;
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
or we
may consider an scalar product U as given, and look for all
algebras
such that the scalar product is associative.
This problem can be solved using linear algebra.
)expose MCALCFN
MultiVariableCalculusFunctions is now explicitly exposed in frame initial K := jacobian(ravel(YU),concat(map(variables, ravel(Y)))::List Symbol);
The matrix K transforms the coefficients of the tensor
into coefficients of the tensor
. We are looking for
coefficients of the tensor
such that K transforms the
tensor
into
for any
.
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
J := jacobian(ravel(YU),concat(map(variables, ravel(U)))::List Symbol);
The matrix J transforms the coefficients of the tensor
into coefficients of the tensor
. We are looking for
coefficients of the tensor
such that J transforms the
tensor
into
for any
.
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}