Skip to content

Commit aac9da5

Browse files
author
kroening
committed
claim -> property
git-svn-id: svn+ssh://svn.cprover.org/srv/svn/cbmc/trunk@3909 6afb6bc1-c8e4-404c-8f48-9ae832c5b171
1 parent cd0e4f2 commit aac9da5

File tree

6 files changed

+42
-42
lines changed

6 files changed

+42
-42
lines changed

doc/html-manual/cbmc.shtml

+6-6
Original file line numberDiff line numberDiff line change
@@ -45,13 +45,13 @@ Now, run CBMC as follows:
4545
</p>
4646

4747
<code>
48-
&nbsp;&nbsp;cbmc file1.c --show-claims --bounds-check --pointer-check
48+
&nbsp;&nbsp;cbmc file1.c --show-properties --bounds-check --pointer-check
4949
</code>
5050

5151
<p class="justified">The two options <code>--bounds-check</code> and <code>--pointer-check</code>
5252
instruct CBMC to look for errors related to pointers and array bounds.
5353
CBMC will print the list of properties it checks. Note that it prints a
54-
claim labeled with "array argv upper bound" together with the
54+
property labeled with "array argv upper bound" together with the
5555
location of the faulty array access. As you can see, CBMC largely
5656
determines the property it needs to check itself. This is realized
5757
by means of a preliminary static analysis, which relies on computing a fixed
@@ -60,10 +60,10 @@ domains</a>. More detail on automatically generated properties
6060
is provided <a href="properties.shtml">here</a>.</p>
6161

6262
<p class="justified">
63-
Note that automatically generated claims
64-
need not necessarily correspond to bugs &ndash; these are just <i>potential</i>
65-
flaws. Whether one of these claims corresponds to a bug needs to be
66-
determined by further analysis.
63+
Note that automatically generated properties need not necessarily correspond
64+
to bugs &ndash; these are just <i>potential</i> flaws. Whether one of these
65+
properties holds or corresponds to a bug needs to be determined by
66+
further analysis.
6767
</p>
6868

6969
<p class="justified">

doc/html-manual/modeling-assertions.shtml

+1-1
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ to specify assertions, using the built-in function __CPROVER_assert:</p>
3535

3636
<p class="justified">The (mandatory) string that is passed as the
3737
second argument provides an informal description of the assertion.
38-
It is shown in the list of claims together with the condition.</p>
38+
It is shown in the list of properties together with the condition.</p>
3939

4040
<p class="justified">The assertion language of the CPROVER tools is
4141
identical to the language used for expressions. Note that <a

doc/html-manual/properties.shtml

+2-2
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ cover this topic in more detail in this section.</p>
1414

1515
<p class="justified">
1616
Both CBMC and SATABS use <i><a href="http://en.wikipedia.org/wiki/Assertion_(computing)">
17-
assertions</a></i> to specify program properties. Assertions are claims about
17+
assertions</a></i> to specify program properties. Assertions are properties of
1818
the state of the program when the program reaches a particular program
1919
location. Assertions are often written by the programmer by means of the
2020
<code>assert</code> macro.</p>
@@ -167,7 +167,7 @@ as follows:
167167

168168
<p>
169169
<code>
170-
&nbsp;&nbsp;goto-instrument out.gb --show-claims
170+
&nbsp;&nbsp;goto-instrument out.gb --show-properties
171171
</code>
172172
</p>
173173

doc/html-manual/satabs-aeon.shtml

+14-14
Original file line numberDiff line numberDiff line change
@@ -50,11 +50,11 @@ Aeon:
5050
</p>
5151

5252
<p>
53-
<code>satabs *.c --pointer-check --bounds-check --show-claims</code>
53+
<code>satabs *.c --pointer-check --bounds-check --show-properties</code>
5454
</p>
5555

5656
<p class="justified">
57-
SATABS will show about 300 claims in various functions
57+
SATABS will show about 300 properties in various functions
5858
(read <a href="properties.shtml">this</a> for more information
5959
on the property instrumentation).
6060
Now consider the first few lines of the <code>main</code> function
@@ -126,7 +126,7 @@ matches the string at <code>NAME</code>. If a variable name matches,
126126
SATABS has no information whatsoever about the content of
127127
<code>environ</code>. Even if SATABS could access the
128128
en&shy;vi&shy;ron&shy;ment variables on your computer, a successful verification
129-
of <code>Aeon</code> would then only guarantee that the claims for
129+
of <code>Aeon</code> would then only guarantee that the properties for
130130
this program hold on your computer with a specific set of
131131
en&shy;vi&shy;ron&shy;ment variables. We have to assume that <code>environ</code>
132132
contains en&shy;vi&shy;ron&shy;ment variables that have an arbitrary content
@@ -137,10 +137,10 @@ can be modified by the user. The approximation of the behavior of
137137
content of the string.</p>
138138

139139
<p class="justified">
140-
Now let us have another look at the claims that SATABS generates for the
140+
Now let us have another look at the properties that SATABS generates for the
141141
models of the the string library and for <code>getenv</code>. Most of these
142-
claims require that we verify that the upper and lower bounds of buffers or
143-
arrays are not violated. Let us look at one of the claims that SATABS
142+
properties require that we verify that the upper and lower bounds of buffers or
143+
arrays are not violated. Let us look at one of the properties that SATABS
144144
generates for the code in function <code>getConfig</code>:
145145
</p>
146146

@@ -156,12 +156,12 @@ Claim getConfig.3:<br>
156156
<p class="justified">The model of the function <code>strcpy</code>
157157
dereferences the pointer returned by <code>getenv</code>, which may
158158
return a NULL pointer. This possibility is detected by the static
159-
analysis, and thus a corresponding claim is generated. Let us
160-
check this specific claim:
159+
analysis, and thus a corresponding property is generated. Let us
160+
check this specific property:
161161
</p>
162162

163163
<p>
164-
<code>satabs *.c --pointer-check --bounds-check --claim getConfig.3</code>
164+
<code>satabs *.c --pointer-check --bounds-check --property getConfig.3</code>
165165
</p>
166166

167167
<p class="justified">SATABS immediately returns a counterexample path
@@ -171,7 +171,7 @@ bug in this program: it requires that the environment variable
171171
HOME is set, and crashes otherwise.
172172
</p>
173173

174-
<p class="justified">Let us examine one more claim in the
174+
<p class="justified">Let us examine one more property in the
175175
same function:</p>
176176

177177
<p><code>
@@ -182,7 +182,7 @@ Claim getConfig.7:<br>
182182
</code></p>
183183

184184
<p class="justified">
185-
This claim asserts that the upper bound of the array <code>home</code>
185+
This property asserts that the upper bound of the array <code>home</code>
186186
is not violated. The variable <code>home</code>
187187
looks familiar: We encountered it in the function <code>getConfig</code>
188188
given above. The function <code>getenv</code> in combination with functions
@@ -192,7 +192,7 @@ to check the upper bound of the array <code>home</code>:
192192
</p>
193193

194194
<p>
195-
<code>satabs *.c --pointer-check --bounds-check --claim getConfig.7</code>
195+
<code>satabs *.c --pointer-check --bounds-check --property getConfig.7</code>
196196
</p>
197197

198198
<p class="justified">
@@ -212,7 +212,7 @@ such loops and will therefore unroll the loop body as often as necessary.
212212
The array <code>home</code> has <code>MAX_LEN</code> elements, and
213213
<code>MAX_LEN</code> is defined to be 512 in <code>aeon.h</code>.
214214
Therefore, SATABS would have to run through at least 512 iterations, only to
215-
verify (or reject) one of the more than 300 claims! Does this fact
215+
verify (or reject) one of the more than 300 properties! Does this fact
216216
defeat the purpose of static verification?
217217
</p>
218218

@@ -242,7 +242,7 @@ use BOPPO instead of the default model checker SMV:
242242
</p>
243243

244244
<p>
245-
<code>satabs --claim 5 --modelchecker boppo --loop-detection \</code><br>
245+
<code>satabs --property 5 --modelchecker boppo --loop-detection \</code><br>
246246
<code>&nbsp;&nbsp;aeon.c base64.c lib_aeon.c</code>
247247
</p>
248248

doc/html-manual/satabs-driver.shtml

+5-5
Original file line numberDiff line numberDiff line change
@@ -195,11 +195,11 @@ will eventually consider it.
195195
</p>
196196

197197
<p>
198-
If we ask SATABS to show us the verification claims with
198+
If we ask SATABS to show us the properties it verifies with
199199
</p>
200200

201201
<center>
202-
<code>satabs driver.c spec.c --show-claims</code>
202+
<code>satabs driver.c spec.c --show-properties</code>
203203
</center>
204204

205205
<p>
@@ -227,20 +227,20 @@ Claim dummy_open.1:<br>
227227
</ol>
228228

229229
<p class="justified">
230-
It seems obvious that the claim dummy_open.1
230+
It seems obvious that the property dummy_open.1
231231
can never be violated. SATABS confirms
232232
this assumption: We call
233233
</p>
234234

235235
<center>
236-
<code>satabs driver.c spec.c --claim dummy_open.1</code>
236+
<code>satabs driver.c spec.c --property dummy_open.1</code>
237237
</center>
238238

239239
<p class="justified">
240240
and SATABS reports <code>VERIFICATION SUCCESSFUL</code> after a few iterations.
241241
</p>
242242

243-
<p class="justified"> If we try to verify claim unregister_chrdev.1, SATABS
243+
<p class="justified"> If we try to verify property unregister_chrdev.1, SATABS
244244
reports that the property in line 18 in file spec.c is violated (i.e., the
245245
assertion does not hold, therefore the <code>VERIFICATION FAILED</code>).
246246
Furthermore, SATABS provides a detailed description of the problem in the

doc/html-manual/satabs.shtml

+14-14
Original file line numberDiff line numberDiff line change
@@ -77,20 +77,20 @@ CBMC</a> will never terminate.</p>
7777
<h3>Working with Claims</h3>
7878

7979
<p class="justified">
80-
The two assertions will give rise to two <i>claims</i>.
81-
Each claim is associated to a specific line of code, i.e., a claim is violated when the
80+
The two assertions will give rise to two <i>properties</i>.
81+
Each property is associated to a specific line of code, i.e., a property is violated when
8282
some condition can become false at the corresponding program location.
83-
SATABS will generate a list of all claims for the programs as follows:
83+
SATABS will generate a list of all properties for the programs as follows:
8484
</p>
8585

8686
<center>
8787
<code>
88-
satabs lock-example-fixed.c --show-claims
88+
satabs lock-example-fixed.c --show-properties
8989
</code>
9090
</center>
9191

92-
<p>SATABS will list two claims; each claim corresponds to one of the
93-
two assertions. We can use SATABS to verify both claims
92+
<p>SATABS will list two properties; each property corresponds to one of the
93+
two assertions. We can use SATABS to verify both properties
9494
as follows:
9595
</p>
9696

@@ -106,13 +106,13 @@ assertions hold for execution traces of any length.
106106
</p>
107107

108108
<p class="justified">
109-
By default, SATABS attempts to verify all claims at once.
110-
A single claim can be verified (or refuted) by using the
111-
<code>--claim <i>id</i></code> option of SATABS,
112-
where <code><i>id</i></code> denotes the identifier of the claim in the list
113-
obtained by calling SATABS with the <code>--show-claims</code> flag. Whenever
114-
a claim is violated, SATABS reports a feasible path that leads to a state
115-
in which the condition that corresponds to the violated claim evaluates to
109+
By default, SATABS attempts to verify all properties at once.
110+
A single property can be verified (or refuted) by using the
111+
<code>--property <i>id</i></code> option of SATABS,
112+
where <code><i>id</i></code> denotes the identifier of the property in the list
113+
obtained by calling SATABS with the <code>--show-properties</code> flag. Whenever
114+
a property is violated, SATABS reports a feasible path that leads to a state
115+
in which the condition that corresponds to the violated property evaluates to
116116
false.
117117
</p>
118118

@@ -159,7 +159,7 @@ achieve <b>full</b> path and state coverage (due to the fact that
159159
predicate abstraction implicitly detects equivalence classes).
160160
However, it is not guaranteed that SATABS terminates in all cases.
161161
Keep in mind that you must not make any assumptions about the
162-
validity of the claims if SATABS did not run to completion!
162+
validity of the properties if SATABS did not run to completion!
163163
</p>
164164

165165
<div class="box1">

0 commit comments

Comments
 (0)