Results 1 -
4 of
4
Numbering matters: First-order canonical forms for second-order 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 8 (0 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 first-order 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 first-order recursive terms, for which efficient algorithms are known. 1
A Theory of Second-Order Trees
- In European Symposium on Programming (ESOP
, 2002
"... Abstract. This paper describes a theory of second-order 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 second-order 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 second-order 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 mutually-recursive 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 mutually-recursive 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 set-theoretical 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 mutually-recursive types over arbitrary and well-founded 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 second-order 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 second-order 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 first-order recursive types yields a non complete algorithm. Finally, we prove the completeness and correctness of a different algorithm, which lends itself to efficient implementations.

