public Pair<Interval, ProductDomain<NonRelationalDomain<Bool>, NonRelationalDomain<Interval>>> processIntegerValueChange(
Pair<Interval, ProductDomain<NonRelationalDomain<Bool>, NonRelationalDomain<Interval>>> input,
Expression ofWhat, int delta, boolean postfixOrPrefix) {
Interval valueBeforeChange = input.left;
Interval valueAfterChange = sem.delta(valueBeforeChange, delta);
Variable var = EvaluationUtils.tryGetVariable(ofWhat);
NonRelationalDomain<Interval> output = input.right.getRight();
if (var != null && EvaluationUtils.isIntegerType(ofWhat))
output = output.updateVariable(var, valueAfterChange);
return Pair.create(postfixOrPrefix ? valueBeforeChange : valueAfterChange, input.right.setRight(output));
}