expand_delta
Expand generalised Kronecker delta symbols
In Cadabra the KroneckerDelta
property indicates a generalised Kronecker
delta symbol. In order to expand it into standard two-index Kronecker deltas, use
expand_delta
, as in the example below.\delta{#}::KroneckerDelta;
Attached property KroneckerDelta to δ(#).
ex:=\delta^{a}_{b}^{c}_{d};
δabcd
expand_delta(_);
12δabδcd−12δcbδad
ex:=\delta^{a}_{m}^{l}_{n} \delta_{a}^{c}_{b}^{d};
δamlnδacbd
expand_delta(_);
distribute(_);
eliminate_kronecker(_);
canonicalise(_);
(12δamδln−12δlmδan)(12δacδbd−12δbcδad)
14δamδlnδacδbd−14δamδlnδbcδad−14δlmδanδacδbd+14δlmδanδbcδad
14δlnδmcδbd−14δlnδbcδmd−14δlmδncδbd+14δlmδbcδnd
14δbdδcmδln−14δbcδdmδln−14δbdδcnδlm+14δbcδdnδlm
Note that it is in principle possible to get a result similar to the expanded form by using the
Young projector and then canonicalising, but this is more expensive:
ex:=\delta^{a}_{b}^{c}_{d};
δabcd
young_project_tensor(_);
δabcd