Integration verification across software and hardware for a simple embedded system
The interfaces between layers of a system are susceptible to bugs if developers of adjacent
layers proceed under subtly different assumptions. Formal verification of two layers against …
layers proceed under subtly different assumptions. Formal verification of two layers against …
Verifying an HTTP key-value server with interaction trees and VST
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 …
The server interacts with clients using a subset of the HTTP/1.1 protocol and is specified and …
Igloo: soundly linking compositional refinement and separation logic for distributed system verification
Lighthouse projects like CompCert, seL4, IronFleet, and DeepSpec have demonstrated that
full system verification is feasible by establishing a refinement between an abstract system …
full system verification is feasible by establishing a refinement between an abstract system …
An Iris instance for verifying CompCert C programs
Iris is a generic separation logic framework that has been instantiated to reason about a
wide range of programming languages and language features. Most Iris instances are …
wide range of programming languages and language features. Most Iris instances are …
Formally verified simulations of state-rich processes using interaction trees in Isabelle/HOL
Simulation and formal verification are important complementary techniques necessary in
high assurance model-based systems development. In order to support coherent results, it is …
high assurance model-based systems development. In order to support coherent results, it is …
PureCake: A verified compiler for a lazy functional language
We present PureCake, a mechanically-verified compiler for PureLang, a lazy, purely
functional programming language with monadic effects. PureLang syntax is Haskell-like and …
functional programming language with monadic effects. PureLang syntax is Haskell-like and …
Program adverbs and Tlön embeddings
Free monads (and their variants) have become a popular general-purpose tool for
representing the semantics of effectful programs in proof assistants. These data structures …
representing the semantics of effectful programs in proof assistants. These data structures …
Bringing Iris into the Verified Software Toolchain
W Mansky - arXiv preprint arXiv:2207.06574, 2022 - arxiv.org
The Verified Software Toolchain (VST) is a system for proving correctness of C programs
using separation logic. By connecting to the verified compiler CompCert, it produces the …
using separation logic. By connecting to the verified compiler CompCert, it produces the …
Verified sequential malloc/free
AW Appel, DA Naumann - Proceedings of the 2020 ACM SIGPLAN …, 2020 - dl.acm.org
We verify the functional correctness of an array-of-bins (segregated free-lists) single-thread
malloc/free system with respect to a correctness specification written in separation logic. The …
malloc/free system with respect to a correctness specification written in separation logic. The …
Verified erasure correction in Coq with MathComp and VST
Most methods of data transmission and storage are prone to errors, leading to data loss.
Forward erasure correction (FEC) is a method to allow data to be recovered in the presence …
Forward erasure correction (FEC) is a method to allow data to be recovered in the presence …