Simply put, using a variable that's being incremented or decremented more than once inside the same expression has undefined behavior (technically, the rule is more complicated, but this is a good enough approximation). Meaning that there's no way of knowing beforehand what the value of Lower is after or during the expression.
For example:
(a++)+(++a)
(a++)+(a--)
(a++)+a