SMT 1.4 Performance Results

From Event-B
Jump to navigationJump to search

Upgraded Provers

In SMT plug-in 1.4.0, the following bundled provers have been upgraded:

  • veriT (v2012 to v2016)
  • CVC4 (v1.4 to v1.5)
  • Z3 (v4.4.1 to v4.5.0)

Note: CVC3 is still bundled but remains in the same version (v2.4.1) as in SMT 1.3.

This has led to globally improve the rate of automatically discharged proof obligations (PO), thus reducing the remaining POs to prove manually.

Results overview

The following picture shows the discharged POs for each project of the performance benchmark:

SMT 1.4 Perf Discharged POs.png

This next image focuses on the remaining POs:

SMT 1.4 Perf Remaining POs.png

Global results

Now considering the whole benchmark for every upgraded prover:

SMT 1.4 Perf Total Remaining POs.png

Integrating the performances of the other provers:

SMT 1.4 Perf Total Remaining POs All Provers.png

Conclusion

The upgraded provers have individually improved their rate of automatically discharged proof obligations.

In particular, veriT has greatly improved since the last integrated version: -46.1% of remaining POs; this can be explained by the quite old previous version that was shipped and the good work that has been done since on the prover.

CVC4 has also greatly improved since its latest release: -22.4% of remaining POs.

Z3 has slightly improved (-1.1% of remaining POs), although a few regressions can be noticed among the previously discharged POs; however, Z3 remains the SMT prover with the best results.

With all SMT provers combined (including CVC3), this is a 3.4% improvement on the remaining proof obligations.

Adding AtelierB, we see that the provers complement one another, and the overall improvement is 3.5%. In a context where every percent is valuable, it is a sensible enhancement.