Skip to content

Update documentations#567

Open
shaobo-he wants to merge 1 commit into
developfrom
update-documentation
Open

Update documentations#567
shaobo-he wants to merge 1 commit into
developfrom
update-documentation

Conversation

@shaobo-he

Copy link
Copy Markdown
Contributor

No description provided.

@shaobo-he

Copy link
Copy Markdown
Contributor Author

@zvonimir @michael-emmi @keram88, I think our documentations are very out-of-dated. I added some points about how we should update them. Any feedback?

Btw, I should add Rust stuff into them, too.

Comment thread README.md
in its input programs. In its default mode, assertions are verified up to a
given bound on loop iterations and recursion depth; it contains experimental
support for unbounded verification as well. SMACK handles complicated feature
support for unbounded verification as well (REMOVE THIS). SMACK handles complicated feature

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why would you want to remove this?

Comment thread docs/running.md
SMACK software verifier is run using the `smack` tool in the bin directory.
For a given input C/C++ program, the tool checks for violations of user-provided
assertions. SMACK has a number of command line options that can be used
assertions (MENTION GENERATED ASSERTIONS IN MEMORY SAFETY/OVERFLOW CHECKING). SMACK has a number of command line options that can be used

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yep, good idea.

Comment thread docs/running.md
for introducing nondeterministic (i.e., unconstrained) values, such as
`__VERIFIER_nondet_int` used in this example.

MENTION ASSERT/ASSUME

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good idea.

Comment thread docs/running.md
file is translated into Boogie code, which is in turn passed to the chosen back-end
verifier.

EXAMPLE ON MEMORY SAFETY

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good idea.

shaobo-he added a commit that referenced this pull request Jul 5, 2026
Following the documentation outline in #567, flesh out docs/running.md with
new sections on understanding SMACK's output and counterexample traces,
checking memory safety and integer overflow, verifying multi-file and
whole-program bitcode, and selecting the verification back-end and solver.
Every command and output shown was verified against a real SMACK run.

While documenting assertions, discovered that assert() requires including
<assert.h> (SMACK ships its own that routes assert to the verifier). The
examples/simple and examples/simple-project programs omitted it, so their
assertions were silently ignored (injecting assert(0) still reported "no
errors"). Add the include to both examples and document the requirement,
including the "implicit declaration of function 'assert'" pitfall.

Also drop the now-obsolete whole-program-llvm reference and remove the stale
"experimental unbounded verification" claim from the README.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants