Provably Correct Flow Graph Extraction for Boolean Programs

Boolean programs are an established model for software analysis that is expressive enough to represent features in common programming languages and is amenable to model checking [BR00]. Boolean flow graphs are a graphical model of Boolean programs that is suitable for capturing the structure and behaviour of such programs [Sol11]. In particular, such models are suitable for the verification of temporal properties, and will be used to extend an existing method and tool set for compositional verification of software [HG10].

Tasks:
  1. Define formally Boolean programs
  2. Define formally Boolean flow graphs: structure and behaviour
  3. Define formally a translation from Boolean programs to Boolean flow graphs
  4. Prove correctness of the translation:
  5. Implement the translation in OCaml
  6. Perform a program verification exercise (with support from Siavash):

Last modified: 24 August 2011