Robert Dockins

dblp:60/750 · DBLP profile ↗
← Back
10ranked-venue papers
3as first author
2since 2021 · last 2026
0009-0003-8767-0639ORCID · corroborated

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

Software engineering, systems software and programming languages · 7 · 2 first-author · 1 since 2021Theory of computation · 2 · 1 first-author · 1 since 2021Artificial intelligence and machine learning · 1
YearPublicationVenuePosition
2026 Nitro Isolation Engine: Formally Verifying a Production Hypervisor (Invited Talk)
abstract
Cloud computing relies on hypervisors to enforce isolation between co-tenanted virtual machines. Hypervisors are therefore critical security infrastructure, and assurance of their correctness is paramount. Traditional engineering techniques - code review, testing, fuzzing - provide strong assurance but cannot exhaustively verify that isolation holds across all possible execution paths. Formal verification extends and complements these approaches by establishing mathematical guarantees about system behaviour. This talk presents our experience applying interactive theorem proving to verify a production hypervisor component: the Nitro Isolation Engine. This is a trusted, minimalist computing base written in Rust, enforcing isolation between virtual machines on AWS Graviton5 EC2 instances. Designed for verification from inception, we have specified the intended behaviour of this component and verified correctness in the Isabelle/HOL interactive theorem prover, producing approximately 330,000 lines of machine-checked models and proofs, and establishing three key classes of property: 1) Functional correctness: The system behaves as specified for all operations including virtual machine creation, memory mapping, and abort handling. Our total verification approach additionally establishes memory-safety, termination, and absence of runtime errors. 2) Confidentiality: A noninterference-style property demonstrates that guest virtual machine state remains hidden from an expansive definition of observer monitoring system actions, formalised as indistinguishability preservation up to permitted declassification flows. 3) Integrity: Guest virtual machine private state is unaffected by operations on distinct virtual machines. Currently, our proof coverage extends to verification of the core virtual machine-management hypercalls, guest power management, various utility hypercalls, and a subset of data, instruction, and asynchronous abort handling, and will continue to expand to cover more functionality including PCI device management and virtual GIC (Generic Interrupt Controller) handling. The talk will discuss the verification approach, key proof techniques, and challenges in applying formal methods to production systems. Note that this work builds on decades of academic research across interactive theorem proving, formal specification, separation logic and its automation, and programming language semantics.
Hanno Becker, Nathan Chong, Robert Dockins, Jim Grundy, Jason Z. S. Hu, Ike Mulder, Dominic P. Mulligan, Paul Mure, Bryan Parno, Lawrence C. Paulson, Konrad Slind
ITP3
2023 Trustworthy Runtime Verification via Bisimulation (Experience Report)
abstract
When runtime verification is used to monitor safety-critical systems, it is essential that monitoring code behaves correctly. The Copilot runtime verification framework pursues this goal by automatically generating C monitor programs from a high-level DSL embedded in Haskell. In safety-critical domains, every piece of deployed code must be accompanied by an assurance argument that is convincing to human auditors. However, it is difficult for auditors to determine with confidence that a compiled monitor cannot crash and implements the behavior required by the Copilot semantics. In this paper we describe CopilotVerifier, which runs alongside the Copilot compiler, generating a proof of correctness for the compiled output. The proof establishes that a given Copilot monitor and its compiled form produce equivalent outputs on equivalent inputs, and that they either crash in identical circumstances or cannot crash. The proof takes the form of a bisimulation broken down into a set of verification conditions. We leverage two pieces of SMT-backed technology: the Crucible symbolic execution library for LLVM and the What4 solver interface library. Our results demonstrate that dramatically increased compiler assurance can be achieved at moderate cost by building on existing tools. This paves the way to our ultimate goal of generating formal assurance arguments that are convincing to human auditors.
Ryan G. Scott, Mike Dodds, Ivan Perez 0001, Alwyn Goodloe, Robert Dockins
Proc. ACM Program. Lang.5
2019 Dependently typed Haskell in industry (experience report)
abstract
Recent versions of the Haskell compiler GHC have a number of advanced features that allow many idioms from dependently typed programming to be encoded. We describe our experiences using this "dependently typed Haskell" to construct a performance-critical library that is a key component in a number of verification tools. We have discovered that it can be done, and it brings significant value, but also at a high cost. In this experience report, we describe the ways in which programming at the edge of what is expressible in Haskell's type system has brought us value, the difficulties that it has imposed, and some of the ways we coped with the difficulties.
David Thrane Christiansen, Iavor S. Diatchki, Robert Dockins, Joe Hendrix, Tristan Ravitch
Proc. ACM Program. Lang.3
2014 Suppl: A Flexible Language for Policies
Robert Dockins, Andrew P. Tolmach
APLAS1
2014 Verified Compilation for Shared-Memory C
Lennart Beringer, Gordon Stewart 0001, Robert Dockins, Andrew W. Appel
ESOP3
2014 Formalized, Effective Domain Theory in Coq
Robert Dockins
ITP1
2012 A List-Machine Benchmark for Mechanized Metatheory
Andrew W. Appel, Robert Dockins, Xavier Leroy
J. Autom. Reason.2
2010 A Logical Mix of Approximation and Separation
Aquinas Hobor, Robert Dockins, Andrew W. Appel
APLAS2
2010 A theory of indirection via approximation
abstract
Building semantic models that account for various kinds of indirect reference has traditionally been a difficult problem. Indirect reference can appear in many guises, such as heap pointers, higher-order functions, object references, and shared-memory mutexes.
Aquinas Hobor, Robert Dockins, Andrew W. Appel
POPL2
2009 A Fresh Look at Separation Algebras and Share Accounting
Robert Dockins, Aquinas Hobor, Andrew W. Appel
APLAS1