5.16/2.26 NO 5.16/2.28 proof of /export/starexec/sandbox/benchmark/theBenchmark.jar 5.16/2.28 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 5.16/2.28 5.16/2.28 5.16/2.28 termination of the given Bare JBC problem could be disproven: 5.16/2.28 5.16/2.28 (0) Bare JBC problem 5.16/2.28 (1) BareJBCToJBCProof [EQUIVALENT, 101 ms] 5.16/2.28 (2) JBC problem 5.16/2.28 (3) JBCNonTerm [COMPLETE, 319 ms] 5.16/2.28 (4) NO 5.16/2.28 5.16/2.28 5.16/2.28 ---------------------------------------- 5.16/2.28 5.16/2.28 (0) 5.16/2.28 Obligation: 5.16/2.28 need to prove termination of the following program: 5.16/2.28 package simple.moduloLower; 5.16/2.28 5.16/2.28 public class Main { 5.16/2.28 5.16/2.28 /** 5.16/2.28 * @param args 5.16/2.28 */ 5.16/2.28 public static void main(String[] args) { 5.16/2.28 5.16/2.28 ModuloLower.loop(args.length); 5.16/2.28 } 5.16/2.28 5.16/2.28 } 5.16/2.28 5.16/2.28 5.16/2.28 package simple.moduloLower; 5.16/2.28 5.16/2.28 public class ModuloLower { 5.16/2.28 5.16/2.28 public static void loop(int n) { 5.16/2.28 while (n > 2) { 5.16/2.28 if (n % 5 > 0) { 5.16/2.28 n--; 5.16/2.28 } 5.16/2.28 } 5.16/2.28 } 5.16/2.28 } 5.16/2.28 5.16/2.28 5.16/2.28 5.16/2.28 ---------------------------------------- 5.16/2.28 5.16/2.28 (1) BareJBCToJBCProof (EQUIVALENT) 5.16/2.28 initialized classpath 5.16/2.28 ---------------------------------------- 5.16/2.28 5.16/2.28 (2) 5.16/2.28 Obligation: 5.16/2.28 need to prove termination of the following program: 5.16/2.28 package simple.moduloLower; 5.16/2.28 5.16/2.28 public class Main { 5.16/2.28 5.16/2.28 /** 5.16/2.28 * @param args 5.16/2.28 */ 5.16/2.28 public static void main(String[] args) { 5.16/2.28 5.16/2.28 ModuloLower.loop(args.length); 5.16/2.28 } 5.16/2.28 5.16/2.28 } 5.16/2.28 5.16/2.28 5.16/2.28 package simple.moduloLower; 5.16/2.28 5.16/2.28 public class ModuloLower { 5.16/2.28 5.16/2.28 public static void loop(int n) { 5.16/2.28 while (n > 2) { 5.16/2.28 if (n % 5 > 0) { 5.16/2.28 n--; 5.16/2.28 } 5.16/2.28 } 5.16/2.28 } 5.16/2.28 } 5.16/2.28 5.16/2.28 5.16/2.28 5.16/2.28 ---------------------------------------- 5.16/2.28 5.16/2.28 (3) JBCNonTerm (COMPLETE) 5.16/2.28 Constructed a run with a repetition. States 39 and 46 are repetitions (when considering only the interesting positions [lv_0_0]). 5.16/2.28 5.16/2.28 0: 5.16/2.28 a23([java.lang.String...]): length 9 -->{java.lang.Object...} 5.16/2.28 YES: (JL1) 5.16/2.28 1: 5.16/2.28 a23([java.lang.String...]): length 9 -->{java.lang.Object...} 5.16/2.28 YES: (JL1) 5.16/2.28 2: 5.16/2.28 YES: (JL1) 5.16/2.28 3: 5.16/2.28 5.16/2.28 YES: (JL1) 5.16/2.28 4: 5.16/2.28 5.16/2.28 YES: (JL1) 5.16/2.28 5: 5.16/2.28 5.16/2.28 YES: (JL1) 5.16/2.28 6: 5.16/2.28 5.16/2.28 YES: (JL1) 5.16/2.28 7: 5.16/2.28 5.16/2.28 YES: (JL1) 5.16/2.28 8: 5.16/2.28 5.16/2.28 YES: (JL1) 5.16/2.28 9: 5.16/2.28 5.16/2.28 YES: (JL1) 5.16/2.28 10: 5.16/2.28 5.16/2.28 YES: (JL1) 5.16/2.28 11: 5.16/2.28 5.16/2.28 YES: (JL1) 5.16/2.28 12: 5.16/2.28 5.16/2.28 YES: (JL1) 5.16/2.28 13: 5.16/2.28 5.16/2.28 YES: (JL1) 5.16/2.28 14: 5.16/2.28 5.16/2.28 YES: (JL1) 5.16/2.28 15: 5.16/2.28 5.16/2.28 YES: (JL1) 5.16/2.28 16: 5.16/2.28 5.16/2.28 YES: (JL1) 5.16/2.28 17: 5.16/2.28 5.16/2.28 YES: (JL1) 5.16/2.28 18: 5.16/2.28 5.16/2.28 YES: (JL1) 5.16/2.28 19: 5.16/2.28 5.16/2.28 YES: (JL1) 5.16/2.28 20: 5.16/2.28 5.16/2.28 YES: (JL1) 5.16/2.28 21: 5.16/2.28 5.16/2.28 YES: (JL1) 5.16/2.28 22: 5.16/2.28 5.16/2.28 YES: (JL1) 5.16/2.28 23: 5.16/2.28 5.16/2.28 YES: (JL1) 5.16/2.28 24: 5.16/2.28 5.16/2.28 YES: (JL1) 5.16/2.28 25: 5.16/2.28 5.16/2.28 YES: (JL1) 5.16/2.28 26: 5.16/2.28 5.16/2.28 YES: (JL1) 5.16/2.28 27: 5.16/2.28 5.16/2.28 YES: (JL1) 5.16/2.28 28: 5.16/2.28 5.16/2.28 YES: (JL1) 5.16/2.28 29: 5.16/2.28 5.16/2.28 YES: (JL1) 5.16/2.28 30: 5.16/2.28 5.16/2.28 YES: (JL1) 5.16/2.28 31: 5.16/2.28 5.16/2.28 YES: (JL1) 5.16/2.28 32: 5.16/2.28 5.16/2.28 YES: (JL1) 5.16/2.28 33: 5.16/2.28 5.16/2.28 YES: (JL1) 5.16/2.28 34: 5.16/2.28 5.16/2.28 YES: (JL1) 5.16/2.28 35: 5.16/2.28 5.16/2.28 YES: (JL1) 5.16/2.28 36: 5.16/2.28 5.16/2.28 YES: (JL1) 5.16/2.28 37: 5.16/2.28 5.16/2.28 YES: (JL1) 5.16/2.28 38: 5.16/2.28 5.16/2.28 YES: (JL1) 5.16/2.28 39: 5.16/2.28 5.16/2.28 YES: (JL1) 5.16/2.28 40: 5.16/2.28 5.16/2.28 YES: (JL1) 5.16/2.28 41: 5.16/2.28 5.16/2.28 YES: (JL1) 5.16/2.28 42: 5.16/2.28 5.16/2.28 YES: (JL1) 5.16/2.28 43: 5.16/2.28 5.16/2.28 YES: (JL1) 5.16/2.28 44: 5.16/2.28 5.16/2.28 YES: (JL1) 5.16/2.28 45: 5.16/2.28 5.16/2.28 YES: (JL1) 5.16/2.28 46: 5.16/2.28 5.16/2.28 YES: (JL1) 5.16/2.28 5.16/2.28 ---------------------------------------- 5.16/2.28 5.16/2.28 (4) 5.16/2.28 NO 5.16/2.29 EOF