VLDB 2026 Research / reviewers in the wild / expert
James Brotherston
dblp:77/3809
· DBLP profile ↗
29ranked-venue papers
21as first author
3since 2021 · last 2025
0000-0002-7536-4496ORCID · reported
Domains — the database's venue-derived domains; a paper can count in several
Theory of computation · 17 · 11 first-author · 1 since 2021Software engineering, systems software and programming languages · 12 · 10 first-author · 2 since 2021Artificial intelligence and machine learning · 5 · 3 first-authorApplied, interdisciplinary, general and emerging computing · 1 · 1 first-author
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2025 | The failure of cut-elimination in cyclic proof for first-order logic with inductive definitionsabstractAbstract A cyclic proof system is a proof system whose proof figure is a tree with cycles. The cut-elimination in a proof system is fundamental. It is conjectured that the cut-elimination in the cyclic proof system for first-order logic with inductive definitions does not hold. This paper shows that the conjecture is correct by giving a sequent not provable without the cut rule but provable in the cyclic proof system. Yukihiro Oda, James Brotherston, Makoto Tatsuta |
J. Log. Comput. | 2 |
| 2024 | Mix Testing: Specifying and Testing ABI Compatibility of C/C++ Atomics ImplementationsabstractThe correctness of complex software depends on the correctness of both the source code and the compilers that generate corresponding binary code. Compilers must do more than preserve the semantics of a single source file: they must ensure that generated binaries can be composed with other binaries to form a final executable. The compatibility of composition is ensured using an Application Binary Interface (ABI), which specifies details of calling conventions, exception handling, and so on. Unfortunately, there are no official ABIs for concurrent programs, so different atomics mappings, although correct in isolation, may induce bugs when composed. Indeed, today, mixing binaries generated by different compilers can lead to an erroneous resulting binary. We present mix testing : a new technique designed to find compiler bugs when the instructions of a C/C++ test are separately compiled for multiple compatible architectures and then mixed together. We define a class of compiler bugs, coined mixing bugs , that arise when parts of a program are compiled separately using different mappings from C/C++ atomic operations to assembly sequences. To demonstrate the generality of mix testing, we have designed and implemented a tool, atomic-mixer , which we have used: (a) to reproduce one existing non-mixing bug that state-of-the-art concurrency testing tools are limited to being able to find (showing that atomic-mixer at least meets the capabilities of these tools), and (b) to find four previously-unknown mixing bugs in LLVM and GCC, and one prospective mixing bug in mappings proposed for the Java Virtual Machine. Lastly, we have worked with engineers at Arm to specify, for the first time, an atomics ABI for Armv8, and have used atomic-mixer to validate the LLVM and GCC compilers against it. Luke Geeson, James Brotherston, Wilco Dijkstra, Alastair F. Donaldson, Lee Smith, Tyler Sorensen 0001, John Wickerson |
Proc. ACM Program. Lang. | 2 |
| 2021 | A Compositional Deadlock Detector for Android JavaabstractWe develop a static deadlock analysis for commercial Android Java applications, of sizes in the tens of millions of LoC, under active development at Facebook. The analysis runs primarily at code-review time, on only the modified code and its dependents; we aim at reporting to developers in under 15 minutes.To detect deadlocks in this setting, we first model the real language as an abstract language with balanced re-entrant locks, nondeterministic iteration and branching, and non-recursive procedure calls. We show that the existence of a deadlock in this abstract language is equivalent to a certain condition over the sets of critical pairs of each program thread; these record, for all possible executions of the thread, which locks are currently held at the point when a fresh lock is acquired. Since the critical pairs of any program thread is finite and computable, the deadlock detection problem for our language is decidable, and in NP.We then leverage these results to develop an open-source implementation of our analysis adapted to deal with real Java code. The core of the implementation is an algorithm which computes critical pairs in a compositional, abstract interpretation style, running in quasi-exponential time. Our analyser is built in the Infer verification framework and has been in industrial deployment for over two years; it has seen over two hundred fixed deadlock reports with a report fix rate of ~54%. James Brotherston, Paul Brunet, Nikos Gorogiannis, Max I. Kanovich |
ASE | 1 |
| 2020 | Reasoning over Permissions Regions in Concurrent Separation LogicabstractWe propose an extension of separation logic with fractional permissions, aimed at reasoning about concurrent programs that share arbitrary regions or data structures in memory. In existing formalisms, such reasoning typically either fails or is subject to stringent side conditions on formulas (notably precision ) that significantly impair automation. We suggest two formal syntactic additions that collectively remove the need for such side conditions: first, the use of both “weak” and “strong” forms of separating conjunction, and second, the use of nominal labels from hybrid logic. We contend that our suggested alterations bring formal reasoning with fractional permissions in separation logic considerably closer to common pen-and-paper intuition, while imposing only a modest bureaucratic overhead. James Brotherston, Diana Costa 0001, Aquinas Hobor, John Wickerson |
CAV (2) | 1 |
| 2020 | Automatically Verifying Temporal Properties of Pointer Programs with Cyclic ProofabstractIn this article, we investigate the automated verification of temporal properties of heap-aware programs. We propose a deductive reasoning approach based on cyclic proof . Judgements in our proof system assert that a program has a certain temporal property over memory state assertions, written in separation logic with user-defined inductive predicates, while the proof rules of the system unfold temporal modalities and predicate definitions as well as symbolically executing programs. Cyclic proofs in our system are, as usual, finite proof graphs subject to a natural, decidable soundness condition, encoding a form of proof by infinite descent. We present a proof system tailored to proving CTL properties of nondeterministic pointer programs, and then adapt this system to handle fair execution conditions. We show both versions of the system to be sound, and provide an implementation of each in the Cyclist theorem prover, yielding an automated tool that is capable of automatically discovering proofs of (fair) temporal properties of pointer programs. Experimental evaluation of our tool indicates that our approach is viable, and offers an interesting alternative to traditional model checking techniques. Gadi Tellez, James Brotherston |
J. Autom. Reason. | 2 |
| 2018 | On the Complexity of Pointer Arithmetic in Separation Logic
James Brotherston, Max I. Kanovich |
APLAS | 1 |
| 2017 | Biabduction (and Related Problems) in Array Separation Logic
James Brotherston, Nikos Gorogiannis, Max I. Kanovich |
CADE | 1 |
| 2017 | Automatically Verifying Temporal Properties of Pointer Programs with Cyclic Proof
Gadi Tellez, James Brotherston |
CADE | 2 |
| 2017 | Automatic cyclic termination proofs for recursive procedures in separation logicabstractWe describe a formal verification framework and tool implementation, based upon cyclic proofs, for certifying the safe termination of imperative pointer programs with recursive procedures. Our assertions are symbolic heaps in separation logic with user defined inductive predicates; we employ explicit approximations of these predicates as our termination measures. This enables us to extend cyclic proof to programs with procedures by relating these measures across the pre- and postconditions of procedure calls. Reuben N. S. Rowe, James Brotherston |
CPP | 2 |
| 2017 | Realizability in Cyclic Proof: Extracting Ordering Information for Infinite Descent
Reuben N. S. Rowe, James Brotherston |
TABLEAUX | 2 |
| 2016 | Model checking for symbolic-heap separation logic with inductive predicatesabstractWe investigate the *model checking* problem for symbolic-heap separation logic with user-defined inductive predicates, i.e., the problem of checking that a given stack-heap memory state satisfies a given formula in this language, as arises e.g. in software testing or runtime verification. First, we show that the problem is *decidable*; specifically, we present a bottom-up fixed point algorithm that decides the problem and runs in exponential time in the size of the problem instance. Second, we show that, while model checking for the full language is EXPTIME-complete, the problem becomes NP-complete or PTIME-solvable when we impose natural syntactic restrictions on the schemata defining the inductive predicates. We additionally present NP and PTIME algorithms for these restricted fragments. Finally, we report on the experimental performance of our procedures on a variety of specifications extracted from programs, exercising multiple combinations of syntactic restrictions. James Brotherston, Nikos Gorogiannis, Max I. Kanovich, Reuben N. S. Rowe |
POPL | 1 |
| 2015 | Sub-classical Boolean Bunched Logics and the Meaning of ParabstractWe investigate intermediate logics between the bunched logics Boolean BI and Classical BI, obtained by combining classical propositional logic with various flavours of Hyland and De Paiva's full intuitionistic linear logic. Thus, in addition to the usual multiplicative conjunction (with its adjoint implication and unit), our logics also feature a multiplicative disjunction (with its adjoint co-implication and unit). The multiplicatives behave "sub-classically", in that disjunction and conjunction are related by a weak distribution principle, rather than by De Morgan equivalence. We formulate a Kripke semantics, covering all our sub-classical bunched logics, in which the multiplicatives are naturally read in terms of resource operations. Our main theoretical result is that validity according to this semantics coincides with provability in a corresponding Hilbert-style proof system. Our logical investigation sheds considerable new light on how one can understand the multiplicative disjunction, better known as linear logic's "par", in terms of resource operations. In particular, and in contrast to the earlier Classical BI, the models of our logics include the heap-like memory models of separation logic, in which disjunction can be interpreted as a property of intersection operations over heaps. James Brotherston, Jules Villard |
CSL | 1 |
| 2015 | Disproving Inductive Entailments in Separation Logic via Base Pair Approximation
James Brotherston, Nikos Gorogiannis |
TABLEAUX | 1 |
| 2014 | Parametric completeness for separation theoriesabstractIn this paper, we close the logical gap between provability in the logic BBI, which is the propositional basis for separation logic, and validity in an intended class of separation models, as employed in applications of separation logic such as program verification. An intended class of separation models is usually specified by a collection of axioms describing the specific model properties that are expected to hold, which we call a separation theory. James Brotherston, Jules Villard |
POPL | 1 |
| 2014 | Cyclic Abduction of Inductively Defined Safety and Termination Preconditions
James Brotherston, Nikos Gorogiannis |
SAS | 1 |
| 2014 | Undecidability of Propositional Separation Logic and Its NeighboursabstractIn this article, we investigate the logical structure of memory models of theoretical and practical interest. Our main interest is in “the logic behind a fixed memory model”, rather than in “a model of any kind behind a given logical system”. As an effective language for reasoning about such memory models, we use the formalism of separation logic. Our main result is that for any concrete choice of heap-like memory model, validity in that model is undecidable even for purely propositional formulas in this language. The main novelty of our approach to the problem is that we focus on validity in specific, concrete memory models, as opposed to validity in general classes of models. Besides its intrinsic technical interest, this result also provides new insights into the nature of their decidable fragments. In particular, we show that, in order to obtain such decidable fragments, either the formula language must be severely restricted or the valuations of propositional variables must be constrained. In addition, we show that a number of propositional systems that approximate separation logic are undecidable as well. In particular, this resolves the open problems of decidability for Boolean BI and Classical BI. Moreover, we provide one of the simplest undecidable propositional systems currently known in the literature, called “Minimal Boolean BI”, by combining the purely positive implication-conjunction fragment of Boolean logic with the laws of multiplicative *-conjunction, its unit and its adjoint implication, originally provided by intuitionistic multiplicative linear logic. Each of these two components is individually decidable: the implication-conjunction fragment of Boolean logic is co-NP-complete, and intuitionistic multiplicative linear logic is NP-complete. All of our undecidability results are obtained by means of a direct encoding of Minsky machines. James Brotherston, Max I. Kanovich |
J. ACM | 1 |
| 2012 | A Generic Cyclic Theorem Prover
James Brotherston, Nikos Gorogiannis, Rasmus Lerchedahl Petersen |
APLAS | 1 |
| 2011 | Automated Cyclic Entailment Proofs in Separation Logic
James Brotherston, Dino Distefano, Rasmus Lerchedahl Petersen |
CADE | 1 |
| 2011 | Craig Interpolation in Displayable Logics
James Brotherston, Rajeev Goré |
TABLEAUX | 1 |
| 2011 | Sequent calculi for induction and infinite descentabstractThis article formalizes and compares two different styles of reasoning with inductively defined predicates, each style being encapsulated by a corresponding sequent calculus proof system.The first system, LKID, supports traditional proof by induction, with induction rules formulated as rules for introducing inductively defined predicates on the left of sequents.We show LKID to be cut-free complete with respect to a natural class of Henkin models; the eliminability of cut follows as a corollary. The second system, LKIDω, uses infinite (non-well-founded) proofs to represent arguments by infinite descent. In this system, the left-introduction rules for inductively defined predicates are simple case-split rules, and an infinitary, global condition on proof trees is required in order to ensure soundness.We show LKIDω to be cut-free complete with respect to standard models, and again infer the eliminability of cut. The infinitary system LKIDω is unsuitable for formal reasoning. However, it has a natural restriction to proofs given by regular trees, i.e. to those proofs representable by finite graphs, which is so suited. We demonstrate that this restricted ‘cyclic’ proof system, CLKIDω, subsumes LKID, and conjecture that CLKIDω and LKID are in fact equivalent, i.e. that proof by induction is equivalent to regular proof by infinite descent. James Brotherston, Alex K. Simpson |
J. Log. Comput. | 1 |
| 2010 | Undecidability of Propositional Separation Logic and Its NeighboursabstractSeparation logic has proven an effective formalism for the analysis of memory-manipulating programs. We show that the purely propositional fragment of separation logic is undecidable. In fact, for any choice of concrete heap-like model of separation logic, validity in that model remains undecidable. Besides its intrinsic technical interest, this result also provides new insights into the nature of decidable fragments of separation logic. In addition, we show that a number of propositional systems which approximate separation logic are undecidable as well. In particular, these include both Boolean BI and Classical BI. All of our undecidability results are obtained by means of a single direct encoding of Minsky machines. James Brotherston, Max I. Kanovich |
LICS | 1 |
| 2009 | Classical BI: a logic for reasoning about dualising resourcesabstractWe show how to extend O'Hearn and Pym's logic of bunched implications, BI, to classical BI (CBI), in which both the additive and the multiplicative connectives behave classically. Specifically, CBI is a non-conservative extension of (propositional) Boolean BI that includes multiplicative versions of falsity, negation and disjunction. We give an algebraic semantics for CBI that leads us naturally to consider resource models of CBI in which every resource has a unique dual. We then give a cut-eliminating proof system for CBI, based on Belnap's display logic, and demonstrate soundness and completeness of this proof system with respect to our semantics. James Brotherston, Cristiano Calcagno |
POPL | 1 |
| 2008 | Cyclic proofs of program termination in separation logicabstractWe propose a novel approach to proving the termination of heap-manipulating programs, which combines separation logic with cyclic proof within a Hoare-style proof system.Judgements in this system express (guaranteed) termination of the program when started from a given line in the program and in a state satisfying a given precondition, which is expressed as a formula of separation logic. The proof rules of our system are of two types: logical rules that operate on preconditions; and symbolic execution rules that capture the effect of executing program commands. James Brotherston, Richard Bornat, Cristiano Calcagno |
POPL | 1 |
| 2007 | Complete Sequent Calculi for Induction and Infinite DescentabstractThis paper compares two different styles of reasoning with inductively defined predicates, each style being encapsulated by a corresponding sequent calculus proof system. The first system supports traditional proof by induction, with induction rules formulated as sequent rules for introducing inductively defined predicates on the left of sequents. We show this system to be cut-free complete with respect to a natural class of Henkin models; the eliminability of cut follows as a corollary. The second system uses infinite (non-well-founded) proofs to represent arguments by infinite descent. In this system, the left rules for inductively defined predicates are simple case-split rules, and an infinitary, global condition on proof trees is required to ensure soundness. We show this system to be cut-free complete with respect to standard models, and again infer the eliminability of cut. The second infinitary system is unsuitable for formal reasoning. However, it has a natural restriction to proofs given by regular trees, i.e. to those proofs representable by finite graphs. This restricted "cyclic" system subsumes the first system for proof by induction. We conjecture that the two systems are in fact equivalent, i.e., that proof by induction is equivalent to regular proof by infinite descent. James Brotherston, Alex K. Simpson |
LICS | 1 |
| 2007 | Formalised Inductive Reasoning in the Logic of Bunched Implications
James Brotherston |
SAS | 1 |
| 2005 | Cyclic Proofs for First-Order Logic with Inductive Definitions
James Brotherston |
TABLEAUX | 1 |
| 2003 | A formalised first-order confluence proof for the -calculus using one-sorted variable names
René Vestergaard, James Brotherston |
Inf. Comput. | 2 |
| 2002 | Searching for Invariants Using Temporal Resolution
James Brotherston, Anatoli Degtyarev, Michael Fisher 0001, Alexei Lisitsa 0001 |
LPAR | 1 |
| 2001 | A Formalised First-Order Confluence Proof for the lambda-Calculus Using One-Sorted Variable Names
René Vestergaard, James Brotherston |
RTA | 2 |