Verifying the unification algorithm in LCF
Science of Computer Programming - Ellis Horwood series in artificial intelligence
An Efficient Unification Algorithm
ACM Transactions on Programming Languages and Systems (TOPLAS)
First-order unification by structural recursion
Journal of Functional Programming
Theoretical Computer Science
The Reasoned Schemer
Formal Correctness of a Quadratic Unification Algorithm
Journal of Automated Reasoning
Implementing Nominal Unification
Electronic Notes in Theoretical Computer Science (ENTCS)
A persistent union-find data structure
ML '07 Proceedings of the 2007 workshop on Workshop on ML
A polynomial nominal unification algorithm
Theoretical Computer Science
Nominal Unification from a Higher-Order Perspective
RTA '08 Proceedings of the 19th international conference on Rewriting Techniques and Applications
Comparing unification algorithms in first-order theorem proving
KI'09 Proceedings of the 32nd annual German conference on Advances in artificial intelligence
Relational programming in minikanren: techniques, applications, and implementations
Relational programming in minikanren: techniques, applications, and implementations
Theoretical Computer Science
CakeML: a verified implementation of ML
Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
Hi-index | 0.00 |
Using HOL4, we mechanise termination and correctness for two unification algorithms, written in a recursive descent style. One computes unifiers for first order terms, the other for nominal terms (terms including α-equivalent binding structure). Both algorithms work with triangular substitutions in accumulator-passing style: taking a substitution as input, and returning an extension of that substitution on success.