Tensor monomials and multi-term symmetries
Cadabra contains powerful algorithms to bring any tensorial expression into a canonical form. For multi-term symmetries, cadabra relies on Young tableau methods to generate a canonical form for tensor monomials. As an example, consider the following identity, WpqrsWptruWtvqwWuvsw−WpqrsWpqtuWrvtwWsvuw=WmnabWnpbcWmscdWspda−14WmnabWpsbaWmpcdWnsdc, in which Wmnpq is a Weyl tensor (all contracted indices have been written as subscripts for easier readability). Proving this identity requires multiple uses of the Ricci cyclic identity Wm[npq]=0. With Cadabra's Young tableau methods the proof is simple. We first declare our objects and input the identity which we want to prove,{m,n,p,q,r,s,t,u,v,w,a,b,c,d,e,f}::Indices(vector).
W_{m n p q}::WeylTensor.
ex:= W_{p q r s} W_{p t r u} W_{t v q w} W_{u v s w}
- W_{p q r s} W_{p q t u} W_{r v t w} W_{s v u w}
- W_{m n a b} W_{n p b c} W_{m s c d} W_{s p d a}
+ (1/4) W_{m n a b} W_{p s b a} W_{m p c d} W_{n s d c};
WpqrsWptruWtvqwWuvsw−WpqrsWpqtuWrvtwWsvuw−WmnabWnpbcWmscdWspda+14WmnabWpsbaWmpcdWnsdc
Using a Young projector to project all Weyl tensors onto a form which shows the Ricci symmetry in
manifest form is done with
young_project_tensor(_, modulo_monoterm=True);
(23Wpqrs−13Wpsqr+13Wprqs)(23Wptru+13Wpurt+13Wprtu)(23Wqwtv+13Wqvtw−13Wqtvw)(23Wswuv+13Wsvuw−13Wsuvw)−(23Wpqrs−13Wpsqr+13Wprqs)(23Wpqtu−13Wpuqt+13Wptqu)(23Wrvtw+13Wrwtv+13Wrtvw)(23Wsvuw+13Wswuv+13Wsuvw)−(23Wabmn−13Wanbm+13Wambn)(23Wbcnp−13Wbpcn+13Wbncp)(23Wcdms−13Wcsdm+13Wcmds)(23Wadps−13Wasdp+13Wapds)+14(23Wabmn−13Wanbm+13Wambn)(−23Wabps−13Wapbs+13Wasbp)(23Wcdmp−13Wcpdm+13Wcmdp)(−23Wcdns−13Wcnds+13Wcsdn)
This algorithm knows that the Weyl tensor sits in the '2×2 box' representation of the rotation
group SO(d), and effectively leads to a replacement
Wmnpq→23Wmnpq−13Wmqnp+13Wmpnq.
We then expand the products of sums and canonicalise once more using mono-term symmetries,
distribute(_)
canonicalise(_)
rename_dummies(_);
0