Download PDFOpen PDF in browser

Verified Erasure Correction in Coq with MathComp and VST

EasyChair Preprint no. 8636

21 pagesDate: August 11, 2022


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 of errors by encoding the data with redundant parity information determined by an error-correcting code. There are dozens of classes of such codes, many based on sophisticated mathematics, making them difficult to verify using automated tools. In this paper, we present a formal, machine-checked proof of a C implementation of FEC based on Reed-Solomon coding. The C code has been actively used in network defenses for over 25 years, but the algorithm it implements was partially unpublished, and it uses certain optimizations whose correctness was unknown even to the code's authors. We use Coq's Mathematical Components library to prove the algorithm's correctness and the Verified Software Toolchain to prove that the C program correctly implements this algorithm, connecting both using a modular, well-encapsulated structure that could easily be used to verify a high-speed, hardware version of this FEC. This is the first end-to-end, formal proof of a real-world FEC implementation; we verified all previously unknown optimizations and found a latent bug in the code.

Keyphrases: Functional correctness verification, interactive theorem proving, Reed-Solomon coding

BibTeX entry
BibTeX does not have the right entry for preprints. This is a hack for producing the correct reference:
  author = {Joshua M. Cohen and Qinshi Wang and Andrew W. Appel},
  title = {Verified Erasure Correction in Coq with MathComp and VST},
  howpublished = {EasyChair Preprint no. 8636},

  year = {EasyChair, 2022}}
Download PDFOpen PDF in browser