## 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.