1,124 research outputs found
Hybrid - a definitional two-level approach to reasoning with higher-order abstract syntax
Combining higher-order abstract syntax and (co)-induction in a logical
framework is well known to be problematic.We describe the theory and the practice
of a tool called Hybrid, within Isabelle/HOL and Coq, which aims to address many
of these difficulties. It allows object logics to be represented using higher-order
abstract syntax, and reasoned about using tactical theorem proving and principles
of (co)induction. Moreover, it is definitional, which guarantees consistency within
a classical type theory. The idea is to have a de Bruijn representation of \u3bb-terms
providing a definitional layer that allows the user to represent object languages using
higher-order abstract syntax, while offering tools for reasoning about them at the
higher level. In this paper we describe how to use Hybrid in a multi-level reasoning
fashion, similar in spirit to other systems such as Twelf and Abella. By explicitly
referencing provability in a middle layer called a specification logic, we solve the
problem of reasoning by (co)induction in the presence of non-stratifiable hypothetical
judgments, which allow very elegant and succinct specifications of object logic
inference rules. We first demonstrate the method on a simple example, formally
proving type soundness (subject reduction) for a fragment of a pure functional
language, using a minimal intuitionistic logic as the specification logic. We then
prove an analogous result for a continuation-machine presentation of the operational semantics of the same language, encoded this time in an ordered linear logic that
serves as the specification layer. This example demonstrates the ease with which
we can incorporate new specification logics, and also illustrates a significantly more
complex object logic whose encoding is elegantly expressed using features of the new
specification logic
An Improved Implementation and Abstract Interface for Hybrid
Hybrid is a formal theory implemented in Isabelle/HOL that provides an
interface for representing and reasoning about object languages using
higher-order abstract syntax (HOAS). This interface is built around an HOAS
variable-binding operator that is constructed definitionally from a de Bruijn
index representation. In this paper we make a variety of improvements to
Hybrid, culminating in an abstract interface that on one hand makes Hybrid a
more mathematically satisfactory theory, and on the other hand has important
practical benefits. We start with a modification of Hybrid's type of terms that
better hides its implementation in terms of de Bruijn indices, by excluding at
the type level terms with dangling indices. We present an improved set of
definitions, and a series of new lemmas that provide a complete
characterization of Hybrid's primitives in terms of properties stated at the
HOAS level. Benefits of this new package include a new proof of adequacy and
improvements to reasoning about object logics. Such proofs are carried out at
the higher level with no involvement of the lower level de Bruijn syntax.Comment: In Proceedings LFMTP 2011, arXiv:1110.668
A Computational Approach to Reflective Meta-Reasoning about Languages with Bindings
We present a foundation for a computational meta-theory of languages with bindings implemented in a computer-aided formal reasoning environment. Our theory provides the ability to reason abstractly about operators, languages, open-ended languages, classes of languages, etc. The theory is based on the ideas of higher-order abstract syntax, with an appropriate induction principle parameterized over the language (i.e. a set of operators) being used. In our approach, both the bound and free variables are treated uniformly and this uniform treatment extends naturally to variable-length bindings. The implementation is reflective, namely there is a natural mapping between the meta-language of the theorem-prover and the object language of our theory. The object language substitution operation is mapped to the meta-language substitution and does not need to be defined recursively. Our approach does not require designing a custom type theory; in this paper we describe the implementation of this foundational theory within a general-purpose type theory. This work is fully implemented in the MetaPRL theorem prover, using the pre-existing NuPRL-like Martin-Lof-style computational type theory. Based on this implementation, we lay out an outline for a framework for programming language experimentation and exploration as well as a general reflective reasoning framework. This paper also includes a short survey of the existing approaches to syntactic reflection
NATURAL DEDUCTION AS HIGHER-ORDER RESOLUTION
An interactive theorem prover, Isabelle, is under development. In LCF, each
inference rule is represented by one function for forwards proof and another (a
tactic) for backwards proof. In Isabelle, each inference rule is represented by
a Horn clause. Resolution gives both forwards and backwards proof, supporting a
large class of logics. Isabelle has been used to prove theorems in
Martin-L\"of's Constructive Type Theory. Quantifiers pose several difficulties:
substitution, bound variables, Skolemization. Isabelle's representation of
logical syntax is the typed lambda-calculus, requiring higher- order
unification. It may have potential for logic programming. Depth-first
subgoaling along inference rules constitutes a higher-order Prolog
- ā¦