Results 1  10
of
10
Subtyping Dependent Types
, 2000
"... The need for subtyping in typesystems with dependent types has been realized for some years. But it is hard to prove that systems combining the two features have fundamental properties such as subject reduction. Here we investigate a subtyping extension of the system *P, which is an abstract versio ..."
Abstract

Cited by 68 (6 self)
 Add to MetaCart
The need for subtyping in typesystems with dependent types has been realized for some years. But it is hard to prove that systems combining the two features have fundamental properties such as subject reduction. Here we investigate a subtyping extension of the system *P, which is an abstract version of the type system of the Edinburgh Logical Framework LF. By using an equivalent formulation, we establish some important properties of the new system *P^, including subject reduction. Our analysis culminates in a complete and terminating algorithm which establishes the decidability of typechecking.
Extensional equivalence and singleton types
 ACM Transactions on Computational Logic
"... We study the λΠΣS ≤ calculus, which contains singleton types S(M) classifying terms of base type provably equivalent to the term M. The system includes dependent types for pairs and functions (Σ and Π) and a subtyping relation induced by regarding singletons as subtypes of the base type. The decidab ..."
Abstract

Cited by 35 (7 self)
 Add to MetaCart
We study the λΠΣS ≤ calculus, which contains singleton types S(M) classifying terms of base type provably equivalent to the term M. The system includes dependent types for pairs and functions (Σ and Π) and a subtyping relation induced by regarding singletons as subtypes of the base type. The decidability of type checking for this language is nonobvious, since to type check we must be able to determine equivalence of wellformed terms. But in the presence of singleton types, the provability of an equivalence judgment Γ ⊢ M1 ≡ M2: A can depend both on the typing context Γ and on the particular type A at which M1 and M2 are compared. We show how to prove decidability of term equivalence, hence of type checking, in λΠΣS ≤ by exhibiting a typedirected algorithm for directly computing normal forms. The correctness of normalization is shown using an unusual variant of Kripke logical relations organized around sets; rather than defining a logical equivalence relation, we work directly with (subsets of) the corresponding equivalence classes. We then provide a more efficient algorithm for checking type equivalence without constructing normal forms. We also show that type checking, subtyping, and all other judgments of the system are decidable.
Adding type constructor parameterization to Java
 FORMAL TECHNIQUES FOR JAVALIKE PROGRAMS (FTFJP’07) AT THE EUROPEAN CONFERENCE ON OBJECTORIENTED PROGRAMMING (ECOOP
, 2007
"... We present a generalization of Java’s parametric polymorphism that enables parameterization of classes and methods by type constructors, i.e., functions from types to types. Our extension is formalized as a calculus called FGJω. It is implemented in a prototype compiler and its type system is prov ..."
Abstract

Cited by 11 (0 self)
 Add to MetaCart
We present a generalization of Java’s parametric polymorphism that enables parameterization of classes and methods by type constructors, i.e., functions from types to types. Our extension is formalized as a calculus called FGJω. It is implemented in a prototype compiler and its type system is proven safe and decidable. We describe and motivate our extension through two examples: the definition of generic datatypes with binary methods and the definition of generalized algebraic datatypes. The formalization and the safety and decidability proofs are, for space reasons, only shortly described.
Constructor subtyping
, 1999
"... Constructor subtyping is a form of subtyping in which an inductive type is viewed as a subtype of another inductive type Ï if Ï has more constructors than. As suggested in [5, 12], its (potential) uses include proof assistants and functional programming languages. In this paper, we introduce and ..."
Abstract

Cited by 7 (3 self)
 Add to MetaCart
Constructor subtyping is a form of subtyping in which an inductive type is viewed as a subtype of another inductive type Ï if Ï has more constructors than. As suggested in [5, 12], its (potential) uses include proof assistants and functional programming languages. In this paper, we introduce and study the properties of a simply typed Î»calculus with record types and datatypes, and which supports record subtyping and constructor subtyping. In the first part of the paper, we show that the calculus is confluent and strongly normalizing. In the second part of the paper, we show that the calculus admits a wellbehaved theory of canonical inhabitants, provided one adopts expansive extensionality rules, includingexpansion, surjective pairing, and a suitable expansion rule for datatypes. Finally, in the third part of the paper, we extend our calculus with unbounded recursion and show that confluence is preserved.
AntiSymmetry of HigherOrder Subtyping
 In Proceedings of the 8th Annual Conference on Computer Science Logic (CSL’99), J. Flum and M. RodríguezArtalejo, Eds. SpringerVerlag LNCS 1683
, 1999
"... . This paper shows that the subtyping relation of a higherorder lambda calculus, F ! , is antisymmetric. It exhibits the rst such proof, establishing in the process that the subtyping relation is a partial orderreexive, transitive, and antisymmetric up to equality. While a subtyping relat ..."
Abstract

Cited by 4 (1 self)
 Add to MetaCart
. This paper shows that the subtyping relation of a higherorder lambda calculus, F ! , is antisymmetric. It exhibits the rst such proof, establishing in the process that the subtyping relation is a partial orderreexive, transitive, and antisymmetric up to equality. While a subtyping relation is reexive and transitive by denition, antisymmetry is a derived property. The result, which may seem obvious to the nonexpert, is technically challenging, and had been an open problem for almost a decade. In this context, typed operational semantics for subtyping oers a powerful new technology to solve the problem: of particular importance is our extended rule for the wellformedness of types with head variables. The paper also gives a presentation of F ! without a relation for equality, apparently the rst such, and shows its equivalence with the traditional presentation. 1 Introduction Objectoriented programming languages such as Smalltalk, C++, Modula 3, and ...
Metatheoretical Results for a Modal λCalculus
, 2000
"... This paper presents the proofs of the strong normalization, subject reduction, and ChurchRosser theorems for a presentation of the intuitionistic modal λcalculus S4. It is adapted from Healfdene Goguen's thesis, where these properties are shown for the simply typed λcalculus and for Luo's type ..."
Abstract

Cited by 3 (0 self)
 Add to MetaCart
This paper presents the proofs of the strong normalization, subject reduction, and ChurchRosser theorems for a presentation of the intuitionistic modal λcalculus S4. It is adapted from Healfdene Goguen's thesis, where these properties are shown for the simply typed λcalculus and for Luo's type theory UTT. Following this method, we introduce the notion of typed operational semantics for our system. We define a notion of typed substitution for our system, which has context stacks instead of the usual contexts. This latter peculiarity leads to the main diculties and consequently to the main original features in our proofs. The techniques elaborated in this work have already been found useful in recent works [DL98, DL99] and should be further exploited to prove the properties of other systems based on modality.
Dependent Types With Subtyping and LateBound Overloading
, 1999
"... We present a calculus with dependent types, subtyping and latebound overloading. Besides its theoretical interest this work is motivated by several practical needs that range from the definition of logic encodings, to proof specialization and reuse, and to objectoriented extension of the SML modul ..."
Abstract

Cited by 3 (0 self)
 Add to MetaCart
We present a calculus with dependent types, subtyping and latebound overloading. Besides its theoretical interest this work is motivated by several practical needs that range from the definition of logic encodings, to proof specialization and reuse, and to objectoriented extension of the SML module system. The theoretical study of this calculus is not straightforward. While confluence is relatively easy to prove, subject reduction is much harder. We were not able to add overloading to any existing system with dependent types and subtyping, and prove subject reduction. This is why we also define here as byproduct a new subtyping system for dependent types that improves previous systems and enjoys several properties (notably the transitivity elimination property). The calculus with overloading is then obtained as a conservative extension of this new system. Another difficult point is strong normalization, which is a necessary condition to the decidability of subtyping and typing relat...
Decidability of HigherOrder Subtyping via Logical Relations
, 1997
"... This paper uses logical relations for the first time to study the decidability of typechecking and subtyping. The result is proved for F ! , a language with higherorder subtyping and bounded operator abstraction not previously known to be decidable. The proof is via an intermediate system called ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
This paper uses logical relations for the first time to study the decidability of typechecking and subtyping. The result is proved for F ! , a language with higherorder subtyping and bounded operator abstraction not previously known to be decidable. The proof is via an intermediate system called a typed operational semantics, leading to a powerful and uniform technique for showing metatheoretic results of type systems with subtyping, such as strong normalization, subject reduction and decidability of subtyping. 1 Introduction During the last decade, objectoriented programming languages such as Smalltalk, C++, Modula 3, and Java have become popular because they encourage and facilitate software reuse and abstract design. One attempt to give a theoretical understanding of these objectoriented programming languages has been to introduce type systems with features to model constructs from objectoriented programming languages [5, 7], for example bounded quantification [15] and recur...
Pure Type Systems with Subtyping (Extended Abstract)
"... ) Jan Zwanenburg janz@win.tue.nl, Eindhoven University of Technology, The Netherlands c fl SpringerVerlag Abstract. We extend the framework of Pure Type Systems with subtyping, as found in F ! . This leads to a concise description of many existing systems with subtyping, and also to some n ..."
Abstract
 Add to MetaCart
) Jan Zwanenburg janz@win.tue.nl, Eindhoven University of Technology, The Netherlands c fl SpringerVerlag Abstract. We extend the framework of Pure Type Systems with subtyping, as found in F ! . This leads to a concise description of many existing systems with subtyping, and also to some new interesting systems. We develop the metatheory for this framework, including Subject Reduction and Minimal Typing. The main problem was how to formulate the rules of the framework in such a way that we avoid circularities between theory about typing and theory about subtyping. We solve this problem by a simple but rigorous design decision: the subtyping rules do not depend on the typing rules. 1 Introduction The Pure Type Systems (PTSs, see [Bar92]) provide a framework of type systems, in which many particular systems, such as F , F ! , P and the Calculus of Constructions can be concisely expressed and easily compared. Furthermore, the PTSs also include many new interesting sys...