<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <title>CVC3: Decision Engine</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="doxygen.css" rel="stylesheet" type="text/css"/> </head> <body> <!-- Generated by Doxygen 1.7.4 --> <div id="top"> <div id="titlearea"> <table cellspacing="0" cellpadding="0"> <tbody> <tr style="height: 56px;"> <td style="padding-left: 0.5em;"> <div id="projectname">CVC3 <span id="projectnumber">2.4.1</span></div> </td> </tr> </tbody> </table> </div> <div id="navrow1" class="tabs"> <ul class="tablist"> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li><a href="namespaces.html"><span>Namespaces</span></a></li> <li><a href="annotated.html"><span>Classes</span></a></li> <li><a href="files.html"><span>Files</span></a></li> </ul> </div> </div> <div class="header"> <div class="summary"> <a href="#nested-classes">Classes</a> | <a href="#func-members">Functions</a> | <a href="#var-members">Variables</a> </div> <div class="headertitle"> <div class="title">Decision Engine</div> </div> <div class="ingroups"><a class="el" href="group__SE.html">Search Engine</a></div></div> <div class="contents"> <p>Decision Engine, used by Search Engine. <a href="#details">More...</a></p> <h2><a name="nested-classes"></a> Classes</h2> <ul> <li>class <a class="el" href="classCVC3_1_1DecisionEngineDFS.html">CVC3::DecisionEngineDFS</a> <dl class="el"><dd class="mdescRight">Decision Engine for use with the Search EngineAuthor: Clark Barrett. <a href="classCVC3_1_1DecisionEngineDFS.html#details">More...</a><br/></dl></ul> <h2><a name="func-members"></a> Functions</h2> <ul> <li><a class="el" href="classCVC3_1_1Expr.html">Expr</a> <a class="el" href="group__DE.html#ga5974aad82f7244de1ce9a49969b2d57d">CVC3::DecisionEngine::findSplitterRec</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &e) <li>virtual bool <a class="el" href="group__DE.html#gaaa431eec1b04f02c8a7573d34616158b">CVC3::DecisionEngine::isBetter</a> (const Expr &e1, const Expr &e2)=0 <li><a class="el" href="group__DE.html#gae0864ba9d167d33e9d1c1ed4416a76fd">CVC3::DecisionEngine::DecisionEngine</a> (<a class="el" href="classCVC3_1_1TheoryCore.html">TheoryCore</a> *core, <a class="el" href="classCVC3_1_1SearchImplBase.html">SearchImplBase</a> *se) <li>virtual <a class="el" href="group__DE.html#ga55c5dee7b559b90e9d0c3fd8aa7c70b2">CVC3::DecisionEngine::~DecisionEngine</a> () <li>virtual Expr <a class="el" href="group__DE.html#ga6f191a7f4edb645e8df7c1f005a50bf8">CVC3::DecisionEngine::findSplitter</a> (const Expr &e)=0 <dl class="el"><dd class="mdescRight">Finds a splitter inside a non const expression. The expression passed in must not be a boolean constant, otherwise a DebugAssert will occur. <a href="#ga6f191a7f4edb645e8df7c1f005a50bf8"></a><br/></dl><li>void <a class="el" href="group__DE.html#ga03a83031c2361cce4e8ce952842973be">CVC3::DecisionEngine::pushDecision</a> (<a class="el" href="classCVC3_1_1Expr.html">Expr</a> splitter, bool whichCase=true) <dl class="el"><dd class="mdescRight">Push context and record the splitter. <a href="#ga03a83031c2361cce4e8ce952842973be"></a><br/></dl><li>void <a class="el" href="group__DE.html#ga96c0e5c796d102da129381dd12595e8a">CVC3::DecisionEngine::popDecision</a> () <dl class="el"><dd class="mdescRight">Pop last decision (and context) <a href="#ga96c0e5c796d102da129381dd12595e8a"></a><br/></dl><li>void <a class="el" href="group__DE.html#ga90d2e881c4cc004754708ee579682d85">CVC3::DecisionEngine::popTo</a> (int dl) <dl class="el"><dd class="mdescRight">Pop to given scope. <a href="#ga90d2e881c4cc004754708ee579682d85"></a><br/></dl><li><a class="el" href="classCVC3_1_1Expr.html">Expr</a> <a class="el" href="group__DE.html#ga5b67011c3ea03780faf2071d5085a544">CVC3::DecisionEngine::lastSplitter</a> () <dl class="el"><dd class="mdescRight">Return the last known splitter. <a href="#ga5b67011c3ea03780faf2071d5085a544"></a><br/></dl><li>virtual void <a class="el" href="group__DE.html#ga7910d09d94bd27c02f53a3f7e0a9af00">CVC3::DecisionEngine::goalSatisfied</a> ()=0 <dl class="el"><dd class="mdescRight">Search should call this when it derives 'false'. <a href="#ga7910d09d94bd27c02f53a3f7e0a9af00"></a><br/></dl></ul> <h2><a name="var-members"></a> Variables</h2> <ul> <li>TheoryCore * <a class="el" href="group__DE.html#gaea6842e7db1a4cb203d8a6da726b52ed">CVC3::DecisionEngine::d_core</a> <dl class="el"><dd class="mdescRight">Pointer to core theory. <a href="#gaea6842e7db1a4cb203d8a6da726b52ed"></a><br/></dl><li>SearchImplBase * <a class="el" href="group__DE.html#ga11d61d4a7d9938dd4c72ffe564dc9cb7">CVC3::DecisionEngine::d_se</a> <dl class="el"><dd class="mdescRight">Pointer to search engine. <a href="#ga11d61d4a7d9938dd4c72ffe564dc9cb7"></a><br/></dl><li>CDList< Expr > <a class="el" href="group__DE.html#gaf662ad88359f7ce623ffe35ebc6d74ef">CVC3::DecisionEngine::d_splitters</a> <dl class="el"><dd class="mdescRight">List of currently active splitters. <a href="#gaf662ad88359f7ce623ffe35ebc6d74ef"></a><br/></dl><li>StatCounter <a class="el" href="group__DE.html#gae9092ccb020b756b56556eb57a7af5ab">CVC3::DecisionEngine::d_splitterCount</a> <dl class="el"><dd class="mdescRight">Total number of splitters. <a href="#gae9092ccb020b756b56556eb57a7af5ab"></a><br/></dl><li>ExprMap< Expr > <a class="el" href="group__DE.html#ga922651f82bf5dec8e9f6d7211507a6fd">CVC3::DecisionEngine::d_bestByExpr</a> <li>ExprMap< Expr > <a class="el" href="group__DE.html#gab9a86f01371ea2ef051119f0e414727b">CVC3::DecisionEngine::d_visited</a> <dl class="el"><dd class="mdescRight">Visited cache for findSplitterRec traversal. <a href="#gab9a86f01371ea2ef051119f0e414727b"></a><br/></dl></ul> <hr/><a name="details" id="details"></a><h2>Detailed Description</h2> <p>Decision Engine, used by Search Engine. </p> <hr/><h2>Function Documentation</h2> <a class="anchor" id="ga5974aad82f7244de1ce9a49969b2d57d"></a><!-- doxytag: member="CVC3::DecisionEngine::findSplitterRec" ref="ga5974aad82f7244de1ce9a49969b2d57d" args="(const Expr &e)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCVC3_1_1Expr.html">Expr</a> DecisionEngine::findSplitterRec </td> <td>(</td> <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> & </td> <td class="paramname"><em>e</em></td><td>)</td> <td><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Function: <a class="el" href="group__DE.html#ga5974aad82f7244de1ce9a49969b2d57d">DecisionEngine::findSplitterRec</a></p> <p>Author: Clark Barrett</p> <p>Created: Sun Jul 13 22:47:06 2003</p> <p>Search the expression e (depth-first) for an atomic formula. Note that in order to support the "simplify in-place" option, each sub-expression is checked to see if it has a find pointer, and if it does, the find is followed instead of continuing to recurse on the given expression. </p> <dl class="return"><dt><b>Returns:</b></dt><dd>a NULL expr if no atomic formula is found. </dd></dl> <p>Definition at line <a class="el" href="decision__engine_8cpp_source.html#l00055">55</a> of file <a class="el" href="decision__engine_8cpp_source.html">decision_engine.cpp</a>.</p> <p>References <a class="el" href="expr_8h_source.html#l01201">CVC3::Expr::arity()</a>, <a class="el" href="expr__map_8h_source.html#l00173">CVC3::ExprMap< Data >::count()</a>, <a class="el" href="decision__engine_8h_source.html#l00050">CVC3::DecisionEngine::d_bestByExpr</a>, <a class="el" href="decision__engine_8h_source.html#l00041">CVC3::DecisionEngine::d_core</a>, <a class="el" href="decision__engine_8h_source.html#l00042">CVC3::DecisionEngine::d_se</a>, <a class="el" href="decision__engine_8h_source.html#l00054">CVC3::DecisionEngine::d_visited</a>, <a class="el" href="expr__map_8h_source.html#l00191">CVC3::ExprMap< Data >::end()</a>, <a class="el" href="expr__map_8h_source.html#l00194">CVC3::ExprMap< Data >::find()</a>, <a class="el" href="theory_8h_source.html#l00503">CVC3::Theory::findExpr()</a>, <a class="el" href="expr_8h_source.html#l00398">CVC3::Expr::isAbsAtomicFormula()</a>, <a class="el" href="expr_8cpp_source.html#l00550">CVC3::Expr::isAtomic()</a>, <a class="el" href="group__DE.html#gaaa431eec1b04f02c8a7573d34616158b">CVC3::DecisionEngine::isBetter()</a>, <a class="el" href="expr_8h_source.html#l00355">CVC3::Expr::isFalse()</a>, <a class="el" href="search__impl__base_8cpp_source.html#l00711">CVC3::SearchImplBase::isGoodSplitter()</a>, <a class="el" href="expr_8h_source.html#l00423">CVC3::Expr::isITE()</a>, <a class="el" href="expr_8h_source.html#l01223">CVC3::Expr::isNull()</a>, and <a class="el" href="expr_8h_source.html#l00356">CVC3::Expr::isTrue()</a>.</p> <p>Referenced by <a class="el" href="decision__engine__dfs_8cpp_source.html#l00067">CVC3::DecisionEngineDFS::findSplitter()</a>.</p> </div> </div> <a class="anchor" id="gaaa431eec1b04f02c8a7573d34616158b"></a><!-- doxytag: member="CVC3::DecisionEngine::isBetter" ref="gaaa431eec1b04f02c8a7573d34616158b" args="(const Expr &e1, const Expr &e2)=0" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual bool CVC3::DecisionEngine::isBetter </td> <td>(</td> <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> & </td> <td class="paramname"><em>e1</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> & </td> <td class="paramname"><em>e2</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td><code> [protected, pure virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Implemented in <a class="el" href="classCVC3_1_1DecisionEngineCaching.html#a7d60b88900facdb762fcdf10fb86dcf7">CVC3::DecisionEngineCaching</a>, <a class="el" href="classCVC3_1_1DecisionEngineDFS.html#af7db0332174c8495ccf28d04def2ecd1">CVC3::DecisionEngineDFS</a>, and <a class="el" href="classCVC3_1_1DecisionEngineMBTF.html#aabd84168f73f0e1957b2af66fc9a1fd3">CVC3::DecisionEngineMBTF</a>.</p> <p>Referenced by <a class="el" href="decision__engine_8cpp_source.html#l00055">CVC3::DecisionEngine::findSplitterRec()</a>.</p> </div> </div> <a class="anchor" id="gae0864ba9d167d33e9d1c1ed4416a76fd"></a><!-- doxytag: member="CVC3::DecisionEngine::DecisionEngine" ref="gae0864ba9d167d33e9d1c1ed4416a76fd" args="(TheoryCore *core, SearchImplBase *se)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">DecisionEngine::DecisionEngine </td> <td>(</td> <td class="paramtype"><a class="el" href="classCVC3_1_1TheoryCore.html">TheoryCore</a> * </td> <td class="paramname"><em>core</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classCVC3_1_1SearchImplBase.html">SearchImplBase</a> * </td> <td class="paramname"><em>se</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="decision__engine_8cpp_source.html#l00032">32</a> of file <a class="el" href="decision__engine_8cpp_source.html">decision_engine.cpp</a>.</p> <p>References <a class="el" href="decision__engine_8h_source.html#l00045">CVC3::DecisionEngine::d_splitters</a>, and <a class="el" href="debug_8h_source.html#l00406">IF_DEBUG</a>.</p> </div> </div> <a class="anchor" id="ga55c5dee7b559b90e9d0c3fd8aa7c70b2"></a><!-- doxytag: member="CVC3::DecisionEngine::~DecisionEngine" ref="ga55c5dee7b559b90e9d0c3fd8aa7c70b2" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual CVC3::DecisionEngine::~DecisionEngine </td> <td>(</td> <td class="paramname"></td><td>)</td> <td><code> [inline, virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="decision__engine_8h_source.html#l00061">61</a> of file <a class="el" href="decision__engine_8h_source.html">decision_engine.h</a>.</p> </div> </div> <a class="anchor" id="ga6f191a7f4edb645e8df7c1f005a50bf8"></a><!-- doxytag: member="CVC3::DecisionEngine::findSplitter" ref="ga6f191a7f4edb645e8df7c1f005a50bf8" args="(const Expr &e)=0" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual Expr CVC3::DecisionEngine::findSplitter </td> <td>(</td> <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> & </td> <td class="paramname"><em>e</em></td><td>)</td> <td><code> [pure virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Finds a splitter inside a non const expression. The expression passed in must not be a boolean constant, otherwise a DebugAssert will occur. </p> <dl class="return"><dt><b>Returns:</b></dt><dd>Null <a class="el" href="classCVC3_1_1Expr.html" title="Data structure of expressions in CVC3.">Expr</a> if passed in a Null <a class="el" href="classCVC3_1_1Expr.html" title="Data structure of expressions in CVC3.">Expr</a>. </dd></dl> <p>Implemented in <a class="el" href="classCVC3_1_1DecisionEngineCaching.html#ab20992d6e5f1d4d17a87823090452174">CVC3::DecisionEngineCaching</a>, <a class="el" href="classCVC3_1_1DecisionEngineDFS.html#afbb4011e6c9724af1fda70a63687f4d7">CVC3::DecisionEngineDFS</a>, and <a class="el" href="classCVC3_1_1DecisionEngineMBTF.html#aaff19d26516fceaeed252719d9128b9d">CVC3::DecisionEngineMBTF</a>.</p> <p>Referenced by <a class="el" href="search__fast_8cpp_source.html#l00438">CVC3::SearchEngineFast::findSplitter()</a>.</p> </div> </div> <a class="anchor" id="ga03a83031c2361cce4e8ce952842973be"></a><!-- doxytag: member="CVC3::DecisionEngine::pushDecision" ref="ga03a83031c2361cce4e8ce952842973be" args="(Expr splitter, bool whichCase=true)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void DecisionEngine::pushDecision </td> <td>(</td> <td class="paramtype"><a class="el" href="classCVC3_1_1Expr.html">Expr</a> </td> <td class="paramname"><em>splitter</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">bool </td> <td class="paramname"><em>whichCase</em> = <code>true</code> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Push context and record the splitter. </p> <p>Function: <a class="el" href="group__DE.html#ga03a83031c2361cce4e8ce952842973be" title="Push context and record the splitter.">DecisionEngine::pushDecision</a></p> <p>Author: Clark Barrett</p> <p>Created: Sun Jul 13 22:55:16 2003</p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">splitter</td><td></td></tr> <tr><td class="paramname">whichCase</td><td>If true, increment the splitter count and assert the splitter. If false, do NOT increment the splitter count and assert the negation of the splitter. Defaults to true. </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="decision__engine_8cpp_source.html#l00128">128</a> of file <a class="el" href="decision__engine_8cpp_source.html">decision_engine.cpp</a>.</p> <p>References <a class="el" href="theory__core_8cpp_source.html#l03468">CVC3::TheoryCore::addFact()</a>, <a class="el" href="group__SE.html#gaed2d918b4d0eb14d99bf63882fe2df1a">CVC3::SearchImplBase::addLiteralFact()</a>, <a class="el" href="decision__engine_8h_source.html#l00041">CVC3::DecisionEngine::d_core</a>, <a class="el" href="decision__engine_8h_source.html#l00042">CVC3::DecisionEngine::d_se</a>, <a class="el" href="decision__engine_8h_source.html#l00048">CVC3::DecisionEngine::d_splitterCount</a>, <a class="el" href="decision__engine_8h_source.html#l00045">CVC3::DecisionEngine::d_splitters</a>, <a class="el" href="theory__core_8h_source.html#l00348">CVC3::TheoryCore::getCM()</a>, <a class="el" href="theorem_8cpp_source.html#l00230">CVC3::Theorem::getExpr()</a>, <a class="el" href="expr_8h_source.html#l00406">CVC3::Expr::isAbsLiteral()</a>, <a class="el" href="expr_8h_source.html#l00937">CVC3::Expr::negate()</a>, <a class="el" href="search__impl__base_8cpp_source.html#l00170">CVC3::SearchImplBase::newIntAssumption()</a>, <a class="el" href="context_8h_source.html#l00401">CVC3::ContextManager::push()</a>, <a class="el" href="cdlist_8h_source.html#l00066">CVC3::CDList< T >::push_back()</a>, and <a class="el" href="kinds_8h_source.html#l00099">TRACE</a>.</p> <p>Referenced by <a class="el" href="search__fast_8cpp_source.html#l00254">CVC3::SearchEngineFast::split()</a>.</p> </div> </div> <a class="anchor" id="ga96c0e5c796d102da129381dd12595e8a"></a><!-- doxytag: member="CVC3::DecisionEngine::popDecision" ref="ga96c0e5c796d102da129381dd12595e8a" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void DecisionEngine::popDecision </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Pop last decision (and context) </p> <p>Definition at line <a class="el" href="decision__engine_8cpp_source.html#l00150">150</a> of file <a class="el" href="decision__engine_8cpp_source.html">decision_engine.cpp</a>.</p> <p>References <a class="el" href="decision__engine_8h_source.html#l00041">CVC3::DecisionEngine::d_core</a>, <a class="el" href="theory__core_8h_source.html#l00348">CVC3::TheoryCore::getCM()</a>, <a class="el" href="context_8h_source.html#l00402">CVC3::ContextManager::pop()</a>, <a class="el" href="context_8h_source.html#l00404">CVC3::ContextManager::scopeLevel()</a>, and <a class="el" href="kinds_8h_source.html#l00099">TRACE</a>.</p> </div> </div> <a class="anchor" id="ga90d2e881c4cc004754708ee579682d85"></a><!-- doxytag: member="CVC3::DecisionEngine::popTo" ref="ga90d2e881c4cc004754708ee579682d85" args="(int dl)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void DecisionEngine::popTo </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"><em>dl</em></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Pop to given scope. </p> <p>Definition at line <a class="el" href="decision__engine_8cpp_source.html#l00157">157</a> of file <a class="el" href="decision__engine_8cpp_source.html">decision_engine.cpp</a>.</p> <p>References <a class="el" href="decision__engine_8h_source.html#l00041">CVC3::DecisionEngine::d_core</a>, <a class="el" href="theory__core_8h_source.html#l00348">CVC3::TheoryCore::getCM()</a>, <a class="el" href="context_8h_source.html#l00403">CVC3::ContextManager::popto()</a>, <a class="el" href="context_8h_source.html#l00404">CVC3::ContextManager::scopeLevel()</a>, and <a class="el" href="kinds_8h_source.html#l00099">TRACE</a>.</p> <p>Referenced by <a class="el" href="search__fast_8cpp_source.html#l00939">CVC3::SearchEngineFast::fixConflict()</a>, and <a class="el" href="search__fast_8cpp_source.html#l01837">CVC3::SearchEngineFast::traceConflict()</a>.</p> </div> </div> <a class="anchor" id="ga5b67011c3ea03780faf2071d5085a544"></a><!-- doxytag: member="CVC3::DecisionEngine::lastSplitter" ref="ga5b67011c3ea03780faf2071d5085a544" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCVC3_1_1Expr.html">Expr</a> DecisionEngine::lastSplitter </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Return the last known splitter. </p> <p>Definition at line <a class="el" href="decision__engine_8cpp_source.html#l00164">164</a> of file <a class="el" href="decision__engine_8cpp_source.html">decision_engine.cpp</a>.</p> <p>References <a class="el" href="cdlist_8h_source.html#l00082">CVC3::CDList< T >::back()</a>, and <a class="el" href="decision__engine_8h_source.html#l00045">CVC3::DecisionEngine::d_splitters</a>.</p> </div> </div> <a class="anchor" id="ga7910d09d94bd27c02f53a3f7e0a9af00"></a><!-- doxytag: member="CVC3::DecisionEngine::goalSatisfied" ref="ga7910d09d94bd27c02f53a3f7e0a9af00" args="()=0" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual void CVC3::DecisionEngine::goalSatisfied </td> <td>(</td> <td class="paramname"></td><td>)</td> <td><code> [pure virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Search should call this when it derives 'false'. </p> <p>Implemented in <a class="el" href="classCVC3_1_1DecisionEngineCaching.html#aa38d7c2c1200d0690b53bd93b6167ff0">CVC3::DecisionEngineCaching</a>, <a class="el" href="classCVC3_1_1DecisionEngineDFS.html#a3ebbe142c86aa4d303e5de0610309d1c">CVC3::DecisionEngineDFS</a>, and <a class="el" href="classCVC3_1_1DecisionEngineMBTF.html#af36387647113ec7f82897af961ab60d4">CVC3::DecisionEngineMBTF</a>.</p> <p>Referenced by <a class="el" href="search__fast_8cpp_source.html#l00186">CVC3::SearchEngineFast::checkSAT()</a>.</p> </div> </div> <hr/><h2>Variable Documentation</h2> <a class="anchor" id="gaea6842e7db1a4cb203d8a6da726b52ed"></a><!-- doxytag: member="CVC3::DecisionEngine::d_core" ref="gaea6842e7db1a4cb203d8a6da726b52ed" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">TheoryCore* <a class="el" href="group__DE.html#gaea6842e7db1a4cb203d8a6da726b52ed">CVC3::DecisionEngine::d_core</a><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Pointer to core theory. </p> <p>Definition at line <a class="el" href="decision__engine_8h_source.html#l00041">41</a> of file <a class="el" href="decision__engine_8h_source.html">decision_engine.h</a>.</p> <p>Referenced by <a class="el" href="decision__engine_8cpp_source.html#l00055">CVC3::DecisionEngine::findSplitterRec()</a>, <a class="el" href="decision__engine_8cpp_source.html#l00150">CVC3::DecisionEngine::popDecision()</a>, <a class="el" href="decision__engine_8cpp_source.html#l00157">CVC3::DecisionEngine::popTo()</a>, and <a class="el" href="decision__engine_8cpp_source.html#l00128">CVC3::DecisionEngine::pushDecision()</a>.</p> </div> </div> <a class="anchor" id="ga11d61d4a7d9938dd4c72ffe564dc9cb7"></a><!-- doxytag: member="CVC3::DecisionEngine::d_se" ref="ga11d61d4a7d9938dd4c72ffe564dc9cb7" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">SearchImplBase* <a class="el" href="group__DE.html#ga11d61d4a7d9938dd4c72ffe564dc9cb7">CVC3::DecisionEngine::d_se</a><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Pointer to search engine. </p> <p>Definition at line <a class="el" href="decision__engine_8h_source.html#l00042">42</a> of file <a class="el" href="decision__engine_8h_source.html">decision_engine.h</a>.</p> <p>Referenced by <a class="el" href="decision__engine_8cpp_source.html#l00055">CVC3::DecisionEngine::findSplitterRec()</a>, and <a class="el" href="decision__engine_8cpp_source.html#l00128">CVC3::DecisionEngine::pushDecision()</a>.</p> </div> </div> <a class="anchor" id="gaf662ad88359f7ce623ffe35ebc6d74ef"></a><!-- doxytag: member="CVC3::DecisionEngine::d_splitters" ref="gaf662ad88359f7ce623ffe35ebc6d74ef" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">CDList<Expr> <a class="el" href="group__DE.html#gaf662ad88359f7ce623ffe35ebc6d74ef">CVC3::DecisionEngine::d_splitters</a><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p>List of currently active splitters. </p> <p>Definition at line <a class="el" href="decision__engine_8h_source.html#l00045">45</a> of file <a class="el" href="decision__engine_8h_source.html">decision_engine.h</a>.</p> <p>Referenced by <a class="el" href="decision__engine_8cpp_source.html#l00032">CVC3::DecisionEngine::DecisionEngine()</a>, <a class="el" href="decision__engine_8cpp_source.html#l00164">CVC3::DecisionEngine::lastSplitter()</a>, and <a class="el" href="decision__engine_8cpp_source.html#l00128">CVC3::DecisionEngine::pushDecision()</a>.</p> </div> </div> <a class="anchor" id="gae9092ccb020b756b56556eb57a7af5ab"></a><!-- doxytag: member="CVC3::DecisionEngine::d_splitterCount" ref="gae9092ccb020b756b56556eb57a7af5ab" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">StatCounter <a class="el" href="group__DE.html#gae9092ccb020b756b56556eb57a7af5ab">CVC3::DecisionEngine::d_splitterCount</a><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Total number of splitters. </p> <p>Definition at line <a class="el" href="decision__engine_8h_source.html#l00048">48</a> of file <a class="el" href="decision__engine_8h_source.html">decision_engine.h</a>.</p> <p>Referenced by <a class="el" href="decision__engine_8cpp_source.html#l00128">CVC3::DecisionEngine::pushDecision()</a>.</p> </div> </div> <a class="anchor" id="ga922651f82bf5dec8e9f6d7211507a6fd"></a><!-- doxytag: member="CVC3::DecisionEngine::d_bestByExpr" ref="ga922651f82bf5dec8e9f6d7211507a6fd" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">ExprMap<Expr> <a class="el" href="group__DE.html#ga922651f82bf5dec8e9f6d7211507a6fd">CVC3::DecisionEngine::d_bestByExpr</a><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="decision__engine_8h_source.html#l00050">50</a> of file <a class="el" href="decision__engine_8h_source.html">decision_engine.h</a>.</p> <p>Referenced by <a class="el" href="decision__engine_8cpp_source.html#l00055">CVC3::DecisionEngine::findSplitterRec()</a>.</p> </div> </div> <a class="anchor" id="gab9a86f01371ea2ef051119f0e414727b"></a><!-- doxytag: member="CVC3::DecisionEngine::d_visited" ref="gab9a86f01371ea2ef051119f0e414727b" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">ExprMap<Expr> <a class="el" href="group__DE.html#gab9a86f01371ea2ef051119f0e414727b">CVC3::DecisionEngine::d_visited</a><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Visited cache for findSplitterRec traversal. </p> <p>Must be emptied in every <a class="el" href="group__DE.html#ga6f191a7f4edb645e8df7c1f005a50bf8" title="Finds a splitter inside a non const expression. The expression passed in must not be a boolean consta...">findSplitter()</a> call. </p> <p>Definition at line <a class="el" href="decision__engine_8h_source.html#l00054">54</a> of file <a class="el" href="decision__engine_8h_source.html">decision_engine.h</a>.</p> <p>Referenced by <a class="el" href="decision__engine__dfs_8cpp_source.html#l00067">CVC3::DecisionEngineDFS::findSplitter()</a>, and <a class="el" href="decision__engine_8cpp_source.html#l00055">CVC3::DecisionEngine::findSplitterRec()</a>.</p> </div> </div> </div> <hr class="footer"/><address class="footer"><small>Generated on Wed Sep 7 2011 for CVC3 by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address> </body> </html>