10.36/3.40 NO 10.74/3.46 proof of /export/starexec/sandbox/benchmark/theBenchmark.c 10.74/3.46 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 10.74/3.46 10.74/3.46 10.74/3.46 Termination of the given C Problem could be disproven: 10.74/3.46 10.74/3.46 (0) C Problem 10.74/3.46 (1) CToIRSProof [EQUIVALENT, 0 ms] 10.74/3.46 (2) IntTRS 10.74/3.46 (3) IRS2T2 [EQUIVALENT, 0 ms] 10.74/3.46 (4) T2IntSys 10.74/3.46 (5) T2 [COMPLETE, 1464 ms] 10.74/3.46 (6) NO 10.74/3.46 10.74/3.46 10.74/3.46 ---------------------------------------- 10.74/3.46 10.74/3.46 (0) 10.74/3.46 Obligation: 10.74/3.46 c file /export/starexec/sandbox/benchmark/theBenchmark.c 10.74/3.46 ---------------------------------------- 10.74/3.46 10.74/3.46 (1) CToIRSProof (EQUIVALENT) 10.74/3.46 Parsed C Integer Program as IRS. 10.74/3.46 ---------------------------------------- 10.74/3.46 10.74/3.46 (2) 10.74/3.46 Obligation: 10.74/3.46 Rules: 10.74/3.46 f1(i) -> f2(x_1) :|: TRUE 10.74/3.46 f7(x) -> f10(arith) :|: TRUE && arith = 0 - 5 10.74/3.46 f11(x1) -> f14(35) :|: TRUE 10.74/3.46 f12(x19) -> f15(x20) :|: TRUE && x20 = x19 - 1 10.74/3.46 f8(x3) -> f11(x3) :|: x3 > 30 10.74/3.46 f8(x4) -> f12(x4) :|: x4 <= 30 10.74/3.46 f14(x5) -> f13(x5) :|: TRUE 10.74/3.46 f15(x6) -> f13(x6) :|: TRUE 10.74/3.46 f4(x7) -> f7(x7) :|: x7 < 0 10.74/3.46 f4(x8) -> f8(x8) :|: x8 >= 0 10.74/3.46 f10(x9) -> f9(x9) :|: TRUE 10.74/3.46 f13(x10) -> f9(x10) :|: TRUE 10.74/3.46 f5(x11) -> f16(0) :|: TRUE 10.74/3.46 f3(x12) -> f4(x12) :|: 0 - 5 <= x12 && x12 <= 35 10.74/3.46 f3(x13) -> f5(x13) :|: 0 - 5 > x13 10.74/3.46 f3(x21) -> f5(x21) :|: x21 > 35 10.74/3.46 f9(x14) -> f6(x14) :|: TRUE 10.74/3.46 f16(x15) -> f6(x15) :|: TRUE 10.74/3.46 f2(x16) -> f3(x16) :|: x16 < 0 10.74/3.46 f2(x22) -> f3(x22) :|: x22 > 0 10.74/3.46 f6(x17) -> f2(x17) :|: TRUE 10.74/3.46 f2(x18) -> f17(x18) :|: x18 = 0 10.74/3.46 Start term: f1(i) 10.74/3.46 10.74/3.46 ---------------------------------------- 10.74/3.46 10.74/3.46 (3) IRS2T2 (EQUIVALENT) 10.74/3.46 Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: 10.74/3.46 10.74/3.46 (f1_1,1) 10.74/3.46 (f2_1,2) 10.74/3.46 (f7_1,3) 10.74/3.46 (f10_1,4) 10.74/3.46 (f11_1,5) 10.74/3.46 (f14_1,6) 10.74/3.46 (f12_1,7) 10.74/3.46 (f15_1,8) 10.74/3.46 (f8_1,9) 10.74/3.46 (f13_1,10) 10.74/3.46 (f4_1,11) 10.74/3.46 (f9_1,12) 10.74/3.46 (f5_1,13) 10.74/3.46 (f16_1,14) 10.74/3.46 (f3_1,15) 10.74/3.46 (f6_1,16) 10.74/3.46 (f17_1,17) 10.74/3.46 10.74/3.46 ---------------------------------------- 10.74/3.46 10.74/3.46 (4) 10.74/3.46 Obligation: 10.74/3.46 START: 1; 10.74/3.46 10.74/3.46 FROM: 1; 10.74/3.46 oldX0 := x0; 10.74/3.46 oldX1 := nondet(); 10.74/3.46 assume(0 = 0); 10.74/3.46 x0 := oldX1; 10.74/3.46 TO: 2; 10.74/3.46 10.74/3.46 FROM: 3; 10.74/3.46 oldX0 := x0; 10.74/3.46 oldX1 := -(5); 10.74/3.46 assume(0 = 0 && oldX1 = 0 - 5); 10.74/3.46 x0 := -(5); 10.74/3.46 TO: 4; 10.74/3.46 10.74/3.46 FROM: 5; 10.74/3.46 oldX0 := x0; 10.74/3.46 assume(0 = 0); 10.74/3.46 x0 := 35; 10.74/3.46 TO: 6; 10.74/3.46 10.74/3.46 FROM: 7; 10.74/3.46 oldX0 := x0; 10.74/3.46 oldX1 := -(1 - oldX0); 10.74/3.46 assume(0 = 0 && oldX1 = oldX0 - 1); 10.74/3.46 x0 := -(1 - oldX0); 10.74/3.46 TO: 8; 10.74/3.46 10.74/3.46 FROM: 9; 10.74/3.46 oldX0 := x0; 10.74/3.46 assume(oldX0 > 30); 10.74/3.46 x0 := oldX0; 10.74/3.46 TO: 5; 10.74/3.46 10.74/3.46 FROM: 9; 10.74/3.46 oldX0 := x0; 10.74/3.46 assume(oldX0 <= 30); 10.74/3.46 x0 := oldX0; 10.74/3.46 TO: 7; 10.74/3.46 10.74/3.46 FROM: 6; 10.74/3.46 oldX0 := x0; 10.74/3.46 assume(0 = 0); 10.74/3.46 x0 := oldX0; 10.74/3.46 TO: 10; 10.74/3.46 10.74/3.46 FROM: 8; 10.74/3.46 oldX0 := x0; 10.74/3.46 assume(0 = 0); 10.74/3.46 x0 := oldX0; 10.74/3.46 TO: 10; 10.74/3.46 10.74/3.46 FROM: 11; 10.74/3.46 oldX0 := x0; 10.74/3.46 assume(oldX0 < 0); 10.74/3.46 x0 := oldX0; 10.74/3.46 TO: 3; 10.74/3.46 10.74/3.46 FROM: 11; 10.74/3.46 oldX0 := x0; 10.74/3.46 assume(oldX0 >= 0); 10.74/3.46 x0 := oldX0; 10.74/3.46 TO: 9; 10.74/3.46 10.74/3.46 FROM: 4; 10.74/3.46 oldX0 := x0; 10.74/3.46 assume(0 = 0); 10.74/3.46 x0 := oldX0; 10.74/3.46 TO: 12; 10.74/3.46 10.74/3.46 FROM: 10; 10.74/3.46 oldX0 := x0; 10.74/3.46 assume(0 = 0); 10.74/3.46 x0 := oldX0; 10.74/3.46 TO: 12; 10.74/3.46 10.74/3.46 FROM: 13; 10.74/3.46 oldX0 := x0; 10.74/3.46 assume(0 = 0); 10.74/3.46 x0 := 0; 10.74/3.46 TO: 14; 10.74/3.46 10.74/3.46 FROM: 15; 10.74/3.46 oldX0 := x0; 10.74/3.46 assume(0 - 5 <= oldX0 && oldX0 <= 35); 10.74/3.46 x0 := oldX0; 10.74/3.46 TO: 11; 10.74/3.46 10.74/3.46 FROM: 15; 10.74/3.46 oldX0 := x0; 10.74/3.46 assume(0 - 5 > oldX0); 10.74/3.46 x0 := oldX0; 10.74/3.46 TO: 13; 10.74/3.46 10.74/3.46 FROM: 15; 10.74/3.46 oldX0 := x0; 10.74/3.46 assume(oldX0 > 35); 10.74/3.46 x0 := oldX0; 10.74/3.46 TO: 13; 10.74/3.46 10.74/3.46 FROM: 12; 10.74/3.46 oldX0 := x0; 10.74/3.46 assume(0 = 0); 10.74/3.46 x0 := oldX0; 10.74/3.46 TO: 16; 10.74/3.46 10.74/3.46 FROM: 14; 10.74/3.46 oldX0 := x0; 10.74/3.46 assume(0 = 0); 10.74/3.46 x0 := oldX0; 10.74/3.46 TO: 16; 10.74/3.46 10.74/3.46 FROM: 2; 10.74/3.46 oldX0 := x0; 10.74/3.46 assume(oldX0 < 0); 10.74/3.46 x0 := oldX0; 10.74/3.46 TO: 15; 10.74/3.46 10.74/3.46 FROM: 2; 10.74/3.46 oldX0 := x0; 10.74/3.46 assume(oldX0 > 0); 10.74/3.46 x0 := oldX0; 10.74/3.46 TO: 15; 10.74/3.46 10.74/3.46 FROM: 16; 10.74/3.46 oldX0 := x0; 10.74/3.46 assume(0 = 0); 10.74/3.46 x0 := oldX0; 10.74/3.46 TO: 2; 10.74/3.46 10.74/3.46 FROM: 2; 10.74/3.46 oldX0 := x0; 10.74/3.46 assume(oldX0 = 0); 10.74/3.46 x0 := oldX0; 10.74/3.46 TO: 17; 10.74/3.46 10.74/3.46 10.74/3.46 ---------------------------------------- 10.74/3.46 10.74/3.46 (5) T2 (COMPLETE) 10.74/3.46 Found this recurrent set for cutpoint 13: oldX1 == -5 and x0 == -5 10.74/3.46 10.74/3.46 ---------------------------------------- 10.74/3.46 10.74/3.46 (6) 10.74/3.46 NO 10.78/3.49 EOF