-
Notifications
You must be signed in to change notification settings - Fork 19
BDD engine: only look for atomic propositions in supported properties #1043
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
Conversation
07e760f
to
92595b3
Compare
if(!property_supported(property.normalized_expr)) | ||
{ | ||
property.failure("property not supported by BDD engine"); | ||
return; | ||
} | ||
|
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.
Should the code that follows (the code that actually does the transform to CTL) be combined with the property_supported
code? That is, should property_supported
right away do the transform?
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.
The duplication is also bugging me, but it seems even less desirable to make the creation of some new data structure a side-effect of property_supported
.
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.
How about making property_supported
(though then perhaps by the name of make_CTL_property
or the likes) return a std::optional<exprt>
where an unsupported property would cause {}
to be returned?
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.
Coming with #1051
bool is_AGp(const exprt &expr) | ||
{ | ||
return expr.id() == ID_AG && !has_temporal_operator(to_AG_expr(expr).op()); | ||
} |
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.
Surprisingly, this is different from is_AGp
in bdd_enginet::check_property
?!
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 clearer, avoiding labeling expressions as AGp that are just equivalent.
92595b3
to
5196b58
Compare
The BDD engine is changed to avoid searching unsupported properties for atomic propositions.
5196b58
to
6bc4a23
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.
Approving with the assumption that #1051 will bring about further improvements.
The BDD engine is changed to avoid searching unsupported properties for atomic propositions.