On the Correspondence Between Proofs and lambda-Terms. (original) (raw)

The λ Calculus and the Unity of Structural Proof Theory

Theory of Computing Systems / Mathematical Systems Theory, 2009

In the context of intuitionistic implicational logic, we achieve a perfect correspondence (technically an isomorphism) between sequent calculus and natural deduction, based on perfect correspondences between left-introduction and elimination, cut and substitution, and cut-elimination and normalisation. This requires an enlarged system of natural deduction that refines von Plato’s calculus. It is a calculus with modus ponens and primitive substitution; it is also a “coercion calculus”, in the sense of Cervesato and Pfenning. Both sequent calculus and natural deduction are presented as typing systems for appropriate extensions of the λ-calculus. The whole difference between the two calculi is reduced to the associativity of applicative terms (sequent calculus = right associative, natural deduction = left associative), and in fact the achieved isomorphism may be described as the mere inversion of that associativity. The novel natural deduction system is a “multiary” calculus, because “applicative terms” may exhibit a list of several arguments. But the combination of “multiarity” and left-associativity seems simply wrong, leading necessarily to non-local reduction rules (reason: normalisation, like cut-elimination, acts at the head of applicative terms, but natural deduction focuses at the tail of such terms). A solution is to extend natural deduction even further to a calculus that unifies sequent calculus and natural deduction, based on the unification of cut and substitution. In the unified calculus, a sequent term behaves like in the sequent calculus, whereas the reduction steps of a natural deduction term are interleaved with explicit steps for bringing heads to focus. A variant of the calculus has the symmetric role of improving sequent calculus in dealing with tail-active permutative conversions.

De Bruijn's syntax and reductional behaviour of λ-terms: the untyped case

The Journal of Logic and Algebraic Programming, 2005

In this paper, a notation influenced by de Bruijn's syntax of the λ-calculus is used to describe canonical forms of terms and an equivalence relation which divides terms into classes according to their reductional behaviour. We show that this notation helps describe canonical forms more elegantly than the classical notation. We define reduction modulo equivalence classes of terms up to the permutation of redexes in canonical forms and show that this reduction contains other notions of reductions in the literature including the σ-reduction of Regnier. We establish all the desirable properties of our reduction modulo equivalence classes for the untyped λ-calculus.

Proof Polynomials: A Unified Semantics for Modality and lambda-terms

1998

REPORT DOCUMENTATION PAGE Form Approved OMB NO. 0704-0188 Public Reporting burden for this collection of information is estimated to average 1 hour per response, including the time for reviewing instructions, searching existing data sources, gathering and maintaining the data needed, and completing and reviewing the collection of information.

Some new results on easy lambda-terms

Theoretical Computer Science, 1993

A. and B. Intrigila, Some new results on easy lambda-terms, Theoretical Computer Science 121 (1993) 71-88. Given two closed I-terms A and B we consider the question whether the equation A = B is consistent with the @-calculus. In general the problem is undecidable. However, if A is a O-term, we can give good sufficient conditions for the consistency of l$+{A= B}. This allows us to prove some counterintuitive results such as: (1) there is a closed &term X which can be consistently equated to every closed I-term with the exception of the identity 1x.x, (2) there is a closed I-term which can be consistently equated to every closed normal form, but not to the Curry fixed point operator Y.

Formal SOS-Proofs for the Lambda-Calculus

Electronic Notes in Theoretical Computer Science, 2009

We describe in this paper formalisations for the properties of weakening, type-substitutivity, subject-reduction and termination of the usual big-step evaluation relation. Our language is the lambda-calculus whose simplicity allows us to show actual theorem-prover code of the formal proofs. The formalisations are done in Nominal Isabelle, a definitional extention of the theorem prover Isabelle/HOL. The point of these formalisations is to be as close as possible to the "pencil-and-paper" proofs for these properties, but of course be completely rigorous. We describe where Nominal Isabelle is of great help with such formalisations and where one has to invest additional effort in order to obtain formal proofs.

Lambda Unification

2006

We give a formal description of an algorithm for lambda unification. The input to the algorithm consists of two terms t and s of lambda logic. The purpose of the algorithm is to find (sometimes) a substitution σ such that tσ = sσ is provable in lambda logic. In general such unifiers are not unique. Lambda logic itself is defined in [2]. We prove some basic metatheorems about lambda unification, and compare it to the previously known notion of “higher order unification.” Examples of the use of lambda unification to find proofs by mathematical induction, using its implementation in the theorem prover Otter-lambda, are given in [4].

Choices in Representation and Reduction Strategies for Lambda Terms in Intensional Contexts

Journal of Automated Reasoning, 2004

Higher-order representations of objects such as programs, proofs, formulas and types have become important to many symbolic computation tasks. Systems that support such representations usually depend on the implementation of an intensional view of the terms of some variant of the typed lambda calculus. New notations have been proposed for the lambda calculus that provide an excellent basis for realizing such implementations. There are, however, several choices in the actual deployment of these notations the practical consequences of which are not currently well understood. We attempt to develop such an understanding here by examining the impact on performance of different combinations of the features afforded by such notations. Amongst the facets examined are the treatment of bound variables, eagerness and laziness in substitution and reduction, the ability to merge different structure traversals into one and the virtues of annotations on terms that indicate their dependence on variables bound by external abstractions. We complement qualitative assessments with experiments conducted by executing programs in a language that supports an intensional view of lambda terms while varying relevant aspects of the implementation of the language. Our study provides insights into the preferred approaches to representing and reducing lambda terms and also exposes characteristics of computations that have a somewhat unanticipated effect on performance.