Automating Proof Steps of Progress Proofs

Comparing Vampire and Dafny

Conference Paper (2016)
Author(s)

Sylvia Grewe (Technische Universität Darmstadt)

S.T. Erdweg (TU Delft - Programming Languages)

Mira Mezini (Technische Universität Darmstadt)

Research Group
Programming Languages
Copyright
© 2016 Sylvia Grewe, S.T. Erdweg, Mira Mezini
More Info
expand_more
Publication Year
2016
Language
English
Copyright
© 2016 Sylvia Grewe, S.T. Erdweg, Mira Mezini
Research Group
Programming Languages
Pages (from-to)
33-45
Reuse Rights

Other than for strictly personal use, it is not permitted to download, forward or distribute the text or part of it, without the consent of the author(s) and/or copyright holder(s), unless the work is under an open content license such as Creative Commons.

Abstract

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 [3] project aims at providing support for the development of soundness proofs of type systems and efficient type checker implementations from type system specifications. To this end, we investigate how to best automate typical steps within type soundness proofs. 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 [13] and calls Vampire [8] on them, and secondly, the programming language Dafny [6], which translates proof goals and specifications to the intermediate verification language Boogie 2 [5] and calls the SMT solver Z3 [9] on them. We find that Vampire and Dafny are equally well-suited for automatically proving simple steps within progress proofs.

Files

License info not available