Fix issue related to sanity checking integer models (#7363)
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>
Tue, 19 Oct 2021 20:35:13 +0000 (15:35 -0500)
committerGitHub <noreply@github.com>
Tue, 19 Oct 2021 20:35:13 +0000 (20:35 +0000)
commit8fe459b1fb3843ebdbda86f24a414c46b986aa90
tree88b5233b226f8079b568ec8f4eaedaf67306f5c9
parent71842aa75ca106b14ded148a73ac856f3ecf5912
Fix issue related to sanity checking integer models (#7363)

We now insist that we sanity check integer models in linear logics. Previously, we could trigger an assertion failure in Minisat if a user asked for a model in a state where the linear solver had assigned a real value to an integer variable, as we would be sending a lemma during collectModelValues in a state where we had already terminated with "sat".

This also changes an assertion to warning, to allow the regression to pass.

Fixes #6774 (This PR fixes a followup issue after the original bad model reported there was fixed by sanity checks).

As the assertion failure is downgraded to a warning, fixes #6988, fixes #7252.
src/theory/arith/theory_arith.cpp
test/regress/CMakeLists.txt
test/regress/regress1/arith/issue6774-sanity-int-model.smt2 [new file with mode: 0644]
test/regress/regress1/arith/issue7252-arith-sanity.smt2 [new file with mode: 0644]
test/regress/regress1/cores/issue6988-arith-sanity.smt2 [new file with mode: 0644]