Previous Up Next

8  Programmer's Manual

8.1  Architecture of Blast

Blast uses the CIL infrastructure as the front end to read in C programs. The programs are internally represented as control-flow automata (implemented in module CFA). Sets of states are represented by the Region data structure. The Region module represents sets of states as boolean formulas over a set of base predicates and allows boolean operations on regions, and checks for emptiness and inclusion. The Abstraction functor takes the Region module and the CFA module, providing in addition (concrete and abstract) pre and post operations, and methods to analyze counterexamples. Using the Abstraction module, the LazyAbstraction functor implements the model checking algorithm at a high level of abstraction.

Blast uses the Simplify Theorem Prover and the Vampyre Proof-Generating Theorem Prover as underlying decision procedures. Boolean formula manipulations are done using the Colorado University Decision Diagram package.

8.2  API Documentation

The architecture of Blast is described in the file src/blastArch.ml. We also have an online documentation extracted from the code. We index below the main types that are used to represent C programs in CIL:
Previous Up Next