Results 1 
6 of
6
Type Inference with Polymorphic Recursion
 Transactions on Programming Languages and Systems
, 1991
"... The DamasMilner Calculus is the typed Acalculus underlying the type system for ML and several other strongly typed polymorphic functional languages such as Mirandal and Haskell. Mycroft has extended its problematic monomorphic typing rule for recursive definitions with a polymorphic typing rule. H ..."
Abstract

Cited by 135 (0 self)
 Add to MetaCart
The DamasMilner Calculus is the typed Acalculus underlying the type system for ML and several other strongly typed polymorphic functional languages such as Mirandal and Haskell. Mycroft has extended its problematic monomorphic typing rule for recursive definitions with a polymorphic typing rule. He proved the resulting type system, which we call the MilnerMycroft Calculus, sound with respect to Milner’s semantics, and showed that it preserves the principal typing property of the DamasMilner Calculus. The extension is of practical significance in typed logic programming languages and, more generally, in any language with (mutually) recursive definitions. In this paper we show that the type inference problem for the MilnerMycroft Calculus is logspace equivalent to semiunification, the problem of solving subsumption inequations between firstorder terms. This result has been proved independently by Kfoury et al. In connection with the recently established undecidability of semiunification this implies that typability in the MilnerMycroft Calculus is undecidable. We present some reasons why type inference with polymorphic recursion appears to be practical despite its undecidability. This also sheds some light on the observed practicality of ML
Type inference and semiunification
 In Proceedings of the ACM Conference on LISP and Functional Programming (LFP ) (Snowbird
, 1988
"... In the last ten years declarationfree programming languages with a polymorphic typing discipline (ML, B) have been developed to approximate the flexibility and conciseness of dynamically typed languages (LISP, SETL) while retaining the safety and execution efficiency of conventional statically type ..."
Abstract

Cited by 25 (6 self)
 Add to MetaCart
In the last ten years declarationfree programming languages with a polymorphic typing discipline (ML, B) have been developed to approximate the flexibility and conciseness of dynamically typed languages (LISP, SETL) while retaining the safety and execution efficiency of conventional statically typed languages (Algol68, Pascal). These polymorphic languages can be type checked at compile time, yet allow functions whose arguments range over a variety of types. We investigate several polymorphic type systems, the most powerful of which, termed MilnerMycroft Calculus, extends the socalled letpolymorphism found in, e.g., ML with a polymorphic typing rule for recursive definitions. We show that semiunification, the problem of solving inequalities over firstorder terms, characterizes type checking in the MilnerMycroft Calculus to polynomial time, even in the restricted case where nested definitions are disallowed. This permits us to extend some infeasibility results for related combinatorial problems to type inference and to correct several claims and statements in the literature. We prove the existence of unique most general solutions of term inequalities, called most general semiunifiers, and present an algorithm for computing them that terminates for all known inputs due to a novel “extended occurs check”. We conjecture this algorithm to be
Fast leftlinear semiunification
 In Proc. Int’l. Conf. on Computing and Information
, 1990
"... Semiunification is a generalization of both unification and matching with applications in proof theory, term rewriting systems, polymorphic type inference, and natural language processing. It is the problem of solving a set of term inequalities M1 ≤ N1,..., Mk ≤ Nk, where ≤ is interpreted as the su ..."
Abstract

Cited by 6 (2 self)
 Add to MetaCart
Semiunification is a generalization of both unification and matching with applications in proof theory, term rewriting systems, polymorphic type inference, and natural language processing. It is the problem of solving a set of term inequalities M1 ≤ N1,..., Mk ≤ Nk, where ≤ is interpreted as the subsumption preordering on (firstorder) terms. Whereas the general problem has recently been shown to be undecidable, several special cases are decidable. Kfoury, Tiuryn, and Urzyczyn proved that leftlinear semiunification (LLSU) is decidable by giving an exponential time decision procedure. We improve their result as follows. 1. We present a generic polynomialtime algorithm L1 for LLSU, which shows that LLSU is in P. 2. We show that L1 can be implemented in time O(n 3) by using a fast dynamic transitive closure algorithm. 3. We prove that LLSU is Pcomplete under logspace reductions, thus giving evidence that there are no fast (NCclass) parallel algorithms for LLSU.
About Changing The Ordering During KnuthBendix Completion
 Symposium on Theoretical Aspects of Computer Science, volume 775 of LNCS
, 1993
"... . We will answer a question posed in [DJK91], and will show that Huet's completion algorithm [Hu81] becomes incomplete, i.e. it may generate a term rewriting system that is not confluent, if it is modified in a way that the reduction ordering used for completion can be changed during completion prov ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
. We will answer a question posed in [DJK91], and will show that Huet's completion algorithm [Hu81] becomes incomplete, i.e. it may generate a term rewriting system that is not confluent, if it is modified in a way that the reduction ordering used for completion can be changed during completion provided that the new ordering is compatible with the actual rules. In particular, we will show that this problem may not only arise if the modified completion algorithm does not terminate: Even if the algorithm terminates without failure, the generated finite noetherian term rewriting system may be nonconfluent. Most existing implementations of the KnuthBendix algorithm provide the user with help in choosing a reduction ordering: If an unorientable equation is encountered, then the user has many options, especially, the one to orient the equation manually. The integration of this feature is based on the widespread assumption that, if equations are oriented by hand during completion and the co...
A General Theory of SemiUnification
, 1993
"... Various restrictions on the terms allowed for substitution give rise to different cases of semiunification. Semiunification on finite and regular terms has already been considered in the literature. We introduce a general case of semiunification where substitutions are allowed on nonregular term ..."
Abstract
 Add to MetaCart
Various restrictions on the terms allowed for substitution give rise to different cases of semiunification. Semiunification on finite and regular terms has already been considered in the literature. We introduce a general case of semiunification where substitutions are allowed on nonregular terms, and we prove the equivalence of this general case to a wellknown undecidable data base dependency problem , thus establishing the undecidability of general semiunification. We present a unified way of looking at the various problems of semiunification. We give some properties that are common to all the cases of semiunification. We also the principality property and the solution set for those problems. We prove that semiunification on general terms has the principality property. Finally, we present a recursive inseparability result between semiunification on regular terms and semiunification on general terms. Partly supported by NSF grant CCR9113196. Address: Department of Compu...
A Decidable Case of the SemiUnification Problem (Draft Version)
, 1991
"... Semiunification is a common generalization of unification and matching. The semiunification problem is to decide solvability of finite sets of equations s = t and inequations ˜s ≤i ˜t between firstorder terms, with different inequality relations ≤i, i ∈ I. A solution consists of a substitution T0 ..."
Abstract
 Add to MetaCart
Semiunification is a common generalization of unification and matching. The semiunification problem is to decide solvability of finite sets of equations s = t and inequations ˜s ≤i ˜t between firstorder terms, with different inequality relations ≤i, i ∈ I. A solution consists of a substitution T0 and residual substitutions Ti, i ∈ I, such that, respectively, T0(s) = T0(t) and Ti(T0(˜s)) = T0(˜t). The semiunification problem has recently been shown to be undecidable [9]. We present a new subclass of decidable semiunification problems, properly containing those over monadic languages. In our ‘quasimonadic ’ problems, function symbols may be of arity> 1, but only terms with at most one free variable are admitted. 1