EDBT 2026 Demo / reviewers in the wild / expert
Victor B. F. Gomes
dblp:139/0605 · also Victor Borges Ferreira Gomes
· DBLP profile ↗
11ranked-venue papers
2as first author
1since 2021 · last 2022
0000-0002-2954-4648ORCID · verified
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 7 · 2 first-authorTheory of computation · 6 · 1 first-authorSystems, architecture and hardware · 1 · 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 |
Distributed systems · 100% | |
| Software engineering, system software, and programming languages
5 papers |
Programming languages and type systems · 41% Concurrent programming · 41% Program verification · 17% | |
| Theoretical computer science
3 papers |
Logic in computer science · 60% Automated reasoning and model checking · 40% |
Topics — the 15 heaviest of 16, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Distributed systems › replication › replicated data types
conflict-free replicated data types |
0.9 | 2 | 2022 | A Highly-Available Move Operation for Replicated Trees · IEEE Trans. Parallel Distributed Syst. 2022 Verifying strong eventual consistency in distributed systems · Proc. ACM Program. Lang. 2017 |
Distributed systems
replication |
0.9 | 2 | 2022 | A Highly-Available Move Operation for Replicated Trees · IEEE Trans. Parallel Distributed Syst. 2022 Verifying strong eventual consistency in distributed systems · Proc. ACM Program. Lang. 2017 |
Programming languages and type systems › language semantics
c semantics |
0.8 | 2 | 2019 | Exploring C semantics and pointer provenance · Proc. ACM Program. Lang. 2019 Cerberus-BMC: A Principled Reference Semantics and Exploration Tool for Concurrent and Sequential C · CAV (1) 2019 |
Concurrent programming
memory models |
0.8 | 2 | 2019 | Exploring C semantics and pointer provenance · Proc. ACM Program. Lang. 2019 Cerberus-BMC: A Principled Reference Semantics and Exploration Tool for Concurrent and Sequential C · CAV (1) 2019 |
Distributed systems
fault tolerance |
0.6 | 1 | 2022 | A Highly-Available Move Operation for Replicated Trees · IEEE Trans. Parallel Distributed Syst. 2022 |
Distributed systems › fault tolerance
high availability |
0.6 | 1 | 2022 | A Highly-Available Move Operation for Replicated Trees · IEEE Trans. Parallel Distributed Syst. 2022 |
Concurrent programming › memory models › weak memory models
c11 memory model |
0.4 | 1 | 2019 | Cerberus-BMC: A Principled Reference Semantics and Exploration Tool for Concurrent and Sequential C · CAV (1) 2019 |
Programming languages and type systems
language semantics |
0.4 | 1 | 2019 | Cerberus-BMC: A Principled Reference Semantics and Exploration Tool for Concurrent and Sequential C · CAV (1) 2019 |
Automated reasoning and model checking › model checking
bounded model checking |
0.4 | 1 | 2019 | Cerberus-BMC: A Principled Reference Semantics and Exploration Tool for Concurrent and Sequential C · CAV (1) 2019 |
Program verification
proof assistants |
0.3 | 1 | 2017 | Verifying strong eventual consistency in distributed systems · Proc. ACM Program. Lang. 2017 |
Logic in computer science › algebraic logic
kleene algebra |
0.2 | 1 | 2016 | Modal Kleene Algebra Applied to Program Correctness · FM 2016 |
Logic in computer science
program logic |
0.2 | 1 | 2016 | Modal Kleene Algebra Applied to Program Correctness · FM 2016 |
Program verification › modular reasoning
rely-guarantee reasoning |
0.2 | 1 | 2014 | Algebraic Principles for Rely-Guarantee Style Concurrency Verification Tools · FM 2014 |
Systems and software security
memory safety |
0.1 | 1 | 2019 | Exploring C semantics and pointer provenance · Proc. ACM Program. Lang. 2019 |
Distributed systems › distributed computing theory
network model |
0.1 | 1 | 2017 | Verifying strong eventual consistency in distributed systems · Proc. ACM Program. Lang. 2017 |
Methods — techniques the papers use, named apart from their topics
Isabelle/HOL · 1.1runtime instrumentation · 0.8reference semantics · 0.8cerberus semantics · 0.8bounded model checking · 0.8mechanized proof · 0.6formal verification · 0.6convergence theorem · 0.6modal kleene algebra · 0.5test oracles · 0.4test oracle · 0.4algebraic principles · 0.4
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2022 | A Highly-Available Move Operation for Replicated TreesabstractReplicated tree data structures are a fundamental building block of distributed filesystems, such as Google Drive and Dropbox, and collaborative applications with a JSON or XML data model. These systems need to support amoveoperation that allows a subtree to be moved to a new location within the tree. However, such a move operation is difficult to implement correctly if different replicas can concurrently perform arbitrary move operations, and we demonstrate bugs in Google Drive and Dropbox that arise with concurrent moves. In this article we present a CRDT algorithm that handles arbitrary concurrent modifications on trees, while ensuring that the tree structure remains valid (in particular, no cycles are introduced), and guaranteeing that all replicas converge towards the same consistent state. Our algorithm requires no synchronous coordination between replicas, making it highly available in the face of network partitions. We formally prove the correctness of our algorithm using the Isabelle/HOL proof assistant, and evaluate the performance of our formally verified implementation in a geo-replicated setting. Martin Kleppmann, Dominic P. Mulligan, Victor B. F. Gomes, Alastair R. Beresford |
IEEE Trans. Parallel Distributed Syst. | 3 |
| 2019 | Cerberus-BMC: A Principled Reference Semantics and Exploration Tool for Concurrent and Sequential CabstractC remains central to our infrastructure, making verification of C code an essential and much-researched topic, but the semantics of C is remarkably complex, and important aspects of it are still unsettled, leaving programmers and verification tool builders on shaky ground. This paper describes a tool, Cerberus-BMC, that for the first time provides a principled reference semantics that simultaneously supports (1) a choice of concurrency memory model (including substantial fragments of the C11, RC11, and Linux kernel memory models), (2) a modern memory object model, and (3) a well-validated thread-local semantics for a large fragment of the language. The tool should be useful for C programmers, compiler writers, verification tool builders, and members of the C/C++ standards committees. Stella Lau, Victor B. F. Gomes, Kayvan Memarian, Jean Pichon-Pharabod, Peter Sewell |
CAV (1) | 2 |
| 2019 | Exploring C semantics and pointer provenanceabstractThe semantics of pointers and memory objects in C has been a vexed question for many years. C values cannot be treated as either purely abstract or purely concrete entities: the language exposes their representations, but compiler optimisations rely on analyses that reason about provenance and initialisation status, not just runtime representations. The ISO WG14 standard leaves much of this unclear, and in some respects differs with de facto standard usage --- which itself is difficult to investigate. In this paper we explore the possible source-language semantics for memory objects and pointers, in ISO C and in C as it is used and implemented in practice, focussing especially on pointer provenance. We aim to, as far as possible, reconcile the ISO C standard, mainstream compiler behaviour, and the semantics relied on by the corpus of existing C code. We present two coherent proposals, tracking provenance via integers and not; both address many design questions. We highlight some pros and cons and open questions, and illustrate the discussion with a library of test cases. We make our semantics executable as a test oracle, integrating it with the Cerberus semantics for much of the rest of C, which we have made substantially more complete and robust, and equipped with a web-interface GUI. This allows us to experimentally assess our proposals on those test cases. To assess their viability with respect to larger bodies of C code, we analyse the changes required and the resulting behaviour for a port of FreeBSD to CHERI, a research architecture supporting hardware capabilities, which (roughly speaking) traps on the memory safety violations which our proposals deem undefined behaviour. We also develop a new runtime instrumentation tool to detect possible provenance violations in normal C code, and apply it to some of the SPEC benchmarks. We compare our proposal with a source-language variant of the twin-allocation LLVM semantics proposal of Lee et al. Finally, we describe ongoing interactions with WG14, exploring how our proposals could be incorporated into the ISO standard. Kayvan Memarian, Victor B. F. Gomes, Brooks Davis, Stephen Kell, Alex Richardson 0001, Robert N. M. Watson, Peter Sewell |
Proc. ACM Program. Lang. | 2 |
| 2017 | Programming and Proving with Classical Types
Cristina Matache, Victor B. F. Gomes, Dominic P. Mulligan |
APLAS | 2 |
| 2017 | Verifying strong eventual consistency in distributed systemsabstractData replication is used in distributed systems to maintain up-to-date copies of shared data across multiple computers in a network. However, despite decades of research, algorithms for achieving consistency in replicated systems are still poorly understood. Indeed, many published algorithms have later been shown to be incorrect, even some that were accompanied by supposed mechanised proofs of correctness. In this work, we focus on the correctness of Conflict-free Replicated Data Types (CRDTs), a class of algorithm that provides strong eventual consistency guarantees for replicated data. We develop a modular and reusable framework in the Isabelle/HOL interactive proof assistant for verifying the correctness of CRDT algorithms. We avoid correctness issues that have dogged previous mechanised proofs in this area by including a network model in our formalisation, and proving that our theorems hold in all possible network behaviours. Our axiomatic network model is a standard abstraction that accurately reflects the behaviour of real-world computer networks. Moreover, we identify an abstract convergence theorem, a property of order relations, which provides a formal definition of strong eventual consistency. We then obtain the first machine-checked correctness theorems for three concrete CRDTs: the Replicated Growable Array, the Observed-Remove Set, and an Increment-Decrement Counter. We find that our framework is highly reusable, developing proofs of correctness for the latter two CRDTs in a few hours and with relatively little CRDT-specific code. Victor B. F. Gomes, Martin Kleppmann, Dominic P. Mulligan, Alastair R. Beresford |
Proc. ACM Program. Lang. | 1 |
| 2016 | Modal Kleene Algebra Applied to Program Correctness
Victor B. F. Gomes, Georg Struth |
FM | 1 |
| 2016 | Building program construction and verification tools from algebraic principlesabstractAbstract We present a principled modular approach to the development of construction and verification tools for imperative programs, in which the control flow and the data flow are cleanly separated. Our simplest verification tool uses Kleene algebra with tests for the control flow of while-programs and their standard relational semantics for the data flow. It is expanded to a basic program construction tool by adding an operation for the specification statement and one single axiom. To include recursive procedures, Kleene algebras with tests are expanded further to quantales with tests. In this more expressive setting, iteration and the specification statement can be defined explicitly and stronger program transformation rules can be derived. Programming our approach in the Isabelle/HOL interactive theorem prover yields simple lightweight mathematical components as well as program construction and verification tools that are correct by construction themselves. Verification condition generation and program construction rules are based on equational reasoning and supported by powerful Isabelle tactics and automated theorem proving. A number of examples shows our tools at work. Alasdair Armstrong, Victor B. F. Gomes, Georg Struth |
Formal Aspects Comput. | 2 |
| 2015 | A Program Construction and Verification Tool for Separation Logic
Brijesh Dongol, Victor B. F. Gomes, Georg Struth |
MPC | 2 |
| 2014 | Algebras for Program Correctness in Isabelle/HOL
Alasdair Armstrong, Victor B. F. Gomes, Georg Struth |
RAMiCS | 2 |
| 2014 | Algebraic Principles for Rely-Guarantee Style Concurrency Verification Tools
Alasdair Armstrong, Victor B. F. Gomes, Georg Struth |
FM | 2 |
| 2014 | Lightweight Program Construction and Verification Tools in Isabelle/HOL
Alasdair Armstrong, Victor B. F. Gomes, Georg Struth |
SEFM | 2 |