Section: New Results
Two level of logic
Participants : Andrew Gacek, Dale Miller.
Relational descriptions have been widely used in formalizing diverse computational notions, including, for example, operational semantics, typing, acceptance by non-deterministic machines, etc . Such relational specifications can be faithfully captured by a (restricted) logical theory over relations. Such a specification logic can be picked so that it explicitly treats binding in object languages. Once such a logic is fixed, a natural next question is what devices should be used to prove theorems about specifications written in it. Within the team, we have a second logic, called the reasoning logic , to reason about provability in the first logic. To be adequate for this purpose, the reasoning logic should be able to completely encode the specification logic, including notions of binding, such as quantifiers within formulas, for eigenvariables within sequents, and for abstractions within terms. To provide a natural treatment of these aspects, the reasoning logic must encode binding structures as well as their associated notions of scope, free/bound variables, and capture-avoiding substitution. Furthermore, the reasoning logic should possess strong mechanisms for constructing proofs by induction and co-induction.
Within the context of the Gacek's PhD thesis [37] and
the submitted paper [40] by Gacek, Miller, and
Nadathur, the logic was present: this logic represents
relations over
-terms via definitions of atomic judgments,
contains inference rules for induction and co-induction, and includes
a special quantifier called
and a related generalization of
equality over
-terms called nominal abstraction . The
interactive theorem prover Abella [39] [37] implements
and supports this two-level
logic approach to reasoning about computation. Gacek and others have
now contributed a large number of interesting examples showing the
utility of using this two-level approach to reasoning: see the Abella
web site for many examples. In particular, the POPLMark challenge
problems 1a and 2a [25] have nice, declarative
solutions within Abella.