Formal Verification of a C Value Analysis Based on Abstract Interpretation

Static analyzers based on abstract interpretation are complex pieces of software implementing delicate algorithms. Even if static analysis techniques are well understood, their implementation on real languages is still error-prone.

[1]  Yves Bertot,et al.  Interactive Theorem Proving and Program Development: Coq'Art The Calculus of Inductive Constructions , 2010 .

[2]  Patrick Cousot,et al.  Abstract Interpretation Frameworks , 1992, J. Log. Comput..

[3]  Xavier Leroy,et al.  Formal Verification of a C-like Memory Model and Its Uses for Verifying Program Transformations , 2008, Journal of Automated Reasoning.

[4]  Xavier Leroy,et al.  Validating Register Allocation and Spilling , 2010, CC.

[5]  Jorge A. Navas,et al.  Signedness-Agnostic Program Analysis: Precise Integer Bounds for Low-Level Code , 2012, APLAS.

[6]  Patrick Cousot,et al.  Combination of Abstractions in the ASTRÉE Static Analyzer , 2006, ASIAN.

[7]  Xavier Leroy,et al.  Formal verification of a realistic compiler , 2009, CACM.

[8]  Nikolai Kosmatov,et al.  Frama-C: A software analysis perspective , 2015, Formal Aspects of Computing.

[9]  Benjamin Grégoire,et al.  A Structured Approach to Proving Compiler Optimizations Based on Dataflow Analysis , 2004, TYPES.

[10]  Xavier Leroy,et al.  The CompCert Memory Model, Version 2 , 2012 .

[11]  Nicolas Halbwachs,et al.  Automatic discovery of linear restraints among variables of a program , 1978, POPL.

[12]  Michael Norrish,et al.  seL4: formal verification of an operating-system kernel , 2010, Commun. ACM.

[13]  Tobias Nipkow,et al.  Abstract Interpretation of Annotated Commands , 2012, ITP.

[14]  Georges Gonthier,et al.  Engineering mathematics: the odd order theorem proof , 2013, POPL.

[15]  David Cachera,et al.  A Certified Denotational Abstract Interpreter , 2010, ITP.

[16]  Georges Gonthier,et al.  The Four Colour Theorem: Engineering of a Formal Proof , 2008, ASCM.

[17]  Andrew W. Appel,et al.  Verified Software Toolchain , 2012, NASA Formal Methods.

[18]  A. Miné Weakly Relational Numerical Abstract Domains , 2004 .

[19]  Xavier Leroy,et al.  A simple, verified validator for software pipelining , 2010, POPL '10.

[20]  Solange Coupet-Grimal,et al.  A Uniform and Certified Approach for Two Static Analyses , 2004, TYPES.

[21]  Xavier Leroy,et al.  A Formally Verified Compiler Back-end , 2009, Journal of Automated Reasoning.

[22]  Patrick Cousot,et al.  The ASTREÉ Analyzer , 2005, ESOP.

[23]  C NeculaGeorge Translation validation for an optimizing compiler , 2000 .

[24]  David Pichardie,et al.  Certified Result Checking for Polyhedral Analysis of Bytecode Programs , 2010, TGC.

[25]  Benjamin C. Pierce,et al.  Mechanized Metatheory for the Masses: The PoplMark Challenge , 2005, TPHOLs.

[26]  Patrick Cousot,et al.  Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints , 1977, POPL.

[27]  David Pichardie Interprétation abstraite en logique intuitionniste : extraction d'analyseurs Java certifiés , 2005 .

[28]  Guillaume Melquiond,et al.  Floating-point arithmetic , 2023, Acta Numerica.

[29]  Antoine Miné Field-sensitive value analysis of embedded C programs with union types and pointer arithmetics , 2006, LCTES '06.

[30]  Tobias Nipkow,et al.  A machine-checked model for a Java-like language, virtual machine, and compiler , 2006, TOPL.

[31]  Andy King,et al.  Taming the Wrapping of Integer Arithmetic , 2007, SAS.

[32]  Patrick Cousot,et al.  Why does Astrée scale up? , 2009, Formal Methods Syst. Des..

[33]  Martin Hofmann,et al.  Verifying a Local Generic Solver in Coq , 2010, SAS.

[34]  Amir Pnueli,et al.  Translation Validation , 1998, TACAS.

[35]  David Cachera,et al.  Extracting a Data Flow Analyser in Constructive Logic , 2004, ESOP.

[36]  Jean Souyris,et al.  Experimental Assessment of Astrée on Safety-Critical Avionics Software , 2007, SAFECOMP.

[37]  Viktor Vafeiadis,et al.  Verifying Fence Elimination Optimisations , 2011, SAS.

[38]  Patrick Cousot,et al.  Systematic design of program analysis frameworks , 1979, POPL.

[39]  Andrew W. Appel,et al.  Separation Logic for Small-Step cminor , 2007, TPHOLs.

[40]  J. van Leeuwen,et al.  Theorem Proving in Higher Order Logics , 1999, Lecture Notes in Computer Science.

[41]  Henny B. Sipma,et al.  Efficient Strongly Relational Polyhedral Analysis , 2006, VMCAI.

[42]  François Bourdoncle,et al.  Efficient chaotic iteration strategies with widenings , 1993, Formal Methods in Programming and Their Applications.

[43]  Xavier Leroy,et al.  A Formally-Verified Alias Analysis , 2012, CPP.

[44]  George C. Necula,et al.  Translation validation for an optimizing compiler , 2000, PLDI '00.