TL;DR
CF-GKAT extends GKAT to handle non-local control flow and concrete values, enabling efficient verification of complex program transformations like goto-elimination and decompilation.
Contribution
It introduces CF-GKAT, a novel system that soundly and completely verifies trace equivalence for programs with non-local control flow, maintaining GKAT's efficiency.
Findings
Successfully verified complex control-flow transformations.
Validated decompiler output and goto-elimination procedures.
Preserved nearly-linear efficiency in extended verification.
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,…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
