727,804 research outputs found
Liquid Intersection Types
We present a new type system combining refinement types and the
expressiveness of intersection type discipline. The use of such features makes
it possible to derive more precise types than in the original refinement
system. We have been able to prove several interesting properties for our
system (including subject reduction) and developed an inference algorithm,
which we proved to be sound.Comment: In Proceedings ITRS 2014, arXiv:1503.0437
Intersection types for unbind and rebind
We define a type system with intersection types for an extension of
lambda-calculus with unbind and rebind operators. In this calculus, a term with
free variables, representing open code, can be packed into an "unbound" term,
and passed around as a value. In order to execute inside code, an unbound term
should be explicitly rebound at the point where it is used. Unbinding and
rebinding are hierarchical, that is, the term can contain arbitrarily nested
unbound terms, whose inside code can only be executed after a sequence of
rebinds has been applied. Correspondingly, types are decorated with levels, and
a term has type decorated with k if it needs k rebinds in order to reduce to a
value. With intersection types we model the fact that a term can be used
differently in contexts providing different numbers of unbinds. In particular,
top-level terms, that is, terms not requiring unbinds to reduce to values,
should have a value type, that is, an intersection type where at least one
element has level 0. With the proposed intersection type system we get
soundness under the call-by-value strategy, an issue which was not resolved by
previous type systems.Comment: In Proceedings ITRS 2010, arXiv:1101.410
Inhabitation for Non-idempotent Intersection Types
The inhabitation problem for intersection types in the lambda-calculus is
known to be undecidable. We study the problem in the case of non-idempotent
intersection, considering several type assignment systems, which characterize
the solvable or the strongly normalizing lambda-terms. We prove the
decidability of the inhabitation problem for all the systems considered, by
providing sound and complete inhabitation algorithms for them
A Finite Model Property for Intersection Types
We show that the relational theory of intersection types known as BCD has the
finite model property; that is, BCD is complete for its finite models. Our
proof uses rewriting techniques which have as an immediate by-product the
polynomial time decidability of the preorder <= (although this also follows
from the so called beta soundness of BCD).Comment: In Proceedings ITRS 2014, arXiv:1503.0437
Bounding normalization time through intersection types
Non-idempotent intersection types are used in order to give a bound of the
length of the normalization beta-reduction sequence of a lambda term: namely,
the bound is expressed as a function of the size of the term.Comment: In Proceedings ITRS 2012, arXiv:1307.784
Mixin Composition Synthesis based on Intersection Types
We present a method for synthesizing compositions of mixins using type
inhabitation in intersection types. First, recursively defined classes and
mixins, which are functions over classes, are expressed as terms in a lambda
calculus with records. Intersection types with records and record-merge are
used to assign meaningful types to these terms without resorting to recursive
types. Second, typed terms are translated to a repository of typed combinators.
We show a relation between record types with record-merge and intersection
types with constructors. This relation is used to prove soundness and partial
completeness of the translation with respect to mixin composition synthesis.
Furthermore, we demonstrate how a translated repository and goal type can be
used as input to an existing framework for composition synthesis in bounded
combinatory logic via type inhabitation. The computed result is a class typed
by the goal type and generated by a mixin composition applied to an existing
class
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
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
- …
