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

Hi there,

I'm quite enamoured with Cadabra's capabilty.

One thing that would be useful is being able to raise indices with an anti-symmetric objeect \epsilon_AB, \epsilon^AB

Right now if I set index behaviour to 'free', the canonicalise function assumes that

u^{A}v_{A} = u_{A}v^{A}

whereas in my line of work it is customary that:

u^{A}v_{A} = -u_{A}v^{A}. 

At the moment the only workaround I can think of is keeping all indices lowered and manually inserting \epsilon^AB everywhere.

I had a look at the source for an easy edit I could make and I also couldn't find one. Any suggestions?

Cheers

in Feature requests by (160 points)

1 Answer

+3 votes

Add the AntiCommuting property to the indices, so e.g.

{A,B}::Indices(position=fixed);
{A,B}::AntiCommuting;
ex:= v^A v_A - v_A v^A;
canonicalise(_);

which produces $2 v^A v_A$.

by (82.5k points)

Thank you very much!

Hi K. That's a great trick! Thank you for sharing.

...