Authors
Nicolas Koh, Yao Li, Yishuai Li, Li-yao Xia, Lennart Beringer, Wolf Honoré, William Mansky, Benjamin C Pierce, Steve Zdancewic
Publication date
2019/1/14
Conference
Proceedings of the 8th ACM SIGPLAN International Conference on Certified Programs and Proofs
Pages
234-248
Publisher
ACM
Description
We present the first formal verification of a networked server implemented in C. Interaction trees, a general structure for representing reactive computations, are used to tie together disparate verification and testing tools (Coq, VST, and QuickChick) and to axiomatize the behavior of the operating system on which the server runs (CertiKOS). The main theorem connects a specification of acceptable server behaviors, written in a straightforward “one client at a time” style, with the CompCert semantics of the C program. The variability introduced by low-level buffering of messages and interleaving of multiple TCP connections is captured using network refinement, a variant of observational refinement.
Total citations
20182019202020212022202320241591711118
Scholar articles
N Koh, Y Li, Y Li, L Xia, L Beringer, W Honoré… - Proceedings of the 8th ACM SIGPLAN International …, 2019