Sophie

Sophie

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

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: CVC3::SearchImplBase Class Reference</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 class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
  <div id="nav-path" class="navpath">
    <ul>
      <li class="navelem"><a class="el" href="namespaceCVC3.html">CVC3</a>      </li>
      <li class="navelem"><a class="el" href="classCVC3_1_1SearchImplBase.html">SearchImplBase</a>      </li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="#pri-methods">Private Member Functions</a> &#124;
<a href="#friends">Friends</a>  </div>
  <div class="headertitle">
<div class="title">CVC3::SearchImplBase Class Reference<div class="ingroups"><a class="el" href="group__SE.html">Search Engine</a></div></div>  </div>
</div>
<div class="contents">
<!-- doxytag: class="CVC3::SearchImplBase" --><!-- doxytag: inherits="CVC3::SearchEngine" -->
<p>API to to a generic proof search engine (a.k.a. <a class="el" href="namespaceSAT.html">SAT</a> solver)  
 <a href="classCVC3_1_1SearchImplBase.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="search__impl__base_8h_source.html">search_impl_base.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for CVC3::SearchImplBase:</div>
<div class="dyncontent">
 <div class="center">
  <img src="classCVC3_1_1SearchImplBase.png" usemap="#CVC3::SearchImplBase_map" alt=""/>
  <map id="CVC3::SearchImplBase_map" name="CVC3::SearchImplBase_map">
<area href="classCVC3_1_1SearchEngine.html" title="API to to a generic proof search engine." alt="CVC3::SearchEngine" shape="rect" coords="83,0,239,24"/>
<area href="classCVC3_1_1SearchEngineFast.html" title="Implementation of a faster search engine, using newer techniques." alt="CVC3::SearchEngineFast" shape="rect" coords="0,112,156,136"/>
<area href="classCVC3_1_1SearchSimple.html" title="Implementation of the simple search engine." alt="CVC3::SearchSimple" shape="rect" coords="166,112,322,136"/>
</map>
 </div></div>

<p><a href="classCVC3_1_1SearchImplBase-members.html">List of all members.</a></p>
<h2><a name="nested-classes"></a>
Classes</h2>
<ul>
<li>class <a class="el" href="classCVC3_1_1SearchImplBase_1_1Splitter.html">Splitter</a>
<dl class="el"><dd class="mdescRight">Representation of a DP-suggested splitter.  <a href="classCVC3_1_1SearchImplBase_1_1Splitter.html#details">More...</a><br/></dl></ul>
<h2><a name="pub-methods"></a>
Public Member Functions</h2>
<ul>
<li>int <a class="el" href="group__SE.html#ga12db60dd52e1223d009f6b51b654f70e">getBottomScope</a> ()
<li>bool <a class="el" href="group__SE.html#ga9babda9b0bcd226dd4d0a736cd433893">isClause</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)
<dl class="el"><dd class="mdescRight">Check if e is a clause (a literal, or a disjunction of literals)  <a href="group__SE.html#ga9babda9b0bcd226dd4d0a736cd433893"></a><br/></dl><li>bool <a class="el" href="group__SE.html#ga9db77121699fbbdbff209014b8ab26c3">isPropClause</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)
<dl class="el"><dd class="mdescRight">Check if e is a propositional clause.  <a href="group__SE.html#ga9db77121699fbbdbff209014b8ab26c3"></a><br/></dl><li>bool <a class="el" href="group__SE.html#ga92018736294ba073bc5db887467944ad">isCNFVar</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)
<dl class="el"><dd class="mdescRight">Check whether e is a fresh variable introduced by the CNF converter.  <a href="group__SE.html#ga92018736294ba073bc5db887467944ad"></a><br/></dl><li>bool <a class="el" href="group__SE.html#gaed4079f44a18e496b87366ce65b20d99">isGoodSplitter</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)
<dl class="el"><dd class="mdescRight">Check if a splitter is required for completeness.  <a href="group__SE.html#gaed4079f44a18e496b87366ce65b20d99"></a><br/></dl><li><a class="el" href="group__SE.html#gaa6e44780a3c5e714f4fd5d8ee41bb1fb">SearchImplBase</a> (<a class="el" href="classCVC3_1_1TheoryCore.html">TheoryCore</a> *core)
<dl class="el"><dd class="mdescRight">Constructor.  <a href="group__SE.html#gaa6e44780a3c5e714f4fd5d8ee41bb1fb"></a><br/></dl><li>virtual <a class="el" href="group__SE.html#ga139d4116c2b14d5357f2696dc8f29cac">~SearchImplBase</a> ()
<dl class="el"><dd class="mdescRight">Destructor.  <a href="group__SE.html#ga139d4116c2b14d5357f2696dc8f29cac"></a><br/></dl><li>virtual void <a class="el" href="group__SE.html#gac4e5351fec1964bf7571d67e90a1538d">registerAtom</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)
<dl class="el"><dd class="mdescRight">Register an atomic formula of interest.  <a href="group__SE.html#gac4e5351fec1964bf7571d67e90a1538d"></a><br/></dl><li>virtual <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> <a class="el" href="group__SE.html#ga65ca9e33c2ac0807f0ef680415457c45">getImpliedLiteral</a> ()
<dl class="el"><dd class="mdescRight">Return next literal implied by last assertion. Null <a class="el" href="classCVC3_1_1Expr.html" title="Data structure of expressions in CVC3.">Expr</a> if none.  <a href="group__SE.html#ga65ca9e33c2ac0807f0ef680415457c45"></a><br/></dl><li>virtual void <a class="el" href="group__SE.html#gae987ab9ab6129f83efb0b5649cc2003c">push</a> ()
<dl class="el"><dd class="mdescRight">Push a checkpoint.  <a href="group__SE.html#gae987ab9ab6129f83efb0b5649cc2003c"></a><br/></dl><li>virtual void <a class="el" href="group__SE.html#ga84ceb5e9dcc4e57c1f48f77f4b2f8db5">pop</a> ()
<dl class="el"><dd class="mdescRight">Restore last checkpoint.  <a href="group__SE.html#ga84ceb5e9dcc4e57c1f48f77f4b2f8db5"></a><br/></dl><li>virtual <a class="el" href="namespaceCVC3.html#a060d21b3207cc3471e24f8dbcff3498b">QueryResult</a> <a class="el" href="group__SE.html#ga1e6282534845cfe93f245d9983d58761">checkValidInternal</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)=0
<dl class="el"><dd class="mdescRight">Checks the validity of a formula in the current context.  <a href="group__SE.html#ga1e6282534845cfe93f245d9983d58761"></a><br/></dl><li>virtual <a class="el" href="namespaceCVC3.html#a060d21b3207cc3471e24f8dbcff3498b">QueryResult</a> <a class="el" href="group__SE.html#ga83d82b8cf43e9dc8240e762b180f6343">checkValid</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e, <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;result)
<dl class="el"><dd class="mdescRight">Similar to <a class="el" href="group__SE.html#ga1e6282534845cfe93f245d9983d58761" title="Checks the validity of a formula in the current context.">checkValidInternal()</a>, only returns Theorem(e) or Null.  <a href="group__SE.html#ga83d82b8cf43e9dc8240e762b180f6343"></a><br/></dl><li>virtual <a class="el" href="namespaceCVC3.html#a060d21b3207cc3471e24f8dbcff3498b">QueryResult</a> <a class="el" href="group__SE.html#gaf89e6b914a2099b366258953fccb6277">restartInternal</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)=0
<dl class="el"><dd class="mdescRight">Reruns last check with e as an additional assumption.  <a href="group__SE.html#gaf89e6b914a2099b366258953fccb6277"></a><br/></dl><li>virtual <a class="el" href="namespaceCVC3.html#a060d21b3207cc3471e24f8dbcff3498b">QueryResult</a> <a class="el" href="group__SE.html#gad4a8edbe5a6520fc9f564ec1c65d4729">restart</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e, <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;result)
<dl class="el"><dd class="mdescRight">Reruns last check with e as an additional assumption.  <a href="group__SE.html#gad4a8edbe5a6520fc9f564ec1c65d4729"></a><br/></dl><li>void <a class="el" href="group__SE.html#ga7d62893d0d19ed50cc1f616a92d536c0">returnFromCheck</a> ()
<dl class="el"><dd class="mdescRight">Returns to context immediately before last call to checkValid.  <a href="group__SE.html#ga7d62893d0d19ed50cc1f616a92d536c0"></a><br/></dl><li>virtual <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> <a class="el" href="group__SE.html#ga95428fe99c7a85e5e90ba6b2dce0e024">lastThm</a> ()
<dl class="el"><dd class="mdescRight">Returns the result of the most recent valid theorem.  <a href="group__SE.html#ga95428fe99c7a85e5e90ba6b2dce0e024"></a><br/></dl><li><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> <a class="el" href="group__SE.html#gaf46a82b16f76c9e97cfe252d4398eac7">newUserAssumption</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)
<dl class="el"><dd class="mdescRight">Generate and add a new assertion to the set of assertions in the current context. This should only be used by class <a class="el" href="classCVC3_1_1VCL.html">VCL</a> in assertFormula().  <a href="group__SE.html#gaf46a82b16f76c9e97cfe252d4398eac7"></a><br/></dl><li>virtual <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> <a class="el" href="group__SE.html#ga635768498a239f0193de5f1445676f65">newIntAssumption</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)
<dl class="el"><dd class="mdescRight">Add a new internal asserion.  <a href="group__SE.html#ga635768498a239f0193de5f1445676f65"></a><br/></dl><li>void <a class="el" href="group__SE.html#gab6852f32844435f73f86665c40d2fda8">newIntAssumption</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;thm)
<dl class="el"><dd class="mdescRight">Helper for above function.  <a href="group__SE.html#gab6852f32844435f73f86665c40d2fda8"></a><br/></dl><li>void <a class="el" href="group__SE.html#gab730f3f048637996f532f77af932fe55">getUserAssumptions</a> (std::vector&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;assumptions)
<dl class="el"><dd class="mdescRight">Get all assumptions made in this and all previous contexts.  <a href="group__SE.html#gab730f3f048637996f532f77af932fe55"></a><br/></dl><li>void <a class="el" href="group__SE.html#gae65e0921e9ef2b475242b1a284a413ad">getInternalAssumptions</a> (std::vector&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;assumptions)
<dl class="el"><dd class="mdescRight">Get assumptions made internally in this and all previous contexts.  <a href="group__SE.html#gae65e0921e9ef2b475242b1a284a413ad"></a><br/></dl><li>virtual void <a class="el" href="group__SE.html#gadadf46fa5200744c9f30ca548080d35d">getAssumptions</a> (std::vector&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;assumptions)
<dl class="el"><dd class="mdescRight">Get all assumptions made in this and all previous contexts.  <a href="group__SE.html#gadadf46fa5200744c9f30ca548080d35d"></a><br/></dl><li>virtual bool <a class="el" href="group__SE.html#ga38ec2c19ebab8525ebc3c6249bf97442">isAssumption</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)
<dl class="el"><dd class="mdescRight">Check if the formula has been assumed.  <a href="group__SE.html#ga38ec2c19ebab8525ebc3c6249bf97442"></a><br/></dl><li>void <a class="el" href="group__SE.html#gac6e807418fb26dee354f7f934eb432ba">addFact</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;thm)
<dl class="el"><dd class="mdescRight">Add a new fact to the search engine from the core.  <a href="group__SE.html#gac6e807418fb26dee354f7f934eb432ba"></a><br/></dl><li>virtual void <a class="el" href="group__SE.html#ga6c1448b58fb299bc084aa9c522faf36d">addSplitter</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e, int priority)
<dl class="el"><dd class="mdescRight">Suggest a splitter to the <a class="el" href="classCVC3_1_1SearchEngine.html" title="API to to a generic proof search engine.">SearchEngine</a>.  <a href="group__SE.html#ga6c1448b58fb299bc084aa9c522faf36d"></a><br/></dl><li>virtual void <a class="el" href="group__SE.html#gacf93ae1a488573c6d34dee7721007351">getCounterExample</a> (std::vector&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;assertions, bool inOrder=true)
<dl class="el"><dd class="mdescRight">Will return the set of assertions which make the queried formula false.  <a href="group__SE.html#gacf93ae1a488573c6d34dee7721007351"></a><br/></dl><li>virtual <a class="el" href="classCVC3_1_1Proof.html">Proof</a> <a class="el" href="group__SE.html#gaf90e8ae5cd67dc6c43787a9d3ebdca53">getProof</a> ()
<dl class="el"><dd class="mdescRight">Returns the proof term for the last proven query.  <a href="group__SE.html#gaf90e8ae5cd67dc6c43787a9d3ebdca53"></a><br/></dl><li>virtual const <a class="el" href="classCVC3_1_1Assumptions.html">Assumptions</a> &amp; <a class="el" href="group__SE.html#ga24dc510f27c40d8044f461308bcdb62d">getAssumptionsUsed</a> ()
<dl class="el"><dd class="mdescRight">Returns the set of assumptions used in the proof. It should be a subset of <a class="el" href="group__SE.html#gadadf46fa5200744c9f30ca548080d35d" title="Get all assumptions made in this and all previous contexts.">getAssumptions()</a>.  <a href="group__SE.html#ga24dc510f27c40d8044f461308bcdb62d"></a><br/></dl><li>void <a class="el" href="group__SE.html#ga0d509e38a03048dcbdb9e28f3f5da724">processResult</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;res, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)
<dl class="el"><dd class="mdescRight">Process result of checkValid.  <a href="group__SE.html#ga0d509e38a03048dcbdb9e28f3f5da724"></a><br/></dl><li>virtual <a class="el" href="namespaceCVC3.html#a9d68f126b86e6fd08b3bc13a511df9bf">FormulaValue</a> <a class="el" href="group__SE.html#gadf867c70d67d05d72a11895a2cc13971">getValue</a> (const <a class="el" href="classCVC3_1_1Expr.html">CVC3::Expr</a> &amp;e)
</ul>
<h2><a name="pro-methods"></a>
Protected Member Functions</h2>
<ul>
<li><a class="el" href="classCVC3_1_1Literal.html">Literal</a> <a class="el" href="group__SE.html#gaf0dbbb1806723760ab8744e96a8c6657">newLiteral</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)
<dl class="el"><dd class="mdescRight">Construct a <a class="el" href="classCVC3_1_1Literal.html">Literal</a> out of an <a class="el" href="classCVC3_1_1Expr.html" title="Data structure of expressions in CVC3.">Expr</a> or return an existing one.  <a href="group__SE.html#gaf0dbbb1806723760ab8744e96a8c6657"></a><br/></dl><li><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> <a class="el" href="group__SE.html#gaaa621df0c7e2a2043139e6451eab7072">simplify</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;e)
<dl class="el"><dd class="mdescRight">Our version of simplifier: take Theorem(e), apply simplifier to get <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>(e==e'), return <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>(e')  <a href="group__SE.html#gaaa621df0c7e2a2043139e6451eab7072"></a><br/></dl><li>virtual void <a class="el" href="group__SE.html#gaed2d918b4d0eb14d99bf63882fe2df1a">addLiteralFact</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;thm)=0
<dl class="el"><dd class="mdescRight">Notify the search engine about a new literal fact.  <a href="group__SE.html#gaed2d918b4d0eb14d99bf63882fe2df1a"></a><br/></dl><li>virtual void <a class="el" href="group__SE.html#gae95c78de94900637db19e3b7dee5d7c3">addNonLiteralFact</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;thm)=0
<dl class="el"><dd class="mdescRight">Notify the search engine about a new non-literal fact.  <a href="group__SE.html#gae95c78de94900637db19e3b7dee5d7c3"></a><br/></dl><li>void <a class="el" href="group__SE.html#gadebc5b605b4a358789b697e44065a97e">addCNFFact</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;thm, bool fromCore=false)
<dl class="el"><dd class="mdescRight">Add a new fact to the search engine bypassing CNF converter.  <a href="group__SE.html#gadebc5b605b4a358789b697e44065a97e"></a><br/></dl><li>int <a class="el" href="group__SE.html#gab267d9f29c30c8e26b5c7bcc4d15306a">scopeLevel</a> ()
<dl class="el"><dd class="mdescRight">Return the current scope level (for convenience)  <a href="group__SE.html#gab267d9f29c30c8e26b5c7bcc4d15306a"></a><br/></dl></ul>
<h2><a name="pro-attribs"></a>
Protected Attributes</h2>
<ul>
<li><a class="el" href="classCVC3_1_1VariableManager.html">VariableManager</a> * <a class="el" href="group__SE.html#ga626a0fe24f363d007d729e16d13349e5">d_vm</a>
<dl class="el"><dd class="mdescRight"><a class="el" href="classCVC3_1_1Variable.html">Variable</a> manager for classes <a class="el" href="classCVC3_1_1Variable.html">Variable</a> and <a class="el" href="classCVC3_1_1Literal.html">Literal</a>.  <a href="group__SE.html#ga626a0fe24f363d007d729e16d13349e5"></a><br/></dl><li><a class="el" href="classCVC3_1_1CDO.html">CDO</a>&lt; int &gt; <a class="el" href="group__SE.html#ga640e08e2b051e08f2abdd4111b9a2e71">d_bottomScope</a>
<dl class="el"><dd class="mdescRight">The bottom-most scope for the current call to checkSAT (where conflict clauses are still valid).  <a href="group__SE.html#ga640e08e2b051e08f2abdd4111b9a2e71"></a><br/></dl><li><a class="el" href="classCVC3_1_1TheoryCore_1_1CoreSatAPI.html">TheoryCore::CoreSatAPI</a> * <a class="el" href="group__SE.html#ga02f72989536076eab8c55e452a6662d9">d_coreSatAPI_implBase</a>
<li><a class="el" href="classCVC3_1_1CDList.html">CDList</a>&lt; <a class="el" href="classCVC3_1_1SearchImplBase_1_1Splitter.html">Splitter</a> &gt; <a class="el" href="group__SE.html#ga8ea9b2ab9f50d3ddf595595b1f3d7974">d_dpSplitters</a>
<dl class="el"><dd class="mdescRight">Backtracking ordered set of DP-suggested splitters.  <a href="group__SE.html#ga8ea9b2ab9f50d3ddf595595b1f3d7974"></a><br/></dl><li><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> <a class="el" href="group__SE.html#ga88ba664573602ecfca1d6eadc14a30af">d_lastValid</a>
<dl class="el"><dd class="mdescRight"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> from the last successful checkValid call. It is used by getProof and getAssumptions.  <a href="group__SE.html#ga88ba664573602ecfca1d6eadc14a30af"></a><br/></dl><li><a class="el" href="classCVC3_1_1ExprHashMap.html">ExprHashMap</a>&lt; bool &gt; <a class="el" href="group__SE.html#gaf6841e86841006b6917d46664de64d21">d_lastCounterExample</a>
<dl class="el"><dd class="mdescRight"><a class="el" href="classCVC3_1_1Assumptions.html">Assumptions</a> from the last unsuccessful checkValid call. These are used by getCounterExample.  <a href="group__SE.html#gaf6841e86841006b6917d46664de64d21"></a><br/></dl><li><a class="el" href="classCVC3_1_1CDMap.html">CDMap</a>&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a>, <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &gt; <a class="el" href="group__SE.html#ga83dfe2d2d85bacf5e4aa10c0320a140b">d_assumptions</a>
<dl class="el"><dd class="mdescRight">Maintain the list of current assumptions (user asserts and splitters) for <a class="el" href="group__SE.html#gadadf46fa5200744c9f30ca548080d35d" title="Get all assumptions made in this and all previous contexts.">getAssumptions()</a>.  <a href="group__SE.html#ga83dfe2d2d85bacf5e4aa10c0320a140b"></a><br/></dl><li><a class="el" href="classCVC3_1_1CDMap.html">CDMap</a>&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a>, <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &gt; <a class="el" href="group__SE.html#gab60a7d204ed01875c98629e874575cd6">d_cnfCache</a>
<dl class="el"><dd class="mdescRight">Backtracking cache for the CNF generator.  <a href="group__SE.html#gab60a7d204ed01875c98629e874575cd6"></a><br/></dl><li><a class="el" href="classCVC3_1_1CDMap.html">CDMap</a>&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a>, bool &gt; <a class="el" href="group__SE.html#ga1c64a37d94b4cadedce29f3e4b98a3af">d_cnfVars</a>
<dl class="el"><dd class="mdescRight">Backtracking set of new variables generated by CNF translator.  <a href="group__SE.html#ga1c64a37d94b4cadedce29f3e4b98a3af"></a><br/></dl><li>const bool * <a class="el" href="group__SE.html#gae3b8b3cfd965e7d5138320d26808767a">d_cnfOption</a>
<dl class="el"><dd class="mdescRight">Command line flag whether to convert to CNF.  <a href="group__SE.html#gae3b8b3cfd965e7d5138320d26808767a"></a><br/></dl><li>const bool * <a class="el" href="group__SE.html#gaa28d7e60bbe1df69ffb304f939b984b7">d_ifLiftOption</a>
<dl class="el"><dd class="mdescRight">Flag: whether to convert term ITEs into CNF.  <a href="group__SE.html#gaa28d7e60bbe1df69ffb304f939b984b7"></a><br/></dl><li>const bool * <a class="el" href="group__SE.html#gafc2c782e4f24b55c8af7cb0189d281d8">d_ignoreCnfVarsOption</a>
<dl class="el"><dd class="mdescRight">Flag: ignore auxiliary CNF variables when searching for a splitter.  <a href="group__SE.html#gafc2c782e4f24b55c8af7cb0189d281d8"></a><br/></dl><li>const bool * <a class="el" href="group__SE.html#ga2287fd23d4250cc74db446983b2c3274">d_origFormulaOption</a>
<dl class="el"><dd class="mdescRight">Flag: Preserve the original formula with +cnf (for splitter heuristics)  <a href="group__SE.html#ga2287fd23d4250cc74db446983b2c3274"></a><br/></dl></ul>
<tr><td colspan="2"><div class="groupHeader">CNF Caches</div></td></tr>
<tr><td colspan="2"><div class="groupText"><p>These caches are for subexpressions of the translated formula phi, to avoid expanding phi into a tree. We cannot use d_cnfCache for that, since it is effectively non-backtracking, and we do not know if a subexpression of phi was translated at the current level, or at some other (inactive) branch of the decision tree. </p>
</div></td></tr>
<ul>
<li><a class="el" href="classCVC3_1_1CDMap.html">CDMap</a>&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a>, bool &gt; <a class="el" href="group__SE.html#ga9dc16eb11f046d9a615aff3018957c6d">d_enqueueCNFCache</a>
<dl class="el"><dd class="mdescRight">Cache for <a class="el" href="group__SE.html#ga4bcd481c70362c589aa7e712a8cc746d" title="Translate theta to CNF and enqueue the new clauses.">enqueueCNF()</a>  <a href="group__SE.html#ga9dc16eb11f046d9a615aff3018957c6d"></a><br/></dl><li><a class="el" href="classCVC3_1_1CDMap.html">CDMap</a>&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a>, bool &gt; <a class="el" href="group__SE.html#ga401319b3ede7162504e979aaf2119deb">d_applyCNFRulesCache</a>
<dl class="el"><dd class="mdescRight">Cache for <a class="el" href="group__SE.html#gaa7bf3c385bae481d4ea35179e818a09a" title="FIXME: write a comment.">applyCNFRules()</a>  <a href="group__SE.html#ga401319b3ede7162504e979aaf2119deb"></a><br/></dl><li><a class="el" href="classCVC3_1_1CDMap.html">CDMap</a>&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a>, <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &gt; <a class="el" href="group__SE.html#ga0c829909b9e3ab2b59ba40e681905c4b">d_replaceITECache</a>
<dl class="el"><dd class="mdescRight">Cache for <a class="el" href="group__SE.html#ga687e32d21d7fe7e4b26873ae86a47ae5" title="Replaces ITE subexpressions in e with variables.">replaceITE()</a>  <a href="group__SE.html#ga0c829909b9e3ab2b59ba40e681905c4b"></a><br/></dl></ul>
<h2><a name="pri-methods"></a>
Private Member Functions</h2>
<ul>
<li>void <a class="el" href="group__SE.html#ga4bcd481c70362c589aa7e712a8cc746d">enqueueCNF</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;theta)
<dl class="el"><dd class="mdescRight">Translate theta to CNF and enqueue the new clauses.  <a href="group__SE.html#ga4bcd481c70362c589aa7e712a8cc746d"></a><br/></dl><li>void <a class="el" href="group__SE.html#ga62e31e3c4dbadb6cc5fddc3b0b73e047">enqueueCNFrec</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;theta)
<dl class="el"><dd class="mdescRight">Recursive version of <a class="el" href="group__SE.html#ga4bcd481c70362c589aa7e712a8cc746d" title="Translate theta to CNF and enqueue the new clauses.">enqueueCNF()</a>  <a href="group__SE.html#ga62e31e3c4dbadb6cc5fddc3b0b73e047"></a><br/></dl><li>void <a class="el" href="group__SE.html#gaa7bf3c385bae481d4ea35179e818a09a">applyCNFRules</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;e)
<dl class="el"><dd class="mdescRight">FIXME: write a comment.  <a href="group__SE.html#gaa7bf3c385bae481d4ea35179e818a09a"></a><br/></dl><li>void <a class="el" href="group__SE.html#gaa78fb38536d0a2e34ad140f3ec865f2b">addToCNFCache</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;thm)
<dl class="el"><dd class="mdescRight">Cache a theorem phi &lt;=&gt; v by phi, where v is a literal.  <a href="group__SE.html#gaa78fb38536d0a2e34ad140f3ec865f2b"></a><br/></dl><li><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> <a class="el" href="group__SE.html#ga298ad740ab490d5b3337445573b8c4d7">findInCNFCache</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)
<dl class="el"><dd class="mdescRight">Find a theorem phi &lt;=&gt; v by phi, where v is a literal.  <a href="group__SE.html#ga298ad740ab490d5b3337445573b8c4d7"></a><br/></dl><li><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> <a class="el" href="group__SE.html#ga687e32d21d7fe7e4b26873ae86a47ae5">replaceITE</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)
<dl class="el"><dd class="mdescRight">Replaces ITE subexpressions in e with variables.  <a href="group__SE.html#ga687e32d21d7fe7e4b26873ae86a47ae5"></a><br/></dl></ul>
<h2><a name="friends"></a>
Friends</h2>
<ul>
<li>class <a class="el" href="classCVC3_1_1SearchImplBase.html#a224d899d0f44bb19868fa244a59d1577">DecisionEngine</a>
</ul>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>API to to a generic proof search engine (a.k.a. <a class="el" href="namespaceSAT.html">SAT</a> solver) </p>

<p>Definition at line <a class="el" href="search__impl__base_8h_source.html#l00037">37</a> of file <a class="el" href="search__impl__base_8h_source.html">search_impl_base.h</a>.</p>
</div><hr/><h2>Friends And Related Function Documentation</h2>
<a class="anchor" id="a224d899d0f44bb19868fa244a59d1577"></a><!-- doxytag: member="CVC3::SearchImplBase::DecisionEngine" ref="a224d899d0f44bb19868fa244a59d1577" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">friend class <a class="el" href="classCVC3_1_1DecisionEngine.html">DecisionEngine</a><code> [friend]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="search__impl__base_8h_source.html#l00038">38</a> of file <a class="el" href="search__impl__base_8h_source.html">search_impl_base.h</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="search__impl__base_8h_source.html">search_impl_base.h</a></li>
<li><a class="el" href="search__impl__base_8cpp_source.html">search_impl_base.cpp</a></li>
</ul>
</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>