while ((optargPtr = strtok_r(tokstr, ",", &toksave)) != NULL)
{
tokstr = NULL;
- if (!strcmp(optargPtr, "raw-benchmark"))
- {
- }
- else if (!strcmp(optargPtr, "benchmark"))
+ if (!strcmp(optargPtr, "benchmark"))
{
}
else if (!strcmp(optargPtr, "declarations"))
if (strcmp(optargPtr, "benchmark"))
{
Dump.on("declarations");
- if (strcmp(optargPtr, "declarations")
- && strcmp(optargPtr, "raw-benchmark"))
- {
- Dump.on("skolems");
- }
}
}
}
declarations\n\
+ Dump user declarations. Implied by all following modes.\n\
\n\
-raw-benchmark\n\
-+ Dump all user-commands as they are received (including assertions) without\n\
- any preprocessing and without any internally-created commands.\n\
-\n\
skolems\n\
+ Dump internally-created skolem variable declarations. These can\n\
arise from preprocessing simplifications, existential elimination,\n\
+ Output completeness queries for all full-check effort-level theory checks\n\
\n\
Dump modes can be combined by concatenating the above values with \",\" in\n\
-between them. Generally you want raw-benchmark or, alternatively, one from\n\
-the assertions category (either assertions or clauses), and perhaps one or more\n\
-other modes for checking correctness and completeness of decision procedure\n\
-implementations.\n\
+between them. Generally you want one from the assertions category (either\n\
+assertions or clauses), and perhaps one or more other modes for checking\n\
+correctness and completeness of decision procedure implementations.\n\
\n\
The --output-language option controls the language used for dumping, and\n\
this allows you to connect cvc5 to another solver implementation via a UNIX\n\
// dump out a set-logic command only when raw-benchmark is disabled to avoid
// dumping the command twice.
- if (Dump.isOn("benchmark") && !Dump.isOn("raw-benchmark"))
+ if (Dump.isOn("benchmark"))
{
LogicInfo everything;
everything.lock();
try
{
setLogic(LogicInfo(s));
- // dump out a set-logic command
- if (Dump.isOn("raw-benchmark"))
- {
- getPrinter().toStreamCmdSetBenchmarkLogic(
- d_env->getDumpOut(), getLogicInfo().getLogicString());
- }
}
catch (IllegalArgumentException& e)
{
debugCheckFunctionBody(formulas[i], formals[i], funcs[i]);
}
- if (Dump.isOn("raw-benchmark"))
- {
- getPrinter().toStreamCmdDefineFunctionRec(
- d_env->getDumpOut(), funcs, formals, formulas);
- }
-
NodeManager* nm = getNodeManager();
for (unsigned i = 0, size = funcs.size(); i < size; i++)
{
Node boundVars = nm->mkNode(kind::BOUND_VAR_LIST, formals[i]);
lem = nm->mkNode(kind::FORALL, boundVars, lem, aexpr);
}
- // assert the quantified formula
- // notice we don't call assertFormula directly, since this would
- // duplicate the output on raw-benchmark.
+ // Assert the quantified formula. Notice we don't call assertFormula
+ // directly, since we should call a private member method since we have
+ // already ensuring this SmtEngine is initialized above.
// add define recursive definition to the assertions
d_asserts->addDefineFunDefinition(lem, global);
}
Trace("smt") << "SmtEngine::assertFormula(" << formula << ")" << endl;
- if (Dump.isOn("raw-benchmark"))
- {
- getPrinter().toStreamCmdAssert(d_env->getDumpOut(), formula);
- }
-
// Substitute out any abstract values in ex
Node n = d_absValues->substituteAbstractValues(formula);
{
SmtScope smts(this);
d_sygusSolver->declareSygusVar(var);
- if (Dump.isOn("raw-benchmark"))
- {
- getPrinter().toStreamCmdDeclareVar(d_env->getDumpOut(), var, var.getType());
- }
- // don't need to set that the conjecture is stale
}
void SmtEngine::declareSynthFun(Node func,
finishInit();
d_state->doPendingPops();
d_sygusSolver->declareSynthFun(func, sygusType, isInv, vars);
-
- // !!! TEMPORARY: We cannot construct a SynthFunCommand since we cannot
- // construct a Term-level Grammar from a Node-level sygus TypeNode. Thus we
- // must print the command using the Node-level utility method for now.
-
- if (Dump.isOn("raw-benchmark"))
- {
- getPrinter().toStreamCmdSynthFun(
- d_env->getDumpOut(), func, vars, isInv, sygusType);
- }
}
void SmtEngine::declareSynthFun(Node func,
bool isInv,
SmtScope smts(this);
finishInit();
d_sygusSolver->assertSygusConstraint(constraint);
- if (Dump.isOn("raw-benchmark"))
- {
- getPrinter().toStreamCmdConstraint(d_env->getDumpOut(), constraint);
- }
}
void SmtEngine::assertSygusInvConstraint(Node inv,
SmtScope smts(this);
finishInit();
d_sygusSolver->assertSygusInvConstraint(inv, pre, trans, post);
- if (Dump.isOn("raw-benchmark"))
- {
- getPrinter().toStreamCmdInvConstraint(
- d_env->getDumpOut(), inv, pre, trans, post);
- }
}
Result SmtEngine::checkSynth()
// completely accessible by the user. This is currently not rigorously
// enforced. An alternative design would be to have this method implemented
// at the API level, but this makes exceptions in the text interface less
- // intuitive and makes it impossible to implement raw-benchmark at the
- // SmtEngine level.
- if (Dump.isOn("raw-benchmark"))
- {
- getPrinter().toStreamCmdGetModel(d_env->getDumpOut());
- }
+ // intuitive.
TheoryModel* tm = getAvailableModel("get model");
// use the smt::Model model utility for printing
const Options& opts = d_env->getOptions();