9.30/3.29 NO 9.30/3.29 proof of /export/starexec/sandbox/benchmark/theBenchmark.c 9.30/3.29 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 9.30/3.29 9.30/3.29 9.30/3.29 Termination of the given C Problem could be disproven: 9.30/3.29 9.30/3.29 (0) C Problem 9.30/3.29 (1) CToIRSProof [EQUIVALENT, 0 ms] 9.30/3.29 (2) IntTRS 9.30/3.29 (3) IRS2T2 [EQUIVALENT, 0 ms] 9.30/3.29 (4) T2IntSys 9.30/3.29 (5) T2 [COMPLETE, 1477 ms] 9.30/3.29 (6) NO 9.30/3.29 9.30/3.29 9.30/3.29 ---------------------------------------- 9.30/3.29 9.30/3.29 (0) 9.30/3.29 Obligation: 9.30/3.29 c file /export/starexec/sandbox/benchmark/theBenchmark.c 9.30/3.29 ---------------------------------------- 9.30/3.29 9.30/3.29 (1) CToIRSProof (EQUIVALENT) 9.30/3.29 Parsed C Integer Program as IRS. 9.30/3.29 ---------------------------------------- 9.30/3.29 9.30/3.29 (2) 9.30/3.29 Obligation: 9.30/3.29 Rules: 9.30/3.29 f1(a, b, am, bm) -> f2(a, b, a, bm) :|: TRUE 9.30/3.29 f2(x, x1, x2, x3) -> f3(x, x1, x2, x1) :|: TRUE 9.30/3.29 f5(x4, x5, x6, x7) -> f8(x4, x5, x6, arith) :|: TRUE && arith = x7 + x5 9.30/3.29 f6(x40, x41, x42, x43) -> f9(x40, x41, x44, x43) :|: TRUE && x44 = x42 + x40 9.30/3.29 f4(x12, x13, x14, x15) -> f5(x12, x13, x14, x15) :|: x14 > x15 9.30/3.29 f4(x16, x17, x18, x19) -> f6(x16, x17, x18, x19) :|: x18 <= x19 9.30/3.29 f8(x20, x21, x22, x23) -> f7(x20, x21, x22, x23) :|: TRUE 9.30/3.30 f9(x24, x25, x26, x27) -> f7(x24, x25, x26, x27) :|: TRUE 9.30/3.30 f3(x28, x29, x30, x31) -> f4(x28, x29, x30, x31) :|: x30 < x31 9.30/3.30 f3(x45, x46, x47, x48) -> f4(x45, x46, x47, x48) :|: x47 > x48 9.30/3.30 f7(x32, x33, x34, x35) -> f3(x32, x33, x34, x35) :|: TRUE 9.30/3.30 f3(x36, x37, x38, x39) -> f10(x36, x37, x38, x39) :|: x38 = x39 9.30/3.30 Start term: f1(a, b, am, bm) 9.30/3.30 9.30/3.30 ---------------------------------------- 9.30/3.30 9.30/3.30 (3) IRS2T2 (EQUIVALENT) 9.30/3.30 Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: 9.30/3.30 9.30/3.30 (f1_4,1) 9.30/3.30 (f2_4,2) 9.30/3.30 (f3_4,3) 9.30/3.30 (f5_4,4) 9.30/3.30 (f8_4,5) 9.30/3.30 (f6_4,6) 9.30/3.30 (f9_4,7) 9.30/3.30 (f4_4,8) 9.30/3.30 (f7_4,9) 9.30/3.30 (f10_4,10) 9.30/3.30 9.30/3.30 ---------------------------------------- 9.30/3.30 9.30/3.30 (4) 9.30/3.30 Obligation: 9.30/3.30 START: 1; 9.30/3.30 9.30/3.30 FROM: 1; 9.30/3.30 oldX0 := x0; 9.30/3.30 oldX1 := x1; 9.30/3.30 oldX2 := x2; 9.30/3.30 oldX3 := x3; 9.30/3.30 assume(0 = 0); 9.30/3.30 x0 := oldX0; 9.30/3.30 x1 := oldX1; 9.30/3.30 x2 := oldX0; 9.30/3.30 x3 := oldX3; 9.30/3.30 TO: 2; 9.30/3.30 9.30/3.30 FROM: 2; 9.30/3.30 oldX0 := x0; 9.30/3.30 oldX1 := x1; 9.30/3.30 oldX2 := x2; 9.30/3.30 oldX3 := x3; 9.30/3.30 assume(0 = 0); 9.30/3.30 x0 := oldX0; 9.30/3.30 x1 := oldX1; 9.30/3.30 x2 := oldX2; 9.30/3.30 x3 := oldX1; 9.30/3.30 TO: 3; 9.30/3.30 9.30/3.30 FROM: 4; 9.30/3.30 oldX0 := x0; 9.30/3.30 oldX1 := x1; 9.30/3.30 oldX2 := x2; 9.30/3.30 oldX3 := x3; 9.30/3.30 oldX4 := -(-(oldX3 + oldX1)); 9.30/3.30 assume(0 = 0 && oldX4 = oldX3 + oldX1); 9.30/3.30 x0 := oldX0; 9.30/3.30 x1 := oldX1; 9.30/3.30 x2 := oldX2; 9.30/3.30 x3 := -(-(oldX3 + oldX1)); 9.30/3.30 TO: 5; 9.30/3.30 9.30/3.30 FROM: 6; 9.30/3.30 oldX0 := x0; 9.30/3.30 oldX1 := x1; 9.30/3.30 oldX2 := x2; 9.30/3.30 oldX3 := x3; 9.30/3.30 oldX4 := -(-(oldX2 + oldX0)); 9.30/3.30 assume(0 = 0 && oldX4 = oldX2 + oldX0); 9.30/3.30 x0 := oldX0; 9.30/3.30 x1 := oldX1; 9.30/3.30 x2 := -(-(oldX2 + oldX0)); 9.30/3.30 x3 := oldX3; 9.30/3.30 TO: 7; 9.30/3.30 9.30/3.30 FROM: 8; 9.30/3.30 oldX0 := x0; 9.30/3.30 oldX1 := x1; 9.30/3.30 oldX2 := x2; 9.30/3.30 oldX3 := x3; 9.30/3.30 assume(oldX2 > oldX3); 9.30/3.30 x0 := oldX0; 9.30/3.30 x1 := oldX1; 9.30/3.30 x2 := oldX2; 9.30/3.30 x3 := oldX3; 9.30/3.30 TO: 4; 9.30/3.30 9.30/3.30 FROM: 8; 9.30/3.30 oldX0 := x0; 9.30/3.30 oldX1 := x1; 9.30/3.30 oldX2 := x2; 9.30/3.30 oldX3 := x3; 9.30/3.30 assume(oldX2 <= oldX3); 9.30/3.30 x0 := oldX0; 9.30/3.30 x1 := oldX1; 9.30/3.30 x2 := oldX2; 9.30/3.30 x3 := oldX3; 9.30/3.30 TO: 6; 9.30/3.30 9.30/3.30 FROM: 5; 9.30/3.30 oldX0 := x0; 9.30/3.30 oldX1 := x1; 9.30/3.30 oldX2 := x2; 9.30/3.30 oldX3 := x3; 9.30/3.30 assume(0 = 0); 9.30/3.30 x0 := oldX0; 9.30/3.30 x1 := oldX1; 9.30/3.30 x2 := oldX2; 9.30/3.30 x3 := oldX3; 9.30/3.30 TO: 9; 9.30/3.30 9.30/3.30 FROM: 7; 9.30/3.30 oldX0 := x0; 9.30/3.30 oldX1 := x1; 9.30/3.30 oldX2 := x2; 9.30/3.30 oldX3 := x3; 9.30/3.30 assume(0 = 0); 9.30/3.30 x0 := oldX0; 9.30/3.30 x1 := oldX1; 9.30/3.30 x2 := oldX2; 9.30/3.30 x3 := oldX3; 9.30/3.30 TO: 9; 9.30/3.30 9.30/3.30 FROM: 3; 9.30/3.30 oldX0 := x0; 9.30/3.30 oldX1 := x1; 9.30/3.30 oldX2 := x2; 9.30/3.30 oldX3 := x3; 9.30/3.30 assume(oldX2 < oldX3); 9.30/3.30 x0 := oldX0; 9.30/3.30 x1 := oldX1; 9.30/3.30 x2 := oldX2; 9.30/3.30 x3 := oldX3; 9.30/3.30 TO: 8; 9.30/3.30 9.30/3.30 FROM: 3; 9.30/3.30 oldX0 := x0; 9.30/3.30 oldX1 := x1; 9.30/3.30 oldX2 := x2; 9.30/3.30 oldX3 := x3; 9.30/3.30 assume(oldX2 > oldX3); 9.30/3.30 x0 := oldX0; 9.30/3.30 x1 := oldX1; 9.30/3.30 x2 := oldX2; 9.30/3.30 x3 := oldX3; 9.30/3.30 TO: 8; 9.30/3.30 9.30/3.30 FROM: 9; 9.30/3.30 oldX0 := x0; 9.30/3.30 oldX1 := x1; 9.30/3.30 oldX2 := x2; 9.30/3.30 oldX3 := x3; 9.30/3.30 assume(0 = 0); 9.30/3.30 x0 := oldX0; 9.30/3.30 x1 := oldX1; 9.30/3.30 x2 := oldX2; 9.30/3.30 x3 := oldX3; 9.30/3.30 TO: 3; 9.30/3.30 9.30/3.30 FROM: 3; 9.30/3.30 oldX0 := x0; 9.30/3.30 oldX1 := x1; 9.30/3.30 oldX2 := x2; 9.30/3.30 oldX3 := x3; 9.30/3.30 assume(oldX2 = oldX3); 9.30/3.30 x0 := oldX0; 9.30/3.30 x1 := oldX1; 9.30/3.30 x2 := oldX2; 9.30/3.30 x3 := oldX3; 9.30/3.30 TO: 10; 9.30/3.30 9.30/3.30 9.30/3.30 ---------------------------------------- 9.30/3.30 9.30/3.30 (5) T2 (COMPLETE) 9.30/3.30 Found this recurrent set for cutpoint 8: oldX0 == 0 and oldX1 == 1 and x0 == 0 and x1 == 1 and x2 == 0 and x3 == 1 9.30/3.30 9.30/3.30 ---------------------------------------- 9.30/3.30 9.30/3.30 (6) 9.30/3.30 NO 9.52/3.38 EOF