Sophie

Sophie

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

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::SearchEngineTheoremProducer 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_1SearchEngineTheoremProducer.html">SearchEngineTheoremProducer</a>      </li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pri-methods">Private Member Functions</a> &#124;
<a href="#pri-attribs">Private Attributes</a>  </div>
  <div class="headertitle">
<div class="title">CVC3::SearchEngineTheoremProducer Class Reference</div>  </div>
</div>
<div class="contents">
<!-- doxytag: class="CVC3::SearchEngineTheoremProducer" --><!-- doxytag: inherits="CVC3::SearchEngineRules,CVC3::TheoremProducer" -->
<p><code>#include &lt;<a class="el" href="search__theorem__producer_8h_source.html">search_theorem_producer.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for CVC3::SearchEngineTheoremProducer:</div>
<div class="dyncontent">
 <div class="center">
  <img src="classCVC3_1_1SearchEngineTheoremProducer.png" usemap="#CVC3::SearchEngineTheoremProducer_map" alt=""/>
  <map id="CVC3::SearchEngineTheoremProducer_map" name="CVC3::SearchEngineTheoremProducer_map">
<area href="classCVC3_1_1SearchEngineRules.html" title="API to the proof rules for the Search Engines." alt="CVC3::SearchEngineRules" shape="rect" coords="0,0,234,24"/>
<area href="classCVC3_1_1TheoremProducer.html" alt="CVC3::TheoremProducer" shape="rect" coords="244,0,478,24"/>
</map>
 </div></div>

<p><a href="classCVC3_1_1SearchEngineTheoremProducer-members.html">List of all members.</a></p>
<h2><a name="pub-methods"></a>
Public Member Functions</h2>
<ul>
<li><a class="el" href="classCVC3_1_1SearchEngineTheoremProducer.html#ad09ba717299f8684495e218548a43533">SearchEngineTheoremProducer</a> (<a class="el" href="classCVC3_1_1TheoremManager.html">TheoremManager</a> *tm)
<li>virtual <a class="el" href="classCVC3_1_1SearchEngineTheoremProducer.html#a4a91c61608f1df10cfd4b114986327c9">~SearchEngineTheoremProducer</a> ()
<li>virtual <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> <a class="el" href="classCVC3_1_1SearchEngineTheoremProducer.html#a671a24b65b564dff6588925ecfcb5f60">proofByContradiction</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;a, const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;pfFalse)
<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="#a671a24b65b564dff6588925ecfcb5f60"></a><br/></dl><li>virtual <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> <a class="el" href="classCVC3_1_1SearchEngineTheoremProducer.html#a7f69d40a18ab9b66200d24ccc92c2ae9">negIntro</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;not_a, const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;pfFalse)
<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="#a7f69d40a18ab9b66200d24ccc92c2ae9"></a><br/></dl><li>virtual <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> <a class="el" href="classCVC3_1_1SearchEngineTheoremProducer.html#a68990fddbfff890590e69e239a3110fe">caseSplit</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;a, const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;a_proves_c, const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;not_a_proves_c)
<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="#a68990fddbfff890590e69e239a3110fe"></a><br/></dl><li>virtual <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> <a class="el" href="classCVC3_1_1SearchEngineTheoremProducer.html#ac980b63fbd08b0e29b1092ed4aeb95e8">eliminateSkolemAxioms</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;tFalse, const std::vector&lt; <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &gt; &amp;delta)
<li>virtual <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> <a class="el" href="classCVC3_1_1SearchEngineTheoremProducer.html#abf46962b0eb1ff204a5b321828139713">conflictClause</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;thm, const std::vector&lt; <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &gt; &amp;lits, const std::vector&lt; <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &gt; &amp;gamma)
<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="#abf46962b0eb1ff204a5b321828139713"></a><br/></dl><li>virtual <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> <a class="el" href="classCVC3_1_1SearchEngineTheoremProducer.html#a9be0036e770d071001f7afab845f0473">cutRule</a> (const std::vector&lt; <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &gt; &amp;thmsA, const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;as_prove_b)
<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="#a9be0036e770d071001f7afab845f0473"></a><br/></dl><li>virtual <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> <a class="el" href="classCVC3_1_1SearchEngineTheoremProducer.html#af764cf6eae285f0dbd3d430b76c5e19d">unitProp</a> (const std::vector&lt; <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &gt; &amp;thms, const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;clause, unsigned i)
<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="#af764cf6eae285f0dbd3d430b76c5e19d"></a><br/></dl><li>virtual <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> <a class="el" href="classCVC3_1_1SearchEngineTheoremProducer.html#a55bf4e865a7a76e82c23d5fba566b853">conflictRule</a> (const std::vector&lt; <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &gt; &amp;thms, const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;clause)
<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="#a55bf4e865a7a76e82c23d5fba566b853"></a><br/></dl><li>virtual <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> <a class="el" href="classCVC3_1_1SearchEngineTheoremProducer.html#a1d0f21b895fc25bff5dc653490a775c0">propAndrAF</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;andr_th, bool left, const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;b_th)
<li>virtual <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> <a class="el" href="classCVC3_1_1SearchEngineTheoremProducer.html#a22c592b3807cddf270b7be995594d58a">propAndrAT</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;andr_th, const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;l_th, const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;r_th)
<li>virtual void <a class="el" href="classCVC3_1_1SearchEngineTheoremProducer.html#a1bdf01b6d0e85d8c91a2fa3aaf0704c6">propAndrLRT</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;andr_th, const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;a_th, <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> *l_th, <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> *r_th)
<li>virtual <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> <a class="el" href="classCVC3_1_1SearchEngineTheoremProducer.html#a373b85c528799a04c9997f8f0b1349d6">propAndrLF</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;andr_th, const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;a_th, const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;r_th)
<li>virtual <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> <a class="el" href="classCVC3_1_1SearchEngineTheoremProducer.html#a948eaf2519eb12dd8f76c3c890babd78">propAndrRF</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;andr_th, const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;a_th, const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;l_th)
<li>virtual <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> <a class="el" href="classCVC3_1_1SearchEngineTheoremProducer.html#a8b6dd7f1001b52a5be21914e1ecf6da0">confAndrAT</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;andr_th, const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;a_th, bool left, const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;b_th)
<li>virtual <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> <a class="el" href="classCVC3_1_1SearchEngineTheoremProducer.html#a09acd80b1c336ac225de0a71bee0d4c8">confAndrAF</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;andr_th, const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;a_th, const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;l_th, const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;r_th)
<li>virtual <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> <a class="el" href="classCVC3_1_1SearchEngineTheoremProducer.html#afb6d1f50a0b2cf48bf98517731160595">propIffr</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;iffr_th, int p, const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;a_th, const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;b_th)
<li>virtual <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> <a class="el" href="classCVC3_1_1SearchEngineTheoremProducer.html#afc1db7951ca830c313d2cef522e45f25">confIffr</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;iffr_th, const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;i_th, const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;l_th, const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;r_th)
<li>virtual <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> <a class="el" href="classCVC3_1_1SearchEngineTheoremProducer.html#a9964535eb830bbc87e91f40e71333dfa">propIterIte</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;iter_th, bool left, const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;if_th, const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;then_th)
<li>virtual void <a class="el" href="classCVC3_1_1SearchEngineTheoremProducer.html#a9c5271d8f47048c4573e21bfd21bc8a7">propIterIfThen</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;iter_th, bool left, const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;ite_th, const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;then_th, <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> *if_th, <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> *else_th)
<li>virtual <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> <a class="el" href="classCVC3_1_1SearchEngineTheoremProducer.html#aa3a9dce562278a5383f4551d95b12c3a">propIterThen</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;iter_th, const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;ite_th, const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;if_th)
<li>virtual <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> <a class="el" href="classCVC3_1_1SearchEngineTheoremProducer.html#aaf56546de0c7c7bbe0b573477d412bf7">confIterThenElse</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;iter_th, const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;ite_th, const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;then_th, const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;else_th)
<li>virtual <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> <a class="el" href="classCVC3_1_1SearchEngineTheoremProducer.html#aad519346f53864cc21109200379a3698">confIterIfThen</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;iter_th, bool left, const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;ite_th, const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;if_th, const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;then_th)
<li><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> <a class="el" href="classCVC3_1_1SearchEngineTheoremProducer.html#af38d03174800bca0baba91f4e8288b0f">andCNFRule</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;thm)
<dl class="el"><dd class="mdescRight">AND(x1,...,xn) &lt;=&gt; v |- CNF[AND(x1,...,xn) &lt;=&gt; v].  <a href="#af38d03174800bca0baba91f4e8288b0f"></a><br/></dl><li><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> <a class="el" href="classCVC3_1_1SearchEngineTheoremProducer.html#a3cf33a58eee64dc744015e8657adc40a">orCNFRule</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;thm)
<dl class="el"><dd class="mdescRight">OR(x1,...,xn) &lt;=&gt; v |- CNF[OR(x1,...,xn) &lt;=&gt; v].  <a href="#a3cf33a58eee64dc744015e8657adc40a"></a><br/></dl><li><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> <a class="el" href="classCVC3_1_1SearchEngineTheoremProducer.html#a15cbb86a5a77422c7d8c59384488f9e1">impCNFRule</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;thm)
<dl class="el"><dd class="mdescRight">(x1 =&gt; x2) &lt;=&gt; v |- CNF[(x1 =&gt; x2) &lt;=&gt; v]  <a href="#a15cbb86a5a77422c7d8c59384488f9e1"></a><br/></dl><li><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> <a class="el" href="classCVC3_1_1SearchEngineTheoremProducer.html#a47468ab81771bdb7af900bd2f907f818">iffCNFRule</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;thm)
<dl class="el"><dd class="mdescRight">(x1 &lt;=&gt; x2) &lt;=&gt; v |- CNF[(x1 &lt;=&gt; x2) &lt;=&gt; v]  <a href="#a47468ab81771bdb7af900bd2f907f818"></a><br/></dl><li><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> <a class="el" href="classCVC3_1_1SearchEngineTheoremProducer.html#a1c37ba3237f04f7536164166c7f0156e">iteCNFRule</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;thm)
<dl class="el"><dd class="mdescRight">ITE(c, x1, x2) &lt;=&gt; v |- CNF[ITE(c, x1, x2) &lt;=&gt; v].  <a href="#a1c37ba3237f04f7536164166c7f0156e"></a><br/></dl><li><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> <a class="el" href="classCVC3_1_1SearchEngineTheoremProducer.html#a9ec94eac3bdabe251a4147b2830a2f50">iteToClauses</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;ite)
<dl class="el"><dd class="mdescRight">ITE(c, f1, f2) |- (NOT c OR f1) AND (c OR f2)  <a href="#a9ec94eac3bdabe251a4147b2830a2f50"></a><br/></dl><li><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> <a class="el" href="classCVC3_1_1SearchEngineTheoremProducer.html#ab608d81ddbbce71638fcce0d119c63d1">iffToClauses</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;iff)
<dl class="el"><dd class="mdescRight">e1 &lt;=&gt; e2 |- (NOT e1 OR e2) AND (e1 OR NOT e2)  <a href="#ab608d81ddbbce71638fcce0d119c63d1"></a><br/></dl><li><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> <a class="el" href="classCVC3_1_1SearchEngineTheoremProducer.html#a211e687727973cff1b055a7302d562ae">satProof</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;queryExpr, const <a class="el" href="classCVC3_1_1Proof.html">Proof</a> &amp;satProof)
</ul>
<h2><a name="pri-methods"></a>
Private Member Functions</h2>
<ul>
<li>void <a class="el" href="classCVC3_1_1SearchEngineTheoremProducer.html#acaa4dd5cb5be1e9844e03c82feea84b6">verifyConflict</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;thm, <a class="el" href="namespaceCVC3.html#ae8220d283ddfdaa8f4e0da0a03fa7ff4">TheoremMap</a> &amp;m)
<li>void <a class="el" href="classCVC3_1_1SearchEngineTheoremProducer.html#aa12792d6b382598a0f5aeea983568a23">checkSoundNoSkolems</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e, <a class="el" href="classCVC3_1_1ExprMap.html">ExprMap</a>&lt; bool &gt; &amp;visited, const <a class="el" href="classCVC3_1_1ExprMap.html">ExprMap</a>&lt; bool &gt; &amp;skolems)
<li>void <a class="el" href="classCVC3_1_1SearchEngineTheoremProducer.html#aecd6425dded4edb62daefa858e969cf8">checkSoundNoSkolems</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;t, <a class="el" href="classCVC3_1_1ExprMap.html">ExprMap</a>&lt; bool &gt; &amp;visited, const <a class="el" href="classCVC3_1_1ExprMap.html">ExprMap</a>&lt; bool &gt; &amp;skolems)
<li><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> <a class="el" href="classCVC3_1_1SearchEngineTheoremProducer.html#afd9835d232286f451200d637ba995e75">opCNFRule</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;thm, int kind, const std::string &amp;ruleName)
<li><a class="el" href="classCVC3_1_1Expr.html">Expr</a> <a class="el" href="classCVC3_1_1SearchEngineTheoremProducer.html#a8ad94f1a94fd5bf8fa10dbf26e04ee58">convertToCNF</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;v, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;phi)
<dl class="el"><dd class="mdescRight">produces the CNF for the formula v &lt;==&gt; phi  <a href="#a8ad94f1a94fd5bf8fa10dbf26e04ee58"></a><br/></dl><li><a class="el" href="classCVC3_1_1Expr.html">Expr</a> <a class="el" href="classCVC3_1_1SearchEngineTheoremProducer.html#a4af17425aaf7d8a28aaf1d8a09241535">findInLocalCache</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;i, <a class="el" href="classCVC3_1_1ExprMap.html">ExprMap</a>&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;localCache, std::vector&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;boundVars)
<dl class="el"><dd class="mdescRight">checks if phi has v in local cache of opCNFRule, if so reuse v.  <a href="#a4af17425aaf7d8a28aaf1d8a09241535"></a><br/></dl></ul>
<h2><a name="pri-attribs"></a>
Private Attributes</h2>
<ul>
<li><a class="el" href="classCVC3_1_1CommonProofRules.html">CommonProofRules</a> * <a class="el" href="classCVC3_1_1SearchEngineTheoremProducer.html#abb70faf5bb0eccda31e8ff06a46f2b65">d_commonRules</a>
</ul>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock">
<p>Definition at line <a class="el" href="search__theorem__producer_8h_source.html#l00032">32</a> of file <a class="el" href="search__theorem__producer_8h_source.html">search_theorem_producer.h</a>.</p>
</div><hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="ad09ba717299f8684495e218548a43533"></a><!-- doxytag: member="CVC3::SearchEngineTheoremProducer::SearchEngineTheoremProducer" ref="ad09ba717299f8684495e218548a43533" args="(TheoremManager *tm)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">SearchEngineTheoremProducer::SearchEngineTheoremProducer </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1TheoremManager.html">TheoremManager</a> *&#160;</td>
          <td class="paramname"><em>tm</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="search__theorem__producer_8cpp_source.html#l00062">62</a> of file <a class="el" href="search__theorem__producer_8cpp_source.html">search_theorem_producer.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a4a91c61608f1df10cfd4b114986327c9"></a><!-- doxytag: member="CVC3::SearchEngineTheoremProducer::~SearchEngineTheoremProducer" ref="a4a91c61608f1df10cfd4b114986327c9" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual CVC3::SearchEngineTheoremProducer::~SearchEngineTheoremProducer </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="search__theorem__producer_8h_source.html#l00048">48</a> of file <a class="el" href="search__theorem__producer_8h_source.html">search_theorem_producer.h</a>.</p>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="acaa4dd5cb5be1e9844e03c82feea84b6"></a><!-- doxytag: member="CVC3::SearchEngineTheoremProducer::verifyConflict" ref="acaa4dd5cb5be1e9844e03c82feea84b6" args="(const Theorem &amp;thm, TheoremMap &amp;m)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void SearchEngineTheoremProducer::verifyConflict </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"><a class="el" href="namespaceCVC3.html#ae8220d283ddfdaa8f4e0da0a03fa7ff4">TheoremMap</a> &amp;&#160;</td>
          <td class="paramname"><em>m</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="search__theorem__producer_8cpp_source.html#l00192">192</a> of file <a class="el" href="search__theorem__producer_8cpp_source.html">search_theorem_producer.cpp</a>.</p>

<p>References <a class="el" href="theorem__producer_8h_source.html#l00083">CHECK_SOUND</a>, and <a class="el" href="theorem_8cpp_source.html#l00385">CVC3::Theorem::getAssumptionsRef()</a>.</p>

<p>Referenced by <a class="el" href="search__theorem__producer_8cpp_source.html#l00221">conflictClause()</a>.</p>

</div>
</div>
<a class="anchor" id="aa12792d6b382598a0f5aeea983568a23"></a><!-- doxytag: member="CVC3::SearchEngineTheoremProducer::checkSoundNoSkolems" ref="aa12792d6b382598a0f5aeea983568a23" args="(const Expr &amp;e, ExprMap&lt; bool &gt; &amp;visited, const ExprMap&lt; bool &gt; &amp;skolems)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void SearchEngineTheoremProducer::checkSoundNoSkolems </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>e</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1ExprMap.html">ExprMap</a>&lt; bool &gt; &amp;&#160;</td>
          <td class="paramname"><em>visited</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1ExprMap.html">ExprMap</a>&lt; bool &gt; &amp;&#160;</td>
          <td class="paramname"><em>skolems</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="search__theorem__producer_8cpp_source.html#l00411">411</a> of file <a class="el" href="search__theorem__producer_8cpp_source.html">search_theorem_producer.cpp</a>.</p>

<p>References <a class="el" href="expr_8h_source.html#l01211">CVC3::Expr::begin()</a>, <a class="el" href="theorem__producer_8h_source.html#l00083">CHECK_SOUND</a>, <a class="el" href="expr__map_8h_source.html#l00173">CVC3::ExprMap&lt; Data &gt;::count()</a>, <a class="el" href="expr_8h_source.html#l01217">CVC3::Expr::end()</a>, <a class="el" href="kinds_8h_source.html#l00085">EXISTS</a>, <a class="el" href="kinds_8h_source.html#l00084">FORALL</a>, <a class="el" href="expr_8h_source.html#l01069">CVC3::Expr::getBody()</a>, <a class="el" href="expr_8h_source.html#l01168">CVC3::Expr::getKind()</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

<p>Referenced by <a class="el" href="search__theorem__producer_8cpp_source.html#l00429">checkSoundNoSkolems()</a>, and <a class="el" href="search__theorem__producer_8cpp_source.html#l00454">eliminateSkolemAxioms()</a>.</p>

</div>
</div>
<a class="anchor" id="aecd6425dded4edb62daefa858e969cf8"></a><!-- doxytag: member="CVC3::SearchEngineTheoremProducer::checkSoundNoSkolems" ref="aecd6425dded4edb62daefa858e969cf8" args="(const Theorem &amp;t, ExprMap&lt; bool &gt; &amp;visited, const ExprMap&lt; bool &gt; &amp;skolems)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void SearchEngineTheoremProducer::checkSoundNoSkolems </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>t</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1ExprMap.html">ExprMap</a>&lt; bool &gt; &amp;&#160;</td>
          <td class="paramname"><em>visited</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1ExprMap.html">ExprMap</a>&lt; bool &gt; &amp;&#160;</td>
          <td class="paramname"><em>skolems</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="search__theorem__producer_8cpp_source.html#l00429">429</a> of file <a class="el" href="search__theorem__producer_8cpp_source.html">search_theorem_producer.cpp</a>.</p>

<p>References <a class="el" href="search__theorem__producer_8cpp_source.html#l00411">checkSoundNoSkolems()</a>, <a class="el" href="theorem_8cpp_source.html#l00385">CVC3::Theorem::getAssumptionsRef()</a>, <a class="el" href="theorem_8cpp_source.html#l00230">CVC3::Theorem::getExpr()</a>, <a class="el" href="theorem_8cpp_source.html#l00395">CVC3::Theorem::isAssump()</a>, <a class="el" href="theorem_8cpp_source.html#l00416">CVC3::Theorem::isFlagged()</a>, <a class="el" href="theorem_8h_source.html#l00171">CVC3::Theorem::isRefl()</a>, and <a class="el" href="theorem_8cpp_source.html#l00429">CVC3::Theorem::setFlag()</a>.</p>

</div>
</div>
<a class="anchor" id="a671a24b65b564dff6588925ecfcb5f60"></a><!-- doxytag: member="CVC3::SearchEngineTheoremProducer::proofByContradiction" ref="a671a24b65b564dff6588925ecfcb5f60" args="(const Expr &amp;a, const Theorem &amp;pfFalse)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> SearchEngineTheoremProducer::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> [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>Implements <a class="el" href="group__SE__Rules.html#ga64c9fb7058e52c324ce76f15fcea37e2">CVC3::SearchEngineRules</a>.</p>

<p>Definition at line <a class="el" href="search__theorem__producer_8cpp_source.html#l00074">74</a> of file <a class="el" href="search__theorem__producer_8cpp_source.html">search_theorem_producer.cpp</a>.</p>

<p>References <a class="el" href="theorem__producer_8h_source.html#l00087">CHECK_PROOFS</a>, <a class="el" href="theorem__producer_8h_source.html#l00083">CHECK_SOUND</a>, <a class="el" href="theorem_8cpp_source.html#l00385">CVC3::Theorem::getAssumptionsRef()</a>, <a class="el" href="theorem_8cpp_source.html#l00230">CVC3::Theorem::getExpr()</a>, <a class="el" href="theorem_8cpp_source.html#l00402">CVC3::Theorem::getProof()</a>, <a class="el" href="expr_8h_source.html#l00355">CVC3::Expr::isFalse()</a>, <a class="el" href="search__theorem__producer_8cpp_source.html#l00052">lfsc_called</a>, <a class="el" href="theorem__producer_8cpp_source.html#l00075">CVC3::TheoremProducer::newPf()</a>, <a class="el" href="theorem__producer_8h_source.html#l00107">CVC3::TheoremProducer::newTheorem()</a>, <a class="el" href="search__theorem__producer_8cpp_source.html#l01419">satProof()</a>, <a class="el" href="theorem_8h_source.html#l00404">CVC3::Theorem::toString()</a>, and <a class="el" href="theorem__producer_8h_source.html#l00159">CVC3::TheoremProducer::withProof()</a>.</p>

</div>
</div>
<a class="anchor" id="a7f69d40a18ab9b66200d24ccc92c2ae9"></a><!-- doxytag: member="CVC3::SearchEngineTheoremProducer::negIntro" ref="a7f69d40a18ab9b66200d24ccc92c2ae9" args="(const Expr &amp;not_a, const Theorem &amp;pfFalse)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> SearchEngineTheoremProducer::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> [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>Implements <a class="el" href="group__SE__Rules.html#ga846c2bdc33f6ff2080e76637ea618626">CVC3::SearchEngineRules</a>.</p>

<p>Definition at line <a class="el" href="search__theorem__producer_8cpp_source.html#l00105">105</a> of file <a class="el" href="search__theorem__producer_8cpp_source.html">search_theorem_producer.cpp</a>.</p>

<p>References <a class="el" href="theorem__producer_8h_source.html#l00087">CHECK_PROOFS</a>, <a class="el" href="theorem__producer_8h_source.html#l00083">CHECK_SOUND</a>, <a class="el" href="theorem_8cpp_source.html#l00385">CVC3::Theorem::getAssumptionsRef()</a>, <a class="el" href="theorem_8cpp_source.html#l00230">CVC3::Theorem::getExpr()</a>, <a class="el" href="theorem_8cpp_source.html#l00402">CVC3::Theorem::getProof()</a>, <a class="el" href="expr_8h_source.html#l00355">CVC3::Expr::isFalse()</a>, <a class="el" href="expr_8h_source.html#l00420">CVC3::Expr::isNot()</a>, <a class="el" href="theorem__producer_8cpp_source.html#l00075">CVC3::TheoremProducer::newPf()</a>, <a class="el" href="theorem__producer_8h_source.html#l00107">CVC3::TheoremProducer::newTheorem()</a>, <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>, <a class="el" href="theorem_8h_source.html#l00404">CVC3::Theorem::toString()</a>, and <a class="el" href="theorem__producer_8h_source.html#l00159">CVC3::TheoremProducer::withProof()</a>.</p>

</div>
</div>
<a class="anchor" id="a68990fddbfff890590e69e239a3110fe"></a><!-- doxytag: member="CVC3::SearchEngineTheoremProducer::caseSplit" ref="a68990fddbfff890590e69e239a3110fe" args="(const Expr &amp;a, const Theorem &amp;a_proves_c, const Theorem &amp;not_a_proves_c)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> SearchEngineTheoremProducer::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> [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>Implements <a class="el" href="group__SE__Rules.html#ga7db620d19846bd5947321a8d6f9e7da4">CVC3::SearchEngineRules</a>.</p>

<p>Definition at line <a class="el" href="search__theorem__producer_8cpp_source.html#l00135">135</a> of file <a class="el" href="search__theorem__producer_8cpp_source.html">search_theorem_producer.cpp</a>.</p>

<p>References <a class="el" href="theorem__producer_8h_source.html#l00087">CHECK_PROOFS</a>, <a class="el" href="theorem__producer_8h_source.html#l00083">CHECK_SOUND</a>, <a class="el" href="theorem_8cpp_source.html#l00385">CVC3::Theorem::getAssumptionsRef()</a>, <a class="el" href="theorem_8cpp_source.html#l00230">CVC3::Theorem::getExpr()</a>, <a class="el" href="theorem_8cpp_source.html#l00402">CVC3::Theorem::getProof()</a>, <a class="el" href="theorem__producer_8cpp_source.html#l00075">CVC3::TheoremProducer::newPf()</a>, <a class="el" href="theorem__producer_8h_source.html#l00107">CVC3::TheoremProducer::newTheorem()</a>, <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>, and <a class="el" href="theorem__producer_8h_source.html#l00159">CVC3::TheoremProducer::withProof()</a>.</p>

</div>
</div>
<a class="anchor" id="ac980b63fbd08b0e29b1092ed4aeb95e8"></a><!-- doxytag: member="CVC3::SearchEngineTheoremProducer::eliminateSkolemAxioms" ref="ac980b63fbd08b0e29b1092ed4aeb95e8" args="(const Theorem &amp;tFalse, const std::vector&lt; Theorem &gt; &amp;delta)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> SearchEngineTheoremProducer::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> [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>Implements <a class="el" href="group__SE__Rules.html#ga3ddf95924d2ff2efb59e84dc78a19821">CVC3::SearchEngineRules</a>.</p>

<p>Definition at line <a class="el" href="search__theorem__producer_8cpp_source.html#l00454">454</a> of file <a class="el" href="search__theorem__producer_8cpp_source.html">search_theorem_producer.cpp</a>.</p>

<p>References <a class="el" href="expr__map_8h_source.html#l00190">CVC3::ExprMap&lt; Data &gt;::begin()</a>, <a class="el" href="theorem__producer_8h_source.html#l00087">CHECK_PROOFS</a>, <a class="el" href="theorem__producer_8h_source.html#l00083">CHECK_SOUND</a>, <a class="el" href="search__theorem__producer_8cpp_source.html#l00411">checkSoundNoSkolems()</a>, <a class="el" href="theorem_8cpp_source.html#l00422">CVC3::Theorem::clearAllFlags()</a>, <a class="el" href="theorem__producer_8h_source.html#l00095">CVC3::TheoremProducer::d_em</a>, <a class="el" href="theorem_8cpp_source.html#l00385">CVC3::Theorem::getAssumptionsRef()</a>, <a class="el" href="theorem_8cpp_source.html#l00230">CVC3::Theorem::getExpr()</a>, <a class="el" href="theorem_8cpp_source.html#l00402">CVC3::Theorem::getProof()</a>, <a class="el" href="expr_8h_source.html#l00355">CVC3::Expr::isFalse()</a>, <a class="el" href="expr__manager_8h_source.html#l00454">CVC3::ExprManager::newLeafExpr()</a>, <a class="el" href="theorem__producer_8cpp_source.html#l00075">CVC3::TheoremProducer::newPf()</a>, <a class="el" href="theorem__producer_8h_source.html#l00107">CVC3::TheoremProducer::newTheorem()</a>, <a class="el" href="kinds_8h_source.html#l00099">TRACE</a>, and <a class="el" href="theorem__producer_8h_source.html#l00159">CVC3::TheoremProducer::withProof()</a>.</p>

</div>
</div>
<a class="anchor" id="abf46962b0eb1ff204a5b321828139713"></a><!-- doxytag: member="CVC3::SearchEngineTheoremProducer::conflictClause" ref="abf46962b0eb1ff204a5b321828139713" args="(const Theorem &amp;thm, const std::vector&lt; Theorem &gt; &amp;lits, const std::vector&lt; Theorem &gt; &amp;gamma)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> SearchEngineTheoremProducer::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> [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>Implements <a class="el" href="group__SE__Rules.html#ga03be39f8ffe84a1bcc09bba60f45245c">CVC3::SearchEngineRules</a>.</p>

<p>Definition at line <a class="el" href="search__theorem__producer_8cpp_source.html#l00221">221</a> of file <a class="el" href="search__theorem__producer_8cpp_source.html">search_theorem_producer.cpp</a>.</p>

<p>References <a class="el" href="theorem__producer_8h_source.html#l00087">CHECK_PROOFS</a>, <a class="el" href="theorem__producer_8h_source.html#l00083">CHECK_SOUND</a>, <a class="el" href="theorem_8cpp_source.html#l00422">CVC3::Theorem::clearAllFlags()</a>, <a class="el" href="theorem__producer_8h_source.html#l00095">CVC3::TheoremProducer::d_em</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="expr__map_8h_source.html#l00305">CVC3::ExprHashMap&lt; Data &gt;::empty()</a>, <a class="el" href="expr__stream_8cpp_source.html#l00353">std::endl()</a>, <a class="el" href="proof_8h_source.html#l00046">CVC3::Proof::getExpr()</a>, <a class="el" href="theorem_8cpp_source.html#l00230">CVC3::Theorem::getExpr()</a>, <a class="el" href="theorem_8cpp_source.html#l00402">CVC3::Theorem::getProof()</a>, <a class="el" href="debug_8h_source.html#l00406">IF_DEBUG</a>, <a class="el" href="expr_8h_source.html#l00355">CVC3::Expr::isFalse()</a>, <a class="el" href="expr_8h_source.html#l01005">CVC3::Expr::isVar()</a>, <a class="el" href="theorem__producer_8cpp_source.html#l00052">CVC3::TheoremProducer::newLabel()</a>, <a class="el" href="theorem__producer_8cpp_source.html#l00075">CVC3::TheoremProducer::newPf()</a>, <a class="el" href="theorem__producer_8h_source.html#l00107">CVC3::TheoremProducer::newTheorem()</a>, <a class="el" href="kinds_8h_source.html#l00068">OR</a>, <a class="el" href="search__theorem__producer_8cpp_source.html#l00192">verifyConflict()</a>, <a class="el" href="theorem__producer_8h_source.html#l00162">CVC3::TheoremProducer::withAssumptions()</a>, and <a class="el" href="theorem__producer_8h_source.html#l00159">CVC3::TheoremProducer::withProof()</a>.</p>

</div>
</div>
<a class="anchor" id="a9be0036e770d071001f7afab845f0473"></a><!-- doxytag: member="CVC3::SearchEngineTheoremProducer::cutRule" ref="a9be0036e770d071001f7afab845f0473" args="(const std::vector&lt; Theorem &gt; &amp;thmsA, const Theorem &amp;as_prove_b)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> SearchEngineTheoremProducer::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> [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>Implements <a class="el" href="group__SE__Rules.html#gac1ef0687c058a3d4bd1d9ed88cd27abe">CVC3::SearchEngineRules</a>.</p>

<p>Definition at line <a class="el" href="search__theorem__producer_8cpp_source.html#l00375">375</a> of file <a class="el" href="search__theorem__producer_8cpp_source.html">search_theorem_producer.cpp</a>.</p>

<p>References <a class="el" href="assumptions_8cpp_source.html#l00200">CVC3::Assumptions::add()</a>, <a class="el" href="theorem__producer_8h_source.html#l00087">CHECK_PROOFS</a>, <a class="el" href="theorem__producer_8h_source.html#l00083">CHECK_SOUND</a>, <a class="el" href="theorem_8cpp_source.html#l00385">CVC3::Theorem::getAssumptionsRef()</a>, <a class="el" href="theorem_8cpp_source.html#l00230">CVC3::Theorem::getExpr()</a>, <a class="el" href="theorem_8cpp_source.html#l00402">CVC3::Theorem::getProof()</a>, <a class="el" href="theorem__producer_8cpp_source.html#l00075">CVC3::TheoremProducer::newPf()</a>, <a class="el" href="theorem__producer_8h_source.html#l00107">CVC3::TheoremProducer::newTheorem()</a>, <a class="el" href="theorem__producer_8h_source.html#l00162">CVC3::TheoremProducer::withAssumptions()</a>, and <a class="el" href="theorem__producer_8h_source.html#l00159">CVC3::TheoremProducer::withProof()</a>.</p>

</div>
</div>
<a class="anchor" id="af764cf6eae285f0dbd3d430b76c5e19d"></a><!-- doxytag: member="CVC3::SearchEngineTheoremProducer::unitProp" ref="af764cf6eae285f0dbd3d430b76c5e19d" args="(const std::vector&lt; Theorem &gt; &amp;thms, const Theorem &amp;clause, unsigned i)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> SearchEngineTheoremProducer::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> [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>Implements <a class="el" href="group__SE__Rules.html#gae7221bb8b77313a9b53a4beca9cc0aa0">CVC3::SearchEngineRules</a>.</p>

<p>Definition at line <a class="el" href="search__theorem__producer_8cpp_source.html#l00511">511</a> of file <a class="el" href="search__theorem__producer_8cpp_source.html">search_theorem_producer.cpp</a>.</p>

<p>References <a class="el" href="assumptions_8cpp_source.html#l00200">CVC3::Assumptions::add()</a>, <a class="el" href="theorem__producer_8h_source.html#l00087">CHECK_PROOFS</a>, <a class="el" href="theorem__producer_8h_source.html#l00083">CHECK_SOUND</a>, <a class="el" href="theorem_8cpp_source.html#l00230">CVC3::Theorem::getExpr()</a>, <a class="el" href="theorem_8cpp_source.html#l00402">CVC3::Theorem::getProof()</a>, <a class="el" href="cvc__util_8h_source.html#l00046">CVC3::int2string()</a>, <a class="el" href="expr_8h_source.html#l00420">CVC3::Expr::isNot()</a>, <a class="el" href="theorem__producer_8cpp_source.html#l00075">CVC3::TheoremProducer::newPf()</a>, <a class="el" href="theorem__producer_8h_source.html#l00107">CVC3::TheoremProducer::newTheorem()</a>, <a class="el" href="theorem_8h_source.html#l00404">CVC3::Theorem::toString()</a>, and <a class="el" href="theorem__producer_8h_source.html#l00159">CVC3::TheoremProducer::withProof()</a>.</p>

</div>
</div>
<a class="anchor" id="a55bf4e865a7a76e82c23d5fba566b853"></a><!-- doxytag: member="CVC3::SearchEngineTheoremProducer::conflictRule" ref="a55bf4e865a7a76e82c23d5fba566b853" args="(const std::vector&lt; Theorem &gt; &amp;thms, const Theorem &amp;clause)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> SearchEngineTheoremProducer::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> [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>Implements <a class="el" href="group__SE__Rules.html#ga9c74425b4471d411f58f16781951c441">CVC3::SearchEngineRules</a>.</p>

<p>Definition at line <a class="el" href="search__theorem__producer_8cpp_source.html#l01109">1109</a> of file <a class="el" href="search__theorem__producer_8cpp_source.html">search_theorem_producer.cpp</a>.</p>

<p>References <a class="el" href="assumptions_8cpp_source.html#l00200">CVC3::Assumptions::add()</a>, <a class="el" href="theorem__producer_8h_source.html#l00087">CHECK_PROOFS</a>, <a class="el" href="theorem__producer_8h_source.html#l00083">CHECK_SOUND</a>, <a class="el" href="theorem__producer_8h_source.html#l00095">CVC3::TheoremProducer::d_em</a>, <a class="el" href="expr__manager_8h_source.html#l00278">CVC3::ExprManager::falseExpr()</a>, <a class="el" href="theorem_8cpp_source.html#l00230">CVC3::Theorem::getExpr()</a>, <a class="el" href="theorem_8cpp_source.html#l00402">CVC3::Theorem::getProof()</a>, <a class="el" href="cvc__util_8h_source.html#l00046">CVC3::int2string()</a>, <a class="el" href="expr_8h_source.html#l00420">CVC3::Expr::isNot()</a>, <a class="el" href="theorem__producer_8cpp_source.html#l00075">CVC3::TheoremProducer::newPf()</a>, <a class="el" href="theorem__producer_8h_source.html#l00107">CVC3::TheoremProducer::newTheorem()</a>, <a class="el" href="theorem_8h_source.html#l00404">CVC3::Theorem::toString()</a>, and <a class="el" href="theorem__producer_8h_source.html#l00159">CVC3::TheoremProducer::withProof()</a>.</p>

</div>
</div>
<a class="anchor" id="a1d0f21b895fc25bff5dc653490a775c0"></a><!-- doxytag: member="CVC3::SearchEngineTheoremProducer::propAndrAF" ref="a1d0f21b895fc25bff5dc653490a775c0" args="(const Theorem &amp;andr_th, bool left, const Theorem &amp;b_th)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> SearchEngineTheoremProducer::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> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Implements <a class="el" href="group__SE__Rules.html#gaf5a18f8bcdc2f71632f05bcfe0bc533e">CVC3::SearchEngineRules</a>.</p>

<p>Definition at line <a class="el" href="search__theorem__producer_8cpp_source.html#l00564">564</a> of file <a class="el" href="search__theorem__producer_8cpp_source.html">search_theorem_producer.cpp</a>.</p>

<p>References <a class="el" href="kinds_8h_source.html#l00075">AND_R</a>, <a class="el" href="theorem__producer_8h_source.html#l00087">CHECK_PROOFS</a>, <a class="el" href="theorem__producer_8h_source.html#l00083">CHECK_SOUND</a>, <a class="el" href="theorem_8cpp_source.html#l00230">CVC3::Theorem::getExpr()</a>, <a class="el" href="theorem_8cpp_source.html#l00402">CVC3::Theorem::getProof()</a>, <a class="el" href="theorem__producer_8cpp_source.html#l00075">CVC3::TheoremProducer::newPf()</a>, <a class="el" href="theorem__producer_8h_source.html#l00107">CVC3::TheoremProducer::newTheorem()</a>, <a class="el" href="theorem_8h_source.html#l00252">CVC3::Theorem::refutes()</a>, and <a class="el" href="theorem__producer_8h_source.html#l00159">CVC3::TheoremProducer::withProof()</a>.</p>

</div>
</div>
<a class="anchor" id="a22c592b3807cddf270b7be995594d58a"></a><!-- doxytag: member="CVC3::SearchEngineTheoremProducer::propAndrAT" ref="a22c592b3807cddf270b7be995594d58a" args="(const Theorem &amp;andr_th, const Theorem &amp;l_th, const Theorem &amp;r_th)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> SearchEngineTheoremProducer::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> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Implements <a class="el" href="group__SE__Rules.html#gac7998bdcac234b0f3dc202d44b49c69c">CVC3::SearchEngineRules</a>.</p>

<p>Definition at line <a class="el" href="search__theorem__producer_8cpp_source.html#l00593">593</a> of file <a class="el" href="search__theorem__producer_8cpp_source.html">search_theorem_producer.cpp</a>.</p>

<p>References <a class="el" href="assumptions_8cpp_source.html#l00200">CVC3::Assumptions::add()</a>, <a class="el" href="kinds_8h_source.html#l00075">AND_R</a>, <a class="el" href="theorem__producer_8h_source.html#l00087">CHECK_PROOFS</a>, <a class="el" href="theorem__producer_8h_source.html#l00083">CHECK_SOUND</a>, <a class="el" href="theorem_8cpp_source.html#l00230">CVC3::Theorem::getExpr()</a>, <a class="el" href="theorem_8cpp_source.html#l00402">CVC3::Theorem::getProof()</a>, <a class="el" href="theorem__producer_8cpp_source.html#l00075">CVC3::TheoremProducer::newPf()</a>, <a class="el" href="theorem__producer_8h_source.html#l00107">CVC3::TheoremProducer::newTheorem()</a>, <a class="el" href="theorem_8h_source.html#l00259">CVC3::Theorem::proves()</a>, and <a class="el" href="theorem__producer_8h_source.html#l00159">CVC3::TheoremProducer::withProof()</a>.</p>

</div>
</div>
<a class="anchor" id="a1bdf01b6d0e85d8c91a2fa3aaf0704c6"></a><!-- doxytag: member="CVC3::SearchEngineTheoremProducer::propAndrLRT" ref="a1bdf01b6d0e85d8c91a2fa3aaf0704c6" args="(const Theorem &amp;andr_th, const Theorem &amp;a_th, Theorem *l_th, Theorem *r_th)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void SearchEngineTheoremProducer::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> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Implements <a class="el" href="group__SE__Rules.html#gad0150b04c296a6b8e05579c1dbd365f8">CVC3::SearchEngineRules</a>.</p>

<p>Definition at line <a class="el" href="search__theorem__producer_8cpp_source.html#l00623">623</a> of file <a class="el" href="search__theorem__producer_8cpp_source.html">search_theorem_producer.cpp</a>.</p>

<p>References <a class="el" href="kinds_8h_source.html#l00075">AND_R</a>, <a class="el" href="theorem__producer_8h_source.html#l00087">CHECK_PROOFS</a>, <a class="el" href="theorem__producer_8h_source.html#l00083">CHECK_SOUND</a>, <a class="el" href="theorem_8cpp_source.html#l00230">CVC3::Theorem::getExpr()</a>, <a class="el" href="theorem_8cpp_source.html#l00402">CVC3::Theorem::getProof()</a>, <a class="el" href="theorem__producer_8cpp_source.html#l00075">CVC3::TheoremProducer::newPf()</a>, <a class="el" href="theorem__producer_8h_source.html#l00107">CVC3::TheoremProducer::newTheorem()</a>, <a class="el" href="theorem_8h_source.html#l00259">CVC3::Theorem::proves()</a>, and <a class="el" href="theorem__producer_8h_source.html#l00159">CVC3::TheoremProducer::withProof()</a>.</p>

</div>
</div>
<a class="anchor" id="a373b85c528799a04c9997f8f0b1349d6"></a><!-- doxytag: member="CVC3::SearchEngineTheoremProducer::propAndrLF" ref="a373b85c528799a04c9997f8f0b1349d6" args="(const Theorem &amp;andr_th, const Theorem &amp;a_th, const Theorem &amp;r_th)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> SearchEngineTheoremProducer::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> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Implements <a class="el" href="group__SE__Rules.html#ga8c8fc73c8b0413f5ca3fa7d72e687f5b">CVC3::SearchEngineRules</a>.</p>

<p>Definition at line <a class="el" href="search__theorem__producer_8cpp_source.html#l00651">651</a> of file <a class="el" href="search__theorem__producer_8cpp_source.html">search_theorem_producer.cpp</a>.</p>

<p>References <a class="el" href="assumptions_8cpp_source.html#l00200">CVC3::Assumptions::add()</a>, <a class="el" href="kinds_8h_source.html#l00075">AND_R</a>, <a class="el" href="theorem__producer_8h_source.html#l00087">CHECK_PROOFS</a>, <a class="el" href="theorem__producer_8h_source.html#l00083">CHECK_SOUND</a>, <a class="el" href="theorem_8cpp_source.html#l00230">CVC3::Theorem::getExpr()</a>, <a class="el" href="theorem_8cpp_source.html#l00402">CVC3::Theorem::getProof()</a>, <a class="el" href="theorem__producer_8cpp_source.html#l00075">CVC3::TheoremProducer::newPf()</a>, <a class="el" href="theorem__producer_8h_source.html#l00107">CVC3::TheoremProducer::newTheorem()</a>, <a class="el" href="theorem_8h_source.html#l00259">CVC3::Theorem::proves()</a>, <a class="el" href="theorem_8h_source.html#l00252">CVC3::Theorem::refutes()</a>, and <a class="el" href="theorem__producer_8h_source.html#l00159">CVC3::TheoremProducer::withProof()</a>.</p>

</div>
</div>
<a class="anchor" id="a948eaf2519eb12dd8f76c3c890babd78"></a><!-- doxytag: member="CVC3::SearchEngineTheoremProducer::propAndrRF" ref="a948eaf2519eb12dd8f76c3c890babd78" args="(const Theorem &amp;andr_th, const Theorem &amp;a_th, const Theorem &amp;l_th)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> SearchEngineTheoremProducer::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> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Implements <a class="el" href="group__SE__Rules.html#ga1158c41e7b7ed199271391d4404ce1b2">CVC3::SearchEngineRules</a>.</p>

<p>Definition at line <a class="el" href="search__theorem__producer_8cpp_source.html#l00681">681</a> of file <a class="el" href="search__theorem__producer_8cpp_source.html">search_theorem_producer.cpp</a>.</p>

<p>References <a class="el" href="assumptions_8cpp_source.html#l00200">CVC3::Assumptions::add()</a>, <a class="el" href="kinds_8h_source.html#l00075">AND_R</a>, <a class="el" href="theorem__producer_8h_source.html#l00087">CHECK_PROOFS</a>, <a class="el" href="theorem__producer_8h_source.html#l00083">CHECK_SOUND</a>, <a class="el" href="theorem_8cpp_source.html#l00230">CVC3::Theorem::getExpr()</a>, <a class="el" href="theorem_8cpp_source.html#l00402">CVC3::Theorem::getProof()</a>, <a class="el" href="theorem__producer_8cpp_source.html#l00075">CVC3::TheoremProducer::newPf()</a>, <a class="el" href="theorem__producer_8h_source.html#l00107">CVC3::TheoremProducer::newTheorem()</a>, <a class="el" href="theorem_8h_source.html#l00259">CVC3::Theorem::proves()</a>, <a class="el" href="theorem_8h_source.html#l00252">CVC3::Theorem::refutes()</a>, and <a class="el" href="theorem__producer_8h_source.html#l00159">CVC3::TheoremProducer::withProof()</a>.</p>

</div>
</div>
<a class="anchor" id="a8b6dd7f1001b52a5be21914e1ecf6da0"></a><!-- doxytag: member="CVC3::SearchEngineTheoremProducer::confAndrAT" ref="a8b6dd7f1001b52a5be21914e1ecf6da0" args="(const Theorem &amp;andr_th, const Theorem &amp;a_th, bool left, const Theorem &amp;b_th)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> SearchEngineTheoremProducer::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> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Implements <a class="el" href="group__SE__Rules.html#ga09d987f2d81c19d798d7185b125879b6">CVC3::SearchEngineRules</a>.</p>

<p>Definition at line <a class="el" href="search__theorem__producer_8cpp_source.html#l00711">711</a> of file <a class="el" href="search__theorem__producer_8cpp_source.html">search_theorem_producer.cpp</a>.</p>

<p>References <a class="el" href="assumptions_8cpp_source.html#l00200">CVC3::Assumptions::add()</a>, <a class="el" href="kinds_8h_source.html#l00075">AND_R</a>, <a class="el" href="theorem__producer_8h_source.html#l00087">CHECK_PROOFS</a>, <a class="el" href="theorem__producer_8h_source.html#l00083">CHECK_SOUND</a>, <a class="el" href="theorem__producer_8h_source.html#l00095">CVC3::TheoremProducer::d_em</a>, <a class="el" href="expr__manager_8h_source.html#l00278">CVC3::ExprManager::falseExpr()</a>, <a class="el" href="theorem_8cpp_source.html#l00230">CVC3::Theorem::getExpr()</a>, <a class="el" href="theorem_8cpp_source.html#l00402">CVC3::Theorem::getProof()</a>, <a class="el" href="theorem__producer_8cpp_source.html#l00075">CVC3::TheoremProducer::newPf()</a>, <a class="el" href="theorem__producer_8h_source.html#l00107">CVC3::TheoremProducer::newTheorem()</a>, <a class="el" href="theorem_8h_source.html#l00259">CVC3::Theorem::proves()</a>, <a class="el" href="theorem_8h_source.html#l00252">CVC3::Theorem::refutes()</a>, and <a class="el" href="theorem__producer_8h_source.html#l00159">CVC3::TheoremProducer::withProof()</a>.</p>

</div>
</div>
<a class="anchor" id="a09acd80b1c336ac225de0a71bee0d4c8"></a><!-- doxytag: member="CVC3::SearchEngineTheoremProducer::confAndrAF" ref="a09acd80b1c336ac225de0a71bee0d4c8" args="(const Theorem &amp;andr_th, const Theorem &amp;a_th, const Theorem &amp;l_th, const Theorem &amp;r_th)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> SearchEngineTheoremProducer::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> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Implements <a class="el" href="group__SE__Rules.html#gadb878db4f9d24a21b62f50df2713ecca">CVC3::SearchEngineRules</a>.</p>

<p>Definition at line <a class="el" href="search__theorem__producer_8cpp_source.html#l00744">744</a> of file <a class="el" href="search__theorem__producer_8cpp_source.html">search_theorem_producer.cpp</a>.</p>

<p>References <a class="el" href="assumptions_8cpp_source.html#l00200">CVC3::Assumptions::add()</a>, <a class="el" href="kinds_8h_source.html#l00075">AND_R</a>, <a class="el" href="theorem__producer_8h_source.html#l00087">CHECK_PROOFS</a>, <a class="el" href="theorem__producer_8h_source.html#l00083">CHECK_SOUND</a>, <a class="el" href="theorem__producer_8h_source.html#l00095">CVC3::TheoremProducer::d_em</a>, <a class="el" href="expr__manager_8h_source.html#l00278">CVC3::ExprManager::falseExpr()</a>, <a class="el" href="theorem_8cpp_source.html#l00230">CVC3::Theorem::getExpr()</a>, <a class="el" href="theorem_8cpp_source.html#l00402">CVC3::Theorem::getProof()</a>, <a class="el" href="theorem__producer_8cpp_source.html#l00075">CVC3::TheoremProducer::newPf()</a>, <a class="el" href="theorem__producer_8h_source.html#l00107">CVC3::TheoremProducer::newTheorem()</a>, <a class="el" href="theorem_8h_source.html#l00259">CVC3::Theorem::proves()</a>, <a class="el" href="theorem_8h_source.html#l00252">CVC3::Theorem::refutes()</a>, <a class="el" href="theorem__producer_8h_source.html#l00162">CVC3::TheoremProducer::withAssumptions()</a>, and <a class="el" href="theorem__producer_8h_source.html#l00159">CVC3::TheoremProducer::withProof()</a>.</p>

</div>
</div>
<a class="anchor" id="afb6d1f50a0b2cf48bf98517731160595"></a><!-- doxytag: member="CVC3::SearchEngineTheoremProducer::propIffr" ref="afb6d1f50a0b2cf48bf98517731160595" args="(const Theorem &amp;iffr_th, int p, const Theorem &amp;a_th, const Theorem &amp;b_th)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> SearchEngineTheoremProducer::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> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Implements <a class="el" href="group__SE__Rules.html#ga9bc3e3eab4b1fe4fb2c0a0172ca25ee9">CVC3::SearchEngineRules</a>.</p>

<p>Definition at line <a class="el" href="search__theorem__producer_8cpp_source.html#l00782">782</a> of file <a class="el" href="search__theorem__producer_8cpp_source.html">search_theorem_producer.cpp</a>.</p>

<p>References <a class="el" href="assumptions_8cpp_source.html#l00200">CVC3::Assumptions::add()</a>, <a class="el" href="theorem__producer_8h_source.html#l00087">CHECK_PROOFS</a>, <a class="el" href="theorem__producer_8h_source.html#l00083">CHECK_SOUND</a>, <a class="el" href="theorem_8cpp_source.html#l00230">CVC3::Theorem::getExpr()</a>, <a class="el" href="theorem_8cpp_source.html#l00402">CVC3::Theorem::getProof()</a>, <a class="el" href="kinds_8h_source.html#l00076">IFF_R</a>, <a class="el" href="cvc__util_8h_source.html#l00046">CVC3::int2string()</a>, <a class="el" href="theorem__producer_8cpp_source.html#l00075">CVC3::TheoremProducer::newPf()</a>, <a class="el" href="theorem__producer_8h_source.html#l00107">CVC3::TheoremProducer::newTheorem()</a>, <a class="el" href="theorem_8h_source.html#l00259">CVC3::Theorem::proves()</a>, <a class="el" href="theorem_8h_source.html#l00252">CVC3::Theorem::refutes()</a>, <a class="el" href="theorem__producer_8h_source.html#l00162">CVC3::TheoremProducer::withAssumptions()</a>, and <a class="el" href="theorem__producer_8h_source.html#l00159">CVC3::TheoremProducer::withProof()</a>.</p>

</div>
</div>
<a class="anchor" id="afc1db7951ca830c313d2cef522e45f25"></a><!-- doxytag: member="CVC3::SearchEngineTheoremProducer::confIffr" ref="afc1db7951ca830c313d2cef522e45f25" args="(const Theorem &amp;iffr_th, const Theorem &amp;i_th, const Theorem &amp;l_th, const Theorem &amp;r_th)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> SearchEngineTheoremProducer::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> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Implements <a class="el" href="group__SE__Rules.html#gaef31b1a5f6d6e9f270a1ab28ee361b14">CVC3::SearchEngineRules</a>.</p>

<p>Definition at line <a class="el" href="search__theorem__producer_8cpp_source.html#l00834">834</a> of file <a class="el" href="search__theorem__producer_8cpp_source.html">search_theorem_producer.cpp</a>.</p>

<p>References <a class="el" href="assumptions_8cpp_source.html#l00200">CVC3::Assumptions::add()</a>, <a class="el" href="theorem__producer_8h_source.html#l00087">CHECK_PROOFS</a>, <a class="el" href="theorem__producer_8h_source.html#l00083">CHECK_SOUND</a>, <a class="el" href="theorem__producer_8h_source.html#l00095">CVC3::TheoremProducer::d_em</a>, <a class="el" href="expr__manager_8h_source.html#l00278">CVC3::ExprManager::falseExpr()</a>, <a class="el" href="theorem_8cpp_source.html#l00230">CVC3::Theorem::getExpr()</a>, <a class="el" href="theorem_8cpp_source.html#l00402">CVC3::Theorem::getProof()</a>, <a class="el" href="kinds_8h_source.html#l00076">IFF_R</a>, <a class="el" href="theorem__producer_8cpp_source.html#l00075">CVC3::TheoremProducer::newPf()</a>, <a class="el" href="theorem__producer_8h_source.html#l00107">CVC3::TheoremProducer::newTheorem()</a>, <a class="el" href="theorem_8h_source.html#l00259">CVC3::Theorem::proves()</a>, <a class="el" href="theorem_8h_source.html#l00252">CVC3::Theorem::refutes()</a>, <a class="el" href="theorem__producer_8h_source.html#l00162">CVC3::TheoremProducer::withAssumptions()</a>, and <a class="el" href="theorem__producer_8h_source.html#l00159">CVC3::TheoremProducer::withProof()</a>.</p>

</div>
</div>
<a class="anchor" id="a9964535eb830bbc87e91f40e71333dfa"></a><!-- doxytag: member="CVC3::SearchEngineTheoremProducer::propIterIte" ref="a9964535eb830bbc87e91f40e71333dfa" args="(const Theorem &amp;iter_th, bool left, const Theorem &amp;if_th, const Theorem &amp;then_th)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> SearchEngineTheoremProducer::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> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Implements <a class="el" href="group__SE__Rules.html#ga979ad08269cd2799993628eaaccc146f">CVC3::SearchEngineRules</a>.</p>

<p>Definition at line <a class="el" href="search__theorem__producer_8cpp_source.html#l00881">881</a> of file <a class="el" href="search__theorem__producer_8cpp_source.html">search_theorem_producer.cpp</a>.</p>

<p>References <a class="el" href="assumptions_8cpp_source.html#l00200">CVC3::Assumptions::add()</a>, <a class="el" href="theorem__producer_8h_source.html#l00087">CHECK_PROOFS</a>, <a class="el" href="theorem__producer_8h_source.html#l00083">CHECK_SOUND</a>, <a class="el" href="theorem_8cpp_source.html#l00230">CVC3::Theorem::getExpr()</a>, <a class="el" href="theorem_8cpp_source.html#l00402">CVC3::Theorem::getProof()</a>, <a class="el" href="kinds_8h_source.html#l00077">ITE_R</a>, <a class="el" href="theorem__producer_8cpp_source.html#l00075">CVC3::TheoremProducer::newPf()</a>, <a class="el" href="theorem__producer_8h_source.html#l00107">CVC3::TheoremProducer::newTheorem()</a>, <a class="el" href="theorem_8h_source.html#l00259">CVC3::Theorem::proves()</a>, <a class="el" href="theorem_8h_source.html#l00252">CVC3::Theorem::refutes()</a>, <a class="el" href="theorem__producer_8h_source.html#l00162">CVC3::TheoremProducer::withAssumptions()</a>, and <a class="el" href="theorem__producer_8h_source.html#l00159">CVC3::TheoremProducer::withProof()</a>.</p>

</div>
</div>
<a class="anchor" id="a9c5271d8f47048c4573e21bfd21bc8a7"></a><!-- doxytag: member="CVC3::SearchEngineTheoremProducer::propIterIfThen" ref="a9c5271d8f47048c4573e21bfd21bc8a7" args="(const Theorem &amp;iter_th, bool left, const Theorem &amp;ite_th, const Theorem &amp;then_th, Theorem *if_th, Theorem *else_th)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void SearchEngineTheoremProducer::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> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Implements <a class="el" href="group__SE__Rules.html#gad35217bbc9f4a27b4d23af173e9ea2c7">CVC3::SearchEngineRules</a>.</p>

<p>Definition at line <a class="el" href="search__theorem__producer_8cpp_source.html#l00923">923</a> of file <a class="el" href="search__theorem__producer_8cpp_source.html">search_theorem_producer.cpp</a>.</p>

<p>References <a class="el" href="assumptions_8cpp_source.html#l00200">CVC3::Assumptions::add()</a>, <a class="el" href="theorem__producer_8h_source.html#l00087">CHECK_PROOFS</a>, <a class="el" href="theorem__producer_8h_source.html#l00083">CHECK_SOUND</a>, <a class="el" href="theorem_8cpp_source.html#l00230">CVC3::Theorem::getExpr()</a>, <a class="el" href="theorem_8cpp_source.html#l00402">CVC3::Theorem::getProof()</a>, <a class="el" href="kinds_8h_source.html#l00077">ITE_R</a>, <a class="el" href="theorem__producer_8cpp_source.html#l00075">CVC3::TheoremProducer::newPf()</a>, <a class="el" href="theorem__producer_8h_source.html#l00107">CVC3::TheoremProducer::newTheorem()</a>, <a class="el" href="theorem_8h_source.html#l00259">CVC3::Theorem::proves()</a>, <a class="el" href="theorem_8h_source.html#l00252">CVC3::Theorem::refutes()</a>, <a class="el" href="theorem__producer_8h_source.html#l00162">CVC3::TheoremProducer::withAssumptions()</a>, and <a class="el" href="theorem__producer_8h_source.html#l00159">CVC3::TheoremProducer::withProof()</a>.</p>

</div>
</div>
<a class="anchor" id="aa3a9dce562278a5383f4551d95b12c3a"></a><!-- doxytag: member="CVC3::SearchEngineTheoremProducer::propIterThen" ref="aa3a9dce562278a5383f4551d95b12c3a" args="(const Theorem &amp;iter_th, const Theorem &amp;ite_th, const Theorem &amp;if_th)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> SearchEngineTheoremProducer::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> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Implements <a class="el" href="group__SE__Rules.html#gab7b07d3b350b2cc7f3f596233abb54ea">CVC3::SearchEngineRules</a>.</p>

<p>Definition at line <a class="el" href="search__theorem__producer_8cpp_source.html#l00970">970</a> of file <a class="el" href="search__theorem__producer_8cpp_source.html">search_theorem_producer.cpp</a>.</p>

<p>References <a class="el" href="assumptions_8cpp_source.html#l00200">CVC3::Assumptions::add()</a>, <a class="el" href="theorem__producer_8h_source.html#l00087">CHECK_PROOFS</a>, <a class="el" href="theorem__producer_8h_source.html#l00083">CHECK_SOUND</a>, <a class="el" href="theorem_8cpp_source.html#l00230">CVC3::Theorem::getExpr()</a>, <a class="el" href="theorem_8cpp_source.html#l00402">CVC3::Theorem::getProof()</a>, <a class="el" href="kinds_8h_source.html#l00077">ITE_R</a>, <a class="el" href="theorem__producer_8cpp_source.html#l00075">CVC3::TheoremProducer::newPf()</a>, <a class="el" href="theorem__producer_8h_source.html#l00107">CVC3::TheoremProducer::newTheorem()</a>, <a class="el" href="theorem_8h_source.html#l00259">CVC3::Theorem::proves()</a>, <a class="el" href="theorem_8h_source.html#l00252">CVC3::Theorem::refutes()</a>, <a class="el" href="theorem__producer_8h_source.html#l00162">CVC3::TheoremProducer::withAssumptions()</a>, and <a class="el" href="theorem__producer_8h_source.html#l00159">CVC3::TheoremProducer::withProof()</a>.</p>

</div>
</div>
<a class="anchor" id="aaf56546de0c7c7bbe0b573477d412bf7"></a><!-- doxytag: member="CVC3::SearchEngineTheoremProducer::confIterThenElse" ref="aaf56546de0c7c7bbe0b573477d412bf7" args="(const Theorem &amp;iter_th, const Theorem &amp;ite_th, const Theorem &amp;then_th, const Theorem &amp;else_th)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> SearchEngineTheoremProducer::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> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Implements <a class="el" href="group__SE__Rules.html#gaae491d08949a1ec57981526c8e960119">CVC3::SearchEngineRules</a>.</p>

<p>Definition at line <a class="el" href="search__theorem__producer_8cpp_source.html#l01012">1012</a> of file <a class="el" href="search__theorem__producer_8cpp_source.html">search_theorem_producer.cpp</a>.</p>

<p>References <a class="el" href="assumptions_8cpp_source.html#l00200">CVC3::Assumptions::add()</a>, <a class="el" href="theorem__producer_8h_source.html#l00087">CHECK_PROOFS</a>, <a class="el" href="theorem__producer_8h_source.html#l00083">CHECK_SOUND</a>, <a class="el" href="theorem__producer_8h_source.html#l00095">CVC3::TheoremProducer::d_em</a>, <a class="el" href="expr__manager_8h_source.html#l00278">CVC3::ExprManager::falseExpr()</a>, <a class="el" href="theorem_8cpp_source.html#l00230">CVC3::Theorem::getExpr()</a>, <a class="el" href="theorem_8cpp_source.html#l00402">CVC3::Theorem::getProof()</a>, <a class="el" href="kinds_8h_source.html#l00077">ITE_R</a>, <a class="el" href="theorem__producer_8cpp_source.html#l00075">CVC3::TheoremProducer::newPf()</a>, <a class="el" href="theorem__producer_8h_source.html#l00107">CVC3::TheoremProducer::newTheorem()</a>, <a class="el" href="theorem_8h_source.html#l00259">CVC3::Theorem::proves()</a>, <a class="el" href="theorem_8h_source.html#l00252">CVC3::Theorem::refutes()</a>, <a class="el" href="theorem__producer_8h_source.html#l00162">CVC3::TheoremProducer::withAssumptions()</a>, and <a class="el" href="theorem__producer_8h_source.html#l00159">CVC3::TheoremProducer::withProof()</a>.</p>

</div>
</div>
<a class="anchor" id="aad519346f53864cc21109200379a3698"></a><!-- doxytag: member="CVC3::SearchEngineTheoremProducer::confIterIfThen" ref="aad519346f53864cc21109200379a3698" args="(const Theorem &amp;iter_th, bool left, const Theorem &amp;ite_th, const Theorem &amp;if_th, const Theorem &amp;then_th)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> SearchEngineTheoremProducer::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> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Implements <a class="el" href="group__SE__Rules.html#ga771471d7cbb2253bc32f2a8018bd7182">CVC3::SearchEngineRules</a>.</p>

<p>Definition at line <a class="el" href="search__theorem__producer_8cpp_source.html#l01059">1059</a> of file <a class="el" href="search__theorem__producer_8cpp_source.html">search_theorem_producer.cpp</a>.</p>

<p>References <a class="el" href="assumptions_8cpp_source.html#l00200">CVC3::Assumptions::add()</a>, <a class="el" href="theorem__producer_8h_source.html#l00087">CHECK_PROOFS</a>, <a class="el" href="theorem__producer_8h_source.html#l00083">CHECK_SOUND</a>, <a class="el" href="theorem__producer_8h_source.html#l00095">CVC3::TheoremProducer::d_em</a>, <a class="el" href="expr__manager_8h_source.html#l00278">CVC3::ExprManager::falseExpr()</a>, <a class="el" href="theorem_8cpp_source.html#l00230">CVC3::Theorem::getExpr()</a>, <a class="el" href="theorem_8cpp_source.html#l00402">CVC3::Theorem::getProof()</a>, <a class="el" href="kinds_8h_source.html#l00077">ITE_R</a>, <a class="el" href="theorem__producer_8cpp_source.html#l00075">CVC3::TheoremProducer::newPf()</a>, <a class="el" href="theorem__producer_8h_source.html#l00107">CVC3::TheoremProducer::newTheorem()</a>, <a class="el" href="theorem_8h_source.html#l00259">CVC3::Theorem::proves()</a>, <a class="el" href="theorem_8h_source.html#l00252">CVC3::Theorem::refutes()</a>, <a class="el" href="theorem__producer_8h_source.html#l00162">CVC3::TheoremProducer::withAssumptions()</a>, and <a class="el" href="theorem__producer_8h_source.html#l00159">CVC3::TheoremProducer::withProof()</a>.</p>

</div>
</div>
<a class="anchor" id="af38d03174800bca0baba91f4e8288b0f"></a><!-- doxytag: member="CVC3::SearchEngineTheoremProducer::andCNFRule" ref="af38d03174800bca0baba91f4e8288b0f" args="(const Theorem &amp;thm)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> SearchEngineTheoremProducer::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> [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>Implements <a class="el" href="group__SE__Rules.html#gab183ff7d1013729d0d3e2dbe28686e3c">CVC3::SearchEngineRules</a>.</p>

<p>Definition at line <a class="el" href="search__theorem__producer_8cpp_source.html#l01160">1160</a> of file <a class="el" href="search__theorem__producer_8cpp_source.html">search_theorem_producer.cpp</a>.</p>

<p>References <a class="el" href="kinds_8h_source.html#l00067">AND</a>, and <a class="el" href="search__theorem__producer_8cpp_source.html#l01226">opCNFRule()</a>.</p>

</div>
</div>
<a class="anchor" id="a3cf33a58eee64dc744015e8657adc40a"></a><!-- doxytag: member="CVC3::SearchEngineTheoremProducer::orCNFRule" ref="a3cf33a58eee64dc744015e8657adc40a" args="(const Theorem &amp;thm)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> SearchEngineTheoremProducer::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> [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>Implements <a class="el" href="group__SE__Rules.html#ga7086aa693d2a3421bc349eca8e9938ba">CVC3::SearchEngineRules</a>.</p>

<p>Definition at line <a class="el" href="search__theorem__producer_8cpp_source.html#l01165">1165</a> of file <a class="el" href="search__theorem__producer_8cpp_source.html">search_theorem_producer.cpp</a>.</p>

<p>References <a class="el" href="search__theorem__producer_8cpp_source.html#l01226">opCNFRule()</a>, and <a class="el" href="kinds_8h_source.html#l00068">OR</a>.</p>

</div>
</div>
<a class="anchor" id="a15cbb86a5a77422c7d8c59384488f9e1"></a><!-- doxytag: member="CVC3::SearchEngineTheoremProducer::impCNFRule" ref="a15cbb86a5a77422c7d8c59384488f9e1" args="(const Theorem &amp;thm)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> SearchEngineTheoremProducer::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> [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>Implements <a class="el" href="group__SE__Rules.html#ga25f7b95c8ebce2be117d03a1c93d715f">CVC3::SearchEngineRules</a>.</p>

<p>Definition at line <a class="el" href="search__theorem__producer_8cpp_source.html#l01170">1170</a> of file <a class="el" href="search__theorem__producer_8cpp_source.html">search_theorem_producer.cpp</a>.</p>

<p>References <a class="el" href="kinds_8h_source.html#l00071">IMPLIES</a>, and <a class="el" href="search__theorem__producer_8cpp_source.html#l01226">opCNFRule()</a>.</p>

</div>
</div>
<a class="anchor" id="a47468ab81771bdb7af900bd2f907f818"></a><!-- doxytag: member="CVC3::SearchEngineTheoremProducer::iffCNFRule" ref="a47468ab81771bdb7af900bd2f907f818" args="(const Theorem &amp;thm)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> SearchEngineTheoremProducer::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> [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>Implements <a class="el" href="group__SE__Rules.html#ga4ab7606744594db9050cb83fe6b73668">CVC3::SearchEngineRules</a>.</p>

<p>Definition at line <a class="el" href="search__theorem__producer_8cpp_source.html#l01175">1175</a> of file <a class="el" href="search__theorem__producer_8cpp_source.html">search_theorem_producer.cpp</a>.</p>

<p>References <a class="el" href="kinds_8h_source.html#l00070">IFF</a>, and <a class="el" href="search__theorem__producer_8cpp_source.html#l01226">opCNFRule()</a>.</p>

</div>
</div>
<a class="anchor" id="a1c37ba3237f04f7536164166c7f0156e"></a><!-- doxytag: member="CVC3::SearchEngineTheoremProducer::iteCNFRule" ref="a1c37ba3237f04f7536164166c7f0156e" args="(const Theorem &amp;thm)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> SearchEngineTheoremProducer::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> [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>Implements <a class="el" href="group__SE__Rules.html#gae9263cbcedf5def99b3c49ee6978497a">CVC3::SearchEngineRules</a>.</p>

<p>Definition at line <a class="el" href="search__theorem__producer_8cpp_source.html#l01180">1180</a> of file <a class="el" href="search__theorem__producer_8cpp_source.html">search_theorem_producer.cpp</a>.</p>

<p>References <a class="el" href="kinds_8h_source.html#l00081">ITE</a>, and <a class="el" href="search__theorem__producer_8cpp_source.html#l01226">opCNFRule()</a>.</p>

</div>
</div>
<a class="anchor" id="a9ec94eac3bdabe251a4147b2830a2f50"></a><!-- doxytag: member="CVC3::SearchEngineTheoremProducer::iteToClauses" ref="a9ec94eac3bdabe251a4147b2830a2f50" args="(const Theorem &amp;ite)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> SearchEngineTheoremProducer::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> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

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

<p>Implements <a class="el" href="group__SE__Rules.html#ga9b9c0fe62505477b6ec9774c1b5b2494">CVC3::SearchEngineRules</a>.</p>

<p>Definition at line <a class="el" href="search__theorem__producer_8cpp_source.html#l01186">1186</a> of file <a class="el" href="search__theorem__producer_8cpp_source.html">search_theorem_producer.cpp</a>.</p>

<p>References <a class="el" href="theorem__producer_8h_source.html#l00087">CHECK_PROOFS</a>, <a class="el" href="theorem__producer_8h_source.html#l00083">CHECK_SOUND</a>, <a class="el" href="theorem_8cpp_source.html#l00385">CVC3::Theorem::getAssumptionsRef()</a>, <a class="el" href="theorem_8cpp_source.html#l00230">CVC3::Theorem::getExpr()</a>, <a class="el" href="theorem_8cpp_source.html#l00402">CVC3::Theorem::getProof()</a>, <a class="el" href="expr_8h_source.html#l01259">CVC3::Expr::getType()</a>, <a class="el" href="type_8h_source.html#l00060">CVC3::Type::isBool()</a>, <a class="el" href="expr_8h_source.html#l00423">CVC3::Expr::isITE()</a>, <a class="el" href="expr_8h_source.html#l00937">CVC3::Expr::negate()</a>, <a class="el" href="theorem__producer_8cpp_source.html#l00075">CVC3::TheoremProducer::newPf()</a>, <a class="el" href="theorem__producer_8h_source.html#l00107">CVC3::TheoremProducer::newTheorem()</a>, <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>, and <a class="el" href="theorem__producer_8h_source.html#l00159">CVC3::TheoremProducer::withProof()</a>.</p>

</div>
</div>
<a class="anchor" id="ab608d81ddbbce71638fcce0d119c63d1"></a><!-- doxytag: member="CVC3::SearchEngineTheoremProducer::iffToClauses" ref="ab608d81ddbbce71638fcce0d119c63d1" args="(const Theorem &amp;iff)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> SearchEngineTheoremProducer::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> [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>Implements <a class="el" href="group__SE__Rules.html#ga356cd5a36ede50921fbaa3bc7e222d4f">CVC3::SearchEngineRules</a>.</p>

<p>Definition at line <a class="el" href="search__theorem__producer_8cpp_source.html#l01206">1206</a> of file <a class="el" href="search__theorem__producer_8cpp_source.html">search_theorem_producer.cpp</a>.</p>

<p>References <a class="el" href="theorem__producer_8h_source.html#l00087">CHECK_PROOFS</a>, <a class="el" href="theorem__producer_8h_source.html#l00083">CHECK_SOUND</a>, <a class="el" href="theorem_8cpp_source.html#l00385">CVC3::Theorem::getAssumptionsRef()</a>, <a class="el" href="theorem_8cpp_source.html#l00230">CVC3::Theorem::getExpr()</a>, <a class="el" href="theorem_8cpp_source.html#l00240">CVC3::Theorem::getLHS()</a>, <a class="el" href="theorem_8cpp_source.html#l00402">CVC3::Theorem::getProof()</a>, <a class="el" href="theorem_8cpp_source.html#l00246">CVC3::Theorem::getRHS()</a>, <a class="el" href="expr_8h_source.html#l01259">CVC3::Expr::getType()</a>, <a class="el" href="type_8h_source.html#l00060">CVC3::Type::isBool()</a>, <a class="el" href="theorem_8cpp_source.html#l00224">CVC3::Theorem::isRewrite()</a>, <a class="el" href="expr_8h_source.html#l00937">CVC3::Expr::negate()</a>, <a class="el" href="theorem__producer_8cpp_source.html#l00075">CVC3::TheoremProducer::newPf()</a>, <a class="el" href="theorem__producer_8h_source.html#l00107">CVC3::TheoremProducer::newTheorem()</a>, <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>, and <a class="el" href="theorem__producer_8h_source.html#l00159">CVC3::TheoremProducer::withProof()</a>.</p>

</div>
</div>
<a class="anchor" id="a211e687727973cff1b055a7302d562ae"></a><!-- doxytag: member="CVC3::SearchEngineTheoremProducer::satProof" ref="a211e687727973cff1b055a7302d562ae" args="(const Expr &amp;queryExpr, const Proof &amp;satProof)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> SearchEngineTheoremProducer::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> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Implements <a class="el" href="group__SE__Rules.html#ga55daf0bf95530208f5abf9484ded9055">CVC3::SearchEngineRules</a>.</p>

<p>Definition at line <a class="el" href="search__theorem__producer_8cpp_source.html#l01419">1419</a> of file <a class="el" href="search__theorem__producer_8cpp_source.html">search_theorem_producer.cpp</a>.</p>

<p>References <a class="el" href="search__theorem__producer_8h_source.html#l00036">d_commonRules</a>, <a class="el" href="theorem__producer_8h_source.html#l00094">CVC3::TheoremProducer::d_tm</a>, <a class="el" href="assumptions_8h_source.html#l00083">CVC3::Assumptions::emptyAssump()</a>, <a class="el" href="expr__stream_8cpp_source.html#l00353">std::endl()</a>, <a class="el" href="proof_8h_source.html#l00046">CVC3::Proof::getExpr()</a>, <a class="el" href="theorem__manager_8h_source.html#l00077">CVC3::TheoremManager::getFlags()</a>, <a class="el" href="group__SE.html#ga43f52699cddc6e0feffffaf22424fe47">CVC3::SearchEngine::getUserAssumptions()</a>, <a class="el" href="search__theorem__producer_8cpp_source.html#l00052">lfsc_called</a>, <a class="el" href="theorem__producer_8cpp_source.html#l00075">CVC3::TheoremProducer::newPf()</a>, <a class="el" href="theorem__producer_8h_source.html#l00107">CVC3::TheoremProducer::newTheorem()</a>, <a class="el" href="LFSCPrinter_8cpp_source.html#l00026">LFSCPrinter::print_LFSC()</a>, <a class="el" href="search__theorem__producer_8cpp_source.html#l00053">search_engine</a>, and <a class="el" href="theorem__producer_8h_source.html#l00159">CVC3::TheoremProducer::withProof()</a>.</p>

<p>Referenced by <a class="el" href="search__theorem__producer_8cpp_source.html#l00074">proofByContradiction()</a>.</p>

</div>
</div>
<a class="anchor" id="afd9835d232286f451200d637ba995e75"></a><!-- doxytag: member="CVC3::SearchEngineTheoremProducer::opCNFRule" ref="afd9835d232286f451200d637ba995e75" args="(const Theorem &amp;thm, int kind, const std::string &amp;ruleName)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> SearchEngineTheoremProducer::opCNFRule </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">int&#160;</td>
          <td class="paramname"><em>kind</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>ruleName</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="search__theorem__producer_8cpp_source.html#l01226">1226</a> of file <a class="el" href="search__theorem__producer_8cpp_source.html">search_theorem_producer.cpp</a>.</p>

<p>References <a class="el" href="expr_8h_source.html#l00945">CVC3::andExpr()</a>, <a class="el" href="expr_8h_source.html#l01201">CVC3::Expr::arity()</a>, <a class="el" href="expr__map_8h_source.html#l00190">CVC3::ExprMap&lt; Data &gt;::begin()</a>, <a class="el" href="expr_8h_source.html#l01211">CVC3::Expr::begin()</a>, <a class="el" href="theorem__producer_8h_source.html#l00087">CHECK_PROOFS</a>, <a class="el" href="theorem__producer_8h_source.html#l00083">CHECK_SOUND</a>, <a class="el" href="search__theorem__producer_8cpp_source.html#l01309">convertToCNF()</a>, <a class="el" href="theorem__producer_8h_source.html#l00095">CVC3::TheoremProducer::d_em</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="expr_8h_source.html#l01217">CVC3::Expr::end()</a>, <a class="el" href="kinds_8h_source.html#l00085">EXISTS</a>, <a class="el" href="search__theorem__producer_8cpp_source.html#l01382">findInLocalCache()</a>, <a class="el" href="theorem_8cpp_source.html#l00385">CVC3::Theorem::getAssumptionsRef()</a>, <a class="el" href="theorem_8cpp_source.html#l00230">CVC3::Theorem::getExpr()</a>, <a class="el" href="expr__manager_8cpp_source.html#l00405">CVC3::ExprManager::getKindName()</a>, <a class="el" href="expr_8h_source.html#l01183">CVC3::Expr::getOp()</a>, <a class="el" href="theorem_8cpp_source.html#l00402">CVC3::Theorem::getProof()</a>, <a class="el" href="expr_8h_source.html#l00424">CVC3::Expr::isIff()</a>, <a class="el" href="expr_8h_source.html#l00420">CVC3::Expr::isNot()</a>, <a class="el" href="expr_8h_source.html#l00411">CVC3::Expr::isPropAtom()</a>, <a class="el" href="expr__manager_8h_source.html#l00506">CVC3::ExprManager::newClosureExpr()</a>, <a class="el" href="theorem__producer_8cpp_source.html#l00075">CVC3::TheoremProducer::newPf()</a>, <a class="el" href="theorem__producer_8h_source.html#l00107">CVC3::TheoremProducer::newTheorem()</a>, <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>, <a class="el" href="kinds_8h_source.html#l00099">TRACE</a>, and <a class="el" href="theorem__producer_8h_source.html#l00159">CVC3::TheoremProducer::withProof()</a>.</p>

<p>Referenced by <a class="el" href="search__theorem__producer_8cpp_source.html#l01160">andCNFRule()</a>, <a class="el" href="search__theorem__producer_8cpp_source.html#l01175">iffCNFRule()</a>, <a class="el" href="search__theorem__producer_8cpp_source.html#l01170">impCNFRule()</a>, <a class="el" href="search__theorem__producer_8cpp_source.html#l01180">iteCNFRule()</a>, and <a class="el" href="search__theorem__producer_8cpp_source.html#l01165">orCNFRule()</a>.</p>

</div>
</div>
<a class="anchor" id="a8ad94f1a94fd5bf8fa10dbf26e04ee58"></a><!-- doxytag: member="CVC3::SearchEngineTheoremProducer::convertToCNF" ref="a8ad94f1a94fd5bf8fa10dbf26e04ee58" args="(const Expr &amp;v, const Expr &amp;phi)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Expr.html">Expr</a> SearchEngineTheoremProducer::convertToCNF </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>v</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>phi</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>produces the CNF for the formula v &lt;==&gt; phi </p>

<p>Definition at line <a class="el" href="search__theorem__producer_8cpp_source.html#l01309">1309</a> of file <a class="el" href="search__theorem__producer_8cpp_source.html">search_theorem_producer.cpp</a>.</p>

<p>References <a class="el" href="kinds_8h_source.html#l00067">AND</a>, <a class="el" href="expr_8h_source.html#l00945">CVC3::andExpr()</a>, <a class="el" href="expr_8h_source.html#l01211">CVC3::Expr::begin()</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="expr_8h_source.html#l01217">CVC3::Expr::end()</a>, <a class="el" href="expr_8h_source.html#l01168">CVC3::Expr::getKind()</a>, <a class="el" href="kinds_8h_source.html#l00070">IFF</a>, <a class="el" href="kinds_8h_source.html#l00071">IMPLIES</a>, <a class="el" href="kinds_8h_source.html#l00081">ITE</a>, <a class="el" href="expr_8h_source.html#l00937">CVC3::Expr::negate()</a>, <a class="el" href="kinds_8h_source.html#l00068">OR</a>, <a class="el" href="expr_8h_source.html#l00951">CVC3::Expr::orExpr()</a>, <a class="el" href="expr_8h_source.html#l00955">CVC3::orExpr()</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

<p>Referenced by <a class="el" href="search__theorem__producer_8cpp_source.html#l01226">opCNFRule()</a>.</p>

</div>
</div>
<a class="anchor" id="a4af17425aaf7d8a28aaf1d8a09241535"></a><!-- doxytag: member="CVC3::SearchEngineTheoremProducer::findInLocalCache" ref="a4af17425aaf7d8a28aaf1d8a09241535" args="(const Expr &amp;i, ExprMap&lt; Expr &gt; &amp;localCache, std::vector&lt; Expr &gt; &amp;boundVars)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Expr.html">Expr</a> SearchEngineTheoremProducer::findInLocalCache </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>i</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1ExprMap.html">ExprMap</a>&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>localCache</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::vector&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>boundVars</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>checks if phi has v in local cache of opCNFRule, if so reuse v. </p>
<p>similarly for ( ! ... ! (phi)) </p>

<p>Definition at line <a class="el" href="search__theorem__producer_8cpp_source.html#l01382">1382</a> of file <a class="el" href="search__theorem__producer_8cpp_source.html">search_theorem_producer.cpp</a>.</p>

<p>References <a class="el" href="theorem__producer_8h_source.html#l00095">CVC3::TheoremProducer::d_em</a>, <a class="el" href="expr__map_8h_source.html#l00191">CVC3::ExprMap&lt; Data &gt;::end()</a>, <a class="el" href="expr__map_8h_source.html#l00194">CVC3::ExprMap&lt; Data &gt;::find()</a>, <a class="el" href="expr_8h_source.html#l01259">CVC3::Expr::getType()</a>, <a class="el" href="debug_8h_source.html#l00406">IF_DEBUG</a>, <a class="el" href="expr_8h_source.html#l00965">CVC3::Expr::iffExpr()</a>, <a class="el" href="expr_8h_source.html#l00420">CVC3::Expr::isNot()</a>, <a class="el" href="expr__manager_8h_source.html#l00484">CVC3::ExprManager::newBoundVarExpr()</a>, <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>, and <a class="el" href="kinds_8h_source.html#l00099">TRACE</a>.</p>

<p>Referenced by <a class="el" href="search__theorem__producer_8cpp_source.html#l01226">opCNFRule()</a>.</p>

</div>
</div>
<hr/><h2>Member Data Documentation</h2>
<a class="anchor" id="abb70faf5bb0eccda31e8ff06a46f2b65"></a><!-- doxytag: member="CVC3::SearchEngineTheoremProducer::d_commonRules" ref="abb70faf5bb0eccda31e8ff06a46f2b65" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1CommonProofRules.html">CommonProofRules</a>* <a class="el" href="classCVC3_1_1SearchEngineTheoremProducer.html#abb70faf5bb0eccda31e8ff06a46f2b65">CVC3::SearchEngineTheoremProducer::d_commonRules</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="search__theorem__producer_8h_source.html#l00036">36</a> of file <a class="el" href="search__theorem__producer_8h_source.html">search_theorem_producer.h</a>.</p>

<p>Referenced by <a class="el" href="search__theorem__producer_8cpp_source.html#l01419">satProof()</a>.</p>

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