Results 1  10
of
14
Tridirectional Typechecking
, 2004
"... In prior work we introduced a pure type assignment system that encompasses a rich set of property types, including intersections, unions, and universally and existentially quantified dependent types. In this paper ..."
Abstract

Cited by 38 (7 self)
 Add to MetaCart
In prior work we introduced a pure type assignment system that encompasses a rich set of property types, including intersections, unions, and universally and existentially quantified dependent types. In this paper
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
(Show Context)
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 12 (4 self)
 Add to MetaCart
(Show Context)
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.
Implementing Compositional Analysis Using Intersection Types with Expansion Variables
, 2002
"... A program analysis is compositional when the analysis result for a particular program fragment is obtained solely from the results for its immediate subfragments via some composition operator. This means the subfragments can be analyzed independently in any order. Many commonly used program analysis ..."
Abstract

Cited by 8 (4 self)
 Add to MetaCart
A program analysis is compositional when the analysis result for a particular program fragment is obtained solely from the results for its immediate subfragments via some composition operator. This means the subfragments can be analyzed independently in any order. Many commonly used program analysis techniques (in particular, most abstract interpretations and most uses of the Hindley/Milner type system) are not compositional and require the entire text of a program for sound and complete analysis.
Intersection Types: a ProofTheoretical Approach
"... The goal of this work is to present a prooftheoretical justification for IT. In particular, we discuss the relationship between the intersection connective and the intuitionistic conjunction. For this purpose, we define a new logical system called Intersection Synchronous Logic (ISL), that proves p ..."
Abstract

Cited by 6 (0 self)
 Add to MetaCart
The goal of this work is to present a prooftheoretical justification for IT. In particular, we discuss the relationship between the intersection connective and the intuitionistic conjunction. For this purpose, we define a new logical system called Intersection Synchronous Logic (ISL), that proves properties of sets of deductions of the implicationconjunction fragment of NJ. The main idea behind ISL is the decomposition of the intuitionistic conjunction into two connectives, one with synchronous and the other with asynchronous behavior. Then we show how proofs of ISL can be decorated with terms in a way that it matches the standard IT assignment system when only the synchronous conjunction is taken into account, and the simple types assignment with pairs and projections when the asynchronous conjunction is considered. Finally, we prove that ISL enjoys both the strong normalization and subformula properties.
Exact intersection typing inference and callbyname evaluation
, 2004
"... Abstract. It is known that inferring an exact intersection typing for a λterm (i.e., a typing where the intersection operator is not idempotent) is equivalent to strong βnormalisation of that term. Intersection typing derivations can provide very precise information about program behaviour, making ..."
Abstract

Cited by 2 (2 self)
 Add to MetaCart
Abstract. It is known that inferring an exact intersection typing for a λterm (i.e., a typing where the intersection operator is not idempotent) is equivalent to strong βnormalisation of that term. Intersection typing derivations can provide very precise information about program behaviour, making them — in principle — an attractive framework for program analysis. The recent innovation of expansion variables greatly simplifies the production of such typing derivations, allows their production for all βnormalising terms and allows inference to be done in a truly compositional 3 way — a big advantage for programs where components are updated frequently and separately. We present a new, truly compositional, exact intersection typing inference procedure for the recent, expansion variablebased, System E framework. Inference uses a confluent rewrite system to solve instances of a unification problem with expansion variables. Moreover, we explain precisely how the inferred typingderivation describes the evaluation of the term, showing that the typing derivation most accurately describes its callbyname evaluation via a linear transformation. For other evaluation strategies, different inference algorithms will be required. 1
Exact Intersection Typing Inference and CallbyName Evaluation
, 2004
"... It is known that inferring an exact intersection typing for a #term (i.e., a typing where the intersection operator is not idempotent) is equivalent to strong #normalisation of that term. Intersection typing derivations can provide very precise information about program behaviour, making them  ..."
Abstract
 Add to MetaCart
It is known that inferring an exact intersection typing for a #term (i.e., a typing where the intersection operator is not idempotent) is equivalent to strong #normalisation of that term. Intersection typing derivations can provide very precise information about program behaviour, making them  in principle  an attractive framework for program analysis. The recent innovation of expansion variables greatly simplifies the production of such typing derivations, allows their production for all #normalising terms and allows inference to be done in a truly compositional way  a big advantage for programs where components are updated frequently and separately. We present a new, truly compositional, exact intersection typing inference procedure for the recent, expansion variablebased, System E framework. Inference uses a confluent rewrite system to solve instances of a unification problem with expansion variables. Moreover, we explain precisely how the inferred typingderivation describes the evaluation of the term, showing that the typing derivation most accurately describes its callbyname evaluation via a linear transformation. For other evaluation strategies, di#erent inference algorithms will be required. 1
1System F with Coercion Constraints
"... Abstract — We present a secondorder λcalculus with coercion constraints that generalizes a previous extension of System F with parametric coercion abstractions [1] by allowing multiple but simultaneous type and coercion abstractions, as well as recursive coercions and equirecursive types. This al ..."
Abstract
 Add to MetaCart
(Show Context)
Abstract — We present a secondorder λcalculus with coercion constraints that generalizes a previous extension of System F with parametric coercion abstractions [1] by allowing multiple but simultaneous type and coercion abstractions, as well as recursive coercions and equirecursive types. This allows to present in a uniform way several type system features that had previously been studied separately: type containment, bounded and instancebounded polymorphism, which are already encodable with parametric coercion abstraction, and MLstyle subtyping constraints. Our framework allows for a clear separation of language constructs with and without computational content. We also distinguish coherent coercions that are fully erasable from potentially incoherent coercions that suspend the evaluation— and enable the encoding of GADTs. Technically, type coercions that witness subtyping relations between types are replaced by a more expressive notion of typing coercions that witness subsumption relations between typings, e.g. pairs composed of a typing environment and a type. Our calculus is equipped with a strong notion of reduction that allows reduction under abstractions—but we also introduce a form of weak reduction as reduction cannot proceed under incoherent type abstractions. Type soundness is proved by adapting the stepindexed semantics technique to strong reduction strategies, moving indices inside terms so as to control the reduction steps internally—but this is only detailed in the extended version. I.
preprint version Coherent Coercion Abstraction with a stepindexed strongreduction semantics
"... The usual notion of type coercions that witness subtyping relations between types is generalized to a more expressive notion of typing coercions that witness subsumption relations between typings, e.g. pairs composed of a typing environment and a type. This is more expressive and allows for a cleare ..."
Abstract
 Add to MetaCart
(Show Context)
The usual notion of type coercions that witness subtyping relations between types is generalized to a more expressive notion of typing coercions that witness subsumption relations between typings, e.g. pairs composed of a typing environment and a type. This is more expressive and allows for a clearer separation of language constructs with and without computational content. This is illustrated on a secondorder calculus of implicit coercions that allows multiple but simultaneous type and coercion abstractions and has recursive coercions and general recursive types. The calculus is equipped with a very liberal notion of reduction. It models a wide range of type features including type containment, bounded and instancebounded polymorphism, as well as subtyping constraints as used for MLstyle type inference with subtyping. Type soundness is proved by adapting the stepindexed semantics technique to strong reduction strategies, moving indices inside terms so as to control the reduction steps internally.