<!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: CVC3::SearchImplBase Class Reference</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 class="current"><a href="annotated.html"><span>Classes</span></a></li> <li><a href="files.html"><span>Files</span></a></li> </ul> </div> <div id="navrow2" class="tabs2"> <ul class="tablist"> <li><a href="annotated.html"><span>Class List</span></a></li> <li><a href="classes.html"><span>Class Index</span></a></li> <li><a href="inherits.html"><span>Class Hierarchy</span></a></li> <li><a href="functions.html"><span>Class Members</span></a></li> </ul> </div> <div id="nav-path" class="navpath"> <ul> <li class="navelem"><a class="el" href="namespaceCVC3.html">CVC3</a></li><li class="navelem"><a class="el" href="classCVC3_1_1SearchImplBase.html">SearchImplBase</a></li> </ul> </div> </div><!-- top --> <div class="header"> <div class="summary"> <a href="#nested-classes">Classes</a> | <a href="#pub-methods">Public Member Functions</a> | <a href="#pro-methods">Protected Member Functions</a> | <a href="#pro-attribs">Protected Attributes</a> | <a href="#pri-methods">Private Member Functions</a> | <a href="#friends">Friends</a> | <a href="classCVC3_1_1SearchImplBase-members.html">List of all members</a> </div> <div class="headertitle"> <div class="title">CVC3::SearchImplBase Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span><div class="ingroups"><a class="el" href="group__SE.html">Search Engine</a></div></div> </div> </div><!--header--> <div class="contents"> <p>API to to a generic proof search engine (a.k.a. <a class="el" href="namespaceSAT.html">SAT</a> solver) <a href="classCVC3_1_1SearchImplBase.html#details">More...</a></p> <p><code>#include <<a class="el" href="search__impl__base_8h_source.html">search_impl_base.h</a>></code></p> <p>Inherits <a class="el" href="classCVC3_1_1SearchEngine.html">CVC3::SearchEngine</a>.</p> <p>Inherited by <a class="el" href="classCVC3_1_1SearchEngineFast.html">CVC3::SearchEngineFast</a>, and <a class="el" href="classCVC3_1_1SearchSimple.html">CVC3::SearchSimple</a>.</p> <div class="dynheader"> Collaboration diagram for CVC3::SearchImplBase:</div> <div class="dyncontent"> <div class="center"><img src="classCVC3_1_1SearchImplBase__coll__graph.gif" border="0" usemap="#CVC3_1_1SearchImplBase_coll__map" alt="Collaboration graph"/></div> <map name="CVC3_1_1SearchImplBase_coll__map" id="CVC3_1_1SearchImplBase_coll__map"> </map> </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_1SearchImplBase_1_1Splitter.html">Splitter</a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Representation of a DP-suggested splitter. <a href="classCVC3_1_1SearchImplBase_1_1Splitter.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="pub-methods"></a> Public Member Functions</h2></td></tr> <tr class="memitem:ga12db60dd52e1223d009f6b51b654f70e"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE.html#ga12db60dd52e1223d009f6b51b654f70e">getBottomScope</a> ()</td></tr> <tr class="separator:ga12db60dd52e1223d009f6b51b654f70e"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga9babda9b0bcd226dd4d0a736cd433893"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE.html#ga9babda9b0bcd226dd4d0a736cd433893">isClause</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &e)</td></tr> <tr class="memdesc:ga9babda9b0bcd226dd4d0a736cd433893"><td class="mdescLeft"> </td><td class="mdescRight">Check if e is a clause (a literal, or a disjunction of literals) <a href="group__SE.html#ga9babda9b0bcd226dd4d0a736cd433893"></a><br/></td></tr> <tr class="separator:ga9babda9b0bcd226dd4d0a736cd433893"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga9db77121699fbbdbff209014b8ab26c3"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE.html#ga9db77121699fbbdbff209014b8ab26c3">isPropClause</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &e)</td></tr> <tr class="memdesc:ga9db77121699fbbdbff209014b8ab26c3"><td class="mdescLeft"> </td><td class="mdescRight">Check if e is a propositional clause. <a href="group__SE.html#ga9db77121699fbbdbff209014b8ab26c3"></a><br/></td></tr> <tr class="separator:ga9db77121699fbbdbff209014b8ab26c3"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga92018736294ba073bc5db887467944ad"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE.html#ga92018736294ba073bc5db887467944ad">isCNFVar</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &e)</td></tr> <tr class="memdesc:ga92018736294ba073bc5db887467944ad"><td class="mdescLeft"> </td><td class="mdescRight">Check whether e is a fresh variable introduced by the CNF converter. <a href="group__SE.html#ga92018736294ba073bc5db887467944ad"></a><br/></td></tr> <tr class="separator:ga92018736294ba073bc5db887467944ad"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gaed4079f44a18e496b87366ce65b20d99"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE.html#gaed4079f44a18e496b87366ce65b20d99">isGoodSplitter</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &e)</td></tr> <tr class="memdesc:gaed4079f44a18e496b87366ce65b20d99"><td class="mdescLeft"> </td><td class="mdescRight">Check if a splitter is required for completeness. <a href="group__SE.html#gaed4079f44a18e496b87366ce65b20d99"></a><br/></td></tr> <tr class="separator:gaed4079f44a18e496b87366ce65b20d99"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gaa6e44780a3c5e714f4fd5d8ee41bb1fb"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE.html#gaa6e44780a3c5e714f4fd5d8ee41bb1fb">SearchImplBase</a> (<a class="el" href="classCVC3_1_1TheoryCore.html">TheoryCore</a> *core)</td></tr> <tr class="memdesc:gaa6e44780a3c5e714f4fd5d8ee41bb1fb"><td class="mdescLeft"> </td><td class="mdescRight">Constructor. <a href="group__SE.html#gaa6e44780a3c5e714f4fd5d8ee41bb1fb"></a><br/></td></tr> <tr class="separator:gaa6e44780a3c5e714f4fd5d8ee41bb1fb"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga139d4116c2b14d5357f2696dc8f29cac"><td class="memItemLeft" align="right" valign="top">virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE.html#ga139d4116c2b14d5357f2696dc8f29cac">~SearchImplBase</a> ()</td></tr> <tr class="memdesc:ga139d4116c2b14d5357f2696dc8f29cac"><td class="mdescLeft"> </td><td class="mdescRight">Destructor. <a href="group__SE.html#ga139d4116c2b14d5357f2696dc8f29cac"></a><br/></td></tr> <tr class="separator:ga139d4116c2b14d5357f2696dc8f29cac"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gac4e5351fec1964bf7571d67e90a1538d"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE.html#gac4e5351fec1964bf7571d67e90a1538d">registerAtom</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &e)</td></tr> <tr class="memdesc:gac4e5351fec1964bf7571d67e90a1538d"><td class="mdescLeft"> </td><td class="mdescRight">Register an atomic formula of interest. <a href="group__SE.html#gac4e5351fec1964bf7571d67e90a1538d"></a><br/></td></tr> <tr class="separator:gac4e5351fec1964bf7571d67e90a1538d"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga65ca9e33c2ac0807f0ef680415457c45"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE.html#ga65ca9e33c2ac0807f0ef680415457c45">getImpliedLiteral</a> ()</td></tr> <tr class="memdesc:ga65ca9e33c2ac0807f0ef680415457c45"><td class="mdescLeft"> </td><td class="mdescRight">Return next literal implied by last assertion. Null <a class="el" href="classCVC3_1_1Expr.html" title="Data structure of expressions in CVC3.">Expr</a> if none. <a href="group__SE.html#ga65ca9e33c2ac0807f0ef680415457c45"></a><br/></td></tr> <tr class="separator:ga65ca9e33c2ac0807f0ef680415457c45"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gae987ab9ab6129f83efb0b5649cc2003c"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE.html#gae987ab9ab6129f83efb0b5649cc2003c">push</a> ()</td></tr> <tr class="memdesc:gae987ab9ab6129f83efb0b5649cc2003c"><td class="mdescLeft"> </td><td class="mdescRight">Push a checkpoint. <a href="group__SE.html#gae987ab9ab6129f83efb0b5649cc2003c"></a><br/></td></tr> <tr class="separator:gae987ab9ab6129f83efb0b5649cc2003c"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga84ceb5e9dcc4e57c1f48f77f4b2f8db5"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE.html#ga84ceb5e9dcc4e57c1f48f77f4b2f8db5">pop</a> ()</td></tr> <tr class="memdesc:ga84ceb5e9dcc4e57c1f48f77f4b2f8db5"><td class="mdescLeft"> </td><td class="mdescRight">Restore last checkpoint. <a href="group__SE.html#ga84ceb5e9dcc4e57c1f48f77f4b2f8db5"></a><br/></td></tr> <tr class="separator:ga84ceb5e9dcc4e57c1f48f77f4b2f8db5"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga1e6282534845cfe93f245d9983d58761"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceCVC3.html#a060d21b3207cc3471e24f8dbcff3498b">QueryResult</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE.html#ga1e6282534845cfe93f245d9983d58761">checkValidInternal</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &e)=0</td></tr> <tr class="memdesc:ga1e6282534845cfe93f245d9983d58761"><td class="mdescLeft"> </td><td class="mdescRight">Checks the validity of a formula in the current context. <a href="group__SE.html#ga1e6282534845cfe93f245d9983d58761"></a><br/></td></tr> <tr class="separator:ga1e6282534845cfe93f245d9983d58761"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga83d82b8cf43e9dc8240e762b180f6343"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceCVC3.html#a060d21b3207cc3471e24f8dbcff3498b">QueryResult</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE.html#ga83d82b8cf43e9dc8240e762b180f6343">checkValid</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &e, <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &result)</td></tr> <tr class="memdesc:ga83d82b8cf43e9dc8240e762b180f6343"><td class="mdescLeft"> </td><td class="mdescRight">Similar to <a class="el" href="group__SE.html#ga1e6282534845cfe93f245d9983d58761" title="Checks the validity of a formula in the current context.">checkValidInternal()</a>, only returns Theorem(e) or Null. <a href="group__SE.html#ga83d82b8cf43e9dc8240e762b180f6343"></a><br/></td></tr> <tr class="separator:ga83d82b8cf43e9dc8240e762b180f6343"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gaf89e6b914a2099b366258953fccb6277"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceCVC3.html#a060d21b3207cc3471e24f8dbcff3498b">QueryResult</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE.html#gaf89e6b914a2099b366258953fccb6277">restartInternal</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &e)=0</td></tr> <tr class="memdesc:gaf89e6b914a2099b366258953fccb6277"><td class="mdescLeft"> </td><td class="mdescRight">Reruns last check with e as an additional assumption. <a href="group__SE.html#gaf89e6b914a2099b366258953fccb6277"></a><br/></td></tr> <tr class="separator:gaf89e6b914a2099b366258953fccb6277"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gad4a8edbe5a6520fc9f564ec1c65d4729"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceCVC3.html#a060d21b3207cc3471e24f8dbcff3498b">QueryResult</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE.html#gad4a8edbe5a6520fc9f564ec1c65d4729">restart</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &e, <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &result)</td></tr> <tr class="memdesc:gad4a8edbe5a6520fc9f564ec1c65d4729"><td class="mdescLeft"> </td><td class="mdescRight">Reruns last check with e as an additional assumption. <a href="group__SE.html#gad4a8edbe5a6520fc9f564ec1c65d4729"></a><br/></td></tr> <tr class="separator:gad4a8edbe5a6520fc9f564ec1c65d4729"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga7d62893d0d19ed50cc1f616a92d536c0"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE.html#ga7d62893d0d19ed50cc1f616a92d536c0">returnFromCheck</a> ()</td></tr> <tr class="memdesc:ga7d62893d0d19ed50cc1f616a92d536c0"><td class="mdescLeft"> </td><td class="mdescRight">Returns to context immediately before last call to checkValid. <a href="group__SE.html#ga7d62893d0d19ed50cc1f616a92d536c0"></a><br/></td></tr> <tr class="separator:ga7d62893d0d19ed50cc1f616a92d536c0"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga95428fe99c7a85e5e90ba6b2dce0e024"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE.html#ga95428fe99c7a85e5e90ba6b2dce0e024">lastThm</a> ()</td></tr> <tr class="memdesc:ga95428fe99c7a85e5e90ba6b2dce0e024"><td class="mdescLeft"> </td><td class="mdescRight">Returns the result of the most recent valid theorem. <a href="group__SE.html#ga95428fe99c7a85e5e90ba6b2dce0e024"></a><br/></td></tr> <tr class="separator:ga95428fe99c7a85e5e90ba6b2dce0e024"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gaf46a82b16f76c9e97cfe252d4398eac7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE.html#gaf46a82b16f76c9e97cfe252d4398eac7">newUserAssumption</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &e)</td></tr> <tr class="memdesc:gaf46a82b16f76c9e97cfe252d4398eac7"><td class="mdescLeft"> </td><td class="mdescRight">Generate and add a new assertion to the set of assertions in the current context. This should only be used by class <a class="el" href="classCVC3_1_1VCL.html">VCL</a> in assertFormula(). <a href="group__SE.html#gaf46a82b16f76c9e97cfe252d4398eac7"></a><br/></td></tr> <tr class="separator:gaf46a82b16f76c9e97cfe252d4398eac7"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga635768498a239f0193de5f1445676f65"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE.html#ga635768498a239f0193de5f1445676f65">newIntAssumption</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &e)</td></tr> <tr class="memdesc:ga635768498a239f0193de5f1445676f65"><td class="mdescLeft"> </td><td class="mdescRight">Add a new internal asserion. <a href="group__SE.html#ga635768498a239f0193de5f1445676f65"></a><br/></td></tr> <tr class="separator:ga635768498a239f0193de5f1445676f65"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gab6852f32844435f73f86665c40d2fda8"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE.html#gab6852f32844435f73f86665c40d2fda8">newIntAssumption</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &thm)</td></tr> <tr class="memdesc:gab6852f32844435f73f86665c40d2fda8"><td class="mdescLeft"> </td><td class="mdescRight">Helper for above function. <a href="group__SE.html#gab6852f32844435f73f86665c40d2fda8"></a><br/></td></tr> <tr class="separator:gab6852f32844435f73f86665c40d2fda8"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gab730f3f048637996f532f77af932fe55"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE.html#gab730f3f048637996f532f77af932fe55">getUserAssumptions</a> (std::vector< <a class="el" href="classCVC3_1_1Expr.html">Expr</a> > &assumptions)</td></tr> <tr class="memdesc:gab730f3f048637996f532f77af932fe55"><td class="mdescLeft"> </td><td class="mdescRight">Get all assumptions made in this and all previous contexts. <a href="group__SE.html#gab730f3f048637996f532f77af932fe55"></a><br/></td></tr> <tr class="separator:gab730f3f048637996f532f77af932fe55"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gae65e0921e9ef2b475242b1a284a413ad"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE.html#gae65e0921e9ef2b475242b1a284a413ad">getInternalAssumptions</a> (std::vector< <a class="el" href="classCVC3_1_1Expr.html">Expr</a> > &assumptions)</td></tr> <tr class="memdesc:gae65e0921e9ef2b475242b1a284a413ad"><td class="mdescLeft"> </td><td class="mdescRight">Get assumptions made internally in this and all previous contexts. <a href="group__SE.html#gae65e0921e9ef2b475242b1a284a413ad"></a><br/></td></tr> <tr class="separator:gae65e0921e9ef2b475242b1a284a413ad"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gadadf46fa5200744c9f30ca548080d35d"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE.html#gadadf46fa5200744c9f30ca548080d35d">getAssumptions</a> (std::vector< <a class="el" href="classCVC3_1_1Expr.html">Expr</a> > &assumptions)</td></tr> <tr class="memdesc:gadadf46fa5200744c9f30ca548080d35d"><td class="mdescLeft"> </td><td class="mdescRight">Get all assumptions made in this and all previous contexts. <a href="group__SE.html#gadadf46fa5200744c9f30ca548080d35d"></a><br/></td></tr> <tr class="separator:gadadf46fa5200744c9f30ca548080d35d"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga38ec2c19ebab8525ebc3c6249bf97442"><td class="memItemLeft" align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE.html#ga38ec2c19ebab8525ebc3c6249bf97442">isAssumption</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &e)</td></tr> <tr class="memdesc:ga38ec2c19ebab8525ebc3c6249bf97442"><td class="mdescLeft"> </td><td class="mdescRight">Check if the formula has been assumed. <a href="group__SE.html#ga38ec2c19ebab8525ebc3c6249bf97442"></a><br/></td></tr> <tr class="separator:ga38ec2c19ebab8525ebc3c6249bf97442"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gac6e807418fb26dee354f7f934eb432ba"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE.html#gac6e807418fb26dee354f7f934eb432ba">addFact</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &thm)</td></tr> <tr class="memdesc:gac6e807418fb26dee354f7f934eb432ba"><td class="mdescLeft"> </td><td class="mdescRight">Add a new fact to the search engine from the core. <a href="group__SE.html#gac6e807418fb26dee354f7f934eb432ba"></a><br/></td></tr> <tr class="separator:gac6e807418fb26dee354f7f934eb432ba"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga6c1448b58fb299bc084aa9c522faf36d"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE.html#ga6c1448b58fb299bc084aa9c522faf36d">addSplitter</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &e, int priority)</td></tr> <tr class="memdesc:ga6c1448b58fb299bc084aa9c522faf36d"><td class="mdescLeft"> </td><td class="mdescRight">Suggest a splitter to the <a class="el" href="classCVC3_1_1SearchEngine.html" title="API to to a generic proof search engine.">SearchEngine</a>. <a href="group__SE.html#ga6c1448b58fb299bc084aa9c522faf36d"></a><br/></td></tr> <tr class="separator:ga6c1448b58fb299bc084aa9c522faf36d"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gacf93ae1a488573c6d34dee7721007351"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE.html#gacf93ae1a488573c6d34dee7721007351">getCounterExample</a> (std::vector< <a class="el" href="classCVC3_1_1Expr.html">Expr</a> > &assertions, bool inOrder=true)</td></tr> <tr class="memdesc:gacf93ae1a488573c6d34dee7721007351"><td class="mdescLeft"> </td><td class="mdescRight">Will return the set of assertions which make the queried formula false. <a href="group__SE.html#gacf93ae1a488573c6d34dee7721007351"></a><br/></td></tr> <tr class="separator:gacf93ae1a488573c6d34dee7721007351"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gaf90e8ae5cd67dc6c43787a9d3ebdca53"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classCVC3_1_1Proof.html">Proof</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE.html#gaf90e8ae5cd67dc6c43787a9d3ebdca53">getProof</a> ()</td></tr> <tr class="memdesc:gaf90e8ae5cd67dc6c43787a9d3ebdca53"><td class="mdescLeft"> </td><td class="mdescRight">Returns the proof term for the last proven query. <a href="group__SE.html#gaf90e8ae5cd67dc6c43787a9d3ebdca53"></a><br/></td></tr> <tr class="separator:gaf90e8ae5cd67dc6c43787a9d3ebdca53"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga24dc510f27c40d8044f461308bcdb62d"><td class="memItemLeft" align="right" valign="top">virtual const <a class="el" href="classCVC3_1_1Assumptions.html">Assumptions</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE.html#ga24dc510f27c40d8044f461308bcdb62d">getAssumptionsUsed</a> ()</td></tr> <tr class="memdesc:ga24dc510f27c40d8044f461308bcdb62d"><td class="mdescLeft"> </td><td class="mdescRight">Returns the set of assumptions used in the proof. It should be a subset of <a class="el" href="group__SE.html#gadadf46fa5200744c9f30ca548080d35d" title="Get all assumptions made in this and all previous contexts.">getAssumptions()</a>. <a href="group__SE.html#ga24dc510f27c40d8044f461308bcdb62d"></a><br/></td></tr> <tr class="separator:ga24dc510f27c40d8044f461308bcdb62d"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga0d509e38a03048dcbdb9e28f3f5da724"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE.html#ga0d509e38a03048dcbdb9e28f3f5da724">processResult</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &res, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &e)</td></tr> <tr class="memdesc:ga0d509e38a03048dcbdb9e28f3f5da724"><td class="mdescLeft"> </td><td class="mdescRight">Process result of checkValid. <a href="group__SE.html#ga0d509e38a03048dcbdb9e28f3f5da724"></a><br/></td></tr> <tr class="separator:ga0d509e38a03048dcbdb9e28f3f5da724"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gadf867c70d67d05d72a11895a2cc13971"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceCVC3.html#a9d68f126b86e6fd08b3bc13a511df9bf">FormulaValue</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE.html#gadf867c70d67d05d72a11895a2cc13971">getValue</a> (const <a class="el" href="classCVC3_1_1Expr.html">CVC3::Expr</a> &e)</td></tr> <tr class="separator:gadf867c70d67d05d72a11895a2cc13971"><td class="memSeparator" colspan="2"> </td></tr> <tr class="inherit_header pub_methods_classCVC3_1_1SearchEngine"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classCVC3_1_1SearchEngine')"><img src="closed.png" alt="-"/> Public Member Functions inherited from <a class="el" href="classCVC3_1_1SearchEngine.html">CVC3::SearchEngine</a></td></tr> <tr class="memitem:ga2763859e03e0a91877d91e20a3d26a7a inherit pub_methods_classCVC3_1_1SearchEngine"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE.html#ga2763859e03e0a91877d91e20a3d26a7a">SearchEngine</a> (<a class="el" href="classCVC3_1_1TheoryCore.html">TheoryCore</a> *core)</td></tr> <tr class="memdesc:ga2763859e03e0a91877d91e20a3d26a7a inherit pub_methods_classCVC3_1_1SearchEngine"><td class="mdescLeft"> </td><td class="mdescRight">Constructor. <a href="group__SE.html#ga2763859e03e0a91877d91e20a3d26a7a"></a><br/></td></tr> <tr class="separator:ga2763859e03e0a91877d91e20a3d26a7a inherit pub_methods_classCVC3_1_1SearchEngine"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga863ab87efd742b9a8f20b87774ab570f inherit pub_methods_classCVC3_1_1SearchEngine"><td class="memItemLeft" align="right" valign="top">virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE.html#ga863ab87efd742b9a8f20b87774ab570f">~SearchEngine</a> ()</td></tr> <tr class="memdesc:ga863ab87efd742b9a8f20b87774ab570f inherit pub_methods_classCVC3_1_1SearchEngine"><td class="mdescLeft"> </td><td class="mdescRight">Destructor. <a href="group__SE.html#ga863ab87efd742b9a8f20b87774ab570f"></a><br/></td></tr> <tr class="separator:ga863ab87efd742b9a8f20b87774ab570f inherit pub_methods_classCVC3_1_1SearchEngine"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga942b3cc50f5ea9da1b3117ee23eff9c2 inherit pub_methods_classCVC3_1_1SearchEngine"><td class="memItemLeft" align="right" valign="top">virtual const std::string & </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE.html#ga942b3cc50f5ea9da1b3117ee23eff9c2">getName</a> ()=0</td></tr> <tr class="memdesc:ga942b3cc50f5ea9da1b3117ee23eff9c2 inherit pub_methods_classCVC3_1_1SearchEngine"><td class="mdescLeft"> </td><td class="mdescRight">Name of this search engine. <a href="group__SE.html#ga942b3cc50f5ea9da1b3117ee23eff9c2"></a><br/></td></tr> <tr class="separator:ga942b3cc50f5ea9da1b3117ee23eff9c2 inherit pub_methods_classCVC3_1_1SearchEngine"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga09d347bd55d59dc8f1d2f711df0d1c4c inherit pub_methods_classCVC3_1_1SearchEngine"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1CommonProofRules.html">CommonProofRules</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE.html#ga09d347bd55d59dc8f1d2f711df0d1c4c">getCommonRules</a> ()</td></tr> <tr class="memdesc:ga09d347bd55d59dc8f1d2f711df0d1c4c inherit pub_methods_classCVC3_1_1SearchEngine"><td class="mdescLeft"> </td><td class="mdescRight">Accessor for common rules. <a href="group__SE.html#ga09d347bd55d59dc8f1d2f711df0d1c4c"></a><br/></td></tr> <tr class="separator:ga09d347bd55d59dc8f1d2f711df0d1c4c inherit pub_methods_classCVC3_1_1SearchEngine"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga895a3150e972fb79a7a3ab26100dd31e inherit pub_methods_classCVC3_1_1SearchEngine"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1TheoryCore.html">TheoryCore</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE.html#ga895a3150e972fb79a7a3ab26100dd31e">theoryCore</a> ()</td></tr> <tr class="memdesc:ga895a3150e972fb79a7a3ab26100dd31e inherit pub_methods_classCVC3_1_1SearchEngine"><td class="mdescLeft"> </td><td class="mdescRight">Accessor for <a class="el" href="classCVC3_1_1TheoryCore.html" title="This theory handles the built-in logical connectives plus equality. It also handles the registration ...">TheoryCore</a>. <a href="group__SE.html#ga895a3150e972fb79a7a3ab26100dd31e"></a><br/></td></tr> <tr class="separator:ga895a3150e972fb79a7a3ab26100dd31e inherit pub_methods_classCVC3_1_1SearchEngine"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gae2a1cd46200160ac5855d7cd5f65517c inherit pub_methods_classCVC3_1_1SearchEngine"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE.html#gae2a1cd46200160ac5855d7cd5f65517c">getConcreteModel</a> (<a class="el" href="classCVC3_1_1ExprMap.html">ExprMap</a>< <a class="el" href="classCVC3_1_1Expr.html">Expr</a> > &m)</td></tr> <tr class="memdesc:gae2a1cd46200160ac5855d7cd5f65517c inherit pub_methods_classCVC3_1_1SearchEngine"><td class="mdescLeft"> </td><td class="mdescRight">Build a concrete Model (assign values to variables), should only be called after a query which returns INVALID. <a href="group__SE.html#gae2a1cd46200160ac5855d7cd5f65517c"></a><br/></td></tr> <tr class="separator:gae2a1cd46200160ac5855d7cd5f65517c inherit pub_methods_classCVC3_1_1SearchEngine"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga44f1c2fefc202249cd2cda55d7712bdf inherit pub_methods_classCVC3_1_1SearchEngine"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE.html#ga44f1c2fefc202249cd2cda55d7712bdf">tryModelGeneration</a> (<a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &thm)</td></tr> <tr class="memdesc:ga44f1c2fefc202249cd2cda55d7712bdf inherit pub_methods_classCVC3_1_1SearchEngine"><td class="mdescLeft"> </td><td class="mdescRight">Try to build a concrete Model (assign values to variables), should only be called after a query which returns UNKNOWN. Returns a theorem if inconsistent. <a href="group__SE.html#ga44f1c2fefc202249cd2cda55d7712bdf"></a><br/></td></tr> <tr class="separator:ga44f1c2fefc202249cd2cda55d7712bdf inherit pub_methods_classCVC3_1_1SearchEngine"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a> Protected Member Functions</h2></td></tr> <tr class="memitem:gaf0dbbb1806723760ab8744e96a8c6657"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Literal.html">Literal</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE.html#gaf0dbbb1806723760ab8744e96a8c6657">newLiteral</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &e)</td></tr> <tr class="memdesc:gaf0dbbb1806723760ab8744e96a8c6657"><td class="mdescLeft"> </td><td class="mdescRight">Construct a <a class="el" href="classCVC3_1_1Literal.html">Literal</a> out of an <a class="el" href="classCVC3_1_1Expr.html" title="Data structure of expressions in CVC3.">Expr</a> or return an existing one. <a href="group__SE.html#gaf0dbbb1806723760ab8744e96a8c6657"></a><br/></td></tr> <tr class="separator:gaf0dbbb1806723760ab8744e96a8c6657"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gaaa621df0c7e2a2043139e6451eab7072"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE.html#gaaa621df0c7e2a2043139e6451eab7072">simplify</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &e)</td></tr> <tr class="memdesc:gaaa621df0c7e2a2043139e6451eab7072"><td class="mdescLeft"> </td><td class="mdescRight">Our version of simplifier: take Theorem(e), apply simplifier to get <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>(e==e'), return <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>(e') <a href="group__SE.html#gaaa621df0c7e2a2043139e6451eab7072"></a><br/></td></tr> <tr class="separator:gaaa621df0c7e2a2043139e6451eab7072"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gaed2d918b4d0eb14d99bf63882fe2df1a"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE.html#gaed2d918b4d0eb14d99bf63882fe2df1a">addLiteralFact</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &thm)=0</td></tr> <tr class="memdesc:gaed2d918b4d0eb14d99bf63882fe2df1a"><td class="mdescLeft"> </td><td class="mdescRight">Notify the search engine about a new literal fact. <a href="group__SE.html#gaed2d918b4d0eb14d99bf63882fe2df1a"></a><br/></td></tr> <tr class="separator:gaed2d918b4d0eb14d99bf63882fe2df1a"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gae95c78de94900637db19e3b7dee5d7c3"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE.html#gae95c78de94900637db19e3b7dee5d7c3">addNonLiteralFact</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &thm)=0</td></tr> <tr class="memdesc:gae95c78de94900637db19e3b7dee5d7c3"><td class="mdescLeft"> </td><td class="mdescRight">Notify the search engine about a new non-literal fact. <a href="group__SE.html#gae95c78de94900637db19e3b7dee5d7c3"></a><br/></td></tr> <tr class="separator:gae95c78de94900637db19e3b7dee5d7c3"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gadebc5b605b4a358789b697e44065a97e"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE.html#gadebc5b605b4a358789b697e44065a97e">addCNFFact</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &thm, bool fromCore=false)</td></tr> <tr class="memdesc:gadebc5b605b4a358789b697e44065a97e"><td class="mdescLeft"> </td><td class="mdescRight">Add a new fact to the search engine bypassing CNF converter. <a href="group__SE.html#gadebc5b605b4a358789b697e44065a97e"></a><br/></td></tr> <tr class="separator:gadebc5b605b4a358789b697e44065a97e"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gab267d9f29c30c8e26b5c7bcc4d15306a"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE.html#gab267d9f29c30c8e26b5c7bcc4d15306a">scopeLevel</a> ()</td></tr> <tr class="memdesc:gab267d9f29c30c8e26b5c7bcc4d15306a"><td class="mdescLeft"> </td><td class="mdescRight">Return the current scope level (for convenience) <a href="group__SE.html#gab267d9f29c30c8e26b5c7bcc4d15306a"></a><br/></td></tr> <tr class="separator:gab267d9f29c30c8e26b5c7bcc4d15306a"><td class="memSeparator" colspan="2"> </td></tr> <tr class="inherit_header pro_methods_classCVC3_1_1SearchEngine"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classCVC3_1_1SearchEngine')"><img src="closed.png" alt="-"/> Protected Member Functions inherited from <a class="el" href="classCVC3_1_1SearchEngine.html">CVC3::SearchEngine</a></td></tr> <tr class="memitem:ga11dd236b3ba4ca5faad7563dfe6f3d72 inherit pro_methods_classCVC3_1_1SearchEngine"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1SearchEngineRules.html">SearchEngineRules</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE.html#ga11dd236b3ba4ca5faad7563dfe6f3d72">createRules</a> ()</td></tr> <tr class="memdesc:ga11dd236b3ba4ca5faad7563dfe6f3d72 inherit pro_methods_classCVC3_1_1SearchEngine"><td class="mdescLeft"> </td><td class="mdescRight">Create the trusted component. <a href="group__SE.html#ga11dd236b3ba4ca5faad7563dfe6f3d72"></a><br/></td></tr> <tr class="separator:ga11dd236b3ba4ca5faad7563dfe6f3d72 inherit pro_methods_classCVC3_1_1SearchEngine"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga5ee040962725cff9a07cd33cbb6d6232 inherit pro_methods_classCVC3_1_1SearchEngine"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1SearchEngineRules.html">SearchEngineRules</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE.html#ga5ee040962725cff9a07cd33cbb6d6232">createRules</a> (<a class="el" href="classCVC3_1_1SearchEngine.html">SearchEngine</a> *s_eng)</td></tr> <tr class="separator:ga5ee040962725cff9a07cd33cbb6d6232 inherit pro_methods_classCVC3_1_1SearchEngine"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a> Protected Attributes</h2></td></tr> <tr class="memitem:ga626a0fe24f363d007d729e16d13349e5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1VariableManager.html">VariableManager</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE.html#ga626a0fe24f363d007d729e16d13349e5">d_vm</a></td></tr> <tr class="memdesc:ga626a0fe24f363d007d729e16d13349e5"><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="classCVC3_1_1Variable.html">Variable</a> manager for classes <a class="el" href="classCVC3_1_1Variable.html">Variable</a> and <a class="el" href="classCVC3_1_1Literal.html">Literal</a>. <a href="group__SE.html#ga626a0fe24f363d007d729e16d13349e5"></a><br/></td></tr> <tr class="separator:ga626a0fe24f363d007d729e16d13349e5"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga640e08e2b051e08f2abdd4111b9a2e71"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1CDO.html">CDO</a>< int > </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE.html#ga640e08e2b051e08f2abdd4111b9a2e71">d_bottomScope</a></td></tr> <tr class="memdesc:ga640e08e2b051e08f2abdd4111b9a2e71"><td class="mdescLeft"> </td><td class="mdescRight">The bottom-most scope for the current call to checkSAT (where conflict clauses are still valid). <a href="group__SE.html#ga640e08e2b051e08f2abdd4111b9a2e71"></a><br/></td></tr> <tr class="separator:ga640e08e2b051e08f2abdd4111b9a2e71"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga02f72989536076eab8c55e452a6662d9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1TheoryCore_1_1CoreSatAPI.html">TheoryCore::CoreSatAPI</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE.html#ga02f72989536076eab8c55e452a6662d9">d_coreSatAPI_implBase</a></td></tr> <tr class="separator:ga02f72989536076eab8c55e452a6662d9"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga8ea9b2ab9f50d3ddf595595b1f3d7974"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1CDList.html">CDList</a>< <a class="el" href="classCVC3_1_1SearchImplBase_1_1Splitter.html">Splitter</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE.html#ga8ea9b2ab9f50d3ddf595595b1f3d7974">d_dpSplitters</a></td></tr> <tr class="memdesc:ga8ea9b2ab9f50d3ddf595595b1f3d7974"><td class="mdescLeft"> </td><td class="mdescRight">Backtracking ordered set of DP-suggested splitters. <a href="group__SE.html#ga8ea9b2ab9f50d3ddf595595b1f3d7974"></a><br/></td></tr> <tr class="separator:ga8ea9b2ab9f50d3ddf595595b1f3d7974"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga88ba664573602ecfca1d6eadc14a30af"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE.html#ga88ba664573602ecfca1d6eadc14a30af">d_lastValid</a></td></tr> <tr class="memdesc:ga88ba664573602ecfca1d6eadc14a30af"><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> from the last successful checkValid call. It is used by getProof and getAssumptions. <a href="group__SE.html#ga88ba664573602ecfca1d6eadc14a30af"></a><br/></td></tr> <tr class="separator:ga88ba664573602ecfca1d6eadc14a30af"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gaf6841e86841006b6917d46664de64d21"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1ExprHashMap.html">ExprHashMap</a>< bool > </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE.html#gaf6841e86841006b6917d46664de64d21">d_lastCounterExample</a></td></tr> <tr class="memdesc:gaf6841e86841006b6917d46664de64d21"><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="classCVC3_1_1Assumptions.html">Assumptions</a> from the last unsuccessful checkValid call. These are used by getCounterExample. <a href="group__SE.html#gaf6841e86841006b6917d46664de64d21"></a><br/></td></tr> <tr class="separator:gaf6841e86841006b6917d46664de64d21"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga83dfe2d2d85bacf5e4aa10c0320a140b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1CDMap.html">CDMap</a>< <a class="el" href="classCVC3_1_1Expr.html">Expr</a>, <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE.html#ga83dfe2d2d85bacf5e4aa10c0320a140b">d_assumptions</a></td></tr> <tr class="memdesc:ga83dfe2d2d85bacf5e4aa10c0320a140b"><td class="mdescLeft"> </td><td class="mdescRight">Maintain the list of current assumptions (user asserts and splitters) for <a class="el" href="group__SE.html#gadadf46fa5200744c9f30ca548080d35d" title="Get all assumptions made in this and all previous contexts.">getAssumptions()</a>. <a href="group__SE.html#ga83dfe2d2d85bacf5e4aa10c0320a140b"></a><br/></td></tr> <tr class="separator:ga83dfe2d2d85bacf5e4aa10c0320a140b"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gab60a7d204ed01875c98629e874575cd6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1CDMap.html">CDMap</a>< <a class="el" href="classCVC3_1_1Expr.html">Expr</a>, <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE.html#gab60a7d204ed01875c98629e874575cd6">d_cnfCache</a></td></tr> <tr class="memdesc:gab60a7d204ed01875c98629e874575cd6"><td class="mdescLeft"> </td><td class="mdescRight">Backtracking cache for the CNF generator. <a href="group__SE.html#gab60a7d204ed01875c98629e874575cd6"></a><br/></td></tr> <tr class="separator:gab60a7d204ed01875c98629e874575cd6"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga1c64a37d94b4cadedce29f3e4b98a3af"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1CDMap.html">CDMap</a>< <a class="el" href="classCVC3_1_1Expr.html">Expr</a>, bool > </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE.html#ga1c64a37d94b4cadedce29f3e4b98a3af">d_cnfVars</a></td></tr> <tr class="memdesc:ga1c64a37d94b4cadedce29f3e4b98a3af"><td class="mdescLeft"> </td><td class="mdescRight">Backtracking set of new variables generated by CNF translator. <a href="group__SE.html#ga1c64a37d94b4cadedce29f3e4b98a3af"></a><br/></td></tr> <tr class="separator:ga1c64a37d94b4cadedce29f3e4b98a3af"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gae3b8b3cfd965e7d5138320d26808767a"><td class="memItemLeft" align="right" valign="top">const bool * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE.html#gae3b8b3cfd965e7d5138320d26808767a">d_cnfOption</a></td></tr> <tr class="memdesc:gae3b8b3cfd965e7d5138320d26808767a"><td class="mdescLeft"> </td><td class="mdescRight">Command line flag whether to convert to CNF. <a href="group__SE.html#gae3b8b3cfd965e7d5138320d26808767a"></a><br/></td></tr> <tr class="separator:gae3b8b3cfd965e7d5138320d26808767a"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gaa28d7e60bbe1df69ffb304f939b984b7"><td class="memItemLeft" align="right" valign="top">const bool * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE.html#gaa28d7e60bbe1df69ffb304f939b984b7">d_ifLiftOption</a></td></tr> <tr class="memdesc:gaa28d7e60bbe1df69ffb304f939b984b7"><td class="mdescLeft"> </td><td class="mdescRight">Flag: whether to convert term ITEs into CNF. <a href="group__SE.html#gaa28d7e60bbe1df69ffb304f939b984b7"></a><br/></td></tr> <tr class="separator:gaa28d7e60bbe1df69ffb304f939b984b7"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gafc2c782e4f24b55c8af7cb0189d281d8"><td class="memItemLeft" align="right" valign="top">const bool * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE.html#gafc2c782e4f24b55c8af7cb0189d281d8">d_ignoreCnfVarsOption</a></td></tr> <tr class="memdesc:gafc2c782e4f24b55c8af7cb0189d281d8"><td class="mdescLeft"> </td><td class="mdescRight">Flag: ignore auxiliary CNF variables when searching for a splitter. <a href="group__SE.html#gafc2c782e4f24b55c8af7cb0189d281d8"></a><br/></td></tr> <tr class="separator:gafc2c782e4f24b55c8af7cb0189d281d8"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga2287fd23d4250cc74db446983b2c3274"><td class="memItemLeft" align="right" valign="top">const bool * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE.html#ga2287fd23d4250cc74db446983b2c3274">d_origFormulaOption</a></td></tr> <tr class="memdesc:ga2287fd23d4250cc74db446983b2c3274"><td class="mdescLeft"> </td><td class="mdescRight">Flag: Preserve the original formula with +cnf (for splitter heuristics) <a href="group__SE.html#ga2287fd23d4250cc74db446983b2c3274"></a><br/></td></tr> <tr class="separator:ga2287fd23d4250cc74db446983b2c3274"><td class="memSeparator" colspan="2"> </td></tr> <tr><td colspan="2"><div class="groupHeader">CNF Caches</div></td></tr> <tr><td colspan="2"><div class="groupText"><p>These caches are for subexpressions of the translated formula phi, to avoid expanding phi into a tree. We cannot use d_cnfCache for that, since it is effectively non-backtracking, and we do not know if a subexpression of phi was translated at the current level, or at some other (inactive) branch of the decision tree. </p> </div></td></tr> <tr class="memitem:ga9dc16eb11f046d9a615aff3018957c6d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1CDMap.html">CDMap</a>< <a class="el" href="classCVC3_1_1Expr.html">Expr</a>, bool > </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE.html#ga9dc16eb11f046d9a615aff3018957c6d">d_enqueueCNFCache</a></td></tr> <tr class="memdesc:ga9dc16eb11f046d9a615aff3018957c6d"><td class="mdescLeft"> </td><td class="mdescRight">Cache for <a class="el" href="group__SE.html#ga4bcd481c70362c589aa7e712a8cc746d" title="Translate theta to CNF and enqueue the new clauses.">enqueueCNF()</a> <a href="group__SE.html#ga9dc16eb11f046d9a615aff3018957c6d"></a><br/></td></tr> <tr class="separator:ga9dc16eb11f046d9a615aff3018957c6d"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga401319b3ede7162504e979aaf2119deb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1CDMap.html">CDMap</a>< <a class="el" href="classCVC3_1_1Expr.html">Expr</a>, bool > </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE.html#ga401319b3ede7162504e979aaf2119deb">d_applyCNFRulesCache</a></td></tr> <tr class="memdesc:ga401319b3ede7162504e979aaf2119deb"><td class="mdescLeft"> </td><td class="mdescRight">Cache for <a class="el" href="group__SE.html#gaa7bf3c385bae481d4ea35179e818a09a" title="FIXME: write a comment.">applyCNFRules()</a> <a href="group__SE.html#ga401319b3ede7162504e979aaf2119deb"></a><br/></td></tr> <tr class="separator:ga401319b3ede7162504e979aaf2119deb"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga0c829909b9e3ab2b59ba40e681905c4b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1CDMap.html">CDMap</a>< <a class="el" href="classCVC3_1_1Expr.html">Expr</a>, <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE.html#ga0c829909b9e3ab2b59ba40e681905c4b">d_replaceITECache</a></td></tr> <tr class="memdesc:ga0c829909b9e3ab2b59ba40e681905c4b"><td class="mdescLeft"> </td><td class="mdescRight">Cache for <a class="el" href="group__SE.html#ga687e32d21d7fe7e4b26873ae86a47ae5" title="Replaces ITE subexpressions in e with variables.">replaceITE()</a> <a href="group__SE.html#ga0c829909b9e3ab2b59ba40e681905c4b"></a><br/></td></tr> <tr class="separator:ga0c829909b9e3ab2b59ba40e681905c4b"><td class="memSeparator" colspan="2"> </td></tr> <tr class="inherit_header pro_attribs_classCVC3_1_1SearchEngine"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classCVC3_1_1SearchEngine')"><img src="closed.png" alt="-"/> Protected Attributes inherited from <a class="el" href="classCVC3_1_1SearchEngine.html">CVC3::SearchEngine</a></td></tr> <tr class="memitem:ga3772c6af7eac91b9ed7fc278edf5ef90 inherit pro_attribs_classCVC3_1_1SearchEngine"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1TheoryCore.html">TheoryCore</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE.html#ga3772c6af7eac91b9ed7fc278edf5ef90">d_core</a></td></tr> <tr class="memdesc:ga3772c6af7eac91b9ed7fc278edf5ef90 inherit pro_attribs_classCVC3_1_1SearchEngine"><td class="mdescLeft"> </td><td class="mdescRight">Access to theory reasoning. <a href="group__SE.html#ga3772c6af7eac91b9ed7fc278edf5ef90"></a><br/></td></tr> <tr class="separator:ga3772c6af7eac91b9ed7fc278edf5ef90 inherit pro_attribs_classCVC3_1_1SearchEngine"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga63f2a3cfcfa86820bea2f45cb890cc1c inherit pro_attribs_classCVC3_1_1SearchEngine"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1CommonProofRules.html">CommonProofRules</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE.html#ga63f2a3cfcfa86820bea2f45cb890cc1c">d_commonRules</a></td></tr> <tr class="memdesc:ga63f2a3cfcfa86820bea2f45cb890cc1c inherit pro_attribs_classCVC3_1_1SearchEngine"><td class="mdescLeft"> </td><td class="mdescRight">Common proof rules. <a href="group__SE.html#ga63f2a3cfcfa86820bea2f45cb890cc1c"></a><br/></td></tr> <tr class="separator:ga63f2a3cfcfa86820bea2f45cb890cc1c inherit pro_attribs_classCVC3_1_1SearchEngine"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga879b68112123e2b4ae7175d85a03bfec inherit pro_attribs_classCVC3_1_1SearchEngine"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1SearchEngineRules.html">SearchEngineRules</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE.html#ga879b68112123e2b4ae7175d85a03bfec">d_rules</a></td></tr> <tr class="memdesc:ga879b68112123e2b4ae7175d85a03bfec inherit pro_attribs_classCVC3_1_1SearchEngine"><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="classCVC3_1_1Proof.html">Proof</a> rules for the search engine. <a href="group__SE.html#ga879b68112123e2b4ae7175d85a03bfec"></a><br/></td></tr> <tr class="separator:ga879b68112123e2b4ae7175d85a03bfec inherit pro_attribs_classCVC3_1_1SearchEngine"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-methods"></a> Private Member Functions</h2></td></tr> <tr class="memitem:ga4bcd481c70362c589aa7e712a8cc746d"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE.html#ga4bcd481c70362c589aa7e712a8cc746d">enqueueCNF</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &theta)</td></tr> <tr class="memdesc:ga4bcd481c70362c589aa7e712a8cc746d"><td class="mdescLeft"> </td><td class="mdescRight">Translate theta to CNF and enqueue the new clauses. <a href="group__SE.html#ga4bcd481c70362c589aa7e712a8cc746d"></a><br/></td></tr> <tr class="separator:ga4bcd481c70362c589aa7e712a8cc746d"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga62e31e3c4dbadb6cc5fddc3b0b73e047"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE.html#ga62e31e3c4dbadb6cc5fddc3b0b73e047">enqueueCNFrec</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &theta)</td></tr> <tr class="memdesc:ga62e31e3c4dbadb6cc5fddc3b0b73e047"><td class="mdescLeft"> </td><td class="mdescRight">Recursive version of <a class="el" href="group__SE.html#ga4bcd481c70362c589aa7e712a8cc746d" title="Translate theta to CNF and enqueue the new clauses.">enqueueCNF()</a> <a href="group__SE.html#ga62e31e3c4dbadb6cc5fddc3b0b73e047"></a><br/></td></tr> <tr class="separator:ga62e31e3c4dbadb6cc5fddc3b0b73e047"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gaa7bf3c385bae481d4ea35179e818a09a"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE.html#gaa7bf3c385bae481d4ea35179e818a09a">applyCNFRules</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &e)</td></tr> <tr class="memdesc:gaa7bf3c385bae481d4ea35179e818a09a"><td class="mdescLeft"> </td><td class="mdescRight">FIXME: write a comment. <a href="group__SE.html#gaa7bf3c385bae481d4ea35179e818a09a"></a><br/></td></tr> <tr class="separator:gaa7bf3c385bae481d4ea35179e818a09a"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gaa78fb38536d0a2e34ad140f3ec865f2b"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE.html#gaa78fb38536d0a2e34ad140f3ec865f2b">addToCNFCache</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &thm)</td></tr> <tr class="memdesc:gaa78fb38536d0a2e34ad140f3ec865f2b"><td class="mdescLeft"> </td><td class="mdescRight">Cache a theorem phi <=> v by phi, where v is a literal. <a href="group__SE.html#gaa78fb38536d0a2e34ad140f3ec865f2b"></a><br/></td></tr> <tr class="separator:gaa78fb38536d0a2e34ad140f3ec865f2b"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga298ad740ab490d5b3337445573b8c4d7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE.html#ga298ad740ab490d5b3337445573b8c4d7">findInCNFCache</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &e)</td></tr> <tr class="memdesc:ga298ad740ab490d5b3337445573b8c4d7"><td class="mdescLeft"> </td><td class="mdescRight">Find a theorem phi <=> v by phi, where v is a literal. <a href="group__SE.html#ga298ad740ab490d5b3337445573b8c4d7"></a><br/></td></tr> <tr class="separator:ga298ad740ab490d5b3337445573b8c4d7"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga687e32d21d7fe7e4b26873ae86a47ae5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SE.html#ga687e32d21d7fe7e4b26873ae86a47ae5">replaceITE</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &e)</td></tr> <tr class="memdesc:ga687e32d21d7fe7e4b26873ae86a47ae5"><td class="mdescLeft"> </td><td class="mdescRight">Replaces ITE subexpressions in e with variables. <a href="group__SE.html#ga687e32d21d7fe7e4b26873ae86a47ae5"></a><br/></td></tr> <tr class="separator:ga687e32d21d7fe7e4b26873ae86a47ae5"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a> Friends</h2></td></tr> <tr class="memitem:a224d899d0f44bb19868fa244a59d1577"><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1SearchImplBase.html#a224d899d0f44bb19868fa244a59d1577">DecisionEngine</a></td></tr> <tr class="separator:a224d899d0f44bb19868fa244a59d1577"><td class="memSeparator" colspan="2"> </td></tr> </table> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <div class="textblock"><p>API to to a generic proof search engine (a.k.a. <a class="el" href="namespaceSAT.html">SAT</a> solver) </p> <p>Definition at line <a class="el" href="search__impl__base_8h_source.html#l00037">37</a> of file <a class="el" href="search__impl__base_8h_source.html">search_impl_base.h</a>.</p> </div><h2 class="groupheader">Friends And Related Function Documentation</h2> <a class="anchor" id="a224d899d0f44bb19868fa244a59d1577"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">friend class <a class="el" href="classCVC3_1_1DecisionEngine.html">DecisionEngine</a></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">friend</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Definition at line <a class="el" href="search__impl__base_8h_source.html#l00038">38</a> of file <a class="el" href="search__impl__base_8h_source.html">search_impl_base.h</a>.</p> </div> </div> <hr/>The documentation for this class was generated from the following files:<ul> <li><a class="el" href="search__impl__base_8h_source.html">search_impl_base.h</a></li> <li><a class="el" href="search__impl__base_8cpp_source.html">search_impl_base.cpp</a></li> </ul> </div><!-- contents --> <!-- start footer part --> <hr class="footer"/><address class="footer"><small> Generated on Thu May 16 2013 13:25:18 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>