5.81/2.46 NO 5.81/2.48 proof of /export/starexec/sandbox2/benchmark/theBenchmark.jar 5.81/2.48 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 5.81/2.48 5.81/2.48 5.81/2.48 termination of the given Bare JBC problem could be disproven: 5.81/2.48 5.81/2.48 (0) Bare JBC problem 5.81/2.48 (1) BareJBCToJBCProof [EQUIVALENT, 96 ms] 5.81/2.48 (2) JBC problem 5.81/2.48 (3) JBCToGraph [EQUIVALENT, 296 ms] 5.81/2.48 (4) JBCTerminationGraph 5.81/2.48 (5) JBCNonTerm [COMPLETE, 221 ms] 5.81/2.48 (6) NO 5.81/2.48 5.81/2.48 5.81/2.48 ---------------------------------------- 5.81/2.48 5.81/2.48 (0) 5.81/2.48 Obligation: 5.81/2.48 need to prove termination of the following program: 5.81/2.48 package simple.sunset; 5.81/2.48 5.81/2.48 public class Main { 5.81/2.48 5.81/2.48 /** 5.81/2.48 * @param args 5.81/2.48 */ 5.81/2.48 public static void main(String[] args) { 5.81/2.48 Sunset.loop(args.length); 5.81/2.48 5.81/2.48 } 5.81/2.48 5.81/2.48 } 5.81/2.48 5.81/2.48 5.81/2.48 package simple.sunset; 5.81/2.48 5.81/2.48 public class Sunset { 5.81/2.48 5.81/2.48 public static void loop(int i) { 5.81/2.48 while (i > 10) { 5.81/2.48 if (i == 25) { 5.81/2.48 i = 30; 5.81/2.48 } 5.81/2.48 if (i <= 30) { 5.81/2.48 i--; 5.81/2.48 } else { 5.81/2.48 i = 20; 5.81/2.48 } 5.81/2.48 } 5.81/2.48 } 5.81/2.48 } 5.81/2.48 5.81/2.48 5.81/2.48 5.81/2.48 ---------------------------------------- 5.81/2.48 5.81/2.48 (1) BareJBCToJBCProof (EQUIVALENT) 5.81/2.48 initialized classpath 5.81/2.48 ---------------------------------------- 5.81/2.48 5.81/2.48 (2) 5.81/2.48 Obligation: 5.81/2.48 need to prove termination of the following program: 5.81/2.48 package simple.sunset; 5.81/2.48 5.81/2.48 public class Main { 5.81/2.48 5.81/2.48 /** 5.81/2.48 * @param args 5.81/2.48 */ 5.81/2.48 public static void main(String[] args) { 5.81/2.48 Sunset.loop(args.length); 5.81/2.48 5.81/2.48 } 5.81/2.48 5.81/2.48 } 5.81/2.48 5.81/2.48 5.81/2.48 package simple.sunset; 5.81/2.48 5.81/2.48 public class Sunset { 5.81/2.48 5.81/2.48 public static void loop(int i) { 5.81/2.48 while (i > 10) { 5.81/2.48 if (i == 25) { 5.81/2.48 i = 30; 5.81/2.48 } 5.81/2.48 if (i <= 30) { 5.81/2.48 i--; 5.81/2.48 } else { 5.81/2.48 i = 20; 5.81/2.48 } 5.81/2.48 } 5.81/2.48 } 5.81/2.48 } 5.81/2.48 5.81/2.48 5.81/2.48 5.81/2.48 ---------------------------------------- 5.81/2.48 5.81/2.48 (3) JBCToGraph (EQUIVALENT) 5.81/2.48 Constructed TerminationGraph. 5.81/2.48 ---------------------------------------- 5.81/2.48 5.81/2.48 (4) 5.81/2.48 Obligation: 5.81/2.48 Termination Graph based on JBC Program: 5.81/2.48 simple.sunset.Main.main([Ljava/lang/String;)V: Graph of 46 nodes with 1 SCC. 5.81/2.48 5.81/2.48 5.81/2.48 5.81/2.48 5.81/2.48 5.81/2.48 ---------------------------------------- 5.81/2.48 5.81/2.48 (5) JBCNonTerm (COMPLETE) 5.81/2.48 Constructed a run with a repetition. States 3 and 60 are repetitions (when considering only the interesting positions [lv_0_0]). 5.81/2.48 5.81/2.48 0: 5.81/2.48 a33([java.lang.String...]): length 29 -->{java.lang.Object...} 5.81/2.48 YES: (JL1) 5.81/2.48 1: 5.81/2.48 a33([java.lang.String...]): length 29 -->{java.lang.Object...} 5.81/2.48 YES: (JL1) 5.81/2.48 2: 5.81/2.48 YES: (JL1) 5.81/2.48 3: 5.81/2.48 5.81/2.48 YES: (JL1) 5.81/2.48 4: 5.81/2.48 5.81/2.48 YES: (JL1) 5.81/2.48 5: 5.81/2.48 5.81/2.48 YES: (JL1) 5.81/2.48 6: 5.81/2.48 5.81/2.48 YES: (JL1) 5.81/2.48 7: 5.81/2.48 5.81/2.48 YES: (JL1) 5.81/2.48 8: 5.81/2.48 5.81/2.48 YES: (JL1) 5.81/2.48 9: 5.81/2.48 5.81/2.48 YES: (JL1) 5.81/2.48 10: 5.81/2.48 5.81/2.48 YES: (JL1) 5.81/2.48 11: 5.81/2.48 5.81/2.48 YES: (JL1) 5.81/2.48 12: 5.81/2.48 5.81/2.48 YES: (JL1) 5.81/2.48 13: 5.81/2.48 5.81/2.48 YES: (JL1) 5.81/2.48 14: 5.81/2.48 5.81/2.48 YES: (JL1) 5.81/2.48 15: 5.81/2.48 5.81/2.48 YES: (JL1) 5.81/2.48 16: 5.81/2.48 5.81/2.48 YES: (JL1) 5.81/2.48 17: 5.81/2.48 5.81/2.48 YES: (JL1) 5.81/2.48 18: 5.81/2.48 5.81/2.48 YES: (JL1) 5.81/2.48 19: 5.81/2.48 5.81/2.48 YES: (JL1) 5.81/2.48 20: 5.81/2.48 5.81/2.48 YES: (JL1) 5.81/2.48 21: 5.81/2.48 5.81/2.48 YES: (JL1) 5.81/2.48 22: 5.81/2.48 5.81/2.48 YES: (JL1) 5.81/2.48 23: 5.81/2.48 5.81/2.48 YES: (JL1) 5.81/2.48 24: 5.81/2.48 5.81/2.48 YES: (JL1) 5.81/2.48 25: 5.81/2.48 5.81/2.48 YES: (JL1) 5.81/2.48 26: 5.81/2.48 5.81/2.48 YES: (JL1) 5.81/2.48 27: 5.81/2.48 5.81/2.48 YES: (JL1) 5.81/2.48 28: 5.81/2.48 5.81/2.48 YES: (JL1) 5.81/2.48 29: 5.81/2.48 5.81/2.48 YES: (JL1) 5.81/2.48 30: 5.81/2.48 5.81/2.48 YES: (JL1) 5.81/2.48 31: 5.81/2.48 5.81/2.48 YES: (JL1) 5.81/2.48 32: 5.81/2.48 5.81/2.48 YES: (JL1) 5.81/2.48 33: 5.81/2.48 5.81/2.48 YES: (JL1) 5.81/2.48 34: 5.81/2.48 5.81/2.48 YES: (JL1) 5.81/2.48 35: 5.81/2.48 5.81/2.48 YES: (JL1) 5.81/2.48 36: 5.81/2.48 5.81/2.48 YES: (JL1) 5.81/2.48 37: 5.81/2.48 5.81/2.48 YES: (JL1) 5.81/2.48 38: 5.81/2.48 5.81/2.48 YES: (JL1) 5.81/2.48 39: 5.81/2.48 5.81/2.48 YES: (JL1) 5.81/2.48 40: 5.81/2.48 5.81/2.48 YES: (JL1) 5.81/2.48 41: 5.81/2.48 5.81/2.48 YES: (JL1) 5.81/2.48 42: 5.81/2.48 5.81/2.48 YES: (JL1) 5.81/2.48 43: 5.81/2.48 5.81/2.48 YES: (JL1) 5.81/2.48 44: 5.81/2.48 5.81/2.48 YES: (JL1) 5.81/2.48 45: 5.81/2.48 5.81/2.48 YES: (JL1) 5.81/2.48 46: 5.81/2.48 5.81/2.48 YES: (JL1) 5.81/2.48 47: 5.81/2.48 5.81/2.48 YES: (JL1) 5.81/2.48 48: 5.81/2.48 5.81/2.48 YES: (JL1) 5.81/2.48 49: 5.81/2.48 5.81/2.48 YES: (JL1) 5.81/2.48 50: 5.81/2.48 5.81/2.48 YES: (JL1) 5.81/2.48 51: 5.81/2.48 5.81/2.48 YES: (JL1) 5.81/2.48 52: 5.81/2.48 5.81/2.48 YES: (JL1) 5.81/2.48 53: 5.81/2.48 5.81/2.48 YES: (JL1) 5.81/2.48 54: 5.81/2.48 5.81/2.48 YES: (JL1) 5.81/2.48 55: 5.81/2.48 5.81/2.48 YES: (JL1) 5.81/2.48 56: 5.81/2.48 5.81/2.48 YES: (JL1) 5.81/2.48 57: 5.81/2.48 5.81/2.48 YES: (JL1) 5.81/2.48 58: 5.81/2.48 5.81/2.48 YES: (JL1) 5.81/2.48 59: 5.81/2.48 5.81/2.48 YES: (JL1) 5.81/2.48 60: 5.81/2.48 5.81/2.48 YES: (JL1) 5.81/2.48 5.81/2.48 ---------------------------------------- 5.81/2.48 5.81/2.48 (6) 5.81/2.48 NO 5.81/2.51 EOF