Results 1  10
of
14
A graphical presentation of MLF types with a lineartime unification algorithm
 In TLDI’07: Proceedings of the 2007 ACM SIGPLAN International Workshop on Types in Languages Design and Implementation
, 2007
"... apport de recherche ISSN 02496399 ISRN INRIA/RR????FR+ENG A graphical presentation of MLF types with a lineartime local unification algorithm. ..."
Abstract

Cited by 15 (8 self)
 Add to MetaCart
(Show Context)
apport de recherche ISSN 02496399 ISRN INRIA/RR????FR+ENG A graphical presentation of MLF types with a lineartime local unification algorithm.
Implementing nominal unification
 In 3rd Int. Workshop on Term Graph Rewriting (TERMGRAPH’06), Vienna, Electronic
"... Nominal matching and unification underly the dynamics of nominal rewriting. Urban, Pitts and Gabbay gave a nominal unification algorithm which finds the most general solution to a nominal matching or unification problem, if one exists. Later the algorithm was extended by Fernández and Gabbay to deal ..."
Abstract

Cited by 9 (2 self)
 Add to MetaCart
(Show Context)
Nominal matching and unification underly the dynamics of nominal rewriting. Urban, Pitts and Gabbay gave a nominal unification algorithm which finds the most general solution to a nominal matching or unification problem, if one exists. Later the algorithm was extended by Fernández and Gabbay to deal with name generation and locality. In this paper we describe first a direct implementation of the nominal unification algorithm, including the extensions, in Maude. This implementation is not efficient (it is exponential in time), but we will show that we can obtain a feasible implementation by using termgraphs.
Rational Term Equality, Functionally
"... Abstract. This paper presents an elegant purely functional algorithm for deciding the equality of rational terms. The algorithm adapts Hopcroft and Karp’s classic algorithm for equality of finite state automata to structured graph representation of rational terms. 1 ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
(Show Context)
Abstract. This paper presents an elegant purely functional algorithm for deciding the equality of rational terms. The algorithm adapts Hopcroft and Karp’s classic algorithm for equality of finite state automata to structured graph representation of rational terms. 1
Draft version
, 2008
"... apport de recherche ISSN 02496399 ISRN INRIA/RR????FR+ENGA graphical presentation of MLF types with a lineartime local unification algorithm. ..."
Abstract
 Add to MetaCart
(Show Context)
apport de recherche ISSN 02496399 ISRN INRIA/RR????FR+ENGA graphical presentation of MLF types with a lineartime local unification algorithm.
Backpack: Retrofitting Haskell with Interfaces
"... Module systems like that of Haskell permit only a weak form of modularity in which module implementations directly depend on other implementations and must be processed in dependency order. Module systems like that of ML, on the other hand, permit a stronger form of modularity in which explicit inte ..."
Abstract
 Add to MetaCart
(Show Context)
Module systems like that of Haskell permit only a weak form of modularity in which module implementations directly depend on other implementations and must be processed in dependency order. Module systems like that of ML, on the other hand, permit a stronger form of modularity in which explicit interfaces express assumptions about dependencies, and each module can be typechecked and reasoned about independently. In this paper, we present Backpack, a new language for building separatelytypecheckable packages on top of a weak module system like Haskell’s. The design of Backpack is inspired by the MixML module calculus of Rossberg and Dreyer, but differs significantly in detail. Like MixML, Backpack supports explicit interfaces and recursive linking. Unlike MixML, Backpack supports a more flexible applicative semantics of instantiation. Moreover, its design is motivated less by foundational concerns and more by the practical concern of integration into Haskell, which has led us to advocate simplicity—in both the syntax and semantics of Backpack—over raw expressive power. The semantics of Backpack packages is defined by elaboration to sets of Haskell modules and binary interface files, thus showing how Backpack maintains interoperability with Haskell while extending it with separate typechecking. Lastly, although Backpack is geared toward integration into Haskell, its design and semantics are largely agnostic with respect to the details of the underlying core language. 1.
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
Abstract A Graphical Presentation of MLF Types with a LinearTime Unification Algorithm.
"... MLF is a language that extends ML and System F and combines the benefits of both. We propose a dag representation of MLF types that superposes a termdag, encoding the underlying termstructure with sharing, and a binding tree encoding the bindingstructure. Compared to the original definition, this r ..."
Abstract
 Add to MetaCart
(Show Context)
MLF is a language that extends ML and System F and combines the benefits of both. We propose a dag representation of MLF types that superposes a termdag, encoding the underlying termstructure with sharing, and a binding tree encoding the bindingstructure. Compared to the original definition, this representation is more canonical as it factors out most of the notational details; it is also closely related to firstorder terms. Moreover, it permits a simpler and more direct definition of type instance that combines type instance on firstorder termdags, simple operations on dags, and a control that allows or rejects potential instances. Using this representation, we build a lineartime unification algorithm for MLF types, which we prove sound and complete with respect to the specification.
Under consideration for publication in J. Functional Programming 1 Equational Theories with Recursive Types
"... Studies of equivalence for recursive types often consider impoverished type systems, where the equational theory is generated only by the fold/unfold rule µX. T (X) ≡ T (µX. T (X)). Recursive types have been applied in much richer contexts, including systems with β and ηequivalence, but without an ..."
Abstract
 Add to MetaCart
(Show Context)
Studies of equivalence for recursive types often consider impoverished type systems, where the equational theory is generated only by the fold/unfold rule µX. T (X) ≡ T (µX. T (X)). Recursive types have been applied in much richer contexts, including systems with β and ηequivalence, but without any guarantee that the implementations are correct. Though there are plausible ways to adapt standard recursivetype algorithms to richer equational theories, Colazzo and Ghelli observed that two “obvious ” ways of extending the algorithm in a different direction (adding universallyquantified types) both fail. Extended systems may not even be formally specified; combining βηequivalence with coinductive equivalence of recursive types requires care to avoid inconsistency. In this paper we both define and analyze coinductive equivalence for recursive types combined with other common equational principles. We start by adding pairing and projection, allowing even pairs to be recursively defined. (This permits direct definitions for collections of mutuallyrecursive types.) We show that our definition yields a decidable theory with all the expected equational properties.
Abstract TERMGRAPH 2006 Preliminary Version Implementing Nominal Unification
"... Nominal matching and unification underly the dynamics of nominal rewriting. Urban, Pitts and Gabbay gave a nominal unification algorithm which finds the most general solution to a nominal matching or unification problem, if one exists. Later the algorithm was extended by Fernández and Gabbay to deal ..."
Abstract
 Add to MetaCart
(Show Context)
Nominal matching and unification underly the dynamics of nominal rewriting. Urban, Pitts and Gabbay gave a nominal unification algorithm which finds the most general solution to a nominal matching or unification problem, if one exists. Later the algorithm was extended by Fernández and Gabbay to deal with name generation and locality. In this paper we describe first a direct implementation of the nominal unification algorithm, including the extensions, in Maude. This implementation is not efficient (it is exponential in time), but we will show that we can obtain a feasible implementation by using termgraphs.