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.
|Title of host publication||Deductive Software Verification: Future Perspectives|
|Subtitle of host publication||Reflections on the Occasion of 20 Years of KeY|
|Editors||Wolfgang Ahrendt, Bernhard Beckert, Richard Bubel, Reiner Hähnle, Mattias Ulbrich|
|Place of Publication||Cham|
|Number of pages||18|
|Publication status||Published - 4 Dec 2020|
|Name||Lecture Notes in Computer Science|