39 research outputs found
Equational Axiomization of Bicoercibility for Polymorphic Types
Two polymorphic types σ and τ are said to be bicoercible if there is a coercion from σ to τ and conversely. We give a complete equational axiomatization of bicoercible types and prove that the relation of bicoercibility is decidable.National Science Foundation (CCR-9113196); KBN (2 P301 031 06); ESPRIT BRA7232 GENTZE
A Type System For Call-By-Name Exceptions
We present an extension of System F with call-by-name exceptions. The type
system is enriched with two syntactic constructs: a union type for programs
whose execution may raise an exception at top level, and a corruption type for
programs that may raise an exception in any evaluation context (not necessarily
at top level). We present the syntax and reduction rules of the system, as well
as its typing and subtyping rules. We then study its properties, such as
confluence. Finally, we construct a realizability model using orthogonality
techniques, from which we deduce that well-typed programs are weakly
normalizing and that the ones who have the type of natural numbers really
compute a natural number, without raising exceptions.Comment: 25 page
Complete Types in an Extension of the System AF2
International audienceIn this paper, we extend the system AF2 in order to have the subject reduction for the -reduction. We prove that the types with positive quantifiers are complete for models that are stable by weak-head expansion
Preciseness of Subtyping on Intersection and Union Types
Abstract. The notion of subtyping has gained an important role both in theoretical and applicative domains: in lambda and concurrent calculi as well as in programming languages. The soundness and the complete-ness, together referred to as the preciseness of subtyping, can be consid-ered from two different points of view: denotational and operational. The former preciseness is based on the denotation of a type which is a math-ematical object that describes the meaning of the type in accordance with the denotations of other expressions from the language. The latter preciseness has been recently developed with respect to type safety, i.e. the safe replacement of a term of a smaller type when a term of a bigger type is expected. We propose a technique for formalising and proving operational pre-ciseness of the subtyping relation in the setting of a concurrent lambda calculus with intersection and union types. The key feature is the link between typings and the operational semantics. We then prove sound-ness and completeness getting that the subtyping relation of this calculus enjoys both denotational and operational preciseness.
Semantic Predicate Types and Approximation for Class-based Object Oriented Programming
We apply the principles of the intersection type discipline to the study of
class-based object oriented programs and; our work follows from a similar
approach (in the context of Abadi and Cardelli's Varsigma-object calculus)
taken by van Bakel and de'Liguoro. We define an extension of Featherweight
Java, FJc and present a predicate system which we show to be sound and
expressive. We also show that our system provides a semantic underpinning for
the object oriented paradigm by generalising the concept of approximant from
the Lambda Calculus and demonstrating an approximation result: all expressions
to which we can assign a predicate have an approximant that satisfies the same
predicate. Crucial to this result is the notion of predicate language, which
associates a family of predicates with a class.Comment: Proceedings of 11th Workshop on Formal Techniques for Java-like
Programs (FTfJP'09), Genova, Italy, July 6 200
Denotational and operational preciseness of subtyping: A roadmap
The notion of subtyping has gained an important role both in theoretical and applicative domains: in lambda and concurrent calculi as well as in object-oriented programming languages. The soundness and the completeness, together referred to as the preciseness of subtyping, can be considered from two different points of view: denotational and operational. The former preciseness is based on the denotation of a type, which is a mathematical object describing the meaning of the type in accordance with the denotations of other expressions from the language. The latter preciseness has been recently developed with respect to type safety, i.e. the safe replacement of a term of a smaller type when a term of a bigger type is expected. The present paper shows that standard proofs of operational preciseness imply denotational preciseness and gives an overview on this subject
A type system for context-dependent overloading.
This article presents a type system for context-dependent overloading, based on the notion of constrained types. These are types constrained by the definition of functions or constants of given types. This notion supports both overloading and a form of subtyping, and is related to Haskell type classes [11,2], System O [7] and other systems with constrained types. We study an extension of the Damas-Milner system [4,1] with constrained types. The inference system presented uses a context-dependent overloading policy, which is specified by means of a predicate used in a single inference rule. The idea simplifies the treatment of overloading, enables the simplification of inferred types (by means of class type annotations), and is adequate for use in a type system with higher-order types