Unification and anti-unification in applicative matching logic
Matching logic is a logical framework for specifying and reasoning about programs using pattern matching semantics. A pattern in normal form is made up of a number of structural components and constraints. Structural components are syntactically matched, while constraints need to be satisfied. Having multiple structural patterns poses a practical problem as it requires multiple matching operations. The number of structural components can be reduced by unification and anti-unification. Algorithms for both processes have already been defined and proven correct in a sorted, polyadic variant of matching logic. This paper revisits the subject in the applicative variant of the language, while generalizing the unification problem and mechanizing a proven-sound solution in Coq, as well as exploring certain possible extensions of the unification algorithm in a semi-formalized manner.
Authors
- Péter Bereczky (ORCID: https://orcid.org/0000-0003-3183-0712)
- Dániel Horpácsi (ORCID: https://orcid.org/0000-0003-0261-0091)
- Ádám Kurucz
Institutions
- Eötvös Loránd University (HU)
Publication Details
- Journal
- Journal of Logical and Algebraic Methods in Programming
- Published
- 2026-04-06
- DOI
- https://doi.org/10.1016/j.jlamp.2026.101128
- Primary Topic
- Logic, Reasoning, and Knowledge
- Type
- article
- Field-Weighted Citation Impact
- 0.00