VLDB 2026 Research / reviewers in the wild / expert
Matthieu Lemerre
dblp:86/636
· DBLP profile ↗
20ranked-venue papers
4as first author
11since 2021 · last 2026
0000-0002-1081-0467ORCID · verified
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 13 · 2 first-author · 9 since 2021Theory of computation · 4 · 1 since 2021Artificial intelligence and machine learning · 2Systems, architecture and hardware · 2 · 1 first-author · 1 since 2021Security and privacy · 1Applied, interdisciplinary, general and emerging computing · 1 · 1 first-author
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2026 | Inferring contracts by abstract interpretation with application to pointer nullness analysisabstractAbstract This paper proposes a semantic static analysis for inferring nullable or non-null pointer annotations in low level programs. The analysis is formulated on a minimalistic imperative language and it is expressed as a least fixpoint computation over pointer annotations calling a sound type-checking algorithm. Therefore, this analysis may be used for more general annotations than pointer nullability. We prove two main properties for this approach: (1) when using a sound and precise type-checker (i.e., without false alarms), it will find an annotation that guarantees the absence of run-time errors due to pointer deference, if such an annotation exists, (2) when the type-checker is only sound, the errors singled out by the analysis are real errors. We report on the implementation of this method in Codex , a static analyzer for C and binary code. Codex already provides an abstract interpretation based type-checker for a rich dependent type systems. The evaluation of our implementation on a benchmark of challenging programs shows that the inference is better than manual annotations obtained by code inspection. Paul Robert, Matthieu Lemerre, Mihaela Sighireanu |
Int. J. Softw. Tools Technol. Transf. | 2 |
| 2025 | Relational Abstractions Based on Labeled Union-FindabstractWe introduce a new family of abstractions based on a data structure that we call labeled union-find , an extension of the classic efficient union-find data structure where edges carry labels. These labels have a composition operation that obey the group axioms. Like union-find, the labeled version can efficiently compute the transitive closure of a relation, but it is not limited to equivalence relations; it can represent any injective transformation between equivalence classes, which includes two-variables per equality (TVPE) constraints of the form y = a × + b . Using abstract interpretation theory, we study the properties deriving from the use of abstract relations as labels, and the combination of labeled union-find with other representations of constraints, allowing both improvements in precision and simplification of existing constraints. Due to its efficiency, the labeled union-find abstractions could find many uses; we use it in two use cases, program analysis based on abstract interpretation and constraint solving for SMT, with encouraging preliminary results. Dorian Lesbre, Matthieu Lemerre, Hichem Rami Ait El Hara, François Bobot |
Proc. ACM Program. Lang. | 2 |
| 2024 | Trace Partitioning as an Optimization Problem
M. Charles Babu, Matthieu Lemerre, Sébastien Bardin, Jean-Yves Marion |
SAS | 2 |
| 2024 | Compiling with Abstract InterpretationabstractRewriting and static analyses are mutually beneficial techniques: program transformations change the inten- sional aspects of the program, and can thus improve analysis precision, while some efficient transformations are enabled by specific knowledge of some program invariants. Despite the strong interaction between these techniques, they are usually considered distinct. In this paper, we demonstrate that we can turn abstract interpreters into compilers, using a simple free algebra over the standard signature of abstract domains. Functor domains correspond to compiler passes, for which soundness is translated to a proof of forward simulation, and completeness to backward simulation. We achieve translation to SSA using an abstract domain with a non-standard SSA signature. Incorporating such an SSA translation to an abstract interpreter improves its precision; in particular we show that an SSA-based non-relational domain is always more precise than a standard non-relational domain for similar time and memory complexity. Moreover, such a domain allows recovering from precision losses that occur when analyzing low-level machine code instead of source code. These results help implement analyses or compilation passes where symbolic and semantic methods simultaneously refine each other, and improves precision when compared to doing the passes in sequence. CCS Concepts: • Software and its engineering → Compilers ; Formal Software verification; • Theory of computation → Program analysis ; Program verification ; Abstraction ; Equational logic and rewriting. Dorian Lesbre, Matthieu Lemerre |
Proc. ACM Program. Lang. | 2 |
| 2024 | A Dependent Nominal Physical Type System for Static Analysis of Memory in Low Level CodeabstractWe tackle the problem of checking non-proof-carrying code , i.e. automatically proving type-safety (implying in our type system spatial memory safety) of low-level C code or of machine code resulting from its compilation without modification. This requires a precise static analysis that we obtain by having a type system which (i) is expressive enough to encode common low-level idioms, like pointer arithmetic, discriminating variants by bit-stealing on aligned pointers, storing the size and the base address of a buffer in distinct parts of the memory, or records with flexible array members, among others; and (ii) can be embedded in an abstract interpreter. We propose a new type system that meets these criteria. The distinguishing feature of this type system is a nominal organization of contiguous memory regions, which (i) allows nesting, concatenation, union, and sharing parameters between regions; (ii) induces a lattice over sets of addresses from the type definitions; and (iii) permits updates to memory cells that change their type without requiring one to control aliasing. We provide a semantic model for our type system, which enables us to derive sound type checking rules by abstract interpretation, then to integrate these rules as an abstract domain in a standard flow-sensitive static analysis. Our experiments on various challenging benchmarks show that semantic type-checking using this expressive type system generally succeeds in proving type safety and spatial memory safety of C and machine code programs without modification, using only user-provided function prototypes. Julien Simonnet, Matthieu Lemerre, Mihaela Sighireanu |
Proc. ACM Program. Lang. | 2 |
| 2023 | Reverse Template Processing Using Abstract Interpretation
Matthieu Lemerre |
SAS | 1 |
| 2023 | SSA Translation Is an Abstract InterpretationabstractStatic single assignment (SSA) form is a popular intermediate representation that helps implement useful static analyses, including global value numbering (GVN), sparse dataflow analyses, or SMT-based abstract interpretation or model checking. However, the precision of the SSA translation itself depends on static analyses, and a priori static analysis is even indispensable in the case of low-level input languages like machine code. To solve this chicken-and-egg problem, we propose to turn the SSA translation into a standard static analysis based on abstract interpretation. This allows the SSA translation to be combined with other static analyses in a single pass, taking advantage of the fact that it is more precise to combine analyses than applying passes in sequence. We illustrate the practicality of these results by writing a simple dataflow analysis that performs SSA translation, optimistic global value numbering, sparse conditional constant propagation, and loop-invariant code motion in a single small pass; and by presenting a multi-language static analyzer for both C and machine code that uses the SSA abstract domain as its main intermediate representation. Matthieu Lemerre |
Proc. ACM Program. Lang. | 1 |
| 2022 | Lightweight Shape Analysis Based on Physical Types
Olivier Nicole, Matthieu Lemerre, Xavier Rival |
VMCAI | 2 |
| 2021 | Interface Compliance of Inline Assembly: Automatically Check, Patch and RefineabstractInline assembly is still a common practice in low-level C programming, typically for efficiency reasons or for accessing specific hardware resources. Such embedded assembly codes in the GNU syntax (supported by major compilers such as GCC, Clang and ICC) have an interface specifying how the assembly codes interact with the C environment. For simplicity reasons, the compiler treats GNU inline assembly codes as blackboxes and relies only on their interface to correctly glue them into the compiled C code. Therefore, the adequacy between the assembly chunk and its interface (named compliance) is of primary importance, as such compliance issues can lead to subtle and hard-to-find bugs. We propose RUSTInA, the first automated technique for formally checking inline assembly compliance, with the extra ability to propose (proven) patches and (optimization) refinements in certain cases. RUSTInA is based on an original formalization of the inline assembly compliance problem together with novel dedicated algorithms. Our prototype has been evaluated on 202 Debian packages with inline assembly (2656 chunks), finding 2183 issues in 85 packages - 986 significant issues in 54 packages (including major projects such as ffmpeg or ALSA), and proposing patches for 92% of them. Currently, 38 patches have already been accepted (solving 156 significant issues), with positive feedback from development teams. Frédéric Recoules, Sébastien Bardin, Richard Bonichon, Matthieu Lemerre, Laurent Mounier, Marie-Laure Potet |
ICSE | 4 |
| 2021 | No Crash, No Exploit: Automated Verification of Embedded KernelsabstractThe kernel is the most safety- and security-critical component of many computer systems, as the most severe bugs lead to complete system crash or exploit. It is thus desirable to guarantee that a kernel is free from these bugs using formal methods, but the high cost and expertise required to do so are deterrent to wide applicability. We propose a method that can verify both absence of runtime errors (i.e. crashes) and absence of privilege escalation (i.e. exploits) in embedded kernels from their binary executables. The method can verify the kernel runtime independently from the application, at the expense of only a few lines of simple annotations. When given a specific application, the method can verify simple kernels without any human intervention. We demonstrate our method on two different use cases: we use our tool to help the development of a new embedded realtime kernel, and we verify an existing industrial real-time kernel executable with no modification. Results show that the method is fast, simple to use, and can prevent real errors and security vulnerabilities. Olivier Nicole, Matthieu Lemerre, Sébastien Bardin, Xavier Rival |
RTAS | 2 |
| 2021 | A relational shape abstract domain
Hugo Illous, Matthieu Lemerre, Xavier Rival |
Formal Methods Syst. Des. | 2 |
| 2020 | Detection of Polluting Test Objectives for Dataflow Criteria
Thibault Martin, Nikolai Kosmatov, Virgile Prevosto, Matthieu Lemerre |
IFM | 4 |
| 2020 | Binary-level Directed Fuzzing for Use-After-Free Vulnerabilities
Manh-Dung Nguyen, Sébastien Bardin, Richard Bonichon, Roland Groz, Matthieu Lemerre |
RAID | 5 |
| 2020 | Interprocedural Shape Analysis Using Separation Logic-Based Transformer Summaries
Hugo Illous, Matthieu Lemerre, Xavier Rival |
SAS | 2 |
| 2018 | Arrays Made Simpler: An Efficient, Scalable and Thorough PreprocessingabstractThe theory of arrays has a central place in software verification due to its ability to model memory or data structures. Yet, this theory is known to be hard to solve in both theory and practice, especially in the case of very long formulas coming from unrolling-based verification methods. Standard simplification techniques à la read-over-write suffer from two main drawbacks: they do not scale on very long sequences of stores and they miss many simplification opportunities because of a crude syntactic (dis-)equality reasoning. We propose a new approach to array formula simplification based on a new dedicated data structure together with original simplifications and low-cost reasoning. The technique is efficient, scalable and it yields significant simplification. The impact on formula resolution is always positive, and it can be dramatic on some specific classes of problems of interest, e.g. very long formula or binary-level symbolic execution. While currently implemented as a preprocessing, the approach would benefit from a deeper integration in an array solver. Benjamin Farinier, Robin David, Sébastien Bardin, Matthieu Lemerre |
LPAR | 4 |
| 2016 | Conc2Seq: A Frama-C Plugin for Verification of Parallel Compositions of C ProgramsabstractFrama-C is an extensible modular framework for analysis of C programs that offers different analyzers in the form of collaborating plugins. Currently, Frama-C does not support the proof of functional properties of concurrent code. We present Conc2Seq, a new code transformation based tool realized as a Frama-C plugin and dedicated to the verification of concurrent C programs. Assuming the program under verification respects an interleaving semantics, Conc2Seq transforms the original concurrent C program into a sequential one in which concurrency is simulated by interleavings. User specifications are automatically reintegrated into the new code without manual intervention. The goal of the proposed code transformation technique is to allow the user to reason about a concurrent program through the interleaving semantics using existing Frama-C analyzers. Allan Blanchard, Nikolai Kosmatov, Matthieu Lemerre, Frédéric Loulergue |
SCAM | 3 |
| 2015 | A Case Study on Formal Verification of the Anaxagoros Hypervisor Paging System with Frama-C
Allan Blanchard, Nikolai Kosmatov, Matthieu Lemerre, Frédéric Loulergue |
FMICS | 3 |
| 2015 | Gamifying Program Analysis
Daniel S. Fava, Julien Signoles, Matthieu Lemerre, Martin Schäf, Ashish Tiwari 0001 |
LPAR | 3 |
| 2012 | A Model of Parallel Deterministic Real-Time ComputationabstractThis paper presents a model of computation based on real-time constraints and asynchronous message passing, and proves a sufficient and necessary condition for this model to be deterministic. The model is then extended with deterministic error handling, meaning that the same error yields the same consequences on the system. We consider two different error occurrence models: at a specific time, or at a specific instruction, and conclude that the "error at a specific time" model is more suitable for practical use. We proceed by presenting a concrete implementation of this model in the PharOS real-time system. Matthieu Lemerre, Emmanuel Ohayon |
RTSS | 1 |
| 2008 | Equivalence between Schedule Representations: Theory and ApplicationsabstractMultiprocessor scheduling problems are hard because of the numerous constraints on valid schedules to take into account. This paper presents new schedule representations in order to overcome these difficulties, by allowing processors to be fractionally allocated. We prove that these representations are equivalent to the standard representations when preemptive scheduling is allowed. This allows the creation of scheduling algorithms and the study of feasibility in the simpler representations. We apply this method throughout the paper. Then, we use it to provide new simple solutions to the previously solved implicit-deadline periodic scheduling problem. We also tackle the more general problem of scheduling arbitrary time-triggered tasks, and thus in particular solve the open multiprocessor general periodic tasks scheduling problem. Contrary to previous solutions like the PFair class of algorithms, the proposed solution also works when processors have different speeds. We complete the method by providing an online schedule transformation algorithm, that allows the efficient handling of both time-triggered and event-triggered tasks, as well as the creation of online rate-based scheduling algorithms on multiprocessors. Matthieu Lemerre, Vincent David, Christophe Aussaguès, Guy Vidal-Naquet |
IEEE Real-Time and Embedded Technology and Applications Symposium | 1 |