|
|
last edited 13 years ago by Bill Page |
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 23:29:55 GMT-8 |
||
Note: clean up notation |
changed: -An n-dimensional algebra is represented by a (1,2)-tensor An n-dimensional algebra is represented by a (2,1)-tensor changed: -Given two vectors $U=\{ u_i \}$ and $V=\{ v_j \}$ -\begin{axiom} -U:T := unravel([script(u,[[i]]) for i in 1..n]) -V:T := unravel([script(v,[[i]]) for i in 1..n]) -\end{axiom} -the tensor 'Y' operates on their tensor product to -yield a vector $W=\{ w_k = {y_k}^{ji} u_i v_j \}$ -\begin{axiom} -W:=contract(contract(Y,3,product(U,V),1),2,3) -\end{axiom} -Diagram:: - - U V - 2i 3j 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]) \end{axiom} the tensor $Y$ operates on their tensor product to yield a vector $R=\{ r_k = {y_k}^{ji} p_i q_j \}$ \begin{axiom} R:=contract(contract(Y,3,product(P,Q),1),2,3) \end{axiom} Pictorially:: Q P 2j 3i changed: - W - -or in a more convenient notation: -\begin{axiom} -W:=(Y*U)*V -\end{axiom} -The algebra 'Y' is commutative if the following tensor R 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 $Y$ is commutative if the tensor $\Pi = \{ {\pi_k}^{ji} = {y_k}^{ji}-{y^k}^{ij} \}$ changed: -KK:=Y-reindex(Y,[1,3,2]) XY:=Y-reindex(Y,[1,3,2]) changed: -KB:=groebner(ravel(KK)) -\end{axiom} -The algebra 'Y' is anti-commutative if the following tensor groebner(ravel(XY)) \end{axiom} The algebra 'Y' is anti-commutative if the tensor $\Xi = \{ {\xi_k}^{ji} = {y_k}^{ji}+{y^k}^{ij} \}$ changed: -AK:=Y+reindex(Y,[1,3,2]) XX:=Y+reindex(Y,[1,3,2]) changed: -KA:=groebner(ravel(AK)) groebner(ravel(XX)) changed: -$A=\{ {a_s}^{kji} = {y_s}^{kr} {y_r}^{ji} - {y_r}^{kj} {y_s}^{ri} \}$ $\Psi = \{ {\psi_s}^{kji} = {y_s}^{kr} {y_r}^{ji} - {y_s}^{ri} {y_r}^{kj} \}$ changed: -AA := reindex(reindex(Y,[1,3,2])*reindex(Y,[1,3,2]),[1,4,3,2])-Y*Y; ravel(AA) -\end{axiom} - -The Jacobi identity requires the following tensor to be zero:: YY := reindex(reindex(Y,[1,3,2])*reindex(Y,[1,3,2]),[1,4,3,2])-Y*Y; ravel(YY) \end{axiom} The Jacobi identity requires the following (3,1)-tensor $\Phi = \{ {\phi_s}^{kji} = {y_s}^{kr} {y_r}^{ji} - {y_s}^{ri} {y_r}^{kj} - {y_s}^{ri} {y_r}^{jk} \}$ to be zero:: changed: -BA := AA - reindex(contract(Y,1,Y,2),[3,1,4,2]); ravel(BA) -\end{axiom} -A scalar product is denoted by $U = \{ u^{ij} \}$ YYX := YY - reindex(contract(Y,1,Y,2),[3,1,4,2]); ravel(XYY) \end{axiom} A scalar product is denoted by the (2,0)-tensor $U = \{ u^{ij} \}$ changed: - We say that the scalar product is "associative" if the following - tensor equation holds:: We say that the scalar product is "associative" if the tensor equation holds:: changed: -\begin{axiom} -UA := reindex(reindex(U,[2,1])*reindex(Y,[1,3,2]),[3,2,1])-U*Y In other words, if the following tensor is zero $ \Omega = \{ \omega^{kji} = {Y_r}^{kj} U^{ri} - U^{kr} {Y_r}^{ji} \} $ \begin{axiom} YU := reindex(reindex(U,[2,1])*reindex(Y,[1,3,2]),[3,2,1])-U*Y changed: -K := jacobian(ravel(UA),concat(map(variables,ravel(Y)))::List Symbol); -YY := transpose matrix [concat(map(variables,ravel(Y)))::List Symbol]; -K::OutputForm * YY::OutputForm = 0 -\end{axiom} -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'. K := jacobian(ravel(YU),concat(map(variables,ravel(Y)))::List Symbol); yy := transpose matrix [concat(map(variables,ravel(Y)))::List Symbol]; K::OutputForm * yy::OutputForm = 0 \end{axiom} The matrix 'K' transforms the coefficients of the tensor $Y$ into coefficients of the tensor $\Omega$. We are looking for coefficients of the tensor $U$ such that 'K' transforms the tensor $Y$ into $\Omega=0$ for any $Y$. changed: -UAS:T := unravel(map(x+->subst(x,U[2,1]=U[1,2]),ravel UA)) ---solve(ravel(UAS),removeDuplicates concat map(variables,ravel(US))) -KS := jacobian(ravel(UAS),concat(map(variables,ravel(Y)))::List Symbol); YUS:T := unravel(map(x+->subst(x,U[2,1]=U[1,2]),ravel YU)) KS := jacobian(ravel(YUS),concat(map(variables,ravel(Y)))::List Symbol); changed: -UASS:T := unravel(map(x+->subst(x,SS),ravel UAS)) -\end{axiom} - -\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'. UASS:T := unravel(map(x+->subst(x,SS),ravel YUS)) \end{axiom} \begin{axiom} J := jacobian(ravel(YU),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 $\Omega$. We are looking for coefficients of the tensor $Y$ such that 'J' transforms the tensor $U$ into $\Omega=0$ for any $U$. changed: -in?(JP,ideal ravel AA) -in?(JP,ideal ravel KK) -in?(JP,ideal ravel AK) -in?(JP,ideal ravel BA) -\end{axiom} in?(JP,ideal ravel YY) -- associative in?(JP,ideal ravel XY) -- commutative in?(JP,ideal ravel XX) -- anti-commutative in?(JP,ideal ravel YYX) -- Jacobi identity \end{axiom}
An n-dimensional algebra is represented by a (2,1)-tensor
viewed as an operator with two inputs i,j
and one
output k
. For example in 2 dimensions
n:=2
(1) |
T:=CartesianTensor(1,n, FRAC POLY INT)
(2) |
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) |
Given two vectors and
P:T := unravel([script(p,[[i]]) for i in 1..n])
(4) |
Q:T := unravel([script(q,[[i]]) for i in 1..n])
(5) |
the tensor operates on their tensor product to yield a vector
R:=contract(contract(Y,3, product(P, Q), 1), 2, 3)
(6) |
Pictorially:
Q P 2j 3i \ / | 1k R
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.
R:=(Y*P)*Q
(7) |
An algebra is commutative if the tensor (the commutator) is zero:
Y - X Y
XY:=Y-reindex(Y,[1, 3, 2])
(8) |
A basis for the ideal defined by the coefficients of the commutator is given by:
groebner(ravel(XY))
(9) |
The algebra Y
is anti-commutative if the tensor
(the anti-commutator) is zero:
Y + X Y
XX:=Y+reindex(Y,[1, 3, 2])
(10) |
A basis for the ideal defined by the coefficients of the anti-commutator is given by:
groebner(ravel(XX))
(11) |
An algebra is associative if:
Y = 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.
YY := reindex(reindex(Y,[1, 3, 2])*reindex(Y, [1, 3, 2]), [1, 4, 3, 2])-Y*Y; ravel(YY)
(12) |
The Jacobi identity requires the following (3,1)-tensor to be zero:
Y - Y - X Y Y Y Y 2 3 6 2 5 6 2 6 3 \ / / \ \ / \ \/ \/ / \ \/ \/\ \/ - \/ - \/ \ / \ 4 1 4
YYX := YY - reindex(contract(Y,1, Y, 2), [3, 1, 4, 2]); ravel(XYY)
There are 1 exposed and 0 unexposed library operations named ravel having 1 argument(s) but none was determined to be applicable. Use HyperDoc Browse,or issue )display op ravel 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 ravel with argument type(s) Variable(XYY)
Perhaps you should use "@" to indicate the required return type,or "$" to specify which version of the function you need.
A scalar product is denoted by the (2,0)-tensor
U:T := unravel(concat [[script(u,[[], [j, i]]) for i in 1..n] for j in 1..n] )
(13) |
We say that the scalar product is "associative" if the tensor equation holds:
Y = Y U U
In other words, if the following tensor is zero
YU := reindex(reindex(U,[2, 1])*reindex(Y, [1, 3, 2]), [3, 2, 1])-U*Y
(14) |
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.
)expose MCALCFN
MultiVariableCalculusFunctions is now explicitly exposed in frame initial K := jacobian(ravel(YU),concat(map(variables, ravel(Y)))::List Symbol);
yy := transpose matrix [concat(map(variables,ravel(Y)))::List Symbol];
K::OutputForm * yy::OutputForm = 0
(15) |
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.
The scalar product of all 2-dimensional pre-Frobenius algebras is symmetric.
Proof: Consider the determinant of the matrix K
above.
Kd:DMP(concat map(variables,ravel(U)), FRAC INT) := factor determinant(K)
(16) |
The scalar product must also be non-degenerate
Ud:DMP(concat map(variables,ravel(U)), FRAC INT) := determinant [[U[i, j] for j in 1..n] for i in 1..n]
(17) |
therefore U must be symmetric.
nthFactor(Kd,1)
(18) |
US:T := unravel(map(x+->subst(x,U[2, 1]=U[1, 2]), ravel U))
(19) |
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
YUS:T := unravel(map(x+->subst(x,U[2, 1]=U[1, 2]), ravel YU))
(20) |
KS := jacobian(ravel(YUS),concat(map(variables, ravel(Y)))::List Symbol);
NS:=nullSpace(KS)
(21) |
SS:=map((x,y)+->x=y, concat map(variables, ravel Y), entries reduce(+, [p[i]*NS.i for i in 1..#NS]))
(22) |
YS:T := unravel(map(x+->subst(x,SS), ravel Y))
(23) |
This is a 4-parameter family of 2-d pre-Frobenius algebras with a given admissible (i.e. symmetric) scalar product.
UASS:T := unravel(map(x+->subst(x,SS), ravel YUS))
(24) |
J := jacobian(ravel(YU),concat(map(variables, ravel(U)))::List Symbol);
uu := transpose matrix [concat(map(variables,ravel(U)))::List Symbol];
J::OutputForm * uu::OutputForm = 0
(25) |
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.
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(%)
(26) |
A 2-d algebra is pre-Frobenius if it is associative, commutative, anti-commutative or if it satisfies the Jacobi identity.
Proof
in?(JP,ideal ravel YY) -- associative
(27) |
in?(JP,ideal ravel XY) -- commutative
(28) |
in?(JP,ideal ravel XX) -- anti-commutative
(29) |
in?(JP,ideal ravel YYX) -- Jacobi identity
(30) |