Results 1 
8 of
8
Explicit substitutions
, 1996
"... The λσcalculus is a refinement of the λcalculus where substitutions are manipulated explicitly. The λσcalculus provides a setting for studying the theory of substitutions, with pleasant mathematical properties. It is also a useful bridge between the classical λcalculus and concrete implementatio ..."
Abstract

Cited by 389 (11 self)
 Add to MetaCart
The λσcalculus is a refinement of the λcalculus where substitutions are manipulated explicitly. The λσcalculus provides a setting for studying the theory of substitutions, with pleasant mathematical properties. It is also a useful bridge between the classical λcalculus and concrete implementations.
Formal Parametric Polymorphism
 THEORETICAL COMPUTER SCIENCE
, 1993
"... A polymorphic function is parametric if its behavior does not depend on the type at which it is instantiated. Starting with Reynolds's work, the study of parametricity is typically semantic. In this paper, we develop a syntactic approach to parametricity, and a formal system that embodies this appro ..."
Abstract

Cited by 122 (6 self)
 Add to MetaCart
A polymorphic function is parametric if its behavior does not depend on the type at which it is instantiated. Starting with Reynolds's work, the study of parametricity is typically semantic. In this paper, we develop a syntactic approach to parametricity, and a formal system that embodies this approach, called system R . Girard's system F deals with terms and types; R is an extension of F that deals also with relations between types. In R , it is possible to derive theorems about functions from their types, or "theorems for free", as Wadler calls them. An easy "theorem for free" asserts that the type "(X)XBool contains only constant functions; this is not provable in F. There are many harder and more substantial examples. Various metatheorems can also be obtained, such as a syntactic version of Reynolds's abstraction theorem.
Confluence properties of Weak and Strong Calculi of Explicit Substitutions
 JOURNAL OF THE ACM
, 1996
"... Categorical combinators [12, 21, 43] and more recently oecalculus [1, 23], have been introduced to provide an explicit treatment of substitutions in the calculus. We reintroduce here the ingredients of these calculi in a selfcontained and stepwise way, with a special emphasis on confluence prope ..."
Abstract

Cited by 120 (7 self)
 Add to MetaCart
Categorical combinators [12, 21, 43] and more recently oecalculus [1, 23], have been introduced to provide an explicit treatment of substitutions in the calculus. We reintroduce here the ingredients of these calculi in a selfcontained and stepwise way, with a special emphasis on confluence properties. The main new results of the paper w.r.t. [12, 21, 1, 23] are the following: 1. We present a confluent weak calculus of substitutions, where no variable clashes can be feared. 2. We solve a conjecture raised in [1]: oecalculus is not confluent (it is confluent on ground terms only). This unfortunate result is "repaired" by presenting a confluent version of oecalculus, named the Envcalculus in [23], called here the confluent oecalculus.
Dependently Typed Functional Programs and their Proofs
, 1999
"... Research in dependent type theories [ML71a] has, in the past, concentrated on its use in the presentation of theorems and theoremproving. This thesis is concerned mainly with the exploitation of the computational aspects of type theory for programming, in a context where the properties of programs ..."
Abstract

Cited by 70 (13 self)
 Add to MetaCart
Research in dependent type theories [ML71a] has, in the past, concentrated on its use in the presentation of theorems and theoremproving. This thesis is concerned mainly with the exploitation of the computational aspects of type theory for programming, in a context where the properties of programs may readily be specified and established. In particular, it develops technology for programming with dependent inductive families of datatypes and proving those programs correct. It demonstrates the considerable advantage to be gained by indexing data structures with pertinent characteristic information whose soundness is ensured by typechecking, rather than human effort. Type theory traditionally presents safe and terminating computation on inductive datatypes by means of elimination rules which serve as induction principles and, via their associated reduction behaviour, recursion operators [Dyb91]. In the programming language arena, these appear somewhat cumbersome and give rise to unappealing code, complicated by the inevitable interaction between case analysis on dependent types and equational reasoning on their indices which must appear explicitly in the terms. Thierry Coquand’s proposal [Coq92] to equip type theory directly with the kind of
Extensible records in a pure calculus of subtyping
 In Theoretical Aspects of ObjectOriented Programming
, 1994
"... Extensible records were introduced by Mitchell Wand while studying type inference in a polymorphic λcalculus with record types. This paper describes a calculus with extensible records, F <:ρ, that can be translated into a simpler calculus, F <: , lacking any record primitives. Given independent axi ..."
Abstract

Cited by 38 (9 self)
 Add to MetaCart
Extensible records were introduced by Mitchell Wand while studying type inference in a polymorphic λcalculus with record types. This paper describes a calculus with extensible records, F <:ρ, that can be translated into a simpler calculus, F <: , lacking any record primitives. Given independent axiomatizations of F <:ρ and F <: (the former being an extension of the latter) we show that the translation preserves typing, subtyping, and equality. F <:ρ can then be used as an expressive calculus of extensible records, either directly or to give meaning to yet other languages. We show that F <:ρ can express many of the standard benchmark examples that appear in the literature. Like other record calculi that have been proposed, F <:ρ has a rather complex set of rules but, unlike those other calculi, its rules are justified by a translation to a very simple calculus. We argue that thinking in terms of translations may help in simplifying and organizing the various record calculi that have been proposed, as well as in generating new ones.
Formal Parametric Polymorphism
 Theoretical Computer Science
, 1993
"... A polymorphic function is parametric if its behavior does not depend on the type at which it is instantiated. Starting with Reynolds's work, the study of parametricity is typically semantic. In this paper, we develop a syntactic approach to parametricity, and a formal system that embodies this appro ..."
Abstract
 Add to MetaCart
A polymorphic function is parametric if its behavior does not depend on the type at which it is instantiated. Starting with Reynolds's work, the study of parametricity is typically semantic. In this paper, we develop a syntactic approach to parametricity, and a formal system that embodies this approach, called system R . Girard's system F deals with terms and types; R is an extension of F that deals also with relations between types. In R , it is possible to derive theorems about functions from their types, or "theorems for free", as Wadler calls them. An easy "theorem for free" asserts that the type "(X)XBool contains only constant functions; this is not provable in F. There are many harder and more substantial examples. Various metatheorems can also be obtained, such as a syntactic version of Reynolds's abstraction theorem. 1. Explicit relations A polymorphic function is parametric if its behavior does not depend on the type at which it is instantiated [Strachey 1967] . A function that reverses lists, for example, is parametric because it does not look at the types of the elements of the lists given as inputs. There are important nonparametric polymorphic functions, such as a print function that maps values of any type to text representations. With this caveat, it can be argued that "truly" polymorphic functions are parametric, and in any case it is the parametric polymorphic functions that form the core of languages such as ML [Milner, Tofte, Harper 1989] . Reynolds's work provides a precise counterpart to the informal definition of parametricity just given [Reynolds 1983; Ma, Reynolds 1991] . Reynolds's abstraction theorem concerns a language similar to Girard 's system F [Girard, Lafont, Taylor 1989], and implies that the instances of a polymorphic function at d...
LISA  a Lazy Interpreter for a FullFledged λCalculus
, 1992
"... Lisa is the lazy evaluation counterpart of the applicativeorder graph reducer ßRed developed at the university of Kiel. It truly realizes the reduction semantics of an applied λcalculus, using fullfledged fireduction as the major reduction rule. Thus we have full support for higherorder fun ..."
Abstract
 Add to MetaCart
Lisa is the lazy evaluation counterpart of the applicativeorder graph reducer ßRed developed at the university of Kiel. It truly realizes the reduction semantics of an applied λcalculus, using fullfledged fireduction as the major reduction rule. Thus we have full support for higherorder functions, selfapplications and for interactively controlled stepwise program execution. Internally, Lisa uses essentially the same graphstructures as ßRed except for the fact that nested functions containing relatively free variables are not converted into supercombinators. A wellknown problem in terms of efficiency is the instantiation of recursive functions. Systems like the Gmachine or SKIcombinator reducers accomplish this either by creating a new graph or by copying a graphtemplate and, while doing this, immediately substituting actual for formal parameters from the current context (runtime stackframe). The approach taken with Lisa is to delay these substitutions until it is abs...