read_only = true
help = "output proofs after every UNSAT/VALID response"
+[[option]]
+ name = "proofNew"
+ category = "regular"
+ long = "proof-new"
+ type = "bool"
+ default = "false"
+ help = "do proof production using the new infrastructure"
+
+[[option]]
+ name = "proofNewPedantic"
+ category = "regular"
+ long = "proof-new-pedantic"
+ type = "bool"
+ default = "false"
+ read_only = true
+ help = "assertion failure for any incorrect rule application or untrusted lemma for fully supported portions with proof-new"
+
[[option]]
name = "dumpInstantiations"
category = "regular"
<< std::endl;
}
}
+ // !!!!!!!!!!!!!!!! temporary, to support CI check for old proof system
+ if (options::proof())
+ {
+ options::proofNew.set(false);
+ }
// sygus inference may require datatypes
if (!smte.isInternalSubsolver())
}
if (options::ufHo())
{
+ // if higher-order, disable proof production
+ if (options::proofNew())
+ {
+ if (options::proofNew.wasSetByUser())
+ {
+ Warning() << "SmtEngine: turning off proof production (not yet "
+ "supported with --uf-ho)\n";
+ }
+ options::proofNew.set(false);
+ }
// if higher-order, then current variants of model-based instantiation
// cannot be used
if (options::mbqiMode() != options::MbqiMode::NONE)
{
options::cegqiPreRegInst.set(true);
}
+ // not compatible with proofs
+ if (options::proofNew())
+ {
+ if (options::proofNew.wasSetByUser())
+ {
+ Notice() << "SmtEngine: setting proof-new to false to support SyGuS"
+ << std::endl;
+ }
+ options::proofNew.set(false);
+ }
}
// counterexample-guided instantiation for non-sygus
// enable if any possible quantifiers with arithmetic, datatypes or bitvectors
"division. "
"Try --bv-div-zero-const to interpret division by zero as a constant.");
}
+ // !!!!!!!!!!!!!!!! temporary, until proof-new is functional
+ if (options::proofNew())
+ {
+ throw OptionException("--proof-new is not yet supported.");
+ }
}
} // namespace smt