<!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 Page</span></a></li> <li><a href="pages.html"><span>Related 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> | <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  </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"> </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"> </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 </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"> </td><td class="mdescRight">Destructor. <a href="#gae48ac99bc858fb09857649a89af81f43"></a><br/></td></tr> <tr class="separator:gae48ac99bc858fb09857649a89af81f43"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga3ddf95924d2ff2efb59e84dc78a19821"><td class="memItemLeft" align="right" valign="top">virtual Theorem </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE__Rules.html#ga3ddf95924d2ff2efb59e84dc78a19821">CVC3::SearchEngineRules::eliminateSkolemAxioms</a> (const Theorem &tFalse, const std::vector< Theorem > &delta)=0</td></tr> <tr class="separator:ga3ddf95924d2ff2efb59e84dc78a19821"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga64c9fb7058e52c324ce76f15fcea37e2"><td class="memItemLeft" align="right" valign="top">virtual Theorem </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE__Rules.html#ga64c9fb7058e52c324ce76f15fcea37e2">CVC3::SearchEngineRules::proofByContradiction</a> (const Expr &a, const Theorem &pfFalse)=0</td></tr> <tr class="memdesc:ga64c9fb7058e52c324ce76f15fcea37e2"><td class="mdescLeft"> </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"> </td></tr> <tr class="memitem:ga846c2bdc33f6ff2080e76637ea618626"><td class="memItemLeft" align="right" valign="top">virtual Theorem </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE__Rules.html#ga846c2bdc33f6ff2080e76637ea618626">CVC3::SearchEngineRules::negIntro</a> (const Expr &not_a, const Theorem &pfFalse)=0</td></tr> <tr class="memdesc:ga846c2bdc33f6ff2080e76637ea618626"><td class="mdescLeft"> </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"> </td></tr> <tr class="memitem:ga7db620d19846bd5947321a8d6f9e7da4"><td class="memItemLeft" align="right" valign="top">virtual Theorem </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE__Rules.html#ga7db620d19846bd5947321a8d6f9e7da4">CVC3::SearchEngineRules::caseSplit</a> (const Expr &a, const Theorem &a_proves_c, const Theorem &not_a_proves_c)=0</td></tr> <tr class="memdesc:ga7db620d19846bd5947321a8d6f9e7da4"><td class="mdescLeft"> </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"> </td></tr> <tr class="memitem:ga03be39f8ffe84a1bcc09bba60f45245c"><td class="memItemLeft" align="right" valign="top">virtual Theorem </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE__Rules.html#ga03be39f8ffe84a1bcc09bba60f45245c">CVC3::SearchEngineRules::conflictClause</a> (const Theorem &thm, const std::vector< Theorem > &lits, const std::vector< Theorem > &gamma)=0</td></tr> <tr class="memdesc:ga03be39f8ffe84a1bcc09bba60f45245c"><td class="mdescLeft"> </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"> </td></tr> <tr class="memitem:gac1ef0687c058a3d4bd1d9ed88cd27abe"><td class="memItemLeft" align="right" valign="top">virtual Theorem </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE__Rules.html#gac1ef0687c058a3d4bd1d9ed88cd27abe">CVC3::SearchEngineRules::cutRule</a> (const std::vector< Theorem > &thmsA, const Theorem &as_prove_b)=0</td></tr> <tr class="memdesc:gac1ef0687c058a3d4bd1d9ed88cd27abe"><td class="mdescLeft"> </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"> </td></tr> <tr class="memitem:gae7221bb8b77313a9b53a4beca9cc0aa0"><td class="memItemLeft" align="right" valign="top">virtual Theorem </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE__Rules.html#gae7221bb8b77313a9b53a4beca9cc0aa0">CVC3::SearchEngineRules::unitProp</a> (const std::vector< Theorem > &thms, const Theorem &clause, unsigned i)=0</td></tr> <tr class="memdesc:gae7221bb8b77313a9b53a4beca9cc0aa0"><td class="mdescLeft"> </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"> </td></tr> <tr class="memitem:ga9c74425b4471d411f58f16781951c441"><td class="memItemLeft" align="right" valign="top">virtual Theorem </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE__Rules.html#ga9c74425b4471d411f58f16781951c441">CVC3::SearchEngineRules::conflictRule</a> (const std::vector< Theorem > &thms, const Theorem &clause)=0</td></tr> <tr class="memdesc:ga9c74425b4471d411f58f16781951c441"><td class="mdescLeft"> </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"> </td></tr> <tr class="memitem:gaf5a18f8bcdc2f71632f05bcfe0bc533e"><td class="memItemLeft" align="right" valign="top">virtual Theorem </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE__Rules.html#gaf5a18f8bcdc2f71632f05bcfe0bc533e">CVC3::SearchEngineRules::propAndrAF</a> (const Theorem &andr_th, bool left, const Theorem &b_th)=0</td></tr> <tr class="separator:gaf5a18f8bcdc2f71632f05bcfe0bc533e"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gac7998bdcac234b0f3dc202d44b49c69c"><td class="memItemLeft" align="right" valign="top">virtual Theorem </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE__Rules.html#gac7998bdcac234b0f3dc202d44b49c69c">CVC3::SearchEngineRules::propAndrAT</a> (const Theorem &andr_th, const Theorem &l_th, const Theorem &r_th)=0</td></tr> <tr class="separator:gac7998bdcac234b0f3dc202d44b49c69c"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gad0150b04c296a6b8e05579c1dbd365f8"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE__Rules.html#gad0150b04c296a6b8e05579c1dbd365f8">CVC3::SearchEngineRules::propAndrLRT</a> (const Theorem &andr_th, const Theorem &a_th, Theorem *l_th, Theorem *r_th)=0</td></tr> <tr class="separator:gad0150b04c296a6b8e05579c1dbd365f8"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga8c8fc73c8b0413f5ca3fa7d72e687f5b"><td class="memItemLeft" align="right" valign="top">virtual Theorem </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE__Rules.html#ga8c8fc73c8b0413f5ca3fa7d72e687f5b">CVC3::SearchEngineRules::propAndrLF</a> (const Theorem &andr_th, const Theorem &a_th, const Theorem &r_th)=0</td></tr> <tr class="separator:ga8c8fc73c8b0413f5ca3fa7d72e687f5b"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga1158c41e7b7ed199271391d4404ce1b2"><td class="memItemLeft" align="right" valign="top">virtual Theorem </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE__Rules.html#ga1158c41e7b7ed199271391d4404ce1b2">CVC3::SearchEngineRules::propAndrRF</a> (const Theorem &andr_th, const Theorem &a_th, const Theorem &l_th)=0</td></tr> <tr class="separator:ga1158c41e7b7ed199271391d4404ce1b2"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga09d987f2d81c19d798d7185b125879b6"><td class="memItemLeft" align="right" valign="top">virtual Theorem </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE__Rules.html#ga09d987f2d81c19d798d7185b125879b6">CVC3::SearchEngineRules::confAndrAT</a> (const Theorem &andr_th, const Theorem &a_th, bool left, const Theorem &b_th)=0</td></tr> <tr class="separator:ga09d987f2d81c19d798d7185b125879b6"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gadb878db4f9d24a21b62f50df2713ecca"><td class="memItemLeft" align="right" valign="top">virtual Theorem </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE__Rules.html#gadb878db4f9d24a21b62f50df2713ecca">CVC3::SearchEngineRules::confAndrAF</a> (const Theorem &andr_th, const Theorem &a_th, const Theorem &l_th, const Theorem &r_th)=0</td></tr> <tr class="separator:gadb878db4f9d24a21b62f50df2713ecca"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga9bc3e3eab4b1fe4fb2c0a0172ca25ee9"><td class="memItemLeft" align="right" valign="top">virtual Theorem </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE__Rules.html#ga9bc3e3eab4b1fe4fb2c0a0172ca25ee9">CVC3::SearchEngineRules::propIffr</a> (const Theorem &iffr_th, int p, const Theorem &a_th, const Theorem &b_th)=0</td></tr> <tr class="separator:ga9bc3e3eab4b1fe4fb2c0a0172ca25ee9"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gaef31b1a5f6d6e9f270a1ab28ee361b14"><td class="memItemLeft" align="right" valign="top">virtual Theorem </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE__Rules.html#gaef31b1a5f6d6e9f270a1ab28ee361b14">CVC3::SearchEngineRules::confIffr</a> (const Theorem &iffr_th, const Theorem &i_th, const Theorem &l_th, const Theorem &r_th)=0</td></tr> <tr class="separator:gaef31b1a5f6d6e9f270a1ab28ee361b14"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga979ad08269cd2799993628eaaccc146f"><td class="memItemLeft" align="right" valign="top">virtual Theorem </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE__Rules.html#ga979ad08269cd2799993628eaaccc146f">CVC3::SearchEngineRules::propIterIte</a> (const Theorem &iter_th, bool left, const Theorem &if_th, const Theorem &then_th)=0</td></tr> <tr class="separator:ga979ad08269cd2799993628eaaccc146f"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gad35217bbc9f4a27b4d23af173e9ea2c7"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE__Rules.html#gad35217bbc9f4a27b4d23af173e9ea2c7">CVC3::SearchEngineRules::propIterIfThen</a> (const Theorem &iter_th, bool left, const Theorem &ite_th, const Theorem &then_th, Theorem *if_th, Theorem *else_th)=0</td></tr> <tr class="separator:gad35217bbc9f4a27b4d23af173e9ea2c7"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gab7b07d3b350b2cc7f3f596233abb54ea"><td class="memItemLeft" align="right" valign="top">virtual Theorem </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE__Rules.html#gab7b07d3b350b2cc7f3f596233abb54ea">CVC3::SearchEngineRules::propIterThen</a> (const Theorem &iter_th, const Theorem &ite_th, const Theorem &if_th)=0</td></tr> <tr class="separator:gab7b07d3b350b2cc7f3f596233abb54ea"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gaae491d08949a1ec57981526c8e960119"><td class="memItemLeft" align="right" valign="top">virtual Theorem </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE__Rules.html#gaae491d08949a1ec57981526c8e960119">CVC3::SearchEngineRules::confIterThenElse</a> (const Theorem &iter_th, const Theorem &ite_th, const Theorem &then_th, const Theorem &else_th)=0</td></tr> <tr class="separator:gaae491d08949a1ec57981526c8e960119"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga771471d7cbb2253bc32f2a8018bd7182"><td class="memItemLeft" align="right" valign="top">virtual Theorem </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE__Rules.html#ga771471d7cbb2253bc32f2a8018bd7182">CVC3::SearchEngineRules::confIterIfThen</a> (const Theorem &iter_th, bool left, const Theorem &ite_th, const Theorem &if_th, const Theorem &then_th)=0</td></tr> <tr class="separator:ga771471d7cbb2253bc32f2a8018bd7182"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gab183ff7d1013729d0d3e2dbe28686e3c"><td class="memItemLeft" align="right" valign="top">virtual Theorem </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE__Rules.html#gab183ff7d1013729d0d3e2dbe28686e3c">CVC3::SearchEngineRules::andCNFRule</a> (const Theorem &thm)=0</td></tr> <tr class="memdesc:gab183ff7d1013729d0d3e2dbe28686e3c"><td class="mdescLeft"> </td><td class="mdescRight">AND(x1,...,xn) <=> v |- CNF[AND(x1,...,xn) <=> v]. <a href="#gab183ff7d1013729d0d3e2dbe28686e3c"></a><br/></td></tr> <tr class="separator:gab183ff7d1013729d0d3e2dbe28686e3c"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga7086aa693d2a3421bc349eca8e9938ba"><td class="memItemLeft" align="right" valign="top">virtual Theorem </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE__Rules.html#ga7086aa693d2a3421bc349eca8e9938ba">CVC3::SearchEngineRules::orCNFRule</a> (const Theorem &thm)=0</td></tr> <tr class="memdesc:ga7086aa693d2a3421bc349eca8e9938ba"><td class="mdescLeft"> </td><td class="mdescRight">OR(x1,...,xn) <=> v |- CNF[OR(x1,...,xn) <=> v]. <a href="#ga7086aa693d2a3421bc349eca8e9938ba"></a><br/></td></tr> <tr class="separator:ga7086aa693d2a3421bc349eca8e9938ba"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga25f7b95c8ebce2be117d03a1c93d715f"><td class="memItemLeft" align="right" valign="top">virtual Theorem </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE__Rules.html#ga25f7b95c8ebce2be117d03a1c93d715f">CVC3::SearchEngineRules::impCNFRule</a> (const Theorem &thm)=0</td></tr> <tr class="memdesc:ga25f7b95c8ebce2be117d03a1c93d715f"><td class="mdescLeft"> </td><td class="mdescRight">(x1 => x2) <=> v |- CNF[(x1 => x2) <=> v] <a href="#ga25f7b95c8ebce2be117d03a1c93d715f"></a><br/></td></tr> <tr class="separator:ga25f7b95c8ebce2be117d03a1c93d715f"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga4ab7606744594db9050cb83fe6b73668"><td class="memItemLeft" align="right" valign="top">virtual Theorem </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE__Rules.html#ga4ab7606744594db9050cb83fe6b73668">CVC3::SearchEngineRules::iffCNFRule</a> (const Theorem &thm)=0</td></tr> <tr class="memdesc:ga4ab7606744594db9050cb83fe6b73668"><td class="mdescLeft"> </td><td class="mdescRight">(x1 <=> x2) <=> v |- CNF[(x1 <=> x2) <=> v] <a href="#ga4ab7606744594db9050cb83fe6b73668"></a><br/></td></tr> <tr class="separator:ga4ab7606744594db9050cb83fe6b73668"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gae9263cbcedf5def99b3c49ee6978497a"><td class="memItemLeft" align="right" valign="top">virtual Theorem </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE__Rules.html#gae9263cbcedf5def99b3c49ee6978497a">CVC3::SearchEngineRules::iteCNFRule</a> (const Theorem &thm)=0</td></tr> <tr class="memdesc:gae9263cbcedf5def99b3c49ee6978497a"><td class="mdescLeft"> </td><td class="mdescRight">ITE(c, x1, x2) <=> v |- CNF[ITE(c, x1, x2) <=> v]. <a href="#gae9263cbcedf5def99b3c49ee6978497a"></a><br/></td></tr> <tr class="separator:gae9263cbcedf5def99b3c49ee6978497a"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga9b9c0fe62505477b6ec9774c1b5b2494"><td class="memItemLeft" align="right" valign="top">virtual Theorem </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE__Rules.html#ga9b9c0fe62505477b6ec9774c1b5b2494">CVC3::SearchEngineRules::iteToClauses</a> (const Theorem &ite)=0</td></tr> <tr class="memdesc:ga9b9c0fe62505477b6ec9774c1b5b2494"><td class="mdescLeft"> </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"> </td></tr> <tr class="memitem:ga356cd5a36ede50921fbaa3bc7e222d4f"><td class="memItemLeft" align="right" valign="top">virtual Theorem </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE__Rules.html#ga356cd5a36ede50921fbaa3bc7e222d4f">CVC3::SearchEngineRules::iffToClauses</a> (const Theorem &iff)=0</td></tr> <tr class="memdesc:ga356cd5a36ede50921fbaa3bc7e222d4f"><td class="mdescLeft"> </td><td class="mdescRight">e1 <=> 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"> </td></tr> <tr class="memitem:ga55daf0bf95530208f5abf9484ded9055"><td class="memItemLeft" align="right" valign="top">virtual Theorem </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE__Rules.html#ga55daf0bf95530208f5abf9484ded9055">CVC3::SearchEngineRules::satProof</a> (const Expr &queryExpr, const Proof &satProof)=0</td></tr> <tr class="separator:ga55daf0bf95530208f5abf9484ded9055"><td class="memSeparator" colspan="2"> </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> & </td> <td class="paramname"><em>tFalse</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const std::vector< <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> > & </td> <td class="paramname"><em>delta</em> </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 => Gamma|- false where Delta is a set of skolem axioms {|-Exists(x) phi (x) => 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> & </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> & </td> <td class="paramname"><em>pfFalse</em> </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> & </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> & </td> <td class="paramname"><em>pfFalse</em> </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> & </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> & </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> & </td> <td class="paramname"><em>not_a_proves_c</em> </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> & </td> <td class="paramname"><em>thm</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const std::vector< <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> > & </td> <td class="paramname"><em>lits</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const std::vector< <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> > & </td> <td class="paramname"><em>gamma</em> </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< <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> > & </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> & </td> <td class="paramname"><em>as_prove_b</em> </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< <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> > & </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> & </td> <td class="paramname"><em>clause</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned </td> <td class="paramname"><em>i</em> </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< <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> > & </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> & </td> <td class="paramname"><em>clause</em> </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> & </td> <td class="paramname"><em>andr_th</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">bool </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> & </td> <td class="paramname"><em>b_th</em> </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> & </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> & </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> & </td> <td class="paramname"><em>r_th</em> </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> & </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> & </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> * </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> * </td> <td class="paramname"><em>r_th</em> </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> & </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> & </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> & </td> <td class="paramname"><em>r_th</em> </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> & </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> & </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> & </td> <td class="paramname"><em>l_th</em> </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> & </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> & </td> <td class="paramname"><em>a_th</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">bool </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> & </td> <td class="paramname"><em>b_th</em> </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> & </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> & </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> & </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> & </td> <td class="paramname"><em>r_th</em> </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> & </td> <td class="paramname"><em>iffr_th</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </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> & </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> & </td> <td class="paramname"><em>b_th</em> </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> & </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> & </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> & </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> & </td> <td class="paramname"><em>r_th</em> </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> & </td> <td class="paramname"><em>iter_th</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">bool </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> & </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> & </td> <td class="paramname"><em>then_th</em> </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> & </td> <td class="paramname"><em>iter_th</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">bool </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> & </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> & </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> * </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> * </td> <td class="paramname"><em>else_th</em> </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> & </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> & </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> & </td> <td class="paramname"><em>if_th</em> </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> & </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> & </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> & </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> & </td> <td class="paramname"><em>else_th</em> </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> & </td> <td class="paramname"><em>iter_th</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">bool </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> & </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> & </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> & </td> <td class="paramname"><em>then_th</em> </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> & </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) <=> v |- CNF[AND(x1,...,xn) <=> 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> & </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) <=> v |- CNF[OR(x1,...,xn) <=> 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> & </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 => x2) <=> v |- CNF[(x1 => x2) <=> 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> & </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 <=> x2) <=> v |- CNF[(x1 <=> x2) <=> 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> & </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) <=> v |- CNF[ITE(c, x1, x2) <=> 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> & </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> & </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 <=> 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> & </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> & </td> <td class="paramname"><em>satProof</em> </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  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/> </a> 1.8.2 </small></address> </body> </html>