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.
Building similarity graph...
Analyzing shared references across papers
Loading...
Ádám Kurucz
Péter Bereczky
Dániel Horpácsi
Journal of Logical and Algebraic Methods in Programming
Eötvös Loránd University
Building similarity graph...
Analyzing shared references across papers
Loading...
Kurucz et al. (Wed,) studied this question.
www.synapsesocial.com/papers/69d892d16c1944d70ce04030 — DOI: https://doi.org/10.1016/j.jlamp.2026.101128