Welcome to Cadabra Q&A, where you can ask questions and receive answers from other members of the community.
+1 vote

I have the need for anti-commuting derivatives and objects so am trying to use anti-commuting indices instead of making the objects/derivatives themselves anti-commuting. product_rule() works as expected\, but I've found issues in sort_product() with this approach.

For example see the following code where I try sorting with various combinations of anti-commuting spinor indices and commuting vector indices.

{\alpha, \beta, \rho, \lambda}::Indices(spinor, position=independent).
{\alpha, \beta, \rho, \lambda}::AntiCommuting.
{a, b, c}::Indices(vector, position=free).
\nabla{#}::Derivative.
{X{#}}::Depends(\nabla{#}).

zeroDer := X^{\alpha} X^{\beta} + X^{\beta} X^{\alpha};
sort_product(_);

oneDerSpinor := \nabla_{\alpha}(X^{\beta}) X^{\rho} + X^{\rho}\nabla_{\alpha}(X^{\beta});
sort_product(_);

oneDerVector := \nabla_{a}(X^{\beta}) X^{\rho} + X^{\rho}\nabla_{a}(X^{\beta});
sort_product(_);

twoDerSpinor := \nabla_{\lambda}(\nabla_{\alpha}(X^{\beta})) X^{\rho} + X^{\rho}\nabla_{\lambda}(\nabla_{\alpha}(X^{\beta}));
sort_product(_);

twoDerVector:= \nabla_{a}(\nabla_{b}(X^{\beta})) X^{\rho} + X^{\rho}\nabla_{a}(\nabla_{b}(X^{\beta}));
sort_product(_);

You'll find that some of these combine correctly while some do not. If I attach AntiCommuting to X, it fixes some while breaking others. If my approach is incorrect, I'd greatly appreciate any other suggestions on how to handle AntiCommuting derivatives. I'm on macOs using Cadabra 2.3.8.

Thank you! Greg

in Bug reports by (130 points)

Please log in or register to answer this question.

...