-
Notifications
You must be signed in to change notification settings - Fork 276
Use decision_proceduret instead of prop_convt [depends: 4533, blocks: 4451] #4450
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
Use decision_proceduret instead of prop_convt [depends: 4533, blocks: 4451] #4450
Conversation
I haven't looked at the actual commits, but would certainly require @kroening to comment on this. To me, it seems a bit surprising. My assumption was that |
That might have been the initial intuition, but actually |
This does not make sense to me -- the decision procedure interface was already designed to be incremental, and has already been used in this fashion. |
@tautschnig has the right intuition here. The key idea isn't the conversion, but the fact that prop_conv offers a 'handle' for predicates. This is also what smt2_conv offers. However, the 'handle' has now been pushed up to |
No, |
The way forward is to consider what's an interface, who consumes that, and what implementations of that interface should exist. |
Also, look at #4451 to see how I'm going to move this forward. |
The problem that Minisat with preprocessed needs freezing is a special case; this shouldn't necessarily be imposed on all users of incremental solving. It's certainly by no means intuitive. |
Unfortunately, you cannot hide that and just ignore it. |
@kroening I do think that class names need to be changed - |
93940c4
to
b8e53c7
Compare
If we can get rid of |
b8e53c7
to
0205f9b
Compare
decision_procedure_incrementalt will then be further split into support for assumptions and contexts.
0205f9b
to
8927b7d
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.
This PR failed Diffblue compatibility checks (cbmc commit: 8927b7d).
Build URL: https://travis-ci.com/diffblue/test-gen/builds/106227811
Status will be re-evaluated on next push.
Common spurious failures include: the cbmc commit has disappeared in the mean time (e.g. in a force-push); the author is not in the list of contributors (e.g. first-time contributors); compatibility was already broken by an earlier merge.
@kroening, please have a look at the proposed hierarchy of interfaces: |
Obsolete. |
Based on #4449, only review last 2 commits.decision_proceduret
can now be used instead instead ofprop_convt
in most of the codebase.decision_procedure_incrementalt
is only used where incremental solving is actually necessary.In the next step
decision_procedure_incrementalt
will then be further split into support for assumptions (see #4451) and contexts (see #4054).