Skip to Content

Improving Performance of the VerCors Program Verifier

Posted on

Authors:

  • Mulder, Henk
  • Huisman, Marieke
  • Joosten, Sebastiaan

Published in: Deductive Software Verification: Future Perspectives pp 65–82

Paper

Abstract:

As program verification tools are becoming more powerful, and are used on larger programs, their performance also becomes more and more important. In this paper we investigate performance bottlenecks in the VerCors program verifier. Moreover, we also discuss two solutions to the identified performance bottlenecks: an improved encoding of arrays, as well as a technique to automatically generate trigger expressions to guide the underlying prover when reasoning about quantifiers. For both solutions we measure the effect on the performance. We see that the new encoding vastly reduces the verification time of certain programs, while other programs keep showing comparable times. This effect remains when moving to newer backends for VerCors.

BibTeX entry:

@incollection{Mulder20,
 abstract = {As program verification tools are becoming more powerful, and are used on larger programs, their performance also becomes more and more important. In this paper we investigate performance bottlenecks in the VerCors program verifier. Moreover, we also discuss two solutions to the identified performance bottlenecks: an improved encoding of arrays, as well as a technique to automatically generate trigger expressions to guide the underlying prover when reasoning about quantifiers. For both solutions we measure the effect on the performance. We see that the new encoding vastly reduces the verification time of certain programs, while other programs keep showing comparable times. This effect remains when moving to newer backends for VerCors.},
 author = {Mulder, Henk and Huisman, Marieke and Joosten, Sebastiaan},
 booktitle = {Deductive Software Verification: Future Perspectives},
 date-added = {2021-09-18 14:47:12 -0400},
 date-modified = {2021-09-18 15:27:36 -0400},
 month = {9},
 pages = {65--82},
 publisher = {Springer, Cham},
 title = {Improving Performance of the VerCors Program Verifier},
 year = {2020}
}