Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

@makaimann
Copy link
Collaborator

I believe this never showed up before because we never used to continue execution after finding a counterexample. But now that we can have nested CEGAR loops, this is important.

Btw, we should probably discuss a better way of keeping track of solver contexts. I'm considering adding this to either smt-switch or having a wrapper solver that keeps track of extra info like that.

@makaimann makaimann added simple A very simple (meaning easy to review) change. bugfix Fixes a bug labels Jan 15, 2021
@makaimann makaimann requested a review from ahmed-irfan January 15, 2021 21:46

if (!found_lemmas) {
// there appears to be a concrete counterexample
solver_->pop();
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we may want to store the counterexample. Where do we do that? If we pop now, we will not have access to the model values.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's a good point. I believe it's currently not handled at all (I don't think witnesses were handled before either). I'm not sure that's the right place anyway though since it's in the refiner. Maybe we should unroll the concrete transition system to get the trace when there's a counterexample? And if we want to save abstract model values to help guide it we could do that too, but there's currently no infrastructure for that. Btw, witness should probably be overridden in CegProphecyArrays so that it returns the right witness there.

Copy link
Collaborator

@ahmed-irfan ahmed-irfan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM.

We discussed offline and decided to deal with the counterexample generation in a separate PR.

@ahmed-irfan ahmed-irfan merged commit 6e63afb into master Jan 19, 2021
@ahmed-irfan ahmed-irfan deleted the fix-array-refiner branch January 19, 2021 00:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bugfix Fixes a bug simple A very simple (meaning easy to review) change.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants