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