Sophie

Sophie

distrib > PLD > th > x86_64 > by-pkgid > 9f869ff92bf81fc4b13902b2b85811f8 > files > 1662

cvc3-doc-2.4.1-1.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"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>CVC3: Proof Rules for the Search Engines</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">CVC3
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.2 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">Proof Rules for the Search Engines</div>  </div>
<div class="ingroups"><a class="el" href="group__SE.html">Search Engine</a></div></div><!--header-->
<div class="contents">
<div class="dynheader">
Collaboration diagram for Proof Rules for the Search Engines:</div>
<div class="dyncontent">
<center><table><tr><td><img src="group__SE__Rules.gif" border="0" alt="" usemap="#group____SE____Rules"/>
<map name="group____SE____Rules" id="group____SE____Rules">
<area shape="rect" id="node2" href="group__SE.html" title="Search Engine" alt="" coords="5,12,112,39"/></map>
</td></tr></table></center>
</div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1SearchEngineRules.html">CVC3::SearchEngineRules</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">API to the proof rules for the Search Engines.  <a href="classCVC3_1_1SearchEngineRules.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:gae48ac99bc858fb09857649a89af81f43"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE__Rules.html#gae48ac99bc858fb09857649a89af81f43">CVC3::SearchEngineRules::~SearchEngineRules</a> ()</td></tr>
<tr class="memdesc:gae48ac99bc858fb09857649a89af81f43"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor.  <a href="#gae48ac99bc858fb09857649a89af81f43"></a><br/></td></tr>
<tr class="separator:gae48ac99bc858fb09857649a89af81f43"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3ddf95924d2ff2efb59e84dc78a19821"><td class="memItemLeft" align="right" valign="top">virtual Theorem&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE__Rules.html#ga3ddf95924d2ff2efb59e84dc78a19821">CVC3::SearchEngineRules::eliminateSkolemAxioms</a> (const Theorem &amp;tFalse, const std::vector&lt; Theorem &gt; &amp;delta)=0</td></tr>
<tr class="separator:ga3ddf95924d2ff2efb59e84dc78a19821"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga64c9fb7058e52c324ce76f15fcea37e2"><td class="memItemLeft" align="right" valign="top">virtual Theorem&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE__Rules.html#ga64c9fb7058e52c324ce76f15fcea37e2">CVC3::SearchEngineRules::proofByContradiction</a> (const Expr &amp;a, const Theorem &amp;pfFalse)=0</td></tr>
<tr class="memdesc:ga64c9fb7058e52c324ce76f15fcea37e2"><td class="mdescLeft">&#160;</td><td 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_285.png"/>
</p>
<p>.  <a href="#ga64c9fb7058e52c324ce76f15fcea37e2"></a><br/></td></tr>
<tr class="separator:ga64c9fb7058e52c324ce76f15fcea37e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga846c2bdc33f6ff2080e76637ea618626"><td class="memItemLeft" align="right" valign="top">virtual Theorem&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE__Rules.html#ga846c2bdc33f6ff2080e76637ea618626">CVC3::SearchEngineRules::negIntro</a> (const Expr &amp;not_a, const Theorem &amp;pfFalse)=0</td></tr>
<tr class="memdesc:ga846c2bdc33f6ff2080e76637ea618626"><td class="mdescLeft">&#160;</td><td class="mdescRight">Negation introduction: </p>
<p class="formulaDsp">
<img class="formulaDsp" alt="\[\frac{\Gamma, A \vdash\mathrm{FALSE}}{\Gamma\vdash\neg A}\]" src="form_288.png"/>
</p>
<p>.  <a href="#ga846c2bdc33f6ff2080e76637ea618626"></a><br/></td></tr>
<tr class="separator:ga846c2bdc33f6ff2080e76637ea618626"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7db620d19846bd5947321a8d6f9e7da4"><td class="memItemLeft" align="right" valign="top">virtual Theorem&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE__Rules.html#ga7db620d19846bd5947321a8d6f9e7da4">CVC3::SearchEngineRules::caseSplit</a> (const Expr &amp;a, const Theorem &amp;a_proves_c, const Theorem &amp;not_a_proves_c)=0</td></tr>
<tr class="memdesc:ga7db620d19846bd5947321a8d6f9e7da4"><td class="mdescLeft">&#160;</td><td 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_290.png"/>
</p>
<p>.  <a href="#ga7db620d19846bd5947321a8d6f9e7da4"></a><br/></td></tr>
<tr class="separator:ga7db620d19846bd5947321a8d6f9e7da4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga03be39f8ffe84a1bcc09bba60f45245c"><td class="memItemLeft" align="right" valign="top">virtual Theorem&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE__Rules.html#ga03be39f8ffe84a1bcc09bba60f45245c">CVC3::SearchEngineRules::conflictClause</a> (const Theorem &amp;thm, const std::vector&lt; Theorem &gt; &amp;lits, const std::vector&lt; Theorem &gt; &amp;gamma)=0</td></tr>
<tr class="memdesc:ga03be39f8ffe84a1bcc09bba60f45245c"><td class="mdescLeft">&#160;</td><td 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_293.png"/>
</p>
<p>.  <a href="#ga03be39f8ffe84a1bcc09bba60f45245c"></a><br/></td></tr>
<tr class="separator:ga03be39f8ffe84a1bcc09bba60f45245c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac1ef0687c058a3d4bd1d9ed88cd27abe"><td class="memItemLeft" align="right" valign="top">virtual Theorem&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE__Rules.html#gac1ef0687c058a3d4bd1d9ed88cd27abe">CVC3::SearchEngineRules::cutRule</a> (const std::vector&lt; Theorem &gt; &amp;thmsA, const Theorem &amp;as_prove_b)=0</td></tr>
<tr class="memdesc:gac1ef0687c058a3d4bd1d9ed88cd27abe"><td class="mdescLeft">&#160;</td><td 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_295.png"/>
</p>
<p>.  <a href="#gac1ef0687c058a3d4bd1d9ed88cd27abe"></a><br/></td></tr>
<tr class="separator:gac1ef0687c058a3d4bd1d9ed88cd27abe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae7221bb8b77313a9b53a4beca9cc0aa0"><td class="memItemLeft" align="right" valign="top">virtual Theorem&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE__Rules.html#gae7221bb8b77313a9b53a4beca9cc0aa0">CVC3::SearchEngineRules::unitProp</a> (const std::vector&lt; Theorem &gt; &amp;thms, const Theorem &amp;clause, unsigned i)=0</td></tr>
<tr class="memdesc:gae7221bb8b77313a9b53a4beca9cc0aa0"><td class="mdescLeft">&#160;</td><td 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_298.png"/>
</p>
<p>.  <a href="#gae7221bb8b77313a9b53a4beca9cc0aa0"></a><br/></td></tr>
<tr class="separator:gae7221bb8b77313a9b53a4beca9cc0aa0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9c74425b4471d411f58f16781951c441"><td class="memItemLeft" align="right" valign="top">virtual Theorem&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE__Rules.html#ga9c74425b4471d411f58f16781951c441">CVC3::SearchEngineRules::conflictRule</a> (const std::vector&lt; Theorem &gt; &amp;thms, const Theorem &amp;clause)=0</td></tr>
<tr class="memdesc:ga9c74425b4471d411f58f16781951c441"><td class="mdescLeft">&#160;</td><td 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_301.png"/>
</p>
  <a href="#ga9c74425b4471d411f58f16781951c441"></a><br/></td></tr>
<tr class="separator:ga9c74425b4471d411f58f16781951c441"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf5a18f8bcdc2f71632f05bcfe0bc533e"><td class="memItemLeft" align="right" valign="top">virtual Theorem&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE__Rules.html#gaf5a18f8bcdc2f71632f05bcfe0bc533e">CVC3::SearchEngineRules::propAndrAF</a> (const Theorem &amp;andr_th, bool left, const Theorem &amp;b_th)=0</td></tr>
<tr class="separator:gaf5a18f8bcdc2f71632f05bcfe0bc533e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac7998bdcac234b0f3dc202d44b49c69c"><td class="memItemLeft" align="right" valign="top">virtual Theorem&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE__Rules.html#gac7998bdcac234b0f3dc202d44b49c69c">CVC3::SearchEngineRules::propAndrAT</a> (const Theorem &amp;andr_th, const Theorem &amp;l_th, const Theorem &amp;r_th)=0</td></tr>
<tr class="separator:gac7998bdcac234b0f3dc202d44b49c69c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad0150b04c296a6b8e05579c1dbd365f8"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE__Rules.html#gad0150b04c296a6b8e05579c1dbd365f8">CVC3::SearchEngineRules::propAndrLRT</a> (const Theorem &amp;andr_th, const Theorem &amp;a_th, Theorem *l_th, Theorem *r_th)=0</td></tr>
<tr class="separator:gad0150b04c296a6b8e05579c1dbd365f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8c8fc73c8b0413f5ca3fa7d72e687f5b"><td class="memItemLeft" align="right" valign="top">virtual Theorem&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE__Rules.html#ga8c8fc73c8b0413f5ca3fa7d72e687f5b">CVC3::SearchEngineRules::propAndrLF</a> (const Theorem &amp;andr_th, const Theorem &amp;a_th, const Theorem &amp;r_th)=0</td></tr>
<tr class="separator:ga8c8fc73c8b0413f5ca3fa7d72e687f5b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1158c41e7b7ed199271391d4404ce1b2"><td class="memItemLeft" align="right" valign="top">virtual Theorem&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE__Rules.html#ga1158c41e7b7ed199271391d4404ce1b2">CVC3::SearchEngineRules::propAndrRF</a> (const Theorem &amp;andr_th, const Theorem &amp;a_th, const Theorem &amp;l_th)=0</td></tr>
<tr class="separator:ga1158c41e7b7ed199271391d4404ce1b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga09d987f2d81c19d798d7185b125879b6"><td class="memItemLeft" align="right" valign="top">virtual Theorem&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE__Rules.html#ga09d987f2d81c19d798d7185b125879b6">CVC3::SearchEngineRules::confAndrAT</a> (const Theorem &amp;andr_th, const Theorem &amp;a_th, bool left, const Theorem &amp;b_th)=0</td></tr>
<tr class="separator:ga09d987f2d81c19d798d7185b125879b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadb878db4f9d24a21b62f50df2713ecca"><td class="memItemLeft" align="right" valign="top">virtual Theorem&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE__Rules.html#gadb878db4f9d24a21b62f50df2713ecca">CVC3::SearchEngineRules::confAndrAF</a> (const Theorem &amp;andr_th, const Theorem &amp;a_th, const Theorem &amp;l_th, const Theorem &amp;r_th)=0</td></tr>
<tr class="separator:gadb878db4f9d24a21b62f50df2713ecca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9bc3e3eab4b1fe4fb2c0a0172ca25ee9"><td class="memItemLeft" align="right" valign="top">virtual Theorem&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE__Rules.html#ga9bc3e3eab4b1fe4fb2c0a0172ca25ee9">CVC3::SearchEngineRules::propIffr</a> (const Theorem &amp;iffr_th, int p, const Theorem &amp;a_th, const Theorem &amp;b_th)=0</td></tr>
<tr class="separator:ga9bc3e3eab4b1fe4fb2c0a0172ca25ee9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaef31b1a5f6d6e9f270a1ab28ee361b14"><td class="memItemLeft" align="right" valign="top">virtual Theorem&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE__Rules.html#gaef31b1a5f6d6e9f270a1ab28ee361b14">CVC3::SearchEngineRules::confIffr</a> (const Theorem &amp;iffr_th, const Theorem &amp;i_th, const Theorem &amp;l_th, const Theorem &amp;r_th)=0</td></tr>
<tr class="separator:gaef31b1a5f6d6e9f270a1ab28ee361b14"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga979ad08269cd2799993628eaaccc146f"><td class="memItemLeft" align="right" valign="top">virtual Theorem&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE__Rules.html#ga979ad08269cd2799993628eaaccc146f">CVC3::SearchEngineRules::propIterIte</a> (const Theorem &amp;iter_th, bool left, const Theorem &amp;if_th, const Theorem &amp;then_th)=0</td></tr>
<tr class="separator:ga979ad08269cd2799993628eaaccc146f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad35217bbc9f4a27b4d23af173e9ea2c7"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE__Rules.html#gad35217bbc9f4a27b4d23af173e9ea2c7">CVC3::SearchEngineRules::propIterIfThen</a> (const Theorem &amp;iter_th, bool left, const Theorem &amp;ite_th, const Theorem &amp;then_th, Theorem *if_th, Theorem *else_th)=0</td></tr>
<tr class="separator:gad35217bbc9f4a27b4d23af173e9ea2c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab7b07d3b350b2cc7f3f596233abb54ea"><td class="memItemLeft" align="right" valign="top">virtual Theorem&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE__Rules.html#gab7b07d3b350b2cc7f3f596233abb54ea">CVC3::SearchEngineRules::propIterThen</a> (const Theorem &amp;iter_th, const Theorem &amp;ite_th, const Theorem &amp;if_th)=0</td></tr>
<tr class="separator:gab7b07d3b350b2cc7f3f596233abb54ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaae491d08949a1ec57981526c8e960119"><td class="memItemLeft" align="right" valign="top">virtual Theorem&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE__Rules.html#gaae491d08949a1ec57981526c8e960119">CVC3::SearchEngineRules::confIterThenElse</a> (const Theorem &amp;iter_th, const Theorem &amp;ite_th, const Theorem &amp;then_th, const Theorem &amp;else_th)=0</td></tr>
<tr class="separator:gaae491d08949a1ec57981526c8e960119"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga771471d7cbb2253bc32f2a8018bd7182"><td class="memItemLeft" align="right" valign="top">virtual Theorem&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE__Rules.html#ga771471d7cbb2253bc32f2a8018bd7182">CVC3::SearchEngineRules::confIterIfThen</a> (const Theorem &amp;iter_th, bool left, const Theorem &amp;ite_th, const Theorem &amp;if_th, const Theorem &amp;then_th)=0</td></tr>
<tr class="separator:ga771471d7cbb2253bc32f2a8018bd7182"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab183ff7d1013729d0d3e2dbe28686e3c"><td class="memItemLeft" align="right" valign="top">virtual Theorem&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE__Rules.html#gab183ff7d1013729d0d3e2dbe28686e3c">CVC3::SearchEngineRules::andCNFRule</a> (const Theorem &amp;thm)=0</td></tr>
<tr class="memdesc:gab183ff7d1013729d0d3e2dbe28686e3c"><td class="mdescLeft">&#160;</td><td class="mdescRight">AND(x1,...,xn) &lt;=&gt; v |- CNF[AND(x1,...,xn) &lt;=&gt; v].  <a href="#gab183ff7d1013729d0d3e2dbe28686e3c"></a><br/></td></tr>
<tr class="separator:gab183ff7d1013729d0d3e2dbe28686e3c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7086aa693d2a3421bc349eca8e9938ba"><td class="memItemLeft" align="right" valign="top">virtual Theorem&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE__Rules.html#ga7086aa693d2a3421bc349eca8e9938ba">CVC3::SearchEngineRules::orCNFRule</a> (const Theorem &amp;thm)=0</td></tr>
<tr class="memdesc:ga7086aa693d2a3421bc349eca8e9938ba"><td class="mdescLeft">&#160;</td><td class="mdescRight">OR(x1,...,xn) &lt;=&gt; v |- CNF[OR(x1,...,xn) &lt;=&gt; v].  <a href="#ga7086aa693d2a3421bc349eca8e9938ba"></a><br/></td></tr>
<tr class="separator:ga7086aa693d2a3421bc349eca8e9938ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga25f7b95c8ebce2be117d03a1c93d715f"><td class="memItemLeft" align="right" valign="top">virtual Theorem&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE__Rules.html#ga25f7b95c8ebce2be117d03a1c93d715f">CVC3::SearchEngineRules::impCNFRule</a> (const Theorem &amp;thm)=0</td></tr>
<tr class="memdesc:ga25f7b95c8ebce2be117d03a1c93d715f"><td class="mdescLeft">&#160;</td><td class="mdescRight">(x1 =&gt; x2) &lt;=&gt; v |- CNF[(x1 =&gt; x2) &lt;=&gt; v]  <a href="#ga25f7b95c8ebce2be117d03a1c93d715f"></a><br/></td></tr>
<tr class="separator:ga25f7b95c8ebce2be117d03a1c93d715f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4ab7606744594db9050cb83fe6b73668"><td class="memItemLeft" align="right" valign="top">virtual Theorem&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE__Rules.html#ga4ab7606744594db9050cb83fe6b73668">CVC3::SearchEngineRules::iffCNFRule</a> (const Theorem &amp;thm)=0</td></tr>
<tr class="memdesc:ga4ab7606744594db9050cb83fe6b73668"><td class="mdescLeft">&#160;</td><td class="mdescRight">(x1 &lt;=&gt; x2) &lt;=&gt; v |- CNF[(x1 &lt;=&gt; x2) &lt;=&gt; v]  <a href="#ga4ab7606744594db9050cb83fe6b73668"></a><br/></td></tr>
<tr class="separator:ga4ab7606744594db9050cb83fe6b73668"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae9263cbcedf5def99b3c49ee6978497a"><td class="memItemLeft" align="right" valign="top">virtual Theorem&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE__Rules.html#gae9263cbcedf5def99b3c49ee6978497a">CVC3::SearchEngineRules::iteCNFRule</a> (const Theorem &amp;thm)=0</td></tr>
<tr class="memdesc:gae9263cbcedf5def99b3c49ee6978497a"><td class="mdescLeft">&#160;</td><td class="mdescRight">ITE(c, x1, x2) &lt;=&gt; v |- CNF[ITE(c, x1, x2) &lt;=&gt; v].  <a href="#gae9263cbcedf5def99b3c49ee6978497a"></a><br/></td></tr>
<tr class="separator:gae9263cbcedf5def99b3c49ee6978497a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9b9c0fe62505477b6ec9774c1b5b2494"><td class="memItemLeft" align="right" valign="top">virtual Theorem&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE__Rules.html#ga9b9c0fe62505477b6ec9774c1b5b2494">CVC3::SearchEngineRules::iteToClauses</a> (const Theorem &amp;ite)=0</td></tr>
<tr class="memdesc:ga9b9c0fe62505477b6ec9774c1b5b2494"><td class="mdescLeft">&#160;</td><td class="mdescRight">ITE(c, f1, f2) |- (NOT c OR f1) AND (c OR f2)  <a href="#ga9b9c0fe62505477b6ec9774c1b5b2494"></a><br/></td></tr>
<tr class="separator:ga9b9c0fe62505477b6ec9774c1b5b2494"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga356cd5a36ede50921fbaa3bc7e222d4f"><td class="memItemLeft" align="right" valign="top">virtual Theorem&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE__Rules.html#ga356cd5a36ede50921fbaa3bc7e222d4f">CVC3::SearchEngineRules::iffToClauses</a> (const Theorem &amp;iff)=0</td></tr>
<tr class="memdesc:ga356cd5a36ede50921fbaa3bc7e222d4f"><td class="mdescLeft">&#160;</td><td class="mdescRight">e1 &lt;=&gt; e2 |- (NOT e1 OR e2) AND (e1 OR NOT e2)  <a href="#ga356cd5a36ede50921fbaa3bc7e222d4f"></a><br/></td></tr>
<tr class="separator:ga356cd5a36ede50921fbaa3bc7e222d4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga55daf0bf95530208f5abf9484ded9055"><td class="memItemLeft" align="right" valign="top">virtual Theorem&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE__Rules.html#ga55daf0bf95530208f5abf9484ded9055">CVC3::SearchEngineRules::satProof</a> (const Expr &amp;queryExpr, const Proof &amp;satProof)=0</td></tr>
<tr class="separator:ga55daf0bf95530208f5abf9484ded9055"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="gae48ac99bc858fb09857649a89af81f43"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual CVC3::SearchEngineRules::~SearchEngineRules </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Destructor. </p>

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

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

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

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

</div>
</div>
<a class="anchor" id="ga64c9fb7058e52c324ce76f15fcea37e2"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual Theorem CVC3::SearchEngineRules::proofByContradiction </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>a</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>pfFalse</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </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_285.png"/>
</p>
<p>. </p>
<p><img class="formulaInl" alt="$\neg A$" src="form_286.png"/> does not have to be present in the assumptions. </p>
<dl class="params"><dt>Parameters</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_287.png"/> </td></tr>
  </table>
  </dd>
</dl>

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

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

</div>
</div>
<a class="anchor" id="ga846c2bdc33f6ff2080e76637ea618626"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual Theorem CVC3::SearchEngineRules::negIntro </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>not_a</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>pfFalse</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </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_288.png"/>
</p>
<p>. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">not_a</td><td>is the formula <img class="formulaInl" alt="$\neg A$" src="form_286.png"/>. We pass the negation <img class="formulaInl" alt="$\neg A$" src="form_286.png"/>, and not just <em>A</em>, for efficiency: building <img class="formulaInl" alt="$\neg A$" src="form_286.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_286.png"/>.</td></tr>
    <tr><td class="paramname">pfFalse</td><td>is the theorem <img class="formulaInl" alt="$\Gamma, A \vdash\mathrm{FALSE}$" src="form_289.png"/> </td></tr>
  </table>
  </dd>
</dl>

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

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

</div>
</div>
<a class="anchor" id="ga7db620d19846bd5947321a8d6f9e7da4"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual Theorem CVC3::SearchEngineRules::caseSplit </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>a</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>a_proves_c</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>not_a_proves_c</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </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_290.png"/>
</p>
<p>. </p>
<dl class="params"><dt>Parameters</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_291.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_292.png"/> </td></tr>
  </table>
  </dd>
</dl>

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

</div>
</div>
<a class="anchor" id="ga03be39f8ffe84a1bcc09bba60f45245c"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual Theorem CVC3::SearchEngineRules::conflictClause </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>thm</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::vector&lt; <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>lits</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::vector&lt; <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>gamma</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </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_293.png"/>
</p>
<p>. </p>
<dl class="params"><dt>Parameters</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_294.png"/></td></tr>
    <tr><td class="paramname">lits</td><td>is the vector of literals <em>A<sub>i</sub></em>. They must be present in the set of assumptions of <em>thm</em>.</td></tr>
    <tr><td class="paramname">gamma</td><td>FIXME: document this!! </td></tr>
  </table>
  </dd>
</dl>

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

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

</div>
</div>
<a class="anchor" id="gac1ef0687c058a3d4bd1d9ed88cd27abe"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual Theorem CVC3::SearchEngineRules::cutRule </td>
          <td>(</td>
          <td class="paramtype">const std::vector&lt; <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>thmsA</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>as_prove_b</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </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_295.png"/>
</p>
<p>. </p>
<dl class="params"><dt>Parameters</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_296.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_297.png"/> (the name means "A's prove B") </td></tr>
  </table>
  </dd>
</dl>

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

</div>
</div>
<a class="anchor" id="gae7221bb8b77313a9b53a4beca9cc0aa0"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual Theorem CVC3::SearchEngineRules::unitProp </td>
          <td>(</td>
          <td class="paramtype">const std::vector&lt; <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>thms</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>clause</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned&#160;</td>
          <td class="paramname"><em>i</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </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_298.png"/>
</p>
<p>. </p>
<dl class="params"><dt>Parameters</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_299.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_300.png"/> for all literals except <em>A<sub>i</sub></em> </td></tr>
  </table>
  </dd>
</dl>

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

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

</div>
</div>
<a class="anchor" id="ga9c74425b4471d411f58f16781951c441"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual Theorem CVC3::SearchEngineRules::conflictRule </td>
          <td>(</td>
          <td class="paramtype">const std::vector&lt; <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>thms</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>clause</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </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_301.png"/>
</p>
 </p>
<dl class="params"><dt>Parameters</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_299.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_300.png"/> </td></tr>
  </table>
  </dd>
</dl>

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

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

</div>
</div>
<a class="anchor" id="gaf5a18f8bcdc2f71632f05bcfe0bc533e"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual Theorem CVC3::SearchEngineRules::propAndrAF </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>andr_th</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>left</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>b_th</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

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

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

</div>
</div>
<a class="anchor" id="gac7998bdcac234b0f3dc202d44b49c69c"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual Theorem CVC3::SearchEngineRules::propAndrAT </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>andr_th</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>l_th</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>r_th</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

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

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

</div>
</div>
<a class="anchor" id="gad0150b04c296a6b8e05579c1dbd365f8"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void CVC3::SearchEngineRules::propAndrLRT </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>andr_th</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>a_th</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> *&#160;</td>
          <td class="paramname"><em>l_th</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> *&#160;</td>
          <td class="paramname"><em>r_th</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

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

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

</div>
</div>
<a class="anchor" id="ga8c8fc73c8b0413f5ca3fa7d72e687f5b"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual Theorem CVC3::SearchEngineRules::propAndrLF </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>andr_th</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>a_th</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>r_th</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

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

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

</div>
</div>
<a class="anchor" id="ga1158c41e7b7ed199271391d4404ce1b2"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual Theorem CVC3::SearchEngineRules::propAndrRF </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>andr_th</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>a_th</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>l_th</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

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

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

</div>
</div>
<a class="anchor" id="ga09d987f2d81c19d798d7185b125879b6"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual Theorem CVC3::SearchEngineRules::confAndrAT </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>andr_th</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>a_th</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>left</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>b_th</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

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

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

</div>
</div>
<a class="anchor" id="gadb878db4f9d24a21b62f50df2713ecca"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual Theorem CVC3::SearchEngineRules::confAndrAF </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>andr_th</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>a_th</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>l_th</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>r_th</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

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

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

</div>
</div>
<a class="anchor" id="ga9bc3e3eab4b1fe4fb2c0a0172ca25ee9"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual Theorem CVC3::SearchEngineRules::propIffr </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>iffr_th</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>p</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>a_th</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>b_th</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

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

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

</div>
</div>
<a class="anchor" id="gaef31b1a5f6d6e9f270a1ab28ee361b14"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual Theorem CVC3::SearchEngineRules::confIffr </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>iffr_th</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>i_th</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>l_th</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>r_th</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

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

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

</div>
</div>
<a class="anchor" id="ga979ad08269cd2799993628eaaccc146f"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual Theorem CVC3::SearchEngineRules::propIterIte </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>iter_th</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>left</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>if_th</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>then_th</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

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

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

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

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

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

</div>
</div>
<a class="anchor" id="gab7b07d3b350b2cc7f3f596233abb54ea"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual Theorem CVC3::SearchEngineRules::propIterThen </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>iter_th</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>ite_th</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>if_th</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

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

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

</div>
</div>
<a class="anchor" id="gaae491d08949a1ec57981526c8e960119"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual Theorem CVC3::SearchEngineRules::confIterThenElse </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>iter_th</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>ite_th</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>then_th</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>else_th</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

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

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

</div>
</div>
<a class="anchor" id="ga771471d7cbb2253bc32f2a8018bd7182"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual Theorem CVC3::SearchEngineRules::confIterIfThen </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>iter_th</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>left</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>ite_th</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>if_th</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>then_th</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

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

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

</div>
</div>
<a class="anchor" id="gab183ff7d1013729d0d3e2dbe28686e3c"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual Theorem CVC3::SearchEngineRules::andCNFRule </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>thm</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

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

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

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

</div>
</div>
<a class="anchor" id="ga7086aa693d2a3421bc349eca8e9938ba"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual Theorem CVC3::SearchEngineRules::orCNFRule </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>thm</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

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

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

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

</div>
</div>
<a class="anchor" id="ga25f7b95c8ebce2be117d03a1c93d715f"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual Theorem CVC3::SearchEngineRules::impCNFRule </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>thm</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

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

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

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

</div>
</div>
<a class="anchor" id="ga4ab7606744594db9050cb83fe6b73668"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual Theorem CVC3::SearchEngineRules::iffCNFRule </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>thm</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

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

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

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

</div>
</div>
<a class="anchor" id="gae9263cbcedf5def99b3c49ee6978497a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual Theorem CVC3::SearchEngineRules::iteCNFRule </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>thm</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

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

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

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

</div>
</div>
<a class="anchor" id="ga9b9c0fe62505477b6ec9774c1b5b2494"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual Theorem CVC3::SearchEngineRules::iteToClauses </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>ite</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

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

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

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

</div>
</div>
<a class="anchor" id="ga356cd5a36ede50921fbaa3bc7e222d4f"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual Theorem CVC3::SearchEngineRules::iffToClauses </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>iff</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

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

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

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

</div>
</div>
<a class="anchor" id="ga55daf0bf95530208f5abf9484ded9055"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual Theorem CVC3::SearchEngineRules::satProof </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>queryExpr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Proof.html">Proof</a> &amp;&#160;</td>
          <td class="paramname"><em>satProof</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

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

</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Thu May 16 2013 13:25:16 for CVC3 by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.2
</small></address>
</body>
</html>