Results 1  10
of
18
J.B.: A complete realisability semantics for intersection types and infinite expansion variables (2008), http://www.macs.hw.ac.uk/ ∼ fairouz/papers/drafts/compsembig.pdf
"... Abstract. Expansion was introduced at the end of the 1970s for calculating principal typings for λterms in intersection type systems. Expansion variables (Evariables) were introduced at the end of the 1990s to simplify and help mechanise expansion. Recently, Evariables have been further simplifie ..."
Abstract

Cited by 5 (5 self)
 Add to MetaCart
(Show Context)
Abstract. Expansion was introduced at the end of the 1970s for calculating principal typings for λterms in intersection type systems. Expansion variables (Evariables) were introduced at the end of the 1990s to simplify and help mechanise expansion. Recently, Evariables have been further simplified and generalised to also allow calculating other type operators than just intersection. There has been much work on semantics for intersection type systems, but only one such work on intersection type systems with Evariables. That work established that building a semantics for Evariables is very challenging. Because it is unclear how to devise a space of meanings for Evariables, that work developed instead a space of meanings for types that is hierarchical in the sense of having many degrees (denoted by indexes). However, although the indexed calculus helped identify the serious problems of giving a semantics for expansion variables, the sound realisability semantics was only complete when one single Evariable is used and furthermore, the universal type ω was not allowed. In this paper, we are able to overcome these challenges. We develop a realisability semantics where we allow an arbitrary (possibly infinite) number of expansion variables and where ω is present. We show the soundness and completeness of our proposed semantics. 1
Intersection Type System with de Bruijn Indices
, 2008
"... λcalculus in de Bruijn notation is relevant because it avoids variable names using instead indices which makes it more adequate computationally; in fact, several calculi of explicit substitutions are written in de Bruijn notation because it simplifies the formalization of the atomic operations invo ..."
Abstract

Cited by 3 (3 self)
 Add to MetaCart
λcalculus in de Bruijn notation is relevant because it avoids variable names using instead indices which makes it more adequate computationally; in fact, several calculi of explicit substitutions are written in de Bruijn notation because it simplifies the formalization of the atomic operations involved in βreductions. Intersection types provide finitary type polymorphism which is of principal interest. Moreover, intersection types characterize normalizable λterms, that is a term is normalizable if and only if it is typable. Versions of explicit substitutions calculi without types and with simple type systems are well investigated in contrast to versions with more elaborated type systems such as intersection types. In this paper λcalculus in de Bruijn notation with an intersection type system is introduced and it is proved that this system satisfies the basic property of subject reduction, that is λterms preserve theirs types under βreduction. 1
Principal Typings in a Restricted Intersection Type System for Beta Normal Forms with de Bruijn Indices
, 2009
"... The λcalculus with de Bruijn indices assembles each αclass of λterms in a unique term, using indices instead of variable names. Intersection types provide finitary type polymorphism and can characterise normalisable λterms, that is a term is normalisable if and only if it is typeable. To be clos ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
(Show Context)
The λcalculus with de Bruijn indices assembles each αclass of λterms in a unique term, using indices instead of variable names. Intersection types provide finitary type polymorphism and can characterise normalisable λterms, that is a term is normalisable if and only if it is typeable. To be closer to computations and to simplify the formalisation of the atomic operations involved in βcontractions several calculi of explicit substitution were developed and some of them are written with de Bruijn indices. Versions of explicit substitutions calculi without types and with simple type systems are well investigated in contrast to versions with more elaborated type systems such as intersection types. In previous work, we introduced a de Bruijn version of the λcalculus with an intersection type system and proved it preserves the subject reduction, a basic type system property. In this paper a version with de Bruijn indices of an intersection type system originally introduced to characterise principal typings for βnormal forms (βnf for short) is presented. We present the characterisation in this new system and the corresponding versions for the type inference and the reconstruction of normal forms from principal typings algorithms. We briefly discuss about the failure of the subject reduction property and some possible solutions for it. ∗ Supported by a PhD scholarship at the Universidade de Brasília. † Supported by the Fundação de Apoio à Pesquisa do Distrito Federal [FAPDF 8004/2007] 1 1
Developing Realisability Semantics for Intersection Types and Expansion Variables
"... Abstract. Expansion was invented at the end of the 1970s for calculating principal typings for λterms in type systems with intersection types. Expansion variables (Evariables) were invented at the end of the 1990s to simplify and help mechanize expansion. Recently, Evariables have been further si ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
(Show Context)
Abstract. Expansion was invented at the end of the 1970s for calculating principal typings for λterms in type systems with intersection types. Expansion variables (Evariables) were invented at the end of the 1990s to simplify and help mechanize expansion. Recently, Evariables have been further simplified and generalized to also allow calculating other type operators than just intersection. There has been much work on denotational semantics for type systems with intersection types, but none whatsoever before now on type systems with Evariables. Building a semantics for Evariables turns out to be challenging. To simplify the problem, we consider only Evariables, and not the corresponding operation of expansion. We develop a realizability semantics where each use of an Evariable in a type corresponds to an independent level at which evaluation occurs in the λterm that is assigned the type. In the λterm being evaluated, the only interaction possible between portions at different levels is that higher level portions can be passed around but never applied to lower level portions. We apply this semantics to two intersection type systems. We show these systems are sound, that completeness does not hold for the first system, and completeness holds for the second system when only one Evariable is allowed (although it can be used many times and nested). As far as we know, this is the first study of a denotational semantics of intersection type systems with Evariables (using realizability or any other approach) and of the difficulties involved. 1
unknown title
"... A complete realisability semantics for intersection types and arbitrary expansion variables ..."
Abstract
 Add to MetaCart
(Show Context)
A complete realisability semantics for intersection types and arbitrary expansion variables
IOS Press Challenges and Solutions to Realisability Semantics for Intersection Types with Expansion Variables
"... Abstract. Expansion is a crucial operation for calculating principal typings in intersection type systems. Because the early definitions of expansion were complicated, Evariables were introduced in order to make the calculations easier to mechanise and reason about. Recently, Evariables have been ..."
Abstract
 Add to MetaCart
(Show Context)
Abstract. Expansion is a crucial operation for calculating principal typings in intersection type systems. Because the early definitions of expansion were complicated, Evariables were introduced in order to make the calculations easier to mechanise and reason about. Recently, Evariables have been further simplified and generalised to also allow calculating other type operators than just intersection. There has been much work on semantics for type systems with intersection types, but none whatsoever before our work, on type systems with Evariables. In this paper we expose the challenges of building a semantics for Evariables and we provide a novel solution. Because it is unclear how to devise a space of meanings for Evariables, we develop instead a space of meanings for types that is hierarchical. First, we index each type with a natural number and show that although this intuitively captures the use of Evariables, it is difficult to index the universal type ω with this hierarchy and it is not possible to obtain completeness of the semantics if more than one Evariable is used. We then move to a more complex semantics where each type is associated with a list of natural numbers and establish that both ω and an arbitrary number of Evariables can be represented without losing any of the desirable properties of a realisability semantics. Keywords: Realisability semantics, expansion variables, intersection types, completeness
Theoretical Foundations for Practical ‘Totally Functional Programming’
, 2007
"... Interpretation is an implicit part of today’s programming; it has great power but is overused and has
significant costs. For example, interpreters are typically significantly hard to understand and hard
to reason about. The methodology of “Totally Functional Programming” (TFP) is a reasoned
attempt ..."
Abstract
 Add to MetaCart
Interpretation is an implicit part of today’s programming; it has great power but is overused and has
significant costs. For example, interpreters are typically significantly hard to understand and hard
to reason about. The methodology of “Totally Functional Programming” (TFP) is a reasoned
attempt to redress the problem of interpretation. It incorporates an awareness of the undesirability
of interpretation with observations that definitions and a certain style of programming appear to
offer alternatives to it. Application of TFP is expected to lead to a number of significant outcomes,
theoretical as well as practical. Primary among these are novel programming languages to lessen or
eliminate the use of interpretation in programming, leading to betterquality software. However,
TFP contains a number of lacunae in its current formulation, which hinder development of these
outcomes. Among others, formal semantics and typesystems for TFP languages are yet to be
discovered, the means to reduce interpretation in programs is to be determined, and a detailed
explication is needed of interpretation, definition, and the differences between the two. Most
important of all however is the need to develop a complete understanding of the nature of
interpretation. In this work, suitable typesystems for TFP languages are identified, and guidance
given regarding the construction of appropriate formal semantics. Techniques, based around the
‘fold’ operator, are identified and developed for modifying programs so as to reduce the amount of
interpretation they contain. Interpretation as a means of languageextension is also investigated.
v
Finally, the nature of interpretation is considered. Numerous hypotheses relating to it considered in
detail. Combining the results of those analyses with discoveries from elsewhere in this work leads
to the proposal that interpretation is not, in fact, symbolbased computation, but is in fact something
more fundamental: computation that varies with input. We discuss in detail various implications of
this characterisation, including its practical application. An often moreuseful property, ‘inherent
interpretiveness’, is also motivated and discussed in depth. Overall, our inquiries act to give
conceptual and theoretical foundations for practical TFP.
Project funded by the European Community under the ‘Information Society Technologies’
"... this paper we show how they can be recast into algorithmic inference rules by applying a combination of standard techniques, among which constraint handling plays a central role. We then analyse the generated constraint sets and show that they share a common structure which can be simplified with a ..."
Abstract
 Add to MetaCart
this paper we show how they can be recast into algorithmic inference rules by applying a combination of standard techniques, among which constraint handling plays a central role. We then analyse the generated constraint sets and show that they share a common structure which can be simplified with a specialised algorithm we present. As the constraint simplification procedure is mainly based on unification, we implemented the whole inference algorithm in a Prolog program which we will comment upon
Bidirectional polymorphism through greed and unions
, 2008
"... Bidirectional typechecking has become a popular technique for advanced type systems. In this paper, I show how to extend past work on bidirectional typechecking to handle parametric polymorphism bidirectionally. The first key contribution is a simple bidirectional type system that supports firstcla ..."
Abstract
 Add to MetaCart
Bidirectional typechecking has become a popular technique for advanced type systems. In this paper, I show how to extend past work on bidirectional typechecking to handle parametric polymorphism bidirectionally. The first key contribution is a simple bidirectional type system that supports firstclass (higherrank and impredicative) polymorphism; its algorithm is complete for predicative polymorphism (including MLstyle polymorphism and higherrank polymorphism). The second key contribution extends that system with subtyping; the combination of bidirectional typechecking with intersection and union types fortuitously yields a simple but fairly powerful algorithm. Both of these systems, inspired by Cardelli’s early work on System F<:, rely on a “greedy ” method for finding polymorphic instances. Finally, I present a more powerful algorithm that forms intersections and unions automatically. 1
IOS Press On Realisability Semantics for Intersection Types with Expansion Variables
"... Abstract. Expansion is a crucial operation for calculating principal typings in intersection type systems. Because the early definitions of expansion were complicated, Evariables were introduced in order to make the calculations easier to mechanise and reason about. Recently, Evariables have been ..."
Abstract
 Add to MetaCart
Abstract. Expansion is a crucial operation for calculating principal typings in intersection type systems. Because the early definitions of expansion were complicated, Evariables were introduced in order to make the calculations easier to mechanise and reason about. Recently, Evariables have been further simplified and generalised to also allow calculating other type operators than just intersection. There has been much work on semantics for type systems with intersection types, but none whatsoever before our work, on type systems with Evariables. In this paper we expose the challenges of building a semantics for Evariables and we provide a novel solution. Because it is unclear how to devise a space of meanings for Evariables, we develop instead a space of meanings for types that is hierarchical. First, we index each type with a natural number and show that although this intuitively captures the use of Evariables, it is difficult to index the universal type ω with this hierarchy and it is not possible to obtain completeness of the semantics if more than one Evariable is used. We then move to a more complex semantics where each type is associated with a list of natural numbers and establish that both ω and an arbitrary number of Evariables can be represented without losing any of the desirable properties of a realisability semantics. Keywords: Realisability semantics, expansion variables, intersection types, completeness