15,099 research outputs found
On Isomorphism of "Functional" Intersection and Union Types
Type isomorphism is useful for retrieving library components, since a
function in a library can have a type different from, but isomorphic to, the
one expected by the user. Moreover type isomorphism gives for free the coercion
required to include the function in the user program with the right type. The
present paper faces the problem of type isomorphism in a system with
intersection and union types. In the presence of intersection and union,
isomorphism is not a congruence and cannot be characterised in an equational
way. A characterisation can still be given, quite complicated by the
interference between functional and non functional types. This drawback is
faced in the paper by interpreting each atomic type as the set of functions
mapping any argument into the interpretation of the type itself. This choice
has been suggested by the initial projection of Scott's inverse limit
lambda-model. The main result of this paper is a condition assuring type
isomorphism, based on an isomorphism preserving reduction.Comment: In Proceedings ITRS 2014, arXiv:1503.0437
Isomorphism of "Functional" Intersection Types
Type isomorphism for intersection types is quite odd, since it is not a congruence and it does not extend type equality in the standard interpretation of types. The lack of congruence is due to the proof theoretic nature of the intersection introduction rule, which requires the same term to be the subject of both premises. A partial congruence can be recovered by introducing a suitable notion of type similarity. Type equality in standard models becomes included in type isomorphism whenever atomic types have "functional" interpretations, i.e. they are equivalent to arrow types. This paper characterises type isomorphism for a type system in which the equivalence between atomic types and arrow types is induced by the initial projections of the Scott\u27s model via the correspondence between inverse limit models and filter lambda-models
Toward Isomorphism of Intersection and Union types
This paper investigates type isomorphism in a lambda-calculus with
intersection and union types. It is known that in lambda-calculus, the
isomorphism between two types is realised by a pair of terms inverse one each
other. Notably, invertible terms are linear terms of a particular shape, called
finite hereditary permutators. Typing properties of finite hereditary
permutators are then studied in a relevant type inference system with
intersection and union types for linear terms. In particular, an isomorphism
preserving reduction between types is defined. Type reduction is confluent and
terminating, and induces a notion of normal form of types. The properties of
normal types are a crucial step toward the complete characterisation of type
isomorphism. The main results of this paper are, on one hand, the fact that two
types with the same normal form are isomorphic, on the other hand, the
characterisation of the isomorphism between types in normal form, modulo
isomorphism of arrow types.Comment: In Proceedings ITRS 2012, arXiv:1307.784
Retractions in Intersection Types
This paper deals with retraction - intended as isomorphic embedding - in
intersection types building left and right inverses as terms of a lambda
calculus with a bottom constant. The main result is a necessary and sufficient
condition two strict intersection types must satisfy in order to assure the
existence of two terms showing the first type to be a retract of the second
one. Moreover, the characterisation of retraction in the standard intersection
types is discussed.Comment: In Proceedings ITRS 2016, arXiv:1702.0187
A Typed Lambda Calculus with Intersection Types
AbstractIntersection types are well known to type theorists mainly for two reasons. Firstly, they type all and only the strongly normalizable lambda terms. Secondly, the intersection type operator is a meta-level operator, that is, there is no direct logical counterpart in the Curry–Howard isomorphism sense. In particular, its meta-level nature implies that it does not correspond to the intuitionistic conjunction.The intersection type system is naturally a type inference system (system à la Curry), but the meta-level nature of the intersection operator does not allow to easily design an equivalent typed system (system à la Church). There are many proposals in the literature to design such systems, but none of them gives an entirely satisfactory answer to the problem. In this paper, we will review the main results in the literature both on the logical interpretation of intersection types and on proposed typed lambda calculi.The core of this paper is a new proposal for a true intersection typed lambda calculus, without any meta-level notion. Namely, any typable term (in the intersection type inference) has a corresponding typed term (which is the same as the untyped term by erasing the type decorations and the typed term constructors) with the same type, and vice versa.The main idea is to introduce a relevant parallel term constructor which corresponds to the intersection type constructor, in such a way that terms in parallel share the same resources, that is, the same context of free typed variables. Three rules allow us to generate all typed terms. The first two rules, Application and Lambda-abstraction, are performed on all the components of a parallel term in a synchronized way. Finally, via the third rule of Local Renaming, once a free typed variable is bounded by lambda-abstraction, each of the terms in parallel can do its local renaming, with type refinement, of that particular resource
Intersection Types for the Computational lambda-Calculus
We study polymorphic type assignment systems for untyped lambda-calculi with
effects, based on Moggi's monadic approach. Moving from the abstract definition
of monads, we introduce a version of the call-by-value computational
lambda-calculus based on Wadler's variant with unit and bind combinators, and
without let. We define a notion of reduction for the calculus and prove it
confluent, and also we relate our calculus to the original work by Moggi
showing that his untyped metalanguage can be interpreted and simulated in our
calculus. We then introduce an intersection type system inspired to Barendregt,
Coppo and Dezani system for ordinary untyped lambda-calculus, establishing type
invariance under conversion, and provide models of the calculus via inverse
limit and filter model constructions and relate them. We prove soundness and
completeness of the type system, together with subject reduction and expansion
properties. Finally, we introduce a notion of convergence, which is precisely
related to reduction, and characterize convergent terms via their types
- …