Denotational
Proof Languages
What are DPLs?
DPLs (Denotational Proof Languages) are languages for expressing formal proofs and proof-search
algorithms in arbitrary logics. Roughly speaking, there are two types of DPLs: type-alpha and type-omega.
Type-a DPLs allow for proof presentation and checking, but not for proof search. Type-w DPLs are
supersets of type-a DPLs, so they allow for proof presentation and checking, but they also allow for
proof search, and indeed for arbitrary computation. So type-w DPLs are actually Turing-complete
programming languages, as well as proof frameworks (like ACL2 or HOL, but with important
differences). The languages are structured in such a way that soundness is ensured: the conclusion
of any proof D is guaranteed to be a logical consequence of the assumption base in which D was
evaluated (more on assumption bases below).
There are two main innovations behind DPLs, the first of a syntactic and the second of a semantic kind.
On the syntactic front, DPLs have formalized key notions such as assumption scope and eigenvariable
scope in novel ways (most notably, without reducing them to variable scope in the typed lambda calculus,
as is done in Curry-Howard systems via higher-order abstract syntax); and based on those formalizations,
syntax forms such as assume, pick-any, and pick-witness have been introduced that closely capture the
most common and useful idioms of mathematical reasoning. In addition, type-w DPLs have introduced
a notion of teasing apart the syntax of computation and deduction in a way that allows the two to be integrated
seamlessly and soundly. Semantically, the main contribution of DPLs is the introduction of assumption bases.
The introduction of assumption bases as a fundamental semantic abstraction on a par with lexical environments,
stores, and continuations allows for an elegant treatment of proof theory, even for logics that have been difficult
to formalize in a non-graphical manner, such as Fitch-style natural deduction. The approach is quite distinct from
that of systems based on higher-order constructive type theory, such as LF, Coq, or Nuprl. It is more similar to
systems of the LCF variety (HOL, Isabelle, etc.), but again, the introduction of assumption bases and the
syntactic separation of deduction and computation bring several advantages, e.g. sequents are no longer necessary,
and proofs can be written in a style that is much closer to the natural deduction format used in practice. Even a static
type system is not necessary in a type-w DPL (by contrast, a strong static type system is perhaps the
hallmark of LCF-style systems; it is absolutely essential for them in order to ensure soundness). In addition,
assumption-base semantics enable a rich theory of observational equivalence for proofs, greatly facilitating
the formulation---and answering---of questions such as the following:
· When are two proofs equivalent?
· When can one proof D1 be safely substituted for another proof D2 inside a third proof D?
· When is one proof more “efficient” than another?
For instance, using the theory of assumption-base observational proof equivalence, we have developed
a procedure for simplifying natural-deduction proofs that often results in dramatic size reductions.
The DPL style of presentation has been applied to numerous logics, including zero-, first-, and higher-order
natural deduction for classical logic, intuitionist logic, modal and temporal logics, Hoare-Floyd program logics,
and others. Here are some papers on DPLs:
Athena
Athena is a type-w DPL for polymorphic multi-sorted first-order natural deduction – in the Fitch style, not based on sequents.
It includes a higher-order functional language in the tradition of Scheme. It was developed by Konstantine Arkoudas at MIT in
1998. It has been used to develop and check proofs in several applications, A tutorial will be coming soon, but in the meanwhile
here are a few other resources that can get someone up and going in using the language:
in Athena.
(The code for that project can be found here.)
More Athena resources (including distributions, Emacs environments, etc.).
David Musser was using Athena this last term (Fall 2003) for his course in Generic Programming,
and has put together a page with some Athena resources, including a couple of turorials with heuristics
on how to build Athena proofs, an Emacs environment for Athena. Athena distributions for Windows,
Linux, Solaris, and the Mac can also be found there.
Soon, those distributions will be found on this page, along with a forthcoming Athena tutorial and
a few other documents.