7.04/2.81 NO 7.11/2.82 proof of /export/starexec/sandbox/benchmark/theBenchmark.jar 7.11/2.82 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 7.11/2.82 7.11/2.82 7.11/2.82 termination of the given Bare JBC problem could be disproven: 7.11/2.82 7.11/2.82 (0) Bare JBC problem 7.11/2.82 (1) BareJBCToJBCProof [EQUIVALENT, 96 ms] 7.11/2.82 (2) JBC problem 7.11/2.82 (3) JBCNonTerm [COMPLETE, 206 ms] 7.11/2.82 (4) NO 7.11/2.82 7.11/2.82 7.11/2.82 ---------------------------------------- 7.11/2.82 7.11/2.82 (0) 7.11/2.82 Obligation: 7.11/2.82 need to prove termination of the following program: 7.11/2.82 /** 7.11/2.82 * An infinite loop continously throwing and catching an exception. 7.11/2.82 * Since the exception is thrown before the statement that makes the loop 7.11/2.82 * progress, that loop diverges. 7.11/2.82 * 7.11/2.82 * The call to main() diverges. 7.11/2.82 * 7.11/2.82 * Julia + BinTerm cannot prove that the call to main() terminates. 7.11/2.82 * 7.11/2.82 * @author Fausto Spoto 7.11/2.82 */ 7.11/2.82 7.11/2.82 public class Exc1 { 7.11/2.82 public static void main(String[] args) { 7.11/2.82 int i = 0; 7.11/2.82 7.11/2.82 while (true) { 7.11/2.82 try { 7.11/2.82 if (i > 10) throw null; 7.11/2.82 i++; 7.11/2.82 } 7.11/2.82 catch (NullPointerException e) {} 7.11/2.82 } 7.11/2.82 } 7.11/2.82 } 7.11/2.82 7.11/2.82 7.11/2.82 ---------------------------------------- 7.11/2.82 7.11/2.82 (1) BareJBCToJBCProof (EQUIVALENT) 7.11/2.82 initialized classpath 7.11/2.82 ---------------------------------------- 7.11/2.82 7.11/2.82 (2) 7.11/2.82 Obligation: 7.11/2.82 need to prove termination of the following program: 7.11/2.82 /** 7.11/2.82 * An infinite loop continously throwing and catching an exception. 7.11/2.82 * Since the exception is thrown before the statement that makes the loop 7.11/2.82 * progress, that loop diverges. 7.11/2.82 * 7.11/2.82 * The call to main() diverges. 7.11/2.82 * 7.11/2.82 * Julia + BinTerm cannot prove that the call to main() terminates. 7.11/2.82 * 7.11/2.82 * @author Fausto Spoto 7.11/2.82 */ 7.11/2.82 7.11/2.82 public class Exc1 { 7.11/2.82 public static void main(String[] args) { 7.11/2.82 int i = 0; 7.11/2.82 7.11/2.82 while (true) { 7.11/2.82 try { 7.11/2.82 if (i > 10) throw null; 7.11/2.82 i++; 7.11/2.82 } 7.11/2.82 catch (NullPointerException e) {} 7.11/2.82 } 7.11/2.82 } 7.11/2.82 } 7.11/2.82 7.11/2.82 7.11/2.82 ---------------------------------------- 7.11/2.82 7.11/2.82 (3) JBCNonTerm (COMPLETE) 7.11/2.82 Symbolic evaluation of method public static main([Ljava/lang/String;)V never reaches a method end (by explicit return or exception). 7.11/2.82 7.11/2.82 As this is the main method, we can conclude non-termination of the input program. 7.11/2.82 ---------------------------------------- 7.11/2.82 7.11/2.82 (4) 7.11/2.82 NO 7.13/2.89 EOF