/export/starexec/sandbox2/solver/bin/starexec_run_standard /export/starexec/sandbox2/benchmark/theBenchmark.jar /export/starexec/sandbox2/output/output_files -------------------------------------------------------------------------------- NO proof of /export/starexec/sandbox2/benchmark/theBenchmark.jar # AProVE Commit ID: 794c25de1cacf0d048858bcd21c9a779e1221865 marcel 20200619 unpublished dirty termination of the given Bare JBC problem could be disproven: (0) Bare JBC problem (1) BareJBCToJBCProof [EQUIVALENT, 96 ms] (2) JBC problem (3) JBCNonTerm [COMPLETE, 252 ms] (4) NO ---------------------------------------- (0) Obligation: need to prove termination of the following program: public class Choose { public static void main(String[] args) { int i = 3; while (i >= 3) { if (i > 5) i += 3; else if (i > 10) i -= 2; else i++; } } } ---------------------------------------- (1) BareJBCToJBCProof (EQUIVALENT) initialized classpath ---------------------------------------- (2) Obligation: need to prove termination of the following program: public class Choose { public static void main(String[] args) { int i = 3; while (i >= 3) { if (i > 5) i += 3; else if (i > 10) i -= 2; else i++; } } } ---------------------------------------- (3) JBCNonTerm (COMPLETE) Reached a loop using the following run: 0: YES: (JL1) 1: YES: (JL1) 2: YES: (JL1) 3: YES: (JL1) 4: YES: (JL1) 5: YES: (JL1) 6: YES: (JL1) 7: YES: (JL1) 8: YES: (JL1) 9: YES: (JL1) 10: YES: (JL1) 11: YES: (JL1) 12: YES: (JL1) 13: YES: (JL1) 14: YES: (JL1) 15: YES: (JL1) 16: YES: (JL1) 17: YES: (JL1) 18: YES: (JL1) 19: YES: (JL1) 20: YES: (JL1) 21: YES: (JL1) 22: YES: (JL1) 23: YES: (JL1) 24: YES: (JL1) 25: YES: (JL1) 26: YES: (JL1) 27: YES: (JL1) 28: YES: (JL1) 29: YES: (JL1) 30: YES: (JL1) 31: YES: (JL1) 32: YES: (JL1) 33: YES: (JL1) 34: YES: (JL1) 35: YES: (JL1) Start state of loop: [o12(lv_0_0)] o12([java.lang.String...]): Object() -->{java.lang.Object...} i7: [3,+inf)(l3) YES: (JL1) In the loop head node, references [i7] were interesting. All methods calls in the loop body are side-effect free, hence they can be ignored. By SMT, we could prove (3 <= initial_i7 and (((path1_i7 = path1_i10 and path1_i11 = (path1_i10 + 3) and path1_i11 = res_i7 and path1_i7 = initial_i7) and (path1_i7 >= 3 and T and 5 = 5 and path1_i10 > 5)) and ((res1_i7 = res1_i10 and res1_i11 = (res1_i10 + 3) and res_i7 = res1_i7) and !(res1_i7 >= 3 and T and 5 = 5 and res1_i10 > 5)))) to be UNSAT. Consequently, the loop will not terminate. ---------------------------------------- (4) NO