CF-GKAT: Efficient Validation of Control-Flow Transformations

📅 2024-11-20
🏛️ Proceedings of the ACM on Programming Languages
📈 Citations: 1
Influential: 0
📄 PDF
🤖 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.

Technology Category

Application Category

📝 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.
Problem

Research questions and friction points this paper is trying to address.

program similarity
jump instructions
analysis tools
Innovation

Methods, ideas, or system contributions that make the work stand out.

CF-GKAT
Jump Instruction Handling
Program Similarity Analysis
🔎 Similar Papers
No similar papers found.
C
Cheng Zhang
University College London, United Kingdom
Tobias Kappé
Tobias Kappé
Leiden University
CoalgebraKleene AlgebraConcurrencyNetworks
D
David E. Narváez
Virginia Tech, USA
N
Nico Naus
Open University of the Netherlands, Netherlands and Virginia Tech, USA