(v x p) x v = (v . v)  p - (v . p) v

vv = GenericVector[v] ; pv = GenericVector[p] ; vv // Nice pv // Nice

( v  )            x            v            y            v            z

( p  )            x            p            y            p            z

tst1 = Cross[Cross[vv, pv], vv] ;  tst1 // Nice

(     2                  2            )           p  v  - p  v  v  + p  v  - p ...       2           p  v  - p  v  v  + p  v  - p  v  v            z  x    x  z  x    z  y    y  y  z

tst2 = (vv . vv) pv - (vv . pv) vv ; tst2 // Nice

(      2    2    2                               )           p  (v  + v  + v ) ... v  + v  + v ) - v  (p  v  + p  v  + p  v )            z   x    y    z     z   x  x    y  y    z  z

tst = Simplify[tst1 == tst2]

True


Created by Mathematica  (September 7, 2003)