Results 11 - 20
of
26
On functors expressible in the polymorphic typed lambda calculus
- Logical Foundations of Functional Programming
, 1990
"... This is a preprint of a paper that has been submitted to Information and Computation. ..."
Abstract
-
Cited by 16 (1 self)
- Add to MetaCart
This is a preprint of a paper that has been submitted to Information and Computation.
Programming Metalogics with a Fixpoint Type
, 1992
"... A programming metalogic is a formal system into which programming languages can be translated and given meaning. The translation should both reflect the structure of the language and make it easy to prove properties of programs. This thesis develops certain metalogics using techniques of category th ..."
Abstract
-
Cited by 12 (6 self)
- Add to MetaCart
A programming metalogic is a formal system into which programming languages can be translated and given meaning. The translation should both reflect the structure of the language and make it easy to prove properties of programs. This thesis develops certain metalogics using techniques of category theory and treats recursion in a new way. The notion of a category with fixpoint object is defined. Corresponding to this categorical structure there are type theoretic equational rules which will be present in all of the metalogics considered. These rules define the fixpoint type which will allow the interpretation of recursive declarations. With these core notions FIX categories are defined. These are the categorical equivalent of an equational logic which can be viewed as a very basic programming metalogic. Recursion is treated both syntactically and categorically. The expressive power of the equational logic is increased by embedding it in an intuitionistic predicate calculus, giving rise to the FIX logic. This contains propositions about the evaluation of computations to values and an induction principle which is derived from the definition of a fixpoint object as an initial algebra. The categorical structure which accompanies the FIX logic is defined, called a FIX hyperdoctrine, and certain existence and disjunction properties of FIX are stated. A particular FIX hyperdoctrine is constructed and used in the proof of the same properties. PCF-style languages are translated into the FIX logic and computational adequacy reaulta are proved. Two languages are studied: Both are similar to PCF except one has call by value recursive function declararations and the other higher order conditionals. ...
The Shuffle Hopf Algebra and Noncommutative Full Completeness
, 1999
"... We present a full completeness theorem for the multiplicative fragment of a variant of noncommutative linear logic, Yetter's cyclic linear logic (CyLL). The semantics is obtained by interpreting proofs as dinatural transformations on a category of topological vector spaces, these transformations b ..."
Abstract
-
Cited by 8 (3 self)
- Add to MetaCart
We present a full completeness theorem for the multiplicative fragment of a variant of noncommutative linear logic, Yetter's cyclic linear logic (CyLL). The semantics is obtained by interpreting proofs as dinatural transformations on a category of topological vector spaces, these transformations being equivariant under certain actions of a noncocommutative Hopf algebra called the shuffle algebra. Multiplicative sequents are assigned a vector space of such dinaturals, and we show that this space has as a basis the denotations of cut-free proofs in CyLL+MIX. This can be viewed as a fully faithful representation of a free *-autonomous category, canonically enriched over vector spaces. This paper
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 second-order) typed lambda calculus was invented by Jean-Yves 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 second-order) typed lambda calculus was invented by Jean-Yves 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
Towards a Set-Theoretic Type Theory
, 1988
"... this paper is to present such system of sets that may serve as a foundation for denotations of type expressions of a programming language. In this system there is no selfapplication and its existence is consistent with any classical set theory. Still, it is rich enough to contain high-order function ..."
Abstract
-
Cited by 2 (1 self)
- Add to MetaCart
this paper is to present such system of sets that may serve as a foundation for denotations of type expressions of a programming language. In this system there is no selfapplication and its existence is consistent with any classical set theory. Still, it is rich enough to contain high-order functions, polymorphism and dependent types. Also recursion operators as well as those needed to build types defined by recursive equations are present. 1 Basic notions
βη-complete models for System F
, 2000
"... We show that Friedman's proof of the existence of non-trivial βη-complete models of λ→ can be extended to system F. We isolate a set of conditions which are sufficient to ensure βη-completeness for a model of F (and α-completeness at the level of types), and we discuss which class ..."
Abstract
-
Cited by 2 (2 self)
- Add to MetaCart
We show that Friedman's proof of the existence of non-trivial βη-complete models of λ→ can be extended to system F. We isolate a set of conditions which are sufficient to ensure βη-completeness for a model of F (and α-completeness at the level of types), and we discuss which class of models we get. In particular, the model introduced in [5], having as polymorphic maps exactly all possible Scott continuous maps, is βη-complete and is hence the first known complete nonsyntactic model of F. In order to have a suitable framework where to express the conditions and develop the proof, we also introduce the very natural notion of "polymax models" of System F.
Building continuous webbed models for System F
, 2000
"... We present here a large family of concrete models for Girard and Reynolds polymorphism (System F ), in a non categorical setting. The family generalizes the construction of the model of Barbanera and Berardi [2], hence it contains complete models for F [5] and we conjecture that it contains models w ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
We present here a large family of concrete models for Girard and Reynolds polymorphism (System F ), in a non categorical setting. The family generalizes the construction of the model of Barbanera and Berardi [2], hence it contains complete models for F [5] and we conjecture that it contains models which are complete for F . It also contains simpler models, the simplest of them, E 2 ; being a second order variant of the Engeler-Plotkin model E . All the models here belong to the continuous semantics and have underlying prime algebraic domains, all have the maximum number of polymorphic maps. The class contains models which can be viewed as two intertwined compatible webbed models of untyped -calculus (in the sense of [8]), but it is much larger than this. Finally many of its models might be read as two intertwined strict intersection type systems. Contents 1
Warm Fusion for the Masses: Detailing Virtual Data Structure Elimination in Fully Recursive Languages
, 1997
"... In functional programming, small programs are often combined to construct larger, more complex ones. The component reuse encouraged by this modular style of programming yields many benefits, but, unfortunately, modular programs also tend to be less efficient than their monolithic counterparts. In ..."
Abstract
-
Cited by 1 (1 self)
- Add to MetaCart
In functional programming, small programs are often combined to construct larger, more complex ones. The component reuse encouraged by this modular style of programming yields many benefits, but, unfortunately, modular programs also tend to be less efficient than their monolithic counterparts. Inefficiency is significantly attributable to the construction of intermediate data structures which "glue" together the smaller program components into larger ones. Fusion is the process of removing intermediate data structures from modularly constructed programs. Two particularly successful approaches to achieving fusion in functional languages have emerged in recent years. The first is a catamorphic fusion technique based on the promotion theorems of category theory. The second is a shortcut based on parametricity which fuses compositional programs via canned applications of traditional fold/unfold program transformation steps. Both techniques apply only to programs written in terms ...
A construction of Type:Type in Martin-Löf's partial type theory with one universe
"... ing on w and pairing with oe(p(c); (x)Ap(q(c); x) ! p(c)) in the first coordinate yields hoe(p(c);(x)Ap(q(c); x) ! p(c)); (w)(Ap(q(c); p(w)); (x)Ap(q(c); Ap(q(w); x)))i 2 PAR; i.e. s (c) 2 PAR. We define the operator that builds the universe (U 1 ; T 1 ) by putting f(c) := s (c) +hn 1 ; (x ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
ing on w and pairing with oe(p(c); (x)Ap(q(c); x) ! p(c)) in the first coordinate yields hoe(p(c);(x)Ap(q(c); x) ! p(c)); (w)(Ap(q(c); p(w)); (x)Ap(q(c); Ap(q(w); x)))i 2 PAR; i.e. s (c) 2 PAR. We define the operator that builds the universe (U 1 ; T 1 ) by putting f(c) := s (c) +hn 1 ; (x)R 1 (x; p(c))i; for c 2 PAR, and let e := fix((c)f(c)). Hence e 2 PAR is a fixed point of f , e = f(e). The right summand of f corresponds to the rules (2). We now interpret Type:Type. The universe (U 1 ; T 1 ) is defined by letting U 1 := T (p(e)) and T 1 (a) := T (Ap(q(e); a)); for a 2 U 1 . Thus the rules (1) are verified. Using the equality e = f(e) and the commutation of T with \Sigma, \Pi and + we get U 1 = T (p(e)) = T (p(f(e))) (4) = T (oe(p(e); (x)Ap(q(e); x) ! p(e))) + T (n 1 ) = (\Sigmax 2 T (p(e)))[T (Ap(q(e); x)) \Gamma! T (p(e))] +N 1 = (\Sigmax 2 U 1 )[T 1 (x) \Gamma! U 1 ] +N 1 and hence j(0 1 ) 2 U 1 . Furthermore we have T 1 (j(0 1 )) = T (Ap(q(...

