EDBT 2026 Demo / reviewers in the wild / expert
David Monniaux
dblp:m/DavidMonniaux
· DBLP profile ↗
62ranked-venue papers
37as first author
15since 2021 · last 2026
0000-0001-7671-6126ORCID · verified
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 49 · 27 first-author · 11 since 2021Theory of computation · 15 · 10 first-author · 6 since 2021Artificial intelligence and machine learning · 2 · 1 first-authorSystems, architecture and hardware · 2 · 1 first-author · 2 since 2021Applied, interdisciplinary, general and emerging computing · 2 · 2 first-authorSecurity and privacy · 1 · 1 first-author
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2026 | Max-Policy Iteration, Revisited
David Monniaux, Helmut Seidl |
ESOP (2) | 1 |
| 2025 | Formally Verified Hardening of C Programs against Hardware Fault InjectionabstractA fault attack is a malicious manipulation of the hardware (e.g., electromagnetic or laser pulse) that modifies the behavior of the software. Fault attacks typically target sensitive applications such as cryptography services, authentication, boot-loaders or firmware updaters. They can be defended against by adding countermeasures, that is, control flow checks and redundancies, either in the hardware, or in the software running on it. In particular, software countermeasures may be added automatically during compilation. In this paper, we describe a formally verified implementation of this approach in the CompCert verified compiler for the C language. We implemented two existing countermeasures protecting the control flow of the program as program transformations over a middle-end intermediate representation of CompCert, RTL. We proved that these countermeasures are correct, that is, they do not change the observable behavior of the program during an execution without fault injection. We then modeled the effect of a fault on the behavior of the program as an extension of the semantic model of RTL. We used this new model to formally prove the efficacy of the countermeasure: all attacks are either caught, or produce no observable effects. In addition to this formal reasoning, we evaluated the protected program using Lazart, a tool for symbolic fault injection, and measured the effect of optimizations on security and performance. Basile Pesin, Sylvain Boulmé, David Monniaux, Marie-Laure Potet |
CPP | 3 |
| 2024 | Memory Simulations, Security and Optimization in a Verified CompilerabstractCurrent compilers implement security features and optimizations that require nontrivial semantic reasoning about pointers and memory allocation: the program after the insertion of the security feature, or after applying the optimization, must simulate the original program despite a different memory layout. David Monniaux |
CPP | 1 |
| 2024 | Pragmatics of formally verified yet efficient static analysis, in particular, for formally verified compilers
David Monniaux |
Int. J. Softw. Tools Technol. Transf. | 1 |
| 2023 | Testing a Formally Verified CompilerabstractWe report on how we combine tests and formal proofs while developing extensions to the CompCert formally verified compiler. David Monniaux, Léo Gourdin, Sylvain Boulmé, Olivier Lebeltel |
TAP | 1 |
| 2023 | Formally Verifying Optimizations with Block SimulationsabstractCompCert (ACM Software System Award 2021) is the first industrial-strength compiler with a mechanically checked proof of correctness. Yet, CompCert remains a moderately optimizing C compiler. Indeed, some optimizations of “gcc -O1” such as Lazy Code Motion (LCM) or Strength Reduction (SR) were still missing: developing these efficient optimizations together with their formal proofs remained a challenge. Cyril Six et al. have developed efficient formally verified translation validators for certifying the results of superblock schedulers and peephole optimizations. We revisit and generalize their approach into a framework (integrated into CompCert) able to validate many more optimizations: an enhanced superblock scheduler, but also Dead Code Elimination (DCE), Constant Propagation (CP), and more noticeably, LCM and SR. In contrast to other approaches to translation validation, we co-design our untrusted optimizations and their validators. Our optimizations provide hints, in the forms of invariants or CFG morphisms , that help keep the formally verified validators both simple and efficient. Such designs seem applicable beyond CompCert. Léo Gourdin, Benjamin Bonneau, Sylvain Boulmé, David Monniaux, Alexandre Berard |
Proc. ACM Program. Lang. | 4 |
| 2023 | Formally Verified Loop-Invariant Code Motion and Assorted OptimizationsabstractWe present an approach for implementing a formally certified loop-invariant code motion optimization by composing an unrolling pass and a formally certified yet efficient global subexpression elimination. This approach is lightweight: each pass comes with a simple and independent proof of correctness. Experiments show the approach significantly narrows the performance gap between the CompCert certified compiler and state-of-the-art optimizing compilers. Our static analysis employs an efficient yet verified hashed set structure, resulting in the fast compilation. David Monniaux, Cyril Six |
ACM Trans. Embed. Comput. Syst. | 1 |
| 2022 | Formally verified 32- and 64-bit integer division using double-precision floating-point arithmeticabstractSome recent processors are not equipped with an integer division unit. Compilers then implement division by a call to a special function supplied by the processor designers, which implements division by a loop producing one bit of quotient per iteration. This hinders compiler optimizations and results in non-constant time computation, which is a problem in some applications. We advocate instead using the processor's floating-point unit, and propose code that the compiler can easily interleave with other computations. We fully proved the correctness of our algorithm, which mixes floating-point and fixed-bitwidth integer computations, using the Coq proof assistant and successfully integrated it into the CompCert formally verified compiler. David Monniaux, Alice Pain |
ARITH | 1 |
| 2022 | Formally verified superblock schedulingabstractOn in-order processors, without dynamic instruction scheduling, program running times may be significantly reduced by compile-time instruction scheduling. We present here the first effective certified instruction scheduler that operates over superblocks (it may move instructions across branches), along with its performance evaluation. It is integrated within the CompCert C compiler, providing a complete machine-checked proof of semantic preservation from C to assembly. Cyril Six, Léo Gourdin, Sylvain Boulmé, David Monniaux, Justus Fasse, Nicolas Nardino |
CPP | 4 |
| 2022 | The Trusted Computing Base of the CompCert Verified CompilerabstractAbstract is the first realistic formally verified compiler: it provides a machine-checked mathematical proof that the code it generates matches the source code. Yet, there could be loopholes in this approach. We comprehensively analyze aspects of where errors could lead to incorrect code being generated. Possible issues range from the modeling of the source and the target languages to some techniques used to call external algorithms from within the compiler. David Monniaux, Sylvain Boulmé |
ESOP | 1 |
| 2022 | BaxMC: a CEGAR approach to Max#SAT
Thomas Vigouroux, Cristian Ene, David Monniaux, Laurent Mounier, Marie-Laure Potet |
FMCAD | 3 |
| 2021 | Simple, light, yet formally verified, global common subexpression elimination and loop-invariant code motionabstractWe present an approach for implementing a formally certified loop-invariant code motion optimization by composing an unrolling pass and a formally certified yet efficient global subexpression elimination. This approach is lightweight: each pass comes with a simple and independent proof of correctness. Experiments show the approach significantly narrows the performance gap between the CompCert certified compiler and state-of-the-art optimizing compilers. Our static analysis employs an efficient yet verified hashed set structure, resulting in fast compilation. David Monniaux, Cyril Six |
LCTES | 1 |
| 2021 | Data Abstraction: A General Framework to Handle Program Verification of Data Structures
Julien Braine, Laure Gonnord, David Monniaux |
SAS | 3 |
| 2021 | A task-based approach to parallel parametric linear programming solving, and application to polyhedral computationsabstractSummary Parametric linear programming is a central operation for polyhedral computations, as well as in certain control applications. Here, we propose a task‐based scheme for parallelizing it, with quasi‐linear speedup over large problems. This type of parallel applications is challenging, because several tasks might be computing the same region. In this article, we are presenting the algorithm itself with a parallel redundancy elimination algorithm, and conducting a thorough performance analysis. Camille Coti, David Monniaux, Hang Yu 0005 |
Concurr. Comput. Pract. Exp. | 2 |
| 2021 | The complexity gap in the static analysis of cache accesses grows if procedure calls are added
David Monniaux |
Formal Methods Syst. Des. | 1 |
| 2020 | Certified and efficient instruction scheduling: application to interlocked VLIW processorsabstractCompCert is a moderately optimizing C compiler with a formal, machine-checked, proof of correctness: after successful compilation, the assembly code has a behavior faithful to the source code. Previously, it only supported target instruction sets with sequential semantics, and did not attempt reordering instructions for optimization. We present here a CompCert backend for a VLIW core ( i.e. with explicit parallelism at the instruction level), the first CompCert backend providing scalable and efficient instruction scheduling. Furthermore, its highly modular implementation can be easily adapted to other VLIW or non-VLIW pipelined processors. Cyril Six, Sylvain Boulmé, David Monniaux |
Proc. ACM Program. Lang. | 3 |
| 2019 | An Efficient Parametric Linear Programming Solver and Application to Polyhedral Projection
Hang Yu 0005, David Monniaux |
SAS | 2 |
| 2019 | On the decidability of the existence of polyhedral invariants in transition systems
David Monniaux |
Acta Informatica | 1 |
| 2019 | On the Complexity of Cache Analysis for Different Replacement PoliciesabstractModern processors use cache memory, a memory access that “hits” the cache returns early, while a “miss” takes more time. Given a memory access in a program, cache analysis consists in deciding whether this access is always a hit, always a miss, or is a hit or a miss depending on execution. Such an analysis is of high importance for bounding the worst-case execution time of safety-critical real-time programs. There exist multiple possible policies for evicting old data from the cache when new data are brought in, and different policies, though apparently similar in goals and performance, may be very different from the analysis point of view. In this article, we explore these differences from a complexity-theoretical point of view. Specifically, we show that, among the common replacement policies, Least Recently Used is the only one whose analysis is NP-complete, whereas the analysis problems for the other policies are PSPACE-complete. David Monniaux, Valentin Touzeau |
J. ACM | 1 |
| 2019 | Fast and exact analysis for LRU cachesabstractFor applications in worst-case execution time analysis and in security, it is desirable to statically classify memory accesses into those that result in cache hits, and those that result in cache misses. Among cache replacement policies, the least recently used (LRU) policy has been studied the most and is considered to be the most predictable. The state-of-the-art in LRU cache analysis presents a tradeoff between precision and analysis efficiency: The classical approach to analyzing programs running on LRU caches, an abstract interpretation based on a range abstraction, is very fast but can be imprecise. An exact analysis was recently presented, but, as a last resort, it calls a model checker, which is expensive. In this paper, we develop an analysis based on abstract interpretation that comes close to the efficiency of the classical approach, while achieving exact classification of all memory accesses as the model-checking approach. Compared with the model-checking approach we observe speedups of several orders of magnitude. As a secondary contribution we show that LRU cache analysis problems are in general NP-complete. Valentin Touzeau, Claire Maïza, David Monniaux, Jan Reineke 0001 |
Proc. ACM Program. Lang. | 3 |
| 2018 | Extending Constraint-Only Representation of Polyhedra with Boolean Constraints
Alexey Bakhirkin, David Monniaux |
SAS | 2 |
| 2017 | Ascertaining Uncertainty for Efficient Exact Cache Analysis
Valentin Touzeau, Claire Maïza, David Monniaux, Jan Reineke 0001 |
CAV (2) | 3 |
| 2017 | Combining Forward and Backward Abstract Interpretation of Horn Clauses
Alexey Bakhirkin, David Monniaux |
SAS | 2 |
| 2017 | Scalable Minimizing-Operators on Polyhedra via Parametric Linear Programming
Alexandre Maréchal, David Monniaux, Michaël Périn |
SAS | 2 |
| 2016 | A Survey of Satisfiability Modulo Theory
David Monniaux |
CASC | 1 |
| 2016 | Cell Morphing: From Array Programs to Array-Free Horn Clauses
David Monniaux, Laure Gonnord |
SAS | 1 |
| 2016 | Program Analysis with Local Policy Iteration
Egor George Karpenkov, David Monniaux, Philipp Wendler |
VMCAI | 2 |
| 2016 | Polyhedral Approximation of Multivariate Polynomials Using Handelman's Theorem
Alexandre Maréchal, Alexis Fouilhé, Tim King 0001, David Monniaux, Michaël Périn |
VMCAI | 4 |
| 2015 | Synthesis of ranking functions using extremal counterexamplesabstractWe present a complete method for synthesizing lexicographic linear ranking functions (and thus proving termination), supported by inductive invariants, in the case where the transition relation of the program includes disjunctions and existentials (large block encoding of control flow). Previous work would either synthesize a ranking function at every basic block head, not just loop headers, which reduces the scope of programs that may be proved to be terminating, or expand large block transitions including tests into (exponentially many) elementary transitions, prior to computing the ranking function, resulting in a very large global constraint system. In contrast, our algorithm incrementally refines a global linear constraint system according to extremal counterexamples: only constraints that exclude spurious solutions are included. Experiments with our tool Termite show marked performance and scalability improvements compared to other systems. Laure Gonnord, David Monniaux, Gabriel Radanne |
PLDI | 2 |
| 2015 | A Simple Abstraction of Arrays and Maps by Program Translation
David Monniaux, Francesco Alberti |
SAS | 1 |
| 2014 | How to compute worst-case execution time by optimization modulo theory and a clever encoding of program semantics
Julien Henry, Mihail Asavoae, David Monniaux, Claire Maïza |
LCTES | 3 |
| 2014 | Speeding Up Logico-Numerical Strategy Iteration
David Monniaux, Peter Schrammel |
SAS | 1 |
| 2014 | Implementing and Reasoning About Hash-consed Data Structures in Coq
Thomas Braibant, Jacques-Henri Jourdan, David Monniaux |
J. Autom. Reason. | 3 |
| 2013 | Implementing Hash-Consed Structures in Coq
Thomas Braibant, Jacques-Henri Jourdan, David Monniaux |
ITP | 3 |
| 2013 | Efficient Generation of Correctness Certificates for the Abstract Domain of Polyhedra
Alexis Fouilhé, David Monniaux, Michaël Périn |
SAS | 2 |
| 2012 | Succinct Representations for Abstract Interpretation - Combined Analysis Algorithms and Experimental Evaluation
Julien Henry, David Monniaux, Matthieu Moy |
SAS | 2 |
| 2011 | Modular Abstractions of Reactive Nodes Using Disjunctive Invariants
David Monniaux, Martin Bodin |
APLAS | 1 |
| 2011 | Improving Strategies via SMT Solving
Thomas Gawlitza, David Monniaux |
ESOP | 2 |
| 2011 | On the Generation of Positivstellensatz Witnesses in Degenerate Cases
David Monniaux, Pierre Corbineau |
ITP | 1 |
| 2011 | Using Bounded Model Checking to Focus Fixpoint Iterations
David Monniaux, Laure Gonnord |
SAS | 1 |
| 2010 | Quantifier Elimination by Lazy Model Enumeration
David Monniaux |
CAV | 1 |
| 2009 | On Using Floating-Point Computations to Help an Exact Linear Arithmetic Decision Procedure
David Monniaux |
CAV | 1 |
| 2009 | Automatic modular abstractions for linear constraintsabstractWe propose a method for automatically generating abstract transformers for static analysis by abstract interpretation. The method focuses on linear constraints on programs operating on rational, real or floating-point variables and containing linear assignments and tests. David Monniaux |
POPL | 1 |
| 2008 | A Quantifier Elimination Algorithm for Linear Real Arithmetic
David Monniaux |
LPAR | 1 |
| 2008 | The pitfalls of verifying floating-point computationsabstractCurrent critical systems often use a lot of floating-point computations, and thus the testing or static analysis of programs containing floating-point operators has become a priority. However, correctly defining the semantics of common implementations of floating-point is tricky, because semantics may change according to many factors beyond source-code level, such as choices made by compilers. We here give concrete examples of problems that can appear and solutions for implementing in analysis software. David Monniaux |
ACM Trans. Program. Lang. Syst. | 1 |
| 2007 | Verification of device drivers and intelligent controllers: a case studyabstractThe soundness of device drivers generally cannot be verified in isolation, but has to take into account the reactions of the hardware devices. In critical embedded systems, interfaces often were simple "volatile" variables, and the interface specification typically a list of bounds on these variables. Some newer systems use "intelligent" controllers that handle dynamic worklists in shared memory and perform direct memory accesses, all asynchronously from the main processor. Thus, it is impossible to truly verify the device driver without taking the intelligent device into account, because incorrect programming of the device can lead to dire consequences, such as memory zones being erased. David Monniaux |
EMSOFT | 1 |
| 2007 | Optimal Abstraction on Real-Valued Programs
David Monniaux |
SAS | 1 |
| 2007 | Varieties of Static Analyzers: A Comparison with ASTREEabstractWe discuss the characteristic properties of ASTREE, an automatic static analyzer for proving the absence of runtime errors in safety-critical real-time synchronous control command C programs, and compare it with a variety of other program analysis tools. Patrick Cousot, Radhia Cousot, Jérôme Feret, Antoine Miné, Laurent Mauborgne, David Monniaux, Xavier Rival |
TASE | 6 |
| 2005 | The Parallel Implementation of the Astrée Static Analyzer
David Monniaux |
APLAS | 1 |
| 2005 | Compositional Analysis of Floating-Point Linear Numerical Filters
David Monniaux |
CAV | 1 |
| 2005 | The ASTREÉ Analyzer
Patrick Cousot, Radhia Cousot, Jérôme Feret, Laurent Mauborgne, Antoine Miné, David Monniaux, Xavier Rival |
ESOP | 6 |
| 2005 | Abstract interpretation of programs as Markov decision processes
David Monniaux |
Sci. Comput. Program. | 1 |
| 2003 | A static analyzer for large safety-critical softwareabstractWe show that abstract interpretation-based static program analysis can be made efficient and precise enough to formally verify a class of properties for a family of large programs with few or no false alarms. This is achieved by refinement of a general purpose static analyzer and later adaptation to particular programs of the family by the end-user through parametrization. This is applied to the proof of soundness of data manipulation operations at the machine level for periodic synchronous safety critical embedded software.The main novelties are the design principle of static analyzers by refinement and adaptation through parametrization (Sect. 3 and 7), the symbolic manipulation of expressions to improve the precision of abstract transfer functions (Sect. 6.3), the octagon (Sect. 6.2.2), ellipsoid (Sect. 6.2.3), and decision tree (Sect. 6.2.4) abstract domains, all with sound handling of rounding errors in oating point computations, widening strategies (with thresholds: Sect. 7.1.2, delayed: Sect. 7.1.3) and the automatic determination of the parameters (parametrized packing: Sect. 7.2). Bruno Blanchet, Patrick Cousot, Radhia Cousot, Jérôme Feret, Laurent Mauborgne, Antoine Miné, David Monniaux, Xavier Rival |
PLDI | 7 |
| 2003 | Abstract Interpretation of Programs as Markov Decision Processes
David Monniaux |
SAS | 1 |
| 2003 | Abstraction of Expectation Functions Using Gaussian Distributions
David Monniaux |
VMCAI | 1 |
| 2003 | Abstracting cryptographic protocols with tree automata
David Monniaux |
Sci. Comput. Program. | 1 |
| 2001 | Backwards Abstract Interpretation of Probabilistic Programs
David Monniaux |
ESOP | 1 |
| 2001 | An abstract Monte-Carlo method for the analysis of probabilistic programsabstractWe introduce a new method, combination of random testing and abstract interpretation, for the analysis of programs featuring both probabilistic and non-probabilistic nondeterminism. After introducing "ordinary" testing, we show how to combine testing and abstract interpretation and give formulas linking the precision of the results to the number of iterations. We then discuss complexity and optimization issues and end with some experimental results. David Monniaux |
POPL | 1 |
| 2001 | An Abstract Analysis of the Probabilistic Termination of Programs
David Monniaux |
SAS | 1 |
| 2000 | Abstract Interpretation of Probabilistic Semantics
David Monniaux |
SAS | 1 |
| 1999 | Decision Procedures for the Analysis of Cryptographic Protocols by Logics of BeliefabstractBelief-logic deductions are used in the analysis of cryptographic protocols. We show a new method to decide such logics. In addition to the familiar BAN logic, it is also applicable to the more advanced versions of protocol security logics, and GNY in particular; and it employs an efficient forward-chaining algorithm the completeness and termination of which are proved. Theoretic proofs, implementation decisions and results are discussed. David Monniaux |
CSFW | 1 |
| 1999 | Abstracting Cryptographic Protocols with Tree Automata
David Monniaux |
SAS | 1 |