A practical tutorial on getting started with CProver development is
added and linked to from the front page. The tutorial contains an
overview of the codebase and a few preliminary programming exercises,
intended to give would-be CProver contributors an introduction to the
key data structures used throughout the codebase.
This commit introduces a module.md file for several CProver directories.
Each of these is turned into a page under the Modules section in the
generated Doxygen documentation.
The intention is that developers wishing to contribute to one specific
aspect of CProver can get a high-level architectural overview of a
particular directory; the documentation describes the input to and
output from that directory, and introduces the main classes or entry
points.
By way of a "table of contents," the file cbmc/module.md contains a
diagram describing how each of the directories is invoked by CBMC in
order, and the nodes of the diagram hyperlink to the appropriate
documentation. The intention is that developers wishing to contribute to
CBMC as a whole can understand the entire process, from source files to
bug reports and counterexample production.
This documentation is derived from Mark Tuttle's notes on a talk given
by Michael Tautschnig.
* The existing HTML documentation under doc/html-manual has been
converted to Markdown. This was done automatically using Pandoc, plus
some manual work to give identifiers to sections and changing internal
links to point to those sections with \ref.
* The Doxygen front page now contains some content: a link to the
doxygen-ated HTML manual, and a note about the API documentation. The
intention here is that the entire Doxygen site could be hosted
publicly, serving both users of and contributors to CBMC from a single
site.
* The doxyfile is updated to enable these changes.