Results 11  20
of
30
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 6 (0 self)
 Add to MetaCart
(Show Context)
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.
Build, augment and destroy. Universally
 In Asian Symposium on Programming Languages, Proceedings
, 2004
"... Abstract. We give a semantic footing to the fold/build syntax of programming with inductive types, covering shortcut deforestation, based on a universal property. Specifically, we give a semantics for inductive types based on limits of algebra structure forgetting functors and show that it is equiva ..."
Abstract

Cited by 5 (3 self)
 Add to MetaCart
(Show Context)
Abstract. We give a semantic footing to the fold/build syntax of programming with inductive types, covering shortcut deforestation, based on a universal property. Specifically, we give a semantics for inductive types based on limits of algebra structure forgetting functors and show that it is equivalent to the usual initial algebra semantics. We also give a similar semantic account of the augment generalization of build and of the unfold/destroy syntax of coinductive types. 1
Subtyping Parametric and Dependent Types
, 1996
"... A type may be a subtype of another type. The intuition about this should be clear: a type is a type of data, some data then may live in a given type as well as in a larger one, up to a simple "transformation". The advantage is that those data may be "seen" or used in different c ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
A type may be a subtype of another type. The intuition about this should be clear: a type is a type of data, some data then may live in a given type as well as in a larger one, up to a simple "transformation". The advantage is that those data may be "seen" or used in different contexts. The formal treatment of this intuition, though, is not so obvious, in particular when data may be programs. In Object Oriented Programming, where the issue of "reusing data" is crucial, there has been a longlasting discussion on "inheritance" and ... little agreement. There are several ways to understand and formalize inheritance, which depend on the specific programming environment used. Since early work of Cardelli and Wegner, there has been a large amount of papers developing several possible functional approaches to inheritance, as subtyping. Indeed, functional subtyping captures only one point of view on inheritance, yet this notion largely motivated most of that work. Whethe
Behavioural Subtyping for a TypeTheoretic Model of Objects
 FOOL5
, 1998
"... We present a refinement of the existential object model of Pierce and Turner [PT94]. In addition to signatures (or interfaces) as the types of objects, we also provide classes as the types of objects. These class types not only specify an interface, but also a particular implementation. We show that ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
We present a refinement of the existential object model of Pierce and Turner [PT94]. In addition to signatures (or interfaces) as the types of objects, we also provide classes as the types of objects. These class types not only specify an interface, but also a particular implementation. We show that
Categorical Combinators for Charity
, 1996
"... A 2categorical notion of parametric combinator is introduced. These combinators are operations for constructing arrows in a category and satisfy a 2categorical abstraction of parametricity for strictly covariant functors. Inductive and coinductive datatypes are compatible with these combinators a ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
A 2categorical notion of parametric combinator is introduced. These combinators are operations for constructing arrows in a category and satisfy a 2categorical abstraction of parametricity for strictly covariant functors. Inductive and coinductive datatypes are compatible with these combinators and their universal properties are closely related to parametricity. The Charity programming language is based on strong datatypes which are a specialization of 2categorical datatypes. Stong combinators (which are an appropriate specialization of 2categorical combinators) provide a model of polymorphic functions in Charity. ii Contents Abstract ii Contents iii 1 Introduction 1 2 Charity 4 2.1 The Term Logic . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.2 Semantics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.3 Strong Datatypes . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.4 Strong Combinators . . . . . . . . . . . . . . . . . . . . . . . . 17 3 2cate...
Subtyping Parametric and Dependent Types  An introduction
, 1996
"... A type may be a subtype of another type. The intuition about this should be clear: a type is a type of data, some data then may live in a given type as well as in a larger one, up to a simple "transformation". The advantage is that those data may be "seen" or used in different ..."
Abstract
 Add to MetaCart
A type may be a subtype of another type. The intuition about this should be clear: a type is a type of data, some data then may live in a given type as well as in a larger one, up to a simple "transformation". The advantage is that those data may be "seen" or used in different contexts. The formal treatment of this intuition, though, is not so obvious, in particular when data may be programs. In Object Oriented Programming, where the issue of "reusing data" is crucial, there has been a longlasting discussion on "inheritance" and ... little agreement. There are several ways to understand and formalize inheritance, which depend on the specific programming environment used. Since early work of Cardelli and Wegner, there has been a large amount of papers developing several possible functional approaches to inheritance, as subtyping. Indeed, functional subtyping captures only one point of view on inheritance, yet this notion largely motivated most of that work. Whethe
Web www.itu.dk On the Definition of Parametricity
, 1600
"... All rights reserved. Reproduction of all or part of this work is permitted for educational or research use on condition that this copyright notice is included in any copy. ..."
Abstract
 Add to MetaCart
(Show Context)
All rights reserved. Reproduction of all or part of this work is permitted for educational or research use on condition that this copyright notice is included in any copy.
Bifibrational functorial semantics of parametric polymorphism
"... Reynolds ’ theory of parametric polymorphism captures the invariance of polymorphically typed programs under change of data representation. Reflexive graph categories and fibrations are both known to give a categorical understanding of parametric polymorphism. This paper contributes further to this ..."
Abstract
 Add to MetaCart
(Show Context)
Reynolds ’ theory of parametric polymorphism captures the invariance of polymorphically typed programs under change of data representation. Reflexive graph categories and fibrations are both known to give a categorical understanding of parametric polymorphism. This paper contributes further to this categorical perspective on parametricity by showing the relevance of bifibrations. Using bifibrations, it develops a framework for models of System F that are parametric, in that they verify the Identity Extension Lemma and Reynolds ’ Abstraction Theorem. We also prove that our models satisfy expected properties, such as the existence of initial algebras and final coalgebras, and that parametricity implies dinaturality.
On Extensions of. . . : SecondOrder LambdaCalculus with Subtyping
, 1994
"... F was an extension of a secondorder calculus F which has parametric polymorphism with subtyping and bounded quantification, introduced by Ghelli to apply secondorder calculi to the framework of objectoriented languages. However, it is impossible to know the amount of information of a typeche ..."
Abstract
 Add to MetaCart
F was an extension of a secondorder calculus F which has parametric polymorphism with subtyping and bounded quantification, introduced by Ghelli to apply secondorder calculi to the framework of objectoriented languages. However, it is impossible to know the amount of information of a typechecked term before evaluation since the subsumption rules are included in F . To overcome this problem, we provided new calculi cF + and cF ++ as extensions of F , and investigated their prooftheoretic properties. cF + includes a new type Range(X) , and cF ++ includes two new types Range(X) and Inst(X; T ) . For example, the type Range(X) is provided for a type variable X whose upper bound is a function type, as a codomain type of X . When a function type S ! T is substituted for X , Range(S ! T ) is reduced to T . For a type variable X whose upper bound is a universal type, the type Inst(X; U) is provided. When a universal type 8Y S:T is substituted for X , Inst(8Y S:T;U) is re...