Vector Triple Product Identity via Component Proof

⚡ Key Takeaways

One-line statement: a×(b×c)=b (a⋅c)−c (a⋅b)\mathbf{a}\times(\mathbf{b}\times\mathbf{c}) = \mathbf{b}\,(\mathbf{a}\cdot\mathbf{c}) - \mathbf{c}\,(\mathbf{a}\cdot\mathbf{b}), proven directly by expanding all three vectors into Cartesian components. Key result in words: The double cross product of three vectors collapses into a difference of two simpler vectors, each a scalar (dot product) times a vector. The component proof verifies this by brute-force algebra. Where it applies: Vector calculus, classical mechanics (centripetal/Coriolis terms), electromagnetism, fluid dynamics, differential geometry. Who/when: Identity attributed to the development of vector analysis by J. W. Gibbs and O. Heaviside in the 1880s, building on Hamilton's quaternions (1843).

💡 The Core Insight

A cross product b×c\mathbf{b}\times\mathbf{c} is perpendicular to the b\mathbf{b}–c\mathbf{c} plane. Crossing it again with a\mathbf{a} rotates the result back into that plane. Therefore a×(b×c)\mathbf{a}\times(\mathbf{b}\times\mathbf{c}) must be a linear combination of b\mathbf{b} and c\mathbf{c} — and the only question is what the coefficients are. The component proof answers this mechanically: the coefficients turn out to be exactly (a⋅c)(\mathbf{a}\cdot\mathbf{c}) and −(a⋅b)-(\mathbf{a}\cdot\mathbf{b}). The mnemonic "BAC minus CAB" encodes the order.

Formal Statement

DefinitionDot and Cross Products in Components

Let a=(a1,a2,a3)\mathbf{a}=(a_1,a_2,a_3), b=(b1,b2,b3)\mathbf{b}=(b_1,b_2,b_3), c=(c1,c2,c3)\mathbf{c}=(c_1,c_2,c_3) be vectors in R3\mathbb{R}^3 expressed in an orthonormal Cartesian basis {e^1,e^2,e^3}\{\hat{\mathbf{e}}_1,\hat{\mathbf{e}}_2,\hat{\mathbf{e}}_3\}. The dot product is

1
a⋅b=a1b1+a2b2+a3b3=∑i=13aibi.\quad \mathbf{a}\cdot\mathbf{b} = a_1 b_1 + a_2 b_2 + a_3 b_3 = \sum_{i=1}^{3} a_i b_i.

Derivation hint: Sum the products of corresponding components; orthonormality means e^i⋅e^j=δij\hat{\mathbf{e}}_i\cdot\hat{\mathbf{e}}_j=\delta_{ij}. The cross product has components

2
(b×c)i=∑j,k=13εijk bjck,\quad (\mathbf{b}\times\mathbf{c})_i = \sum_{j,k=1}^{3} \varepsilon_{ijk}\, b_j c_k,

Derivation hint: εijk\varepsilon_{ijk} is the Levi-Civita symbol; expanding the determinant form det⁡[e^i ; bj ; ck]\det[\hat{\mathbf{e}}_i\,;\,b_j\,;\,c_k] gives this antisymmetric sum. where εijk=+1\varepsilon_{ijk}=+1 for cyclic permutations (1,2,3)(1,2,3), −1-1 for anticyclic, and 00 if any index repeats.

TheoremVector Triple Product Identity

For all a,b,c∈R3\mathbf{a},\mathbf{b},\mathbf{c}\in\mathbb{R}^3,

3
a×(b×c)=b (a⋅c)−c (a⋅b).\quad \mathbf{a}\times(\mathbf{b}\times\mathbf{c}) = \mathbf{b}\,(\mathbf{a}\cdot\mathbf{c}) - \mathbf{c}\,(\mathbf{a}\cdot\mathbf{b}).

Derivation hint: Read aloud as "BAC minus CAB." Note the inner-parenthesised vectors b,c\mathbf{b},\mathbf{c} become the outer vectors, scaled by dot products of the remaining pair. The companion identity (with the parenthesis on the left) is

4
(a×b)×c=b (a⋅c)−a (b⋅c).\quad (\mathbf{a}\times\mathbf{b})\times\mathbf{c} = \mathbf{b}\,(\mathbf{a}\cdot\mathbf{c}) - \mathbf{a}\,(\mathbf{b}\cdot\mathbf{c}).

Derivation hint: Apply [3] to −c×(a×b)-\mathbf{c}\times(\mathbf{a}\times\mathbf{b}) using anticommutativity x×y=−y×x\mathbf{x}\times\mathbf{y}=-\mathbf{y}\times\mathbf{x}.

Why It Holds / Derivation

:::proof[Component Proof of Equation [3]] We prove the identity one Cartesian component at a time, then assemble. Work with the first component; the others follow by cyclic symmetry.

Step 1 — Inner cross product. Write d=b×c\mathbf{d}=\mathbf{b}\times\mathbf{c} with components

5
d1=b2c3−b3c2,d2=b3c1−b1c3,d3=b1c2−b2c1.\quad d_1 = b_2 c_3 - b_3 c_2,\quad d_2 = b_3 c_1 - b_1 c_3,\quad d_3 = b_1 c_2 - b_2 c_1.

Derivation hint: Specialise [2] for each free index ii; each row picks the two non-repeating indices with the cyclic sign.

Step 2 — Outer cross product, first component. By the same cross-product rule applied to a×d\mathbf{a}\times\mathbf{d}:

6
(a×d)1=a2d3−a3d2.\quad \big(\mathbf{a}\times\mathbf{d}\big)_1 = a_2 d_3 - a_3 d_2.

Derivation hint: Use [2] with i=1i=1: only (j,k)=(2,3)(j,k)=(2,3) and (3,2)(3,2) contribute, with signs +,−+,-.

Step 3 — Substitute the inner components. Insert [5] into [6]:

7
(a×d)1=a2(b1c2−b2c1)−a3(b3c1−b1c3).\quad \big(\mathbf{a}\times\mathbf{d}\big)_1 = a_2(b_1 c_2 - b_2 c_1) - a_3(b_3 c_1 - b_1 c_3).

Derivation hint: Replace d3d_3 and d2d_2 by their definitions verbatim, keeping the overall a2 (⋅)−a3 (⋅)a_2\,(\cdot) - a_3\,(\cdot) structure.

Step 4 — Expand. Multiply out the four terms:

8
(a×d)1=a2b1c2−a2b2c1−a3b3c1+a3b1c3.\quad \big(\mathbf{a}\times\mathbf{d}\big)_1 = a_2 b_1 c_2 - a_2 b_2 c_1 - a_3 b_3 c_1 + a_3 b_1 c_3.

Derivation hint: Distribute a2a_2 and −a3-a_3 over their parentheses; four monomials result.

Step 5 — The "add-and-subtract" trick. We want terms of the form b1(a⋅c)b_1(\mathbf{a}\cdot\mathbf{c}) and c1(a⋅b)c_1(\mathbf{a}\cdot\mathbf{b}). The complete dot products require a missing a1b1c1a_1 b_1 c_1 term. Add and subtract it:

9
(a×d)1=a2b1c2+a3b1c3+a1b1c1⏟(I)−(a2b2c1+a3b3c1+a1b1c1)⏟(II).\quad \big(\mathbf{a}\times\mathbf{d}\big)_1 = \underbrace{a_2 b_1 c_2 + a_3 b_1 c_3 + a_1 b_1 c_1}_{\text{(I)}} - \underbrace{\big(a_2 b_2 c_1 + a_3 b_3 c_1 + a_1 b_1 c_1\big)}_{\text{(II)}}.

Derivation hint: Insert +a1b1c1−a1b1c1+a_1b_1c_1 - a_1b_1c_1 (which is zero) and regroup so each cluster contains all three indices for one dot product.

Step 6 — Recognise the dot products. Factor:

10
(I)=b1 (a1c1+a2c2+a3c3)=b1 (a⋅c),\quad \text{(I)} = b_1\,(a_1 c_1 + a_2 c_2 + a_3 c_3) = b_1\,(\mathbf{a}\cdot\mathbf{c}),

Derivation hint: b1b_1 is common to all three terms in (I); the bracket is exactly [1] applied to a,c\mathbf{a},\mathbf{c}.

11
(II)=c1 (a1b1+a2b2+a3b3)=c1 (a⋅b).\quad \text{(II)} = c_1\,(a_1 b_1 + a_2 b_2 + a_3 b_3) = c_1\,(\mathbf{a}\cdot\mathbf{b}).

Derivation hint: c1c_1 is common to all three terms in (II); the bracket is [1] applied to a,b\mathbf{a},\mathbf{b}.

Step 7 — First component result. Combining [10] and [11]:

12
(a×(b×c))1=b1 (a⋅c)−c1 (a⋅b).\quad \big(\mathbf{a}\times(\mathbf{b}\times\mathbf{c})\big)_1 = b_1\,(\mathbf{a}\cdot\mathbf{c}) - c_1\,(\mathbf{a}\cdot\mathbf{b}).

Derivation hint: This is precisely the first component of b(a⋅c)−c(a⋅b)\mathbf{b}(\mathbf{a}\cdot\mathbf{c}) - \mathbf{c}(\mathbf{a}\cdot\mathbf{b}).

Step 8 — Cyclic completion. The labels 1→2→3→11\to2\to3\to1 enter symmetrically through [2] and [5], so repeating Steps 2–7 with i=2i=2 and i=3i=3 gives

13
(a×(b×c))i=bi (a⋅c)−ci (a⋅b),i=1,2,3.\quad \big(\mathbf{a}\times(\mathbf{b}\times\mathbf{c})\big)_i = b_i\,(\mathbf{a}\cdot\mathbf{c}) - c_i\,(\mathbf{a}\cdot\mathbf{b}),\quad i=1,2,3.

Derivation hint: Cycle indices (1,2,3)→(2,3,1)→(3,1,2)(1,2,3)\to(2,3,1)\to(3,1,2); the dot products a⋅c\mathbf{a}\cdot\mathbf{c} and a⋅b\mathbf{a}\cdot\mathbf{b} are scalars, hence unchanged. Stacking the three components yields equation [3]. ■\blacksquare

🧠 The Levi-Civita Shortcut

The same proof done in index notation collapses to one line. Using the contraction identity

14
∑iεijk εilm=δjlδkm−δjmδkl,\quad \sum_{i} \varepsilon_{ijk}\,\varepsilon_{ilm} = \delta_{jl}\delta_{km} - \delta_{jm}\delta_{kl},

Derivation hint: This is the "epsilon-delta" identity; verify by checking the few non-zero index patterns. one writes (a×(b×c))i=∑εijkajεklmblcm\big(\mathbf{a}\times(\mathbf{b}\times\mathbf{c})\big)_i = \sum \varepsilon_{ijk} a_j \varepsilon_{klm} b_l c_m and applies [14] to recover [3] in three steps. The Cartesian-component proof above is [14] unpacked into explicit arithmetic — same content, more sweat.

JW
Josiah Willard Gibbs
1839–1903

The American physicist and chemist Gibbs distilled Hamilton's cumbersome quaternion algebra into the modern dot/cross product calculus during the 1880s, distributing his Elements of Vector Analysis (1881–1884) as printed lecture notes to students at Yale. The triple-product identity in its BAC–CAB form is a centrepiece of that streamlined system. Oliver Heaviside independently developed an essentially identical formalism in Britain, and the two are jointly credited with founding modern vector analysis. Gibbs valued the identity precisely because it eliminated nested cross products from electromagnetic field calculations.

Building Intuition

Figure
The triple product lies in the b–c plane
b–c plane b c b×c a a×(b×c) Result (gold) lies flat in the b–c plane, never along the vertical b×c.
🧠 Why the result must be coplanar with b and c

b×c\mathbf{b}\times\mathbf{c} is normal to the b\mathbf{b}–c\mathbf{c} plane. Crossing any vector a\mathbf{a} with this normal produces a vector perpendicular to the normal — i.e., back in the plane. Since the plane is spanned by b\mathbf{b} and c\mathbf{c}, the answer must be αb+βc\alpha\mathbf{b}+\beta\mathbf{c} for scalars α,β\alpha,\beta. The identity tells us α=a⋅c\alpha=\mathbf{a}\cdot\mathbf{c} and β=−(a⋅b)\beta=-(\mathbf{a}\cdot\mathbf{b}). You can even fix these coefficients without full expansion by testing the special cases a=b\mathbf{a}=\mathbf{b} and a=c\mathbf{a}=\mathbf{c}.

Worked Examples

ExampleConcrete numerical evaluation

Given: a=(1,2,0)\mathbf{a}=(1,2,0), b=(0,1,3)\mathbf{b}=(0,1,3), c=(2,0,1)\mathbf{c}=(2,0,1) (dimensionless).

Method 1 — Direct. Inner product b×c\mathbf{b}\times\mathbf{c}:

  • (b×c)1=(1)(1)−(3)(0)=1(\mathbf{b}\times\mathbf{c})_1 = (1)(1)-(3)(0)=1
  • (b×c)2=(3)(2)−(0)(1)=6(\mathbf{b}\times\mathbf{c})_2 = (3)(2)-(0)(1)=6
  • (b×c)3=(0)(0)−(1)(2)=−2(\mathbf{b}\times\mathbf{c})_3 = (0)(0)-(1)(2)=-2

So b×c=(1,6,−2)\mathbf{b}\times\mathbf{c}=(1,6,-2). Now a×(1,6,−2)\mathbf{a}\times(1,6,-2):

  • comp 1: (2)(−2)−(0)(6)=−4(2)(-2)-(0)(6)=-4
  • comp 2: (0)(1)−(1)(−2)=2(0)(1)-(1)(-2)=2
  • comp 3: (1)(6)−(2)(1)=4(1)(6)-(2)(1)=4

Direct result: (−4, 2, 4)(-4,\,2,\,4).

Method 2 — BAC–CAB. Dot products: a⋅c=(1)(2)+(2)(0)+(0)(1)=2\mathbf{a}\cdot\mathbf{c}=(1)(2)+(2)(0)+(0)(1)=2; a⋅b=(1)(0)+(2)(1)+(0)(3)=2\mathbf{a}\cdot\mathbf{b}=(1)(0)+(2)(1)+(0)(3)=2.

b(a⋅c)−c(a⋅b)=2(0,1,3)−2(2,0,1)=(0,2,6)−(4,0,2)=(−4,2,4).\mathbf{b}(\mathbf{a}\cdot\mathbf{c}) - \mathbf{c}(\mathbf{a}\cdot\mathbf{b}) = 2(0,1,3) - 2(2,0,1) = (0,2,6)-(4,0,2) = (-4,2,4).

Answer: a×(b×c)=(−4, 2, 4)\boxed{\mathbf{a}\times(\mathbf{b}\times\mathbf{c}) = (-4,\,2,\,4)} — both methods agree.

ExamplePhysics: centripetal acceleration

Given: A point at position r\mathbf{r} rotates with constant angular velocity ω\boldsymbol{\omega}. Its acceleration includes the term acp=ω×(ω×r)\mathbf{a}_{\text{cp}}=\boldsymbol{\omega}\times(\boldsymbol{\omega}\times\mathbf{r}). Take ω=(0,0,2) rad/s\boldsymbol{\omega}=(0,0,2)\ \text{rad/s} and r=(3,0,0) m\mathbf{r}=(3,0,0)\ \text{m}.

Apply [3] with a=b=ω\mathbf{a}=\mathbf{b}=\boldsymbol{\omega}, c=r\mathbf{c}=\mathbf{r}:

ω×(ω×r)=ω(ω⋅r)−r(ω⋅ω).\boldsymbol{\omega}\times(\boldsymbol{\omega}\times\mathbf{r}) = \boldsymbol{\omega}(\boldsymbol{\omega}\cdot\mathbf{r}) - \mathbf{r}(\boldsymbol{\omega}\cdot\boldsymbol{\omega}).

Compute: ω⋅r=(0)(3)+(0)(0)+(2)(0)=0\boldsymbol{\omega}\cdot\mathbf{r}=(0)(3)+(0)(0)+(2)(0)=0; ω⋅ω=0+0+4=4 rad2/s2\boldsymbol{\omega}\cdot\boldsymbol{\omega}=0+0+4=4\ \text{rad}^2/\text{s}^2.

acp=0−(3,0,0)(4)=(−12,0,0) m/s2.\mathbf{a}_{\text{cp}} = \mathbf{0} - (3,0,0)(4) = (-12,0,0)\ \text{m/s}^2.

Answer: acp=(−12,0,0) m/s2\boxed{\mathbf{a}_{\text{cp}}=(-12,0,0)\ \text{m/s}^2} — magnitude ω2r=4×3=12 m/s2\omega^2 r = 4\times3=12\ \text{m/s}^2, directed inward (toward the rotation axis), exactly as centripetal acceleration should be.

Common Misconceptions

⚠️ The cross product is NOT associative

A frequent error is writing a×(b×c)=(a×b)×c\mathbf{a}\times(\mathbf{b}\times\mathbf{c}) = (\mathbf{a}\times\mathbf{b})\times\mathbf{c}. They are different vectors. Compare [3] and [4]: the first gives b(a⋅c)−c(a⋅b)\mathbf{b}(\mathbf{a}\cdot\mathbf{c})-\mathbf{c}(\mathbf{a}\cdot\mathbf{b}), the second gives b(a⋅c)−a(b⋅c)\mathbf{b}(\mathbf{a}\cdot\mathbf{c})-\mathbf{a}(\mathbf{b}\cdot\mathbf{c}). The parentheses are mandatory — never omit them. The two differ by a(b⋅c)−c(a⋅b)\mathbf{a}(\mathbf{b}\cdot\mathbf{c})-\mathbf{c}(\mathbf{a}\cdot\mathbf{b}), which equals b×(c×a)\mathbf{b}\times(\mathbf{c}\times\mathbf{a}) — encoding the Jacobi Identity.

CounterexampleAssociativity fails explicitly

Take a=e^1\mathbf{a}=\hat{\mathbf{e}}_1, b=e^1\mathbf{b}=\hat{\mathbf{e}}_1, c=e^2\mathbf{c}=\hat{\mathbf{e}}_2.

  • a×(b×c)=e^1×(e^1×e^2)=e^1×e^3=−e^2.\mathbf{a}\times(\mathbf{b}\times\mathbf{c}) = \hat{\mathbf{e}}_1\times(\hat{\mathbf{e}}_1\times\hat{\mathbf{e}}_2) = \hat{\mathbf{e}}_1\times\hat{\mathbf{e}}_3 = -\hat{\mathbf{e}}_2.
  • (a×b)×c=(e^1×e^1)×e^2=0×e^2=0.(\mathbf{a}\times\mathbf{b})\times\mathbf{c} = (\hat{\mathbf{e}}_1\times\hat{\mathbf{e}}_1)\times\hat{\mathbf{e}}_2 = \mathbf{0}\times\hat{\mathbf{e}}_2 = \mathbf{0}.

One gives −e^2-\hat{\mathbf{e}}_2, the other gives 0\mathbf{0}. Associativity is decisively false.

⚠️ Sign and order pitfalls

The mnemonic is "BAC minus CAB," not "CAB minus BAC." The vector that survives with a plus sign is the inner-bracket vector adjacent in the dot product to a\mathbf{a} — i.e., b(a⋅c)\mathbf{b}(\mathbf{a}\cdot\mathbf{c}) comes first. Memorise carefully: the dotted pair always involves the outer vector a\mathbf{a} with the opposite inner vector. Also remember [3] only holds in R3\mathbb{R}^3 — the cross product as a vector exists only in three dimensions (and, exceptionally, seven).

Connections

connection · Where this sits in vector analysis

The component proof of the triple product is one of the foundational manipulations underpinning Vector Calculus Identities. The Levi-Civita route ([14]) connects it to Levi-Civita Symbol and Tensor Notation and the Kronecker Delta. The associativity failure highlighted above is governed by the Jacobi Identity, which makes (R3,×)(\mathbb{R}^3,\times) a Lie Algebra. The structure b(a⋅c)−c(a⋅b)\mathbf{b}(\mathbf{a}\cdot\mathbf{c})-\mathbf{c}(\mathbf{a}\cdot\mathbf{b}) recurs in the curl-of-curl identity ∇×(∇×F)=∇(∇⋅F)−∇2F\nabla\times(\nabla\times\mathbf{F})=\nabla(\nabla\cdot\mathbf{F})-\nabla^2\mathbf{F}, central to Maxwell's Equations and Wave Equation.

Real-World Applications

🔬 Concrete uses across science

Historical Development

⏳ History
- 1843 — W. R. Hamilton invents quaternions; products of pure quaternions encode both dot and cross products, but entangled together.
- 1844 — H. Grassmann publishes Die lineale Ausdehnungslehre, an abstract algebra of extension foreshadowing vector products.
- 1881–1884 — J. W. Gibbs distributes privately printed Elements of Vector Analysis at Yale, isolating clean dot and cross products and stating the triple-product identity.
- 1880s — O. Heaviside independently reformulates Maxwell's equations in vector form, using the same identities to reduce field expressions.
- 1901 — E. B. Wilson, drawing on Gibbs's lectures, publishes Vector Analysis, the first textbook to present the BAC–CAB rule with component proofs to students.
- 1900s — Tullio Levi-Civita and Gregorio Ricci-Curbastro develop tensor calculus; the permutation symbol εijk\varepsilon_{ijk} furnishes the compact epsilon-delta proof.
- 1920s onward — The identity becomes standard in physics curricula via texts by Abraham, Becker, and later Jackson's Classical Electrodynamics.

Subtleties & Limits

open-problem · Dimensional and structural caveats

The vector triple product as written requires a genuine vector-valued cross product, which exists only in dimensions 3 and 7 (the latter via octonion multiplication). In R7\mathbb{R}^7 the BAC–CAB rule fails: the seven-dimensional cross product satisfies a modified triple-product identity with extra terms, because its associated algebra lacks the same Jacobi structure. In arbitrary dimensions the natural generalisation uses the antisymmetric wedge product and the Hodge Star Operator, where "b×c\mathbf{b}\times\mathbf{c}" becomes ⋆(b∧c)\star(\mathbf{b}\wedge\mathbf{c}); the triple product then reflects properties of the Clifford/exterior algebra rather than a single tidy identity. A subtle point for students: [3] is a pointwise algebraic identity, but its differential cousin (curl of curl) carries an extra subtlety — operators do not commute with the vectors they act on, so naive substitution into [3] can mislead unless one tracks the order of differentiation.

See Also

Cross Product · Dot Product · Jacobi Identity · Levi-Civita Symbol and Tensor Notation · Vector Calculus Identities · Scalar Triple Product · Lie Algebra · Hodge Star Operator