Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Ben Simner

dblp:202/8946 · DBLP profile ↗
← Back
8ranked-venue papers
3as first author
6since 2021 · last 2025
0009-0000-8431-9577ORCID · corroborated

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 7 · 3 first-author · 5 since 2021Theory of computation · 3 · 2 since 2021Systems, architecture and hardware · 1 · 1 first-author · 1 since 2021

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Computer architecture, parallel and distributed computing, and storage systems
2 papers
Processor architecture and microarchitecture · 59% Memory systems · 41%
Software engineering, system software, and programming languages
2 papers
Software testing · 61% Concurrent programming · 20% Program verification · 18%
Theoretical computer science
1 paper
Automated reasoning and model checking · 50% Logic in computer science · 50%
Network and information security
1 paper
Systems and software security · 100%

Topics — the 10 heaviest of 11, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Systems and software security › virtualization security
hypervisor security
0.912025
Ghost in the Android Shell: Pragmatic Test-oracle Specification of a Production Hypervisor · SOSP 2025
Processor architecture and microarchitecture
exception handling
0.912025
Precise exceptions in relaxed architectures · ISCA 2025
Memory systems › memory consistency
memory consistency model
0.912025
Precise exceptions in relaxed architectures · ISCA 2025
Processor architecture and microarchitecture › exception handling
precise interrupts
0.912025
Precise exceptions in relaxed architectures · ISCA 2025
Memory systems › memory consistency › memory consistency model
weak memory model
0.912025
Precise exceptions in relaxed architectures · ISCA 2025
Processor architecture and microarchitecture
instruction set architecture
0.822025
Isla: Integrating Full-Scale ISA Semantics and Axiomatic Concurrency Models · CAV (1) 2021
Precise exceptions in relaxed architectures · ISCA 2025
Logic in computer science › concurrency theory
concurrency semantics
0.512021
Isla: Integrating Full-Scale ISA Semantics and Axiomatic Concurrency Models · CAV (1) 2021
Automated reasoning and model checking
hardware verification
0.512021
Isla: Integrating Full-Scale ISA Semantics and Axiomatic Concurrency Models · CAV (1) 2021
Concurrent programming
concurrency verification
0.312017
Starling: Lightweight Concurrency Verification with Views · CAV (1) 2017
Program verification › hardware verification
functional verification
0.312025
Ghost in the Android Shell: Pragmatic Test-oracle Specification of a Production Hypervisor · SOSP 2025

Methods — techniques the papers use, named apart from their topics

test-oracle specification · 1.7symbolic execution · 1.0litmus testing · 1.0model execution tooling · 0.9axiomatic modeling · 0.9separation logic · 0.3
YearPublicationVenuePosition
2025 Precise exceptions in relaxed architectures
abstract
To manage exceptions, software relies on a key architectural guarantee, precision: that exceptions appear to execute between instructions. However, this definition, dating back over 60 years, fundamentally assumes a sequential programmers model. Modern architectures such as Arm-A with programmer-observable relaxed behaviour make such a naive definition inadequate, and it is unclear exactly what guarantees programmers have on exception entry and exit.In this paper, we clarify the concepts needed to discuss exceptions in the relaxed-memory setting – a key aspect of precisely specifying the architectural interface between hardware and software. We explore the basic relaxed behaviour across exception boundaries, and the semantics of external aborts, using Arm-A as a representative modern architecture. We identify an important problem, present yet unexplored for decades: pinning down what it means for exceptions to be precise in a relaxed setting. We describe key phenomena that any definition should account for. We develop an axiomatic model for Arm-A precise exceptions, tooling for axiomatic model execution, and a library of tests. Finally we explore the relaxed semantics of software-generated interrupts, as used in sophisticated programming patterns, and sketch how they too could be modelled.
Ben Simner, Alasdair Armstrong, Thomas Bauereiß, Brian Campbell 0001, Ohad Kammar, Jean Pichon-Pharabod, Peter Sewell
ISCA1
2025 Ghost in the Android Shell: Pragmatic Test-oracle Specification of a Production Hypervisor
abstract
Developing systems code that robustly provides its intended security guarantees remains very challenging: conventional practice does not suffice, and full functional verification, while now feasible in some contexts, has substantial barriers to entry and use.
Kayvan Memarian, Ben Simner, David Kaloper-Mersinjak, Thibaut Pérami, Peter Sewell
SOSP2
2024 Isla: integrating full-scale ISA semantics and axiomatic concurrency models (extended version)
abstract
Abstract Architecture specifications such as Armv8-A and RISC-V are the ultimate foundation for software verification and the correctness criteria for hardware verification. They should define the allowed sequential and relaxed-memory concurrency behaviour of programs, but hitherto there has been no integration of full-scale instruction-set architecture (ISA) semantics with axiomatic concurrency models, either in mathematics or in tools. These ISA semantics can be surprisingly large and intricate, e.g. 100k $$+$$ + lines for Armv8-A. In this paper we present a tool, Isla, for computing the allowed behaviours of concurrent litmus tests with respect to full-scale ISA definitions, in the Sail language, and arbitrary axiomatic relaxed-memory concurrency models, in the Cat language. It is based on a generic symbolic engine for Sail ISA specifications. We equip the tool with a web interface to make it widely accessible, and illustrate and evaluate it for Armv8-A and RISC-V. The symbolic execution engine is valuable also for other verification tasks: it has been used in automated ISA test generation for the Arm Morello prototype architecture, extending Armv8-A with CHERI capabilities, and for Iris program-logic reasoning about binary code above the Armv8-A and RISC-V ISA specifications. By using full-scale and authoritative ISA semantics, Isla lets one evaluate litmus tests using arbitrary user instructions with high confidence. Moreover, because these ISA specifications give detailed and validated definitions of the sequential aspects of systems functionality, as used by hypervisors and operating systems, e.g. instruction fetch, exceptions, and address translation, our tool provides a basis for developing concurrency semantics for these. We demonstrate this for the Armv8-A instruction-fetch and virtual-memory models and examples of Simner et al.
Alasdair Armstrong, Brian Campbell 0001, Ben Simner, Christopher Pulte, Peter Sewell
Formal Methods Syst. Des.3
2023 Wait-Free Weak Reference Counting
abstract
Reference counting is a common approach to memory management. One challenge with reference counting is cycles that prevent objects from being deallocated. Systems such as the C++ and Rust standard libraries introduce two types of reference: strong and weak. A strong reference allows access to the object and prevents the object from being deallocated, while a weak reference only prevents deallocation. A weak reference can be upgraded to provide a strong reference provided there are other strong references to the object. Hence, the upgrade operation is partial, and may fail dynamically. The classic implementation of this upgrade operation is not wait-free, that is, it can take arbitrarily long to complete if there is contention on the reference count.
Matthew J. Parkinson, Sylvan Clebsch, Ben Simner
ISMM3
2022 Relaxed virtual memory in Armv8-A
abstract
Abstract Virtual memory is an essential mechanism for enforcing security boundaries, but its relaxed-memory concurrency semantics has not previously been investigated in detail. The concurrent systems code managing virtual memory has been left on an entirely informal basis, and OS and hypervisor verification has had to make major simplifying assumptions. We explore the design space for relaxed virtual memory semantics in the Armv8-A architecture, to support future system-software verification. We identify many design questions, in discussion with Arm; develop a test suite, including use cases from the pKVM production hypervisor under development by Google; delimit the design space with axiomatic-style concurrency models; prove that under simple stable configurations our architectural model collapses to previous “user” models; develop tooling to compute allowed behaviours in the model integrated with the full Armv8-A ISA semantics; and develop a hardware test harness. This lays out some of the main issues in relaxed virtual memory bringing these security-critical systems phenomena into the domain of programming-language semantics and verification with foundational architecture semantics.
Ben Simner, Alasdair Armstrong, Jean Pichon-Pharabod, Christopher Pulte, Richard Grisenthwaite, Peter Sewell
ESOP1
2021 Isla: Integrating Full-Scale ISA Semantics and Axiomatic Concurrency Models
abstract
Abstract Architecture specifications such as Armv8-A and RISC-V are the ultimate foundation for software verification and the correctness criteria for hardware verification. They should define the allowed sequential and relaxed-memory concurrency behaviour of programs, but hitherto there has been no integration of full-scale instruction-set architecture (ISA) semantics with axiomatic concurrency models, either in mathematics or in tools. These ISA semantics can be surprisingly large and intricate, e.g. 100k+ lines for Armv8-A. In this paper we present a tool, Isla, for computing the allowed behaviours of concurrent litmus tests with respect to full-scale ISA definitions, in Sail, and arbitrary axiomatic relaxed-memory concurrency models, in the Cat language. It is based on a generic symbolic engine for Sail ISA specifications, which should be valuable also for other verification tasks. We equip the tool with a web interface to make it widely accessible, and illustrate and evaluate it for Armv8-A and RISC-V. By using full-scale and authoritative ISA semantics, this lets one evaluate litmus tests using arbitrary user instructions with high confidence. Moreover, because these ISA specifications give detailed and validated definitions of the sequential aspects of systems functionality, as used by hypervisors and operating systems, e.g. instruction fetch, exceptions, and address translation, our tool provides a basis for developing concurrency semantics for these. We demonstrate this for the Armv8-A instruction-fetch model and self-modifying code examples of Simner et al.
Alasdair Armstrong, Brian Campbell 0001, Ben Simner, Christopher Pulte, Peter Sewell
CAV (1)3
2020 ARMv8-A System Semantics: Instruction Fetch in Relaxed Architectures
abstract
Abstract Computing relies on architecture specifications to decouple hardware and software development. Historically these have been prose documents, with all the problems that entails, but research over the last ten years has developed rigorous and executable-as-test-oracle specifications of mainstream architecture instruction sets and “user-mode” concurrency, clarifying architectures and bringing them into the scope of programming-language semantics and verification. However, the system semantics, of instruction-fetch and cache maintenance, exceptions and interrupts, and address translation, remains obscure, leaving us without a solid foundation for verification of security-critical systems software. In this paper we establish a robust model for one aspect of system semantics: instruction fetch and cache maintenance for ARMv8-A. Systems code relies on executing instructions that were written by data writes, e.g. in program loading, dynamic linking, JIT compilation, debugging, and OS configuration, but hardware implementations are often highly optimised, e.g. with instruction caches, linefill buffers, out-of-order fetching, branch prediction, and instruction prefetching, which can affect programmer-observable behaviour. It is essential, both for programming and verification, to abstract from such microarchitectural details as much as possible, but no more. We explore the key architecture design questions with a series of examples, discussed in detail with senior Arm staff; capture the architectural intent in operational and axiomatic semantic models, extending previous work on “user-mode” concurrency; make these models executable as test oracles for small examples; and experimentally validate them against hardware behaviour (finding a bug in one hardware device). We thereby bring these subtle issues into the mathematical domain, clarifying the architecture and enabling future work on system software verification.
Ben Simner, Shaked Flur, Christopher Pulte, Alasdair Armstrong, Jean Pichon-Pharabod, Luc Maranget, Peter Sewell
ESOP1
2017 Starling: Lightweight Concurrency Verification with Views
Matt Windsor, Mike Dodds, Ben Simner, Matthew J. Parkinson
CAV (1)3