-
Notifications
You must be signed in to change notification settings - Fork 274
Incremental smt2 backend documentation #7363
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Incremental smt2 backend documentation #7363
Conversation
Codecov ReportBase: 78.35% // Head: 78.35% // Decreases project coverage by
Additional details and impacted files@@ Coverage Diff @@
## develop #7363 +/- ##
===========================================
- Coverage 78.35% 78.35% -0.01%
===========================================
Files 1645 1645
Lines 190190 190208 +18
===========================================
+ Hits 149031 149040 +9
- Misses 41159 41168 +9
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here. ☔ View full report at Codecov. |
How about added the newly proposed contents to |
It can be done. |
d450346
to
4cdb871
Compare
Ok, thank you for the push-back. I don't really mind having it in that separate file, but then please do make sure your newly added documentation ends up being rendered as part of the doxygen-generated documentation. There is no point in having user-facing documentation stowed away in the source tree. |
4cdb871
to
330ea63
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Minor text fixes only, otherwise approved.
doc/cprover-manual/smt2-incr.md
Outdated
smt2 solver. For other solver usages use `cbmc --help`. | ||
|
||
The incremental smt2 solver backend of CBMC is a solver-agnostic smt backend that allows the user to | ||
specify which smtlib 2.6 compliant solver CBMC should use. This choice increase the flexibility of |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
increase -> increases
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Changed
doc/cprover-manual/smt2-incr.md
Outdated
|
||
The incremental smt2 solver backend of CBMC is a solver-agnostic smt backend that allows the user to | ||
specify which smtlib 2.6 compliant solver CBMC should use. This choice increase the flexibility of | ||
CBMC as the user can easily switch solver at runtime allowing also custom parametrization of the |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
allowing also -> also allowing
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Changed
doc/cprover-manual/smt2-incr.md
Outdated
The incremental smt2 solver backend of CBMC is a solver-agnostic smt backend that allows the user to | ||
specify which smtlib 2.6 compliant solver CBMC should use. This choice increase the flexibility of | ||
CBMC as the user can easily switch solver at runtime allowing also custom parametrization of the | ||
solver to be used. Also the backend exploits the incremental mode of the smt solver, so subsequent |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Also the -> Further, the
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
changed
doc/cprover-manual/smt2-incr.md
Outdated
* supports incremental mode. | ||
|
||
Because of the way supported features are encoded the smt solver should be capable to handle arrays, | ||
bit-vectors and uninterpreted functions and quantifiers. Also, the solver should work with the `ALL` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
bit-vectors and uninterpreted -> bit-vectors, uninterpreted
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
changed
doc/cprover-manual/smt2-incr.md
Outdated
cbmc --incremental-smt2-solver 'z3 -smt2 -in' --slice-formula program.c | ||
``` | ||
|
||
We will get the verification results as well as the trace as follows: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No trace in the command here, remove "as well as the trace"
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Right, fixed
10. Solvers | ||
|
||
* [Incremental SMT solver](smt2-incr/) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Leaving it up to @kroening to make a call here, for he maintains the rendered version of this documentation. My own view is that we should not discuss a particular solver as part of this manual.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I consider the "official" documentation now to be automatically rendered here: https://diffblue.github.io/cbmc/ Is that not the case? Will that not be the case for this file?
Where would you propose we discuss things specific to a particular solver?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I agree that this one (github.io) is the right place; it will also include the CPROVER manual (which is otherwise rendered on cprover.org), but isn't limited to that manual.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I consider the "official" documentation now to be automatically rendered here: https://diffblue.github.io/cbmc/ Is that not the case? Will that not be the case for this file?
I can confirm that if I checkout and build the documentation locally as will be done on the documentation publishing job, then this new documentation will be included. Therefore it should be uploaded to the github.io page by github actions after this PR is merged.
The links to follow to find it will be -
- User Guide in the side bar.
- The link to "A short manual" in that pages's content.
- The new page link will be under item 10.
Where would you propose we discuss things specific to a particular solver?
I think this is the right place to add this documentation. Most information about the SAT solvers for instance wouldn't belong here, because they are compile/link time swappable not run-time swappable. However I think this list started by Enrico could be the right place to add documentation of the the dimacs file and external sat solver support, when someone takes the time to write it.
330ea63
to
5bde5d4
Compare
10. Solvers | ||
|
||
* [Incremental SMT solver](smt2-incr/) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I consider the "official" documentation now to be automatically rendered here: https://diffblue.github.io/cbmc/ Is that not the case? Will that not be the case for this file?
Where would you propose we discuss things specific to a particular solver?
5bde5d4
to
ead3518
Compare
User documentation for the incremental smt2 backend.