EliminateDueSymmetries
removes parts of expression, which are zero because of the symmetries.EliminateDueSymmetries
does not perform any structural simplifications (expand, eliminate metrics etc.), it is just using symmetries of expression. Simplify expression where symmetric tensor is contracted with antisymmetric:
setAntiSymmetric 'f_mn' //g_mn is symmetric metric tensor println EliminateDueSymmetries >> 'f_mn * g^mn'.t
> 0
EliminateDueSymmetries
also checks symmetries that follows from the structure of expressions:
println EliminateDueSymmetries >> '(t_amn - t_anm) * g^mn'.t
> 0
EliminateDueSymmetries
works with expressions with arbitrary complexity:
addSymmetry 'R_abc', -[1, 0, 2].p addSymmetry 'A_ab', [1, 0].p def t = '((R_abc*A_de + R_bde*A_ac)*A^ce + R_adb)*(A_mf*R^mad - A_fm*R^dma)'.t println EliminateDueSymmetries >> t
> 0
EliminateDueSymmetries
applies to each part of expression:
def t = 'F_mn + g_mn*(A^mn - A^nm)'.t println EliminateDueSymmetries >> t
> F_mn