3.80/1.80 YES 3.80/1.81 proof of /export/starexec/sandbox/benchmark/theBenchmark.jar 3.80/1.81 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 3.80/1.81 3.80/1.81 3.80/1.81 termination of the given Bare JBC problem could be proven: 3.80/1.81 3.80/1.81 (0) Bare JBC problem 3.80/1.81 (1) BareJBCToJBCProof [EQUIVALENT, 94 ms] 3.80/1.81 (2) JBC problem 3.80/1.81 (3) JBCToGraph [EQUIVALENT, 147 ms] 3.80/1.81 (4) JBCTerminationGraph 3.80/1.81 (5) TerminationGraphToSCCProof [SOUND, 0 ms] 3.80/1.81 (6) TRUE 3.80/1.81 3.80/1.81 3.80/1.81 ---------------------------------------- 3.80/1.81 3.80/1.81 (0) 3.80/1.81 Obligation: 3.80/1.81 need to prove termination of the following program: 3.80/1.81 /** 3.80/1.81 * A loop whose termination depends on a break statement. 3.80/1.81 * 3.80/1.81 * All calls terminate. 3.80/1.81 * 3.80/1.81 * Julia + BinTerm prove that all calls terminate 3.80/1.81 * 3.80/1.81 * @author Fausto Spoto 3.80/1.81 */ 3.80/1.81 3.80/1.81 public class Break { 3.80/1.81 3.80/1.81 public static void main(String[] args) { 3.80/1.81 int i = 0; 3.80/1.81 3.80/1.81 while (true) { 3.80/1.81 if (i > 10) break; 3.80/1.81 i++; 3.80/1.81 } 3.80/1.81 } 3.80/1.81 } 3.80/1.81 3.80/1.81 3.80/1.81 ---------------------------------------- 3.80/1.81 3.80/1.81 (1) BareJBCToJBCProof (EQUIVALENT) 3.80/1.81 initialized classpath 3.80/1.81 ---------------------------------------- 3.80/1.81 3.80/1.81 (2) 3.80/1.81 Obligation: 3.80/1.81 need to prove termination of the following program: 3.80/1.81 /** 3.80/1.81 * A loop whose termination depends on a break statement. 3.80/1.81 * 3.80/1.81 * All calls terminate. 3.80/1.81 * 3.80/1.81 * Julia + BinTerm prove that all calls terminate 3.80/1.81 * 3.80/1.81 * @author Fausto Spoto 3.80/1.81 */ 3.80/1.81 3.80/1.81 public class Break { 3.80/1.81 3.80/1.81 public static void main(String[] args) { 3.80/1.81 int i = 0; 3.80/1.81 3.80/1.81 while (true) { 3.80/1.81 if (i > 10) break; 3.80/1.81 i++; 3.80/1.81 } 3.80/1.81 } 3.80/1.81 } 3.80/1.81 3.80/1.81 3.80/1.81 ---------------------------------------- 3.80/1.81 3.80/1.81 (3) JBCToGraph (EQUIVALENT) 3.80/1.81 Constructed TerminationGraph. 3.80/1.81 ---------------------------------------- 3.80/1.81 3.80/1.81 (4) 3.80/1.81 Obligation: 3.80/1.81 Termination Graph based on JBC Program: 3.80/1.81 Break.main([Ljava/lang/String;)V: Graph of 63 nodes with 0 SCCs. 3.80/1.81 3.80/1.81 3.80/1.81 3.80/1.81 3.80/1.81 3.80/1.81 ---------------------------------------- 3.80/1.81 3.80/1.81 (5) TerminationGraphToSCCProof (SOUND) 3.80/1.81 Proven termination by absence of SCCs 3.80/1.81 ---------------------------------------- 3.80/1.81 3.80/1.81 (6) 3.80/1.81 TRUE 3.86/1.83 EOF