From: guykatzz Date: Thu, 6 Oct 2016 06:39:48 +0000 (-0700) Subject: Added an option that allow empty dependencies when attempting to minimize preprocessi... X-Git-Tag: cvc5-1.0.0~6028^2~1 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=edce1662b001dd6f229a25685fb4de6789ff008d;p=cvc5.git Added an option that allow empty dependencies when attempting to minimize preprocessing holes --- diff --git a/src/options/proof_options b/src/options/proof_options index 322ef5a9c..789513334 100644 --- a/src/options/proof_options +++ b/src/options/proof_options @@ -12,6 +12,9 @@ option aggressiveCoreMin --aggressive-core-min bool :default false turns on aggressive unsat core minimization (experimental) option fewerPreprocessingHoles --fewer-preprocessing-holes bool :default false :read-write - try to eliminate preprocessing holes in proofs + try to eliminate preprocessing holes in proofs + +option allowEmptyDependencies --allow-empty-dependencies bool :default false + if unable to track the dependencies of a rewritten/preprocessed assertion, fail silently endmodule diff --git a/src/proof/proof_manager.cpp b/src/proof/proof_manager.cpp index 1c9bb0ff0..5ce615366 100644 --- a/src/proof/proof_manager.cpp +++ b/src/proof/proof_manager.cpp @@ -272,6 +272,10 @@ void ProofManager::traceDeps(TNode n, ExprSet* coreAssertions) { } else { Debug("cores") << " -- NOT IN INPUT CORE LIST!" << std::endl; if(d_deps.find(n) == d_deps.end()) { + if (options::allowEmptyDependencies()) { + Debug("cores") << " -- Could not track cause assertion. Failing silently." << std::endl; + return; + } InternalError("Cannot trace dependence information back to input assertion:\n`%s'", n.toString().c_str()); } Assert(d_deps.find(n) != d_deps.end());