/verified_transfo

Verification of Data Layout Transformations in Coq

Primary LanguageCoqMIT LicenseMIT

Verification of Data Layout Transformations in Coq

Data layout transformations such as array-of-structures to structure-of-arrays, peeling and splitting of records, can lead to significant performance improvement. Yet, these transformations are error-prone and hard to debug. In this work, we aim at formalizing in Coq the correctness of such transformations.

To that end, we consider a C-like language with arrays, records, and pointers. We assign this language both a high-level semantics, where record fields are accessed by name, and a low-level semantics, based on low-level pointers. Ultimately, transformations could be defined as type-directed source-to-source translations. For the moment, to simplify the proof, we describe them as relations, and prove a forward simulation result.

Requirements

The only system requirements to be able to compile the files are:

In order to install the last one we recommend doing it through OPAM and simply add -R $HOME/.opam/4.05.0/lib/coq/user-contrib/TLC TLC in your _CoqProject file.

Authors