🤖 AI Summary
This work presents the first complete formal verification of the completeness of a rule-based grammar anti-unification algorithm within the Prototype Verification System (PVS). Addressing the fundamental structural differences between anti-unification and unification algorithms in their formal representations, the study integrates inference rules with a functional algorithmic approach to construct a rigorous mechanized proof. By doing so, it fills a critical gap in the formal verification of anti-unification theory and establishes a solid theoretical foundation for practical applications such as code parallelization and clone detection.
📝 Abstract
In syntactic anti-unification, one is concerned with finding the commonalities between terms, while (uniformly) abstracting their differences. The original goal of anti-unification development in the seventies was to automate inductive reasoning. Recent applications of anti-unification techniques include efficiently transforming sequential code into parallel code, detecting code clones, and preventing software failures. Previous work addressed the elements required to verify, in the Prototype Verification System (PVS), termination and soundness of a functional algorithm based on inference rules for syntactic anti-unification. This paper dissects all aspects required to formally establish the completeness of the rule-based algorithm, highlighting the significant differences in the formalizations of anti-unification and unification.