Add branch and bound lemma if linear arithmetic generates a non-integer assignment...
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>
Tue, 13 Jul 2021 07:12:46 +0000 (02:12 -0500)
committerGitHub <noreply@github.com>
Tue, 13 Jul 2021 07:12:46 +0000 (07:12 +0000)
commit956a2b1b8a8ef51cd3794dc3ee4887ccf8778e1e
treec4c95a92e1f88f351865ecfea54c754a55b63579
parent03087213703b8429ed98a30160df8fea22bc25fb
Add branch and bound lemma if linear arithmetic generates a non-integer assignment (#6868)

This double checks that TheoryArithPrivate generates a model that does not assign real values to integer variables.

This is done outside of TheoryArithPrivate intentionally, so that it can be checked independently.

This code should very rarely be applied but would have caught the incorrect model which led to wrong results in the UFNIA division of smtcomp 2021.
src/theory/arith/arith_state.cpp
src/theory/arith/arith_state.h
src/theory/arith/theory_arith.cpp
src/theory/arith/theory_arith.h
src/theory/arith/theory_arith_private.cpp
src/theory/arith/theory_arith_private.h