1,725 research outputs found
POPLMark reloaded: Mechanizing proofs by logical relations
We propose a new collection of benchmark problems in mechanizing the metatheory of programming languages, in order to compare and push the state of the art of proof assistants. In particular, we focus on proofs using logical relations (LRs) and propose establishing strong normalization of a simply typed calculus with a proof by Kripke-style LRs as a benchmark. We give a modern view of this well-understood problem by formulating our LR on well-typed terms. Using this case study, we share some of the lessons learned tackling this problem in different dependently typed proof environments. In particular, we consider the mechanization in Beluga, a proof environment that supports higher-order abstract syntax encodings and contrast it to the development and strategies used in general-purpose proof assistants such as Coq and Agda. The goal of this paper is to engage the community in discussions on what support in proof environments is needed to truly bring mechanized metatheory to the masses and engage said community in the crafting of future benchmarks
Mechanizing Principia Logico-Metaphysica in Functional Type Theory
Principia Logico-Metaphysica contains a foundational logical theory for
metaphysics, mathematics, and the sciences. It includes a canonical development
of Abstract Object Theory [AOT], a metaphysical theory (inspired by ideas of
Ernst Mally, formalized by Zalta) that distinguishes between ordinary and
abstract objects.
This article reports on recent work in which AOT has been successfully
represented and partly automated in the proof assistant system Isabelle/HOL.
Initial experiments within this framework reveal a crucial but overlooked fact:
a deeply-rooted and known paradox is reintroduced in AOT when the logic of
complex terms is simply adjoined to AOT's specially-formulated comprehension
principle for relations. This result constitutes a new and important paradox,
given how much expressive and analytic power is contributed by having the two
kinds of complex terms in the system. Its discovery is the highlight of our
joint project and provides strong evidence for a new kind of scientific
practice in philosophy, namely, computational metaphysics.
Our results were made technically possible by a suitable adaptation of
Benzm\"uller's metalogical approach to universal reasoning by semantically
embedding theories in classical higher-order logic. This approach enables one
to reuse state-of-the-art higher-order proof assistants, such as Isabelle/HOL,
for mechanizing and experimentally exploring challenging logics and theories
such as AOT. Our results also provide a fresh perspective on the question of
whether relational type theory or functional type theory better serves as a
foundation for logic and metaphysics.Comment: 14 pages, 6 figures; preprint of article with same title to appear in
The Review of Symbolic Logi
A Case Study on Logical Relations using Contextual Types
Proofs by logical relations play a key role to establish rich properties such
as normalization or contextual equivalence. They are also challenging to
mechanize. In this paper, we describe the completeness proof of algorithmic
equality for simply typed lambda-terms by Crary where we reason about logically
equivalent terms in the proof environment Beluga. There are three key aspects
we rely upon: 1) we encode lambda-terms together with their operational
semantics and algorithmic equality using higher-order abstract syntax 2) we
directly encode the corresponding logical equivalence of well-typed
lambda-terms using recursive types and higher-order functions 3) we exploit
Beluga's support for contexts and the equational theory of simultaneous
substitutions. This leads to a direct and compact mechanization, demonstrating
Beluga's strength at formalizing logical relations proofs.Comment: In Proceedings LFMTP 2015, arXiv:1507.0759
Syntax for free: representing syntax with binding using parametricity
We show that, in a parametric model of polymorphism, the type ∀ α. ((α → α) → α) → (α → α → α) → α is isomorphic to closed de Bruijn terms. That is, the type of closed higher-order abstract syntax terms is isomorphic to a concrete representation. To demonstrate the proof we have constructed a model of parametric polymorphism inside the Coq proof assistant. The proof of the theorem requires parametricity over Kripke relations. We also investigate some variants of this representation
An Open Challenge Problem Repository for Systems Supporting Binders
A variety of logical frameworks support the use of higher-order abstract
syntax in representing formal systems; however, each system has its own set of
benchmarks. Even worse, general proof assistants that provide special libraries
for dealing with binders offer a very limited evaluation of such libraries, and
the examples given often do not exercise and stress-test key aspects that arise
in the presence of binders. In this paper we design an open repository ORBI
(Open challenge problem Repository for systems supporting reasoning with
BInders). We believe the field of reasoning about languages with binders has
matured, and a common set of benchmarks provides an important basis for
evaluation and qualitative comparison of different systems and libraries that
support binders, and it will help to advance the field.Comment: In Proceedings LFMTP 2015, arXiv:1507.0759
Mechanizing the Metatheory of LF
LF is a dependent type theory in which many other formal systems can be
conveniently embedded. However, correct use of LF relies on nontrivial
metatheoretic developments such as proofs of correctness of decision procedures
for LF's judgments. Although detailed informal proofs of these properties have
been published, they have not been formally verified in a theorem prover. We
have formalized these properties within Isabelle/HOL using the Nominal Datatype
Package, closely following a recent article by Harper and Pfenning. In the
process, we identified and resolved a gap in one of the proofs and a small
number of minor lacunae in others. We also formally derive a version of the
type checking algorithm from which Isabelle/HOL can generate executable code.
Besides its intrinsic interest, our formalization provides a foundation for
studying the adequacy of LF encodings, the correctness of Twelf-style
metatheoretic reasoning, and the metatheory of extensions to LF.Comment: Accepted to ACM Transactions on Computational Logic. Preprint
- …