Results 11  20
of
26
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 GirardReynolds isomorphism (second edition
 Theoretical Computer Science
, 2004
"... polymorphic lambda calculus, F2. Girard additionally proved a Representation Theorem: every function on natural numbers that can be proved total in secondorder intuitionistic predicate logic, P2, can be represented in F2. Reynolds additionally proved an Abstraction Theorem: every term in F2 satisfi ..."
Abstract

Cited by 5 (0 self)
 Add to MetaCart
polymorphic lambda calculus, F2. Girard additionally proved a Representation Theorem: every function on natural numbers that can be proved total in secondorder intuitionistic predicate logic, P2, can be represented in F2. Reynolds additionally proved an Abstraction Theorem: every term in F2 satisfies a suitable notion of logical relation; and formulated a notion of parametricity satisfied by wellbehaved models. 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. We show that the inductive naturals are exactly those values of type natural that satisfy Reynolds’s notion of parametricity, and as a consequence characterize situations in which the Girard projection followed by the Reynolds embedding is also the identity. An earlier version of this paper used a logic over untyped terms. This version uses a logic over typed term, similar to ones considered by Abadi and Plotkin and by Takeuti, which better clarifies the relationship between F2 and P2. This paper uses colour to enhance its presentation. If the link below is not blue, follow it for the colour version.
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
A Semantical Storage Operator Theorem For All Types
, 1997
"... Storage operators are terms which simulate callbyvalue in callbyname for a given set of terms. Krivine's storage operator theorem shows that any term of type :D ! :D , where D is the Godel translation of D, is a storage operator for the terms of type D when D is a datatype or a formula ..."
Abstract

Cited by 4 (0 self)
 Add to MetaCart
Storage operators are terms which simulate callbyvalue in callbyname for a given set of terms. Krivine's storage operator theorem shows that any term of type :D ! :D , where D is the Godel translation of D, is a storage operator for the terms of type D when D is a datatype or a formula with only positive second order quantifiers. We prove that a new semantical version of Krivine's theorem is valid for every types. This also gives a simpler proof of Krivine's theorem using the properties of datatypes. Key words: calculus. Types. AF 2 type system. Storage operators. Godel translations. 1 Introduction. The notion of storage operator was introduced by Krivine in [3]. A storage operator for a set of terms D is a term T simulating callbyvalue in headreduction for all elements in D: for t in D, (T ' t) headreduces to (' t 0 ) where t 0 fi t only depends on the normal form of t (the actual definition is slightly more complex). The storage operator theorem is valid for a typ...
About Classical Logic and Imperative Programming
 Annals of mathematics and Articial Intelligence
, 1996
"... Introduction In this lecture, we shall consider a very well known typed #calculus system, which is the second order #calculus (also called "system F") of Girard [2], rediscovered by Reynolds [16] in a computer science frame. We shall extend it in two ways: . Types will be formulas of second orde ..."
Abstract

Cited by 3 (0 self)
 Add to MetaCart
Introduction In this lecture, we shall consider a very well known typed #calculus system, which is the second order #calculus (also called "system F") of Girard [2], rediscovered by Reynolds [16] in a computer science frame. We shall extend it in two ways: . Types will be formulas of second order predicate calculus, and not only, as in system F, second order propositional calculus [5, 6]. In a certain sense, this is a harmless extension, since the #terms which are typable are the same. This kind of extension has already been considered by D. Leivant [11]. . A much more serious extension is the following: the underlying logic will be classical logic, and not only, as in system F, intuitionistic logic. Extraction of programs from classical proofs has been considered, since two or three years by several people (C. Murthy [12], J.Y. Girardapproach has the following features: 1. We
Church numerals, twice!
, 2002
"... This paper explains Church numerals, twice. The first explanation links Church numerals to Peano numerals via the wellknown encoding of data types in the polymorphic λcalculus. This view suggests that Church numerals are folds in disguise. The second explanation, which is more elaborate, but also ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
This paper explains Church numerals, twice. The first explanation links Church numerals to Peano numerals via the wellknown encoding of data types in the polymorphic λcalculus. This view suggests that Church numerals are folds in disguise. The second explanation, which is more elaborate, but also more insightful, derives Church numerals from first principles, that is, from an algebraic specification of addition and multiplication. Additionally, we illustrate the use of the parametricity theorem by proving exponentiation as reverse application correct. 1
Least and Greatest Fixed Points in Intuitionistic Natural Deduction
, 2002
"... This paper is a comparative study of a number of (intensionalsemantically distinct) least and greatest fixed point operators that naturaldeduction proof systems for intuitionistic logics can be extended with in a prooftheoretically defendable way. Eight pairs of such operators are analysed. The e ..."
Abstract
 Add to MetaCart
This paper is a comparative study of a number of (intensionalsemantically distinct) least and greatest fixed point operators that naturaldeduction proof systems for intuitionistic logics can be extended with in a prooftheoretically defendable way. Eight pairs of such operators are analysed. The exposition is centered around a cubeshaped classification where each node stands for an axiomatization of one pair of operators as logical constants by intended proof and reduction rules and each arc for a proof and reductionpreserving encoding of one pair in terms of another. The three dimensions of the cube reflect three orthogonal binary options: conventionalstyle vs. Mendlerstyle, basic (``[co]iterative'') vs. enhanced (``primitive[co]recursive''), simple vs. courseofvalue [co]induction. Some of the axiomatizations and encodings are wellknown; others, however, are novel; the classification into a cube is also new. The differences between the least fixed point operators considered are illustrated on the example of the corresponding natural number types.
Type Checking in System . . .
"... The main contribution of this paper is a partial typechecking algorithm for the system F and its use in a programming language like ML. We dene this system as an extension of the secondorder calculus (system F) verifying the preservation of type during computation (subjectreduction) for red ..."
Abstract
 Add to MetaCart
The main contribution of this paper is a partial typechecking algorithm for the system F and its use in a programming language like ML. We dene this system as an extension of the secondorder calculus (system F) verifying the preservation of type during computation (subjectreduction) for reduction (this result fails for reduction in system F). Our presentation is based on an original notion of subtyping which includes all the handling of quantication rules. 1 Introduction. Motivation. Type systems have proved to be useful for many modern functional programming languages such as ML, Miranda, Haskell, . . . . In most cases, the basis of the type system is Milner's algorithm [12]. The main characteristic of these type systems is polymorphism which allows the programmer to write generic functions that can work on arguments of dierent types. However it is often insucient: polymorphic recursion, existential types or the state monad of Haskell are treated using specic exte...
Theoretical Foundations for Practical ‘Totally Functional Programming’
, 2007
"... Interpretation is an implicit part of today’s programming; it has great power but is overused and has
significant costs. For example, interpreters are typically significantly hard to understand and hard
to reason about. The methodology of “Totally Functional Programming” (TFP) is a reasoned
attempt ..."
Abstract
 Add to MetaCart
Interpretation is an implicit part of today’s programming; it has great power but is overused and has
significant costs. For example, interpreters are typically significantly hard to understand and hard
to reason about. The methodology of “Totally Functional Programming” (TFP) is a reasoned
attempt to redress the problem of interpretation. It incorporates an awareness of the undesirability
of interpretation with observations that definitions and a certain style of programming appear to
offer alternatives to it. Application of TFP is expected to lead to a number of significant outcomes,
theoretical as well as practical. Primary among these are novel programming languages to lessen or
eliminate the use of interpretation in programming, leading to betterquality software. However,
TFP contains a number of lacunae in its current formulation, which hinder development of these
outcomes. Among others, formal semantics and typesystems for TFP languages are yet to be
discovered, the means to reduce interpretation in programs is to be determined, and a detailed
explication is needed of interpretation, definition, and the differences between the two. Most
important of all however is the need to develop a complete understanding of the nature of
interpretation. In this work, suitable typesystems for TFP languages are identified, and guidance
given regarding the construction of appropriate formal semantics. Techniques, based around the
‘fold’ operator, are identified and developed for modifying programs so as to reduce the amount of
interpretation they contain. Interpretation as a means of languageextension is also investigated.
v
Finally, the nature of interpretation is considered. Numerous hypotheses relating to it considered in
detail. Combining the results of those analyses with discoveries from elsewhere in this work leads
to the proposal that interpretation is not, in fact, symbolbased computation, but is in fact something
more fundamental: computation that varies with input. We discuss in detail various implications of
this characterisation, including its practical application. An often moreuseful property, ‘inherent
interpretiveness’, is also motivated and discussed in depth. Overall, our inquiries act to give
conceptual and theoretical foundations for practical TFP.
On Storage Operators
"... In 1990 Krivine (1990b) introduced the notion of storage operators. They are λterms which simulate callbyvalue in the callbyname strategy. Krivine (1990b) has shown that there is a very simple type in the AF 2 type system for storage operators using Gődel translation from classical to intuition ..."
Abstract
 Add to MetaCart
In 1990 Krivine (1990b) introduced the notion of storage operators. They are λterms which simulate callbyvalue in the callbyname strategy. Krivine (1990b) has shown that there is a very simple type in the AF 2 type system for storage operators using Gődel translation from classical to intuitionistic logic. Parigot (1993a) and Krivine (1994) have shown that storage operators play an important tool in classical logic. In this paper, we present a synthesis of various results on this subject. 1