Alasdair Armstrong

alasdair.armstrong@cl.cam.ac.uk

Computer Laboratory
University of Cambridge
JJ Thomson Avenue
Cambridge
CB3 0FD, UK

I'm currently a research assistant at Cambridge University working with Prof. Peter Sewell on the REMS project. My research focuses on large-scale semantics for instruction set architecture (ISA) definitions. ISAs represent the contract between hardware and software, as used by software like operating systems, hypervisors, and compilers.

I previously completed my PhD at the University of Sheffield under the supervision of Dr. Georg Struth, working on algebraic formal methods and rely-guarantee. I've also worked on transactional memory, verifying in Isabelle/HOL hybrid transactional memory algorithms that mix hardware and software transactions, as well as specifying correctness conditions for transactions with relaxed memory concurrency.

Sail

Much of my research on ISA specifications focuses on the Sail language and Isla tool for relaxed concurrency. Sail is a domain-specific language for specifying ISAs that combines an intentionally simple semantics, with lightweight dependent types for bitvector widths to enable safely writing specifications that are extremely configurable and often very polymorphic over such bitvector widths. Isla allows symbolically executing Sail specifications, computing all possible allowed behaviours, which can then be combined with an arbitrary axiomatic concurrency model to evaluate concurrency litmus tests that use any architectural feature defined in Sail.

Sail is used for the RISC-V golden model, now developed within RISC-V international. It's also highly compatible with Arm's ASL language, which enabled our work on verifying capability secuirity properties as part of the UKRI funded Morello program.

Publications

Thesis

My thesis is available online at the White Rose eThesis repository here.

Associated Isabelle theory files may be found on my github page.

Archive of Formal Proofs