3.62/1.88 YES 3.84/1.88 proof of /export/starexec/sandbox/benchmark/theBenchmark.jar 3.84/1.88 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 3.84/1.88 3.84/1.88 3.84/1.88 termination of the given Bare JBC problem could be proven: 3.84/1.88 3.84/1.88 (0) Bare JBC problem 3.84/1.88 (1) BareJBCToJBCProof [EQUIVALENT, 94 ms] 3.84/1.88 (2) JBC problem 3.84/1.88 (3) JBCToGraph [EQUIVALENT, 109 ms] 3.84/1.88 (4) JBCTerminationGraph 3.84/1.88 (5) TerminationGraphToSCCProof [SOUND, 0 ms] 3.84/1.88 (6) TRUE 3.84/1.88 3.84/1.88 3.84/1.88 ---------------------------------------- 3.84/1.88 3.84/1.88 (0) 3.84/1.88 Obligation: 3.84/1.88 need to prove termination of the following program: 3.84/1.88 public class IntPath2 { 3.84/1.88 public static void main(String[] args) { 3.84/1.88 Random.args = args; 3.84/1.88 Object obj = null; 3.84/1.88 int i = Random.random(); 3.84/1.88 if (i > 0) 3.84/1.88 obj = new Object(); 3.84/1.88 while (i == 0 && obj != null) 3.84/1.88 obj = new Object(); 3.84/1.88 } 3.84/1.88 } 3.84/1.88 3.84/1.88 3.84/1.88 public class Random { 3.84/1.88 static String[] args; 3.84/1.88 static int index = 0; 3.84/1.88 3.84/1.88 public static int random() { 3.84/1.88 String string = args[index]; 3.84/1.88 index++; 3.84/1.88 return string.length(); 3.84/1.88 } 3.84/1.88 } 3.84/1.88 3.84/1.88 3.84/1.88 3.84/1.88 ---------------------------------------- 3.84/1.88 3.84/1.88 (1) BareJBCToJBCProof (EQUIVALENT) 3.84/1.88 initialized classpath 3.84/1.88 ---------------------------------------- 3.84/1.88 3.84/1.88 (2) 3.84/1.88 Obligation: 3.84/1.88 need to prove termination of the following program: 3.84/1.88 public class IntPath2 { 3.84/1.88 public static void main(String[] args) { 3.84/1.88 Random.args = args; 3.84/1.88 Object obj = null; 3.84/1.88 int i = Random.random(); 3.84/1.88 if (i > 0) 3.84/1.88 obj = new Object(); 3.84/1.88 while (i == 0 && obj != null) 3.84/1.88 obj = new Object(); 3.84/1.88 } 3.84/1.88 } 3.84/1.88 3.84/1.88 3.84/1.88 public class Random { 3.84/1.88 static String[] args; 3.84/1.88 static int index = 0; 3.84/1.88 3.84/1.88 public static int random() { 3.84/1.88 String string = args[index]; 3.84/1.88 index++; 3.84/1.88 return string.length(); 3.84/1.88 } 3.84/1.88 } 3.84/1.88 3.84/1.88 3.84/1.88 3.84/1.88 ---------------------------------------- 3.84/1.88 3.84/1.88 (3) JBCToGraph (EQUIVALENT) 3.84/1.88 Constructed TerminationGraph. 3.84/1.88 ---------------------------------------- 3.84/1.88 3.84/1.88 (4) 3.84/1.88 Obligation: 3.84/1.88 Termination Graph based on JBC Program: 3.84/1.88 IntPath2.main([Ljava/lang/String;)V: Graph of 117 nodes with 0 SCCs. 3.84/1.88 3.84/1.88 3.84/1.88 3.84/1.88 3.84/1.88 3.84/1.88 ---------------------------------------- 3.84/1.88 3.84/1.88 (5) TerminationGraphToSCCProof (SOUND) 3.84/1.88 Proven termination by absence of SCCs 3.84/1.88 ---------------------------------------- 3.84/1.88 3.84/1.88 (6) 3.84/1.88 TRUE 3.84/1.90 EOF