🤖 AI Summary
This paper addresses the problem of deciding program equivalence at the propositional logic level—i.e., abstracting away concrete semantic details (e.g., the actual evaluation of condition predicates or branch bodies) and focusing solely on control-flow structure to determine behavioral equivalence (e.g., whether `if b then e else f` is equivalent to `if ¬b then f else e`). To this end, the authors develop a unified algebraic framework based on (Guarded) Kleene Algebra with Tests ((G)KAT), modeling programs as symbolic expressions driven by Boolean tests and formally defining propositional equivalence within this setting. Crucially, while full program equivalence is undecidable, this abstraction renders the equivalence problem decidable. The framework enables automated verification of common equivalence patterns—including predicate negation, branch swapping, and conditional reordering—thereby enhancing both the theoretical rigor and practical applicability of program equivalence analysis.
📝 Abstract
General program equivalence is undecidable. However, if we abstract away the semantics of statements, then this problem becomes not just decidable, but practically feasible. For instance, a program of the form "if $b$ then $e$ else $f$" should be equivalent to "if not $b$ then $f$ else $e$" - no matter what $b$, $e$ and $f$ are. This kind of equivalence is known as propositional equivalence. In this extended abstract, we discuss recent developments in propositional program equivalence from the perspective of (Guarded) Kleene Algebra with Tests, or (G)KAT.