## 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 $\nabla $ 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 $\lambda $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* $\lambda $-calculus, the specification logic is often not
needed. In particular, Accattoli reinterpreted the formalization by
G. Huet of the meta-theory of $\lambda $-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, $\nabla $-quantification, and strong induction
principles—were critical for improving the expressivity of this
prover.