Sophie

Sophie

distrib > Fedora > 15 > i386 > by-pkgid > 583ffa4ba069126c3ba0bc565dc0485a > files > 1376

cvc3-doc-2.4.1-1.fc15.noarch.rpm

<!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&#160;<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&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;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> &#124;
<a href="#func-members">Functions</a> &#124;
<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> &amp;e)
<li>virtual bool <a class="el" href="group__DE.html#gaaa431eec1b04f02c8a7573d34616158b">CVC3::DecisionEngine::isBetter</a> (const Expr &amp;e1, const Expr &amp;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 &amp;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&lt; Expr &gt; <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&lt; Expr &gt; <a class="el" href="group__DE.html#ga922651f82bf5dec8e9f6d7211507a6fd">CVC3::DecisionEngine::d_bestByExpr</a>
<li>ExprMap&lt; Expr &gt; <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 &amp;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> &amp;&#160;</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&lt; Data &gt;::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&lt; Data &gt;::end()</a>, <a class="el" href="expr__map_8h_source.html#l00194">CVC3::ExprMap&lt; Data &gt;::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 &amp;e1, const Expr &amp;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> &amp;&#160;</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> &amp;&#160;</td>
          <td class="paramname"><em>e2</em>&#160;</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> *&#160;</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> *&#160;</td>
          <td class="paramname"><em>se</em>&#160;</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 &amp;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> &amp;&#160;</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>&#160;</td>
          <td class="paramname"><em>splitter</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>whichCase</em> = <code>true</code>&#160;</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&lt; T &gt;::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&#160;</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&lt; T &gt;::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&lt;Expr&gt; <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&lt;Expr&gt; <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&lt;Expr&gt; <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&#160;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
</html>