For some gravity theory coupled to a scalar field $\phi$, I obtain, in xAct, the equations of motion

$$\mathcal{E}_{ab}=R_{ab} (\nabla_{c}\phi \nabla^{c}\phi) + 2 R \nabla_{a}\phi\nabla_{b}\phi + 6 \nabla_{b}\nabla_{a}\phi \nabla_{c}\nabla^{c}\phi - 6 R_{bc} \nabla_{a}\phi \nabla^{c}\phi - 2 \nabla_{a}\nabla_{c}\nabla_{b}\phi \nabla^{c}\phi+\ldots$$

I would like to systematically remove all the higher derivative terms of the scalar field $\nabla_a\nabla_b\phi$ and beyond, since there are many of this type in the ellipsis. I have tried with MakeRule but I didn't manage to find a suitable expression.


1 Answer 1


Does something like this work?

expr /. cd[_][cd[_][phi[]]] -> 0

for your covariant derivative cd and scalar field phi. This will remove second-order derivatives, but third-order and higher-order derivatives are all derivatives of second-order derivatives, so only first-order derivatives of phi[] will remain.

  • $\begingroup$ Thanks for the answer. I guess if I want to remove only boxes of Phi I can substitute the argument of cd with the corresponding contracted indices? $\endgroup$ Apr 6, 2021 at 7:10
  • $\begingroup$ Yes, try something like the pair {cd[a_]@cd[-a_]@phi[] -> 0, cd[-a_]@cd[a_]@phi[]] -> 0}. There is no automatic reordering of contracted indices in xTensor, so you need both rules. The fact that we use named patterns a_ indicates that you only want to eliminate cases with contracted indices, as in the box operator. $\endgroup$
    – jose
    Apr 7, 2021 at 5:03
  • $\begingroup$ @jose which package was used in this case? $\endgroup$
    Jun 9, 2021 at 15:29
  • $\begingroup$ @ABCDEMMM Computations of this type, only involving abstract tensors (i.e. not requiring frames) can be done just loading xTensor. $\endgroup$
    – jose
    Jun 9, 2021 at 17:39

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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