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

EDIT: ealier I gave bad example, so let me again write post with proper ones.

I find quite problematic using generalized delta. For example:

{a,b,c,d,m,n,s}::Indices.
{a,b,c,d,m,n,s}::Integer(1..4).
\delta{#}::KroneckerDelta.

\epsilon_{a b c d}::EpsilonTensor(delta=\delta).

delta1:=\delta_{a b c d};
expand_delta(_);

delta2:=\delta_{a c b d};
expand_delta(_);

delta3:=\delta^{a b}_{c d};
expand_delta(_);

gives screen

I would expect that \delta_{abcd} would give me middle outcome. What I'm missing?

Ps. I use cloud cadabra.

in General questions by (320 points)
edited by

1 Answer

+1 vote

The help for KroneckerDelta states that indices are 'paired' in the way it comes out here. It is perhaps more transparent if you write upper and lower indices, so

2δabcd=δabδcdδcbδad.

Your version just has all indices moved to subscript position.

It's all a matter of convention of course (there's nothing wrong with defining things 'your' way), but this is the convention Cadabra uses.

by (85.9k points)
...