diff options
author | Haniel Barbosa <hanielbbarbosa@gmail.com> | 2020-09-17 18:22:21 -0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-09-17 16:22:21 -0500 |
commit | d256af7a024fa09c6352fb0e7881ae39d17ae611 (patch) | |
tree | 8c9a06145ab69c33753e423c09044967e365c4a6 /src/expr/proof_node_manager.cpp | |
parent | 6cc837f99a37287bf583491649797486650f77e7 (diff) |
[proof-new] Have mkScope agnostic to True assumptions (#5086)
Diffstat (limited to 'src/expr/proof_node_manager.cpp')
-rw-r--r-- | src/expr/proof_node_manager.cpp | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/src/expr/proof_node_manager.cpp b/src/expr/proof_node_manager.cpp index 54315ee05..66a8197d8 100644 --- a/src/expr/proof_node_manager.cpp +++ b/src/expr/proof_node_manager.cpp @@ -22,7 +22,11 @@ using namespace CVC4::kind; namespace CVC4 { -ProofNodeManager::ProofNodeManager(ProofChecker* pc) : d_checker(pc) {} +ProofNodeManager::ProofNodeManager(ProofChecker* pc) + : d_checker(pc) +{ + d_true = NodeManager::currentNM()->mkConst(true); +} std::shared_ptr<ProofNode> ProofNodeManager::mkNode( PfRule id, @@ -88,6 +92,19 @@ std::shared_ptr<ProofNode> ProofNodeManager::mkScope( acu.insert(a); continue; } + // trivial assumption + if (a == d_true) + { + Trace("pnm-scope") << "- justify trivial True assumption\n"; + for (std::shared_ptr<ProofNode> pfs : fa.second) + { + Assert(pfs->getResult() == a); + updateNode(pfs.get(), PfRule::MACRO_SR_PRED_INTRO, {}, {a}); + } + Trace("pnm-scope") << "...finished" << std::endl; + acu.insert(a); + continue; + } Trace("pnm-scope") << "- try matching free assumption " << a << "\n"; // otherwise it may be due to symmetry? Node aeqSym = CDProof::getSymmFact(a); |