-
Alban Gruin authored
Signed-off-by:
Alban Gruin <alban.gruin@irit.fr>
Alban Gruin authoredSigned-off-by:
Alban Gruin <alban.gruin@irit.fr>
README 1.43 KiB
# Store buffer proofs in Coq This repository contains proofs related to store buffers in Coq. ## Files In `src/` stand multiple files: - `definitions.v`: defines multiple common types, functions and lemmas. Some may be useless. - `utils.v`: defines missing theorems and lemmas in the stdlib. Some may also be useless. - `storebuffer.v`: defines a parallel store buffer with granular locking, and proves that it is monotonic. The proofs has multiple problems (it does not take store buffer state changes into account, for instance), so this file should be disregarded altogether. Also, lots of useless theorems. See this as a playing ground for the next proofs. - `correct_storebuffer.v`: defines a parallel store buffer with full locking, and proves that it is monotonic. - `granular_sb.v`: another parallel store buffer with granular locking, but this time prove that it does not work when taking the state of the store buffer into account. This is done by finding a counter-example. ## Dependencies This project was written with Coq 8.15.2, but it should work with Coq 8.14+. It will not work with older versions of Coq, because it uses some theorems that appeared in Coq 8.14. No external dependencies are used, and proofs are made in Ltac. ## Building Assuming that you have Coq 8.14+ in your path. Execute the following commands in the root of the project: ``` sh $ coq_makefile -f _CoqProject -o Makefile $ make ```