Results 1 
9 of
9
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 391 (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 ..."
Abstract

Cited by 125 (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 independe ..."
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.
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...
Towards An Actual Gödel Machine Implementation: A Lesson in SelfReflective Systems
, 2012
"... Recently, interest has been revived in selfreflective systems in the context of Artificial General Intelligence (AGI). An AGI system should be intelligent enough to be able to reason about its own program code, and make modifications where it sees fit, improving on the initial code written by human ..."
Abstract
 Add to MetaCart
Recently, interest has been revived in selfreflective systems in the context of Artificial General Intelligence (AGI). An AGI system should be intelligent enough to be able to reason about its own program code, and make modifications where it sees fit, improving on the initial code written by human programmers. A pertinent example is the Gödel Machine, which employs a proof searcher— in parallel to its regular problem solves duties—to find a selfrewrite of which it can prove that it will be beneficial. Obviously there are technical challenges involved in attaining such a level of selfreflection in an AGI system, but many of them are not widely known or properly appreciated. In this chapter we go back to the theoretical foundations of selfreflection and examine the (often subtle) issues encountered when embarking on actually implementing a selfreflective AGI system in general and a Gödel Machine in particular.
Abstract Machines for Dialogue Games
, 2005
"... The notion of abstract Böhm tree has arisen as an operationallyoriented distillation of works on game semantics, and has been investigated in two papers [9, 11]. This paper revisits the notion, providing more syntactic support and more examples (like callbyvalue evaluation) illustrating the gener ..."
Abstract
 Add to MetaCart
The notion of abstract Böhm tree has arisen as an operationallyoriented distillation of works on game semantics, and has been investigated in two papers [9, 11]. This paper revisits the notion, providing more syntactic support and more examples (like callbyvalue evaluation) illustrating the generality of the underlying computing device. Precise correspondences between various formulations of the evaluation mechanism of abstract Böhm trees are established. 1