if (!tensorSubstitutions.containsKey(split.factor)) {
//map does not contains rule for current scalar (e.g. k_{i}*k^{i})
Tensor s;
//adding new rule for the scalar, e.g. k_{i}*k^{i} = scalar2
tensorSubstitutions.put(split.factor, s = generator.take());
//replacing this scalar with symbol
iterator.set(Tensors.multiply(s, split.summand));
} else
//map is already contains rule for current scalar
//replacing this scalar with symbol from map