7.91/3.14 NO 7.91/3.15 proof of /export/starexec/sandbox/benchmark/theBenchmark.jar 7.91/3.15 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 7.91/3.15 7.91/3.15 7.91/3.15 termination of the given Bare JBC problem could be disproven: 7.91/3.15 7.91/3.15 (0) Bare JBC problem 7.91/3.15 (1) BareJBCToJBCProof [EQUIVALENT, 96 ms] 7.91/3.15 (2) JBC problem 7.91/3.15 (3) JBCToGraph [EQUIVALENT, 194 ms] 7.91/3.15 (4) JBCTerminationGraph 7.91/3.15 (5) JBCNonTerm [COMPLETE, 88 ms] 7.91/3.15 (6) NO 7.91/3.15 7.91/3.15 7.91/3.15 ---------------------------------------- 7.91/3.15 7.91/3.15 (0) 7.91/3.15 Obligation: 7.91/3.15 need to prove termination of the following program: 7.91/3.15 package simple.ex09half; 7.91/3.15 7.91/3.15 public class Half { 7.91/3.15 7.91/3.15 /* 7.91/3.15 * This is taken from a broken mergesort, where the calculation of the 7.91/3.15 * borders was wrong. I removed all information about the arrays and so on 7.91/3.15 * an so this is left. 7.91/3.15 */ 7.91/3.15 7.91/3.15 public static void loop(int i) { 7.91/3.15 int l = i; 7.91/3.15 i = 0; 7.91/3.15 while (l - i > 0) { 7.91/3.15 i = i + (l - i) / 2; 7.91/3.15 } 7.91/3.15 } 7.91/3.15 } 7.91/3.15 7.91/3.15 7.91/3.15 package simple.ex09half; 7.91/3.15 7.91/3.15 public class Main { 7.91/3.15 7.91/3.15 /** 7.91/3.15 * @param args 7.91/3.15 */ 7.91/3.15 public static void main(String[] args) { 7.91/3.15 Half.loop(args.length); 7.91/3.15 } 7.91/3.15 7.91/3.15 } 7.91/3.15 7.91/3.15 7.91/3.15 7.91/3.15 ---------------------------------------- 7.91/3.15 7.91/3.15 (1) BareJBCToJBCProof (EQUIVALENT) 7.91/3.15 initialized classpath 7.91/3.15 ---------------------------------------- 7.91/3.15 7.91/3.15 (2) 7.91/3.15 Obligation: 7.91/3.15 need to prove termination of the following program: 7.91/3.15 package simple.ex09half; 7.91/3.15 7.91/3.15 public class Half { 7.91/3.15 7.91/3.15 /* 7.91/3.15 * This is taken from a broken mergesort, where the calculation of the 7.91/3.15 * borders was wrong. I removed all information about the arrays and so on 7.91/3.15 * an so this is left. 7.91/3.15 */ 7.91/3.15 7.91/3.15 public static void loop(int i) { 7.91/3.15 int l = i; 7.91/3.15 i = 0; 7.91/3.15 while (l - i > 0) { 7.91/3.15 i = i + (l - i) / 2; 7.91/3.15 } 7.91/3.15 } 7.91/3.15 } 7.91/3.15 7.91/3.15 7.91/3.15 package simple.ex09half; 7.91/3.15 7.91/3.15 public class Main { 7.91/3.15 7.91/3.15 /** 7.91/3.15 * @param args 7.91/3.15 */ 7.91/3.15 public static void main(String[] args) { 7.91/3.15 Half.loop(args.length); 7.91/3.15 } 7.91/3.15 7.91/3.15 } 7.91/3.15 7.91/3.15 7.91/3.15 7.91/3.15 ---------------------------------------- 7.91/3.15 7.91/3.15 (3) JBCToGraph (EQUIVALENT) 7.91/3.15 Constructed TerminationGraph. 7.91/3.15 ---------------------------------------- 7.91/3.15 7.91/3.15 (4) 7.91/3.15 Obligation: 7.91/3.15 Termination Graph based on JBC Program: 7.91/3.15 simple.ex09half.Main.main([Ljava/lang/String;)V: Graph of 29 nodes with 1 SCC. 7.91/3.15 7.91/3.15 7.91/3.15 7.91/3.15 7.91/3.15 7.91/3.15 ---------------------------------------- 7.91/3.15 7.91/3.15 (5) JBCNonTerm (COMPLETE) 7.91/3.15 Constructed a run with a repetition. States 7 and 20 are repetitions (when considering only the interesting positions [lv_0_1, lv_0_0]). 7.91/3.15 7.91/3.15 0: 7.91/3.15 a13([java.lang.String...]): length 1 -->{java.lang.Object...} 7.91/3.15 YES: (JL1) 7.91/3.15 1: 7.91/3.15 a13([java.lang.String...]): length 1 -->{java.lang.Object...} 7.91/3.15 YES: (JL1) 7.91/3.15 2: 7.91/3.15 YES: (JL1) 7.91/3.15 3: 7.91/3.15 7.91/3.15 YES: (JL1) 7.91/3.15 4: 7.91/3.15 7.91/3.15 YES: (JL1) 7.91/3.15 5: 7.91/3.15 7.91/3.15 YES: (JL1) 7.91/3.15 6: 7.91/3.15 7.91/3.15 YES: (JL1) 7.91/3.15 7: 7.91/3.15 7.91/3.15 YES: (JL1) 7.91/3.15 8: 7.91/3.15 7.91/3.15 YES: (JL1) 7.91/3.15 9: 7.91/3.15 7.91/3.15 YES: (JL1) 7.91/3.15 10: 7.91/3.15 7.91/3.15 YES: (JL1) 7.91/3.15 11: 7.91/3.15 7.91/3.15 YES: (JL1) 7.91/3.15 12: 7.91/3.15 7.91/3.15 YES: (JL1) 7.91/3.15 13: 7.91/3.15 7.91/3.15 YES: (JL1) 7.91/3.15 14: 7.91/3.15 7.91/3.15 YES: (JL1) 7.91/3.15 15: 7.91/3.15 7.91/3.15 YES: (JL1) 7.91/3.15 16: 7.91/3.15 7.91/3.15 YES: (JL1) 7.91/3.15 17: 7.91/3.15 7.91/3.15 YES: (JL1) 7.91/3.15 18: 7.91/3.15 7.91/3.15 YES: (JL1) 7.91/3.15 19: 7.91/3.15 7.91/3.15 YES: (JL1) 7.91/3.15 20: 7.91/3.15 7.91/3.15 YES: (JL1) 7.91/3.15 7.91/3.15 ---------------------------------------- 7.91/3.15 7.91/3.15 (6) 7.91/3.15 NO 7.91/3.18 EOF