Reference. Outrunning Big KATs: Efficient Decision Procedures for Variants of GKAT
Cite
Cites 52 works (10 here)
With notes (10)
CF-GKAT: Efficient Validation of Control-Flow Transformations zhang-2025-cf
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.
Weighted GKAT: Completeness and Complexity vankoevering-2025-weighted
We propose Weighted Guarded Kleene Algebra with Tests (wGKAT), an uninterpreted weighted programming language equipped with branching, conditionals, and loops. We provide an operational semantics for wGKAT using a variant of weighted automata and introduce a sound and complete axiomatization. We also provide a polynomial time decision procedure for bisimulation equivalence.
Domain Reasoning in TopKAT zhang-2024-domain
TopKAT is the algebraic theory of Kleene algebra with tests (KAT) extended with a top element. Compared to KAT, one pleasant feature of TopKAT is that, in relational models, the top element allows us to express the domain and codomain of a relation. This enables several applications in program logics, such as proving under-approximate specifications or reachability properties of imperative programs. However, while TopKAT inherits many pleasant features of KATs, such as having a decidable equational theory, it is incomplete with respect to relational models. In other words, there are properties that hold true of all relational TopKATs but cannot be proved with the axioms of TopKAT. This issue is potentially worrisome for program-logic applications, in which relational models play a key role. In this paper, we further investigate the completeness properties of TopKAT with respect to relational models. We show that TopKAT is complete with respect to (co)domain comparison of KAT terms, but incomplete when comparing the (co)domain of arbitrary TopKAT terms. Since the encoding of under-approximate specifications in TopKAT hinges on this type of formula, the aforementioned incompleteness results have a limited impact when using TopKAT to reason about such specifications.
On incorrectness logic and Kleene algebra with top and tests zhang-2022-on
Kleene algebra with tests (KAT) is a foundational equational framework for reasoning about programs, which has found applications in program transformations, networking and compiler optimizations, among many other areas. In his seminal work, Kozen proved that KAT subsumes propositional Hoare logic, showing that one can reason about the (partial) correctness of while programs by means of the equational theory of KAT. In this work, we investigate the support that KAT provides for reasoning about incorrectness, instead, as embodied by O’Hearn’s recently proposed incorrectness logic. We show that KAT cannot directly express incorrectness logic. The main reason for this limitation can be traced to the fact that KAT cannot express explicitly the notion of codomain, which is essential to express incorrectness triples. To address this issue, we study Kleene Algebra with Top and Tests (TopKAT), an extension of KAT with a top element. We show that TopKAT is powerful enough to express a codomain operation, to express incorrectness triples, and to prove all the rules of incorrectness logic sound. This shows that one can reason about the incorrectness of while-like programs by means of the equational theory of TopKAT.
Guarded Kleene algebra with tests: verification of uninterpreted programs in nearly linear time smolka-2019-guarded
Guarded Kleene Algebra with Tests (GKAT) is a variation on Kleene Algebra with Tests (KAT) that arises by restricting the union (+) and iteration (*) operations from KAT to predicate-guarded versions. We develop the (co)algebraic theory of GKAT and show how it can be efficiently used to reason about imperative programs. In contrast to KAT, whose equational theory is PSPACE-complete, we show that the equational theory of GKAT is (almost) linear time. We also provide a full Kleene theorem and prove completeness for an analogue of Salomaa’s axiomatization of Kleene Algebra.
NetKAT: Semantic foundations for networks anderson2014netkat
Recent years have seen growing interest in high-level languages for programming networks. But the design of these languages has been largely ad hoc, driven more by the needs of applications and the capabilities of network hardware than by foundational principles. The lack of a semantic foundation has left language designers with little guidance in determining how to incorporate new features, and programmers without a means to reason precisely about their code. This paper presents NetKAT, a new network programming language that is based on a solid mathematical foundation and comes equipped with a sound and complete equational theory. We describe the design of NetKAT, including primitives for filtering, modifying, and transmitting packets; union and sequential composition operators; and a Kleene star operator that iterates programs. We show that NetKAT is an instance of a canonical and well-studied mathematical structure called a Kleene algebra with tests (KAT) and prove that its equational theory is sound and complete with respect to its denotational semantics. Finally, we present practical applications of the equational theory including syntactic techniques for checking reachability, proving non-interference properties that ensure isolation between programs, and establishing the correctness of compilation algorithms.
Regular-expression derivatives re-examined owensRegularexpressionDerivativesReexamined2009
Abstract Regular-expression derivatives are an old, but elegant, technique for compiling regular expressions to deterministic finite-state machines. It easily supports extending the regular-expression operators with boolean operations, such as intersection and complement. Unfortunately, this technique has been lost in the sands of time and few computer scientists are aware of it. In this paper, we reexamine regular-expression derivatives and report on our experiences in the context of two different functional-language implementations. The basic implementation is simple and we show how to extend it to handle large character sets (e.g., Unicode). We also show that the derivatives approach leads to smaller state machines than the traditional algorithm given by McNaughton and Yamada.
Concurrent Kleene Algebra hoare2009concurrent
Certification of Compiler Optimizations Using Kleene Algebra with Tests kozen2000certification
Derivatives of Regular Expressions brzozowskiDerivativesRegularExpressions1964
Kleene’s regular expressions, which can be used for describing sequential circuits, were defined using three operators (union, concatenation and iterate) on sets of sequences. Word descriptions of problems can be more easily put in the regular expression language if the language is enriched by the inclusion of other logical operations. However, in the problem of converting the regular expression description to a state diagram, the existing methods either cannot handle expressions with additional operators, or are made quite complicated by the presence of such operators.In this paper the notion of a derivative of a regular expression is introduced and the properties of derivatives are discussed. This leads, in a very natural way, to the construction of a state diagram from a regular expression containing any number of logical operators.
External (42)
- Efficient Decision Procedures for Variants of GKAT (Artifact) (2026)
- Booleworks/logicng-rs (software) (2025)
- Pclewis/cudd-sys (software) (2025)
- LLVM llvm-project (software, llvmorg-20.1.2) (2025)
- Possible bug in decompiler "join" label gotos? (Ghidra issue #8310) (2025)
- KATch: A Fast Symbolic Verifier for NetKAT (2024)
- KATch: A fast symbolic verifier for NetKAT (artifact) (2024)
- CF-GKAT: Efficient Validation of Control-Flow Transformations (Artifact) (2024)
- Coreutils - GNU core utilities (software) (2024)
- A Kleene algebra with tests for union bound reasoning about probabilistic programs (2024)
- Coalgebraic Completeness Theorems for Effectful Process Algebras (PhD thesis) (2024)
- Probabilistic Guarded KAT Modulo Bisimilarity: Completeness and Complexity (2023)
- Guarded NetKAT: Soundness, Partial Completeness, Decidability (MSc thesis) (2023)
- Guarded Kleene Algebra with Tests: Coequations, Coinduction, and Completeness (2021)
- Symbolic Boolean derivatives for efficiently solving extended regular expression constraints (2021)
- Partially Observable Concurrent Kleene Algebra (2020)
- Generic Partition Refinement and Weighted Tree Automata (2019)
- Scalable verification of probabilistic networks (2019)
- CUDD: CU Decision Diagram Package Release 2.7.0 (software) (2018)
- A general account of coinduction up-to (2017)
- On the Coalgebraic Theory of Kleene Algebra with Tests (2017)
- Fusing effectful comprehensions (2017)
- Cantor meets Scott: semantic foundations for probabilistic networks (2017)
- Abstract Symbolic Automata: Mixed syntactic/semantic similarity analysis of executables (2015)
- A Coalgebraic Decision Procedure for NetKAT (2015)
- Symbolic Algorithms for Language Equivalence and Kleene Algebra with Tests (2015)
- No More Gotos: Decompilation Using Pattern-Independent Control-Flow Structuring and Semantics-Preserving Transformations (2015)
- Coinduction up-to in a fibrational setting (2014)
- Applications of Symbolic Finite Automata (2013)
- Deciding KAT and Hoare Logic with Derivatives (2012)
- Symbolic finite state transducers: Algorithms and applications (2012)
- The Böhm–Jacopini Theorem Is False, Propositionally (2008)
- Complete Lattices and Up-To Techniques (2007)
- Modal Kleene Algebra and Applications – A Survey (2004)
- Kleene Algebra with Tests and Program Schematology (Cornell TR) (2001)
- Kleene algebra with tests: Completeness and decidability (1997)
- Partial derivatives of regular expressions and finite automaton constructions (1996)
- The Complexity of Kleene Algebra with Tests (1996)
- Taming control flow: A structured approach to eliminating goto statements (1994)
- On-the-fly verification of finite transition systems (1992)
- Graph-Based Algorithms for Boolean Function Manipulation (1986)
- A Linear Algorithm for Testing Equivalence of Finite Automata (Cornell TR) (1971)