# What do I need to know about simplifying expressions involving Symbolic Tensors?

I want to use Mathematica to show that the inner product of a vector with itself is equal to the square of its norm.

This is what I tried:

\$Assumptions = x ∈ Vectors[3, Reals];
expr = Dot[x, x] == Norm[x]^2;

FullSimplify[expr]
(*x.x == Norm[x]^2*)

TensorReduce[expr]
(*x.x == Norm[x]^2*)


I had expected at least one of the last two lines to return True.

Why couldn't Mathematica simplify expr to True in this case? Are there additional assumptions I should include so that it return True?

• One important thing to know is that not every function is supported. I haven't used this functionality much, so I might be wrong, but I think that Norm is simply not (fully) supported. Feb 3, 2016 at 15:46
• The strange thing is that the documentation for Norm explicitly says that For vectors, Norm[v] is Sqrt[v.Conjugate[v]]. expr = Dot[x, x] == Sqrt[Dot[x, Conjugate[x]]]^2 does yield true, so Norm is not considering x to be a vector. Feb 3, 2016 at 16:17

Assuming[{a, b, c} ∈ Reals, With[{x = {a, b, c}}, x.x == Norm[x]^2 // Simplify]]

True