Skip to content

ramonfmir/verified_transfo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

Verification of Data Layout Transformations in Coq

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published