116 typedef context::CDHashMap<Node, smt::DefinedFunction, NodeHashFunction>
119 typedef context::CDList<Expr> AssertionList;
121 typedef context::CDHashSet<Node, NodeHashFunction> AssignmentSet;
124 context::Context* d_context;
127 std::vector<int> d_userLevels;
129 context::UserContext* d_userContext;
134 NodeManager* d_nodeManager;
136 DecisionEngine* d_decisionEngine;
138 TheoryEngine* d_theoryEngine;
140 prop::PropEngine* d_propEngine;
142 ProofManager* d_proofManager;
144 DefinedFunctionMap* d_definedFunctions;
150 AssertionList* d_assertionList;
155 AssignmentSet* d_assignments;
162 std::vector<Command*> d_modelGlobalCommands;
177 std::vector<Command*> d_dumpCommands;
187 unsigned d_pendingPops;
202 bool d_problemExtended;
216 bool d_needPostsolve;
221 bool d_earlyTheoryPP;
224 unsigned long d_timeBudgetCumulative;
226 unsigned long d_timeBudgetPerCall;
228 unsigned long d_resourceBudgetCumulative;
230 unsigned long d_resourceBudgetPerCall;
233 unsigned long d_cumulativeTimeUsed;
235 unsigned long d_cumulativeResourceUsed;
245 std::string d_filename;
250 std::map<std::string, Integer> d_commandVerbosity;
255 smt::SmtEnginePrivate* d_private;
266 void checkModel(
bool hardFailure =
true);
273 Node postprocess(
TNode n, TypeNode expectedType)
const;
281 void finalOptionsAreSet();
324 void internalPop(
bool immediate =
false);
326 void doPendingPops();
332 void setLogicInternal()
throw();
334 friend class ::CVC4::smt::SmtEnginePrivate;
335 friend class ::CVC4::smt::SmtScope;
336 friend class ::CVC4::smt::BooleanTermConverter;
340 friend class ::CVC4::LogicRequest;
342 friend class ::CVC4::Model;
343 friend class ::CVC4::theory::TheoryModel;
347 StatisticsRegistry* d_statisticsRegistry;
349 smt::SmtEngineStatistics* d_stats;
355 void addToModelCommandAndDump(
const Command& c, uint32_t flags = 0,
bool userVisible =
true,
const char* dumpTag =
"declarations");
431 const
std::vector<
Expr>& formals,
488 bool addToAssignment(const
Expr& e) throw();
507 void printInstantiations(
std::ostream& out );
563 void setResourceLimit(
unsigned long units,
bool cumulative = false);
595 void setTimeLimit(
unsigned long millis,
bool cumulative = false);
602 unsigned long getResourceUsage() const;
607 unsigned long getTimeUsage() const;
629 return d_exprManager;
640 SExpr getStatistic(
std::
string name) const throw();
645 Result getStatusOfLastCommand() const throw() {