Further
Verified Compilers
Imp ======[compile]======> Asm
| |
V V
itree MemE itree (RegE +' MemE)
| |
| V
| stateT reg (itree MemE)
| |
V V
stateT mem (itree voidE) ≈[R] stateT reg (stateT mem (itree voidE))
Where R is the relationship between source "memory" and target "memory".
See the Interaction Trees library tutorial.
Vellvm - LLVM IR Semantics in Coq
Large-scale formal semantics for the LLVM IR programming language.
Pointers to Related Work
Interaction Trees & Their Uses:
- Interaction Trees POPL 2020
- C4: Verified Transactional Objects OOPSLA 2022
- Vellvm ICFP 2021
- DeepSpec WebServer / Network Testing
Monadic Reasoning:
- Dijkstra Monads (For All / For Free / Forever / ...) Maillaird, Hrițcu, et al._
- Formal Reasoning About Layered Monadic Interpreters Yoon, Zakowski, Zdancewic ICFP 22
Relational Reasoning:
- Simple relational correctness proofs for static analyses and program transformations Benton
- The Next 700 Relational Program Logics Maillaird, Hrițcu, et al._