Modular Semantics and Metatheory for LLVM IR
Degree type
Graduate group
Discipline
Subject
Formal verification
LLVM IR
Monads
Funder
Grant number
License
Copyright date
Distributor
Related resources
Author
Contributor
Abstract
The appealing guarantees of formally verified software comes in tandem with the high cost of verification. To reduce the cost of formal verification, modularity is crucial because it eases both the elaboration and reuse of proofs. This thesis focuses on developing a modular semantics and metatheory for realistic low-level languages, with a focus on LLVM IR. First, we define VIR, a modular and executable semantics for a large sequential subset of LLVM IR, which is based on layered, monadic interpreters. Unlike a traditional small-step semantics, VIR has an executable semantics which can be extracted into an executable definitional interpreter. Second, we develop a formal metatheory for reasoning about layered interpreters, giving an extensible theory for lifting interpreters and structural rules, characterizing interpretable monads and a relational reasoning framework for reasoning about equivalences across interpretation. Finally, we develop a relational separation logic framework for verifying program transformations on VIR, with a fresh perspective on verifying transformations with external calls.