Invariant Generation as Semantic Unification: A New Perspective
Résumé
Unification is the problem of finding instantiations of variables in a finite set of pairs of terms constructed using function symbols, such that the instantiated terms in each pair become equal. In semantic unification, also called E-unification, function symbols can have properties specified typically by an equational theory; a unifier then makes the instantiated pairs of terms equivalent modulo the equation theory. By generalizing the unification problem further, in which the pairs of formulas have variables ranging over formulas in a first-order theory, the invariant generation problem in software, hardware, and cyber-physical systems can be formulated as a unification problem. Finding a nontrivial unifier then amounts to finding an invariant. Similarly, finding a most general unifier, if unique, amounts to finding the strongest invariant. Instantiation of variables can be further restricted to formulas with certain shapes/properties. This new perspective is illustrated using a number of examples from the literature of the automatic generation of loop invariants in software.
Domaines
Informatique [cs]Origine | Fichiers produits par l'(les) auteur(s) |
---|---|
Licence |