Results 1 
4 of
4
Typability and Type Checking in System F Are Equivalent and Undecidable
 Annals of Pure and Applied Logic
, 1998
"... Girard and Reynolds independently invented System F (a.k.a. the secondorder polymorphically typed lambda calculus) to handle problems in logic and computer programming language design, respectively. Viewing F in the Curry style, which associates types with untyped lambda terms, raises the questions ..."
Abstract

Cited by 60 (4 self)
 Add to MetaCart
Girard and Reynolds independently invented System F (a.k.a. the secondorder polymorphically typed lambda calculus) to handle problems in logic and computer programming language design, respectively. Viewing F in the Curry style, which associates types with untyped lambda terms, raises the questions of typability and type checking . Typability asks for a term whether there exists some type it can be given. Type checking asks, for a particular term and type, whether the term can be given that type. The decidability of these problems has been settled for restrictions and extensions of F and related systems and complexity lowerbounds have been determined for typability in F, but this report is the rst to resolve whether these problems are decidable for System F. This report proves that type checking in F is undecidable, by a reduction from semiuni cation, and that typability in F is undecidable, by a reduction from type checking. Because there is an easy reduction from typability to typ...
Tiering as a Recursion Technique
 Bulletin of Symbolic Logic
"... I survey the syntactic technique of tiering which can be used to restrict the power of a recursion scheme. I show how various results can be obtained entirely proof theoretically without the use of a model of computation. The essence of the method is to move between explicit numerals and simulated ( ..."
Abstract

Cited by 3 (0 self)
 Add to MetaCart
I survey the syntactic technique of tiering which can be used to restrict the power of a recursion scheme. I show how various results can be obtained entirely proof theoretically without the use of a model of computation. The essence of the method is to move between explicit numerals and simulated (Church) numerals.
An Elementary Fragment of SecondOrder Lambda Calculus
 ACM Transactions on Computational Logic
, 2005
"... A fragment of secondorder lambda calculus (System F) is defined that characterizes the elementary recursive functions. Type quantification is restricted to be noninterleaved and stratified, i.e., the types are assigned levels, and a quantified variable can only be instantiated by a type of smaller ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
A fragment of secondorder lambda calculus (System F) is defined that characterizes the elementary recursive functions. Type quantification is restricted to be noninterleaved and stratified, i.e., the types are assigned levels, and a quantified variable can only be instantiated by a type of smaller level, with a slightly liberalized treatment of the level zero.
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...