mirror of
https://github.com/Z3Prover/z3
synced 2025-04-08 10:25:18 +00:00
interpolation fix (issue 182)
This commit is contained in:
parent
ece838bc80
commit
47d33452c6
|
@ -97,6 +97,18 @@ struct frame_reducer : public iz3mgr {
|
|||
get_proof_assumptions_rec(proof,memo,used_frames);
|
||||
std::vector<int> assertions_back_map(frames);
|
||||
|
||||
// if multiple children of a tree node are used, we can't delete it
|
||||
std::vector<int> used_children;
|
||||
for(int i = 0; i < frames; i++)
|
||||
used_children.push_back(0);
|
||||
for(int i = 0; i < frames; i++)
|
||||
if(orig_parents[i] != SHRT_MAX)
|
||||
if(used_frames[i] || used_children[i]){
|
||||
if(used_children[i] > 1)
|
||||
used_frames[i] = true;
|
||||
used_children[orig_parents[i]]++;
|
||||
}
|
||||
|
||||
for(unsigned i = 0; i < z3_preds.size(); i++)
|
||||
if(used_frames[i] || i == z3_preds.size() - 1){
|
||||
assertions.push_back(z3_preds[i]);
|
||||
|
|
Loading…
Reference in a new issue