Numeric Bounds Analysis with Conflict-Driven Learning

This paper presents a sound and complete analysis for determining the range of floating-point variables in control software. Existing approaches to bounds analysis either use convex abstract domains and are efficient but imprecise, or use floating-point decision procedures, and are precise but do not scale. We present a new analysis that elevates the architecture of a modern SAT solver to operate over floating-point intervals. In experiments, our analyser is consistently more precise than a state-of-the-art static analyser and significantly outperforms floating-point decision procedures.

[1]  Kenneth L. McMillan,et al.  Generalizing DPLL to Richer Logics , 2009, CAV.

[2]  Stephen F. Siegel,et al.  FEVS: A Functional Equivalence Verification Suite for High-Performance Scientific Computing , 2011, Math. Comput. Sci..

[3]  Daniel Kroening,et al.  A Tool for Checking ANSI-C Programs , 2004, TACAS.

[4]  Jirí Srba,et al.  Comparing the Expressiveness of Timed Automata and Timed Extensions of Petri Nets , 2008, FORMATS.

[5]  Patrick Cousot,et al.  Design and Implementation of a Special-Purpose Static Program Analyzer for Safety-Critical Real-Time Embedded Software , 2002, The Essence of Computation.

[6]  Sumit Gulwani,et al.  Control-flow refinement and progress invariants for bound analysis , 2009, PLDI '09.

[7]  Patrick Cousot,et al.  Formal language, grammar and set-constraint-based program analysis by abstract interpretation , 1995, FPCA '95.

[8]  David A. Schmidt,et al.  The Essence of Computation , 2002 .

[9]  Chao Wang,et al.  Using Counterexamples for Improving the Precision of Reachability Computation with Polyhedra , 2007, CAV.

[10]  Eric Goubault,et al.  Static Analysis of Numerical Algorithms , 2006, SAS.

[11]  Kenneth L. McMillan Lazy Annotation for Program Testing and Verification , 2010, CAV.

[12]  Alexander Aiken,et al.  Introduction to Set Constraint-Based Program Analysis , 1999, Sci. Comput. Program..

[13]  Scott Cotton Natural Domain SMT: A Preliminary Assessment , 2010, FORMATS.

[14]  Andy King,et al.  Widening Polyhedra with Landmarks , 2006, APLAS.

[15]  Xavier Rival,et al.  The trace partitioning abstract domain , 2007, TOPL.

[16]  P. Smokowski,et al.  Conflict Resolution , 1989, International Conference on Principles and Practice of Constraint Programming.

[17]  William R. Harris,et al.  Program analysis via satisfiability modulo path programs , 2010, POPL '10.

[18]  Rajeev Alur,et al.  A Temporal Logic of Nested Calls and Returns , 2004, TACAS.

[19]  Cesare Tinelli,et al.  Solving SAT and SAT Modulo Theories: From an abstract Davis--Putnam--Logemann--Loveland procedure to DPLL(T) , 2006, JACM.

[20]  Sriram Sankaranarayanan,et al.  Static Analysis in Disjunctive Numerical Domains , 2006, SAS.

[21]  Edmund M. Clarke,et al.  Counterexample-guided abstraction refinement , 2003, 10th International Symposium on Temporal Representation and Reasoning, 2003 and Fourth International Conference on Temporal Logic. Proceedings..

[22]  Leonardo Mendonça de Moura,et al.  Cutting to the Chase , 2011, Journal of Automated Reasoning.

[23]  Roberto Rossi,et al.  Synthesizing Filtering Algorithms for Global Chance-Constraints , 2009, CP.

[24]  Nikolaj Bjørner,et al.  Automated Deduction - CADE-23 - 23rd International Conference on Automated Deduction, Wroclaw, Poland, July 31 - August 5, 2011. Proceedings , 2011, CADE.

[25]  Sriram Sankaranarayanan,et al.  Refining the control structure of loops using static analysis , 2009, EMSOFT '09.

[26]  Sriram K. Rajamani,et al.  Counterexample Driven Refinement for Abstract Interpretation , 2006, TACAS.

[27]  Supratik Chakraborty,et al.  Automatically Refining Abstract Interpretations , 2008, TACAS.

[28]  Robert J. Simmons,et al.  Proofs from Tests , 2008, IEEE Transactions on Software Engineering.