|
1 | | -\page user_guide User guide |
| 1 | +\page user_guide User Guide |
2 | 2 |
|
3 | | -This is a CBMC user guide. |
| 3 | +For a quick start with CBMC on simple problems, read |
4 | 4 |
|
5 | | -* [CProver manual](cprover-manual/index.html) |
6 | | -* [CProver tutorial](cprover-manual/md_cbmc-tutorial.html) |
7 | | -* [Training material](https://model-checking.github.io/cbmc-training) |
| 5 | +* The \ref installation_guide |
| 6 | +* A [short tutorial](cprover-manual/md_cbmc-tutorial.html) |
| 7 | +* A [short manual](cprover-manual/index.html) |
8 | 8 |
|
9 | | -Tools: |
| 9 | +For a quick start with CBMC on large software projects, read |
| 10 | + |
| 11 | +* [Deploying CBMC on industrial software projects](https://model-checking.github.io/cbmc-training) |
| 12 | + describing how to use CBMC as part of routine software development and |
| 13 | + continuous integration. |
| 14 | + |
| 15 | +Two third-party tools simplify using CBMC: |
10 | 16 |
|
11 | 17 | * [CBMC Viewer](https://model-checking.github.io/cbmc-viewer) |
| 18 | + scans the output of CBMC and produces a browsable summary of its findings. |
12 | 19 | * [CBMC Starter Kit](https://model-checking.github.io/cbmc-starter-kit) |
| 20 | + makes it easy to add CBMC verification to an existing software project. |
13 | 21 |
|
14 | | -Other tips for using CBMC: |
| 22 | +Key concepts: |
15 | 23 |
|
16 | | -* \ref memory-analyzer |
17 | | -* \ref memory-bounds-checking |
18 | | -* \ref satabs |
| 24 | +* The \ref reference_guide describes CBMC and the CBMC tool chain |
| 25 | +* CBMC [primitives](cprover-manual/md_api.html) and |
| 26 | + [memory primitives](cprover-manual/md_memory-primitives.html) |
| 27 | + are useful when writing CBMC assumptions and CBMC assertions. |
| 28 | +* \ref goto-programs "goto programs" are the intermediate representation |
| 29 | + of C code used by the CBMC tool chain |
| 30 | +* \ref goto-cc "goto-cc" ([man page](man/goto-cc.html)) |
| 31 | + compiles C into the goto program used by CBMC. |
| 32 | + It is intended to be a drop-in replacement for `gcc` and `cl`. |
| 33 | +* \ref goto-instrument "goto-instrument" ([man page](man/goto-instrument.html)) |
| 34 | + is a collection of tools for |
| 35 | + modifying goto programs. One example is unwinding loops in a goto program. |
| 36 | +* \ref goto-analyzer "goto-analyser" ([man page](man/goto-analyzer.html)) |
| 37 | + is a collection of tools for analyzing goto programs. |
| 38 | + One example is finding the set of reachable functions in a goto program. |
19 | 39 |
|
20 | | -This CBMC user guide is a work in progress. |
21 | | -Please \ref contributing_documentation "contribute documentation" and help |
22 | | -us improve this user guide. |
| 40 | +Please \ref contributing_documentation "contribute documentation" |
| 41 | +when you find mistakes or missing information to help us improve this |
| 42 | +user guide. |
0 commit comments