Section: New Results

A Two-level Approach to Reasoning about Computation

Participant : Dale Miller.

In a paper that appeared in the J. of Automated Reasoning, Gacek, Miller, and Nadathur [12] described the foundations and architecture of a new interactive theorem prover capable of reasoning with rich collections of inductive and coinductive relations. This prover, called Abella, also contains the “generic” quantifier that provides a direct and elegant treatment of term-level binding.

A novel aspect of Abella is that it can define provability in various simple logics and can also reason about provability in such logics. The current system includes a specification logic that is a (restricted) intuitionistic logic programming language (a sublanguage of λProlog). The main logic of Abella is then the second logic, called the reasoning logic, and it is capable of reasoning about provability in the specification language.

This approach to reasoning about computation has interesting applications. For example, the reasoning logic is aware of the fact that the cut and substitution rules can be eliminated in the specification logic. As a consequence, the notoriously difficult "substitution lemmas" that occur repeated in the study of operational semantics are proved essentially for free (that is, they are an immediate consequence of cut-elimination).

In [17] , Accattoli showed that when one reasons about the untyped λ-calculus, the specification logic is often not needed. In particular, Accattoli reinterpreted the formalization by G. Huet of the meta-theory of λ-calculus residuals in Abella and showed that the resulting meta-theory had a much more elegant and natural specification than the one presented early by Huet in Coq. While the use of two-levels of logic was not important for this particular (untyped) example, other aspects of Abella—relation specifications, -quantification, and strong induction principles—were critical for improving the expressivity of this prover.