Sophie

Sophie

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

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: Proof Rules for the Search Engines</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>  </div>
  <div class="headertitle">
<div class="title">Proof Rules for the Search Engines</div>  </div>
<div class="ingroups"><a class="el" href="group__SE.html">Search Engine</a></div></div>
<div class="contents">
<h2><a name="nested-classes"></a>
Classes</h2>
<ul>
<li>class <a class="el" href="classCVC3_1_1SearchEngineRules.html">CVC3::SearchEngineRules</a>
<dl class="el"><dd class="mdescRight">API to the proof rules for the Search Engines.  <a href="classCVC3_1_1SearchEngineRules.html#details">More...</a><br/></dl></ul>
<h2><a name="func-members"></a>
Functions</h2>
<ul>
<li>virtual <a class="el" href="group__SE__Rules.html#gae48ac99bc858fb09857649a89af81f43">CVC3::SearchEngineRules::~SearchEngineRules</a> ()
<dl class="el"><dd class="mdescRight">Destructor.  <a href="#gae48ac99bc858fb09857649a89af81f43"></a><br/></dl><li>virtual Theorem <a class="el" href="group__SE__Rules.html#ga3ddf95924d2ff2efb59e84dc78a19821">CVC3::SearchEngineRules::eliminateSkolemAxioms</a> (const Theorem &amp;tFalse, const std::vector&lt; Theorem &gt; &amp;delta)=0
<li>virtual Theorem <a class="el" href="group__SE__Rules.html#ga64c9fb7058e52c324ce76f15fcea37e2">CVC3::SearchEngineRules::proofByContradiction</a> (const Expr &amp;a, const Theorem &amp;pfFalse)=0
<dl class="el"><dd class="mdescRight"><a class="el" href="classCVC3_1_1Proof.html">Proof</a> by contradiction: </p>
<p class="formulaDsp">
<img class="formulaDsp" alt="\[\frac{\Gamma, \neg A \vdash\mathrm{FALSE}}{\Gamma \vdash A}\]" src="form_293.png"/>
</p>
<p>.  <a href="#ga64c9fb7058e52c324ce76f15fcea37e2"></a><br/></dl><li>virtual Theorem <a class="el" href="group__SE__Rules.html#ga846c2bdc33f6ff2080e76637ea618626">CVC3::SearchEngineRules::negIntro</a> (const Expr &amp;not_a, const Theorem &amp;pfFalse)=0
<dl class="el"><dd class="mdescRight">Negation introduction: </p>
<p class="formulaDsp">
<img class="formulaDsp" alt="\[\frac{\Gamma, A \vdash\mathrm{FALSE}}{\Gamma\vdash\neg A}\]" src="form_296.png"/>
</p>
<p>.  <a href="#ga846c2bdc33f6ff2080e76637ea618626"></a><br/></dl><li>virtual Theorem <a class="el" href="group__SE__Rules.html#ga7db620d19846bd5947321a8d6f9e7da4">CVC3::SearchEngineRules::caseSplit</a> (const Expr &amp;a, const Theorem &amp;a_proves_c, const Theorem &amp;not_a_proves_c)=0
<dl class="el"><dd class="mdescRight">Case split: </p>
<p class="formulaDsp">
<img class="formulaDsp" alt="\[\frac{\Gamma_1, A\vdash C \quad \Gamma_2, \neg A\vdash C} {\Gamma_1\cup\Gamma_2\vdash C}\]" src="form_298.png"/>
</p>
<p>.  <a href="#ga7db620d19846bd5947321a8d6f9e7da4"></a><br/></dl><li>virtual Theorem <a class="el" href="group__SE__Rules.html#ga03be39f8ffe84a1bcc09bba60f45245c">CVC3::SearchEngineRules::conflictClause</a> (const Theorem &amp;thm, const std::vector&lt; Theorem &gt; &amp;lits, const std::vector&lt; Theorem &gt; &amp;gamma)=0
<dl class="el"><dd class="mdescRight">Conflict clause rule: </p>
<p class="formulaDsp">
<img class="formulaDsp" alt="\[\frac{\Gamma,A_1,\ldots,A_n\vdash\mathrm{FALSE}} {\Gamma\vdash\neg A_1\vee\cdots\vee \neg A_n}\]" src="form_301.png"/>
</p>
<p>.  <a href="#ga03be39f8ffe84a1bcc09bba60f45245c"></a><br/></dl><li>virtual Theorem <a class="el" href="group__SE__Rules.html#gac1ef0687c058a3d4bd1d9ed88cd27abe">CVC3::SearchEngineRules::cutRule</a> (const std::vector&lt; Theorem &gt; &amp;thmsA, const Theorem &amp;as_prove_b)=0
<dl class="el"><dd class="mdescRight">Cut rule: </p>
<p class="formulaDsp">
<img class="formulaDsp" alt="\[\frac{\Gamma_1\vdash A_1\quad\cdots\quad\Gamma_n\vdash A_n \quad \Gamma', A_1,\ldots,A_n\vdash B} {\bigcup_{i=1}^n\Gamma_i\cup\Gamma'\vdash B}\]" src="form_303.png"/>
</p>
<p>.  <a href="#gac1ef0687c058a3d4bd1d9ed88cd27abe"></a><br/></dl><li>virtual Theorem <a class="el" href="group__SE__Rules.html#gae7221bb8b77313a9b53a4beca9cc0aa0">CVC3::SearchEngineRules::unitProp</a> (const std::vector&lt; Theorem &gt; &amp;thms, const Theorem &amp;clause, unsigned i)=0
<dl class="el"><dd class="mdescRight">Unit propagation rule: </p>
<p class="formulaDsp">
<img class="formulaDsp" alt="\[\frac{\Gamma_j\vdash\neg A_j\mbox{ for }j\in[1\ldots n]-\{i\} \quad \Gamma\vdash A_1\vee\cdots\vee A_n} {\bigcup_{j\in[1\ldots n]-\{i\}}\Gamma_j\cup\Gamma\vdash A_i}\]" src="form_306.png"/>
</p>
<p>.  <a href="#gae7221bb8b77313a9b53a4beca9cc0aa0"></a><br/></dl><li>virtual Theorem <a class="el" href="group__SE__Rules.html#ga9c74425b4471d411f58f16781951c441">CVC3::SearchEngineRules::conflictRule</a> (const std::vector&lt; Theorem &gt; &amp;thms, const Theorem &amp;clause)=0
<dl class="el"><dd class="mdescRight">"Conflict" rule (all literals in a clause become FALSE) </p>
<p class="formulaDsp">
<img class="formulaDsp" alt="\[\frac{\Gamma_j\vdash\neg A_j\mbox{ for }j\in[1\ldots n] \quad \Gamma\vdash A_1\vee\cdots\vee A_n} {\bigcup_{j\in[1\ldots n]}\Gamma_j\cup\Gamma \vdash\mathrm{FALSE}}\]" src="form_309.png"/>
</p>
  <a href="#ga9c74425b4471d411f58f16781951c441"></a><br/></dl><li>virtual Theorem <a class="el" href="group__SE__Rules.html#gaf5a18f8bcdc2f71632f05bcfe0bc533e">CVC3::SearchEngineRules::propAndrAF</a> (const Theorem &amp;andr_th, bool left, const Theorem &amp;b_th)=0
<li>virtual Theorem <a class="el" href="group__SE__Rules.html#gac7998bdcac234b0f3dc202d44b49c69c">CVC3::SearchEngineRules::propAndrAT</a> (const Theorem &amp;andr_th, const Theorem &amp;l_th, const Theorem &amp;r_th)=0
<li>virtual void <a class="el" href="group__SE__Rules.html#gad0150b04c296a6b8e05579c1dbd365f8">CVC3::SearchEngineRules::propAndrLRT</a> (const Theorem &amp;andr_th, const Theorem &amp;a_th, Theorem *l_th, Theorem *r_th)=0
<li>virtual Theorem <a class="el" href="group__SE__Rules.html#ga8c8fc73c8b0413f5ca3fa7d72e687f5b">CVC3::SearchEngineRules::propAndrLF</a> (const Theorem &amp;andr_th, const Theorem &amp;a_th, const Theorem &amp;r_th)=0
<li>virtual Theorem <a class="el" href="group__SE__Rules.html#ga1158c41e7b7ed199271391d4404ce1b2">CVC3::SearchEngineRules::propAndrRF</a> (const Theorem &amp;andr_th, const Theorem &amp;a_th, const Theorem &amp;l_th)=0
<li>virtual Theorem <a class="el" href="group__SE__Rules.html#ga09d987f2d81c19d798d7185b125879b6">CVC3::SearchEngineRules::confAndrAT</a> (const Theorem &amp;andr_th, const Theorem &amp;a_th, bool left, const Theorem &amp;b_th)=0
<li>virtual Theorem <a class="el" href="group__SE__Rules.html#gadb878db4f9d24a21b62f50df2713ecca">CVC3::SearchEngineRules::confAndrAF</a> (const Theorem &amp;andr_th, const Theorem &amp;a_th, const Theorem &amp;l_th, const Theorem &amp;r_th)=0
<li>virtual Theorem <a class="el" href="group__SE__Rules.html#ga9bc3e3eab4b1fe4fb2c0a0172ca25ee9">CVC3::SearchEngineRules::propIffr</a> (const Theorem &amp;iffr_th, int p, const Theorem &amp;a_th, const Theorem &amp;b_th)=0
<li>virtual Theorem <a class="el" href="group__SE__Rules.html#gaef31b1a5f6d6e9f270a1ab28ee361b14">CVC3::SearchEngineRules::confIffr</a> (const Theorem &amp;iffr_th, const Theorem &amp;i_th, const Theorem &amp;l_th, const Theorem &amp;r_th)=0
<li>virtual Theorem <a class="el" href="group__SE__Rules.html#ga979ad08269cd2799993628eaaccc146f">CVC3::SearchEngineRules::propIterIte</a> (const Theorem &amp;iter_th, bool left, const Theorem &amp;if_th, const Theorem &amp;then_th)=0
<li>virtual void <a class="el" href="group__SE__Rules.html#gad35217bbc9f4a27b4d23af173e9ea2c7">CVC3::SearchEngineRules::propIterIfThen</a> (const Theorem &amp;iter_th, bool left, const Theorem &amp;ite_th, const Theorem &amp;then_th, Theorem *if_th, Theorem *else_th)=0
<li>virtual Theorem <a class="el" href="group__SE__Rules.html#gab7b07d3b350b2cc7f3f596233abb54ea">CVC3::SearchEngineRules::propIterThen</a> (const Theorem &amp;iter_th, const Theorem &amp;ite_th, const Theorem &amp;if_th)=0
<li>virtual Theorem <a class="el" href="group__SE__Rules.html#gaae491d08949a1ec57981526c8e960119">CVC3::SearchEngineRules::confIterThenElse</a> (const Theorem &amp;iter_th, const Theorem &amp;ite_th, const Theorem &amp;then_th, const Theorem &amp;else_th)=0
<li>virtual Theorem <a class="el" href="group__SE__Rules.html#ga771471d7cbb2253bc32f2a8018bd7182">CVC3::SearchEngineRules::confIterIfThen</a> (const Theorem &amp;iter_th, bool left, const Theorem &amp;ite_th, const Theorem &amp;if_th, const Theorem &amp;then_th)=0
<li>virtual Theorem <a class="el" href="group__SE__Rules.html#gab183ff7d1013729d0d3e2dbe28686e3c">CVC3::SearchEngineRules::andCNFRule</a> (const Theorem &amp;thm)=0
<dl class="el"><dd class="mdescRight">AND(x1,...,xn) &lt;=&gt; v |- CNF[AND(x1,...,xn) &lt;=&gt; v].  <a href="#gab183ff7d1013729d0d3e2dbe28686e3c"></a><br/></dl><li>virtual Theorem <a class="el" href="group__SE__Rules.html#ga7086aa693d2a3421bc349eca8e9938ba">CVC3::SearchEngineRules::orCNFRule</a> (const Theorem &amp;thm)=0
<dl class="el"><dd class="mdescRight">OR(x1,...,xn) &lt;=&gt; v |- CNF[OR(x1,...,xn) &lt;=&gt; v].  <a href="#ga7086aa693d2a3421bc349eca8e9938ba"></a><br/></dl><li>virtual Theorem <a class="el" href="group__SE__Rules.html#ga25f7b95c8ebce2be117d03a1c93d715f">CVC3::SearchEngineRules::impCNFRule</a> (const Theorem &amp;thm)=0
<dl class="el"><dd class="mdescRight">(x1 =&gt; x2) &lt;=&gt; v |- CNF[(x1 =&gt; x2) &lt;=&gt; v]  <a href="#ga25f7b95c8ebce2be117d03a1c93d715f"></a><br/></dl><li>virtual Theorem <a class="el" href="group__SE__Rules.html#ga4ab7606744594db9050cb83fe6b73668">CVC3::SearchEngineRules::iffCNFRule</a> (const Theorem &amp;thm)=0
<dl class="el"><dd class="mdescRight">(x1 &lt;=&gt; x2) &lt;=&gt; v |- CNF[(x1 &lt;=&gt; x2) &lt;=&gt; v]  <a href="#ga4ab7606744594db9050cb83fe6b73668"></a><br/></dl><li>virtual Theorem <a class="el" href="group__SE__Rules.html#gae9263cbcedf5def99b3c49ee6978497a">CVC3::SearchEngineRules::iteCNFRule</a> (const Theorem &amp;thm)=0
<dl class="el"><dd class="mdescRight">ITE(c, x1, x2) &lt;=&gt; v |- CNF[ITE(c, x1, x2) &lt;=&gt; v].  <a href="#gae9263cbcedf5def99b3c49ee6978497a"></a><br/></dl><li>virtual Theorem <a class="el" href="group__SE__Rules.html#ga9b9c0fe62505477b6ec9774c1b5b2494">CVC3::SearchEngineRules::iteToClauses</a> (const Theorem &amp;ite)=0
<dl class="el"><dd class="mdescRight">ITE(c, f1, f2) |- (NOT c OR f1) AND (c OR f2)  <a href="#ga9b9c0fe62505477b6ec9774c1b5b2494"></a><br/></dl><li>virtual Theorem <a class="el" href="group__SE__Rules.html#ga356cd5a36ede50921fbaa3bc7e222d4f">CVC3::SearchEngineRules::iffToClauses</a> (const Theorem &amp;iff)=0
<dl class="el"><dd class="mdescRight">e1 &lt;=&gt; e2 |- (NOT e1 OR e2) AND (e1 OR NOT e2)  <a href="#ga356cd5a36ede50921fbaa3bc7e222d4f"></a><br/></dl><li>virtual Theorem <a class="el" href="group__SE__Rules.html#ga55daf0bf95530208f5abf9484ded9055">CVC3::SearchEngineRules::satProof</a> (const Expr &amp;queryExpr, const Proof &amp;satProof)=0
</ul>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="gae48ac99bc858fb09857649a89af81f43"></a><!-- doxytag: member="CVC3::SearchEngineRules::~SearchEngineRules" ref="gae48ac99bc858fb09857649a89af81f43" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual CVC3::SearchEngineRules::~SearchEngineRules </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Destructor. </p>

<p>Definition at line <a class="el" href="search__rules_8h_source.html#l00041">41</a> of file <a class="el" href="search__rules_8h_source.html">search_rules.h</a>.</p>

</div>
</div>
<a class="anchor" id="ga3ddf95924d2ff2efb59e84dc78a19821"></a><!-- doxytag: member="CVC3::SearchEngineRules::eliminateSkolemAxioms" ref="ga3ddf95924d2ff2efb59e84dc78a19821" args="(const Theorem &amp;tFalse, const std::vector&lt; Theorem &gt; &amp;delta)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual Theorem CVC3::SearchEngineRules::eliminateSkolemAxioms </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>tFalse</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::vector&lt; <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>delta</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Eliminate skolem axioms: Gamma, Delta |- false =&gt; Gamma|- false where Delta is a set of skolem axioms {|-Exists(x) phi (x) =&gt; phi(c)} and gamma does not contain any of the skolem constants c. </p>

<p>Implemented in <a class="el" href="classCVC3_1_1SearchEngineTheoremProducer.html#ac980b63fbd08b0e29b1092ed4aeb95e8">CVC3::SearchEngineTheoremProducer</a>.</p>

<p>Referenced by <a class="el" href="search__impl__base_8cpp_source.html#l00317">CVC3::SearchImplBase::processResult()</a>.</p>

</div>
</div>
<a class="anchor" id="ga64c9fb7058e52c324ce76f15fcea37e2"></a><!-- doxytag: member="CVC3::SearchEngineRules::proofByContradiction" ref="ga64c9fb7058e52c324ce76f15fcea37e2" args="(const Expr &amp;a, const Theorem &amp;pfFalse)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual Theorem CVC3::SearchEngineRules::proofByContradiction </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>a</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>pfFalse</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p><a class="el" href="classCVC3_1_1Proof.html">Proof</a> by contradiction: </p>
<p class="formulaDsp">
<img class="formulaDsp" alt="\[\frac{\Gamma, \neg A \vdash\mathrm{FALSE}}{\Gamma \vdash A}\]" src="form_293.png"/>
</p>
<p>. </p>
<p><img class="formulaInl" alt="$\neg A$" src="form_294.png"/> does not have to be present in the assumptions. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">a</td><td>is the assumption <em>A</em> </td></tr>
    <tr><td class="paramname">pfFalse</td><td>is the theorem <img class="formulaInl" alt="$\Gamma, \neg A \vdash\mathrm{FALSE}$" src="form_295.png"/> </td></tr>
  </table>
  </dd>
</dl>

<p>Implemented in <a class="el" href="classCVC3_1_1SearchEngineTheoremProducer.html#a671a24b65b564dff6588925ecfcb5f60">CVC3::SearchEngineTheoremProducer</a>.</p>

<p>Referenced by <a class="el" href="search__impl__base_8cpp_source.html#l00317">CVC3::SearchImplBase::processResult()</a>.</p>

</div>
</div>
<a class="anchor" id="ga846c2bdc33f6ff2080e76637ea618626"></a><!-- doxytag: member="CVC3::SearchEngineRules::negIntro" ref="ga846c2bdc33f6ff2080e76637ea618626" args="(const Expr &amp;not_a, const Theorem &amp;pfFalse)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual Theorem CVC3::SearchEngineRules::negIntro </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>not_a</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>pfFalse</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Negation introduction: </p>
<p class="formulaDsp">
<img class="formulaDsp" alt="\[\frac{\Gamma, A \vdash\mathrm{FALSE}}{\Gamma\vdash\neg A}\]" src="form_296.png"/>
</p>
<p>. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">not_a</td><td>is the formula <img class="formulaInl" alt="$\neg A$" src="form_294.png"/>. We pass the negation <img class="formulaInl" alt="$\neg A$" src="form_294.png"/>, and not just <em>A</em>, for efficiency: building <img class="formulaInl" alt="$\neg A$" src="form_294.png"/> is more expensive (due to uniquifying pointers in <a class="el" href="classCVC3_1_1Expr.html" title="Data structure of expressions in CVC3.">Expr</a> package) than extracting <em>A</em> from <img class="formulaInl" alt="$\neg A$" src="form_294.png"/>.</td></tr>
    <tr><td class="paramname">pfFalse</td><td>is the theorem <img class="formulaInl" alt="$\Gamma, A \vdash\mathrm{FALSE}$" src="form_297.png"/> </td></tr>
  </table>
  </dd>
</dl>

<p>Implemented in <a class="el" href="classCVC3_1_1SearchEngineTheoremProducer.html#a7f69d40a18ab9b66200d24ccc92c2ae9">CVC3::SearchEngineTheoremProducer</a>.</p>

<p>Referenced by <a class="el" href="search__impl__base_8cpp_source.html#l00317">CVC3::SearchImplBase::processResult()</a>.</p>

</div>
</div>
<a class="anchor" id="ga7db620d19846bd5947321a8d6f9e7da4"></a><!-- doxytag: member="CVC3::SearchEngineRules::caseSplit" ref="ga7db620d19846bd5947321a8d6f9e7da4" args="(const Expr &amp;a, const Theorem &amp;a_proves_c, const Theorem &amp;not_a_proves_c)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual Theorem CVC3::SearchEngineRules::caseSplit </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>a</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>a_proves_c</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>not_a_proves_c</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Case split: </p>
<p class="formulaDsp">
<img class="formulaDsp" alt="\[\frac{\Gamma_1, A\vdash C \quad \Gamma_2, \neg A\vdash C} {\Gamma_1\cup\Gamma_2\vdash C}\]" src="form_298.png"/>
</p>
<p>. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">a</td><td>is the assumption A to split on</td></tr>
    <tr><td class="paramname">a_proves_c</td><td>is the theorem <img class="formulaInl" alt="$\Gamma_1, A\vdash C$" src="form_299.png"/></td></tr>
    <tr><td class="paramname">not_a_proves_c</td><td>is the theorem <img class="formulaInl" alt="$\Gamma_2, \neg A\vdash C$" src="form_300.png"/> </td></tr>
  </table>
  </dd>
</dl>

<p>Implemented in <a class="el" href="classCVC3_1_1SearchEngineTheoremProducer.html#a68990fddbfff890590e69e239a3110fe">CVC3::SearchEngineTheoremProducer</a>.</p>

</div>
</div>
<a class="anchor" id="ga03be39f8ffe84a1bcc09bba60f45245c"></a><!-- doxytag: member="CVC3::SearchEngineRules::conflictClause" ref="ga03be39f8ffe84a1bcc09bba60f45245c" args="(const Theorem &amp;thm, const std::vector&lt; Theorem &gt; &amp;lits, const std::vector&lt; Theorem &gt; &amp;gamma)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual Theorem CVC3::SearchEngineRules::conflictClause </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>thm</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::vector&lt; <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>lits</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::vector&lt; <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>gamma</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Conflict clause rule: </p>
<p class="formulaDsp">
<img class="formulaDsp" alt="\[\frac{\Gamma,A_1,\ldots,A_n\vdash\mathrm{FALSE}} {\Gamma\vdash\neg A_1\vee\cdots\vee \neg A_n}\]" src="form_301.png"/>
</p>
<p>. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">thm</td><td>is the theorem <img class="formulaInl" alt="$\Gamma,A_1,\ldots,A_n\vdash\mathrm{FALSE}$" src="form_302.png"/></td></tr>
    <tr><td class="paramname">lits</td><td>is the vector of literals <em>A<sub>i</sub></em>. They must be present in the set of assumptions of <em>thm</em>.</td></tr>
    <tr><td class="paramname">gamma</td><td>FIXME: document this!! </td></tr>
  </table>
  </dd>
</dl>

<p>Implemented in <a class="el" href="classCVC3_1_1SearchEngineTheoremProducer.html#abf46962b0eb1ff204a5b321828139713">CVC3::SearchEngineTheoremProducer</a>.</p>

<p>Referenced by <a class="el" href="search__fast_8cpp_source.html#l01266">CVC3::SearchEngineFast::analyzeUIPs()</a>.</p>

</div>
</div>
<a class="anchor" id="gac1ef0687c058a3d4bd1d9ed88cd27abe"></a><!-- doxytag: member="CVC3::SearchEngineRules::cutRule" ref="gac1ef0687c058a3d4bd1d9ed88cd27abe" args="(const std::vector&lt; Theorem &gt; &amp;thmsA, const Theorem &amp;as_prove_b)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual Theorem CVC3::SearchEngineRules::cutRule </td>
          <td>(</td>
          <td class="paramtype">const std::vector&lt; <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>thmsA</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>as_prove_b</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Cut rule: </p>
<p class="formulaDsp">
<img class="formulaDsp" alt="\[\frac{\Gamma_1\vdash A_1\quad\cdots\quad\Gamma_n\vdash A_n \quad \Gamma', A_1,\ldots,A_n\vdash B} {\bigcup_{i=1}^n\Gamma_i\cup\Gamma'\vdash B}\]" src="form_303.png"/>
</p>
<p>. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">thmsA</td><td>is a vector of theorems <img class="formulaInl" alt="$\Gamma_i\vdash A_i$" src="form_304.png"/></td></tr>
    <tr><td class="paramname">as_prove_b</td><td>is the theorem <img class="formulaInl" alt="$\Gamma', A_1,\ldots,A_n\vdash B$" src="form_305.png"/> (the name means "A's prove B") </td></tr>
  </table>
  </dd>
</dl>

<p>Implemented in <a class="el" href="classCVC3_1_1SearchEngineTheoremProducer.html#a9be0036e770d071001f7afab845f0473">CVC3::SearchEngineTheoremProducer</a>.</p>

</div>
</div>
<a class="anchor" id="gae7221bb8b77313a9b53a4beca9cc0aa0"></a><!-- doxytag: member="CVC3::SearchEngineRules::unitProp" ref="gae7221bb8b77313a9b53a4beca9cc0aa0" args="(const std::vector&lt; Theorem &gt; &amp;thms, const Theorem &amp;clause, unsigned i)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual Theorem CVC3::SearchEngineRules::unitProp </td>
          <td>(</td>
          <td class="paramtype">const std::vector&lt; <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>thms</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>clause</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned&#160;</td>
          <td class="paramname"><em>i</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Unit propagation rule: </p>
<p class="formulaDsp">
<img class="formulaDsp" alt="\[\frac{\Gamma_j\vdash\neg A_j\mbox{ for }j\in[1\ldots n]-\{i\} \quad \Gamma\vdash A_1\vee\cdots\vee A_n} {\bigcup_{j\in[1\ldots n]-\{i\}}\Gamma_j\cup\Gamma\vdash A_i}\]" src="form_306.png"/>
</p>
<p>. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">clause</td><td>is the proof of the clause <img class="formulaInl" alt="$ \Gamma\vdash A_1\vee\cdots\vee A_n$" src="form_307.png"/></td></tr>
    <tr><td class="paramname">i</td><td>is the index (0..n-1) of the literal to be unit-propagated</td></tr>
    <tr><td class="paramname">thms</td><td>is the vector of theorems <img class="formulaInl" alt="$\Gamma_j\vdash\neg A_j$" src="form_308.png"/> for all literals except <em>A<sub>i</sub></em> </td></tr>
  </table>
  </dd>
</dl>

<p>Implemented in <a class="el" href="classCVC3_1_1SearchEngineTheoremProducer.html#af764cf6eae285f0dbd3d430b76c5e19d">CVC3::SearchEngineTheoremProducer</a>.</p>

<p>Referenced by <a class="el" href="search__fast_8cpp_source.html#l01445">CVC3::SearchEngineFast::addNonLiteralFact()</a>, <a class="el" href="variable_8cpp_source.html#l00162">CVC3::Variable::deriveThmRec()</a>, and <a class="el" href="search__fast_8cpp_source.html#l00915">CVC3::SearchEngineFast::unitPropagation()</a>.</p>

</div>
</div>
<a class="anchor" id="ga9c74425b4471d411f58f16781951c441"></a><!-- doxytag: member="CVC3::SearchEngineRules::conflictRule" ref="ga9c74425b4471d411f58f16781951c441" args="(const std::vector&lt; Theorem &gt; &amp;thms, const Theorem &amp;clause)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual Theorem CVC3::SearchEngineRules::conflictRule </td>
          <td>(</td>
          <td class="paramtype">const std::vector&lt; <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>thms</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>clause</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>"Conflict" rule (all literals in a clause become FALSE) </p>
<p class="formulaDsp">
<img class="formulaDsp" alt="\[\frac{\Gamma_j\vdash\neg A_j\mbox{ for }j\in[1\ldots n] \quad \Gamma\vdash A_1\vee\cdots\vee A_n} {\bigcup_{j\in[1\ldots n]}\Gamma_j\cup\Gamma \vdash\mathrm{FALSE}}\]" src="form_309.png"/>
</p>
 </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">clause</td><td>is the proof of the clause <img class="formulaInl" alt="$ \Gamma\vdash A_1\vee\cdots\vee A_n$" src="form_307.png"/></td></tr>
    <tr><td class="paramname">thms</td><td>is the vector of theorems <img class="formulaInl" alt="$\Gamma_j\vdash\neg A_j$" src="form_308.png"/> </td></tr>
  </table>
  </dd>
</dl>

<p>Implemented in <a class="el" href="classCVC3_1_1SearchEngineTheoremProducer.html#a55bf4e865a7a76e82c23d5fba566b853">CVC3::SearchEngineTheoremProducer</a>.</p>

<p>Referenced by <a class="el" href="search__fast_8cpp_source.html#l01445">CVC3::SearchEngineFast::addNonLiteralFact()</a>, <a class="el" href="variable_8cpp_source.html#l00162">CVC3::Variable::deriveThmRec()</a>, and <a class="el" href="search__fast_8cpp_source.html#l00816">CVC3::SearchEngineFast::propagate()</a>.</p>

</div>
</div>
<a class="anchor" id="gaf5a18f8bcdc2f71632f05bcfe0bc533e"></a><!-- doxytag: member="CVC3::SearchEngineRules::propAndrAF" ref="gaf5a18f8bcdc2f71632f05bcfe0bc533e" args="(const Theorem &amp;andr_th, bool left, const Theorem &amp;b_th)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual Theorem CVC3::SearchEngineRules::propAndrAF </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>andr_th</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>left</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>b_th</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Implemented in <a class="el" href="classCVC3_1_1SearchEngineTheoremProducer.html#a1d0f21b895fc25bff5dc653490a775c0">CVC3::SearchEngineTheoremProducer</a>.</p>

<p>Referenced by <a class="el" href="circuit_8cpp_source.html#l00047">CVC3::Circuit::propagate()</a>.</p>

</div>
</div>
<a class="anchor" id="gac7998bdcac234b0f3dc202d44b49c69c"></a><!-- doxytag: member="CVC3::SearchEngineRules::propAndrAT" ref="gac7998bdcac234b0f3dc202d44b49c69c" args="(const Theorem &amp;andr_th, const Theorem &amp;l_th, const Theorem &amp;r_th)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual Theorem CVC3::SearchEngineRules::propAndrAT </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>andr_th</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>l_th</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>r_th</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Implemented in <a class="el" href="classCVC3_1_1SearchEngineTheoremProducer.html#a22c592b3807cddf270b7be995594d58a">CVC3::SearchEngineTheoremProducer</a>.</p>

<p>Referenced by <a class="el" href="circuit_8cpp_source.html#l00047">CVC3::Circuit::propagate()</a>.</p>

</div>
</div>
<a class="anchor" id="gad0150b04c296a6b8e05579c1dbd365f8"></a><!-- doxytag: member="CVC3::SearchEngineRules::propAndrLRT" ref="gad0150b04c296a6b8e05579c1dbd365f8" args="(const Theorem &amp;andr_th, const Theorem &amp;a_th, Theorem *l_th, Theorem *r_th)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void CVC3::SearchEngineRules::propAndrLRT </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>andr_th</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>a_th</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> *&#160;</td>
          <td class="paramname"><em>l_th</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> *&#160;</td>
          <td class="paramname"><em>r_th</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Implemented in <a class="el" href="classCVC3_1_1SearchEngineTheoremProducer.html#a1bdf01b6d0e85d8c91a2fa3aaf0704c6">CVC3::SearchEngineTheoremProducer</a>.</p>

<p>Referenced by <a class="el" href="circuit_8cpp_source.html#l00047">CVC3::Circuit::propagate()</a>.</p>

</div>
</div>
<a class="anchor" id="ga8c8fc73c8b0413f5ca3fa7d72e687f5b"></a><!-- doxytag: member="CVC3::SearchEngineRules::propAndrLF" ref="ga8c8fc73c8b0413f5ca3fa7d72e687f5b" args="(const Theorem &amp;andr_th, const Theorem &amp;a_th, const Theorem &amp;r_th)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual Theorem CVC3::SearchEngineRules::propAndrLF </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>andr_th</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>a_th</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>r_th</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Implemented in <a class="el" href="classCVC3_1_1SearchEngineTheoremProducer.html#a373b85c528799a04c9997f8f0b1349d6">CVC3::SearchEngineTheoremProducer</a>.</p>

<p>Referenced by <a class="el" href="circuit_8cpp_source.html#l00047">CVC3::Circuit::propagate()</a>.</p>

</div>
</div>
<a class="anchor" id="ga1158c41e7b7ed199271391d4404ce1b2"></a><!-- doxytag: member="CVC3::SearchEngineRules::propAndrRF" ref="ga1158c41e7b7ed199271391d4404ce1b2" args="(const Theorem &amp;andr_th, const Theorem &amp;a_th, const Theorem &amp;l_th)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual Theorem CVC3::SearchEngineRules::propAndrRF </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>andr_th</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>a_th</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>l_th</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Implemented in <a class="el" href="classCVC3_1_1SearchEngineTheoremProducer.html#a948eaf2519eb12dd8f76c3c890babd78">CVC3::SearchEngineTheoremProducer</a>.</p>

<p>Referenced by <a class="el" href="circuit_8cpp_source.html#l00047">CVC3::Circuit::propagate()</a>.</p>

</div>
</div>
<a class="anchor" id="ga09d987f2d81c19d798d7185b125879b6"></a><!-- doxytag: member="CVC3::SearchEngineRules::confAndrAT" ref="ga09d987f2d81c19d798d7185b125879b6" args="(const Theorem &amp;andr_th, const Theorem &amp;a_th, bool left, const Theorem &amp;b_th)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual Theorem CVC3::SearchEngineRules::confAndrAT </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>andr_th</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>a_th</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>left</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>b_th</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Implemented in <a class="el" href="classCVC3_1_1SearchEngineTheoremProducer.html#a8b6dd7f1001b52a5be21914e1ecf6da0">CVC3::SearchEngineTheoremProducer</a>.</p>

<p>Referenced by <a class="el" href="circuit_8cpp_source.html#l00047">CVC3::Circuit::propagate()</a>.</p>

</div>
</div>
<a class="anchor" id="gadb878db4f9d24a21b62f50df2713ecca"></a><!-- doxytag: member="CVC3::SearchEngineRules::confAndrAF" ref="gadb878db4f9d24a21b62f50df2713ecca" args="(const Theorem &amp;andr_th, const Theorem &amp;a_th, const Theorem &amp;l_th, const Theorem &amp;r_th)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual Theorem CVC3::SearchEngineRules::confAndrAF </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>andr_th</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>a_th</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>l_th</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>r_th</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Implemented in <a class="el" href="classCVC3_1_1SearchEngineTheoremProducer.html#a09acd80b1c336ac225de0a71bee0d4c8">CVC3::SearchEngineTheoremProducer</a>.</p>

<p>Referenced by <a class="el" href="circuit_8cpp_source.html#l00047">CVC3::Circuit::propagate()</a>.</p>

</div>
</div>
<a class="anchor" id="ga9bc3e3eab4b1fe4fb2c0a0172ca25ee9"></a><!-- doxytag: member="CVC3::SearchEngineRules::propIffr" ref="ga9bc3e3eab4b1fe4fb2c0a0172ca25ee9" args="(const Theorem &amp;iffr_th, int p, const Theorem &amp;a_th, const Theorem &amp;b_th)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual Theorem CVC3::SearchEngineRules::propIffr </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>iffr_th</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>p</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>a_th</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>b_th</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Implemented in <a class="el" href="classCVC3_1_1SearchEngineTheoremProducer.html#afb6d1f50a0b2cf48bf98517731160595">CVC3::SearchEngineTheoremProducer</a>.</p>

<p>Referenced by <a class="el" href="circuit_8cpp_source.html#l00047">CVC3::Circuit::propagate()</a>.</p>

</div>
</div>
<a class="anchor" id="gaef31b1a5f6d6e9f270a1ab28ee361b14"></a><!-- doxytag: member="CVC3::SearchEngineRules::confIffr" ref="gaef31b1a5f6d6e9f270a1ab28ee361b14" args="(const Theorem &amp;iffr_th, const Theorem &amp;i_th, const Theorem &amp;l_th, const Theorem &amp;r_th)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual Theorem CVC3::SearchEngineRules::confIffr </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>iffr_th</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>i_th</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>l_th</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>r_th</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Implemented in <a class="el" href="classCVC3_1_1SearchEngineTheoremProducer.html#afc1db7951ca830c313d2cef522e45f25">CVC3::SearchEngineTheoremProducer</a>.</p>

<p>Referenced by <a class="el" href="circuit_8cpp_source.html#l00047">CVC3::Circuit::propagate()</a>.</p>

</div>
</div>
<a class="anchor" id="ga979ad08269cd2799993628eaaccc146f"></a><!-- doxytag: member="CVC3::SearchEngineRules::propIterIte" ref="ga979ad08269cd2799993628eaaccc146f" args="(const Theorem &amp;iter_th, bool left, const Theorem &amp;if_th, const Theorem &amp;then_th)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual Theorem CVC3::SearchEngineRules::propIterIte </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>iter_th</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>left</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>if_th</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>then_th</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Implemented in <a class="el" href="classCVC3_1_1SearchEngineTheoremProducer.html#a9964535eb830bbc87e91f40e71333dfa">CVC3::SearchEngineTheoremProducer</a>.</p>

<p>Referenced by <a class="el" href="circuit_8cpp_source.html#l00047">CVC3::Circuit::propagate()</a>.</p>

</div>
</div>
<a class="anchor" id="gad35217bbc9f4a27b4d23af173e9ea2c7"></a><!-- doxytag: member="CVC3::SearchEngineRules::propIterIfThen" ref="gad35217bbc9f4a27b4d23af173e9ea2c7" args="(const Theorem &amp;iter_th, bool left, const Theorem &amp;ite_th, const Theorem &amp;then_th, Theorem *if_th, Theorem *else_th)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void CVC3::SearchEngineRules::propIterIfThen </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>iter_th</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>left</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>ite_th</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>then_th</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> *&#160;</td>
          <td class="paramname"><em>if_th</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> *&#160;</td>
          <td class="paramname"><em>else_th</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Implemented in <a class="el" href="classCVC3_1_1SearchEngineTheoremProducer.html#a9c5271d8f47048c4573e21bfd21bc8a7">CVC3::SearchEngineTheoremProducer</a>.</p>

<p>Referenced by <a class="el" href="circuit_8cpp_source.html#l00047">CVC3::Circuit::propagate()</a>.</p>

</div>
</div>
<a class="anchor" id="gab7b07d3b350b2cc7f3f596233abb54ea"></a><!-- doxytag: member="CVC3::SearchEngineRules::propIterThen" ref="gab7b07d3b350b2cc7f3f596233abb54ea" args="(const Theorem &amp;iter_th, const Theorem &amp;ite_th, const Theorem &amp;if_th)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual Theorem CVC3::SearchEngineRules::propIterThen </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>iter_th</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>ite_th</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>if_th</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Implemented in <a class="el" href="classCVC3_1_1SearchEngineTheoremProducer.html#aa3a9dce562278a5383f4551d95b12c3a">CVC3::SearchEngineTheoremProducer</a>.</p>

<p>Referenced by <a class="el" href="circuit_8cpp_source.html#l00047">CVC3::Circuit::propagate()</a>.</p>

</div>
</div>
<a class="anchor" id="gaae491d08949a1ec57981526c8e960119"></a><!-- doxytag: member="CVC3::SearchEngineRules::confIterThenElse" ref="gaae491d08949a1ec57981526c8e960119" args="(const Theorem &amp;iter_th, const Theorem &amp;ite_th, const Theorem &amp;then_th, const Theorem &amp;else_th)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual Theorem CVC3::SearchEngineRules::confIterThenElse </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>iter_th</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>ite_th</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>then_th</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>else_th</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Implemented in <a class="el" href="classCVC3_1_1SearchEngineTheoremProducer.html#aaf56546de0c7c7bbe0b573477d412bf7">CVC3::SearchEngineTheoremProducer</a>.</p>

<p>Referenced by <a class="el" href="circuit_8cpp_source.html#l00047">CVC3::Circuit::propagate()</a>.</p>

</div>
</div>
<a class="anchor" id="ga771471d7cbb2253bc32f2a8018bd7182"></a><!-- doxytag: member="CVC3::SearchEngineRules::confIterIfThen" ref="ga771471d7cbb2253bc32f2a8018bd7182" args="(const Theorem &amp;iter_th, bool left, const Theorem &amp;ite_th, const Theorem &amp;if_th, const Theorem &amp;then_th)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual Theorem CVC3::SearchEngineRules::confIterIfThen </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>iter_th</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>left</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>ite_th</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>if_th</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>then_th</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Implemented in <a class="el" href="classCVC3_1_1SearchEngineTheoremProducer.html#aad519346f53864cc21109200379a3698">CVC3::SearchEngineTheoremProducer</a>.</p>

<p>Referenced by <a class="el" href="circuit_8cpp_source.html#l00047">CVC3::Circuit::propagate()</a>.</p>

</div>
</div>
<a class="anchor" id="gab183ff7d1013729d0d3e2dbe28686e3c"></a><!-- doxytag: member="CVC3::SearchEngineRules::andCNFRule" ref="gab183ff7d1013729d0d3e2dbe28686e3c" args="(const Theorem &amp;thm)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual Theorem CVC3::SearchEngineRules::andCNFRule </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>thm</em></td><td>)</td>
          <td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>AND(x1,...,xn) &lt;=&gt; v |- CNF[AND(x1,...,xn) &lt;=&gt; v]. </p>

<p>Implemented in <a class="el" href="classCVC3_1_1SearchEngineTheoremProducer.html#af38d03174800bca0baba91f4e8288b0f">CVC3::SearchEngineTheoremProducer</a>.</p>

<p>Referenced by <a class="el" href="search__impl__base_8cpp_source.html#l00563">CVC3::SearchImplBase::applyCNFRules()</a>.</p>

</div>
</div>
<a class="anchor" id="ga7086aa693d2a3421bc349eca8e9938ba"></a><!-- doxytag: member="CVC3::SearchEngineRules::orCNFRule" ref="ga7086aa693d2a3421bc349eca8e9938ba" args="(const Theorem &amp;thm)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual Theorem CVC3::SearchEngineRules::orCNFRule </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>thm</em></td><td>)</td>
          <td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>OR(x1,...,xn) &lt;=&gt; v |- CNF[OR(x1,...,xn) &lt;=&gt; v]. </p>

<p>Implemented in <a class="el" href="classCVC3_1_1SearchEngineTheoremProducer.html#a3cf33a58eee64dc744015e8657adc40a">CVC3::SearchEngineTheoremProducer</a>.</p>

<p>Referenced by <a class="el" href="search__impl__base_8cpp_source.html#l00563">CVC3::SearchImplBase::applyCNFRules()</a>.</p>

</div>
</div>
<a class="anchor" id="ga25f7b95c8ebce2be117d03a1c93d715f"></a><!-- doxytag: member="CVC3::SearchEngineRules::impCNFRule" ref="ga25f7b95c8ebce2be117d03a1c93d715f" args="(const Theorem &amp;thm)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual Theorem CVC3::SearchEngineRules::impCNFRule </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>thm</em></td><td>)</td>
          <td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>(x1 =&gt; x2) &lt;=&gt; v |- CNF[(x1 =&gt; x2) &lt;=&gt; v] </p>

<p>Implemented in <a class="el" href="classCVC3_1_1SearchEngineTheoremProducer.html#a15cbb86a5a77422c7d8c59384488f9e1">CVC3::SearchEngineTheoremProducer</a>.</p>

<p>Referenced by <a class="el" href="search__impl__base_8cpp_source.html#l00563">CVC3::SearchImplBase::applyCNFRules()</a>.</p>

</div>
</div>
<a class="anchor" id="ga4ab7606744594db9050cb83fe6b73668"></a><!-- doxytag: member="CVC3::SearchEngineRules::iffCNFRule" ref="ga4ab7606744594db9050cb83fe6b73668" args="(const Theorem &amp;thm)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual Theorem CVC3::SearchEngineRules::iffCNFRule </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>thm</em></td><td>)</td>
          <td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>(x1 &lt;=&gt; x2) &lt;=&gt; v |- CNF[(x1 &lt;=&gt; x2) &lt;=&gt; v] </p>

<p>Implemented in <a class="el" href="classCVC3_1_1SearchEngineTheoremProducer.html#a47468ab81771bdb7af900bd2f907f818">CVC3::SearchEngineTheoremProducer</a>.</p>

<p>Referenced by <a class="el" href="search__impl__base_8cpp_source.html#l00563">CVC3::SearchImplBase::applyCNFRules()</a>.</p>

</div>
</div>
<a class="anchor" id="gae9263cbcedf5def99b3c49ee6978497a"></a><!-- doxytag: member="CVC3::SearchEngineRules::iteCNFRule" ref="gae9263cbcedf5def99b3c49ee6978497a" args="(const Theorem &amp;thm)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual Theorem CVC3::SearchEngineRules::iteCNFRule </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>thm</em></td><td>)</td>
          <td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>ITE(c, x1, x2) &lt;=&gt; v |- CNF[ITE(c, x1, x2) &lt;=&gt; v]. </p>

<p>Implemented in <a class="el" href="classCVC3_1_1SearchEngineTheoremProducer.html#a1c37ba3237f04f7536164166c7f0156e">CVC3::SearchEngineTheoremProducer</a>.</p>

<p>Referenced by <a class="el" href="search__impl__base_8cpp_source.html#l00563">CVC3::SearchImplBase::applyCNFRules()</a>.</p>

</div>
</div>
<a class="anchor" id="ga9b9c0fe62505477b6ec9774c1b5b2494"></a><!-- doxytag: member="CVC3::SearchEngineRules::iteToClauses" ref="ga9b9c0fe62505477b6ec9774c1b5b2494" args="(const Theorem &amp;ite)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual Theorem CVC3::SearchEngineRules::iteToClauses </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>ite</em></td><td>)</td>
          <td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>ITE(c, f1, f2) |- (NOT c OR f1) AND (c OR f2) </p>

<p>Implemented in <a class="el" href="classCVC3_1_1SearchEngineTheoremProducer.html#a9ec94eac3bdabe251a4147b2830a2f50">CVC3::SearchEngineTheoremProducer</a>.</p>

<p>Referenced by <a class="el" href="search__impl__base_8cpp_source.html#l00371">CVC3::SearchImplBase::enqueueCNFrec()</a>.</p>

</div>
</div>
<a class="anchor" id="ga356cd5a36ede50921fbaa3bc7e222d4f"></a><!-- doxytag: member="CVC3::SearchEngineRules::iffToClauses" ref="ga356cd5a36ede50921fbaa3bc7e222d4f" args="(const Theorem &amp;iff)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual Theorem CVC3::SearchEngineRules::iffToClauses </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>iff</em></td><td>)</td>
          <td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>e1 &lt;=&gt; e2 |- (NOT e1 OR e2) AND (e1 OR NOT e2) </p>

<p>Implemented in <a class="el" href="classCVC3_1_1SearchEngineTheoremProducer.html#ab608d81ddbbce71638fcce0d119c63d1">CVC3::SearchEngineTheoremProducer</a>.</p>

<p>Referenced by <a class="el" href="search__impl__base_8cpp_source.html#l00563">CVC3::SearchImplBase::applyCNFRules()</a>.</p>

</div>
</div>
<a class="anchor" id="ga55daf0bf95530208f5abf9484ded9055"></a><!-- doxytag: member="CVC3::SearchEngineRules::satProof" ref="ga55daf0bf95530208f5abf9484ded9055" args="(const Expr &amp;queryExpr, const Proof &amp;satProof)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual Theorem CVC3::SearchEngineRules::satProof </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>queryExpr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Proof.html">Proof</a> &amp;&#160;</td>
          <td class="paramname"><em>satProof</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Implemented in <a class="el" href="classCVC3_1_1SearchEngineTheoremProducer.html#a211e687727973cff1b055a7302d562ae">CVC3::SearchEngineTheoremProducer</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>