handle non-affine conditions in while loops
We also extend the meaning of an argument to an access expression
to also allow non-single valued arguments. In these cases, the constraint
on the filter values is assumed to hold for all accessed filter elements.
We use this to make the body of the loop depend on the while condition
evaluating to true for all iterations of the loop up to and including the
current iteration.
The statement that computes the while condition is created in such
a way that it depends on the condition evaluating to true for all
previous iterations.
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>