MCNP | |
---|---|
Number of termination proofs | 66 |
Average runtime | 0.55 |
Maximal runtime | 5.15 |
[Details] |
Moreover, we also compare with the results of the earlier experiments with AProVE on the 32 original problem instances of the ITRS sub-suite. Here AProVE was applied on the ITRSs and was run on a machine with an Intel Core 2 Quad CPU Q9450 with 4 cores at 2.66GHz each, having 8 GB RAM.
MCNP | AProVE | |
---|---|---|
Number of termination proofs | 27 | 28 |
Number of proofs on examples not solved by the other tool | 0 | 1 |
Average runtime (without timeouts) | 0.22 | 5.30 |
Average runtime (including timeouts) | 0.22 | 12.14 |
Maximal runtime | 4.22 | > 60.00 |
Timeouts (> 60.00) | 0 | 4 |
[Details] | [Details] |
These experiments show that an abstraction to MCSs is sufficiently powerful for representative programs on integers and they also demonstrate the efficiency of our SAT-based implementation of MCNP. The comparison with AProVE on the ITRS examples indicates that MCNP has about the same precision as AProVE on these examples, and MCNP is significantly faster.
MCNP | COSTA | |
---|---|---|
Number of termination proofs | 92 | 102 |
Number of proofs on examples not solved by the other tool | 5 | 15 |
Average runtime (without timeouts) | 0.662 | 0.076 |
Average runtime (including timeouts) | 0.662 | 3.709 |
Maximal runtime | 16.31 | > 120.00 |
Timeouts (> 120.00) | 0 | 5 |
[Details] | [Details] |
The detailed results show that MCNP finds 5 termination proofs where COSTA does not (in 4 of these instances, COSTA reaches a timeout).
From these experiments we see that although MCNP uses a very simple domain of ranking functions, it is able to provide many of the proofs, and it does not encounter timeouts. Moreover, there are 5 programs where MCNP provides a proof and COSTA does not.
MCNP | AProVE fixed abstraction | |
---|---|---|
Number of termination proofs | 63 | 73 |
Number of proofs on examples not solved by the other tool | 5 | 15 |
Average runtime (without timeouts) | 2.12 | 11.08 |
Average runtime (including timeouts) | 5.76 | 14.16 |
Maximal runtime | > 60.00 | > 60.00 |
Timeouts (> 60.00) | 8 | 8 |
[Details] | [Details] |
In contrast, the configuration "AProVE" searches for an abstraction in the process of finding a termination proof. This is also the setting in which AProVE is normally applied. Here the two different configurations of the tool AProVE are run on a machine with an Intel Xeon 5140 with 4 CPU cores at 2.33 GHz each, having 16 GB RAM.
MCNP | AProVE | |
---|---|---|
Number of termination proofs | 63 | 95 |
Number of proofs on examples not solved by the other tool | 3 | 35 |
Average runtime (without timeouts) | 2.12 | 9.58 |
Average runtime (including timeouts) | 5.76 | 17.12 |
Maximal runtime | > 60.00 | > 60.00 |
Timeouts (> 60.00) | 8 | 19 |
[Details] | [Details] |
In the detailed results one can observe that MCNP finds 5 termination proofs on examples where "AProVE fixed abstraction" failed and 3 termination proofs on (partly other) examples where AProVE failed.
This shows that the additional proving power in AProVE comes primarily from the costly search for the right abstraction. Once fixing the abstraction, MCNP is of similar precision and much faster. Thus, it could be fruitful to combine rewrite-based tools like AProVE with an MCNP-based analyzer such that the MCNP-analyzer is tried first (to solve the "easier" examples fast) and the rewrite-based analyzer is only applied for the remaining "hard" examples. Since MCNP shows termination in 3 cases where AProVE does not, we can also expect a raise in overall precision from such a combination.