A framework for specifying, prototyping, and reasoning about computational systems
A. Gacek
Ph.D. thesis, University of Minnesota, September 2009
This thesis concerns the development of a framework that facilitates
the design and analysis of formal systems. Specifically, this
framework provides a specification language which supports the concise
and direct description of formal systems, a mechanism for animating
the specification language thereby producing prototypes of encoded
systems, and a logic for proving properties of specifications and
therefore of the systems they encode. A defining characteristic of the
proposed framework is that it is based on two separate but closely
intertwined logics: a specification logic that facilitates the
description of computational structure and another logic that exploits
the special characteristics of the specification logic to support
reasoning about the computational behavior of systems that are
described using it. Both logics embody a natural treatment of binding
structure by using the lambda-calculus as a means for representing
objects and by incorporating special mechanisms for working with such
structure. By using this technique, they lift the treatment of binding
from the object language into the domain of the relevant meta logic,
thereby allowing the specification or analysis components to focus on
the more essential logical aspects of the systems that are encoded.
The primary contributions of these thesis are the development of a
rich meta-logic called G with capabilities for sophisticated reasoning
that includes induction and co-induction over high-level
specifications of computations and with an associated cut-elimination
result; an interactive reasoning system called Abella based on G; and
several reasoning examples which demonstrate the expressiveness and
naturalness of both G and Abella.