diff options
author | Mathias Preiner <mathias.preiner@gmail.com> | 2021-06-21 12:11:10 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-06-21 19:11:10 +0000 |
commit | 331187d557b2c54b079de6348ff1f597a72f50a2 (patch) | |
tree | e0651d38c6ae1597b91ee6a2b6b7d419a27718bc /test/regress | |
parent | 62cf9381eac3609e4af0509ffce3abf58ba71238 (diff) |
Fix model issues with --bitblast=eager. (#6753)
For model construction we only compute model values for relevant terms. The set of relevant terms is computed in https://github.com/cvc5/cvc5/blob/master/src/theory/model_manager_distributed.cpp#L58, which skips equalities by default because equalities are usually handled by the equality engine.
When --bitblast=eager is enabled all assertions are wrapped into BITVECTOR_EAGER_ATOM nodes and passed to the BV solver, which results in equalities below BITVECTOR_EAGER_ATOM nodes not being handled by the equality engine but by the BV solver directly. These equalities, however, are skipped when computing the relevant terms and therefore the BV solver is not asked to compute model values for variables below these equalities.
If --bitblast=eager is enabled the BV solver now additionally adds the variables encountered during bit-blasting to the relevant terms via computeRelevantTerms.
Co-authored-by: Andres Noetzli <andres.noetzli@gmail.com>
Diffstat (limited to 'test/regress')
-rw-r--r-- | test/regress/CMakeLists.txt | 1 | ||||
-rw-r--r-- | test/regress/regress0/issue6741.smt2 | 8 |
2 files changed, 9 insertions, 0 deletions
diff --git a/test/regress/CMakeLists.txt b/test/regress/CMakeLists.txt index 9ad4f7e8a..444e4c7f6 100644 --- a/test/regress/CMakeLists.txt +++ b/test/regress/CMakeLists.txt @@ -670,6 +670,7 @@ set(regress_0_tests regress0/issue5743.smt2 regress0/issue5947.smt2 regress0/issue6605-2-abd-triv.smt2 + regress0/issue6741.smt2 regress0/ite_arith.smt2 regress0/ite_real_int_type.smtv1.smt2 regress0/ite_real_valid.smtv1.smt2 diff --git a/test/regress/regress0/issue6741.smt2 b/test/regress/regress0/issue6741.smt2 new file mode 100644 index 000000000..0fbf4edeb --- /dev/null +++ b/test/regress/regress0/issue6741.smt2 @@ -0,0 +1,8 @@ +; COMMAND-LINE: --bv-solver=bitblast --bitblast=eager --check-models +(set-logic QF_BV) +(set-info :status sat) +(declare-fun x () (_ BitVec 1)) +(declare-fun y () (_ BitVec 1)) +(assert (= y (ite (= x (_ bv1 1)) (_ bv1 1) (_ bv0 1)))) +(assert (= y (_ bv1 1))) +(check-sat) |