Assuming that we have three-dimensional real vectors : $Assumptions = (u | v | w) ∈ Vectors[3, Reals]; we can use e.g. various tensor functions (new in `ver. 9`) e.g. `TensorReduce` to reduce (simplify) a tensor expression, e.g. TensorReduce[ v.v + w.w - (v + w).(v + w) ] TensorReduce[u \[Cross] (v \[Cross] w) ] > -2 v.w -w u.v + v u.w We can perform more interesting reductions, let's show e.g. the Jacobi identity: TensorReduce[ u \[Cross] (v \[Cross] w) + v \[Cross] (w \[Cross] u) + w \[Cross] (u \[Cross] v) ] > 0 or write it in a traditional form: Defer[ u \[Cross] (v \[Cross] w) + v \[Cross] (w \[Cross] u) + w \[Cross] (u \[Cross] v)] == TensorReduce[ u \[Cross] (v \[Cross] w) + v \[Cross] (w \[Cross] u) + w \[Cross] (u \[Cross] v) ] // TraditionalForm ![enter image description here][1] Another common identity TensorExpand[ (u \[Cross] v) \[Cross] (u \[Cross] w) ] TensorExpand[ (u \[Cross] v).(u \[Cross] v) ] > u u \[Cross] v . w -(u.v)^2 + u.u v.v Take a look at new differential operators: Curl[ Curl[ f[x, y, z], {x, y, z}], {x, y, z}] == Laplacian[ f[x, y, z], {x, y, z}] > True [1]: https://i.sstatic.net/6cRk7.gif