Mechanically Verifying the Correctness of an Offline Partial Evaluator (1995)
| Citations: | 12 - 3 self |
BibTeX
@MISC{Hatcliff95mechanicallyverifying,
author = {John Hatcliff},
title = {Mechanically Verifying the Correctness of an Offline Partial Evaluator},
year = {1995}
}
OpenURL
Abstract
We show that using deductive systems to specify an offline partial evaluator allows its correctness to be mechanically verified. For a -mix-style partial evaluator, we specify binding-time constraints using a natural-deduction logic, and the associated program specializer using natural (aka "deductive") semantics. These deductive systems can be directly encoded in the Elf programming language --- a logic programming language based on the LF logical framework. The specifications are then executable as logic programs. This provides a prototype implementation of the partial evaluator. Moreover, since deductive system proofs are accessible as objects in Elf, many aspects of the partial evaluation correctness proofs (e.g., the correctness of binding-time analysis) can be coded in Elf and mechanically verified. This work illustrates the utility of declarative programming and of using deductive systems for defining program specialization systems: by exploiting the logical character of definit...







