Download PDFOpen PDF in browser

Automating Proof Steps of Progress Proofs: Comparing Vampire and Dafny

13 pagesPublished: March 1, 2017

Abstract

\noindent Developing provably sound type systems is a non-trivial task which, as of today, typically requires expert skills in formal methods and a considerable amount of time. Our Veritas~\cite{GreweErdwegWittmannMezini15} project aims at providing support for the development of soundness proofs of type systems and efficient type checker implementations from specifications of type systems. To this end, we investigate how to best automate typical steps within type soundness proofs.
\noindent In this paper, we focus on progress proofs for type systems of domain-specific languages. As a running example for such a type system, we model a subset SQL and augment it with a type system. We compare two different approaches for automating proof steps of the progress proofs for this type system against each other: firstly, our own tool Veritas, which translates proof goals and specifications automatically to TPTP~\cite{Sutcliffe98} and calls Vampire~\cite{KovacsV13} on them, and secondly, the programming language Dafny~\cite{Leino2010}, which translates proof goals and specifications to the intermediate verification language Boogie 2~\cite{Leino2008} and calls the SMT solver Z3~\cite{DeMoura2008} on them. We find that Vampire and Dafny are equally well-suited for automatically proving simple steps within progress proofs.

Keyphrases: automated verification, first order theorem proving, type systems

In: Laura Kovacs and Andrei Voronkov (editors). Vampire 2016. Proceedings of the 3rd Vampire Workshop, vol 44, pages 33-45.

BibTeX entry
@inproceedings{Vampire2016:Automating_Proof_Steps_Progress,
  author    = {Sylvia Grewe and Sebastian Erdweg and Mira Mezini},
  title     = {Automating Proof Steps of Progress Proofs: Comparing Vampire and Dafny},
  booktitle = {Vampire 2016. Proceedings of the 3rd Vampire Workshop},
  editor    = {Laura Kovacs and Andrei Voronkov},
  series    = {EPiC Series in Computing},
  volume    = {44},
  publisher = {EasyChair},
  bibsource = {EasyChair, https://easychair.org},
  issn      = {2398-7340},
  url       = {/publications/paper/hfP},
  doi       = {10.29007/5zjp},
  pages     = {33-45},
  year      = {2017}}
Download PDFOpen PDF in browser