In short
The vector triple product \vec{a} \times (\vec{b} \times \vec{c}) is itself a vector, and it equals (\vec{a} \cdot \vec{c})\vec{b} - (\vec{a} \cdot \vec{b})\vec{c}. This is called the BAC-CAB rule (read the coefficients: B(\vec{a}\cdotC) minus C(\vec{a}\cdotB)). It says that crossing a vector with a cross product always lands you back in the plane of the two vectors inside the parentheses.
You know the cross product: \vec{b} \times \vec{c} takes two vectors and returns a third vector perpendicular to both of them. But what if you then cross that result with yet another vector \vec{a}? You get \vec{a} \times (\vec{b} \times \vec{c}) — a cross product of a cross product.
This raises a natural question: what direction does the result point in? And is there a simpler way to write it, rather than grinding through component calculations every time?
The answer to both questions is surprisingly clean. The vector \vec{a} \times (\vec{b} \times \vec{c}) always lies in the plane of \vec{b} and \vec{c} — not in some arbitrary direction, but specifically in the plane of the two vectors inside the parentheses. And it can be written as a simple linear combination of \vec{b} and \vec{c}, with coefficients that are just dot products. The formula is so useful that it has a mnemonic: the BAC-CAB rule.
Why does the result lie in the b-c plane?
Before deriving the formula, the geometric reason is worth seeing.
\vec{b} \times \vec{c} is perpendicular to the plane of \vec{b} and \vec{c}. Call the direction of \vec{b} \times \vec{c} the "normal" to the \vec{b}-\vec{c} plane.
Now compute \vec{a} \times (\vec{b} \times \vec{c}). The cross product of any two vectors is perpendicular to both of them. So \vec{a} \times (\vec{b} \times \vec{c}) is perpendicular to \vec{b} \times \vec{c} — which means it is perpendicular to the normal of the \vec{b}-\vec{c} plane. A vector perpendicular to a plane's normal must lie in the plane.
Therefore \vec{a} \times (\vec{b} \times \vec{c}) lies in the plane of \vec{b} and \vec{c}.
Since the result lies in the \vec{b}-\vec{c} plane, it must be a linear combination of \vec{b} and \vec{c}:
for some scalars \alpha and \beta. The derivation below finds exactly what \alpha and \beta are.
Deriving the BAC-CAB formula
The geometric argument tells you that \vec{a} \times (\vec{b} \times \vec{c}) = \alpha\vec{b} + \beta\vec{c}, but it does not tell you what \alpha and \beta are. To find them, you need to compute. The approach is straightforward: write everything in components, expand, and watch the dot products emerge.
Let \vec{a} = a_1\hat{i} + a_2\hat{j} + a_3\hat{k}, \vec{b} = b_1\hat{i} + b_2\hat{j} + b_3\hat{k}, \vec{c} = c_1\hat{i} + c_2\hat{j} + c_3\hat{k}.
The brute-force approach is to compute \vec{b} \times \vec{c} first, then cross \vec{a} with the result. The algebra is a bit long, but the pattern that emerges at the end is worth every line.
First, compute \vec{b} \times \vec{c}:
Now compute the \hat{i}-component of \vec{a} \times (\vec{b} \times \vec{c}). The \hat{i}-component of \vec{p} \times \vec{q} is p_2q_3 - p_3q_2, where \vec{p} = \vec{a} and \vec{q} = \vec{b} \times \vec{c}:
Expand this:
Group the terms by pulling out b_1 from two terms and c_1 from the other two:
Now comes the key step. Add and subtract a_1b_1c_1:
The expressions in parentheses are dot products:
The \hat{j}-component follows the same pattern. The \hat{j}-component of \vec{p} \times \vec{q} is p_3q_1 - p_1q_3:
Expanding and grouping as before (pull out b_2 and c_2, then add and subtract a_2b_2c_2):
The \hat{k}-component follows the same pattern identically. So, collecting all three components:
This is the BAC-CAB formula.
BAC-CAB rule (Vector triple product expansion)
For any three vectors \vec{a}, \vec{b}, \vec{c}:
The mnemonic: read the right side as B(\vec{a}\cdotC) - C(\vec{a}\cdotB), which sounds like "BAC minus CAB" — back minus cab.
For the cross product with parentheses on the other side:
The parentheses matter
Notice that \vec{a} \times (\vec{b} \times \vec{c}) is not the same as (\vec{a} \times \vec{b}) \times \vec{c}.
The first gives (\vec{a} \cdot \vec{c})\vec{b} - (\vec{a} \cdot \vec{b})\vec{c} — a linear combination of \vec{b} and \vec{c}.
The second gives (\vec{c} \cdot \vec{a})\vec{b} - (\vec{c} \cdot \vec{b})\vec{a} — a linear combination of \vec{a} and \vec{b}.
The two results are generally different. This means the cross product is not associative: moving the parentheses changes the answer. This is one of the few operations in school mathematics where associativity fails. (Addition and multiplication are both associative. The cross product is not.)
A concrete check of non-associativity
Take \vec{a} = \hat{i}, \vec{b} = \hat{j}, \vec{c} = \hat{i} + \hat{j}.
First compute \vec{a} \times (\vec{b} \times \vec{c}). By BAC-CAB:
Now compute (\vec{a} \times \vec{b}) \times \vec{c}. First, \vec{a} \times \vec{b} = \hat{i} \times \hat{j} = \hat{k}. Then use the formula for the other parenthesisation:
The first gives \hat{j}. The second gives -\hat{i} + \hat{j}. Two different vectors. Moving the parentheses changes the result, even with simple unit vectors.
Lagrange's identity
The BAC-CAB formula leads to a powerful identity connecting cross products and dot products. Start with the magnitude squared of a cross product.
Take any two vectors \vec{a} and \vec{b}. Consider (\vec{a} \times \vec{b}) \cdot (\vec{a} \times \vec{b}) = |\vec{a} \times \vec{b}|^2.
Write |\vec{a} \times \vec{b}|^2 as the dot product of \vec{a} \times \vec{b} with itself. Using the scalar triple product rearrangement:
Now use a clever approach: treat this as \vec{a} \cdot [\vec{b} \times (\vec{a} \times \vec{b})], using the property that \vec{p} \cdot (\vec{q} \times \vec{r}) = (\vec{p} \times \vec{q}) \cdot \vec{r}. Apply the BAC-CAB rule to the inner cross product \vec{b} \times (\vec{a} \times \vec{b}):
Dot with \vec{a}:
This is Lagrange's identity:
This identity is a vector version of the Cauchy-Schwarz inequality (since |\vec{a} \times \vec{b}|^2 \geq 0, it implies (\vec{a} \cdot \vec{b})^2 \leq |\vec{a}|^2|\vec{b}|^2). It also gives a direct proof that |\vec{a} \times \vec{b}| = |\vec{a}||\vec{b}|\sin\theta:
Taking the positive square root gives |\vec{a} \times \vec{b}| = |\vec{a}||\vec{b}|\sin\theta.
Computing one from start to finish
Example 1: Applying the BAC-CAB rule
Find \vec{a} \times (\vec{b} \times \vec{c}) for \vec{a} = \hat{i} + 2\hat{j} + \hat{k}, \vec{b} = 2\hat{i} + \hat{j} - \hat{k}, \vec{c} = \hat{i} - \hat{j} + 2\hat{k}.
Step 1. Compute the dot products \vec{a} \cdot \vec{c} and \vec{a} \cdot \vec{b}.
Why: the BAC-CAB formula needs these two numbers — they become the coefficients of \vec{b} and \vec{c}.
Step 2. Apply the formula \vec{a} \times (\vec{b} \times \vec{c}) = (\vec{a} \cdot \vec{c})\vec{b} - (\vec{a} \cdot \vec{b})\vec{c}.
Why: plug in the dot products. The formula converts a double cross product into a linear combination — no cross product needed at all.
Step 3. Expand.
Why: distribute the scalar 3 through each component of \vec{c}, then subtract term by term.
Step 4. Combine.
Result: \vec{a} \times (\vec{b} \times \vec{c}) = -\hat{i} + 4\hat{j} - 7\hat{k}.
Compare this to computing \vec{b} \times \vec{c} first and then crossing \vec{a} with the result — that would require two full cross-product computations, each involving six terms. The BAC-CAB formula got the answer in one line.
Example 2: Verifying Lagrange's identity
Verify Lagrange's identity |\vec{a} \times \vec{b}|^2 = |\vec{a}|^2|\vec{b}|^2 - (\vec{a} \cdot \vec{b})^2 for \vec{a} = 3\hat{i} + \hat{j} - 2\hat{k} and \vec{b} = \hat{i} - 3\hat{j} + 4\hat{k}.
Step 1. Compute \vec{a} \times \vec{b}.
Why: compute the cross product using the standard determinant method to get the left side of the identity.
Step 2. Compute |\vec{a} \times \vec{b}|^2.
Why: this is the left side of Lagrange's identity.
Step 3. Compute |\vec{a}|^2, |\vec{b}|^2, and \vec{a} \cdot \vec{b}.
Why: these three numbers build the right side of the identity.
Step 4. Compute the right side.
Why: the right side evaluates to 300, matching the left side exactly.
Result: Both sides equal 300. Lagrange's identity holds.
The geometric picture is striking: the dot product captures "how much two vectors are aligned" (\cos\theta part) and the cross product captures "how much they are misaligned" (\sin\theta part). Lagrange's identity says these two pieces account for everything — like the two legs of a right triangle making up the hypotenuse.
Applications
The BAC-CAB formula shows up in three places regularly.
1. Simplifying complicated vector expressions. Any time you see a double cross product, replace it with dot products. This is especially useful in physics, where electromagnetic field equations often involve \vec{a} \times (\vec{b} \times \vec{c}).
2. Proving other vector identities. Many vector identities that look hard to prove become straightforward once you apply BAC-CAB. For instance, you can prove that
by expanding each term using BAC-CAB:
Grouping by vector: the \vec{a} terms are -(\vec{b}\cdot\vec{c})\vec{a} + (\vec{c}\cdot\vec{b})\vec{a} = 0. The \vec{b} terms are (\vec{a}\cdot\vec{c})\vec{b} - (\vec{c}\cdot\vec{a})\vec{b} = 0. The \vec{c} terms are -(\vec{a}\cdot\vec{b})\vec{c} + (\vec{b}\cdot\vec{a})\vec{c} = 0. The sum is \vec{0}.
This identity — sometimes called the Jacobi identity for the cross product — would be very hard to prove without the BAC-CAB formula.
3. Deriving Lagrange's identity. As shown above, the BAC-CAB formula gives a clean derivation of |\vec{a} \times \vec{b}|^2 = |\vec{a}|^2|\vec{b}|^2 - (\vec{a} \cdot \vec{b})^2, which in turn proves the Cauchy-Schwarz inequality for vectors.
4. The reciprocal system of vectors. Given three non-coplanar vectors \vec{a}, \vec{b}, \vec{c}, the reciprocal system \vec{a}' = \frac{\vec{b} \times \vec{c}}{[\vec{a}\;\vec{b}\;\vec{c}]} (and cyclically) has the property that the reciprocal of the reciprocal equals the original. Proving this requires expanding a product of the form (\vec{c} \times \vec{a}) \times (\vec{a} \times \vec{b}), which is a vector triple product. The BAC-CAB formula is the tool that makes the proof work — you will see it in the article on the reciprocal system.
The formula for the other parenthesisation
For completeness, here is the derivation of (\vec{a} \times \vec{b}) \times \vec{c}. The result must lie in the plane of \vec{a} and \vec{b} (by the same perpendicularity argument, applied to \vec{a} \times \vec{b} and \vec{c}):
To find \alpha and \beta, use the anticommutativity of the cross product: \vec{p} \times \vec{q} = -\vec{q} \times \vec{p}. So:
Apply BAC-CAB to \vec{c} \times (\vec{a} \times \vec{b}) with \vec{c} as the "outside" vector and \vec{a}, \vec{b} inside:
Negate:
This confirms the formula stated in the definition box. The "outside" vector is always the one whose dot products appear as coefficients.
Common confusions
-
"\vec{a} \times (\vec{b} \times \vec{c}) = (\vec{a} \times \vec{b}) \times \vec{c}." This is false in general. The cross product is not associative. The first expression lies in the plane of \vec{b} and \vec{c}; the second lies in the plane of \vec{a} and \vec{b}. Unless these planes happen to coincide, the two results are different.
-
"The vector triple product is a scalar." No — the scalar triple product \vec{a} \cdot (\vec{b} \times \vec{c}) is a scalar. The vector triple product \vec{a} \times (\vec{b} \times \vec{c}) is a vector. The names are chosen precisely to distinguish the two.
-
"The BAC-CAB formula is (\vec{a} \cdot \vec{b})\vec{c} - (\vec{a} \cdot \vec{c})\vec{b}." This has the two terms swapped. The correct formula is (\vec{a} \cdot \vec{c})\vec{b} - (\vec{a} \cdot \vec{b})\vec{c}. Read the mnemonic carefully: BAC minus CAB. The first term has \vec{b} multiplied by (\vec{a} \cdot \vec{c}); the second has \vec{c} multiplied by (\vec{a} \cdot \vec{b}).
-
"I can drop the parentheses in \vec{a} \times (\vec{b} \times \vec{c})." No. Without parentheses, "\vec{a} \times \vec{b} \times \vec{c}" is ambiguous — it could mean either \vec{a} \times (\vec{b} \times \vec{c}) or (\vec{a} \times \vec{b}) \times \vec{c}, and these are different. Always write the parentheses.
Going deeper
If you are here to learn the BAC-CAB formula, how to apply it, and why the cross product is not associative, you have it. The section below connects the vector triple product to tensor algebra and shows a cleaner proof using index notation.
Proof using index notation
For readers comfortable with summation convention: in index notation, the cross product (\vec{a} \times \vec{b})_i = \epsilon_{ijk}a_jb_k, where \epsilon_{ijk} is the Levi-Civita symbol.
The vector triple product becomes:
Using the identity \epsilon_{ijk}\epsilon_{klm} = \delta_{il}\delta_{jm} - \delta_{im}\delta_{jl}:
which is the i-th component of (\vec{a}\cdot\vec{c})\vec{b} - (\vec{a}\cdot\vec{b})\vec{c}. The entire proof rests on one identity for the product of two Levi-Civita symbols — a standard result in tensor algebra that you will meet in physics and advanced mathematics courses.
Connection to the scalar triple product
There is a clean relationship between the vector triple product and the scalar triple product. Taking the dot product of \vec{a} \times (\vec{b} \times \vec{c}) with any vector \vec{d}:
This can be written as a 2 \times 2 determinant:
This determinant of dot products is called a Gram determinant. It connects the geometry of volumes (through the scalar triple product) to the geometry of angles (through dot products), and it generalises to higher dimensions.
Where this leads next
The vector triple product connects to several important ideas.
- Scalar Triple Product — the other triple product, which gives volumes instead of vectors.
- Cross Product — the single cross product from which the triple product is built.
- Reciprocal System of Vectors — a construction that uses the vector triple product in its proofs.
- Dot Product — the operation that the BAC-CAB formula reduces everything to.
- Collinearity and Coplanarity — the coplanarity condition [\vec{a}\;\vec{b}\;\vec{c}] = 0 reappears through both triple products.