Verifying an HTTP key-value server with interaction trees and VST

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

Research output: Chapter in Book/Report/Conference proceedingConference contribution

16 Scopus citations

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.

Original languageEnglish (US)
Title of host publication12th International Conference on Interactive Theorem Proving, ITP 2021
EditorsLiron Cohen, Cezary Kaliszyk
PublisherSchloss Dagstuhl- Leibniz-Zentrum fur Informatik GmbH, Dagstuhl Publishing
ISBN (Electronic)9783959771887
DOIs
StatePublished - Jun 1 2021
Event12th International Conference on Interactive Theorem Proving, ITP 2021 - Virtual, Rome, Italy
Duration: Jun 29 2021Jul 1 2021

Publication series

NameLeibniz International Proceedings in Informatics, LIPIcs
Volume193
ISSN (Print)1868-8969

Conference

Conference12th International Conference on Interactive Theorem Proving, ITP 2021
Country/TerritoryItaly
CityVirtual, Rome
Period6/29/217/1/21

All Science Journal Classification (ASJC) codes

  • Software

Keywords

  • Coq
  • Deep specification
  • Formal verification
  • HTTP

Fingerprint

Dive into the research topics of 'Verifying an HTTP key-value server with interaction trees and VST'. Together they form a unique fingerprint.

Cite this