summaryrefslogtreecommitdiff
path: root/src/expr/proof_node_manager.cpp
diff options
context:
space:
mode:
authorHaniel Barbosa <hanielbbarbosa@gmail.com>2020-09-17 18:22:21 -0300
committerGitHub <noreply@github.com>2020-09-17 16:22:21 -0500
commitd256af7a024fa09c6352fb0e7881ae39d17ae611 (patch)
tree8c9a06145ab69c33753e423c09044967e365c4a6 /src/expr/proof_node_manager.cpp
parent6cc837f99a37287bf583491649797486650f77e7 (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.cpp19
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);
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback