3.71/1.89 YES 3.71/1.90 proof of /export/starexec/sandbox/benchmark/theBenchmark.jar 3.71/1.90 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 3.71/1.90 3.71/1.90 3.71/1.90 termination of the given Bare JBC problem could be proven: 3.71/1.90 3.71/1.90 (0) Bare JBC problem 3.71/1.90 (1) BareJBCToJBCProof [EQUIVALENT, 96 ms] 3.71/1.90 (2) JBC problem 3.71/1.90 (3) JBCToGraph [EQUIVALENT, 150 ms] 3.71/1.90 (4) JBCTerminationGraph 3.71/1.90 (5) TerminationGraphToSCCProof [SOUND, 0 ms] 3.71/1.90 (6) TRUE 3.71/1.90 3.71/1.90 3.71/1.90 ---------------------------------------- 3.71/1.90 3.71/1.90 (0) 3.71/1.90 Obligation: 3.71/1.90 need to prove termination of the following program: 3.71/1.90 public class NonPeriodic { 3.71/1.90 3.71/1.90 public static void main(String args[]) { 3.71/1.90 int x = 1, y = 0; 3.71/1.90 3.71/1.90 if (args.length >= 1) { 3.71/1.90 y = -1*args[0].length(); 3.71/1.90 } 3.71/1.90 3.71/1.90 // does not terminate for x = 1 and y = 1 3.71/1.90 while (y > 0) 3.71/1.90 if (x > 0) x = x - 1; 3.71/1.90 else { 3.71/1.90 y = y + 1; 3.71/1.90 x = y; 3.71/1.90 } 3.71/1.90 } 3.71/1.90 } 3.71/1.90 3.71/1.90 3.71/1.90 ---------------------------------------- 3.71/1.90 3.71/1.90 (1) BareJBCToJBCProof (EQUIVALENT) 3.71/1.90 initialized classpath 3.71/1.90 ---------------------------------------- 3.71/1.90 3.71/1.90 (2) 3.71/1.90 Obligation: 3.71/1.90 need to prove termination of the following program: 3.71/1.90 public class NonPeriodic { 3.71/1.90 3.71/1.90 public static void main(String args[]) { 3.71/1.90 int x = 1, y = 0; 3.71/1.90 3.71/1.90 if (args.length >= 1) { 3.71/1.90 y = -1*args[0].length(); 3.71/1.90 } 3.71/1.90 3.71/1.90 // does not terminate for x = 1 and y = 1 3.71/1.90 while (y > 0) 3.71/1.90 if (x > 0) x = x - 1; 3.71/1.90 else { 3.71/1.90 y = y + 1; 3.71/1.90 x = y; 3.71/1.90 } 3.71/1.90 } 3.71/1.90 } 3.71/1.90 3.71/1.90 3.71/1.90 ---------------------------------------- 3.71/1.90 3.71/1.90 (3) JBCToGraph (EQUIVALENT) 3.71/1.90 Constructed TerminationGraph. 3.71/1.90 ---------------------------------------- 3.71/1.90 3.71/1.90 (4) 3.71/1.90 Obligation: 3.71/1.90 Termination Graph based on JBC Program: 3.71/1.90 NonPeriodic.main([Ljava/lang/String;)V: Graph of 53 nodes with 0 SCCs. 3.71/1.90 3.71/1.90 3.71/1.90 3.71/1.90 3.71/1.90 3.71/1.90 ---------------------------------------- 3.71/1.90 3.71/1.90 (5) TerminationGraphToSCCProof (SOUND) 3.71/1.90 Proven termination by absence of SCCs 3.71/1.90 ---------------------------------------- 3.71/1.90 3.71/1.90 (6) 3.71/1.90 TRUE 3.94/1.92 EOF