For example dddg, the third derivative of the metric tensor, in dimension $4$.

I need to state that it is symmetric in the first two indices and symmetric in the last three indices.

  • $\begingroup$ What do you mean by "state" here, and how will you be using the statement? I think how exactly you'll want to state it depends a lot on how you plan to use the statement! $\endgroup$
    – thorimur
    Commented May 5, 2020 at 7:52
  • $\begingroup$ I want to use it as an Assumption and TensorReduce an abstract tensor equation. $\endgroup$ Commented May 5, 2020 at 7:54

1 Answer 1


From a small note in the documentation for Arrays,

The symmetry sym can be given in several forms. First, it can be given as expressions like Symmetric[{s_i, ..., s_k}] or Antisymmetric[{s_i,...,s_k}], with the slots s_i being different positive integers between 1 and the rank r. It can also be given as a list of generators of the form {perm,\[Phi]}, representing that the array stays invariant under simultaneous transposition by the permutation perm and multiplication by the root of unity \[Phi]. In addition, it can be given as the internal direct product {sym_1, sym_2, ...} of those forms.

So, we should simply be able to do

$Assumptions = {dddg ∈ Arrays[{4,4,4,4,4}, {Symmetric[{1, 2}], Symmetric[{3,4,5}]}

And indeed, TensorTranspose[dddg, {2, 1, 4, 5, 3}] // TensorReduce, for example, yields dddg.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.