-
Notifications
You must be signed in to change notification settings - Fork 19
BMC: reconsider lasso-shaped encodings #1202
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
base: main
Are you sure you want to change the base?
Conversation
657edef
to
f64a958
Compare
F
9fb11a8
to
b043366
Compare
src/smvlang/smv_typecheck.cpp
Outdated
if(var.type.id() == "submodule") | ||
{ | ||
symbol.is_input = false; | ||
symbol.is_state_var = false; | ||
} | ||
else | ||
{ | ||
symbol.is_input = true; | ||
symbol.is_state_var = false; | ||
} |
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.
This change requires git conflict resolution, but also I am confused by the change itself: is_state_var
is false
in both branches and was set to false
before already.
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.
Now cleaned up
b043366
to
d4f698b
Compare
This replaces the lasso-shaped encodings in the word-level BMC property encoding. The lasso and straigth-line encodings are now built as separate obligations. In the lasso encoding, all operators follow the same lasso shape. This avoids spurious traces where the eventually operator follows the lasso but a safety part of the property does not.
d4f698b
to
a3f39b8
Compare
symbol.is_state_var = false; | ||
symbol.value = nil_exprt{}; |
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.
This line and the one above aren't actually necessary, the symbolt
constructor will have set these already. (Though lines 1973 and 1975 should then also be removed.)
This replaces the lasso-shaped encodings in the word-level BMC property encoding. The lasso and straigth-line encodings are now built as separate obligations. In the lasso encoding, all operators follow the same lasso shape. This avoids spurious traces where the eventually operator follows the lasso but a safety part of the property does not.