/* * Date: 2014-06-08 * Author: leike@informatik.uni-freiburg.de * * * This is Example 2.9 from the test suit used in * * Termination Proofs for Linear Simple Loops. * Hong Yi Chen, Shaked Flur, and Supratik Mukhopadhyay. * SAS 2012. * * The test suite is available at the following URL. * https://tigerbytes2.lsu.edu/users/hchen11/lsl/LSL_benchmark.txt * * Comment: terminating, non-linear */ typedef enum {false, true} bool; extern int __VERIFIER_nondet_int(void); int main() { int x, y, n; x = __VERIFIER_nondet_int(); y = __VERIFIER_nondet_int(); n = __VERIFIER_nondet_int(); while (x > 0 && x < n) { x = -x + y - 5; y = 2*y; } return 0; }