Results 1 
6 of
6
Numbering matters: Firstorder canonical forms for secondorder recursive types
 In Proceedings of the 2004 ACM SIGPLAN International Conference on Functional Programming (ICFP’04
, 2004
"... We study a type system equipped with universal types and equirecursive types, which we refer to as Fµ. We show that type equality may be decided in time O(n log n), an improvement over the previous known bound of O(n 2). In fact, we show that two more general problems, namely entailment of type equa ..."
Abstract

Cited by 12 (1 self)
 Add to MetaCart
We study a type system equipped with universal types and equirecursive types, which we refer to as Fµ. We show that type equality may be decided in time O(n log n), an improvement over the previous known bound of O(n 2). In fact, we show that two more general problems, namely entailment of type equations and type unification, may be decided in time O(n log n), a new result. To achieve this bound, we associate, with every Fµ type, a firstorder canonical form, which may be computed in time O(n log n). By exploiting this notion, we reduce all three problems to equality and unification of firstorder recursive terms, for which efficient algorithms are known. 1
A Theory of SecondOrder Trees
 In European Symposium on Programming (ESOP
, 2002
"... Abstract. This paper describes a theory of secondorder trees, that is, finite and infinite trees where nodes of the tree can bind variables that appear further down in the tree. Such trees can be used to provide a natural and intuitive interpretation for type systems with equirecursive types and bi ..."
Abstract

Cited by 4 (0 self)
 Add to MetaCart
Abstract. This paper describes a theory of secondorder trees, that is, finite and infinite trees where nodes of the tree can bind variables that appear further down in the tree. Such trees can be used to provide a natural and intuitive interpretation for type systems with equirecursive types and binding constructs like universal and existential quantifiers. The paper defines the set of binding trees, and a subset of these called regular binding trees. These are similar to the usual notion of regular trees, but generalised to take into account the binding structure. Then the paper shows how to interpret a secondorder type system with recursive quantifiers as binding trees, and gives a sound and complete axiomatisation of when two types map to the same tree. Finally the paper gives a finite representation for trees called tree automata, and gives a construction for deciding when two automata map to the same tree. To tie everything together, the paper defines a mapping from types to automata, thus giving a decision procedure for when two types map to the same tree. 1
Logic of subtyping
 Theoretical Computer Science
, 2005
"... We introduce new modal logical calculi that describe subtyping properties of Cartesian product and disjoint union type constructors as well as mutuallyrecursive types defined using those type constructors. Basic Logic of Subtyping S extends classical propositional logic by two new binary modalities ..."
Abstract

Cited by 3 (2 self)
 Add to MetaCart
We introduce new modal logical calculi that describe subtyping properties of Cartesian product and disjoint union type constructors as well as mutuallyrecursive types defined using those type constructors. Basic Logic of Subtyping S extends classical propositional logic by two new binary modalities ⊗ and ⊕. An interpretation of S is a function that maps standard connectives into settheoretical operations (intersection, union, and complement) and modalities into Cartesian product and disjoint union type constructors. This allows S to capture many subtyping properties of the above type constructors. We also consider logics Sρ and S ω ρ that incorporate into S mutuallyrecursive types over arbitrary and wellfounded universes correspondingly. The main results are completeness of the above three logics with respect to appropriate type universes. In addition, we prove Cut elimination theorem for S and establish decidability of S and S ω ρ.
Subtyping, Recursion and Parametric Polymorphism in Kernel Fun
, 2003
"... We study subtype checking for recursive types in system kernel Fun, a typed λcalculus with subtyping and bounded secondorder polymorphism. Along the lines of [AC93], we define a subtype relation over kernel Fun recursive types, and prove it to be transitive. We then show that the natural extension ..."
Abstract
 Add to MetaCart
We study subtype checking for recursive types in system kernel Fun, a typed λcalculus with subtyping and bounded secondorder polymorphism. Along the lines of [AC93], we define a subtype relation over kernel Fun recursive types, and prove it to be transitive. We then show that the natural extension of the algorithm introduced in [AC93] to compare firstorder recursive types yields a non complete algorithm. Finally, we prove the completeness and correctness of a different algorithm, which lends itself to efficient implementations.
Subtyping FirstClass Polymorphic Components
"... Abstract. We present a statically typed, classbased object oriented language where classes are first class polymorphic values. A main contribution of this work is the design of a type system that combines first class polymorphic values with structural equirecursive types and admits a subtyping algo ..."
Abstract
 Add to MetaCart
Abstract. We present a statically typed, classbased object oriented language where classes are first class polymorphic values. A main contribution of this work is the design of a type system that combines first class polymorphic values with structural equirecursive types and admits a subtyping algorithm which is arguably much simpler than existing alternatives. Our development is modular and can be easily instantiated for either a KernelFun or a F ⊤ ≤ style of subtyping discipline. 1
Subtyping Recursive Types in Kernel Fun
"... The problem of defining and checking a subtype relation between recursive types was studied in [3] for a first order type system, but for second order systems, which combine subtyping and parametric polymorphism, only negative results are known [17]. This paper studies the problem of subtype checkin ..."
Abstract
 Add to MetaCart
The problem of defining and checking a subtype relation between recursive types was studied in [3] for a first order type system, but for second order systems, which combine subtyping and parametric polymorphism, only negative results are known [17]. This paper studies the problem of subtype checking for recursive types in system kernel Fun, a typed�calculus with subtyping and bounded second order polymorphism. Along the lines of [3], we study the definition of a subtype relation over kernel Fun recursive types, and then we present a subtyping algorithm which is sound and complete with respect to this relation. We show that the natural extension of the techniques introduced in [3] to compare first order recursive types gives a non complete algorithm. We prove the completeness and correctness of a different algorithm, which also admits an efficient implementation.