properly handle generic conditions in for loops
Pet accepts any affine condition in a for loop, but the construction
of the corresponding iteration domain would assume that the condition
represents an upper bound on the loop iterator, meaning that if it
is valid for a particular value of the loop iterator, it is also
valid for all previous values.
In general, we need to explicitly impose the constraint that the condition
also holds for all previous iterations.
New test case inspired by the PolyOpt manual.
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>