# Leibniz rule for covariant derivative

I've been learning about the covariant derivative and I have some doubts.

This answer suggests that $$\nabla_{\mathbf{u}} T = \nabla T (\mathbf{u})$$, where $$T$$ is a tensor. The tensor $$\nabla T$$ appears to be acting on the vector $$\mathbf{u}$$ in the same way a covector acts on a vector to give a scalar.

The answer then proceeds to derive the identity $$\nabla^2_{\mathbf{u}, \mathbf{v}} = \nabla_{\mathbf{u}} \nabla_{\mathbf{v}} \mathbf{w} - \nabla_{\nabla_{\mathbf{u}} \mathbf{v}} \mathbf{w}$$, where $$\mathbf{u}$$, $$\mathbf{v}$$ and $$\mathbf{w}$$ are vectors.

According to my interpretation, $$\nabla_{\mathbf{u}} \nabla_{\mathbf{v}} \mathbf{w} = \nabla_{\mathbf{u}} (\nabla \mathbf{w} (\mathbf{v})) \\ = \underbrace{(\nabla_{\mathbf{u}} (\nabla \mathbf{w}))}_{\text{a (1,1) tensor}} (\mathbf{v}) + \nabla \mathbf{w} (\nabla_{\mathbf{u}} \mathbf{v}) \\ = \underbrace{\nabla \nabla \mathbf{w}}_{\text{a (1,2) tensor}}(\mathbf{u}, \mathbf{v}) + \nabla_{\nabla_{\mathbf{u}} \mathbf{v}} \mathbf{w} \\ = \nabla^2_{\mathbf{u}, \mathbf{v}} + \nabla_{\nabla_{\mathbf{u}} \mathbf{v}} \mathbf{w} \\ \therefore \nabla^2_{\mathbf{u}, \mathbf{v}} = \nabla_{\mathbf{u}} \nabla_{\mathbf{v}} \mathbf{w} - \nabla_{\nabla_{\mathbf{u}} \mathbf{v}} \mathbf{w}.$$

My confusion arises here. Let $$T$$ and $$S$$ be tensors. The above derivation make use of some version of the Leibniz rule that appears to be of the form $$\nabla_{\mathbf{u}}(T(S)) = (\nabla_{\mathbf{u}} T)(S) + T(\nabla_{\mathbf{u}} S)$$. Is my interpretation correct?

Yet according to this answer, the rule $$\nabla (T\otimes S) = \nabla T \otimes S + T\otimes \nabla S$$ doesn't exist, but when you add a direction $$\mathbf{u}$$ $$\nabla_{\mathbf{u}} (S\otimes T) = \nabla_\mathbf{u} S \otimes T + S \otimes \nabla_\mathbf{u} T$$, it suddenly becomes true. Why?

I'm quite confused by these various versions of the Leibniz rule and the "total covariant derivative" $$\nabla$$ versus the covariant derivative $$\nabla_{\mathbf{u}}$$. I appreciate if someone could clear it up for me a little.

You should think about the two "covariant derivatives" $$\nabla T$$ and $$\nabla_u T$$ the same way you think about differentials and directional derivatives of scalar functions:

If $$f : M \to \mathbb R,$$ then the covector field $$df$$ is defined in terms of the directional derivatives $$uf$$ by $$df(u) = uf.$$ In vector calculus, we thought about the gradient instead, and would have written this something like $$\nabla f \cdot u = D_u f.$$

In exactly the same way, we simply define $$\nabla T (u)= \nabla_u T,$$ and (after checking that this is indeed tensorial in $$u$$) we have "bundled up" all the derivatives of the tensor field $$T$$ into a tensor field of one degree higher.

Your calculation for the second covariant derivative (and the Leibniz rule $$\nabla_u(S \otimes T) = \nabla_u S \otimes T + S \otimes \nabla_u T \tag 1$$ that you used in it) are perfectly correct.

The only reason the rule $$\nabla (T\otimes S) = \nabla T \otimes S + T\otimes \nabla S \tag 2$$ is incorrect is the order of the slots/indices. To make this concrete, let's suppose $$S$$ and $$T$$ are covector fields for simplicity. In index notation, the correct Leibniz rule is $$\nabla_i(T\otimes S)_{jk} = (\nabla_i T)_j S_k + T_j (\nabla_i S)_k.$$ Note that the direction of differentiation is always $$\partial_i$$. On the other hand, the incorrect rule $$(2)$$ would translate into index notation as $$\nabla_i(T \otimes S)_{jk}=(\nabla_iT)_jS_k+T_i (\nabla_jS)_k.$$ Thus $$(2)$$ has to be corrected by some transposition of indices, something like $$\nabla(T \otimes S) = \nabla T \otimes S + \operatorname{swap}_{12} (T \otimes \nabla S).$$ I've had to invent this "swap" notation for slot transposition, since (as far as I know) there is no conventional way to write this operation when using index-free notation in DG. Usually, authors take one of the following approaches:

• Use an index-based notation where transposition (and contraction) of higher-order tensors is simple and intuitive to notate.
• "Plug in" enough vectors/covectors (treated as free variables) that the transposition becomes unnecessary, as in $$(1).$$
• In some cases, just abuse notation and write $$(2)$$, even though it is technically incorrect. In situations where you're not likely to get the various slots mixed up, it's very neat and conceptually clear.
• Thanks a lot for the answer. This clears up a lot of my confusion. So the Leibniz rule still holds for a tensor acting on another tensor, i.e. $\nabla (T(S))$? Is there some source I can refer to? May 12, 2020 at 8:12
• @user7777777: yes, this "action of a tensor on a tensor" can be written as a contraction of $T\otimes S$, so the Leibniz rule applies. I learnt this material from O'Neill's Semi Riemannian-Geometry..., which covers this material in quite some detail - see the section on "tensor derivations". May 12, 2020 at 9:15
• Alright, this makes sense now. Thank you very much! May 12, 2020 at 10:39

Say you have two tensors $$\omega,\eta$$ of valence $$(0,1)$$ (i.e., $$1$$-forms). Then $$\nabla\omega$$ and $$\nabla\eta$$ are $$(0,2)$$ tensors. For two vectors $$u,v$$, what should $$\nabla\omega(u,v)$$ mean? The usual thing, which you did, is to interpret it as $$(\nabla_u\omega)(v)$$, but someone may (although unlikely) interpret it as $$(\nabla_v\omega)(u)$$. This is not a problem, since almost everyone understands the first meaning and we are all happy.

Now, if $$u,v,w$$ are vectors, what do you think $$\nabla(\omega\otimes\eta)(u,v,w)$$ should be? of course, the standard answer is $$\nabla_u(\omega\otimes\eta)(v,w)$$, which equals $$\nabla_u\omega(v)\eta(w)+\omega(v)\nabla_u\eta(w)$$ (you can prove it). However, notice what happens if you apply $$\nabla\omega\otimes\eta+\omega\otimes\nabla\eta$$ to the same tuple of vectors $$(u,v,w)$$ using the same convention: you get \begin{align*} (\nabla\omega\otimes\eta+\omega\otimes\nabla\eta)(u,v,w) &= \nabla\omega(u,v)\eta(w)+\omega(u)\nabla\eta(v,w) \\ &= \nabla_u\omega(v)\eta(w)+\omega(u)\nabla_v\eta(w) \\ &\neq \nabla_u\omega(v)\eta(w)+\omega(v)\nabla_u\eta(w) \\ &= \nabla_u(\omega\otimes\eta)(v,w) \\ &= \nabla(\omega\otimes\eta)(u,v,w) \end{align*} which is not what we expected. That is why $$\nabla(\omega\otimes\eta)\neq\nabla\omega\otimes\eta+\omega\otimes\nabla\eta$$.

How to fix this? Well, let me advertise my second favourite option: using abstract index notation. In this convention, we use indices to indicate the slots of a tensor, and the tensor product is just juxtaposition. For example, the contraction of $$\omega$$ with a vector $$v$$ is written as $$\omega(v)=\omega_av^a$$, the tensor product $$\omega\otimes\eta$$ looks like $$(\omega\otimes\eta)_{ab}=\omega_a\eta_b$$, the covariant derivative (without being applied to a vector) is $$(\nabla \omega)_{ab}=\nabla_a\omega_b$$ and the applied covariant derivative is $$(\nabla_u\omega)_a=u^b\nabla_b\omega_a$$.

How does this help us? Well, then it is true that $$(\nabla(\omega\otimes\eta))_{abc}=\nabla_a(\omega_b\eta_c)=\nabla_a\omega_b\eta_c+\omega_b\nabla_a\eta_c$$. This is because the indices keep track of who should eat whom in the case three wilde vectors $$u^av^bw^c$$ appear. Don't let your notation to inconvenience you.

In this notation, your calculation is written as

\begin{align*} \nabla_u(\nabla_vw) &= u^a\nabla_a(v^b\nabla_bw^c) \\ &= u^a[\nabla_av^b\nabla_bw^c+v^b\nabla_a\nabla_bw^c] \\ &= u^a\nabla_av^b\nabla_bw^c+u^av^b\nabla_a\nabla_bw^c \text. \end{align*}

Let me know if you have any question.