Use decision_proceduret instead of prop_convt [depends: 4533, blocks: 4451]#4450
Use decision_proceduret instead of prop_convt [depends: 4533, blocks: 4451]#4450peterschrammel wants to merge 2 commits intodiffblue:developfrom
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
allredj
left a comment
There was a problem hiding this comment.
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_proceduretcan now be used instead instead ofprop_convtin most of the codebase.decision_procedure_incrementaltis only used where incremental solving is actually necessary.In the next step
decision_procedure_incrementaltwill then be further split into support for assumptions (see #4451) and contexts (see #4054).