This research group focuses on mechanised language specification and program verification.
We are currently exploring what it means to build, evaluate, and trust a fully mechanised language specification, using WebAssembly as the real-world example language. This involves developing library specifications which must be robust with respect to the environment: implementations should not leak; and specifications should be useful to the client.
We are also developing compositional program reasoning techniques that scale, leading to both tool-independent foundational theory and automatic tools for verifying properties of programs. In particular, we focus on separation logics and compositional symbolic execution, the formal specification of WebAssembly, and concurrency separation logics.
Gillian Debugging: Swinging Through the (Compositional Symbolic Execution) Trees
Tools and Algorithms for the Construction and Analysis of Systems (TACAS) 2026
Designing and Maintaining an Efficient WebAssembly Mechanisation
Ph.D. Thesis, Imperial College London, 2025
Compositional Symbolic Execution for the Next 700 Memory Models
OOPSLA 2025
A Hybrid Approach to Semi-automated Rust Verification
PLDI 2025
Gillian: Foundations, Implementation, and Applications of Compositional Symbolic Execution
Ph.D. Thesis, Imperial College London, 2025