Exploration of Language Specifications by Compilation to First-order Logic

Conference Paper (2016)
Author(s)

Sylvia Grewe (Technische Universität Darmstadt)

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

Michael Raulf (Technische Universität Darmstadt)

Mira Mezini (Technische Universität Darmstadt)

Research Group
Programming Languages
DOI related publication
https://doi.org/10.1145/2967973.2968606
More Info
expand_more
Publication Year
2016
Language
English
Research Group
Programming Languages
Pages (from-to)
104--117
ISBN (electronic)
978-1-4503-4148-6

Abstract

Exploration of language specifications helps to discover errors and inconsistencies early during the development of a programming language. We propose exploration of language specifications via application of existing automated first-order theorem provers (ATPs). To this end, we translate language specifications and exploration tasks to first-order logic, which many ATPs accept as input. However, there are several different strategies for compiling a language specification to first-order logic, and even small variations in the translation may have a large impact on the time it takes ATPs to find proofs.

In this paper, we present a systematic empirical study on how to best compile language specifications to first-order logic such that existing ATPs can solve typical exploration tasks efficiently. We have developed a compiler product line that implements 36 different compilation strategies and used it to feed language specifications to 4 existing first-order theorem provers. As a benchmark, we developed a language specification for typed SQL with 50 exploration goals. Our study empirically confirms that the choice of a compilation strategy in general greatly influences prover performance and shows which strategies are advantageous for prover performance.

No files available

Metadata only record. There are no files for this record.