The problem is that the required symmetry is a multiterm symmetry, and there are no known algorithms to canonicalize them in general. In this case, it is equivalent to the Bianchi identity, and I thought FullSimplification would work:
foo = CD[a][T[-a, -b]] + F[a, -b] maxeqn[-a];
foo // FullSimplification[]
but it does not. According to the documentation, "FullSimplification[][expr] tries to simplify expr as much as possible, taking Bianchi identities into account and sorting covariant derivatives" but maybe it only takes into account the contracted Bianchi identities. You can check the code to see what it does or maybe Teake might chip in. You can also take a look at the new TInvar package (
https://groups.google.com/g/xAct/c/dl79OFhtkBc), which I haven't had time to check yet.
In any case, here you have two xAct solutions to your question:
1.
foo = CD[a][T[-a, -b]] + F[a, -b] maxeqn[-a];
foo // ContractMetric // Simplification // ChangeCovD //
ToCanonical
2.
foo = CD[a][T[-a, -b]] + F[a, -b] maxeqn[-a];
foo // ContractMetric // Simplification // SortCovDs //
ChangeCurvature // ToCanonical
In both examples, ToCanonical will complain about using PD, which is not compatible with the metric. You can solve that either by adding //Quiet at the end (which simply hides the messages) or, better, by adding the option UseMetricOnVBundle -> None:
foo = CD[a][T[-a, -b]] + F[a, -b] maxeqn[-a];
foo // ContractMetric // Simplification // ChangeCovD //
ToCanonical[#, UseMetricOnVBundle -> None] &