'Multiply two tensors using Einstein summation convention.
If the two tensors have an index in common, one contravariant
and the other covariant, in their product the indices are summed
Examples
>>> from sympy.tensor.tensor import TensorIndexType, tensor_indices, tensorhead
>>> Lorentz = TensorIndexType(\'Lorentz\', dummy_fmt=\'L\')
>>> m0, m1, m2 = tensor_indices(\'m0,m1,m2\', Lorentz)
>>> g = Lorentz.metric
>>> p, q = tensorhead(\'p,q\', [Lorentz], [[1]])
>>> t1 = p(m0)
>>> t2 = q(-m0)
>>> t1*t2
p(L_0)*q(-L_0)'

def __mul__(self, other):

    other = sympify(other)
    if (not isinstance(other, TensExpr)):
        return TensMul(is_canon_bp=self._is_canon_bp, *(self.args + (other,)))
    if isinstance(other, TensAdd):
        return TensAdd(*[(self * x) for x in other.args])
    if isinstance(other, TensMul):
        return TensMul(*(self.args + other.args))
    return TensMul(*(self.args + (other,)))
