6.38/2.64 NO 6.74/2.66 proof of /export/starexec/sandbox2/benchmark/theBenchmark.jar 6.74/2.66 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 6.74/2.66 6.74/2.66 6.74/2.66 termination of the given Bare JBC problem could be disproven: 6.74/2.66 6.74/2.66 (0) Bare JBC problem 6.74/2.66 (1) BareJBCToJBCProof [EQUIVALENT, 95 ms] 6.74/2.66 (2) JBC problem 6.74/2.66 (3) JBCToGraph [EQUIVALENT, 322 ms] 6.74/2.66 (4) JBCTerminationGraph 6.74/2.66 (5) JBCNonTerm [COMPLETE, 372 ms] 6.74/2.66 (6) NO 6.74/2.66 6.74/2.66 6.74/2.66 ---------------------------------------- 6.74/2.66 6.74/2.66 (0) 6.74/2.66 Obligation: 6.74/2.66 need to prove termination of the following program: 6.74/2.66 package simple.twoFloatInterv; 6.74/2.66 6.74/2.66 public class Main { 6.74/2.66 6.74/2.66 /** 6.74/2.66 * @param args 6.74/2.66 */ 6.74/2.66 public static void main(String[] args) { 6.74/2.66 TwoFloatInterv.loop(args.length); 6.74/2.66 } 6.74/2.66 6.74/2.66 } 6.74/2.66 6.74/2.66 6.74/2.66 package simple.twoFloatInterv; 6.74/2.66 6.74/2.66 public class TwoFloatInterv { 6.74/2.66 6.74/2.66 /* 6.74/2.66 6.74/2.66 */ 6.74/2.66 public static void loop(int i) { 6.74/2.66 while (i > 0 & i < 50) { 6.74/2.66 if (i < 20) { 6.74/2.66 i--; 6.74/2.66 } 6.74/2.66 if (i > 10) { 6.74/2.66 i++; 6.74/2.66 } 6.74/2.66 if (30 <= i && i <= 40) { 6.74/2.66 i--; 6.74/2.66 } 6.74/2.66 6.74/2.66 } 6.74/2.66 } 6.74/2.66 } 6.74/2.66 6.74/2.66 6.74/2.66 6.74/2.66 ---------------------------------------- 6.74/2.66 6.74/2.66 (1) BareJBCToJBCProof (EQUIVALENT) 6.74/2.66 initialized classpath 6.74/2.66 ---------------------------------------- 6.74/2.66 6.74/2.66 (2) 6.74/2.66 Obligation: 6.74/2.66 need to prove termination of the following program: 6.74/2.66 package simple.twoFloatInterv; 6.74/2.66 6.74/2.66 public class Main { 6.74/2.66 6.74/2.66 /** 6.74/2.66 * @param args 6.74/2.66 */ 6.74/2.66 public static void main(String[] args) { 6.74/2.66 TwoFloatInterv.loop(args.length); 6.74/2.66 } 6.74/2.66 6.74/2.66 } 6.74/2.66 6.74/2.66 6.74/2.66 package simple.twoFloatInterv; 6.74/2.66 6.74/2.66 public class TwoFloatInterv { 6.74/2.66 6.74/2.66 /* 6.74/2.66 6.74/2.66 */ 6.74/2.66 public static void loop(int i) { 6.74/2.66 while (i > 0 & i < 50) { 6.74/2.66 if (i < 20) { 6.74/2.66 i--; 6.74/2.66 } 6.74/2.66 if (i > 10) { 6.74/2.66 i++; 6.74/2.66 } 6.74/2.66 if (30 <= i && i <= 40) { 6.74/2.66 i--; 6.74/2.66 } 6.74/2.66 6.74/2.66 } 6.74/2.66 } 6.74/2.66 } 6.74/2.66 6.74/2.66 6.74/2.66 6.74/2.66 ---------------------------------------- 6.74/2.66 6.74/2.66 (3) JBCToGraph (EQUIVALENT) 6.74/2.66 Constructed TerminationGraph. 6.74/2.66 ---------------------------------------- 6.74/2.66 6.74/2.66 (4) 6.74/2.66 Obligation: 6.74/2.66 Termination Graph based on JBC Program: 6.74/2.66 simple.twoFloatInterv.Main.main([Ljava/lang/String;)V: Graph of 75 nodes with 1 SCC. 6.74/2.66 6.74/2.66 6.74/2.66 6.74/2.66 6.74/2.66 6.74/2.66 ---------------------------------------- 6.74/2.66 6.74/2.66 (5) JBCNonTerm (COMPLETE) 6.74/2.66 Constructed a run with a repetition. States 3 and 29 are repetitions (when considering only the interesting positions [lv_0_0]). 6.74/2.66 6.74/2.66 0: 6.74/2.66 a27([java.lang.String...]): length 29 -->{java.lang.Object...} 6.74/2.66 YES: (JL1) 6.74/2.66 1: 6.74/2.66 a27([java.lang.String...]): length 29 -->{java.lang.Object...} 6.74/2.66 YES: (JL1) 6.74/2.66 2: 6.74/2.66 YES: (JL1) 6.74/2.66 3: 6.74/2.66 6.74/2.66 YES: (JL1) 6.74/2.66 4: 6.74/2.66 6.74/2.66 YES: (JL1) 6.74/2.66 5: 6.74/2.66 6.74/2.66 YES: (JL1) 6.74/2.66 6: 6.74/2.66 6.74/2.66 YES: (JL1) 6.74/2.66 7: 6.74/2.66 6.74/2.66 YES: (JL1) 6.74/2.66 8: 6.74/2.66 6.74/2.66 YES: (JL1) 6.74/2.66 9: 6.74/2.66 6.74/2.66 YES: (JL1) 6.74/2.66 10: 6.74/2.66 6.74/2.66 YES: (JL1) 6.74/2.66 11: 6.74/2.66 6.74/2.66 YES: (JL1) 6.74/2.66 12: 6.74/2.66 6.74/2.66 YES: (JL1) 6.74/2.66 13: 6.74/2.66 6.74/2.66 YES: (JL1) 6.74/2.66 14: 6.74/2.66 6.74/2.66 YES: (JL1) 6.74/2.66 15: 6.74/2.66 6.74/2.66 YES: (JL1) 6.74/2.66 16: 6.74/2.66 6.74/2.66 YES: (JL1) 6.74/2.66 17: 6.74/2.66 6.74/2.66 YES: (JL1) 6.74/2.66 18: 6.74/2.66 6.74/2.66 YES: (JL1) 6.74/2.66 19: 6.74/2.66 6.74/2.66 YES: (JL1) 6.74/2.66 20: 6.74/2.66 6.74/2.66 YES: (JL1) 6.74/2.66 21: 6.74/2.66 6.74/2.66 YES: (JL1) 6.74/2.66 22: 6.74/2.66 6.74/2.66 YES: (JL1) 6.74/2.66 23: 6.74/2.66 6.74/2.66 YES: (JL1) 6.74/2.66 24: 6.74/2.66 6.74/2.66 YES: (JL1) 6.74/2.66 25: 6.74/2.66 6.74/2.66 YES: (JL1) 6.74/2.66 26: 6.74/2.66 6.74/2.66 YES: (JL1) 6.74/2.66 27: 6.74/2.66 6.74/2.66 YES: (JL1) 6.74/2.66 28: 6.74/2.66 6.74/2.66 YES: (JL1) 6.74/2.66 29: 6.74/2.66 6.74/2.66 YES: (JL1) 6.74/2.66 6.74/2.66 ---------------------------------------- 6.74/2.66 6.74/2.66 (6) 6.74/2.66 NO 6.81/2.69 EOF