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