diff options
author | Haniel Barbosa <hanielbbarbosa@gmail.com> | 2020-12-24 01:15:40 -0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-12-24 01:15:40 -0300 |
commit | e0dfc0a343dfd330f9c8d2a5c1ebd21146366ca9 (patch) | |
tree | 4602faa1f16a2548fe27ad1e7ea6a6a28bec4ee7 /src/preprocessing/passes/non_clausal_simp.cpp | |
parent | a539b63c369544ed08a1fa7fa4c8e3d437be3766 (diff) |
[proof-new] Only use old proofs for unsat cores if no proof new (#5725)
Now the old proofs are used for unsat cores only if proofNew is disabled. Later commits will generate unsat cores from the new proofs when requested. Eventually we will compare them and when we confirm the new unsat core generation is better we will delete the old one.
This also does some minor refactoring in some preprocessing. No behavior is changed.
Diffstat (limited to 'src/preprocessing/passes/non_clausal_simp.cpp')
-rw-r--r-- | src/preprocessing/passes/non_clausal_simp.cpp | 18 |
1 files changed, 2 insertions, 16 deletions
diff --git a/src/preprocessing/passes/non_clausal_simp.cpp b/src/preprocessing/passes/non_clausal_simp.cpp index 7ace55c0a..656822299 100644 --- a/src/preprocessing/passes/non_clausal_simp.cpp +++ b/src/preprocessing/passes/non_clausal_simp.cpp @@ -66,7 +66,8 @@ NonClausalSimp::NonClausalSimp(PreprocessingPassContext* preprocContext) PreprocessingPassResult NonClausalSimp::applyInternal( AssertionPipeline* assertionsToPreprocess) { - Assert(!options::unsatCores()); + Assert(!options::unsatCores() || isProofEnabled()) + << "Unsat cores with non-clausal simp only supported with new proofs"; d_preprocContext->spendResource(ResourceManager::Resource::PreprocessStep); @@ -111,13 +112,8 @@ PreprocessingPassResult NonClausalSimp::applyInternal( // If in conflict, just return false Trace("non-clausal-simplify") << "conflict in non-clausal propagation" << std::endl; - Assert(!options::unsatCores()); assertionsToPreprocess->clear(); assertionsToPreprocess->pushBackTrusted(conf); - if (options::unsatCores()) - { - ProofManager::currentPM()->addDependence(conf.getNode(), Node::null()); - } propagator->setNeedsFinish(true); return PreprocessingPassResult::CONFLICT; } @@ -177,14 +173,9 @@ PreprocessingPassResult NonClausalSimp::applyInternal( // If the learned literal simplifies to false, we're in conflict Trace("non-clausal-simplify") << "conflict with " << learned_literals[i].getNode() << std::endl; - Assert(!options::unsatCores()); assertionsToPreprocess->clear(); Node n = NodeManager::currentNM()->mkConst<bool>(false); assertionsToPreprocess->push_back(n, false, false, d_llpg.get()); - if (options::unsatCores()) - { - ProofManager::currentPM()->addDependence(n, Node::null()); - } propagator->setNeedsFinish(true); return PreprocessingPassResult::CONFLICT; } @@ -216,14 +207,9 @@ PreprocessingPassResult NonClausalSimp::applyInternal( // If in conflict, we return false Trace("non-clausal-simplify") << "conflict while solving " << learnedLiteral << std::endl; - Assert(!options::unsatCores()); assertionsToPreprocess->clear(); Node n = NodeManager::currentNM()->mkConst<bool>(false); assertionsToPreprocess->push_back(n); - if (options::unsatCores()) - { - ProofManager::currentPM()->addDependence(n, Node::null()); - } propagator->setNeedsFinish(true); return PreprocessingPassResult::CONFLICT; } |