Trace-based Verification of Imperative Programs with I/O
| Citations: | 1 - 0 self |
BibTeX
@MISC{Malecha_trace-basedverification,
author = {Gregory Malecha and Greg Morrisett and Ryan Wisnesky},
title = {Trace-based Verification of Imperative Programs with I/O},
year = {}
}
OpenURL
Abstract
In this paper we demonstrate how to prove the correctness of systems implemented using lowlevel imperative features like pointers, files, and socket I/O with respect to high level I/O protocol descriptions by using the Coq proof assistant. We present a web-based course gradebook application developed with Ynot, a Coq library for verified imperative programming. We add a dialog-based I/O system to Ynot, and we extend Ynot’s underlying Hoare logic with event traces to reason about I/O and protocol behavior. Expressive abstractions allow the modular verification of both high level specifications like privacy guarantees and low level properties like data structure pointer invariants.







