(Nominal) Unification by Recursive Descent with Triangular Substitutions

@inproceedings{Kumar2010NominalUB,
  title={(Nominal) Unification by Recursive Descent with Triangular Substitutions},
  author={Ramana Kumar and Michael Norrish},
  booktitle={ITP},
  year={2010}
}
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. 

Nominal Unification Revisited

TLDR
The purpose of this paper is to simplify a clunky proof from the original paper on nominal unification and to give an overview over some results about nominal unification.

Nominal C-Unification

TLDR
A sound and complete procedure for nominal unification with commutative operators, or nominal C-unification for short, is proposed, which has been formalised in Coq.

Nominal Syntax with Atom Substitutions: Matching, Unification, Rewriting

TLDR
This work considers an extension of nominal syntax with non-capturing substitutions and shows that matching is decidable and finitary but unification is undecidable, giving rise to expressive and efficient rewriting systems.

Undecidability of Nominal Unification with Atom Substitutions

We consider a syntax for nominal terms extended with non-capturing atom substitution and show that unification over such terms is undecidable. The proof of undecidability is obtained by reducing

Formalization of First-Order Syntactic Unification

TLDR
A new formalization in the Isabelle proof assistant of first-order syntactic unification, including a proof of termination, follows, almost down to the letter, the ML-code from Baader and Nipkow's book "Term Rewriting and All That" (1998).

A Certified Functional Nominal C-Unification Algorithm

TLDR
This work presents a specification of a nominal C-unification algorithm (nominal unification with commutative operators) in PVS and discusses the proofs of soundness and completeness.

Nominal Syntax with Atom Substitutions: Matching, Unification, Rewriting

TLDR
It is shown that matching is decidable and finitary but unification is undecidable and characterise problems for which matching is unitary, giving rise to expressive and efficient rewriting systems.

Soundness and Completeness in PVS of a Functional Nominal C-Unification Algorithm

TLDR
This work presents a specification of nominal C-unification (nominal unification with commutative operators) in PVS, the formalization of a functional algorithm that can be directly executed and aspects about the proof of soundness and completeness are discussed.

Nominal essential intersection types

References

SHOWING 1-10 OF 21 REFERENCES

A polynomial nominal unification algorithm

Implementing Nominal Unification

Nominal Unification from a Higher-Order Perspective

TLDR
It is shown that nominal unification can be quadratically reduced to a particular fragment of higher-order unification problems: higher- order pattern unification, and it is proved that the translation preserves most generality of unifiers.

Nominal unification

An Efficient Unification Algorithm

TLDR
A new unification algorithm, characterized by having the acyclicity test efficiently embedded into it, is derived from the nondeterministic one, and a PASCAL implementation is given.

Verifying the Unification Algorithm in LCF

Formal Correctness of a Quadratic Unification Algorithm

TLDR
A case study using ACL2 to verify a nontrivial algorithm that uses efficient data structures that stores terms as directed acyclic graphs by means of a pointer structure.

Linear unification

A unification algorithm is described which tests a set of expressions for unifiability and which requires time and space which are only linear in the size of the input.

Relational programming in minikanren: techniques, applications, and implementations

TLDR
This dissertation presents miniKanren, a family of languages specifically designed for relational programming, and which supports a variety of relational idioms and techniques, making it feasible and useful to write interesting programs as relations.

Unification theory