diff options
Diffstat (limited to 'src/theory/arith/nl')
-rw-r--r-- | src/theory/arith/nl/cad_solver.cpp | 12 | ||||
-rw-r--r-- | src/theory/arith/nl/transcendental/sine_solver.cpp | 4 | ||||
-rw-r--r-- | src/theory/arith/nl/transcendental/transcendental_solver.cpp | 6 |
3 files changed, 13 insertions, 9 deletions
diff --git a/src/theory/arith/nl/cad_solver.cpp b/src/theory/arith/nl/cad_solver.cpp index 1cf9cbc54..aa9bce776 100644 --- a/src/theory/arith/nl/cad_solver.cpp +++ b/src/theory/arith/nl/cad_solver.cpp @@ -14,11 +14,12 @@ #include "theory/arith/nl/cad_solver.h" -#include "theory/inference_id.h" +#include "expr/skolem_manager.h" #include "theory/arith/inference_manager.h" #include "theory/arith/nl/cad/cdcac.h" #include "theory/arith/nl/nl_model.h" #include "theory/arith/nl/poly_conversion.h" +#include "theory/inference_id.h" namespace cvc5 { namespace theory { @@ -37,11 +38,10 @@ CadSolver::CadSolver(InferenceManager& im, d_im(im), d_model(model) { - d_ranVariable = - NodeManager::currentNM()->mkSkolem("__z", - NodeManager::currentNM()->realType(), - "", - NodeManager::SKOLEM_EXACT_NAME); + NodeManager* nm = NodeManager::currentNM(); + SkolemManager* sm = nm->getSkolemManager(); + d_ranVariable = sm->mkDummySkolem( + "__z", nm->realType(), "", NodeManager::SKOLEM_EXACT_NAME); #ifdef CVC4_POLY_IMP ProofChecker* pc = pnm != nullptr ? pnm->getChecker() : nullptr; if (pc != nullptr) diff --git a/src/theory/arith/nl/transcendental/sine_solver.cpp b/src/theory/arith/nl/transcendental/sine_solver.cpp index c8c375096..2a1f2ad91 100644 --- a/src/theory/arith/nl/transcendental/sine_solver.cpp +++ b/src/theory/arith/nl/transcendental/sine_solver.cpp @@ -20,6 +20,7 @@ #include "expr/node_algorithm.h" #include "expr/node_builder.h" #include "expr/proof.h" +#include "expr/skolem_manager.h" #include "options/arith_options.h" #include "theory/arith/arith_msum.h" #include "theory/arith/arith_utilities.h" @@ -55,10 +56,11 @@ SineSolver::~SineSolver() {} void SineSolver::doPhaseShift(TNode a, TNode new_a, TNode y) { NodeManager* nm = NodeManager::currentNM(); + SkolemManager* sm = nm->getSkolemManager(); Assert(a.getKind() == Kind::SINE); Trace("nl-ext-tf") << "Basis sine : " << new_a << " for " << a << std::endl; Assert(!d_data->d_pi.isNull()); - Node shift = nm->mkSkolem("s", nm->integerType(), "number of shifts"); + Node shift = sm->mkDummySkolem("s", nm->integerType(), "number of shifts"); // TODO (cvc4-projects #47) : do not introduce shift here, instead needs model-based // refinement for constant shifts (cvc4-projects #1284) Node lem = nm->mkNode( diff --git a/src/theory/arith/nl/transcendental/transcendental_solver.cpp b/src/theory/arith/nl/transcendental/transcendental_solver.cpp index ed5ab4255..b3fd40ce7 100644 --- a/src/theory/arith/nl/transcendental/transcendental_solver.cpp +++ b/src/theory/arith/nl/transcendental/transcendental_solver.cpp @@ -19,6 +19,7 @@ #include "expr/node_algorithm.h" #include "expr/node_builder.h" +#include "expr/skolem_manager.h" #include "options/arith_options.h" #include "theory/arith/arith_msum.h" #include "theory/arith/arith_utilities.h" @@ -56,14 +57,15 @@ void TranscendentalSolver::initLastCall(const std::vector<Node>& xts) } NodeManager* nm = NodeManager::currentNM(); + SkolemManager* sm = nm->getSkolemManager(); for (const Node& a : needsMaster) { // should not have processed this already Assert(d_tstate.d_trMaster.find(a) == d_tstate.d_trMaster.end()); Kind k = a.getKind(); Assert(k == Kind::SINE || k == Kind::EXPONENTIAL); - Node y = - nm->mkSkolem("y", nm->realType(), "phase shifted trigonometric arg"); + Node y = sm->mkDummySkolem( + "y", nm->realType(), "phase shifted trigonometric arg"); Node new_a = nm->mkNode(k, y); d_tstate.d_trSlaves[new_a].insert(new_a); d_tstate.d_trSlaves[new_a].insert(a); |