diff options
author | Clark Barrett <barrett@cs.stanford.edu> | 2016-11-11 14:41:51 -0800 |
---|---|---|
committer | Clark Barrett <barrett@cs.stanford.edu> | 2016-11-11 14:41:51 -0800 |
commit | d77c5daaa030ae5ff6b81eb7e77752526a8c0bb8 (patch) | |
tree | 364258ca92e6c993123ddce9a2193d0e4dce9f6f /src/smt | |
parent | e2f28f39b3a3749a5eeed5294f25bec1e210b129 (diff) |
Enable eager bitblasting for QF_ABV when no stores are present.
Diffstat (limited to 'src/smt')
-rw-r--r-- | src/smt/smt_engine.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/smt/smt_engine.cpp b/src/smt/smt_engine.cpp index e46511e59..38347508c 100644 --- a/src/smt/smt_engine.cpp +++ b/src/smt/smt_engine.cpp @@ -1291,7 +1291,8 @@ void SmtEngine::setDefaults() { } else if (options::solveIntAsBV() > 0) { d_logic = LogicInfo("QF_BV"); - } else if (d_logic.getLogicString() == "QF_UFBV" && + } else if ((d_logic.getLogicString() == "QF_UFBV" || + d_logic.getLogicString() == "QF_ABV") && options::bitblastMode() == theory::bv::BITBLAST_MODE_EAGER) { d_logic = LogicInfo("QF_BV"); } @@ -3871,7 +3872,8 @@ void SmtEnginePrivate::processAssertions() { if (options::bitblastMode() == theory::bv::BITBLAST_MODE_EAGER && !d_smt.d_logic.isPure(THEORY_BV) && - d_smt.d_logic.getLogicString() != "QF_UFBV") { + d_smt.d_logic.getLogicString() != "QF_UFBV" && + d_smt.d_logic.getLogicString() != "QF_ABV") { throw ModalException("Eager bit-blasting does not currently support theory combination. " "Note that in a QF_BV problem UF symbols can be introduced for division. " "Try --bv-div-zero-const to interpret division by zero as a constant."); |