# How can I take the divergence of a symbolic vector? [duplicate]

I would like to compute expressions that have the following form:

$$\left(\partial_{p_1} - \partial_{p_2}\right)^2 \left(\partial_{p_1} - \partial_{p_2}\right)^2 \frac{(p_1-p_2)\cdot(p_3-p_4)}{p_1^2p_2^2p_3^2p_4^2},\tag{1}$$

where $$p_i$$ are $$4$$-vectors in Euclidean space. Since I have many similar terms, I would like to define the $$p$$'s symbolically without having to give the components. I did so in the following way:

$Assumptions = (p1 | p2 | p3 | p4) \[Element] Vectors[4, Reals];  Then I tried as a first test to reproduce $$\partial_{p_1} \left( p_1 \cdot p_2 \right) = p_2 \tag{2}$$ by typing Div[p1.p2, p1]  but that did not work. What would be the best way to deal with computations such as the one given in $$(1)$$? I should also add that eq. $$(1)$$ is in the context of checking and later proving an identity, so anything that could help me to check if lhs==rhs is true is relevant. • This is unfortunately rather far from my expertise, but my limited understanding is that those assumptions are taken into consideration by symbolic tensor operations (see this tutorial on symbolic tensor operations). I don't think that Div is aware of them. Commented Nov 17, 2019 at 23:31 • Commented Nov 18, 2019 at 19:47 ## 1 Answer You could define a function that generates the explicit components for you: ClearAll[p] p[i_] := Array[HoldForm[p][i], 4]  so you can use p[2] for your $$p_2$$ vector: p[2] (* Out: {p[2][1], p[2][2], p[2][3], p[2][4]} *)  With that in hand we can try your simple equality; perhaps I am misunderstanding your notation here, but I am not sure how your equality holds as you wrote it: Div[p[1] p[2], p[1]] (* Out: p[2][1] + p[2][2] + p[2][3] + p[2][4] *)  • Thanks for your answer! I am not sure how useful that would be if the answer is always expanded in components, but I'll give it a try! – Pxx Commented Nov 17, 2019 at 23:43 • Regarding the computation, I was meaning$\partial_{p_1} (p_1 \cdot p_2) = \left(\partial_{p_1^1},\partial_{p_1^2},\partial_{p_1^3},\partial_{p_1^4}\right) \sum p_1^i p_2^i = \left(p_2^1,p_2^2,p_2^3,p_2^4\right) = p_2$, with the indices at the top denoting the$i\$-th component of the vector.
– Pxx
Commented Nov 17, 2019 at 23:46