6.72/2.68 NO 6.99/2.73 proof of /export/starexec/sandbox/benchmark/theBenchmark.jar 6.99/2.73 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 6.99/2.73 6.99/2.73 6.99/2.73 termination of the given Bare JBC problem could be disproven: 6.99/2.73 6.99/2.73 (0) Bare JBC problem 6.99/2.73 (1) BareJBCToJBCProof [EQUIVALENT, 96 ms] 6.99/2.73 (2) JBC problem 6.99/2.73 (3) JBCToGraph [EQUIVALENT, 250 ms] 6.99/2.73 (4) JBCTerminationGraph 6.99/2.73 (5) JBCNonTerm [COMPLETE, 226 ms] 6.99/2.73 (6) NO 6.99/2.73 6.99/2.73 6.99/2.73 ---------------------------------------- 6.99/2.73 6.99/2.73 (0) 6.99/2.73 Obligation: 6.99/2.73 need to prove termination of the following program: 6.99/2.73 package simple.alternKonv; 6.99/2.73 6.99/2.73 public class AlternKonv { 6.99/2.73 6.99/2.73 public static void loop(int i) { 6.99/2.73 while (i != 0) { 6.99/2.73 if (i < 0) { 6.99/2.73 i = i+2; 6.99/2.73 if (i < 0) { 6.99/2.73 i = i*(-1); 6.99/2.73 } 6.99/2.73 } else { 6.99/2.73 i = i-2; 6.99/2.73 if (i > 0) { 6.99/2.73 i = i*(-1); 6.99/2.73 } 6.99/2.73 } 6.99/2.73 } 6.99/2.73 } 6.99/2.73 } 6.99/2.73 6.99/2.73 6.99/2.73 package simple.alternKonv; 6.99/2.73 6.99/2.73 public class Main { 6.99/2.73 6.99/2.73 /** 6.99/2.73 * @param args 6.99/2.73 */ 6.99/2.73 public static void main(String[] args) { 6.99/2.73 AlternKonv.loop(args.length); 6.99/2.73 6.99/2.73 } 6.99/2.73 6.99/2.73 } 6.99/2.73 6.99/2.73 6.99/2.73 6.99/2.73 ---------------------------------------- 6.99/2.73 6.99/2.73 (1) BareJBCToJBCProof (EQUIVALENT) 6.99/2.73 initialized classpath 6.99/2.73 ---------------------------------------- 6.99/2.73 6.99/2.73 (2) 6.99/2.73 Obligation: 6.99/2.73 need to prove termination of the following program: 6.99/2.73 package simple.alternKonv; 6.99/2.73 6.99/2.73 public class AlternKonv { 6.99/2.73 6.99/2.73 public static void loop(int i) { 6.99/2.73 while (i != 0) { 6.99/2.73 if (i < 0) { 6.99/2.73 i = i+2; 6.99/2.73 if (i < 0) { 6.99/2.73 i = i*(-1); 6.99/2.73 } 6.99/2.73 } else { 6.99/2.73 i = i-2; 6.99/2.73 if (i > 0) { 6.99/2.73 i = i*(-1); 6.99/2.73 } 6.99/2.73 } 6.99/2.73 } 6.99/2.73 } 6.99/2.73 } 6.99/2.73 6.99/2.73 6.99/2.73 package simple.alternKonv; 6.99/2.73 6.99/2.73 public class Main { 6.99/2.73 6.99/2.73 /** 6.99/2.73 * @param args 6.99/2.73 */ 6.99/2.73 public static void main(String[] args) { 6.99/2.73 AlternKonv.loop(args.length); 6.99/2.73 6.99/2.73 } 6.99/2.73 6.99/2.73 } 6.99/2.73 6.99/2.73 6.99/2.73 6.99/2.73 ---------------------------------------- 6.99/2.73 6.99/2.73 (3) JBCToGraph (EQUIVALENT) 6.99/2.73 Constructed TerminationGraph. 6.99/2.73 ---------------------------------------- 6.99/2.73 6.99/2.73 (4) 6.99/2.73 Obligation: 6.99/2.73 Termination Graph based on JBC Program: 6.99/2.73 simple.alternKonv.Main.main([Ljava/lang/String;)V: Graph of 48 nodes with 1 SCC. 6.99/2.73 6.99/2.73 6.99/2.73 6.99/2.73 6.99/2.73 6.99/2.73 ---------------------------------------- 6.99/2.73 6.99/2.73 (5) JBCNonTerm (COMPLETE) 6.99/2.73 Constructed a run with a repetition. States 3 and 23 are repetitions (when considering only the interesting positions [lv_0_0]). 6.99/2.73 6.99/2.73 0: 6.99/2.73 a35([java.lang.String...]): length 1 -->{java.lang.Object...} 6.99/2.73 YES: (JL1) 6.99/2.73 1: 6.99/2.73 a35([java.lang.String...]): length 1 -->{java.lang.Object...} 6.99/2.73 YES: (JL1) 6.99/2.73 2: 6.99/2.73 YES: (JL1) 6.99/2.73 3: 6.99/2.73 6.99/2.73 YES: (JL1) 6.99/2.73 4: 6.99/2.73 6.99/2.73 YES: (JL1) 6.99/2.73 5: 6.99/2.73 6.99/2.73 YES: (JL1) 6.99/2.73 6: 6.99/2.73 6.99/2.73 YES: (JL1) 6.99/2.73 7: 6.99/2.73 6.99/2.73 YES: (JL1) 6.99/2.73 8: 6.99/2.73 6.99/2.73 YES: (JL1) 6.99/2.73 9: 6.99/2.73 6.99/2.73 YES: (JL1) 6.99/2.73 10: 6.99/2.73 6.99/2.73 YES: (JL1) 6.99/2.73 11: 6.99/2.73 6.99/2.73 YES: (JL1) 6.99/2.73 12: 6.99/2.73 6.99/2.73 YES: (JL1) 6.99/2.73 13: 6.99/2.73 6.99/2.73 YES: (JL1) 6.99/2.73 14: 6.99/2.73 6.99/2.73 YES: (JL1) 6.99/2.73 15: 6.99/2.73 6.99/2.73 YES: (JL1) 6.99/2.73 16: 6.99/2.73 6.99/2.73 YES: (JL1) 6.99/2.73 17: 6.99/2.73 6.99/2.73 YES: (JL1) 6.99/2.73 18: 6.99/2.73 6.99/2.73 YES: (JL1) 6.99/2.73 19: 6.99/2.73 6.99/2.73 YES: (JL1) 6.99/2.73 20: 6.99/2.73 6.99/2.73 YES: (JL1) 6.99/2.73 21: 6.99/2.73 6.99/2.73 YES: (JL1) 6.99/2.73 22: 6.99/2.73 6.99/2.73 YES: (JL1) 6.99/2.73 23: 6.99/2.73 6.99/2.73 YES: (JL1) 6.99/2.73 6.99/2.73 ---------------------------------------- 6.99/2.73 6.99/2.73 (6) 6.99/2.73 NO 7.10/2.78 EOF