From edce1662b001dd6f229a25685fb4de6789ff008d Mon Sep 17 00:00:00 2001 From: guykatzz Date: Wed, 5 Oct 2016 23:39:48 -0700 Subject: [PATCH] Added an option that allow empty dependencies when attempting to minimize preprocessing holes --- src/options/proof_options | 5 ++++- src/proof/proof_manager.cpp | 4 ++++ 2 files changed, 8 insertions(+), 1 deletion(-) 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()); -- 2.30.2