diff options
author | Andrew Reynolds <andrew.j.reynolds@gmail.com> | 2021-04-07 13:36:15 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-04-07 18:36:15 +0000 |
commit | 04a494e251a8cc2c90bb429e2858f1c4eb8f88ff (patch) | |
tree | 03b1a5792f2f6ca5537353b86682f427090668da /src/theory/quantifiers/term_database.cpp | |
parent | 5059658ee0d6fc65e4cb1652c605895d016cd274 (diff) |
Replace calls to NodeManager::mkSkolem with SkolemManager::mkDummySkolem (#6291)
This is in preparation for refactoring skolem creation throughout the code base to improve proofs and migrate Theory::expandDefinitions to Rewriter::expandDefinitions.
This PR also eliminates some unused code in TheoryArithPrivate.
Followup PRs will start formalizing/eliminating calls to mkDummySkolem.
Diffstat (limited to 'src/theory/quantifiers/term_database.cpp')
-rw-r--r-- | src/theory/quantifiers/term_database.cpp | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/src/theory/quantifiers/term_database.cpp b/src/theory/quantifiers/term_database.cpp index 64c2fda76..517c3ac24 100644 --- a/src/theory/quantifiers/term_database.cpp +++ b/src/theory/quantifiers/term_database.cpp @@ -14,6 +14,7 @@ #include "theory/quantifiers/term_database.h" +#include "expr/skolem_manager.h" #include "options/base_options.h" #include "options/quantifiers_options.h" #include "options/smt_options.h" @@ -154,11 +155,11 @@ Node TermDb::getOrMakeTypeFreshVariable(TypeNode tn) d_type_fv.find(tn); if (it == d_type_fv.end()) { + SkolemManager* sm = NodeManager::currentNM()->getSkolemManager(); std::stringstream ss; ss << language::SetLanguage(options::outputLanguage()); ss << "e_" << tn; - Node k = NodeManager::currentNM()->mkSkolem( - ss.str(), tn, "is a termDb fresh variable"); + Node k = sm->mkDummySkolem(ss.str(), tn, "is a termDb fresh variable"); Trace("mkVar") << "TermDb:: Make variable " << k << " : " << tn << std::endl; if (options::instMaxLevel() != -1) @@ -168,10 +169,7 @@ Node TermDb::getOrMakeTypeFreshVariable(TypeNode tn) d_type_fv[tn] = k; return k; } - else - { - return it->second; - } + return it->second; } Node TermDb::getMatchOperator( Node n ) { @@ -468,6 +466,7 @@ void TermDb::addTermHo(Node n) return; } NodeManager* nm = NodeManager::currentNM(); + SkolemManager* sm = nm->getSkolemManager(); Node curr = n; std::vector<Node> args; while (curr.getKind() == HO_APPLY) @@ -481,9 +480,9 @@ void TermDb::addTermHo(Node n) Node psk; if (itp == d_ho_fun_op_purify.end()) { - psk = nm->mkSkolem("pfun", - curr.getType(), - "purify for function operator term indexing"); + psk = sm->mkDummySkolem("pfun", + curr.getType(), + "purify for function operator term indexing"); d_ho_fun_op_purify[curr] = psk; // we do not add it to d_ops since it is an internal operator } @@ -1224,8 +1223,9 @@ Node TermDb::getHoTypeMatchPredicate(TypeNode tn) return ithp->second; } NodeManager* nm = NodeManager::currentNM(); + SkolemManager* sm = nm->getSkolemManager(); TypeNode ptn = nm->mkFunctionType(tn, nm->booleanType()); - Node k = nm->mkSkolem("U", ptn, "predicate to force higher-order types"); + Node k = sm->mkDummySkolem("U", ptn, "predicate to force higher-order types"); d_ho_type_match_pred[tn] = k; return k; } |