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.


2 Answers 2


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.
  • $\begingroup$ 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? $\endgroup$ May 12, 2020 at 8:12
  • $\begingroup$ @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". $\endgroup$ May 12, 2020 at 9:15
  • $\begingroup$ Alright, this makes sense now. Thank you very much! $\endgroup$ 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.


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.