αCheck: a mechanized metatheory model-checker

James Cheney, Alberto Momigliano

Research output: Contribution to journalArticlepeer-review

Abstract

The problem of mechanically formalizing and proving metatheoretic properties of programming language calculi, type systems, operational semantics, and related formal systems has received considerable attention recently. However, the dual problem of searching for errors in such formalizations has attracted comparatively little attention. In this article, we present $\alpha$Check, a bounded model-checker for metatheoretic properties of formal systems specified using nominal logic. In contrast to the current state of the art for metatheory verification, our approach is fully automatic, does not require expertise in theorem proving on the part of the user, and produces counterexamples in the case that a flaw is detected. We present two implementations of this technique, one based on negation-as-failure and one based on negation elimination, along with experimental results showing that these techniques are fast enough to be used interactively to debug systems as they are developed.
Original languageEnglish
Pages (from-to)311-352
Number of pages48
JournalTheory and Practice of Logic Programming
Volume17
Issue number3
Early online date22 May 2017
DOIs
Publication statusPublished - May 2017

Fingerprint

Dive into the research topics of 'αCheck: a mechanized metatheory model-checker'. Together they form a unique fingerprint.

Cite this