Skip to main content

Showing 1–47 of 47 results for author: Monniaux, D

Searching in archive cs. Search in all archives.
.
  1. arXiv:2404.13672   

    cs.LO cs.PL cs.SC cs.SE

    Proceedings 18th International Workshop on Logical and Semantic Frameworks, with Applications and 10th Workshop on Horn Clauses for Verification and Synthesis

    Authors: Temur Kutsia, Daniel Ventura, David Monniaux, José F. Morales

    Abstract: This volume contains * The post-proceedings of the Eighteenth Logical and Semantic Frameworks with Applications (LSFA 2023). The meeting was held on July 1-2, 2023, organised by the Sapienza Università di Roma, Italy. LSFA aims to bring researchers and students interested in theoretical and practical aspects of logical and semantic frameworks and their applications. The covered topics include pr… ▽ More

    Submitted 21 April, 2024; originally announced April 2024.

    Journal ref: EPTCS 402, 2024

  2. Memory Simulations, Security and Optimization in a Verified Compiler

    Authors: David Monniaux

    Abstract: Current 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. In this article, we illustrate such reasoning on pointer allocations through memory extensi… ▽ More

    Submitted 13 December, 2023; originally announced December 2023.

    Comments: Certified Programs and Proofs 2024, Jan 2024, London, United Kingdom, France

  3. arXiv:2211.09572  [pdf, ps, other

    cs.PL

    Completeness in static analysis by abstract interpretation, a personal point of view

    Authors: David Monniaux

    Abstract: Static analysis by abstract interpretation is generally designed to be ''sound'', that is, it should not claim to establish properties that do not hold-in other words, not provide ''false negatives'' about possible bugs. A rarer requirement is that it should be ''complete'', meaning that it should be able to infer certain properties if they hold. This paper describes a number of practical issues a… ▽ More

    Submitted 25 May, 2023; v1 submitted 17 November, 2022; originally announced November 2022.

    Journal ref: Vincenzo Arceri; Agostino Cortesi; Pietro Ferrara; Martina Olliaro. Challenges of Software Verification, Springer Singapore, 2023, 978-981-19-9600-9

  4. BAXMC: a CEGAR approach to Max#SAT

    Authors: Thomas Vigouroux, Cristian Ene, David Monniaux, Laurent Mounier, Marie-Laure Potet

    Abstract: Max#SAT is an important problem with multiple applications in security and program synthesis that is proven hard to solve. It is defined as: given a parameterized quantifier-free propositional formula compute parameters such that the number of models of the formula is maximal. As an extension, the formula can include an existential prefix. We propose a CEGAR-based algorithm and refinements thereof… ▽ More

    Submitted 6 February, 2023; v1 submitted 2 November, 2022; originally announced November 2022.

    Comments: FMCAD 2022, Oct 2022, Trente, Italy

  5. arXiv:2207.08420  [pdf, ps, other

    cs.LO

    Formally verified 32- and 64-bit integer division using double-precision floating-point arithmetic

    Authors: David Monniaux, Alice Pain

    Abstract: Some 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… ▽ More

    Submitted 18 July, 2022; originally announced July 2022.

  6. arXiv:2202.11955  [pdf, ps, other

    cs.CC

    NP$^{\#P}$ = $\exists$PP and other remarks about maximized counting

    Authors: David Monniaux

    Abstract: We consider the following decision problem DMAX#SAT, and generalizations thereof: given a quantifier-free propositional formula $F(\mathbf{x},\mathbf{y})$, where $\mathbf{x},\mathbf{y}$ are tuples of variables, and a bound $B$, determine if there is $\vec{x}$ such that $\#\{\mathbf{y} \mid F(\mathbf{x},\mathbf{y})\} \geq B$. This is the decision version of the problem of MAX#SAT: finding… ▽ More

    Submitted 24 February, 2022; originally announced February 2022.

  7. arXiv:2201.13056  [pdf, ps, other

    cs.AR cs.CC cs.FL cs.PL

    The complexity gap in the static analysis of cache accesses grows if procedure calls are added

    Authors: David Monniaux

    Abstract: The static analysis of cache accesses consists in correctly predicting which accesses are hits or misses. While there exist good exact and approximate analyses for caches implementing the least recently used (LRU) replacement policy, such analyses were harder to find for other replacement policies. A theoretical explanation was found: for an appropriate setting of analysis over control-flow graphs… ▽ More

    Submitted 31 January, 2022; originally announced January 2022.

  8. The Trusted Computing Base of the CompCert Verified Compiler

    Authors: David Monniaux, Sylvain Boulmé

    Abstract: CompCert 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 CompCert where errors could lead to incorrect code being generated. Possible issues range from the modeling of the source and the target languages to som… ▽ More

    Submitted 10 October, 2022; v1 submitted 25 January, 2022; originally announced January 2022.

    Journal ref: Programming Languages and Systems (ESOP 2022), Apr 2022, Munich, Germany. pp.204-233

  9. arXiv:2105.01344  [pdf, other

    cs.PL

    Simple, Light, Yet Formally Verified, Global Common Subexpression Elimination and Loop-Invariant Code Motion

    Authors: David Monniaux, Cyril Six

    Abstract: We 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 certif… ▽ More

    Submitted 4 May, 2021; originally announced May 2021.

  10. arXiv:2009.14435  [pdf, other

    cs.CG cs.DC

    A task-based approach to parallel parametric linear programming solving, and application to polyhedral computations

    Authors: Camille Coti, David Monniaux, Hang Yu

    Abstract: 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 mightbe computing the same region. In this paper, we are presenting thealgorithm itself with a par… ▽ More

    Submitted 29 September, 2020; originally announced September 2020.

    Comments: arXiv admin note: text overlap with arXiv:1904.06079

  11. arXiv:1911.09755  [pdf, ps, other

    math.OC cs.CG cs.PL

    An Efficient Parametric Linear Programming Solver and Application to Polyhedral Projection

    Authors: Hang Yu, David Monniaux

    Abstract: Polyhedral projection is a main operation of the polyhedron abstract domain.It can be computed via parametric linear programming (PLP), which is more efficient than the classic Fourier-Motzkin elimination method.In prior work, PLP was done in arbitrary precision rational arithmetic.In this paper, we present an approach where most of the computation is performed in floating-point arithmetic, then e… ▽ More

    Submitted 18 November, 2019; originally announced November 2019.

    Journal ref: Static Analysis (SAS 2019), Oct 2019, Porto, Portugal. pp.203-224

  12. arXiv:1904.06079  [pdf, other

    cs.DC cs.CG

    Parallel parametric linear programming solving, and application to polyhedral computations

    Authors: Camille Coti, David Monniaux, Hang Yu

    Abstract: Parametric linear programming is central in polyhedral computations and in certain control applications.We propose a task-based scheme for parallelizing it, with quasi-linear speedup over large problems.

    Submitted 12 April, 2019; originally announced April 2019.

  13. arXiv:1811.01740  [pdf, ps, other

    cs.PL cs.AR cs.CC

    On the complexity of cache analysis for different replacement policies

    Authors: David Monniaux, Valentin Touzeau

    Abstract: Modern 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-tim… ▽ More

    Submitted 23 September, 2019; v1 submitted 5 November, 2018; originally announced November 2018.

  14. arXiv:1811.01670  [pdf, other

    cs.PL cs.CC

    Fast and exact analysis for LRU caches

    Authors: Claire Maïza, Valentin Touzeau, David Monniaux, Jan Reineke

    Abstract: For 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… ▽ More

    Submitted 20 December, 2018; v1 submitted 5 November, 2018; originally announced November 2018.

  15. Ascertaining Uncertainty for Efficient Exact Cache Analysis

    Authors: Valentin Touzeau, Claire Maïza, David Monniaux, Jan Reineke

    Abstract: Static cache analysis characterizes a program's cache behavior by determining in a sound but approximate manner which memory accesses result in cache hits and which result in cache misses. Such information is valuable in optimizing compilers, worst-case execution time analysis, and side-channel attack quantification and mitigation.Cache analysis is usually performed as a combination of `must' and… ▽ More

    Submitted 20 December, 2018; v1 submitted 28 September, 2017; originally announced September 2017.

    Journal ref: Rupak Majumdar; Viktor Kuncak. Computer Aided Verification - 29th International Conference, Jul 2017, Heidelberg, France. Springer, 10427 (2), pp.20 - 40, 2017, Lecture notes in computer science. http://cavconference.org/2017/

  16. arXiv:1709.04382  [pdf, ps, other

    cs.PL cs.LO

    On the decidability of the existence of polyhedral invariants in transition systems

    Authors: David Monniaux

    Abstract: Automated program verification often proceeds by exhibiting inductive invariants entailing the desired properties.For numerical properties, a classical class of invariants is convex polyhedra: solution sets of system of linear (in)equalities.Forty years of research on convex polyhedral invariants have focused, on the one hand, on identifying "easier" subclasses, on the other hand on heuristics for… ▽ More

    Submitted 15 May, 2018; v1 submitted 13 September, 2017; originally announced September 2017.

  17. arXiv:1707.01277  [pdf, other

    cs.PL cs.LO

    Combining Forward and Backward Abstract Interpretation of Horn Clauses

    Authors: Alexey Bakhirkin, David Monniaux

    Abstract: Alternation of forward and backward analyses is a standard technique in abstract interpretation of programs, which is in particular useful when we wish to prove unreachability of some undesired program states. The current state-of-the-art technique for combining forward (bottom-up, in logic programming terms) and backward (top-down) abstract interpretation of Horn clauses is query-answer transform… ▽ More

    Submitted 7 August, 2017; v1 submitted 5 July, 2017; originally announced July 2017.

    Comments: Francesco Ranzato. 24th International Static Analysis Symposium (SAS), Aug 2017, New York City, United States. Springer, Static Analysis

  18. arXiv:1701.08030  [pdf, ps, other

    cs.PL cs.LO

    Model Checking of Cache for WCET Analysis Refinement

    Authors: Valentin Touzeau, Claire Maïza, David Monniaux

    Abstract: On real-time systems running under timing constraints, scheduling can be performed when one is aware of the worst case execution time (WCET) of tasks. Usually, the WCET of a task is unknown and schedulers make use of safe over-approximations given by static WCET analysis. To reduce the over-approximation, WCET analysis has to gain information about the underlying hardware behavior, such as pipelin… ▽ More

    Submitted 6 July, 2017; v1 submitted 27 January, 2017; originally announced January 2017.

  19. arXiv:1609.09288  [pdf, other

    cs.LO

    Formula Slicing: Inductive Invariants from Preconditions

    Authors: Egor George Karpenkov, David Monniaux

    Abstract: We propose a "formula slicing" method for finding inductive invariants. It is based on the observation that many loops in the program affect only a small part of the memory, and many invariants which were valid before a loop are still valid after. Given a precondition of the loop, obtained from the preceding program fragment, we weaken it until it becomes inductive. The weakening procedure is gu… ▽ More

    Submitted 2 October, 2016; v1 submitted 29 September, 2016; originally announced September 2016.

  20. arXiv:1606.04786  [pdf, ps, other

    cs.LO

    A Survey of Satisfiability Modulo Theory

    Authors: David Monniaux

    Abstract: Satisfiability modulo theory (SMT) consists in testing the satisfiability of first-order formulas over linear integer or real arithmetic, or other theories. In this survey, we explain the combination of propositional satisfiability and decision procedures for conjunctions known as DPLL(T), and the alternative "natural domain" approaches. We also cover quantifiers, Craig interpolants, polynomial ar… ▽ More

    Submitted 15 June, 2016; originally announced June 2016.

    Comments: Computer Algebra in Scientific Computing, Sep 2016, Bucharest, Romania. 2016

  21. arXiv:1509.09092  [pdf, ps, other

    cs.PL cs.LO

    An encoding of array verification problems into array-free Horn clauses

    Authors: David Monniaux, Laure Gonnord

    Abstract: Automatically verifying safety properties of programs is hard, and it is even harder if the program acts upon arrays or other forms of maps. Many approaches exist for verifying programs operating upon Boolean and integer values (e.g. abstract interpretation, counterexample-guided abstraction refinement using interpolants), but transposing them to array properties has been fraught with difficulties… ▽ More

    Submitted 30 September, 2015; originally announced September 2015.

  22. Program Analysis with Local Policy Iteration

    Authors: George Karpenkov, David Monniaux, Philipp Wendler

    Abstract: We present a new algorithm for deriving numerical invariants that combines the precision of max-policy iteration with the flexibility and scalability of conventional Kleene iterations. It is defined in the Configurable Program Analysis (CPA) framework, thus allowing inter-analysis communication. It uses adjustable-block encoding in order to traverse loop-free program sections, possibly containin… ▽ More

    Submitted 3 November, 2015; v1 submitted 11 September, 2015; originally announced September 2015.

  23. arXiv:1506.04161  [pdf, ps, other

    cs.PL cs.LO

    A simple abstraction of arrays and maps by program translation

    Authors: David Monniaux, Francesco Alberti

    Abstract: We present an approach for the static analysis of programs handling arrays, with a Galois connection between the semantics of the array program and semantics of purely scalar operations. The simplest way to implement it is by automatic, syntactic transformation of the array program into a scalar program followed analysis of the scalar program with any static analysis technique (abstract interpreta… ▽ More

    Submitted 12 June, 2015; originally announced June 2015.

  24. arXiv:1405.7962  [pdf, ps, other

    cs.PL cs.LO

    How to Compute Worst-Case Execution Time by Optimization Modulo Theory and a Clever Encoding of Program Semantics

    Authors: Julien Henry, Mihail Asavoae, David Monniaux, Claire Maïza

    Abstract: In systems with hard real-time constraints, it is necessary to compute upper bounds on the worst-case execution time (WCET) of programs; the closer the bound to the real WCET, the better. This is especially the case of synchronous reactive control loops with a fixed clock; the WCET of the loop body must not exceed the clock period. We compute the WCET (or at least a close upper bound thereof) as t… ▽ More

    Submitted 30 May, 2014; originally announced May 2014.

    Comments: ACM SIGPLAN/SIGBED Conference on Languages, Compilers and Tools for Embedded Systems 2014, Edimbourg : United Kingdom (2014)

  25. arXiv:1403.2319  [pdf, other

    cs.LO

    Speeding Up Logico-Numerical Strategy Iteration (extended version)

    Authors: David Monniaux, Peter Schrammel

    Abstract: We introduce an efficient combination of polyhedral analysis and predicate partitioning. Template polyhedral analysis abstracts numerical variables inside a program by one polyhedron per control location, with a priori fixed directions for the faces. The strongest inductive invariant in such an abstract domain may be computed by upward strategy iteration. If the transition relation includes disjun… ▽ More

    Submitted 2 October, 2014; v1 submitted 10 March, 2014; originally announced March 2014.

    Comments: Extended version of a paper submitted to SAS 2014

    ACM Class: D.2.4; F.3.1

  26. Implementing and reasoning about hash-consed data structures in Coq

    Authors: Thomas Braibant, Jacques-Henri Jourdan, David Monniaux

    Abstract: We report on four different approaches to implementing hash-consing in Coq programs. The use cases include execution inside Coq, or execution of the extracted OCaml code. We explore the different trade-offs between faithful use of pristine extracted code, and code that is fine-tuned to make use of OCaml programming constructs not available in Coq. We discuss the possible consequences in terms of p… ▽ More

    Submitted 25 September, 2015; v1 submitted 7 November, 2013; originally announced November 2013.

    Journal ref: Journal of Automated Reasoning, Springer Verlag (Germany), 2014, 53 (3), pp.271-304

  27. arXiv:1304.6038  [pdf, ps, other

    cs.PL cs.LO

    Implementing hash-consed structures in Coq

    Authors: Thomas Braibant, Jacques-Henri Jourdan, David Monniaux

    Abstract: We report on three different approaches to use hash-consing in programs certified with the Coq system, using binary decision diagrams (BDD) as running example. The use cases include execution inside Coq, or execution of the extracted OCaml code. There are different trade-offs between faithful use of pristine extracted code, and code that is fine-tuned to make use of OCaml programming constructs no… ▽ More

    Submitted 22 April, 2013; originally announced April 2013.

  28. arXiv:1304.0864  [pdf, other

    cs.PL cs.LO cs.MS

    Efficient Generation of Correctness Certificates for the Abstract Domain of Polyhedra

    Authors: Alexis Fouilhé, David Monniaux, Michaël Périn

    Abstract: Polyhedra form an established abstract domain for inferring runtime properties of programs using abstract interpretation. Computations on them need to be certified for the whole static analysis results to be trusted. In this work, we look at how far we can get down the road of a posteriori verification to lower the overhead of certification of the abstract domain of polyhedra. We demonstrate metho… ▽ More

    Submitted 3 April, 2013; originally announced April 2013.

  29. Invariant Generation through Strategy Iteration in Succinctly Represented Control Flow Graphs

    Authors: Thomas Martin Gawlitza, David Monniaux

    Abstract: We consider the problem of computing numerical invariants of programs, for instance bounds on the values of numerical program variables. More specifically, we study the problem of performing static analysis by abstract interpretation using template linear constraint domains. Such invariants can be obtained by Kleene iterations that are, in order to guarantee termination, accelerated by widening o… ▽ More

    Submitted 28 September, 2012; v1 submitted 4 September, 2012; originally announced September 2012.

    Comments: 35 pages, conference version published at ESOP 2011, this version is a CoRR version of our submission to Logical Methods in Computer Science

    ACM Class: D.2.4, F.3.1 (D.2.1, D.2.4, D.3.1, E.1), F.3.2 (D.3.1)

    Journal ref: Logical Methods in Computer Science, Volume 8, Issue 3 (September 30, 2012) lmcs:689

  30. arXiv:1207.3937  [pdf, ps, other

    cs.PL cs.LO

    PAGAI: a path sensitive static analyzer

    Authors: Julien Henry, David Monniaux, Matthieu Moy

    Abstract: We describe the design and the implementation of PAGAI, a new static analyzer working over the LLVM compiler infrastructure, which computes inductive invariants on the numerical variables of the analyzed program. PAGAI implements various state-of-the-art algorithms combining abstract interpretation and decision procedures (SMT-solving), focusing on distinction of paths inside the control flow grap… ▽ More

    Submitted 17 July, 2012; originally announced July 2012.

    Comments: Tools for Automatic Program AnalysiS (TAPAS 2012), Deauville : France (2012)

  31. arXiv:1206.4234  [pdf, ps, other

    cs.PL

    Succinct Representations for Abstract Interpretation

    Authors: Julien Henry, David Monniaux, Matthieu Moy

    Abstract: Abstract interpretation techniques can be made more precise by distinguishing paths inside loops, at the expense of possibly exponential complexity. SMT-solving techniques and sparse representations of paths and sets of paths avoid this pitfall. We improve previously proposed techniques for guided static analysis and the generation of disjunctive invariants by combining them with techniques for su… ▽ More

    Submitted 19 June, 2012; originally announced June 2012.

    Comments: Static analysis symposium (SAS), Deauville : France (2012)

  32. arXiv:1109.2405  [pdf, ps, other

    cs.PL

    Stratified Static Analysis Based on Variable Dependencies

    Authors: David Monniaux, Julien Le Guen

    Abstract: In static analysis by abstract interpretation, one often uses widening operators in order to enforce convergence within finite time to an inductive invariant. Certain widening operators, including the classical one over finite polyhedra, exhibit an unintuitive behavior: analyzing the program over a subset of its variables may lead a more precise result than analyzing the original program! In this… ▽ More

    Submitted 12 September, 2011; originally announced September 2011.

  33. arXiv:1109.1905  [pdf, ps, other

    cs.PL cs.LO

    Modular Abstractions of Reactive Nodes using Disjunctive Invariants

    Authors: David Monniaux, Martin Bodin

    Abstract: We wish to abstract nodes in a reactive programming language, such as Lustre, into nodes with a simpler control structure, with a bound on the number of control states. In order to do so, we compute disjunctive invariants in predicate abstraction, with a bounded number of disjuncts, then we abstract the node, each disjunct representing an abstract state. The computation of the disjunctive invarian… ▽ More

    Submitted 9 September, 2011; originally announced September 2011.

  34. arXiv:1106.2637  [pdf, ps, other

    cs.PL cs.LO

    Using Bounded Model Checking to Focus Fixpoint Iterations

    Authors: David Monniaux, Laure Gonnord

    Abstract: Two classical sources of imprecision in static analysis by abstract interpretation are widening and merge operations. Merge operations can be done away by distinguishing paths, as in trace partitioning, at the expense of enumerating an exponential number of paths. In this article, we describe how to avoid such systematic exploration by focusing on a single path at a time, designated by SMT-solving… ▽ More

    Submitted 14 June, 2011; originally announced June 2011.

  35. arXiv:1105.4421  [pdf, ps, other

    math.LO cs.SC math.AG

    On the Generation of Positivstellensatz Witnesses in Degenerate Cases

    Authors: David Monniaux, Pierre Corbineau

    Abstract: One can reduce the problem of proving that a polynomial is nonnegative, or more generally of proving that a system of polynomial inequalities has no solutions, to finding polynomials that are sums of squares of polynomials and satisfy some linear equality (Positivstellensatz). This produces a witness for the desired property, from which it is reasonably easy to obtain a formal proof of the propert… ▽ More

    Submitted 23 May, 2011; originally announced May 2011.

    Comments: To appear in ITP 2011

    Journal ref: Interactive Theorem Proving, Nijmegen : Pays-Bas (2011)

  36. arXiv:1101.2812  [pdf, ps, other

    cs.PL cs.CC cs.LO math.OC

    Improving Strategies via SMT Solving

    Authors: Thomas Martin Gawlitza, David Monniaux

    Abstract: We consider the problem of computing numerical invariants of programs by abstract interpretation. Our method eschews two traditional sources of imprecision: (i) the use of widening operators for enforcing convergence within a finite number of iterations (ii) the use of merge operations (often, convex hulls) at the merge points of the control flow graph. It instead computes the least inductive inva… ▽ More

    Submitted 14 January, 2011; originally announced January 2011.

  37. Automatic Modular Abstractions for Template Numerical Constraints

    Authors: David Monniaux

    Abstract: We 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. Given the specification of an abstract domain, and a program block, our method automatically outputs an implementation of the c… ▽ More

    Submitted 26 May, 2010; originally announced May 2010.

    Comments: final version submitted to LMCS

    Report number: LMCS-2009-385 ACM Class: F.3.1; F.3.2; F.4.1

    Journal ref: Logical Methods in Computer Science, Volume 6, Issue 3 (July 20, 2010) lmcs:1015

  38. arXiv:0909.4013  [pdf, ps, other

    cs.PL cs.LO

    Automatic modular abstractions for template numerical constraints

    Authors: David Monniaux

    Abstract: We 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. In addition to loop-free code, the same method also applies for obtaining least fixed points as functions of the precondition,… ▽ More

    Submitted 31 May, 2010; v1 submitted 22 September, 2009; originally announced September 2009.

  39. arXiv:0904.3525  [pdf, ps, other

    cs.LO math.NA

    On using floating-point computations to help an exact linear arithmetic decision procedure

    Authors: David Monniaux

    Abstract: We consider the decision problem for quantifier-free formulas whose atoms are linear inequalities interpreted over the reals or rationals. This problem may be decided using satisfiability modulo theory (SMT), using a mixture of a SAT solver and a simplex-based decision procedure for conjunctions. State-of-the-art SMT solvers use simplex implementations over rational numbers, which perform well f… ▽ More

    Submitted 22 April, 2009; originally announced April 2009.

    ACM Class: F.4.1; G.1.6

  40. arXiv:0902.3722  [pdf, ps, other

    cs.LO cs.PL

    A minimalistic look at widening operators

    Authors: David Monniaux

    Abstract: We consider the problem of formalizing the familiar notion of widening in abstract interpretation in higher-order logic. It turns out that many axioms of widening (e.g. widening sequences are ascending) are not useful for proving correctness. After kee** only useful axioms, we give an equivalent characterization of widening as a lazily constructed well-founded tree. In type systems supporting… ▽ More

    Submitted 23 November, 2009; v1 submitted 21 February, 2009; originally announced February 2009.

    ACM Class: F.3.2; F.4.1

  41. arXiv:0811.0166  [pdf, ps, other

    cs.PL cs.LO

    Automatic Modular Abstractions for Linear Constraints

    Authors: David Monniaux

    Abstract: We 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. In addition to loop-free code, the same method also applies for obtaining least fixed points as functions of the precondition… ▽ More

    Submitted 2 November, 2008; originally announced November 2008.

    ACM Class: F.3.1; F.3.2; F.4.1

  42. arXiv:0803.1575  [pdf, ps, other

    cs.LO

    A Quantifier Elimination Algorithm for Linear Real Arithmetic

    Authors: David Monniaux

    Abstract: We propose a new quantifier elimination algorithm for the theory of linear real arithmetic. This algorithm uses as subroutine satisfiability modulo this theory, a problem for which there are several implementations available. The quantifier elimination algorithm presented in the paper is compared, on examples arising from program analysis problems, to several other implementations, all of which… ▽ More

    Submitted 4 September, 2008; v1 submitted 11 March, 2008; originally announced March 2008.

    Comments: accepted at LPAR '08

  43. arXiv:0706.0252  [pdf, ps, other

    cs.PL math.NA

    Applying the Z-transform for the static analysis of floating-point numerical filters

    Authors: David Monniaux

    Abstract: Digital linear filters are used in a variety of applications (sound treatment, control/command, etc.), implemented in software, in hardware, or a combination thereof. For safety-critical applications, it is necessary to bound all variables and outputs of all filters. We give a compositional, effective abstraction for digital linear filters expressed as block diagrams, yielding sound, precise bou… ▽ More

    Submitted 2 June, 2007; originally announced June 2007.

  44. An Abstract Monte-Carlo Method for the Analysis of Probabilistic Programs

    Authors: David Monniaux

    Abstract: We 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 opti… ▽ More

    Submitted 30 January, 2007; originally announced January 2007.

    Journal ref: POPL: Annual Symposium on Principles of Programming Languages (2001) 93 - 101

  45. A Static Analyzer for Large Safety-Critical Software

    Authors: Bruno Blanchet, Patrick Cousot, Radhia Cousot, Jerôme Feret, Laurent Mauborgne, Antoine Miné, David Monniaux, Xavier Rival

    Abstract: We 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… ▽ More

    Submitted 30 January, 2007; originally announced January 2007.

    ACM Class: D.2.4; D.3.1; F.3.1; F.3.2

    Journal ref: PLDI: Conference on Programming Language Design and Implementation (2003) 196 - 207

  46. The pitfalls of verifying floating-point computations

    Authors: David Monniaux

    Abstract: Current critical systems commonly 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 with many factors beyond source-code level, such as choices made by compilers. We her… ▽ More

    Submitted 22 May, 2008; v1 submitted 30 January, 2007; originally announced January 2007.

    ACM Class: D.2.4; D.3.1; F.3.1; G.1.0; G.4

    Journal ref: ACM Transactions on Programming Languages and Systems 30, 3 (2008) 12

  47. The parallel implementation of the Astrée static analyzer

    Authors: David Monniaux

    Abstract: The Astrée static analyzer is a specialized tool that can prove the absence of runtime errors, including arithmetic overflows, in large critical programs. Kee** analysis times reasonable for industrial use is one of the design objectives. In this paper, we discuss the parallel implementation of the analysis.

    Submitted 30 January, 2007; originally announced January 2007.

    ACM Class: D.2.4

    Journal ref: APLAS: Programming languages and systems (2005) 86-96