Reference. StacKAT: Infinite State Network Verification
We develop StacKAT, a network verification language featuring loops, finite state variables, nondeterminism, and—most importantly—access to a stack with accompanying push and pop operations. By viewing the variables and stack as the (parsed) headers and (to-be-parsed) contents of a network packet, StacKAT can express a wide range of network behaviors including parsing, source routing, and telemetry. These behaviors are difficult or impossible to model using existing languages like NetKAT . We develop a decision procedure for StacKAT program equivalence, based on finite automata. This decision procedure provides the theoretical basis for verifying network-wide properties and is able to provide counterexamples for inequivalent programs. Finally, we provide an axiomatization of StacKAT equivalence and establish its completeness.
Cite
Cites 45 works (3 here)
With notes (3)
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.
A Completeness Theorem for Kleene Algebras and the Algebra of Regular Events KOZEN1994366
We give a finitary axiomatization of the algebra of regular events involving only equations and equational implications. Unlike Salomaa′s axiomatizations, the axiomatization given here is sound for all interpretations over Kleene algebras.
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)
- KATch: A Fast Symbolic Verifier for NetKAT (2024)
- Model Checking Probabilistic Operator Precedence Automata (2024)
- A Model Checker for Operator Precedence Languages (2023)
- Katra: Realtime Verification for Multilayer Networks (2022)
- Faster Pushdown Reachability Analysis with Applications in Network Verification (2021)
- The decidability and complexity of interleaved bidirected Dyck reachability (2021)
- AalWiNes: a fast and quantitative what-if analysis tool for MPLS networks (2020)
- APKeep: Realtime Verification for Real Networks (2020)
- Kleene Algebra with Hypotheses (2019)
- P-Rex: fast verification of MPLS networks with multiple link failures (2018)
- Generalizing input-driven languages: Theoretical and practical benefits (2017)
- Operator Precedence Languages: Their Automata-Theoretic and Logic Characterization (2015)
- A fast compiler for NetKAT (2015)
- P4: programming protocol-independent packet processors (2013)
- Semilinearity and Context-Freeness of Languages Accepted by Valence Automata (2013)
- Kleene Coalgebra (PhD thesis) (2010)
- Introduction to Automata Theory, Languages, and Computation (3rd Edition) (2006)
- Verification of Pushdown Systems Using Omega Algebra with Domain (2005)
- Visibly pushdown languages (2004)
- Weighted pushdown systems and their application to interprocedural dataflow analysis (2003)
- Balanced Grammars and Their Languages (2002)
- L(A) = L(B)? Decidability Results from Complete Formal Systems (2002)
- L(A)=L(B)? A simplified decidability proof (2002)
- Type-base flow analysis: from polymorphic subtyping to CFL-reachability (2001)
- Reachability Analysis of Pushdown Automata: Application to Model-Checking (1997)
- A direct symbolic approach to model checking pushdown systems (1997)
- Program analysis via graph reachability (1997)
- The Equivalence Problem for Deterministic Pushdown Automata is Decidable (1997)
- Partial Derivatives of Regular Expressions and Finite Automaton Constructions (1996)
- Kleene Algebra with Tests and Commutativity Conditions (1996)
- Demand interprocedural dataflow analysis (1995)
- Precise interprocedural dataflow analysis via graph reachability (1995)
- Speeding up slicing (1994)
- Source routing in computer networks (1977)
- Deterministic One-Counter Automata (1973)
- The Equivalence Problem for Regular Expressions with Squaring Requires Exponential Space (1972)
- Parenthesis Grammars (1967)
- Syntactic Analysis and Operator Precedence (1963)
- 10.1145/2676726.2677011
- 10.46298/lmcs-20(2:8)2024
- 10.1007/3-540-44898-5_11
- 10.1016/0304-3975(96)00072-2