Results 1 - 10
of
24
A Calculus for Overload Functions with Subtyping
-
, 1992
"... We present a simple extension of typed -calculus where functions can be overloaded by putting different "branches of code" together. When the function is applied, the branch to execute is chosen according to a particular selection rule which depends on the type of the argument. The crucial featu ..."
Abstract
-
Cited by 131 (28 self)
- Add to MetaCart
We present a simple extension of typed -calculus where functions can be overloaded by putting different "branches of code" together. When the function is applied, the branch to execute is chosen according to a particular selection rule which depends on the type of the argument. The crucial feature of the present approach is that the branch selection depends on the "run-time type" of the argument, which may differ from its compile-time type, because of the existence of a subtyping relation among types. Hence overloading cannot be eliminated by a static analysis of code, but is an essential feature to be dealt with during computation. We obtain in this way a type-dependent calculus, which differs from the various -calculi where types do not play any role during computation. We prove Confluence and a generalized Subject-Reduction theorem for this calculus. We prove Strong Normalization for a "stratified" subcalculus. The definition of this calculus is guided by the understand...
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 77 (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 .
Principality and Decidable Type Inference for Finite-Rank Intersection Types
- In Conf. Rec. POPL ’99: 26th ACM Symp. Princ. of Prog. Langs
, 1999
"... 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 typin ..."
Abstract
-
Cited by 50 (17 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 finite-rank restriction of this system (using Leivant's first notion of rank) has principal typings and also has decidable type inference. This is in contrast to System F where the finite rank restriction for every finite rank at 3 and above has neither principal typings nor decidable type inference. This is also in contrast to earlier presentations of intersection types where the status (decidable or undecidable) of these properties is unknown for the finiterank restrictions at 3 and above. Furthermore, the notion of principal typings for our system involves only one operation, substitution, rather than severa...
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 24 (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 finite-rank restriction of this system (using Leivant's first notion of rank) has principal typings and also has decidable type inference.
Relating Typability and Expressiveness in Finite-Rank Intersection Type Systems (Extended Abstract)
- In Proc. 1999 Int’l Conf. Functional Programming
, 1999
"... We investigate finite-rank intersection type systems, analyzing the complexity of their type inference problems and their relation to the problem of recognizing semantically equivalent terms. Intersection types allow something of type T1 /\ T2 to be used in some places at type T1 and in other places ..."
Abstract
-
Cited by 21 (9 self)
- Add to MetaCart
We investigate finite-rank intersection type systems, analyzing the complexity of their type inference problems and their relation to the problem of recognizing semantically equivalent terms. Intersection types allow something of type T1 /\ T2 to be used in some places at type T1 and in other places at type T2 . A finite-rank intersection type system bounds how deeply the /\ can appear in type expressions. Such type systems enjoy strong normalization, subject reduction, and computable type inference, and they support a pragmatics for implementing parametric polymorphism. As a consequence, they provide a conceptually simple and tractable alternative to the impredicative polymorphism of System F and its extensions, while typing many more programs than the Hindley-Milner type system found in ML and Haskell. While type inference is computable at every rank, we show that its complexity grows exponentially as rank increases. Let K(0, n) = n and K(t + 1, n) = 2^K(t,n); we prove that recognizing the pure lambda-terms of size n that are typable at rank k is complete for dtime[K(k-1, n)]. We then consider the problem of deciding whether two lambda-terms typable at rank k have the same normal form, Generalizing a well-known result of Statman from simple types to finite-rank intersection types. ...
The Lambda-Calculus with Multiplicities
, 1993
"... We introduce a refinement of the λ-calculus, where the argument of a function is a bag of resources, that is a multiset of terms, whose multiplicities indicate how many copies of them are available. We show that this "λ-calculus with multiplicities" has a natural functionality theory, similar to Cop ..."
Abstract
-
Cited by 12 (2 self)
- Add to MetaCart
We introduce a refinement of the λ-calculus, where the argument of a function is a bag of resources, that is a multiset of terms, whose multiplicities indicate how many copies of them are available. We show that this "λ-calculus with multiplicities" has a natural functionality theory, similar to Coppo and Dezani's intersection type discipline. In our functionality theory the conjunction is managed in a "multiplicative" manner, according to Girard's terminology. We show that this provides an adequate interpretation of the calculus, by establishing that a term is convergent if and only if it has a non-trivial functional character.
New Notions of Reduction and Non-Semantic Proofs of β-Strong Normalization in Typed λ-Calculi
, 1994
"... Two new notions of reduction for terms of the λ-calculus are introduced and the question of whether a λ-term is β-strongly normalizing is reduced to the question of whether a λ-term is merely normalizing under one of the new notions of reduction. This leads to a new way to prove-strong normalization ..."
Abstract
-
Cited by 11 (2 self)
- Add to MetaCart
Two new notions of reduction for terms of the λ-calculus are introduced and the question of whether a λ-term is β-strongly normalizing is reduced to the question of whether a λ-term is merely normalizing under one of the new notions of reduction. This leads to a new way to prove-strong normalization for typed-calculi. Instead of the usual semantic proof style based on Girard's "candidats de reductibilite", termination can be proved using a decreasing metric over a well-founded ordering in a style more common in the eld of term rewriting. This new proof method is applied to the simply-typed λ-calculus and the system of intersection types.
Characterizing Convergent Terms in Object Calculi via Intersection Types
"... We give a simple characterization of convergent terms in Abadi and Cardelli untyped Object Calculus (&-calculus) via intersection types. We consider a -calculus with records and its intersection type assignment system. We prove that convergent -terms are characterized by their types. The charact ..."
Abstract
-
Cited by 10 (4 self)
- Add to MetaCart
We give a simple characterization of convergent terms in Abadi and Cardelli untyped Object Calculus (&-calculus) via intersection types. We consider a -calculus with records and its intersection type assignment system. We prove that convergent -terms are characterized by their types. The characterization is then inherited by the object calculus via self-application interpretation.
New Notions of Reduction and Non-Semantic Proofs of Strong β-Normalization in Typed λ-Calculi
- PROCEEDINGS OF LOGIC IN COMPUTER SCIENCE
, 1995
"... Two notions of reduction for terms of the λ-calculus are introduced and the question of whether a λ-term is β-strongly normalizing is reduced to the question of whether a λ-term is merely normalizing under one of the notions of reduction. This gives a method to prove strong β-normalization for typ ..."
Abstract
-
Cited by 9 (2 self)
- Add to MetaCart
Two notions of reduction for terms of the λ-calculus are introduced and the question of whether a λ-term is β-strongly normalizing is reduced to the question of whether a λ-term is merely normalizing under one of the notions of reduction. This gives a method to prove strong β-normalization for typed λ-calculi. Instead of the usual semantic proof style based on Tait's realizability or Girard's "candidats de réductibilité", termination can be proved using a decreasing metric over a well-founded ordering. This proof method is applied to the simply-typed λ-calculus and the system of intersection types, giving the first non-semantic proof for a polymorphic extension of the λ-calculus.

