VLDB 2026 Research / reviewers in the wild / expert
Arthur Charguéraud
dblp:55/5002
· DBLP profile ↗
33ranked-venue papers
15as first author
6since 2021 · last 2026
0000-0001-7764-4507ORCID · corroborated
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 21 · 10 first-author · 5 since 2021Theory of computation · 8 · 5 first-author · 2 since 2021Systems, architecture and hardware · 5Artificial intelligence and machine learning · 2 · 2 first-author
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2026 | A Catenable, Splittable, Transient Sequence Data StructureabstractA transient data structure is a combination of an ephemeral data structure, a persistent data structure, and fast conversions between them. We present a transient sequence data structure that supports efficient read and write access at an arbitrary index with worst-case time complexity O ( K log K n ), pushing and popping at either end with complexity O ( K log K n ), and splitting and concatenation with complexity O ( K log K n +log K 2 n ), where K is a user-defined chunk size and n is the length of the sequence. We provide a detailed analysis of this data structure and show that, in many favorable scenarios, it performs much better than these pessimistic bounds might suggest. Furthermore, we describe its implementation, and provide a synthetic benchmark to evaluate the performance of push and pop . We believe that it is a good candidate for a one-size-fits-all, general-purpose sequence data structure. Arthur Charguéraud, François Pottier |
Proc. ACM Program. Lang. | 1 |
| 2025 | Will It Fit? Verifying Heap Space Bounds of Concurrent Programs under Garbage CollectionabstractWe present IrisFit, a Separation Logic with space credits for reasoning about heap space in a concurrent call-by-value language equipped with tracing garbage collection and shared mutable state. We point out a fundamental difficulty in the analysis of the worst-case heap space complexity of concurrent programs in the presence of tracing garbage collection: If garbage collection phases and program steps can be arbitrarily interleaved, then there exist undesirable scenarios where a root held by a sleeping thread prevents a possibly large amount of memory from being freed. To remedy this problem and eliminate such undesirable scenarios, we propose several language features, namely possibly-blocking memory allocation, polling points, and protected sections. Polling points are meant to be automatically inserted by the compiler; protected sections are delimited by the programmer and represent regions where no polling points must be inserted. The heart of our contribution is IrisFit, a novel program logic that can establish worst-case heap space complexity bounds and whose reasoning rules can take advantage of the presence of protected sections. IrisFit is formalized inside the Coq proof assistant, on top of the Iris Separation Logic framework. We prove that IrisFit offers both a safety guarantee—programs cannot crash and cannot exceed a heap space limit—and a liveness guarantee—provided enough polling points have been inserted, every memory allocation request is satisfied in bounded time. We illustrate the use of IrisFit via several case studies, including a version of Treiber’s stack whose worst-case behavior relies on the presence of protected sections. Alexandre Moine 0001, Arthur Charguéraud, François Pottier |
ACM Trans. Program. Lang. Syst. | 2 |
| 2023 | Review on Functional Algorithms, Verified!: By Tobias Nipkow, Jasmin Blanchette, Manuel Eberl, Alejandro Gómez-Londoño, Peter Lammich, Christian Sternagel, Simon Wimmer, and Bohua Zhan Freely downloadable: https://functional-algorithms-verified.orgabstractresearch-article Free Access Share on Review on Functional Algorithms, Verified! By Tobias Nipkow, Jasmin Blanchette, Manuel Eberl, Alejandro Gómez-Londoño, Peter Lammich, Christian Sternagel, Simon Wimmer, and Bohua Zhan Freely downloadable: https://functional-algorithms-verified.org Just Accepted Author: Arthur Charguéraud Inria ICube Laboratory, France Inria ICube Laboratory, FranceView Profile Authors Info & Claims Formal Aspects of Computinghttps://doi.org/10.1145/3594639Published:05 May 2023Publication History 0citation20DownloadsMetricsTotal Citations0Total Downloads20Last 12 Months20Last 6 weeks20 Get Citation AlertsNew Citation Alert added!This alert has been successfully added and will be sent to:You will be notified whenever a record that you have chosen has been cited.To manage your alert preferences, click on the button below.Manage my AlertsNew Citation Alert!Please log in to your account Save to BinderSave to BinderCreate a New BinderNameCancelCreateExport CitationPublisher SiteeReaderPDF Arthur Charguéraud |
Formal Aspects Comput. | 1 |
| 2023 | A High-Level Separation Logic for Heap Space under Garbage CollectionabstractInternational audience Alexandre Moine 0001, Arthur Charguéraud, François Pottier |
Proc. ACM Program. Lang. | 2 |
| 2023 | Omnisemantics: Smooth Handling of NondeterminismabstractThis article gives an in-depth presentation of the omni-big-step and omni-small-step styles of semantic judgments. These styles describe operational semantics by relating starting states to sets of outcomes rather than to individual outcomes. A single derivation of these semantics for a particular starting state and program describes all possible nondeterministic executions (hence the name omni ), whereas in traditional small-step and big-step semantics, each derivation only talks about one single execution. This restructuring allows for straightforward modeling of both nondeterminism and undefined behavior as commonly encountered in sequential functional and imperative programs. Specifically, omnisemantics inherently assert safety (i.e., they guarantee that none of the execution branches gets stuck), while traditional semantics need either a separate judgment or additional error markers to specify safety in the presence of nondeterminism. Omnisemantics can be understood as an inductively defined weakest-precondition semantics (or more generally, predicate-transformer semantics) that does not involve invariants for loops and recursion but instead uses unrolling rules like in traditional small-step and big-step semantics. Omnisemantics were previously described in association with several projects, but we believe the technique has been underappreciated and deserves a well-motivated, extensive, and pedagogical presentation of its benefits. We also explore several novel aspects associated with these semantics, in particular, their use in type-safety proofs for lambda calculi, partial-correctness reasoning, and forward proofs of compiler correctness for terminating but potentially nondeterministic programs being compiled to nondeterministic target languages. All results in this article are formalized in Coq. Arthur Charguéraud, Adam Chlipala, Andres Erbsen, Samuel Gruetter |
ACM Trans. Program. Lang. Syst. | 1 |
| 2022 | Specification and verification of a transient stackabstractA transient data structure is a package of an ephemeral data structure, a persistent data structure, and fast conversions between them. We describe the specification and proof of a transient stack and its iterators. This data structure is a scaled-down version of the general-purpose transient sequence data structure implemented in the OCaml library Sek. Internally, it relies on fixed-capacity arrays, or chunks, which can be shared between several ephemeral and persistent stacks. Dynamic tests are used to determine whether a chunk can be updated in place or must be copied: a chunk can be updated if it is uniquely owned or if the update is monotonic. Using CFML, which implements Separation Logic with Time Credits inside Coq, we verify the functional correctness and the amortized time complexity of this data structure. Our verification effort covers iterators, which involve direct pointers to internal chunks. The specification of iterators describes what the operations on iterators do, how much they cost, and under what circumstances an iterator is invalidated. Alexandre Moine 0001, Arthur Charguéraud, François Pottier |
CPP | 2 |
| 2020 | Separation logic for sequential programs (functional pearl)abstractThis paper presents a simple mechanized formalization of Separation Logic for sequential programs. This formalization is aimed for teaching the ideas of Separation Logic, including its soundness proof and its recent enhancements. The formalization serves as support for a course that follows the style of the successful Software Foundations series, with all the statement and proofs formalized in Coq. This course only assumes basic knowledge of lambda-calculus, semantics and logics, and therefore should be accessible to a broad audience. Arthur Charguéraud |
Proc. ACM Program. Lang. | 1 |
| 2019 | GOSPEL - Providing OCaml with a Formal Specification Language
Arthur Charguéraud, Jean-Christophe Filliâtre, Cláudio Belo Lourenço, Mário Pereira |
FM | 1 |
| 2019 | Formal Proof and Analysis of an Incremental Cycle Detection AlgorithmabstractWe study a state-of-the-art incremental cycle detection algorithm due to Bender, Fineman, Gilbert, and Tarjan. We propose a simple change that allows the algorithm to be regarded as genuinely online. Then, we exploit Separation Logic with Time Credits to simultaneously verify the correctness and the worst-case amortized asymptotic complexity of the modified algorithm. Armaël Guéneau, Jacques-Henri Jourdan, Arthur Charguéraud, François Pottier |
ITP | 3 |
| 2019 | Provably and practically efficient granularity controlabstractOver the past decade, many programming languages and systems for parallel-computing have been developed, e.g., Fork/Join and Habanero Java, Parallel Haskell, Parallel ML, and X10. Although these systems raise the level of abstraction for writing parallel codes, performance continues to require labor-intensive optimizations for coarsening the granularity of parallel executions. In this paper, we present provably and practically efficient techniques for controlling granularity within the run-time system of the language. Our starting point is "oracle-guided scheduling", a result from the functional-programming community that shows that granularity can be controlled by an "oracle" that can predict the execution time of parallel codes. We give an algorithm for implementing such an oracle and prove that it has the desired theoretical properties under the nested-parallel programming model. We implement the oracle in C++ by extending Cilk and evaluate its practical performance. The results show that our techniques can essentially eliminate hand tuning while closely matching the performance of hand tuned codes. Umut A. Acar, Vitaly Aksenov, Arthur Charguéraud, Mike Rainey |
PPoPP | 3 |
| 2019 | Verifying the Correctness and Amortized Complexity of a Union-Find Implementation in Separation Logic with Time Credits
Arthur Charguéraud, François Pottier |
J. Autom. Reason. | 1 |
| 2018 | A Fistful of Dollars: Formalizing Asymptotic Complexity Claims via Deductive Program VerificationabstractWe present a framework for simultaneously verifying the functional correctness and the worst-case asymptotic time complexity of higher-order imperative programs. We build on top of Separation Logic with Time Credits, embedded in an interactive proof assistant. We formalize the O notation, which is key to enabling modular specifications and proofs. We cover the subtleties of the multivariate case, where the complexity of a program fragment depends on multiple parameters. We propose a way of integrating complexity bounds into specifications, present lemmas and tactics that support a natural reasoning style, and illustrate their use with a collection of examples. Armaël Guéneau, Arthur Charguéraud, François Pottier |
ESOP | 2 |
| 2018 | Efficient Strict-Binning Particle-in-Cell Algorithm for Multi-core SIMD Processors
Yann Barsamian, Arthur Charguéraud, Sever A. Hirstoaga, Michel Mehrenberger |
Euro-Par | 2 |
| 2018 | Heartbeat scheduling: provable efficiency for nested parallelismabstractA classic problem in parallel computing is to take a high-level parallel program written, for example, in nested-parallel style with fork-join constructs and run it efficiently on a real machine. The problem could be considered solved in theory, but not in practice, because the overheads of creating and managing parallel threads can overwhelm their benefits. Developing efficient parallel codes therefore usually requires extensive tuning and optimizations to reduce parallelism just to a point where the overheads become acceptable. Umut A. Acar, Arthur Charguéraud, Adrien Guatto, Mike Rainey, Filip Sieczkowski |
PLDI | 2 |
| 2018 | Performance challenges in modular parallel programsabstractOver the past decade, many programming languages and systems for parallel-computing have been developed, including Cilk, Fork/Join Java, Habanero Java, Parallel Haskell, Parallel ML, and X10. Although these systems raise the level of abstraction at which parallel code are written, performance continues to require the programmer to perform extensive optimizations and tuning, often by taking various architectural details into account. One such key optimization is granularity control, which requires the programmer to determine when and how parallel tasks should be sequentialized. Umut A. Acar, Vitaly Aksenov, Arthur Charguéraud, Mike Rainey |
PPoPP | 3 |
| 2018 | MoSeL: a general, extensible modal framework for interactive proofs in separation logicabstractA number of tools have been developed for carrying out separation-logic proofs mechanically using an interactive proof assistant. One of the most advanced such tools is the Iris Proof Mode (IPM) for Coq, which offers a rich set of tactics for making separation-logic proofs look and feel like ordinary Coq proofs. However, IPM is tied to a particular separation logic (namely, Iris), thus limiting its applicability. In this paper, we propose MoSeL, a general and extensible Coq framework that brings the benefits of IPM to a much larger class of separation logics. Unlike IPM, MoSeL is applicable to both affine and linear separation logics (and combinations thereof), and provides generic tactics that can be easily extended to account for the bespoke connectives of the logics with which it is instantiated. To demonstrate the effectiveness of MoSeL, we have instantiated it to provide effective tactical support for interactive and semi-automated proofs in six very different separation logics. Robbert Krebbers, Jacques-Henri Jourdan, Ralf Jung 0002, Joseph Tassarotti, Jan-Oliver Kaiser, Amin Timany, Arthur Charguéraud, Derek Dreyer |
Proc. ACM Program. Lang. | 7 |
| 2017 | Temporary Read-Only Permissions for Separation Logic
Arthur Charguéraud, François Pottier |
ESOP | 1 |
| 2016 | Higher-order representation predicates in separation logicabstractIn Separation Logic, representation predicates are used to describe mutable data structures, by establishing a relationship between the entry point of the structure, the piece of heap over which this structure spans, and the logical model associated with the structure. When a data structure is polymorphic, such as in the case of a container, its representation predicate needs to be parameterized not just by the type of the items stored in the structure, but also by the representation predicates associated with these items. Such higher-order representation predicates can be used in particular to control whether containers should own their items. In this paper, we present, through a collection of practical examples, solutions to the challenges associated with reasoning about accesses into data structures that own their elements. Arthur Charguéraud |
CPP | 1 |
| 2016 | Dag-calculus: a calculus for parallel computationabstractIncreasing availability of multicore systems has led to greater focus on the design and implementation of languages for writing parallel programs. Such languages support various abstractions for parallelism, such as fork-join, async-finish, futures. While they may seem similar, these abstractions lead to different semantics, language design and implementation decisions, and can significantly impact the performance of end-user applications. Umut A. Acar, Arthur Charguéraud, Mike Rainey, Filip Sieczkowski |
ICFP | 2 |
| 2016 | Oracle-guided scheduling for controlling granularity in implicitly parallel languagesabstractAbstract A classic problem in parallel computing is determining whether to execute a thread in parallel or sequentially. If small threads are executed in parallel, the overheads due to thread creation can overwhelm the benefits of parallelism, resulting in suboptimal efficiency and performance. If large threads are executed sequentially, processors may spin idle, resulting again in sub-optimal efficiency and performance. This “granularity problem” is especially important in implicitly parallel languages, where the programmer expresses all potential for parallelism, leaving it to the system to exploit parallelism by creating threads as necessary. Although this problem has been identified as an important problem, it is not well understood—broadly applicable solutions remain elusive. In this paper, we propose techniques for automatically controlling granularity in implicitly parallel programming languages to achieve parallel efficiency and performance. To this end, we first extend a classic result, Brent's theorem (a.k.a. the work-time principle) to include thread-creation overheads. Using a cost semantics for a general-purpose language in the style of lambda calculus with parallel tuples, we then present a precise accounting of thread-creation overheads and bound their impact on efficiency and performance. To reduce such overheads, we propose an oracle-guided semantics by using estimates of the sizes of parallel threads. We show that, if the oracle provides accurate estimates in constant time, then the oracle-guided semantics reduces the thread-creation overheads for a reasonably large class of parallel computations. We describe how to approximate the oracle-guided semantics in practice by combining static and dynamic techniques. We require the programmer to provide the asymptotic complexity cost for each parallel thread and use runtime profiling to determine hardware-specific constant factors. We present an implementation of the proposed approach as an extension of the Manticore compiler for Parallel ML. Our empirical evaluation shows that our techniques can reduce thread-creation overheads, leading to good efficiency and performance. Umut A. Acar, Arthur Charguéraud, Mike Rainey |
J. Funct. Program. | 2 |
| 2015 | Machine-Checked Verification of the Correctness and Amortized Complexity of an Efficient Union-Find Implementation
Arthur Charguéraud, François Pottier |
ITP | 1 |
| 2015 | A work-efficient algorithm for parallel unordered depth-first searchabstractAdvances in processing power and memory technology have made multicore computers an important platform for high-performance graph-search (or graph-traversal) algorithms. Since the introduction of multicore, much progress has been made to improve parallel breadth-first search. However, less attention has been given to algorithms for unordered or loosely ordered traversals. Umut A. Acar, Arthur Charguéraud, Mike Rainey |
SC | 2 |
| 2014 | Theory and Practice of Chunked Sequences
Umut A. Acar, Arthur Charguéraud, Mike Rainey |
ESA | 2 |
| 2014 | A trusted mechanised JavaScript specificationabstractJavaScript is the most widely used web language for client-side applications. Whilst the development of JavaScript was initially just led by implementation, there is now increasing momentum behind the ECMA standardisation process. The time is ripe for a formal, mechanised specification of JavaScript, to clarify ambiguities in the ECMA standards, to serve as a trusted reference for high-level language compilation and JavaScript implementations, and to provide a platform for high-assurance proofs of language properties. Martin Bodin, Arthur Charguéraud, Daniele Filaretti, Philippa Gardner, Sergio Maffeis, Daiva Naudziuniene, Alan Schmitt, Gareth Smith |
POPL | 2 |
| 2013 | Pretty-Big-Step Semantics
Arthur Charguéraud |
ESOP | 1 |
| 2013 | Scheduling parallel programs by work stealing with private dequesabstractWork stealing has proven to be an effective method for scheduling parallel programs on multicore computers. To achieve high performance, work stealing distributes tasks between concurrent queues, called deques, which are assigned to each processor. Each processor operates on its deque locally except when performing load balancing via steals. Unfortunately, concurrent deques suffer from two limitations: 1) local deque operations require expensive memory fences in modern weak-memory architectures, 2) they can be very difficult to extend to support various optimizations and flexible forms of task distribution strategies needed many applications, e.g., those that do not fit nicely into the divide-and-conquer, nested data parallel paradigm. Umut A. Acar, Arthur Charguéraud, Mike Rainey |
PPoPP | 2 |
| 2012 | The Locally Nameless Representation
Arthur Charguéraud |
J. Autom. Reason. | 1 |
| 2011 | Characteristic formulae for the verification of imperative programsabstractIn previous work, we introduced an approach to program verification based on characteristic formulae. The approach consists of generating a higher-order logic formula from the source code of a program. This characteristic formula is constructed in such a way that it gives a sound and complete description of the semantics of that program. The formula can thus be exploited in an interactive proof assistant to formally verify that the program satisfies a particular specification. Arthur Charguéraud |
ICFP | 1 |
| 2011 | Oracle scheduling: controlling granularity in implicitly parallel languagesabstractA classic problem in parallel computing is determining whether to execute a task in parallel or sequentially. If small tasks are executed in parallel, the task-creation overheads can be overwhelming. If large tasks are executed sequentially, processors may spin idle. This granularity problem, however well known, is not well understood: broadly applicable solutions remain elusive. Umut A. Acar, Arthur Charguéraud, Mike Rainey |
OOPSLA | 2 |
| 2010 | Program verification through characteristic formulaeabstractThis paper describes CFML, the first program verification tool based on characteristic formulae. Given the source code of a pure Caml program, this tool generates a logical formula that implies any valid post-condition for that program. One can then prove that the program satisfies a given specification by reasoning interactively about the characteristic formula using a proof assistant such as Coq. Our characteristic formulae improve over Honda et al's total characteristic assertion pairs in that they are expressible in standard higher-order logic, allowing to exploit them in practice to verify programs using existing proof assistants. Our technique has been applied to formally verify more than half of the content of Okasaki's Purely Functional Data Structures reference book Arthur Charguéraud |
ICFP | 1 |
| 2010 | The Optimal Fixed Point Combinator
Arthur Charguéraud |
ITP | 1 |
| 2008 | Functional translation of a calculus of capabilitiesabstractReasoning about imperative programs requires the ability to track aliasing and ownership properties. We present a type system that provides this ability, by using regions, capabilities, and singleton types. It is designed for a high-level calculus with higher-order functions, algebraic data structures, and references (mutable memory cells). The type system has polymorphism, yet does not require a value restriction, because capabilities act as explicit store typings. Arthur Charguéraud, François Pottier |
ICFP | 1 |
| 2008 | Engineering formal metatheoryabstractMachine-checked proofs of properties of programming languages have become acritical need, both for increased confidence in large and complex designsand as a foundation for technologies such as proof-carrying code. However, constructing these proofs remains a black art, involving many choices in the formulation of definitions and theorems that make a huge cumulative difference in the difficulty of carrying out large formal developments. There presentation and manipulation of terms with variable binding is a key issue. Brian E. Aydemir, Arthur Charguéraud, Benjamin C. Pierce, Randy Pollack, Stephanie Weirich |
POPL | 2 |