category = "regular"
long = "proof-granularity=MODE"
type = "ProofGranularityMode"
- default = "THEORY_REWRITE"
+ default = "MACRO"
help = "modes for proof granularity"
help_mode = "Modes for proof granularity."
-[[option.mode.OFF]]
- name = "off"
- help = "Do not improve the granularity of proofs."
+[[option.mode.MACRO]]
+ name = "macro"
+ help = "Allow macros. Do not improve the granularity of proofs."
[[option.mode.REWRITE]]
name = "rewrite"
help = "Allow rewrite or substitution steps, expand macros."
// add rules to eliminate here
if (options().proof.proofGranularityMode
- != options::ProofGranularityMode::OFF)
+ != options::ProofGranularityMode::MACRO)
{
d_pfpp->setEliminateRule(PfRule::MACRO_SR_EQ_INTRO);
d_pfpp->setEliminateRule(PfRule::MACRO_SR_PRED_INTRO);
{
opts.smt.unsatCoresMode = options::UnsatCoresMode::PP_ONLY;
}
- opts.proof.proofGranularityMode = options::ProofGranularityMode::OFF;
}
if (opts.smt.checkUnsatCores || opts.driver.dumpUnsatCores
|| opts.smt.unsatAssumptions || opts.smt.minimalUnsatCores
Assert(opts.smt.unsatCores
== (opts.smt.unsatCoresMode != options::UnsatCoresMode::OFF));
- // new unsat core specific restrictions for proofs
- if (opts.smt.unsatCores
- && opts.smt.unsatCoresMode != options::UnsatCoresMode::FULL_PROOF)
- {
- // no fine-graininess
- if (!opts.proof.proofGranularityModeWasSetByUser)
- {
- opts.proof.proofGranularityMode = options::ProofGranularityMode::OFF;
- }
- }
-
// if we requiring disabling proofs, disable them now
if (opts.smt.produceProofs)
{