Copyright © 2005 Elsevier B.V. All rights reserved.
Extracting a data flow analyser in constructive logic
Available online 24 June 2005.
References and further reading may be available for this article. To view references and further reading you must purchase this article.
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.
Keywords: Program analysis; Constructive logic; Lattices; Theorem proving; Constraint solving






E-mail Article
Add to my Quick Links

Cited By in Scopus (5)






