File: libraries.shtml

package info (click to toggle)
cbmc 4.9-4
  • links: PTS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 40,588 kB
  • ctags: 19,198
  • sloc: cpp: 185,860; ansic: 16,162; yacc: 5,343; lex: 4,518; makefile: 954; pascal: 506; sh: 318; perl: 213; java: 206
file content (54 lines) | stat: -rw-r--r-- 1,904 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
<!--#include virtual="header.inc" -->

<p><a href="./">CPROVER Manual TOC</a></p>

<h2>Build Systems and Libraries</h2>

<h3>The Problem</h3>

<p class="justified">
Similar to unit testing, the model checking approach requires 
the user to clearly define what parts of the program should
be tested and what the behavior of these parts is.
This requirement has following reasons:
</p>

<ul>
  
<li><p class="justified"> Despite recent advances, the size of the programs that
    model checkers can cope with is still restricted.
</p></li>
  
<li><p class="justified"> Typically, you want to verify <i>your</i> program and
    not the libraries or the operating that it uses (the correctness of these
    libraries and the OS us usually addressed separately).
</p></li>
  
<li><p class="justified"> CBMC and SATABS cannot verify binary libraries. 
</p></li>
  
<li><p class="justified"> CBMC and SATABS does not provide a
    model for the hardware
    (e.g., hard disk, input/output devices) the tested program
    runs on. Since CBMC and SATABS are supposed to examine the
    behavior of the tested program for <b>all</b> possible inputs
    and outputs, it is reasonable to model input and output
    by means of non-deterministic choice.
</p></li>

</ul>

<h3>Further Reading</h3>

<p class="justified">
Existing software projects usually do not come in a single source file that
may simply be passed to a model checker, but is a collection of files held
together by a build system. The ex&shy;trac&shy;tion of models from such
a build system using goto-cc is described <a href="goto-cc.shtml">here</a>.
The ap&shy;pli&shy;ca&shy;tion of goto-cc to the entire Linux kernel is described
<a href="goto-cc-linux.shtml">here</a>. The problem of architectural
pa&shy;ram&shy;e&shy;ters (word with, endianness) is explained
<a href="architecture.shtml">here</a>.
</p>

<!--#include virtual="footer.inc" -->