# Neglecting higher order derivatives terms in xAct

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.

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.

• 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? Apr 6, 2021 at 7:10
• 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.
– jose
Apr 7, 2021 at 5:03
• @jose which package was used in this case? Jun 9, 2021 at 15:29
• @ABCDEMMM Computations of this type, only involving abstract tensors (i.e. not requiring frames) can be done just loading xTensor.
– jose
Jun 9, 2021 at 17:39