Results 11  20
of
37
Outline of a Proof Theory of Parametricity
 Proc. 5th International Symposium on Functional Programming Languages and Computer Architecture
, 1991
"... Reynolds' Parametricity Theorem (also known as the Abstraction Theorem), a result concerning the model theory of the second order polymorphic typed calculus (F 2 ), has recently been used by Wadler to prove some unusual and interesting properties of programs. We present a purely syntactic version o ..."
Abstract

Cited by 25 (2 self)
 Add to MetaCart
Reynolds' Parametricity Theorem (also known as the Abstraction Theorem), a result concerning the model theory of the second order polymorphic typed calculus (F 2 ), has recently been used by Wadler to prove some unusual and interesting properties of programs. We present a purely syntactic version of the Parametricity Theorem, showing that it is simply an example of formal theorem proving in second order minimal logic over a first order equivalence theory on terms. We analyze the use of parametricity in proving program equivalences, and show that structural induction is still required: parametricity is not enough. As in Leivant's transparent presentation of Girard's Representation Theorem for F 2 , we show that algorithms can be extracted from the proofs, such that if a term can be proven parametric, we can synthesize from the proof an "equivalent" parametric term that is moreover F 2 typable. Given that Leivant showed how proofs of termination, based on inductive data types and s...
The Impact of the Lambda Calculus in Logic and Computer Science
 Bulletin of Symbolic Logic
, 1997
"... One of the most important contributions of A. Church to logic is his invention of the lambda calculus. We present the genesis of this theory and its two major areas of application: the representation of computations and the resulting functional programming languages on the one hand and the represent ..."
Abstract

Cited by 23 (0 self)
 Add to MetaCart
One of the most important contributions of A. Church to logic is his invention of the lambda calculus. We present the genesis of this theory and its two major areas of application: the representation of computations and the resulting functional programming languages on the one hand and the representation of reasoning and the resulting systems of computer mathematics on the other hand. Acknowledgement. The following persons provided help in various ways. Erik Barendsen, Jon Barwise, Johan van Benthem, Andreas Blass, Olivier Danvy, Wil Dekkers, Marko van Eekelen, Sol Feferman, Andrzej Filinski, Twan Laan, Jan Kuper, Pierre Lescanne, Hans Mooij, Robert Maron, Rinus Plasmeijer, Randy Pollack, Kristoffer Rose, Richard Shore, Rick Statman and Simon Thompson. Partial support came from the European HCM project Typed lambda calculus (CHRXCT920046), the Esprit Working Group Types (21900) and the Dutch NWO project WINST (612316607). 1. Introduction This paper is written to honor Church's gr...
Uniform Traversal Combinators: Definition, Use and Properties
, 1992
"... In this paper we explore ways of capturing wellformed patterns of recursion in the form of generic reductions. These reductions, called uniform traversal combinators, can substantially help the theorem proving process by eliminating the need for induction and can also be an aid in achieving effecti ..."
Abstract

Cited by 13 (6 self)
 Add to MetaCart
In this paper we explore ways of capturing wellformed patterns of recursion in the form of generic reductions. These reductions, called uniform traversal combinators, can substantially help the theorem proving process by eliminating the need for induction and can also be an aid in achieving effective program synthesis. 1 Introduction Recursive structures, such as lists and trees, can be defined inductively in most functional languages [6]. The recursive types of these structures can be formalized using axiom sets generated automatically from their type definition, which are basically equivalent to Hoare's axioms for recursive data structures [5]. Programs that operate on instances of these types can be expressed as recursive functions in a pure applicative language. Theorems about these functions can be proved using induction principles on the structure of the parameter types of these functions. The BoyerMoore theorem prover [3], for example, proves theorems about recursive function...
Polytypic Proof Construction
, 1999
"... . This paper deals with formalizations and verifications in type theory that are abstracted with respect to a class of datatypes; i.e polytypic constructions. The main advantage of these developments are that they can not only be used to define functions in a generic way but also to formally st ..."
Abstract

Cited by 11 (0 self)
 Add to MetaCart
. This paper deals with formalizations and verifications in type theory that are abstracted with respect to a class of datatypes; i.e polytypic constructions. The main advantage of these developments are that they can not only be used to define functions in a generic way but also to formally state polytypic theorems and to synthesize polytypic proof objects in a formal way. This opens the door to mechanically proving many useful facts about large classes of datatypes once and for all. 1 Introduction It is a major challenge to design libraries for theorem proving systems that are both sufficiently complete and relatively easy to use in a wide range of applications (see e.g. [6, 26]). A library for abstract datatypes, in particular, is an essential component of every proof development system. The libraries of the Coq [1] and the Lego [13] system, for example, include a number of functions, theorems, and proofs for common datatypes like natural numbers or polymorphic lists. In th...
Inductive Data Types: Wellordering Types Revisited
 Logical Environments
, 1992
"... We consider MartinLof's wellordering type constructor in the context of an impredicative type theory. We show that the wellordering types can represent various inductive types faithfully in the presence of the fillingup equality rules or jrules. We also discuss various properties of the fill ..."
Abstract

Cited by 8 (1 self)
 Add to MetaCart
We consider MartinLof's wellordering type constructor in the context of an impredicative type theory. We show that the wellordering types can represent various inductive types faithfully in the presence of the fillingup equality rules or jrules. We also discuss various properties of the fillingup rules. 1 Introduction Type theory is on the edge of two disciplines, constructive logic and computer science. Logicians see type theory as interesting because it offers a foundation for constructive mathematics and its formalization. For computer scientists, type theory promises to provide a uniform framework for programs, proofs, specifications, and their development. From each perspective, incorporating a general mechanism for inductively defined data types into type theory is an important next step. Various typetheoretic approaches to inductive data types have been considered in the literature, both in MartinLof's predicative type theories (e.g., [ML84, Acz86, Dyb88, Dyb91, B...
Specification Refinement with System F
 In Proc. CSL'99, volume 1683 of LNCS
, 1999
"... . Essential concepts of algebraic specification refinement are translated into a typetheoretic setting involving System F and Reynolds' relational parametricity assertion as expressed in Plotkin and Abadi's logic for parametric polymorphism. At first order, the typetheoretic setting provides a ..."
Abstract

Cited by 6 (3 self)
 Add to MetaCart
. Essential concepts of algebraic specification refinement are translated into a typetheoretic setting involving System F and Reynolds' relational parametricity assertion as expressed in Plotkin and Abadi's logic for parametric polymorphism. At first order, the typetheoretic setting provides a canonical picture of algebraic specification refinement. At higher order, the typetheoretic setting allows future generalisation of the principles of algebraic specification refinement to higher order and polymorphism. We show the equivalence of the acquired typetheoretic notion of specification refinement with that from algebraic specification. To do this, a generic algebraicspecification strategy for behavioural refinement proofs is mirrored in the typetheoretic setting. 1 Introduction This paper aims to express in type theory certain essential concepts of algebraic specification refinement. The benefit to algebraic specification is that inherently firstorder concepts are tra...
A Cube of Proof Systems for the Intuitionistic Predicate mu,nuLogic
 Dept. of Informatics, Univ. of Oslo
, 1997
"... This paper is an attempt at a systematizing study of the proof theory of the intuitionistic predicate ¯; logic (conventional intuitionistic predicate logic extended with logical constants ¯ and for the least and greatest fixpoint operators on positive predicate transformers). We identify eight pr ..."
Abstract

Cited by 6 (5 self)
 Add to MetaCart
This paper is an attempt at a systematizing study of the proof theory of the intuitionistic predicate ¯; logic (conventional intuitionistic predicate logic extended with logical constants ¯ and for the least and greatest fixpoint operators on positive predicate transformers). We identify eight prooftheoretically interesting naturaldeduction calculi for this logic and propose a classification of these into a cube on the basis of the embeddibility relationships between these. 1 Introduction ¯,logics, i.e. logics with logical constants ¯ and for the least and greatest fixpoint operators on positive predicate transformers, have turned out to be a useful formalism in a number of computer science areas. The classical 1storder predicate ¯,logic can been used as a logic of (nondeterministic) imperative programs and as a database query language. It is also one of the relation description languages studied in descriptive complexity theory (finite model theory) (for a survey on this hi...
The GirardReynolds isomorphism
 Proc. of 4th Int. Symp. on Theoretical Aspects of Computer Science, TACS 2001
, 2001
"... Abstract. The secondorder polymorphic lambda calculus, F2, was independently discovered by Girard and Reynolds. Girard additionally proved a representation theorem: every function on natural numbers that can be proved total in secondorder intuitionistic propositional logic, P2, can be represented ..."
Abstract

Cited by 6 (1 self)
 Add to MetaCart
Abstract. The secondorder polymorphic lambda calculus, F2, was independently discovered by Girard and Reynolds. Girard additionally proved a representation theorem: every function on natural numbers that can be proved total in secondorder intuitionistic propositional logic, P2, can be represented in F2. Reynolds additionally proved an abstraction theorem: for a suitable notion of logical relation, every term in F2 takes related arguments into related results. We observe that the essence of Girard’s result is a projection from P2 into F2, and that the essence of Reynolds’s result is an embedding of F2 into P2, and that the Reynolds embedding followed by the Girard projection is the identity. The Girard projection discards all firstorder quantifiers, so it seems unreasonable to expect that the Girard projection followed by the Reynolds embedding should also be the identity. However, we show that in the presence of Reynolds’s parametricity property that this is indeed the case, for propositions corresponding to inductive definitions of naturals, products, sums, and fixpoint types. 1
The Open Calculus of Constructions: An Equational Type Theory with Dependent Types for Programming, Specification, and Interactive Theorem Proving
"... The open calculus of constructions integrates key features of MartinLöf's type theory, the calculus of constructions, Membership Equational Logic, and Rewriting Logic into a single uniform language. The two key ingredients are dependent function types and conditional rewriting modulo equational t ..."
Abstract

Cited by 5 (0 self)
 Add to MetaCart
The open calculus of constructions integrates key features of MartinLöf's type theory, the calculus of constructions, Membership Equational Logic, and Rewriting Logic into a single uniform language. The two key ingredients are dependent function types and conditional rewriting modulo equational theories. We explore the open calculus of constructions as a uniform framework for programming, specification and interactive verification in an equational higherorder style. By having equational logic and rewriting logic as executable sublogics we preserve the advantages of a firstorder semantic and logical framework and especially target applications involving symbolic computation and symbolic execution of nondeterministic and concurrent systems.
An Introduction to Polymorphic Lambda Calculus
 Logical Foundations of Functional Programming
, 1994
"... Introduction to the Polymorphic Lambda Calculus John C. Reynolds Carnegie Mellon University December 23, 1994 The polymorphic (or secondorder) typed lambda calculus was invented by JeanYves Girard in 1971 [11, 10], and independently reinvented by myself in 1974 [24]. It is extraordinary that ..."
Abstract

Cited by 4 (0 self)
 Add to MetaCart
Introduction to the Polymorphic Lambda Calculus John C. Reynolds Carnegie Mellon University December 23, 1994 The polymorphic (or secondorder) typed lambda calculus was invented by JeanYves Girard in 1971 [11, 10], and independently reinvented by myself in 1974 [24]. It is extraordinary that essentially the same programming language was formulated independently by the two of us, especially since we were led to the language by entirely different motivations. In my own case, I was seeking to extend conventional typed programming languages to permit the definition of "polymorphic" procedures that could accept arguments of a variety of types. I started with the ordinary typed lambda calculus and added the ability to pass types as parameters (an idea that was "in the air" at the time, e.g. [4]). For example, as in the ordinary typed lambda calculus one can write f int!int : x int : f(f (x)) to denote the "doubling" function for the type int, which accepts a function from integers