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

I use the following code provided in the tutorial to convert a product of epsilon tensors to generalised delta functions, and the code works for \epsilon{a b c}\epsilon{a b c} but it fails when I tried to use \epsilon{a b c} \epsilon{a d e}. It just outputs the same input without evaluating. Here are the inputs

\epsilon_{a b c}::EpsilonTensor(delta=\delta);
ex:=\epsilon_{a b c} \epsilon_{a d e}; 

The output for the last command above is:


without converting to the expect product of two \delta's.

This problem persists for all \epsilon products, for example:

\epsilon_{m n p q r s}::EpsilonTensor(delta=\delta);
\xi_{a b}::AntiSymmetric;
ex:=\epsilon_{l q r s a b} \xi_{a b} \epsilon_{p u v l c d}\xi_{c d};

The output for the last line above is the same as the Latex expression for "ex", namely

\epsilon_{l q r s a b} \xi_{a b} \epsilon_{p u v l c d}\xi_{c d}

I am not sure whether this is a bug ? I am using a terminal windows on MacOS Mojave 10.14.6. I tried to attach a screenshot showing the problem here but there is no option for me to attach a screenshot. I hope my description is not too confusing. Thanks in advance for any help possible.

asked in Bug reports by

1 Answer

+2 votes
Best answer

The problem is that you are using indices on the epsilon symbols which are not part of the index set. In your first example, if you add the e index to the set by writing, instead of the first two lines,


then it works. In the second example, you need to add l, u, v in order to make it work.

answered by (57.2k points)

Thank you. That does the trick. Stupid of me not to think of that.

XD We all have happened through that!