Extracting a data flow analyser in constructive logic

  • Authors:
  • David Cachera;Thomas Jensen;David Pichardie;Vlad Rusu

  • Affiliations:
  • IRISA/ENS Cachan (Bretagne), Campus de Beaulieu, Rennes, France;IRISA/CNRS, Campus de Beaulieu, Rennes, France;IRISA/ENS Cachan (Bretagne), Campus de Beaulieu, Rennes, France;IRISA/INRIA, Campus de Beaulieu, Rennes, France

  • Venue:
  • Theoretical Computer Science - Applied semantics: Selected topics
  • Year:
  • 2005

Quantified Score

Hi-index 0.00

Visualization

Abstract

A constraint-based data flow analysis is formalised in the specification language of the Coq proof assistant. This involves defining a dependent type of lattices together with a library of lattice functors for modular construction of complex abstract domains. Constraints are represented in a way that allows for both efficient constraint resolution and correctness proof of the analysis with respect to an operational semantics. The proof of existence of a solution to the constraints is constructive which means that the extraction mechanism of Coq provides a provably correct data flow analyser in Ocaml from the proof. The library of lattices and the representation of constraints are defined in an analysis-independent fashion that provides a basis for a generic framework for proving and extracting static analysers in Coq.