Outrunning Big KATs: Efficient Decision Procedures for Variants of GKAT
Cheng Zhang, Qiancheng Fu, Hang Ji, Ines Santacruz Del Valle, Alexandra Silva, Marco Gaboardi
TL;DR
This work advances decision procedures for GKAT and its CF-GKAT extension by introducing on-the-fly and symbolic techniques that avoid full automaton construction. It couples derivative-based generation with Boolean-formula transitions and SAT/BDD backends to compress state spaces and accelerate trace-equivalence checks, achieving substantial practical speedups over prior methods. The authors provide formal correctness and complexity results, implement a Rust prototype, and demonstrate performance gains on synthetic benchmarks and real-world control-flow transformations, including uncovering a bug in Ghidra. The approach broadens the applicability of GKAT-based verification to large-scale programs and complex CF-GKAT constructs, showing tangible impact for software verification and decompiler analysis.
Abstract
This paper presents several efficient decision procedures for trace equivalence of GKAT automata, which make use of on-the-fly symbolic techniques via SAT solvers. To demonstrate applicability of our algorithms, we designed symbolic derivatives for CF-GKAT, a practical system based on GKAT designed to validate control-flow transformations. We implemented the algorithms in Rust and evaluated them on both randomly generated benchmarks and real-world control-flow transformations. Indeed, we observed order-of-magnitude performance improvements against existing implementations for both KAT and CF-GKAT. Notably, our experiments also revealed a bug in Ghidra, an industry-standard decompiler, highlighting the practical viability of these systems.
