License: Creative Commons Attribution 4.0 International license (CC BY 4.0)
When quoting this document, please refer to the following
DOI: 10.4230/LIPIcs.ITP.2021.32
URN: urn:nbn:de:0030-drops-139273
URL: http://dagstuhl.sunsite.rwth-aachen.de/volltexte/2021/13927/
Go to the corresponding LIPIcs Volume Portal


Zhang, Hengchu ; Honoré, Wolf ; Koh, Nicolas ; Li, Yao ; Li, Yishuai ; Xia, Li-Yao ; Beringer, Lennart ; Mansky, William ; Pierce, Benjamin ; Zdancewic, Steve

Verifying an HTTP Key-Value Server with Interaction Trees and VST

pdf-format:
LIPIcs-ITP-2021-32.pdf (0.7 MB)


Abstract

We present a networked key-value server, implemented in C and formally verified in Coq. The server interacts with clients using a subset of the HTTP/1.1 protocol and is specified and verified using interaction trees and the Verified Software Toolchain. The codebase includes a reusable and fully verified C string library that provides 17 standard POSIX string functions and 17 general purpose non-POSIX string functions. For the KVServer socket system calls, we establish a refinement relation between specifications at user-space level and at CertiKOS kernel-space level.

BibTeX - Entry

@InProceedings{zhang_et_al:LIPIcs.ITP.2021.32,
  author =	{Zhang, Hengchu and Honor\'{e}, Wolf and Koh, Nicolas and Li, Yao and Li, Yishuai and Xia, Li-Yao and Beringer, Lennart and Mansky, William and Pierce, Benjamin and Zdancewic, Steve},
  title =	{{Verifying an HTTP Key-Value Server with Interaction Trees and VST}},
  booktitle =	{12th International Conference on Interactive Theorem Proving (ITP 2021)},
  pages =	{32:1--32:19},
  series =	{Leibniz International Proceedings in Informatics (LIPIcs)},
  ISBN =	{978-3-95977-188-7},
  ISSN =	{1868-8969},
  year =	{2021},
  volume =	{193},
  editor =	{Cohen, Liron and Kaliszyk, Cezary},
  publisher =	{Schloss Dagstuhl -- Leibniz-Zentrum f{\"u}r Informatik},
  address =	{Dagstuhl, Germany},
  URL =		{https://drops.dagstuhl.de/opus/volltexte/2021/13927},
  URN =		{urn:nbn:de:0030-drops-139273},
  doi =		{10.4230/LIPIcs.ITP.2021.32},
  annote =	{Keywords: formal verification, Coq, HTTP, deep specification}
}

Keywords: formal verification, Coq, HTTP, deep specification
Collection: 12th International Conference on Interactive Theorem Proving (ITP 2021)
Issue Date: 2021
Date of publication: 21.06.2021
Supplementary Material: The webserver code, proofs, and a step-by-step guide can be found at:
Software (Source Code): https://zenodo.org/record/4697379


DROPS-Home | Fulltext Search | Imprint | Privacy Published by LZI