/export/starexec/sandbox/solver/bin/starexec_run_standard /export/starexec/sandbox/benchmark/theBenchmark.jar /export/starexec/sandbox/output/output_files
--------------------------------------------------------------------------------
NO
proof of /export/starexec/sandbox/benchmark/theBenchmark.jar
# AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty
termination of the given Bare JBC problem could be disproven:
(0) Bare JBC problem
(1) BareJBCToJBCProof [EQUIVALENT, 97 ms]
(2) JBC problem
(3) JBCNonTerm [COMPLETE, 375 ms]
(4) NO
----------------------------------------
(0)
Obligation:
need to prove termination of the following program:
/**
* An infinite loop continously throwing and catching an exception.
* Since the exception is thrown before the statement that makes the loop
* progress, that loop diverges.
*
* The call to main() diverges.
*
* Julia + BinTerm cannot prove that the call to main() terminates.
*
* @author Fausto Spoto
*/
public class Exc1 {
public static void main(String[] args) {
int i = 0;
while (true) {
try {
if (i > 10) throw null;
i++;
}
catch (NullPointerException e) {}
}
}
}
----------------------------------------
(1) BareJBCToJBCProof (EQUIVALENT)
initialized classpath
----------------------------------------
(2)
Obligation:
need to prove termination of the following program:
/**
* An infinite loop continously throwing and catching an exception.
* Since the exception is thrown before the statement that makes the loop
* progress, that loop diverges.
*
* The call to main() diverges.
*
* Julia + BinTerm cannot prove that the call to main() terminates.
*
* @author Fausto Spoto
*/
public class Exc1 {
public static void main(String[] args) {
int i = 0;
while (true) {
try {
if (i > 10) throw null;
i++;
}
catch (NullPointerException e) {}
}
}
}
----------------------------------------
(3) JBCNonTerm (COMPLETE)
Constructed a run with a repetition. States 62 and 81 are repetitions (when considering only the interesting positions [lv_0_1]).
0:
YES: (JL1)
1:
YES: (JL1)
2:
YES: (JL1)
3:
YES: (JL1)
4:
YES: (JL1)
5:
YES: (JL1)
6:
YES: (JL1)
7:
YES: (JL1)
8:
YES: (JL1)
9:
YES: (JL1)
10:
YES: (JL1)
11:
YES: (JL1)
12:
YES: (JL1)
13:
YES: (JL1)
14:
YES: (JL1)
15:
YES: (JL1)
16:
YES: (JL1)
17:
YES: (JL1)
18:
YES: (JL1)
19:
YES: (JL1)
20:
YES: (JL1)
21:
YES: (JL1)
22:
YES: (JL1)
23:
YES: (JL1)
24:
YES: (JL1)
25:
YES: (JL1)
26:
YES: (JL1)
27:
YES: (JL1)
28:
YES: (JL1)
29:
YES: (JL1)
30:
YES: (JL1)
31:
YES: (JL1)
32:
YES: (JL1)
33:
YES: (JL1)
34:
YES: (JL1)
35:
YES: (JL1)
36:
YES: (JL1)
37:
YES: (JL1)
38:
YES: (JL1)
39:
YES: (JL1)
40:
YES: (JL1)
41:
YES: (JL1)
42:
YES: (JL1)
43:
YES: (JL1)
44:
YES: (JL1)
45:
YES: (JL1)
46:
YES: (JL1)
47:
YES: (JL1)
48:
YES: (JL1)
49:
YES: (JL1)
50:
YES: (JL1)
51:
YES: (JL1)
52:
YES: (JL1)
53:
YES: (JL1)
54:
YES: (JL1)
55:
YES: (JL1)
56:
YES: (JL1)
57:
YES: (JL1)
58:
YES: (JL1)
59:
YES: (JL1)
60:
YES: (JL1)
61:
YES: (JL1)
62:
YES: (JL1)
63:()V||0: load ADDR this||this: o172|| ->
o172!: Throwable(Exception(RuntimeException(NullPointerException())), backtrace=#, cause=#, detailMessage=#, stackTrace=#) -->{java.lang.Object|}
YES: (JL1)
64:()V||1: java.lang.RuntimeException.()V|| - ||o172>
o172!: Throwable(Exception(RuntimeException(NullPointerException())), backtrace=#, cause=#, detailMessage=#, stackTrace=#) -->{java.lang.Object|}
YES: (JL1)
65:()V||0: load ADDR this||this: o172|| ->
()V||1: java.lang.RuntimeException.|| - || ->
o172!: Throwable(Exception(RuntimeException(NullPointerException())), backtrace=#, cause=#, detailMessage=#, stackTrace=#) -->{java.lang.Object|}
YES: (JL1)
66:()V||1: java.lang.Exception.()V|| - ||o172>
()V||1: java.lang.RuntimeException.|| - || ->
o172!: Throwable(Exception(RuntimeException(NullPointerException())), backtrace=#, cause=#, detailMessage=#, stackTrace=#) -->{java.lang.Object|}
YES: (JL1)
67:()V||0: load ADDR this||this: o172|| ->
()V||1: java.lang.Exception.|| - || ->
()V||1: java.lang.RuntimeException.|| - || ->
o172!: Throwable(Exception(RuntimeException(NullPointerException())), backtrace=#, cause=#, detailMessage=#, stackTrace=#) -->{java.lang.Object|}
YES: (JL1)
68:()V||1: java.lang.Throwable.()V|| - ||o172>
()V||1: java.lang.Exception.|| - || ->
()V||1: java.lang.RuntimeException.|| - || ->
o172!: Throwable(Exception(RuntimeException(NullPointerException())), backtrace=#, cause=#, detailMessage=#, stackTrace=#) -->{java.lang.Object|}
YES: (JL1)
69:()V||0: load ADDR this||this: o172|| ->
()V||1: java.lang.Throwable.|| - || ->
()V||1: java.lang.Exception.|| - || ->
()V||1: java.lang.RuntimeException.|| - || ->
o172!: Throwable(Exception(RuntimeException(NullPointerException())), backtrace=#, cause=#, detailMessage=#, stackTrace=#) -->{java.lang.Object|}
YES: (JL1)
70:()V||1: java.lang.Object.()V||this: o172||o172>
()V||1: java.lang.Throwable.|| - || ->
()V||1: java.lang.Exception.|| - || ->
()V||1: java.lang.RuntimeException.|| - || ->
o172!: Throwable(Exception(RuntimeException(NullPointerException())), backtrace=#, cause=#, detailMessage=#, stackTrace=#) -->{java.lang.Object|}
YES: (JL1)
71:()V||4: load ADDR this||this: o172|| ->
()V||1: java.lang.Throwable.|| - || ->
()V||1: java.lang.Exception.|| - || ->
()V||1: java.lang.RuntimeException.|| - || ->
o172!: Throwable(Exception(RuntimeException(NullPointerException())), backtrace=#, cause=#, detailMessage=#, stackTrace=#) -->{java.lang.Object|}
YES: (JL1)
72:()V||5: load ADDR this||this: o172||o172>
()V||1: java.lang.Throwable.|| - || ->
()V||1: java.lang.Exception.|| - || ->
()V||1: java.lang.RuntimeException.|| - || ->
o172!: Throwable(Exception(RuntimeException(NullPointerException())), backtrace=#, cause=#, detailMessage=#, stackTrace=#) -->{java.lang.Object|}
YES: (JL1)
73:()V||6: Write to cause||this: o172||o172, o172>
()V||1: java.lang.Throwable.|| - || ->
()V||1: java.lang.Exception.|| - || ->
()V||1: java.lang.RuntimeException.|| - || ->
o172!: Throwable(Exception(RuntimeException(NullPointerException())), backtrace=#, cause=#, detailMessage=#, stackTrace=#) -->{java.lang.Object|}
YES: (JL1)
74:()V||9: load ADDR this||this: o172|| ->
()V||1: java.lang.Throwable.|| - || ->
()V||1: java.lang.Exception.|| - || ->
()V||1: java.lang.RuntimeException.|| - || ->
o172!: Throwable(Exception(RuntimeException(NullPointerException())), backtrace=#, cause=o172, detailMessage=#, stackTrace=#) -->{{java.lang.NullPointerException|, java.lang.Object|}}
YES: (JL1)
75:()V||10: java.lang.Throwable.fillInStackTrace()Ljava/lang/Throwable;|| - ||o172>
()V||1: java.lang.Throwable.|| - || ->
()V||1: java.lang.Exception.|| - || ->
()V||1: java.lang.RuntimeException.|| - || ->
o172!: Throwable(Exception(RuntimeException(NullPointerException())), backtrace=#, cause=o172, detailMessage=#, stackTrace=#) -->{{java.lang.NullPointerException|, java.lang.Object|}}
YES: (JL1)
76:()V||13: pop|| - ||o172>
()V||1: java.lang.Throwable.|| - || ->
()V||1: java.lang.Exception.|| - || ->
()V||1: java.lang.RuntimeException.|| - || ->
o172!: Throwable(Exception(RuntimeException(NullPointerException())), backtrace=#, cause=o172, detailMessage=#, stackTrace=#) -->{{java.lang.NullPointerException|, java.lang.Object|}}
YES: (JL1)
77:()V||14: return|| - || ->
()V||1: java.lang.Throwable.|| - || ->
()V||1: java.lang.Exception.|| - || ->
()V||1: java.lang.RuntimeException.|| - || ->
o172!: Throwable(Exception(RuntimeException(NullPointerException())), backtrace=#, cause=o172, detailMessage=#, stackTrace=#) -->{{java.lang.NullPointerException|, java.lang.Object|}}
YES: (JL1)
78:()V||4: return|| - || ->
()V||1: java.lang.Exception.|| - || ->
()V||1: java.lang.RuntimeException.|| - || ->
o172!: Throwable(Exception(RuntimeException(NullPointerException())), backtrace=#, cause=o172, detailMessage=#, stackTrace=#) -->{{java.lang.NullPointerException|, java.lang.Object|}}
YES: (JL1)
79:()V||4: return|| - || ->
()V||1: java.lang.RuntimeException.|| - || ->
o172!: Throwable(Exception(RuntimeException(NullPointerException())), backtrace=#, cause=o172, detailMessage=#, stackTrace=#) -->{{java.lang.NullPointerException|, java.lang.Object|}}
YES: (JL1)
80:()V||4: return|| - || ->
o172!: Throwable(Exception(RuntimeException(NullPointerException())), backtrace=#, cause=o172, detailMessage=#, stackTrace=#) -->{{java.lang.NullPointerException|, java.lang.Object|}}
YES: (JL1)
81:
o172!: Throwable(Exception(RuntimeException(NullPointerException())), backtrace=#, cause=o172, detailMessage=#, stackTrace=#) -->{{java.lang.NullPointerException|, java.lang.Object|}}
YES: (JL1)
----------------------------------------
(4)
NO