10.80/3.69 NO 11.61/6.48 proof of /export/starexec/sandbox/benchmark/theBenchmark.jar 11.61/6.48 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 11.61/6.48 11.61/6.48 11.61/6.48 termination of the given Bare JBC problem could be disproven: 11.61/6.48 11.61/6.48 (0) Bare JBC problem 11.61/6.48 (1) BareJBCToJBCProof [EQUIVALENT, 96 ms] 11.61/6.48 (2) JBC problem 11.61/6.48 (3) JBCToGraph [EQUIVALENT, 434 ms] 11.61/6.48 (4) JBCTerminationGraph 11.61/6.48 (5) JBCNonTerm [COMPLETE, 977 ms] 11.61/6.48 (6) NO 11.61/6.48 11.61/6.48 11.61/6.48 ---------------------------------------- 11.61/6.48 11.61/6.48 (0) 11.61/6.48 Obligation: 11.61/6.48 need to prove termination of the following program: 11.61/6.48 package simple.complxStruc; 11.61/6.48 11.61/6.48 public class ComplxStruc { 11.61/6.48 11.61/6.48 public static void loop(int i) { 11.61/6.48 int j = i; 11.61/6.48 while (i > 0) { 11.61/6.48 if (i >= j) { 11.61/6.48 i--; 11.61/6.48 if (j < 5) { 11.61/6.48 j++; 11.61/6.48 if (i-j>2) { 11.61/6.48 i++; 11.61/6.48 } else { 11.61/6.48 j++; 11.61/6.48 } 11.61/6.48 } else { 11.61/6.48 j--; 11.61/6.48 } 11.61/6.48 } else { 11.61/6.48 if (i > 0 & j < 0) { 11.61/6.48 i--; 11.61/6.48 if (j < -1) { 11.61/6.48 j++; 11.61/6.48 } else { 11.61/6.48 i++; 11.61/6.48 } 11.61/6.48 } else { 11.61/6.48 i++; 11.61/6.48 if (j*2 > i) { 11.61/6.48 j--; 11.61/6.48 } else { 11.61/6.48 j++; 11.61/6.48 } 11.61/6.48 } 11.61/6.48 } 11.61/6.48 11.61/6.48 } 11.61/6.48 } 11.61/6.48 } 11.61/6.48 11.61/6.48 11.61/6.48 package simple.complxStruc; 11.61/6.48 11.61/6.48 public class Main { 11.61/6.48 11.61/6.48 /** 11.61/6.48 * @param args 11.61/6.48 */ 11.61/6.48 public static void main(String[] args) { 11.61/6.48 ComplxStruc.loop(args.length); 11.61/6.48 11.61/6.48 } 11.61/6.48 11.61/6.48 } 11.61/6.48 11.61/6.48 11.61/6.48 11.61/6.48 ---------------------------------------- 11.61/6.48 11.61/6.48 (1) BareJBCToJBCProof (EQUIVALENT) 11.61/6.48 initialized classpath 11.61/6.48 ---------------------------------------- 11.61/6.48 11.61/6.48 (2) 11.61/6.48 Obligation: 11.61/6.48 need to prove termination of the following program: 11.61/6.48 package simple.complxStruc; 11.61/6.48 11.61/6.48 public class ComplxStruc { 11.61/6.48 11.61/6.48 public static void loop(int i) { 11.61/6.48 int j = i; 11.61/6.48 while (i > 0) { 11.61/6.48 if (i >= j) { 11.61/6.48 i--; 11.61/6.48 if (j < 5) { 11.61/6.48 j++; 11.61/6.48 if (i-j>2) { 11.61/6.48 i++; 11.61/6.48 } else { 11.61/6.48 j++; 11.61/6.48 } 11.61/6.48 } else { 11.61/6.48 j--; 11.61/6.48 } 11.61/6.48 } else { 11.61/6.48 if (i > 0 & j < 0) { 11.61/6.48 i--; 11.61/6.48 if (j < -1) { 11.61/6.48 j++; 11.61/6.48 } else { 11.61/6.48 i++; 11.61/6.48 } 11.61/6.48 } else { 11.61/6.48 i++; 11.61/6.48 if (j*2 > i) { 11.61/6.48 j--; 11.61/6.48 } else { 11.61/6.48 j++; 11.61/6.48 } 11.61/6.48 } 11.61/6.48 } 11.61/6.48 11.61/6.48 } 11.61/6.48 } 11.61/6.48 } 11.61/6.48 11.61/6.48 11.61/6.48 package simple.complxStruc; 11.61/6.48 11.61/6.48 public class Main { 11.61/6.48 11.61/6.48 /** 11.61/6.48 * @param args 11.61/6.48 */ 11.61/6.48 public static void main(String[] args) { 11.61/6.48 ComplxStruc.loop(args.length); 11.61/6.48 11.61/6.48 } 11.61/6.48 11.61/6.48 } 11.61/6.48 11.61/6.48 11.61/6.48 11.61/6.48 ---------------------------------------- 11.61/6.48 11.61/6.48 (3) JBCToGraph (EQUIVALENT) 11.61/6.48 Constructed TerminationGraph. 11.61/6.48 ---------------------------------------- 11.61/6.48 11.61/6.48 (4) 11.61/6.48 Obligation: 11.61/6.48 Termination Graph based on JBC Program: 11.61/6.48 simple.complxStruc.Main.main([Ljava/lang/String;)V: Graph of 68 nodes with 1 SCC. 11.61/6.48 11.61/6.48 11.61/6.48 11.61/6.48 11.61/6.48 11.61/6.48 ---------------------------------------- 11.61/6.48 11.61/6.48 (5) JBCNonTerm (COMPLETE) 11.61/6.48 Constructed a run with a repetition. States 5 and 116 are repetitions (when considering only the interesting positions [lv_0_0, lv_0_1]). 11.61/6.48 11.61/6.48 0: 11.61/6.48 a56([java.lang.String...]): length 4 -->{java.lang.Object...} 11.61/6.48 YES: (JL1) 11.61/6.48 1: 11.61/6.48 a56([java.lang.String...]): length 4 -->{java.lang.Object...} 11.61/6.48 YES: (JL1) 11.61/6.48 2: 11.61/6.48 YES: (JL1) 11.61/6.48 3: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 4: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 5: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 6: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 7: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 8: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 9: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 10: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 11: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 12: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 13: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 14: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 15: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 16: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 17: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 18: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 19: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 20: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 21: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 22: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 23: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 24: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 25: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 26: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 27: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 28: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 29: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 30: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 31: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 32: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 33: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 34: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 35: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 36: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 37: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 38: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 39: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 40: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 41: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 42: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 43: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 44: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 45: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 46: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 47: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 48: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 49: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 50: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 51: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 52: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 53: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 54: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 55: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 56: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 57: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 58: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 59: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 60: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 61: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 62: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 63: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 64: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 65: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 66: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 67: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 68: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 69: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 70: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 71: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 72: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 73: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 74: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 75: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 76: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 77: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 78: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 79: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 80: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 81: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 82: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 83: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 84: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 85: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 86: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 87: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 88: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 89: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 90: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 91: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 92: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 93: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 94: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 95: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 96: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 97: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 98: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 99: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 100: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 101: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 102: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 103: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 104: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 105: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 106: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 107: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 108: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 109: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 110: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 111: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 112: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 113: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 114: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 115: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 116: 11.61/6.48 11.61/6.48 YES: (JL1) 11.61/6.48 11.61/6.48 ---------------------------------------- 11.61/6.48 11.61/6.48 (6) 11.61/6.48 NO 11.69/6.55 EOF