Re: Nested Commutators
- To: mathgroup at smc.vnet.net
- Subject: [mg58144] Re: Nested Commutators
- From: rolf at mertig.com
- Date: Mon, 20 Jun 2005 05:21:19 -0400 (EDT)
- References: <d90tqp$9di$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Hi, a basic implementation of non-commutative algebra has been part of FeynCalc for a while. You can look at the documentation here: http://www.feyncalc.org/FeynCalcBook/Commutator/ http://www.feyncalc.org/FeynCalcBook/DotSimplify/ The implementation is straightforward and not terribly efficient. Feel free to check out the source code. Your examples can be done as follows: <<HighEnergyPhysics`FeynCalc` ; cm = Commutator; DeclareNonCommutative[A, B, C, D, X, Y]; cm[A, B] = B; cm[A, C] = C; cm[B, C] = D; cm[A, D] = 0; cm[B, D] = 0; cm[C, D] = 0; Print["[A, [A, [A, B]]] = ", DotSimplify[ cm[A, cm[A, cm[A, B]]] ] ]; Print["[A, [B, C]] = ", DotSimplify[ cm[A, cm[B, C]] ] ]; WriteString["stdout", "[X, [Y, [X, Y]]] - [Y, [X, [Y, X]]] - [[X, [Y, X]], Y] = \n", t = DotSimplify[ cm[X, cm[Y, cm[X, Y]]] - cm[Y, cm[X, cm[Y, X]]] - cm[cm[X, cm[Y,X]],Y] ], "\n\n" ]; WriteString["stdout", "[Y, [X, [X, Y]]] = \n", r = DotSimplify[ cm[ Y, cm[X, cm[X,Y]]] ], "\n\n" ]; Print[r-t]; In[1]:= <<c.m [A, [A, [A, B]]] = B [A, [B, C]] = 0 [X, [Y, [X, Y]]] - [Y, [X, [Y, X]]] - [[X, [Y, X]], Y] = -X . X . Y . Y + 2 X . Y . X . Y - 2 Y . X . Y . X + Y . Y . X . X [Y, [X, [X, Y]]] = -X . X . Y . Y + 2 X . Y . X . Y - 2 Y . X . Y . X + Y . Y . X . X 0 (* ************************* *) Best regards, Rolf Mertig GluonVision GmbH Berlin http://www.gluonvision.com http://www.feyncalc.org