Previous policy was due to limitations on options on subsolvers, which no longer exist.
Fixes cvc5/cvc5-projects#354.
Fixes #7902.
void SetDefaults::setDefaultsPost(const LogicInfo& logic, Options& opts) const
{
-
- // sygus core connective requires unsat cores
- if (opts.quantifiers.sygusCoreConnective)
- {
- opts.smt.unsatCores = true;
- if (opts.smt.unsatCoresMode == options::UnsatCoresMode::OFF)
- {
- opts.smt.unsatCoresMode = options::UnsatCoresMode::ASSUMPTIONS;
- }
- }
-
if ((opts.smt.checkModels || opts.smt.checkSynthSol || opts.smt.produceAbducts
|| opts.smt.produceInterpols != options::ProduceInterpols::NONE
|| opts.smt.modelCoresMode != options::ModelCoresMode::NONE
// try a new core
std::unique_ptr<SolverEngine> checkSol;
initializeSubsolver(checkSol, d_env);
+ checkSol->setOption("produce-unsat-cores", "true");
Trace("sygus-ccore") << "----- Check candidate " << an << std::endl;
std::vector<Node> rasserts = asserts;
rasserts.push_back(d_sc);
Trace("sygus-ccore") << "----- Check side condition" << std::endl;
std::unique_ptr<SolverEngine> checkSc;
initializeSubsolver(checkSc, d_env);
+ checkSc->setOption("produce-unsat-cores", "true");
std::vector<Node> scasserts;
scasserts.insert(scasserts.end(), uasserts.begin(), uasserts.end());
scasserts.push_back(d_sc);
regress1/issue4335-unsat-core.smt2
regress1/issue5101-alira-subtypes.smt2
regress1/issue5739-rtf-processed.smt2
+ regress1/issue7902-abd-subsolver-uc.smt2
regress1/lemmas/clocksynchro_5clocks.main_invar.base.smtv1.smt2
regress1/lemmas/pursuit-safety-8.smtv1.smt2
regress1/minimal_unsat_core.smt2
--- /dev/null
+; COMMAND-LINE: --produce-abducts --sygus-core-connective
+; EXPECT: sat
+(set-logic ALL)
+(declare-const x Bool)
+(declare-fun b () Bool)
+(assert (= b x))
+(check-sat)