10.34/3.51 NO 10.34/3.52 proof of /export/starexec/sandbox/benchmark/theBenchmark.c 10.34/3.52 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 10.34/3.52 10.34/3.52 10.34/3.52 Termination of the given C Problem could be disproven: 10.34/3.52 10.34/3.52 (0) C Problem 10.34/3.52 (1) CToIRSProof [EQUIVALENT, 0 ms] 10.34/3.52 (2) IntTRS 10.34/3.52 (3) IRS2T2 [EQUIVALENT, 0 ms] 10.34/3.52 (4) T2IntSys 10.34/3.52 (5) T2 [COMPLETE, 1523 ms] 10.34/3.52 (6) NO 10.34/3.52 10.34/3.52 10.34/3.52 ---------------------------------------- 10.34/3.52 10.34/3.52 (0) 10.34/3.52 Obligation: 10.34/3.52 c file /export/starexec/sandbox/benchmark/theBenchmark.c 10.34/3.52 ---------------------------------------- 10.34/3.52 10.34/3.52 (1) CToIRSProof (EQUIVALENT) 10.34/3.52 Parsed C Integer Program as IRS. 10.34/3.52 ---------------------------------------- 10.34/3.52 10.34/3.52 (2) 10.34/3.52 Obligation: 10.34/3.52 Rules: 10.34/3.52 f1(i) -> f2(0) :|: TRUE 10.34/3.52 f4(x) -> f7(arith) :|: TRUE && arith = x + 1 10.34/3.52 f5(x9) -> f8(x10) :|: TRUE && x10 = x9 - 1 10.34/3.52 f3(x2) -> f4(x2) :|: x2 < 50 10.34/3.52 f3(x3) -> f5(x3) :|: x3 >= 50 10.34/3.52 f7(x4) -> f6(x4) :|: TRUE 10.34/3.52 f8(x5) -> f6(x5) :|: TRUE 10.34/3.52 f2(x6) -> f3(x6) :|: x6 < 100 10.34/3.52 f6(x7) -> f2(x7) :|: TRUE 10.34/3.52 f2(x8) -> f9(x8) :|: x8 >= 100 10.34/3.52 Start term: f1(i) 10.34/3.52 10.34/3.52 ---------------------------------------- 10.34/3.52 10.34/3.52 (3) IRS2T2 (EQUIVALENT) 10.34/3.52 Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: 10.34/3.52 10.34/3.52 (f1_1,1) 10.34/3.52 (f2_1,2) 10.34/3.52 (f4_1,3) 10.34/3.52 (f7_1,4) 10.34/3.52 (f5_1,5) 10.34/3.52 (f8_1,6) 10.34/3.52 (f3_1,7) 10.34/3.52 (f6_1,8) 10.34/3.52 (f9_1,9) 10.34/3.52 10.34/3.52 ---------------------------------------- 10.34/3.52 10.34/3.52 (4) 10.34/3.52 Obligation: 10.34/3.52 START: 1; 10.34/3.52 10.34/3.52 FROM: 1; 10.34/3.52 oldX0 := x0; 10.34/3.52 assume(0 = 0); 10.34/3.52 x0 := 0; 10.34/3.52 TO: 2; 10.34/3.52 10.34/3.52 FROM: 3; 10.34/3.52 oldX0 := x0; 10.34/3.52 oldX1 := -(-(oldX0 + 1)); 10.34/3.52 assume(0 = 0 && oldX1 = oldX0 + 1); 10.34/3.52 x0 := -(-(oldX0 + 1)); 10.34/3.52 TO: 4; 10.34/3.52 10.34/3.52 FROM: 5; 10.34/3.52 oldX0 := x0; 10.34/3.52 oldX1 := -(1 - oldX0); 10.34/3.52 assume(0 = 0 && oldX1 = oldX0 - 1); 10.34/3.52 x0 := -(1 - oldX0); 10.34/3.52 TO: 6; 10.34/3.52 10.34/3.52 FROM: 7; 10.34/3.52 oldX0 := x0; 10.34/3.52 assume(oldX0 < 50); 10.34/3.52 x0 := oldX0; 10.34/3.52 TO: 3; 10.34/3.52 10.34/3.52 FROM: 7; 10.34/3.52 oldX0 := x0; 10.34/3.52 assume(oldX0 >= 50); 10.34/3.52 x0 := oldX0; 10.34/3.52 TO: 5; 10.34/3.52 10.34/3.52 FROM: 4; 10.34/3.52 oldX0 := x0; 10.34/3.52 assume(0 = 0); 10.34/3.52 x0 := oldX0; 10.34/3.52 TO: 8; 10.34/3.52 10.34/3.52 FROM: 6; 10.34/3.52 oldX0 := x0; 10.34/3.52 assume(0 = 0); 10.34/3.52 x0 := oldX0; 10.34/3.52 TO: 8; 10.34/3.52 10.34/3.52 FROM: 2; 10.34/3.52 oldX0 := x0; 10.34/3.52 assume(oldX0 < 100); 10.34/3.52 x0 := oldX0; 10.34/3.52 TO: 7; 10.34/3.52 10.34/3.52 FROM: 8; 10.34/3.52 oldX0 := x0; 10.34/3.52 assume(0 = 0); 10.34/3.52 x0 := oldX0; 10.34/3.52 TO: 2; 10.34/3.52 10.34/3.52 FROM: 2; 10.34/3.52 oldX0 := x0; 10.34/3.52 assume(oldX0 >= 100); 10.34/3.52 x0 := oldX0; 10.34/3.52 TO: 9; 10.34/3.52 10.34/3.52 10.34/3.52 ---------------------------------------- 10.34/3.52 10.34/3.52 (5) T2 (COMPLETE) 10.34/3.52 Found this recurrent set for cutpoint 8: 5 <= x0 and x0 <= 5 and x0+-99 <= 0 10.34/3.52 10.34/3.52 ---------------------------------------- 10.34/3.52 10.34/3.52 (6) 10.34/3.52 NO 10.34/3.55 EOF