Recommended approach when we deal with **symbolic tensors** should use the new and powerful [capabilities][1] of _Mathematica 9_. We can exploit appropriate tensor functionality also when we have defined a tensor `v`. e.g.: v = RandomInteger[{-10, 10}, {3, 3, 3}] > {{{8, 4, -4}, {2, -2, 4}, {-1, 9, -8}}, {{-9, -7, 8}, {-9, -4, 5}, {-9, 2, -7}}, {{-7, 10, -4}, {-5, 9, -9}, {-4, 6, 5}}} we sholud create a tensor product of `v` and `LeviCivitaTensor[3]`: tp = TensorProduct[ v, LeviCivitaTensor[3]]; Now we have to contract the tensor product `tp` having `6` indicies in their appropriate pairs, namely `{1, 4}, {2, 5}` and `{3, 6}`: TensorContract[ tp, {{1, 4}, {2, 5}, {3, 6}}] > -7 Tensor contraction of a tensor product can be performed also using `Inner` or in an obvious (more procedural) way, using `Sum`, `Part` and `Times` : Sum[ v[[i, j, k]] LeviCivitaTensor[3][[i, j, k]], {i, 3}, {j, 3}, {k, 3}] > -7 As a bonus we demonstrate even a bit a simpler example of tensor contraction, i.e. we find a trace of a matrix `m`: m = RandomInteger[{-10, 10}, {3, 3}] > {{ 9, 3, -8}, {-2, 4, -6}, { 9, 1, -7}} We can see that it should be `6` using `TensorContract` (contracting with respect to the first and the second indicies , i.e. using `{ 1, 2}` as the second argument in `TensorContract` or `Tr` or simply computing the sum of diagonal elements: TensorContract[ m, {1, 2}] Tr @ m == TensorContract[ m, {1, 2}] > 6 True [1]: http://reference.wolfram.com/mathematica/guide/SymbolicTensors.html