Results 1  10
of
11
The Essence of Principal Typings
 In Proc. 29th Int’l Coll. Automata, Languages, and Programming, volume 2380 of LNCS
, 2002
"... Let S be some type system. A typing in S for a typable term M is the collection of all of the information other than M which appears in the final judgement of a proof derivation showing that M is typable. For example, suppose there is a derivation in S ending with the judgement A M : # meanin ..."
Abstract

Cited by 86 (12 self)
 Add to MetaCart
Let S be some type system. A typing in S for a typable term M is the collection of all of the information other than M which appears in the final judgement of a proof derivation showing that M is typable. For example, suppose there is a derivation in S ending with the judgement A M : # meaning that M has result type # when assuming the types of free variables are given by A. Then (A, #) is a typing for M .
A Calculus with Polymorphic and Polyvariant Flow Types
"... We present # CIL , a typed #calculus which serves as the foundation for a typed intermediate language for optimizing compilers for higherorder polymorphic programming languages. The key innovation of # CIL is a novel formulation of intersection and union types and flow labels on both terms and ..."
Abstract

Cited by 28 (11 self)
 Add to MetaCart
We present # CIL , a typed #calculus which serves as the foundation for a typed intermediate language for optimizing compilers for higherorder polymorphic programming languages. The key innovation of # CIL is a novel formulation of intersection and union types and flow labels on both terms and types. These flow types can encode polyvariant control and data flow information within a polymorphically typed program representation. Flow types can guide a compiler in generating customized data representations in a strongly typed setting. Since # CIL enjoys confluence, standardization, and subject reduction properties, it is a valuable tool for reasoning about programs and program transformations.
Principality and Type Inference for Intersection Types Using Expansion Variables
, 2003
"... Principality of typings is the property that for each typable term, there is a typing from which all other typings are obtained via some set of operations. Type inference is the problem of finding a typing for a given term, if possible. We define an intersection type system which has principal typ ..."
Abstract

Cited by 26 (12 self)
 Add to MetaCart
Principality of typings is the property that for each typable term, there is a typing from which all other typings are obtained via some set of operations. Type inference is the problem of finding a typing for a given term, if possible. We define an intersection type system which has principal typings and types exactly the strongly normalizable #terms. More interestingly, every finiterank restriction of this system (using Leivant's first notion of rank) has principal typings and also has decidable type inference.
Expansion: the Crucial Mechanism for Type Inference with Intersection Types: Survey and Explanation
 In: (ITRS ’04
, 2005
"... The operation of expansion on typings was introduced at the end of the 1970s by Coppo, Dezani, and Venneri for reasoning about the possible typings of a term when using intersection types. Until recently, it has remained somewhat mysterious and unfamiliar, even though it is essential for carrying ..."
Abstract

Cited by 17 (7 self)
 Add to MetaCart
The operation of expansion on typings was introduced at the end of the 1970s by Coppo, Dezani, and Venneri for reasoning about the possible typings of a term when using intersection types. Until recently, it has remained somewhat mysterious and unfamiliar, even though it is essential for carrying out compositional type inference. The fundamental idea of expansion is to be able to calculate the effect on the final judgement of a typing derivation of inserting a use of the intersectionintroduction typing rule at some (possibly deeply nested) position, without actually needing to build the new derivation.
Type Inference with Expansion Variables and Intersection Types in System E and an Exact Correspondence with βReduction
 In Proc. 6th Int’l Conf. Principles & Practice Declarative Programming
"... System E is a recently designed type system for the # calculus with intersection types and expansion variables. During automatic type inference, expansion variables allow postponing decisions about which nonsyntaxdriven typing rules to use until the right information is available and allow imple ..."
Abstract

Cited by 11 (4 self)
 Add to MetaCart
System E is a recently designed type system for the # calculus with intersection types and expansion variables. During automatic type inference, expansion variables allow postponing decisions about which nonsyntaxdriven typing rules to use until the right information is available and allow implementing the choices via substitution.
Branching Types
, 2002
"... Although systems with intersection types have many unique capabilities, there has never been a fully satisfactory explicitly typed system with intersection types. We introduce and prove the basic properties of # , a typed #calculus with branching types and types with quantification over type ..."
Abstract

Cited by 11 (5 self)
 Add to MetaCart
Although systems with intersection types have many unique capabilities, there has never been a fully satisfactory explicitly typed system with intersection types. We introduce and prove the basic properties of # , a typed #calculus with branching types and types with quantification over type selection parameters. The new system # an explicitly typed system with the same expressiveness as a system with intersection types. Typing derivations in # use branching types to squash together what would be separate parallel derivations in earlier systems with intersection types.
A Bargain for Intersection Types: A Simple Strong Normalization Proof
"... This pearl gives a discount proof of the folklore theorem that every strongly #normalizing #term is typable with an intersection type. (We consider typings that do not use the empty intersection # which can type any term.) The proof uses the perpetual reduction strategy which finds a longest path. ..."
Abstract
 Add to MetaCart
This pearl gives a discount proof of the folklore theorem that every strongly #normalizing #term is typable with an intersection type. (We consider typings that do not use the empty intersection # which can type any term.) The proof uses the perpetual reduction strategy which finds a longest path. This is a simplification over existing proofs that consider any longest reduction path. The choice of reduction strategy avoids the need for weakening or strengthening of type derivations. The proof becomes a bargain because it works for more intersection type systems, while being simpler than existing proofs.
On Fixed point and Looping Combinators in Type Theory
"... Abstract. The type theories λU and λU − are known to be logically inconsistent. For λU, this is known as Girard’s paradox [Gir72]; for λU − the inconsistency was proved by Coquand [Coq94]. It is also known that the inconsistency gives rise to a so called ”looping combinator”: a family of terms Ln su ..."
Abstract
 Add to MetaCart
Abstract. The type theories λU and λU − are known to be logically inconsistent. For λU, this is known as Girard’s paradox [Gir72]; for λU − the inconsistency was proved by Coquand [Coq94]. It is also known that the inconsistency gives rise to a so called ”looping combinator”: a family of terms Ln such that Lnf is convertible with f(Ln+1f). It was unclear whether a fixed point combinator exists in these systems. Later, Hurkens [Hur95] has given a simpler version of the paradox in λU − , giving rise to an actual proof term that can be analyzed. In the present paper we analyze the proof of Hurkens and we study the looping combinator that arises from it: it is a real looping combinator (not a fixed point combinator) but in the Curry version of λU − it is a fixedpoint combinator. We also analyze the possibility of typing a fixed point combinator in λU − and we prove that the Church and Turing fixed point combinators cannot be typed in λU −. 1