🤖 AI Summary
Existing program similarity verification tools based on Guarded Kleene Algebra with Tests (GKAT) ignore instruction semantics and cannot handle non-local control-flow transfers—such as `goto`, `break`, and `return`—rendering them inadequate for rigorous verification of realistic program transformations (e.g., decompilation, control-flow restructuring). To address this gap, we propose CF-GKAT: the first extension of GKAT supporting both non-local control flow and hard-coded value semantics. CF-GKAT introduces control-flow labels and value-sensitive normalization rules, integrating symbolic execution with equivalence reduction. It preserves soundness and completeness while achieving near-linear verification time complexity. Experimental evaluation demonstrates that CF-GKAT successfully verifies the Erosa–Hendren `goto`-elimination algorithm and Ghidra’s decompiled output—thereby bridging a critical gap in the formal verification of practical program transformations using GKAT-based reasoning.
📝 Abstract
Guarded Kleene Algebra with Tests (GKAT) provides a sound and complete framework to reason about trace equivalence between simple imperative programs. However, there are still several notable limitations. First, GKAT is completely agnostic with respect to the meaning of primitives, to keep equivalence decidable. Second, GKAT excludes non-local control flow such as goto, break, and return. To overcome these limitations, we introduce
Control-Flow GKAT
(
CF-GKAT
), a system that allows reasoning about programs that include non-local control flow as well as hardcoded values. CF-GKAT is able to soundly and completely verify trace equivalence of a larger class of programs, while preserving the nearly-linear efficiency of GKAT. This makes CF-GKAT suitable for the verification of control-flow manipulating procedures, such as decompilation and goto-elimination. To demonstrate CF-GKAT’s abilities, we validated the output of several highly non-trivial program transformations, such as Erosa and Hendren’s goto-elimination procedure and the output of Ghidra decompiler. CF-GKAT opens up the application of Kleene Algebra to a wider set of challenges, and provides an important verification tool that can be applied to the field of decompilation and control-flow transformation.