You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
CBMC version: 5.28.0 Operating system: Ubuntu 20.04.3 LTS Exact command line resulting in the issue:cbmc --slice-formula --write-solver-stats-to out.json code.c
What behaviour did you expect: I expected the formula to be sliced which I thought would remove unnecessary components from the CNF and not introduce new components to the CNF in comparison to running it without --slice-formula; i.e., cbmc --write-solver-stats-to out.json code.c.
What happened instead: It introduced clauses that corresponded to an SSA expressions of the form "true" which seemed to be used to refer to a GOTO statement. This was unexpected because:
It seemed to introduce clauses which didn't exist previously to capture the "true" SSA expression, and
The SSA expression "true" didn't make much sense to me as I thought the formula was formed by converting the expressions found in cbmc --show-vcc --slice-formula code.c into a SAT form, none of which have the expression "true", and
It also doesn't make much sense to me to have an SSA expression "true" for a GOTO statement. I wasn't aware of such a conversion.
With the --slice-formula option the output json file contains the following:
When converting guards we convert `SSA_stept::guard`, and not
`SSA_stept::cond_expr`. This needs to be accounted for in solver stats
reporting as we would otherwise misleadingly report that expressions
like "true" yield a non-empty set of clauses.
Fixes: diffblue#6333
CBMC version: 5.28.0
Operating system: Ubuntu 20.04.3 LTS
Exact command line resulting in the issue:
cbmc --slice-formula --write-solver-stats-to out.json code.c
What behaviour did you expect: I expected the formula to be sliced which I thought would remove unnecessary components from the CNF and not introduce new components to the CNF in comparison to running it without
--slice-formula
; i.e.,cbmc --write-solver-stats-to out.json code.c
.What happened instead: It introduced clauses that corresponded to an SSA expressions of the form "true" which seemed to be used to refer to a GOTO statement. This was unexpected because:
cbmc --show-vcc --slice-formula code.c
into a SAT form, none of which have the expression "true", andWith the
--slice-formula
option the output json file contains the following:The above SSA expression did not have any clauses associated with it when the program was run without
--slice-formula
.Attached is the program from which this unexpected behaviour was generated.
code.zip
The text was updated successfully, but these errors were encountered: