-
Notifications
You must be signed in to change notification settings - Fork 44
Refactor booster smt #4017
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
Refactor booster smt #4017
Conversation
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 like this refactoring! I'm happy to approve once we have a more clear result type for checkPredicates
.
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.
LGTM, two small suggestions.
-- set large default timeout value for checking the prelude | ||
setTimeout defaultSMTOptions.timeout |
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.
Is the default "large"?
I vaguely remember us discussing whether or not to use the user-provided modified timeout value for the prelude... not sure.
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 default is 125
. Maybe it isn't that large actually. Either way, I was puzzled by this behaviour because the current code always overrides the user supplied value with 125
, which is what I have done here as well. Perhaps we should just use the user defined value? @geo2a what do you think?
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.
Yes, let's use the user defined value here.
I will merge this and we can address the prelude timeout in a separate PR if need be. |
Followup to #4017 addressing a potential issue I noticed whilst refactoring the SMT interface in booster. Namely, we set the hard-coded timeout value when checking the consistency of the prelude, before setting the user supplied value for general queries. This PR instead just sets the user supplied timeout value before checking the prelude.
The following changes were made:
Text
reason in theUnknown
constructorisSat
,checkPredicates
andgetModelFor
throw errors as Exceptions and return anIsSatResult
, as the only error we are catching is the one thrown when the SMT result is unknown