Nominal Unification and Matching of Higher Order Expressions with Recursive Let
Manfred Schmidt-Schau{\ss}, Temur Kutsia, Jordi Levy, Mateu, Villaret, Yunus Kutz

TL;DR
This paper presents a sound and complete algorithm for nominal unification of higher-order expressions with recursive let constructs, analyzing its complexity and exploring special cases like letrec-matching.
Contribution
It introduces a polynomial-time nominal unification algorithm for higher-order expressions with recursive let and atom-variables, and analyzes complexity of related matching problems.
Findings
Algorithm runs in nondeterministic polynomial time.
Specialized algorithms for letrec-matching and environment variables are in NP.
Trade-offs between exponential growth and nondeterminism are identified.
Abstract
A sound and complete algorithm for nominal unification of higher-order expressions with a recursive let is described, and shown to run in nondeterministic polynomial time. We also explore specializations like nominal letrec-matching for expressions, for DAGs, and for garbage-free expressions and determine their complexity. We also provide a nominal unification algorithm for higher-order expressions with recursive let and atom-variables, where we show that it also runs in nondeterministic polynomial time. In addition we prove that there is a guessing strategy for nominal unification with letrec and atom-variable that is a trade-off between exponential growth and non-determinism. Nominal matching with variables representing partial letrec-environments is also shown to be in NP.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsLogic, programming, and type systems · semigroups and automata theory · Logic, Reasoning, and Knowledge
