Bitfield Generator
==================
This is the tool used in the seL4 project to generate bitfield structures and
their associated accessor functions from a domain-specific language (DSL)
specification.  The tool also generates proofs of functional correctness for
these methods automatically.  For details see:

Cock, D. Bitfields and Tagged Unions in C: Verification through Automatic
Generation. Proceedings of the 5th International Verification Workshop, 2008.

Usage
-----
The included Makefile provides example invocations to generate C structure
definitions (.h files), and Isabelle/HOL definitions and correctness proofs
(.thy files).  The toplevel theories (simple.thy) can then be inspected and
run in Isabelle.  At present, these demonstrate only basic usage, and
integration with the VCG.

To run the proofs requires the C formalisation, which is available separately.
For details see:

Tuch, H and Klein G and Norrish M. Types, Bytes and Separation Logic.
Proceedings of the 34th POPL, 2007.

Files
-----
    * bf.vim
        A vim syntax highlighting file for .bf files.
    * bitfield_gen.py
        The bitfield generator script.
    * COPYRIGHT
        License information.
    * examples/
        Contains example bitfield specifications.  Build with 'make'.
    * lex.py & yacc.py
        Parser library taken from PLY (Python Lex & Yacc), see files for
        copyright and other details.
    * Makefile
        Contains invocation examples.
    * README
        This file.
    * umm.py
        Library to parse UMM type information, as produced by the C parser.

Authors: David Cock, Simon Winwood, Thomas Sewell
---
Copyright (c) 2013, NICTA
All rights reserved.
See file COPYRIGHT for details
