4.43/1.99 YES
4.43/2.00 proof of /export/starexec/sandbox2/benchmark/theBenchmark.jar
4.43/2.00 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty
4.43/2.00
4.43/2.00
4.43/2.00 termination of the given Bare JBC problem could be proven:
4.43/2.00
4.43/2.00 (0) Bare JBC problem
4.43/2.00 (1) BareJBCToJBCProof [EQUIVALENT, 95 ms]
4.43/2.00 (2) JBC problem
4.43/2.00 (3) JBCToGraph [EQUIVALENT, 278 ms]
4.43/2.00 (4) JBCTerminationGraph
4.43/2.00 (5) TerminationGraphToSCCProof [SOUND, 0 ms]
4.43/2.00 (6) TRUE
4.43/2.00
4.43/2.00
4.43/2.00 ----------------------------------------
4.43/2.00
4.43/2.00 (0)
4.43/2.00 Obligation:
4.43/2.00 need to prove termination of the following program:
4.43/2.00 /**
4.43/2.00 * A loop continously throwing and catching an exception.
4.43/2.00 * The exception is thrown before the statement that makes the loop
4.43/2.00 * progress, but the exception body contains another statement making the
4.43/2.00 * loop progress.
4.43/2.00 *
4.43/2.00 * All calls terminate.
4.43/2.00 *
4.43/2.00 * Julia + BinTerm prove that all calls terminate.
4.43/2.00 *
4.43/2.00 * @author Fausto Spoto
4.43/2.00 */
4.43/2.00
4.43/2.00 public class Exc5 {
4.43/2.00 public static void main(String[] args) {
4.43/2.00 int i = 0;
4.43/2.00
4.43/2.00 while (i < 20) {
4.43/2.00 i--;
4.43/2.00
4.43/2.00 try {
4.43/2.00 if (i > 10) throw null;
4.43/2.00 i += 2;
4.43/2.00 }
4.43/2.00 catch (NullPointerException e) {
4.43/2.00 i += 2;
4.43/2.00 }
4.43/2.00 }
4.43/2.00 }
4.43/2.00 }
4.43/2.00
4.43/2.00
4.43/2.00 ----------------------------------------
4.43/2.00
4.43/2.00 (1) BareJBCToJBCProof (EQUIVALENT)
4.43/2.00 initialized classpath
4.43/2.00 ----------------------------------------
4.43/2.00
4.43/2.00 (2)
4.43/2.00 Obligation:
4.43/2.00 need to prove termination of the following program:
4.43/2.00 /**
4.43/2.00 * A loop continously throwing and catching an exception.
4.43/2.00 * The exception is thrown before the statement that makes the loop
4.43/2.00 * progress, but the exception body contains another statement making the
4.43/2.00 * loop progress.
4.43/2.00 *
4.43/2.00 * All calls terminate.
4.43/2.00 *
4.43/2.00 * Julia + BinTerm prove that all calls terminate.
4.43/2.00 *
4.43/2.00 * @author Fausto Spoto
4.43/2.00 */
4.43/2.00
4.43/2.00 public class Exc5 {
4.43/2.00 public static void main(String[] args) {
4.43/2.00 int i = 0;
4.43/2.00
4.43/2.00 while (i < 20) {
4.43/2.00 i--;
4.43/2.00
4.43/2.00 try {
4.43/2.00 if (i > 10) throw null;
4.43/2.00 i += 2;
4.43/2.00 }
4.43/2.00 catch (NullPointerException e) {
4.43/2.00 i += 2;
4.43/2.00 }
4.43/2.00 }
4.43/2.00 }
4.43/2.00 }
4.43/2.00
4.43/2.00
4.43/2.00 ----------------------------------------
4.43/2.00
4.43/2.00 (3) JBCToGraph (EQUIVALENT)
4.43/2.00 Constructed TerminationGraph.
4.43/2.00 ----------------------------------------
4.43/2.00
4.43/2.00 (4)
4.43/2.00 Obligation:
4.43/2.00 Termination Graph based on JBC Program:
4.43/2.00 Exc5.main([Ljava/lang/String;)V: Graph of 371 nodes with 0 SCCs.
4.43/2.00
4.43/2.00
4.43/2.00
4.43/2.00
4.43/2.00
4.43/2.00 ----------------------------------------
4.43/2.00
4.43/2.00 (5) TerminationGraphToSCCProof (SOUND)
4.43/2.00 Proven termination by absence of SCCs
4.43/2.00 ----------------------------------------
4.43/2.00
4.43/2.00 (6)
4.43/2.00 TRUE
4.47/2.05 EOF