English

StacKAT: Infinite State Network Verification

Programming Languages 2025-06-17 v1

Abstract

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.

Keywords

Cite

@article{arxiv.2506.13383,
  title  = {StacKAT: Infinite State Network Verification},
  author = {Jules Jacobs and Nate Foster and Tobias Kappé and Dexter Kozen and Lily Saada and Alexandra Silva and Jana Wagemaker},
  journal= {arXiv preprint arXiv:2506.13383},
  year   = {2025}
}