4.74/2.19 NO 4.84/2.20 proof of /export/starexec/sandbox/benchmark/theBenchmark.jar 4.84/2.20 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 4.84/2.20 4.84/2.20 4.84/2.20 termination of the given Bare JBC problem could be disproven: 4.84/2.20 4.84/2.20 (0) Bare JBC problem 4.84/2.20 (1) BareJBCToJBCProof [EQUIVALENT, 95 ms] 4.84/2.20 (2) JBC problem 4.84/2.20 (3) JBCNonTerm [COMPLETE, 247 ms] 4.84/2.20 (4) NO 4.84/2.20 4.84/2.20 4.84/2.20 ---------------------------------------- 4.84/2.20 4.84/2.20 (0) 4.84/2.20 Obligation: 4.84/2.20 need to prove termination of the following program: 4.84/2.20 public class NO_10 { 4.84/2.20 public static void main(String args[]) { 4.84/2.20 int j = 100; 4.84/2.20 for (int i = 0; i < j; i++) j++; 4.84/2.20 } 4.84/2.20 } 4.84/2.20 4.84/2.20 4.84/2.20 ---------------------------------------- 4.84/2.20 4.84/2.20 (1) BareJBCToJBCProof (EQUIVALENT) 4.84/2.20 initialized classpath 4.84/2.20 ---------------------------------------- 4.84/2.20 4.84/2.20 (2) 4.84/2.20 Obligation: 4.84/2.20 need to prove termination of the following program: 4.84/2.20 public class NO_10 { 4.84/2.20 public static void main(String args[]) { 4.84/2.20 int j = 100; 4.84/2.20 for (int i = 0; i < j; i++) j++; 4.84/2.20 } 4.84/2.20 } 4.84/2.20 4.84/2.20 4.84/2.20 ---------------------------------------- 4.84/2.20 4.84/2.20 (3) JBCNonTerm (COMPLETE) 4.84/2.20 Reached a loop using the following run: 4.84/2.20 4.84/2.20 0: 4.84/2.20 YES: (JL1) 4.84/2.20 1: 4.84/2.20 YES: (JL1) 4.84/2.20 2: 4.84/2.20 YES: (JL1) 4.84/2.20 3: 4.84/2.20 YES: (JL1) 4.84/2.20 4: 4.84/2.20 YES: (JL1) 4.84/2.20 Start state of loop: 4.84/2.20 4.84/2.20 [o16(lv_0_0)] 4.84/2.20 4.84/2.20 o16([java.lang.String...]): Object() -->{java.lang.Object...} 4.84/2.20 i21: [100,+inf)(l4) 4.84/2.20 i22: [0,+inf)(l4) 4.84/2.20 YES: (JL1) 4.84/2.20 4.84/2.20 4.84/2.20 In the loop head node, references [i22, i21] were interesting. 4.84/2.20 4.84/2.20 All methods calls in the loop body are side-effect free, hence they can be ignored. 4.84/2.20 4.84/2.20 By SMT, we could prove 4.84/2.20 4.84/2.20 ((100 <= initial_i21 and 0 <= initial_i22) and (((path1_i27 = (path1_i21 + 1) and path1_i28 = (path1_i22 + 1) and path1_i27 = res_i21 and path1_i28 = res_i22 and path1_i21 = initial_i21 and path1_i22 = initial_i22) and (path1_i22 < path1_i21 and path1_i22 < path1_i21)) and ((res1_i27 = (res1_i21 + 1) and res1_i28 = (res1_i22 + 1) and res_i21 = res1_i21 and res_i22 = res1_i22) and !(res1_i22 < res1_i21 and res1_i22 < res1_i21)))) 4.84/2.20 4.84/2.20 to be UNSAT. Consequently, the loop will not terminate. 4.84/2.20 ---------------------------------------- 4.84/2.20 4.84/2.20 (4) 4.84/2.20 NO 4.86/2.23 EOF