Maximal unifiable subsets and minimal non-unifiable subsets
New Generation Computing
On determining the causes of nonunifiability
Journal of Logic Programming
Foundations of deductive databases and logic programming
Unification: a multidisciplinary survey
ACM Computing Surveys (CSUR)
Journal of Symbolic Computation
An almost linear Robinson unification algorithm
Acta Informatica
Extending attribute grammar and type inference algorithms
Extending attribute grammar and type inference algorithms
Partial type inference for untyped functional programs
LFP '90 Proceedings of the 1990 ACM conference on LISP and functional programming
PLDI '91 Proceedings of the ACM SIGPLAN 1991 conference on Programming language design and implementation
Journal of Symbolic Computation - Special issue on automatic programming
Explaining type errors in polymorphic languages
ACM Letters on Programming Languages and Systems (LOPLAS)
Handbook of logic in artificial intelligence and logic programming
Science of Computer Programming
Program analysis via graph reachability
ILPS '97 Proceedings of the 1997 international symposium on Logic programming
Term rewriting and all that
Proofs about a folklore let-polymorphic type inference algorithm
ACM Transactions on Programming Languages and Systems (TOPLAS)
A Machine-Oriented Logic Based on the Resolution Principle
Journal of the ACM (JACM)
Efficiency of a Good But Not Linear Set Union Algorithm
Journal of the ACM (JACM)
Complete Sets of Reductions for Some Equational Theories
Journal of the ACM (JACM)
An Efficient Unification Algorithm
ACM Transactions on Programming Languages and Systems (TOPLAS)
Interconvertibility of a class of set constraints and context-free-language reachability
Theoretical Computer Science - Partial evaluation and semantics-based program manipulation
Compositional explanation of types and algorithmic debugging of type errors
Proceedings of the sixth ACM SIGPLAN international conference on Functional programming
Finding the source of type errors
POPL '86 Proceedings of the 13th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
A maximum-flow approach to anomaly isolation in unification-based incremental type inference
POPL '86 Proceedings of the 13th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Introduction to Formal Language Theory
Introduction to Formal Language Theory
Formal-Language-Constrained Path Problems
SIAM Journal on Computing
Correcting Errors in the Curry System
Proceedings of the 16th Conference on Foundations of Software Technology and Theoretical Computer Science
Origin Functions in Lambda-Calculus and Term Rewriting Systems
CAAP '92 Proceedings of the 17th Colloquium on Trees in Algebra and Programming
Program slices: formal, psychological, and practical investigations of an automatic program abstraction method
Unification source-tracking with application to diagnosis of type inference
Unification source-tracking with application to diagnosis of type inference
Scripting the type inference process
ICFP '03 Proceedings of the eighth ACM SIGPLAN international conference on Functional programming
Discriminative sum types locate the source of type errors
ICFP '03 Proceedings of the eighth ACM SIGPLAN international conference on Functional programming
A visualisation of polymorphic type checking
Journal of Functional Programming
The set constraint/CFL reachability connection in practice
Proceedings of the ACM SIGPLAN 2004 conference on Programming language design and implementation
Type error slicing in implicitly typed higher-order languages
ESOP'03 Proceedings of the 12th European conference on Programming
Polymorphic type reconstruction using type equations
IFL'03 Proceedings of the 15th international conference on Implementation of Functional Languages
A case study of a slicing-based approach for locating type errors
Algebraic'97 Proceedings of the 2nd international conference on Theory and Practice of Algebraic Specifications
IEEE Transactions on Software Engineering
Complexity results on labeled shortest path problems from wireless routing metrics
Computer Networks: The International Journal of Computer and Telecommunications Networking
Hi-index | 0.00 |
We propose a path-based framework for deriving and simplifying source-tracking information for first-order term unification in the empty theory. Such a framework is useful for diagnosing unification-based systems, including debugging of type errors in programs and the generation of success and failure proofs in logic programming. The objects of source-tracking are deductions in the logic of term unification. The semantics of deductions are paths over a unification graph whose labels form the suffix language of a semi-Dyck set. Based on this idea of unification paths, two algorithms for generating proofs are presented: the first uses context-free labeled shortest-path algorithms to generate optimal (shortest) proofs in time O(n^3) for a fixed signature, where n is the number of vertices of the unification graph. The second algorithm integrates easily with standard unification algorithms, entailing an overhead of only a constant factor, but generates non-optimal proofs. These non-optimal proofs may be further simplified by group rewrite rules.