Skip to content

Commit 7cb0981

Browse files
author
Enrico Steffinlongo
committed
Added concept of canonical goto program
1 parent cbef34e commit 7cb0981

File tree

2 files changed

+23
-0
lines changed

2 files changed

+23
-0
lines changed

doc/ADR/README.md

+3
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@ where taken at the time they were, so that future maintainers
66
can more easily identify constraints that shaped the architecture
77
of the system and the surrounding infrastructure.
88

9+
## Core goto form
10+
\subpage core-goto
11+
912
## Release & Packaging
1013

1114
* \subpage release-process

doc/ADR/core_goto.md

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
\page core-goto Core goto definition
2+
3+
During the analysis of a program CBMC transforms the input program in an intermediate language
4+
called extended goto. Then the tool performs a series of simplifications on the obtained goto
5+
program until the program is given to the solver.
6+
7+
We say that a program is in the **core goto form** when all the extended goto features have
8+
been simplified.
9+
10+
More specifically, a program that is in **core goto form** is one that can be passed to **symex** by
11+
using any solver deriving from `goto_verifiert` without requiring any lowering step.
12+
13+
At the time of writing, verifiers extending `goto_verifiert` are:
14+
15+
* `all_properties_verifier_with_fault_localizationt`,
16+
* `all_properties_verifier_with_trace_storaget`,
17+
* `all_properties_verifiert`,
18+
* `cover_goals_verifier_with_trace_storaget`,
19+
* `stop_on_fail_verifier_with_fault_localizationt`,
20+
* `stop_on_fail_verifiert`.

0 commit comments

Comments
 (0)