From ee9fd3e11b761bddfc1042ddf735be152f400a43 Mon Sep 17 00:00:00 2001 From: Aina Niemetz Date: Wed, 15 May 2019 13:29:00 -0700 Subject: [PATCH] BV: Do not enable abstraction when eager bit-blasting by default. (#3001) --- src/options/options_handler.cpp | 51 +++++++++++++++++++-------------- 1 file changed, 30 insertions(+), 21 deletions(-) diff --git a/src/options/options_handler.cpp b/src/options/options_handler.cpp index 7a4967de5..2a59ace11 100644 --- a/src/options/options_handler.cpp +++ b/src/options/options_handler.cpp @@ -1298,26 +1298,34 @@ eager\n\ theory::bv::BitblastMode OptionsHandler::stringToBitblastMode( std::string option, std::string optarg) { - if(optarg == "lazy") { - if (!options::bitvectorPropagate.wasSetByUser()) { + if (optarg == "lazy") + { + if (!options::bitvectorPropagate.wasSetByUser()) + { options::bitvectorPropagate.set(true); } - if (!options::bitvectorEqualitySolver.wasSetByUser()) { + if (!options::bitvectorEqualitySolver.wasSetByUser()) + { options::bitvectorEqualitySolver.set(true); } - if (!options::bitvectorEqualitySlicer.wasSetByUser()) { - if (options::incrementalSolving() || - options::produceModels()) { + if (!options::bitvectorEqualitySlicer.wasSetByUser()) + { + if (options::incrementalSolving() || options::produceModels()) + { options::bitvectorEqualitySlicer.set(theory::bv::BITVECTOR_SLICER_OFF); - } else { + } + else + { options::bitvectorEqualitySlicer.set(theory::bv::BITVECTOR_SLICER_AUTO); } } - if (!options::bitvectorInequalitySolver.wasSetByUser()) { + if (!options::bitvectorInequalitySolver.wasSetByUser()) + { options::bitvectorInequalitySolver.set(true); } - if (!options::bitvectorAlgebraicSolver.wasSetByUser()) { + if (!options::bitvectorAlgebraicSolver.wasSetByUser()) + { options::bitvectorAlgebraicSolver.set(true); } if (options::bvSatSolver() != theory::bv::SAT_SOLVER_MINISAT) @@ -1325,23 +1333,24 @@ theory::bv::BitblastMode OptionsHandler::stringToBitblastMode( throwLazyBBUnsupported(options::bvSatSolver()); } return theory::bv::BITBLAST_MODE_LAZY; - } else if(optarg == "eager") { - if (!options::bitvectorToBool.wasSetByUser()) { + } + else if (optarg == "eager") + { + if (!options::bitvectorToBool.wasSetByUser()) + { options::bitvectorToBool.set(true); } - - if (!options::bvAbstraction.wasSetByUser() && - !options::skolemizeArguments.wasSetByUser()) { - options::bvAbstraction.set(true); - options::skolemizeArguments.set(true); - } return theory::bv::BITBLAST_MODE_EAGER; - } else if(optarg == "help") { + } + else if (optarg == "help") + { puts(s_bitblastingModeHelp.c_str()); exit(1); - } else { - throw OptionException(std::string("unknown option for --bitblast: `") + - optarg + "'. Try --bitblast=help."); + } + else + { + throw OptionException(std::string("unknown option for --bitblast: `") + + optarg + "'. Try --bitblast=help."); } } -- 2.30.2