<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <title>CVC3: CVC3::TheoryCore Class Reference</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="doxygen.css" rel="stylesheet" type="text/css"/> </head> <body> <!-- Generated by Doxygen 1.7.4 --> <div id="top"> <div id="titlearea"> <table cellspacing="0" cellpadding="0"> <tbody> <tr style="height: 56px;"> <td style="padding-left: 0.5em;"> <div id="projectname">CVC3 <span id="projectnumber">2.4.1</span></div> </td> </tr> </tbody> </table> </div> <div id="navrow1" class="tabs"> <ul class="tablist"> <li><a href="index.html"><span>Main 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="hierarchy.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_1TheoryCore.html">TheoryCore</a> </li> </ul> </div> </div> <div class="header"> <div class="summary"> <a href="#nested-classes">Classes</a> | <a href="#pub-methods">Public Member Functions</a> | <a href="#pri-types">Private Types</a> | <a href="#pri-methods">Private Member Functions</a> | <a href="#pri-attribs">Private Attributes</a> | <a href="#friends">Friends</a> </div> <div class="headertitle"> <div class="title">CVC3::TheoryCore Class Reference<div class="ingroups"><a class="el" href="group__Theories.html">Theories</a></div></div> </div> </div> <div class="contents"> <!-- doxytag: class="CVC3::TheoryCore" --><!-- doxytag: inherits="CVC3::Theory" --> <p>This theory handles the built-in logical connectives plus equality. It also handles the registration and cooperation among all other theories. <a href="classCVC3_1_1TheoryCore.html#details">More...</a></p> <p><code>#include <<a class="el" href="theory__core_8h_source.html">theory_core.h</a>></code></p> <div class="dynheader"> Inheritance diagram for CVC3::TheoryCore:</div> <div class="dyncontent"> <div class="center"> <img src="classCVC3_1_1TheoryCore.png" usemap="#CVC3::TheoryCore_map" alt=""/> <map id="CVC3::TheoryCore_map" name="CVC3::TheoryCore_map"> <area href="classCVC3_1_1Theory.html" title="Base class for theories." alt="CVC3::Theory" shape="rect" coords="0,0,120,24"/> </map> </div></div> <p><a href="classCVC3_1_1TheoryCore-members.html">List of all members.</a></p> <h2><a name="nested-classes"></a> Classes</h2> <ul> <li>class <a class="el" href="classCVC3_1_1TheoryCore_1_1CoreNotifyObj.html">CoreNotifyObj</a> <li>class <a class="el" href="classCVC3_1_1TheoryCore_1_1CoreSatAPI.html">CoreSatAPI</a> <dl class="el"><dd class="mdescRight">Interface class for callbacks to <a class="el" href="namespaceSAT.html">SAT</a> from Core. <a href="classCVC3_1_1TheoryCore_1_1CoreSatAPI.html#details">More...</a><br/></dl></ul> <h2><a name="pub-methods"></a> Public Member Functions</h2> <ul> <li><a class="el" href="classCVC3_1_1TheoryCore.html#acd5196a42683a0f357560588d4e81817">TheoryCore</a> (<a class="el" href="classCVC3_1_1ContextManager.html">ContextManager</a> *cm, <a class="el" href="classCVC3_1_1ExprManager.html">ExprManager</a> *em, <a class="el" href="classCVC3_1_1TheoremManager.html">TheoremManager</a> *tm, <a class="el" href="classCVC3_1_1Translator.html">Translator</a> *tr, const <a class="el" href="classCVC3_1_1CLFlags.html">CLFlags</a> &flags, <a class="el" href="classCVC3_1_1Statistics.html">Statistics</a> &statistics) <dl class="el"><dd class="mdescRight">Constructor. <a href="#acd5196a42683a0f357560588d4e81817"></a><br/></dl><li><a class="el" href="classCVC3_1_1TheoryCore.html#ad91cca07e2f1e8cd9614a6e88d6dd232">~TheoryCore</a> () <dl class="el"><dd class="mdescRight">Destructor. <a href="#ad91cca07e2f1e8cd9614a6e88d6dd232"></a><br/></dl><li>void <a class="el" href="classCVC3_1_1TheoryCore.html#a1558a9399314632d76c3d086f680d3b7">getResource</a> () <dl class="el"><dd class="mdescRight">Request a unit of resource. <a href="#a1558a9399314632d76c3d086f680d3b7"></a><br/></dl><li>void <a class="el" href="classCVC3_1_1TheoryCore.html#afb6629080bceb44023f1bb3a44f9136f">registerCoreSatAPI</a> (<a class="el" href="classCVC3_1_1TheoryCore_1_1CoreSatAPI.html">CoreSatAPI</a> *coreSatAPI) <dl class="el"><dd class="mdescRight">Register a SatAPI 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="#afb6629080bceb44023f1bb3a44f9136f"></a><br/></dl><li>void <a class="el" href="classCVC3_1_1TheoryCore.html#ac317be8457175b3cf458bff7f4cb6e27">addNotifyEq</a> (<a class="el" href="classCVC3_1_1Theory.html">Theory</a> *t, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &e) <dl class="el"><dd class="mdescRight">Register a callback for every equality. <a href="#ac317be8457175b3cf458bff7f4cb6e27"></a><br/></dl><li><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> <a class="el" href="classCVC3_1_1TheoryCore.html#a052424ef27a5042f6321db9a8d41bf82">callTheoryPreprocess</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &e) <dl class="el"><dd class="mdescRight">Call theory-specific preprocess routines. <a href="#a052424ef27a5042f6321db9a8d41bf82"></a><br/></dl><li><a class="el" href="classCVC3_1_1ContextManager.html">ContextManager</a> * <a class="el" href="classCVC3_1_1TheoryCore.html#a9377f423f4fd59fdac396794363733a6">getCM</a> () const <li><a class="el" href="classCVC3_1_1TheoremManager.html">TheoremManager</a> * <a class="el" href="classCVC3_1_1TheoryCore.html#af3077cff0601b8ae28e420ef5ce2ea37">getTM</a> () const <li>const <a class="el" href="classCVC3_1_1CLFlags.html">CLFlags</a> & <a class="el" href="classCVC3_1_1TheoryCore.html#a46b2792a5c24f95ccfc3fbfc0456b09f">getFlags</a> () const <li><a class="el" href="classCVC3_1_1Statistics.html">Statistics</a> & <a class="el" href="classCVC3_1_1TheoryCore.html#a7f119c4fa5313b72feca7dd441e045f0">getStatistics</a> () const <li><a class="el" href="classCVC3_1_1ExprTransform.html">ExprTransform</a> * <a class="el" href="classCVC3_1_1TheoryCore.html#acc963fd43994f06d3647394b731e835c">getExprTrans</a> () const <li><a class="el" href="classCVC3_1_1CoreProofRules.html">CoreProofRules</a> * <a class="el" href="classCVC3_1_1TheoryCore.html#a261880d3c6b9b852de5e1d146b9e1731">getCoreRules</a> () const <li><a class="el" href="classCVC3_1_1Translator.html">Translator</a> * <a class="el" href="classCVC3_1_1TheoryCore.html#af21dce6ee9ed152e132a4e77f10323e7">getTranslator</a> () const <li><a class="el" href="classCVC3_1_1ExprMap.html">ExprMap</a>< <a class="el" href="classCVC3_1_1Expr.html">Expr</a> > & <a class="el" href="classCVC3_1_1TheoryCore.html#a1a2ffa9c7365e9f0af36fbd83e2421ed">tccCache</a> () <dl class="el"><dd class="mdescRight">Access to tcc cache (needed by theory_bitvector) <a href="#a1a2ffa9c7365e9f0af36fbd83e2421ed"></a><br/></dl><li>const <a class="el" href="classCVC3_1_1CDList.html">CDList</a>< <a class="el" href="classCVC3_1_1Expr.html">Expr</a> > & <a class="el" href="classCVC3_1_1TheoryCore.html#a605f2eee0d52005dba7450e14d36c002">getTerms</a> () <dl class="el"><dd class="mdescRight">Get list of terms. <a href="#a605f2eee0d52005dba7450e14d36c002"></a><br/></dl><li>int <a class="el" href="classCVC3_1_1TheoryCore.html#aac8dbad8636607fa6424b0926c6c1c59">getCurQuantLevel</a> () <li>void <a class="el" href="classCVC3_1_1TheoryCore.html#a2e0118c395ece4dfcfae018628e3b08b">setInPP</a> () <dl class="el"><dd class="mdescRight">Set the flag for the preprocessor. <a href="#a2e0118c395ece4dfcfae018628e3b08b"></a><br/></dl><li>void <a class="el" href="classCVC3_1_1TheoryCore.html#aeeb68f961407ee80a9762a95e6998cf2">clearInPP</a> () <li><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> <a class="el" href="classCVC3_1_1TheoryCore.html#ad072fbeed392b4b7ecb651609acfd9bd">getTheoremForTerm</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &e) <dl class="el"><dd class="mdescRight">Get theorem which was responsible for introducing this term. <a href="#ad072fbeed392b4b7ecb651609acfd9bd"></a><br/></dl><li>unsigned <a class="el" href="classCVC3_1_1TheoryCore.html#ae4e1f7bd995e6ef2bff499869d95c177">getQuantLevelForTerm</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &e) <dl class="el"><dd class="mdescRight">Get quantification level at which this term was introduced. <a href="#ae4e1f7bd995e6ef2bff499869d95c177"></a><br/></dl><li>const <a class="el" href="classCVC3_1_1CDList.html">CDList</a>< <a class="el" href="classCVC3_1_1Expr.html">Expr</a> > & <a class="el" href="classCVC3_1_1TheoryCore.html#a2c0a37ab972568b851d69292959eb915">getPredicates</a> () <dl class="el"><dd class="mdescRight">Get list of predicates. <a href="#a2c0a37ab972568b851d69292959eb915"></a><br/></dl><li>bool <a class="el" href="classCVC3_1_1TheoryCore.html#ac3c2ee71df31487191401722ea1d235a">inUpdate</a> () <dl class="el"><dd class="mdescRight">Whether updates are being processed. <a href="#ac3c2ee71df31487191401722ea1d235a"></a><br/></dl><li>bool <a class="el" href="classCVC3_1_1TheoryCore.html#a753057879f8565c504f162c13d0185a2">okToEnqueue</a> () <dl class="el"><dd class="mdescRight">Whether its OK to add new facts (for use in rewrites) <a href="#a753057879f8565c504f162c13d0185a2"></a><br/></dl><li>void <a class="el" href="classCVC3_1_1TheoryCore.html#aaf10cf53aae11fb855883f87c29e02e4">addSharedTerm</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &e) <li>void <a class="el" href="classCVC3_1_1TheoryCore.html#a36d46f0d53c3513ea56ee2eba60cd75a">assertFact</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &e) <dl class="el"><dd class="mdescRight">Assert a new fact to the decision procedure. <a href="#a36d46f0d53c3513ea56ee2eba60cd75a"></a><br/></dl><li>void <a class="el" href="classCVC3_1_1TheoryCore.html#a66cdb1662f1608dc95664b41ff90f1e4">checkSat</a> (bool fullEffort) <dl class="el"><dd class="mdescRight">Check for satisfiability in the theory. <a href="#a66cdb1662f1608dc95664b41ff90f1e4"></a><br/></dl><li><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> <a class="el" href="classCVC3_1_1TheoryCore.html#a54bce613a6b49a9a8a1a888ec36346d8">rewrite</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &e) <dl class="el"><dd class="mdescRight">Theory-specific rewrite rules. <a href="#a54bce613a6b49a9a8a1a888ec36346d8"></a><br/></dl><li>void <a class="el" href="classCVC3_1_1TheoryCore.html#af4468d5d65b78ac9dc4c89c71c7391f6">setup</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &e) <li>void <a class="el" href="classCVC3_1_1TheoryCore.html#a435e2305420c1ed5b2ff1e4758a50dc5">update</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &e, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &d) <li><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> <a class="el" href="classCVC3_1_1TheoryCore.html#a2128e2419413e5c0455ca3011fa2b2db">solve</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &e) <li><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> <a class="el" href="classCVC3_1_1TheoryCore.html#a3aefb5e53e848ad18a5846d5be42d3d2">simplifyOp</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &e) <dl class="el"><dd class="mdescRight">Recursive simplification step. <a href="#a3aefb5e53e848ad18a5846d5be42d3d2"></a><br/></dl><li>void <a class="el" href="classCVC3_1_1TheoryCore.html#ada717b1e852018d77f154682a01f6731">checkType</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &e) <dl class="el"><dd class="mdescRight">Check that e is a valid <a class="el" href="classCVC3_1_1Type.html" title="MS C++ specific settings.">Type</a> expr. <a href="#ada717b1e852018d77f154682a01f6731"></a><br/></dl><li><a class="el" href="namespaceCVC3.html#af969e724f8b7016909f5804e8cea3e54">Cardinality</a> <a class="el" href="classCVC3_1_1TheoryCore.html#acf724e4b497f7ca829eaaca9007fbae6">finiteTypeInfo</a> (<a class="el" href="classCVC3_1_1Expr.html">Expr</a> &e, <a class="el" href="classCVC3_1_1Unsigned.html">Unsigned</a> &n, bool enumerate, bool computeSize) <dl class="el"><dd class="mdescRight">Compute information related to finiteness of types. <a href="#acf724e4b497f7ca829eaaca9007fbae6"></a><br/></dl><li>void <a class="el" href="classCVC3_1_1TheoryCore.html#a4968c9a9514669bbd9c2e6774f17b743">computeType</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &e) <dl class="el"><dd class="mdescRight">Compute and store the type of e. <a href="#a4968c9a9514669bbd9c2e6774f17b743"></a><br/></dl><li><a class="el" href="classCVC3_1_1Type.html">Type</a> <a class="el" href="classCVC3_1_1TheoryCore.html#a624d8ed203fdd666ae97ec10f9859d26">computeBaseType</a> (const <a class="el" href="classCVC3_1_1Type.html">Type</a> &t) <dl class="el"><dd class="mdescRight">Compute the base type of the top-level operator of an arbitrary type. <a href="#a624d8ed203fdd666ae97ec10f9859d26"></a><br/></dl><li><a class="el" href="classCVC3_1_1Expr.html">Expr</a> <a class="el" href="classCVC3_1_1TheoryCore.html#acd533616106f9987039cfbd5988d50d5">computeTCC</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &e) <dl class="el"><dd class="mdescRight">Compute and cache the TCC of e. <a href="#acd533616106f9987039cfbd5988d50d5"></a><br/></dl><li><a class="el" href="classCVC3_1_1Expr.html">Expr</a> <a class="el" href="classCVC3_1_1TheoryCore.html#ab12924c15cb53753ba91d1766282a71e">computeTypePred</a> (const <a class="el" href="classCVC3_1_1Type.html">Type</a> &t, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &e) <dl class="el"><dd class="mdescRight"><a class="el" href="classCVC3_1_1Theory.html" title="Base class for theories.">Theory</a> specific computation of the subtyping predicate for type t applied to the expression e. <a href="#ab12924c15cb53753ba91d1766282a71e"></a><br/></dl><li><a class="el" href="classCVC3_1_1Expr.html">Expr</a> <a class="el" href="classCVC3_1_1TheoryCore.html#a0cf4d5c76db5be87a848d694adff4dfe">parseExprOp</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &e) <dl class="el"><dd class="mdescRight">Theory-specific parsing implemented by the DP. <a href="#a0cf4d5c76db5be87a848d694adff4dfe"></a><br/></dl><li><a class="el" href="classCVC3_1_1ExprStream.html">ExprStream</a> & <a class="el" href="classCVC3_1_1TheoryCore.html#ab334f07590ad297ad6daa3383c61de5f">print</a> (<a class="el" href="classCVC3_1_1ExprStream.html">ExprStream</a> &os, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &e) <dl class="el"><dd class="mdescRight">Theory-specific pretty-printing. <a href="#ab334f07590ad297ad6daa3383c61de5f"></a><br/></dl><li>void <a class="el" href="classCVC3_1_1TheoryCore.html#a6822c229c357d1afcda22bc073d45142">refineCounterExample</a> () <dl class="el"><dd class="mdescRight">Calls for other theories to add facts to refine a coutnerexample. <a href="#a6822c229c357d1afcda22bc073d45142"></a><br/></dl><li>bool <a class="el" href="classCVC3_1_1TheoryCore.html#a22920ae8b347ea919e53e6e009b13ce0">refineCounterExample</a> (<a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &thm) <li>void <a class="el" href="classCVC3_1_1TheoryCore.html#a6edb2212446e43165666dcb7f319985a">computeModelBasic</a> (const std::vector< <a class="el" href="classCVC3_1_1Expr.html">Expr</a> > &v) <dl class="el"><dd class="mdescRight">Assign concrete values to basic-type variables in v. <a href="#a6edb2212446e43165666dcb7f319985a"></a><br/></dl><li>void <a class="el" href="classCVC3_1_1TheoryCore.html#aecef2465eb761f7f112ddce77f93d081">addFact</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &e) <dl class="el"><dd class="mdescRight">Add a new assertion to the core from the user or a <a class="el" href="namespaceSAT.html">SAT</a> solver. Do NOT use it in a decision procedure; use <a class="el" href="classCVC3_1_1TheoryCore.html#a479141bc26a125b758a2acc6420274f9" title="Enqueue a new fact.">enqueueFact()</a>. <a href="#aecef2465eb761f7f112ddce77f93d081"></a><br/></dl><li><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> <a class="el" href="classCVC3_1_1TheoryCore.html#a8a66da5ca687474a3a725448a3be8c41">simplify</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &e) <dl class="el"><dd class="mdescRight">Top-level simplifier. <a href="#a8a66da5ca687474a3a725448a3be8c41"></a><br/></dl><li>bool <a class="el" href="classCVC3_1_1TheoryCore.html#a289340e4457a79f1101f37c3a07a49ed">inconsistent</a> () <dl class="el"><dd class="mdescRight">Check if the current context is inconsistent. <a href="#a289340e4457a79f1101f37c3a07a49ed"></a><br/></dl><li><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> <a class="el" href="classCVC3_1_1TheoryCore.html#a5c7d2aa7db5db78829b8558d28560ddf">inconsistentThm</a> () <dl class="el"><dd class="mdescRight">Get the proof of inconsistency for the current context. <a href="#a5c7d2aa7db5db78829b8558d28560ddf"></a><br/></dl><li>bool <a class="el" href="classCVC3_1_1TheoryCore.html#ae45217f71500d48ef1c4c5118011f254">checkSATCore</a> () <dl class="el"><dd class="mdescRight">To be called by <a class="el" href="classCVC3_1_1SearchEngine.html" title="API to to a generic proof search engine.">SearchEngine</a> when it believes the context is satisfiable. <a href="#ae45217f71500d48ef1c4c5118011f254"></a><br/></dl><li>bool <a class="el" href="classCVC3_1_1TheoryCore.html#a36571dc56183d89cd36def27939430b0">incomplete</a> () <dl class="el"><dd class="mdescRight">Check if the current decision branch is marked as incomplete. <a href="#a36571dc56183d89cd36def27939430b0"></a><br/></dl><li>bool <a class="el" href="classCVC3_1_1TheoryCore.html#a7725800ff83f210545f44c6eef346ee2">incomplete</a> (std::vector< std::string > &reasons) <dl class="el"><dd class="mdescRight">Check if the branch is incomplete, and return the reasons (strings) <a href="#a7725800ff83f210545f44c6eef346ee2"></a><br/></dl><li>void <a class="el" href="classCVC3_1_1TheoryCore.html#ade1177fbf32e95b9433eb608c82857d7">registerAtom</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &e, const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &thm) <dl class="el"><dd class="mdescRight">Register an atomic formula of interest. <a href="#ade1177fbf32e95b9433eb608c82857d7"></a><br/></dl><li><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> <a class="el" href="classCVC3_1_1TheoryCore.html#a464a49882cbd94a3c48428ed60d3a365">getImpliedLiteral</a> (void) <dl class="el"><dd class="mdescRight">Return the next implied literal (NULL <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> if none) <a href="#a464a49882cbd94a3c48428ed60d3a365"></a><br/></dl><li>unsigned <a class="el" href="classCVC3_1_1TheoryCore.html#a2f6f4b38fe4582c8f979f35842284b4c">numImpliedLiterals</a> () <dl class="el"><dd class="mdescRight">Return total number of implied literals. <a href="#a2f6f4b38fe4582c8f979f35842284b4c"></a><br/></dl><li><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> <a class="el" href="classCVC3_1_1TheoryCore.html#adb97ff20d5c0d9a93d322b347b306f69">getImpliedLiteralByIndex</a> (unsigned index) <dl class="el"><dd class="mdescRight">Return an implied literal by index. <a href="#adb97ff20d5c0d9a93d322b347b306f69"></a><br/></dl><li><a class="el" href="classCVC3_1_1Expr.html">Expr</a> <a class="el" href="classCVC3_1_1TheoryCore.html#a6f367b1f413d7f1275e72381724ca148">parseExpr</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &e) <dl class="el"><dd class="mdescRight">Parse the generic expression. <a href="#a6f367b1f413d7f1275e72381724ca148"></a><br/></dl><li><a class="el" href="classCVC3_1_1Expr.html">Expr</a> <a class="el" href="classCVC3_1_1TheoryCore.html#ac173889ba81d910884901b3fa32e600c">parseExprTop</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &e) <dl class="el"><dd class="mdescRight">Top-level call to parseExpr, clears the bound variable stack. <a href="#ac173889ba81d910884901b3fa32e600c"></a><br/></dl><li>void <a class="el" href="classCVC3_1_1TheoryCore.html#a584ebdaddb7e1a51b1740277a0b7098d">assignValue</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &t, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &val) <dl class="el"><dd class="mdescRight">Assign t a concrete value val. Used in model generation. <a href="#a584ebdaddb7e1a51b1740277a0b7098d"></a><br/></dl><li>void <a class="el" href="classCVC3_1_1TheoryCore.html#a1a5505333dc3aea609553ab72f509205">assignValue</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &thm) <dl class="el"><dd class="mdescRight">Record a derived assignment to a variable (LHS). <a href="#a1a5505333dc3aea609553ab72f509205"></a><br/></dl><li>void <a class="el" href="classCVC3_1_1TheoryCore.html#ab810c8fdffa082334e4aa840d1249a39">addToVarDB</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &e) <dl class="el"><dd class="mdescRight">Adds expression to var database. <a href="#ab810c8fdffa082334e4aa840d1249a39"></a><br/></dl><li>void <a class="el" href="classCVC3_1_1TheoryCore.html#a21441c74132e9fcfb53d2b33bd8c622a">collectBasicVars</a> () <dl class="el"><dd class="mdescRight">Split compound vars into basic type variables. <a href="#a21441c74132e9fcfb53d2b33bd8c622a"></a><br/></dl><li>void <a class="el" href="classCVC3_1_1TheoryCore.html#a6b5123c9d923a076385aa83a0fa37cf5">buildModel</a> (<a class="el" href="classCVC3_1_1ExprMap.html">ExprMap</a>< <a class="el" href="classCVC3_1_1Expr.html">Expr</a> > &m) <dl class="el"><dd class="mdescRight">Calls theory specific computeModel, results are placed in map. <a href="#a6b5123c9d923a076385aa83a0fa37cf5"></a><br/></dl><li>bool <a class="el" href="classCVC3_1_1TheoryCore.html#a5cce3a2fa78a9aa11b7d8e0668434f95">buildModel</a> (<a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &thm) <li>void <a class="el" href="classCVC3_1_1TheoryCore.html#a48ba4c9731b4be8afdeafdf3eddeb919">collectModelValues</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &e, <a class="el" href="classCVC3_1_1ExprMap.html">ExprMap</a>< <a class="el" href="classCVC3_1_1Expr.html">Expr</a> > &m) <dl class="el"><dd class="mdescRight">Recursively build a compound-type variable assignment for e. <a href="#a48ba4c9731b4be8afdeafdf3eddeb919"></a><br/></dl><li>void <a class="el" href="classCVC3_1_1TheoryCore.html#a02c9e1bf2f581de6b8f8a8da5cbb5318">setResourceLimit</a> (unsigned limit) <dl class="el"><dd class="mdescRight">Set the resource limit (0==unlimited). <a href="#a02c9e1bf2f581de6b8f8a8da5cbb5318"></a><br/></dl><li>unsigned <a class="el" href="classCVC3_1_1TheoryCore.html#ae5f8dd0508305fac921b9475376c4623">getResourceLimit</a> () <dl class="el"><dd class="mdescRight">Get the resource limit. <a href="#ae5f8dd0508305fac921b9475376c4623"></a><br/></dl><li>bool <a class="el" href="classCVC3_1_1TheoryCore.html#abf168c0ef6bed9274e49dc2c0576312e">outOfResources</a> () <dl class="el"><dd class="mdescRight">Return true if resources are exhausted. <a href="#abf168c0ef6bed9274e49dc2c0576312e"></a><br/></dl><li>void <a class="el" href="classCVC3_1_1TheoryCore.html#ac5b53deab8186f2c2b48e9916f09801e">initTimeLimit</a> () <dl class="el"><dd class="mdescRight">Initialize base time used for !setTimeLimit. <a href="#ac5b53deab8186f2c2b48e9916f09801e"></a><br/></dl><li>void <a class="el" href="classCVC3_1_1TheoryCore.html#a18c6f732488f868d08fb2a0516c2ef33">setTimeLimit</a> (unsigned limit) <dl class="el"><dd class="mdescRight">Set the time limit in seconds (0==unlimited). <a href="#a18c6f732488f868d08fb2a0516c2ef33"></a><br/></dl><li><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> <a class="el" href="classCVC3_1_1TheoryCore.html#a586e77e855946fd0b5f541ec06f7decd">rewriteLiteral</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &e) <dl class="el"><dd class="mdescRight">Called by search engine. <a href="#a586e77e855946fd0b5f541ec06f7decd"></a><br/></dl><li><a class="el" href="classCVC3_1_1Expr.html">Expr</a> <a class="el" href="classCVC3_1_1TheoryCore.html#a3875119ce8336e4bb67a5cc6e771f779">getAssignment</a> () <dl class="el"><dd class="mdescRight">Get the value of all :named terms. <a href="#a3875119ce8336e4bb67a5cc6e771f779"></a><br/></dl><li><a class="el" href="classCVC3_1_1Expr.html">Expr</a> <a class="el" href="classCVC3_1_1TheoryCore.html#a07e62d88f43bc14e3f0fe4805bd99356">getValue</a> (<a class="el" href="classCVC3_1_1Expr.html">Expr</a> e) <dl class="el"><dd class="mdescRight">Get the value of an arbitrary formula or term. <a href="#a07e62d88f43bc14e3f0fe4805bd99356"></a><br/></dl><li>void <a class="el" href="classCVC3_1_1TheoryCore.html#a479141bc26a125b758a2acc6420274f9">enqueueFact</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &e) <dl class="el"><dd class="mdescRight">Enqueue a new fact. <a href="#a479141bc26a125b758a2acc6420274f9"></a><br/></dl><li>void <a class="el" href="classCVC3_1_1TheoryCore.html#a09a7b1c4878f4ce9150fa89d304ca172">enqueueSE</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &thm) <dl class="el"><dd class="mdescRight">Check if the current context is inconsistent. <a href="#a09a7b1c4878f4ce9150fa89d304ca172"></a><br/></dl><li>void <a class="el" href="classCVC3_1_1TheoryCore.html#a4a87431f344c128dc58d5c2bd9206784">setInconsistent</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &e) <li>void <a class="el" href="classCVC3_1_1TheoryCore.html#afbd6dec08ab7f31031ddc2a97d779bd8">setupTerm</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &e, <a class="el" href="classCVC3_1_1Theory.html">Theory</a> *i, const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &thm) <dl class="el"><dd class="mdescRight">Setup additional terms within a theory-specific <a class="el" href="classCVC3_1_1TheoryCore.html#af4468d5d65b78ac9dc4c89c71c7391f6">setup()</a>. <a href="#afbd6dec08ab7f31031ddc2a97d779bd8"></a><br/></dl></ul> <h2><a name="pri-types"></a> Private Types</h2> <ul> <li>enum <a class="el" href="classCVC3_1_1TheoryCore.html#a9563215d97859a27f661c1517614f6ce">EffortLevel</a> { <a class="el" href="classCVC3_1_1TheoryCore.html#a9563215d97859a27f661c1517614f6ceaa35ba8e293104fb62e9163b4c036386b">LOW</a>, <a class="el" href="classCVC3_1_1TheoryCore.html#a9563215d97859a27f661c1517614f6cea1c0ce47707a6729f337134fc3239ef07">NORMAL</a>, <a class="el" href="classCVC3_1_1TheoryCore.html#a9563215d97859a27f661c1517614f6ceaf927a488bd3f95079d191debe7e93a06">FULL</a> } <dl class="el"><dd class="mdescRight">Effort level for processFactQueue. <a href="classCVC3_1_1TheoryCore.html#a9563215d97859a27f661c1517614f6ce">More...</a><br/></dl></ul> <h2><a name="pri-methods"></a> Private Member Functions</h2> <ul> <li><a class="el" href="classCVC3_1_1CoreProofRules.html">CoreProofRules</a> * <a class="el" href="classCVC3_1_1TheoryCore.html#a5b386f16781365b7421e884baaebae41">createProofRules</a> (<a class="el" href="classCVC3_1_1TheoremManager.html">TheoremManager</a> *tm) <dl class="el"><dd class="mdescRight">Private method to get a new theorem producer. <a href="#a5b386f16781365b7421e884baaebae41"></a><br/></dl><li>bool <a class="el" href="classCVC3_1_1TheoryCore.html#a36cd038dd5644d4a2bd6ea56cec2212e">processFactQueue</a> (<a class="el" href="classCVC3_1_1TheoryCore.html#a9563215d97859a27f661c1517614f6ce">EffortLevel</a> effort=NORMAL) <dl class="el"><dd class="mdescRight">A helper function for <a class="el" href="classCVC3_1_1TheoryCore.html#aecef2465eb761f7f112ddce77f93d081" title="Add a new assertion to the core from the user or a SAT solver. Do NOT use it in a decision procedure;...">addFact()</a> <a href="#a36cd038dd5644d4a2bd6ea56cec2212e"></a><br/></dl><li>void <a class="el" href="classCVC3_1_1TheoryCore.html#a728d9c7d448cc32f58292677e7b5aae2">processNotify</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &e, <a class="el" href="classCVC3_1_1NotifyList.html">NotifyList</a> *L) <dl class="el"><dd class="mdescRight">Process a notify list triggered as a result of new theorem e. <a href="#a728d9c7d448cc32f58292677e7b5aae2"></a><br/></dl><li><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> <a class="el" href="classCVC3_1_1TheoryCore.html#ad0643e3175b0c8fd270b044b02999de9">rewriteCore</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &e) <dl class="el"><dd class="mdescRight">Transitive composition of other rewrites with the above. <a href="#ad0643e3175b0c8fd270b044b02999de9"></a><br/></dl><li>void <a class="el" href="classCVC3_1_1TheoryCore.html#af29a30b97ecc26f0c4b3136531487caf">setupSubFormulas</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &s, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &e, const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &thm) <dl class="el"><dd class="mdescRight">Helper for registerAtom. <a href="#af29a30b97ecc26f0c4b3136531487caf"></a><br/></dl><li>void <a class="el" href="classCVC3_1_1TheoryCore.html#a846416a29d02c4f2615f4de65e042cac">processUpdates</a> () <dl class="el"><dd class="mdescRight">Process updates recorded by calls to <a class="el" href="classCVC3_1_1TheoryCore.html#a435e2305420c1ed5b2ff1e4758a50dc5">update()</a> <a href="#a846416a29d02c4f2615f4de65e042cac"></a><br/></dl><li>void <a class="el" href="classCVC3_1_1TheoryCore.html#a3a897e60d6dd1dfd382870054e5ad777">assertFactCore</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &e) <dl class="el"><dd class="mdescRight">The assumptions for e must be in H or phi. "Core" added to avoid conflict with theory interface function name. <a href="#a3a897e60d6dd1dfd382870054e5ad777"></a><br/></dl><li>void <a class="el" href="classCVC3_1_1TheoryCore.html#a1f662e7f045032350f2a3bccc63a71d6">assertFormula</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &e) <dl class="el"><dd class="mdescRight">Process a newly derived formula. <a href="#a1f662e7f045032350f2a3bccc63a71d6"></a><br/></dl><li><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> <a class="el" href="classCVC3_1_1TheoryCore.html#a84a6096579ca77dda6b673da7f1fce7c">rewriteCore</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &e) <dl class="el"><dd class="mdescRight">Check that lhs and rhs of thm have same base type. <a href="#a84a6096579ca77dda6b673da7f1fce7c"></a><br/></dl><li>void <a class="el" href="classCVC3_1_1TheoryCore.html#a63e4ccd049c6191c675fe8ad4bf1979f">setFindLiteral</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &thm) <dl class="el"><dd class="mdescRight">Set the find pointer of an atomic formula and notify <a class="el" href="classCVC3_1_1SearchEngine.html" title="API to to a generic proof search engine.">SearchEngine</a>. <a href="#a63e4ccd049c6191c675fe8ad4bf1979f"></a><br/></dl><li><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> <a class="el" href="classCVC3_1_1TheoryCore.html#a8ba8c93d75329369b8d91f37a463ef09">rewriteLitCore</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &e) <dl class="el"><dd class="mdescRight">Core rewrites for literals (NOT and EQ) <a href="#a8ba8c93d75329369b8d91f37a463ef09"></a><br/></dl><li><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> <a class="el" href="classCVC3_1_1TheoryCore.html#ab360cca9e30af4434130557f6b45f627">getModelValue</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &e) <dl class="el"><dd class="mdescRight">Enqueue a fact to be sent to the <a class="el" href="classCVC3_1_1SearchEngine.html" title="API to to a generic proof search engine.">SearchEngine</a>. <a href="#ab360cca9e30af4434130557f6b45f627"></a><br/></dl><li><a class="el" href="classCVC3_1_1Expr.html">Expr</a> <a class="el" href="classCVC3_1_1TheoryCore.html#aabb093a909384e36c8780e433453358a">processCond</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &e, int i) <dl class="el"><dd class="mdescRight">An auxiliary recursive function to process COND expressions into ITE. <a href="#aabb093a909384e36c8780e433453358a"></a><br/></dl><li>bool <a class="el" href="classCVC3_1_1TheoryCore.html#ac79ad21d2aeee1d50ce53ab7f3a76eba">isBasicKind</a> (int kind) <dl class="el"><dd class="mdescRight">Return true if no special parsing is required for this kind. <a href="#ac79ad21d2aeee1d50ce53ab7f3a76eba"></a><br/></dl><li>void <a class="el" href="classCVC3_1_1TheoryCore.html#a0b0a73410836f7b3a0808a67647ba448">checkEquation</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &thm) <dl class="el"><dd class="mdescRight">Helper check functions for solve. <a href="#a0b0a73410836f7b3a0808a67647ba448"></a><br/></dl><li>void <a class="el" href="classCVC3_1_1TheoryCore.html#a164ec255c41d187cc87f6996a8a5389a">checkSolved</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &thm) <dl class="el"><dd class="mdescRight">Helper check functions for solve. <a href="#a164ec255c41d187cc87f6996a8a5389a"></a><br/></dl><li>bool <a class="el" href="classCVC3_1_1TheoryCore.html#a226706d3c1ddda709f4b09ec2a4b55bb">timeLimitReached</a> () <li><a class="el" href="classCVC3_1_1ExprStream.html">ExprStream</a> & <a class="el" href="classCVC3_1_1TheoryCore.html#a2856680de1938c077d7b25c865992de6">printSmtLibShared</a> (<a class="el" href="classCVC3_1_1ExprStream.html">ExprStream</a> &os, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &e) <li>void <a class="el" href="classCVC3_1_1TheoryCore.html#aaab0bd52237688848681cdb62c74f14c">assertEqualities</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &e) <dl class="el"><dd class="mdescRight">Assert a system of equations (1 or more). <a href="#aaab0bd52237688848681cdb62c74f14c"></a><br/></dl><li>void <a class="el" href="classCVC3_1_1TheoryCore.html#a1589ba9f082079a4dce4c9125befcf06">setIncomplete</a> (const std::string &reason) <dl class="el"><dd class="mdescRight">Mark the branch as incomplete. <a href="#a1589ba9f082079a4dce4c9125befcf06"></a><br/></dl><li><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> <a class="el" href="classCVC3_1_1TheoryCore.html#a69cd86a10c207d95ded425684c5527b9">typePred</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &e) <dl class="el"><dd class="mdescRight">Return a theorem for the type predicate of e. <a href="#a69cd86a10c207d95ded425684c5527b9"></a><br/></dl></ul> <h2><a name="pri-attribs"></a> Private Attributes</h2> <ul> <li><a class="el" href="classCVC3_1_1ContextManager.html">ContextManager</a> * <a class="el" href="classCVC3_1_1TheoryCore.html#aa803e0e65fec3e389c9c4d12d8d634a3">d_cm</a> <dl class="el"><dd class="mdescRight"><a class="el" href="classCVC3_1_1Context.html">Context</a> manager. <a href="#aa803e0e65fec3e389c9c4d12d8d634a3"></a><br/></dl><li><a class="el" href="classCVC3_1_1TheoremManager.html">TheoremManager</a> * <a class="el" href="classCVC3_1_1TheoryCore.html#a8b9c81920208ce15dac9eb3bb97b4a2b">d_tm</a> <dl class="el"><dd class="mdescRight"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> manager. <a href="#a8b9c81920208ce15dac9eb3bb97b4a2b"></a><br/></dl><li><a class="el" href="classCVC3_1_1CoreProofRules.html">CoreProofRules</a> * <a class="el" href="classCVC3_1_1TheoryCore.html#af28b98269dc8ef40a6fa97d58f414173">d_rules</a> <dl class="el"><dd class="mdescRight">Core proof rules. <a href="#af28b98269dc8ef40a6fa97d58f414173"></a><br/></dl><li>const <a class="el" href="classCVC3_1_1CLFlags.html">CLFlags</a> & <a class="el" href="classCVC3_1_1TheoryCore.html#adf5b754e1e4732cb0e1946cf0f274885">d_flags</a> <dl class="el"><dd class="mdescRight">Reference to command line flags. <a href="#adf5b754e1e4732cb0e1946cf0f274885"></a><br/></dl><li><a class="el" href="classCVC3_1_1Statistics.html">Statistics</a> & <a class="el" href="classCVC3_1_1TheoryCore.html#a053311bcc9681a402ab440bf90447632">d_statistics</a> <dl class="el"><dd class="mdescRight">Reference to statistics. <a href="#a053311bcc9681a402ab440bf90447632"></a><br/></dl><li><a class="el" href="classCVC3_1_1PrettyPrinter.html">PrettyPrinter</a> * <a class="el" href="classCVC3_1_1TheoryCore.html#aba88f17e048e24984f8637be9d31a74c">d_printer</a> <dl class="el"><dd class="mdescRight"><a class="el" href="classCVC3_1_1PrettyPrinter.html" title="Abstract API to a pretty-printer for Expr.">PrettyPrinter</a> (we own it) <a href="#aba88f17e048e24984f8637be9d31a74c"></a><br/></dl><li><a class="el" href="classCVC3_1_1ExprManager_1_1TypeComputer.html">ExprManager::TypeComputer</a> * <a class="el" href="classCVC3_1_1TheoryCore.html#ae430167a0f9f0e2ba742436bcb04e9fb">d_typeComputer</a> <dl class="el"><dd class="mdescRight"><a class="el" href="classCVC3_1_1Type.html" title="MS C++ specific settings.">Type</a> Computer. <a href="#ae430167a0f9f0e2ba742436bcb04e9fb"></a><br/></dl><li><a class="el" href="classCVC3_1_1ExprTransform.html">ExprTransform</a> * <a class="el" href="classCVC3_1_1TheoryCore.html#a03b7c799d7ee3b3a4a10f14b2faacfbb">d_exprTrans</a> <dl class="el"><dd class="mdescRight"><a class="el" href="classCVC3_1_1Expr.html" title="Data structure of expressions in CVC3.">Expr</a> Transformer. <a href="#a03b7c799d7ee3b3a4a10f14b2faacfbb"></a><br/></dl><li><a class="el" href="classCVC3_1_1Translator.html">Translator</a> * <a class="el" href="classCVC3_1_1TheoryCore.html#abe21ce53a179720cb3e94293fd6d771f">d_translator</a> <dl class="el"><dd class="mdescRight"><a class="el" href="classCVC3_1_1Translator.html">Translator</a>. <a href="#abe21ce53a179720cb3e94293fd6d771f"></a><br/></dl><li>std::queue< <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> > <a class="el" href="classCVC3_1_1TheoryCore.html#af057513081cf61dc3780967f84ae58fe">d_queue</a> <dl class="el"><dd class="mdescRight">Assertion queue. <a href="#af057513081cf61dc3780967f84ae58fe"></a><br/></dl><li>std::vector< <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> > <a class="el" href="classCVC3_1_1TheoryCore.html#a5253f49c096b1ce32579f7095c895ac4">d_queueSE</a> <dl class="el"><dd class="mdescRight">Queue of facts to be sent to the <a class="el" href="classCVC3_1_1SearchEngine.html" title="API to to a generic proof search engine.">SearchEngine</a>. <a href="#a5253f49c096b1ce32579f7095c895ac4"></a><br/></dl><li><a class="el" href="classCVC3_1_1CDO.html">CDO</a>< bool > <a class="el" href="classCVC3_1_1TheoryCore.html#ac44993c5095bc2fda1f6b931060223bf">d_inconsistent</a> <dl class="el"><dd class="mdescRight">Inconsistent flag. <a href="#ac44993c5095bc2fda1f6b931060223bf"></a><br/></dl><li><a class="el" href="classCVC3_1_1CDMap.html">CDMap</a>< std::string, bool > <a class="el" href="classCVC3_1_1TheoryCore.html#ae81dae9c186efe8ead153d14e29985bf">d_incomplete</a> <dl class="el"><dd class="mdescRight">The set of reasons for incompleteness (empty when we are complete) <a href="#ae81dae9c186efe8ead153d14e29985bf"></a><br/></dl><li><a class="el" href="classCVC3_1_1CDO.html">CDO</a>< <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> > <a class="el" href="classCVC3_1_1TheoryCore.html#a1560124d30d8cda4a6cedca4c919f8aa">d_incThm</a> <dl class="el"><dd class="mdescRight"><a class="el" href="classCVC3_1_1Proof.html">Proof</a> of inconsistent. <a href="#a1560124d30d8cda4a6cedca4c919f8aa"></a><br/></dl><li><a class="el" href="classCVC3_1_1CDList.html">CDList</a>< <a class="el" href="classCVC3_1_1Expr.html">Expr</a> > <a class="el" href="classCVC3_1_1TheoryCore.html#a9ebcf505b2577cd3a3a29d70a4fd50ae">d_terms</a> <dl class="el"><dd class="mdescRight">List of all active terms in the system (for quantifier instantiation) <a href="#a9ebcf505b2577cd3a3a29d70a4fd50ae"></a><br/></dl><li><a class="el" href="classHash_1_1hash__map.html">std::hash_map</a>< <a class="el" href="classCVC3_1_1Expr.html">Expr</a>, <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> > <a class="el" href="classCVC3_1_1TheoryCore.html#ab2fd8e3ebcc92df0276d6d0b4e8a88bf">d_termTheorems</a> <dl class="el"><dd class="mdescRight">Map from active terms to theorems that introduced those terms. <a href="#ab2fd8e3ebcc92df0276d6d0b4e8a88bf"></a><br/></dl><li><a class="el" href="classCVC3_1_1CDList.html">CDList</a>< <a class="el" href="classCVC3_1_1Expr.html">Expr</a> > <a class="el" href="classCVC3_1_1TheoryCore.html#a27f2f350452da6f7adca44c342a1f29d">d_predicates</a> <dl class="el"><dd class="mdescRight">List of all active non-equality atomic formulas in the system (for quantifier instantiation) <a href="#a27f2f350452da6f7adca44c342a1f29d"></a><br/></dl><li>std::vector< <a class="el" href="classCVC3_1_1Expr.html">Expr</a> > <a class="el" href="classCVC3_1_1TheoryCore.html#ae3ac2dba3022934af3ba4a61fc979be4">d_vars</a> <dl class="el"><dd class="mdescRight">List of variables that were created up to this point. <a href="#ae3ac2dba3022934af3ba4a61fc979be4"></a><br/></dl><li>std::map< std::string, <a class="el" href="classCVC3_1_1Expr.html">Expr</a> > <a class="el" href="classCVC3_1_1TheoryCore.html#a6ef875ba12849a2bfd367c4e1bc02e71">d_globals</a> <dl class="el"><dd class="mdescRight">Database of declared identifiers. <a href="#a6ef875ba12849a2bfd367c4e1bc02e71"></a><br/></dl><li>std::vector< std::pair<br class="typebreak"/> < std::string, <a class="el" href="classCVC3_1_1Expr.html">Expr</a> > > <a class="el" href="classCVC3_1_1TheoryCore.html#a72592744e8f94ed7c832ad895791a72a">d_boundVarStack</a> <dl class="el"><dd class="mdescRight">Bound variable stack: a vector of pairs <name, var> <a href="#a72592744e8f94ed7c832ad895791a72a"></a><br/></dl><li><a class="el" href="classHash_1_1hash__map.html">std::hash_map</a>< std::string, <a class="el" href="classCVC3_1_1Expr.html">Expr</a> > <a class="el" href="classCVC3_1_1TheoryCore.html#af1f09ebd45eebb8171943533fe49e677">d_boundVarMap</a> <dl class="el"><dd class="mdescRight">Map for bound vars. <a href="#af1f09ebd45eebb8171943533fe49e677"></a><br/></dl><li><a class="el" href="classCVC3_1_1ExprMap.html">ExprMap</a>< <a class="el" href="classCVC3_1_1Expr.html">Expr</a> > <a class="el" href="classCVC3_1_1TheoryCore.html#a22825b89097f0baa8348f268317db563">d_parseCacheTop</a> <dl class="el"><dd class="mdescRight">Top-level cache for parser. <a href="#a22825b89097f0baa8348f268317db563"></a><br/></dl><li><a class="el" href="classCVC3_1_1ExprMap.html">ExprMap</a>< <a class="el" href="classCVC3_1_1Expr.html">Expr</a> > <a class="el" href="classCVC3_1_1TheoryCore.html#ac0523af18592d25050b45ca363e52332">d_parseCacheOther</a> <dl class="el"><dd class="mdescRight">Alternative cache for parser when not at top-level. <a href="#ac0523af18592d25050b45ca363e52332"></a><br/></dl><li><a class="el" href="classCVC3_1_1ExprMap.html">ExprMap</a>< <a class="el" href="classCVC3_1_1Expr.html">Expr</a> > * <a class="el" href="classCVC3_1_1TheoryCore.html#af8402b991e938282c87e01120dfd6b99">d_parseCache</a> <dl class="el"><dd class="mdescRight">Current cache being used for parser. <a href="#af8402b991e938282c87e01120dfd6b99"></a><br/></dl><li><a class="el" href="classCVC3_1_1ExprMap.html">ExprMap</a>< <a class="el" href="classCVC3_1_1Expr.html">Expr</a> > <a class="el" href="classCVC3_1_1TheoryCore.html#ab1f589f325461e2bb39f0035c2dfa4bb">d_tccCache</a> <dl class="el"><dd class="mdescRight">Cache for tcc's. <a href="#ab1f589f325461e2bb39f0035c2dfa4bb"></a><br/></dl><li>std::vector< <a class="el" href="classCVC3_1_1Theory.html">Theory</a> * > <a class="el" href="classCVC3_1_1TheoryCore.html#a067b4f792c7bcd9fa1d756efdc5d1e72">d_theories</a> <dl class="el"><dd class="mdescRight">Array of registered theories. <a href="#a067b4f792c7bcd9fa1d756efdc5d1e72"></a><br/></dl><li><a class="el" href="classHash_1_1hash__map.html">std::hash_map</a>< int, <a class="el" href="classCVC3_1_1Theory.html">Theory</a> * > <a class="el" href="classCVC3_1_1TheoryCore.html#af9395eb99819f9b78df0dcb24ffac785">d_theoryMap</a> <dl class="el"><dd class="mdescRight">Array mapping kinds to theories. <a href="#af9395eb99819f9b78df0dcb24ffac785"></a><br/></dl><li><a class="el" href="classCVC3_1_1Theory.html">Theory</a> * <a class="el" href="classCVC3_1_1TheoryCore.html#af15d1082296c5c7f610d832bfb3cc675">d_solver</a> <dl class="el"><dd class="mdescRight">The theory which has the solver (if any) <a href="#af15d1082296c5c7f610d832bfb3cc675"></a><br/></dl><li><a class="el" href="classCVC3_1_1ExprHashMap.html">ExprHashMap</a>< std::vector< <a class="el" href="classCVC3_1_1Expr.html">Expr</a> > > <a class="el" href="classCVC3_1_1TheoryCore.html#a74cb89f5b3e600cde8e0d7b961532a5e">d_varModelMap</a> <dl class="el"><dd class="mdescRight">Mapping of compound type variables to simpler types (model generation) <a href="#a74cb89f5b3e600cde8e0d7b961532a5e"></a><br/></dl><li><a class="el" href="classCVC3_1_1ExprHashMap.html">ExprHashMap</a>< <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> > <a class="el" href="classCVC3_1_1TheoryCore.html#ad2689808e6b677e79151c5ae413a9170">d_varAssignments</a> <dl class="el"><dd class="mdescRight">Mapping of intermediate variables to their values. <a href="#ad2689808e6b677e79151c5ae413a9170"></a><br/></dl><li>std::vector< <a class="el" href="classCVC3_1_1Expr.html">Expr</a> > <a class="el" href="classCVC3_1_1TheoryCore.html#afbe156b32fe43d2b3e5519477df83110">d_basicModelVars</a> <dl class="el"><dd class="mdescRight">List of basic variables (temporary storage for model generation) <a href="#afbe156b32fe43d2b3e5519477df83110"></a><br/></dl><li><a class="el" href="classCVC3_1_1ExprHashMap.html">ExprHashMap</a>< <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> > <a class="el" href="classCVC3_1_1TheoryCore.html#a28416be391c5f58a2bf7cbe301e81663">d_simplifiedModelVars</a> <dl class="el"><dd class="mdescRight">Mapping of basic variables to simplified expressions (temp. storage) <a href="#a28416be391c5f58a2bf7cbe301e81663"></a><br/></dl><li>const bool * <a class="el" href="classCVC3_1_1TheoryCore.html#ac02ca139143a150df1ecb7ec4d4247e7">d_simplifyInPlace</a> <dl class="el"><dd class="mdescRight">Command line flag whether to simplify in place. <a href="#ac02ca139143a150df1ecb7ec4d4247e7"></a><br/></dl><li><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>(TheoryCore::* <a class="el" href="classCVC3_1_1TheoryCore.html#ae9e63b5ca2b5d745cb176ac3a528959b">d_currentRecursiveSimplifier</a> )(const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &) <dl class="el"><dd class="mdescRight">Which recursive simplifier to use. <a href="#ae9e63b5ca2b5d745cb176ac3a528959b"></a><br/></dl><li>unsigned <a class="el" href="classCVC3_1_1TheoryCore.html#a7040ce9b2fa8d567df0d84a5ceee84bf">d_resourceLimit</a> <dl class="el"><dd class="mdescRight">Resource limit (0==unlimited, 1==no more resources, >=2 - available). <a href="#a7040ce9b2fa8d567df0d84a5ceee84bf"></a><br/></dl><li>unsigned <a class="el" href="classCVC3_1_1TheoryCore.html#aa2e429d75afaade7281ed2b370a50dcf">d_timeBase</a> <dl class="el"><dd class="mdescRight">Time limit (0==unlimited, >0==total available cpu time in seconds). <a href="#aa2e429d75afaade7281ed2b370a50dcf"></a><br/></dl><li>unsigned <a class="el" href="classCVC3_1_1TheoryCore.html#a4ad36b717dcce5ed5ad9a4514e39e66f">d_timeLimit</a> <li>bool <a class="el" href="classCVC3_1_1TheoryCore.html#adc61197a61a4a024cdd614a281f8cf0c">d_inCheckSATCore</a> <li>bool <a class="el" href="classCVC3_1_1TheoryCore.html#abf9ffc3f83f262e0acdece359d2d00bd">d_inAddFact</a> <li>bool <a class="el" href="classCVC3_1_1TheoryCore.html#a608590056910229da1a794d0dd5930c4">d_inRegisterAtom</a> <li>bool <a class="el" href="classCVC3_1_1TheoryCore.html#aac5050e644f0c475d104f4dd3a8ddf32">d_inPP</a> <li><a class="el" href="classCVC3_1_1TheoryCore_1_1CoreNotifyObj.html">CoreNotifyObj</a> <a class="el" href="classCVC3_1_1TheoryCore.html#ae16ab39bb24e04e3928d693ac3a1bb1e">d_notifyObj</a> <li><a class="el" href="classCVC3_1_1CDList.html">CDList</a>< <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> > <a class="el" href="classCVC3_1_1TheoryCore.html#a7b531fbcb166cac53d82f74c812d42f6">d_impliedLiterals</a> <dl class="el"><dd class="mdescRight">List of implied literals, based on registered atomic formulas of interest. <a href="#a7b531fbcb166cac53d82f74c812d42f6"></a><br/></dl><li><a class="el" href="classCVC3_1_1CDO.html">CDO</a>< unsigned > <a class="el" href="classCVC3_1_1TheoryCore.html#a496993a9e180ca584cff84ce9dbdff69">d_impliedLiteralsIdx</a> <dl class="el"><dd class="mdescRight">Next index in d_impliedLiterals that has not yet been fetched. <a href="#a496993a9e180ca584cff84ce9dbdff69"></a><br/></dl><li>std::vector< <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> > <a class="el" href="classCVC3_1_1TheoryCore.html#a0813a81e68625ac93111f45a4e81b131">d_update_thms</a> <dl class="el"><dd class="mdescRight">List of theorems from calls to <a class="el" href="classCVC3_1_1TheoryCore.html#a435e2305420c1ed5b2ff1e4758a50dc5">update()</a> <a href="#a0813a81e68625ac93111f45a4e81b131"></a><br/></dl><li>std::vector< <a class="el" href="classCVC3_1_1Expr.html">Expr</a> > <a class="el" href="classCVC3_1_1TheoryCore.html#a9b774b862908ff097c6aed53bdfdbcd3">d_update_data</a> <dl class="el"><dd class="mdescRight">List of data accompanying above theorems from calls to <a class="el" href="classCVC3_1_1TheoryCore.html#a435e2305420c1ed5b2ff1e4758a50dc5">update()</a> <a href="#a9b774b862908ff097c6aed53bdfdbcd3"></a><br/></dl><li><a class="el" href="classCVC3_1_1NotifyList.html">NotifyList</a> <a class="el" href="classCVC3_1_1TheoryCore.html#a96ce7c2fe3b14e3b8b4661fbe19db290">d_notifyEq</a> <dl class="el"><dd class="mdescRight">Notify list that gets processed on every equality. <a href="#a96ce7c2fe3b14e3b8b4661fbe19db290"></a><br/></dl><li>unsigned <a class="el" href="classCVC3_1_1TheoryCore.html#a966030ae5b96557c9ea5de874a9526ef">d_inUpdate</a> <dl class="el"><dd class="mdescRight">Whether we are in the middle of doing updates. <a href="#a966030ae5b96557c9ea5de874a9526ef"></a><br/></dl><li>std::vector< std::pair< <a class="el" href="classCVC3_1_1Expr.html">Expr</a>, <br class="typebreak"/> <a class="el" href="classCVC3_1_1Expr.html">Expr</a> > > <a class="el" href="classCVC3_1_1TheoryCore.html#ae0a477cb44ee4e9285008f0653b2f366">d_assignment</a> <dl class="el"><dd class="mdescRight">The set of named expressions to evaluate on a GET_ASSIGNMENT request. <a href="#ae0a477cb44ee4e9285008f0653b2f366"></a><br/></dl><li><a class="el" href="classCVC3_1_1TheoryCore_1_1CoreSatAPI.html">CoreSatAPI</a> * <a class="el" href="classCVC3_1_1TheoryCore.html#ae1618a8812ad74a6349ad585bb677354">d_coreSatAPI</a> </ul> <h2><a name="friends"></a> Friends</h2> <ul> <li>class <a class="el" href="classCVC3_1_1TheoryCore.html#abe20cc4b804d6951c09b92aec0085063">Theory</a> <li>class <a class="el" href="classCVC3_1_1TheoryCore.html#a6b4c0f704ab77eddaaa6308ad6cf45cd">CoreNotifyObj</a> <dl class="el"><dd class="mdescRight">So we get notified every time there's a pop. <a href="#a6b4c0f704ab77eddaaa6308ad6cf45cd"></a><br/></dl></ul> <hr/><a name="details" id="details"></a><h2>Detailed Description</h2> <div class="textblock"><p>This theory handles the built-in logical connectives plus equality. It also handles the registration and cooperation among all other theories. </p> <p>Author: Clark Barrett</p> <p>Created: Sat Feb 8 14:54:05 2003 </p> <p>Definition at line <a class="el" href="theory__core_8h_source.html#l00053">53</a> of file <a class="el" href="theory__core_8h_source.html">theory_core.h</a>.</p> </div><hr/><h2>Member Enumeration Documentation</h2> <a class="anchor" id="a9563215d97859a27f661c1517614f6ce"></a><!-- doxytag: member="CVC3::TheoryCore::EffortLevel" ref="a9563215d97859a27f661c1517614f6ce" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">enum <a class="el" href="classCVC3_1_1TheoryCore.html#a9563215d97859a27f661c1517614f6ce">CVC3::TheoryCore::EffortLevel</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Effort level for processFactQueue. </p> <p>LOW means just process facts, don't call theory checkSat methods NORMAL means call theory checkSat methods without full effort FULL means call theory checkSat methods with full effort </p> <dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><em><a class="anchor" id="a9563215d97859a27f661c1517614f6ceaa35ba8e293104fb62e9163b4c036386b"></a><!-- doxytag: member="LOW" ref="a9563215d97859a27f661c1517614f6ceaa35ba8e293104fb62e9163b4c036386b" args="" -->LOW</em> </td><td> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a9563215d97859a27f661c1517614f6cea1c0ce47707a6729f337134fc3239ef07"></a><!-- doxytag: member="NORMAL" ref="a9563215d97859a27f661c1517614f6cea1c0ce47707a6729f337134fc3239ef07" args="" -->NORMAL</em> </td><td> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a9563215d97859a27f661c1517614f6ceaf927a488bd3f95079d191debe7e93a06"></a><!-- doxytag: member="FULL" ref="a9563215d97859a27f661c1517614f6ceaf927a488bd3f95079d191debe7e93a06" args="" -->FULL</em> </td><td> </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="theory__core_8h_source.html#l00258">258</a> of file <a class="el" href="theory__core_8h_source.html">theory_core.h</a>.</p> </div> </div> <hr/><h2>Constructor & Destructor Documentation</h2> <a class="anchor" id="acd5196a42683a0f357560588d4e81817"></a><!-- doxytag: member="CVC3::TheoryCore::TheoryCore" ref="acd5196a42683a0f357560588d4e81817" args="(ContextManager *cm, ExprManager *em, TheoremManager *tm, Translator *tr, const CLFlags &flags, Statistics &statistics)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">TheoryCore::TheoryCore </td> <td>(</td> <td class="paramtype"><a class="el" href="classCVC3_1_1ContextManager.html">ContextManager</a> * </td> <td class="paramname"><em>cm</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classCVC3_1_1ExprManager.html">ExprManager</a> * </td> <td class="paramname"><em>em</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classCVC3_1_1TheoremManager.html">TheoremManager</a> * </td> <td class="paramname"><em>tm</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classCVC3_1_1Translator.html">Translator</a> * </td> <td class="paramname"><em>tr</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="classCVC3_1_1CLFlags.html">CLFlags</a> & </td> <td class="paramname"><em>flags</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classCVC3_1_1Statistics.html">Statistics</a> & </td> <td class="paramname"><em>statistics</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Constructor. </p> <p>Definition at line <a class="el" href="theory__core_8cpp_source.html#l00698">698</a> of file <a class="el" href="theory__core_8cpp_source.html">theory_core.cpp</a>.</p> <p>References <a class="el" href="kinds_8h_source.html#l00067">AND</a>, <a class="el" href="kinds_8h_source.html#l00075">AND_R</a>, <a class="el" href="kinds_8h_source.html#l00138">ANNOTATION</a>, <a class="el" href="kinds_8h_source.html#l00050">ANY_TYPE</a>, <a class="el" href="kinds_8h_source.html#l00090">APPLY</a>, <a class="el" href="kinds_8h_source.html#l00137">ARITH_VAR_ORDER</a>, <a class="el" href="kinds_8h_source.html#l00093">ASSERT</a>, <a class="el" href="kinds_8h_source.html#l00119">ASSERTIONS</a>, <a class="el" href="kinds_8h_source.html#l00120">ASSUMPTIONS</a>, <a class="el" href="kinds_8h_source.html#l00048">BOOLEAN</a>, <a class="el" href="kinds_8h_source.html#l00164">BOUND_VAR</a>, <a class="el" href="kinds_8h_source.html#l00105">CALL</a>, <a class="el" href="kinds_8h_source.html#l00133">CHECK_TYPE</a>, <a class="el" href="kinds_8h_source.html#l00217">COND</a>, <a class="el" href="kinds_8h_source.html#l00240">CONST</a>, <a class="el" href="kinds_8h_source.html#l00130">CONTEXT</a>, <a class="el" href="kinds_8h_source.html#l00121">COUNTEREXAMPLE</a>, <a class="el" href="kinds_8h_source.html#l00122">COUNTERMODEL</a>, <a class="el" href="core__theorem__producer_8cpp_source.html#l00045">createProofRules()</a>, <a class="el" href="theory_8h_source.html#l00069">CVC3::Theory::d_commonRules</a>, <a class="el" href="theory_8h_source.html#l00067">CVC3::Theory::d_em</a>, <a class="el" href="theory__core_8h_source.html#l00078">d_exprTrans</a>, <a class="el" href="theory_8h_source.html#l00070">CVC3::Theory::d_name</a>, <a class="el" href="theory__core_8h_source.html#l00072">d_printer</a>, <a class="el" href="theory__core_8h_source.html#l00063">d_rules</a>, <a class="el" href="theory_8h_source.html#l00068">CVC3::Theory::d_theoryCore</a>, <a class="el" href="theory_8h_source.html#l00079">CVC3::Theory::d_theoryUsed</a>, <a class="el" href="theory__core_8h_source.html#l00075">d_typeComputer</a>, <a class="el" href="kinds_8h_source.html#l00098">DBG</a>, <a class="el" href="kinds_8h_source.html#l00246">DEFUN</a>, <a class="el" href="kinds_8h_source.html#l00063">DISTINCT</a>, <a class="el" href="kinds_8h_source.html#l00111">DUMP_ASSUMPTIONS</a>, <a class="el" href="kinds_8h_source.html#l00116">DUMP_CLOSURE</a>, <a class="el" href="kinds_8h_source.html#l00117">DUMP_CLOSURE_PROOF</a>, <a class="el" href="kinds_8h_source.html#l00110">DUMP_PROOF</a>, <a class="el" href="kinds_8h_source.html#l00112">DUMP_SIG</a>, <a class="el" href="kinds_8h_source.html#l00113">DUMP_TCC</a>, <a class="el" href="kinds_8h_source.html#l00114">DUMP_TCC_ASSUMPTIONS</a>, <a class="el" href="kinds_8h_source.html#l00115">DUMP_TCC_PROOF</a>, <a class="el" href="kinds_8h_source.html#l00106">ECHO</a>, <a class="el" href="kinds_8h_source.html#l00214">ELSE</a>, <a class="el" href="kinds_8h_source.html#l00061">EQ</a>, <a class="el" href="kinds_8h_source.html#l00036">FALSE_EXPR</a>, <a class="el" href="kinds_8h_source.html#l00131">FORGET</a>, <a class="el" href="kinds_8h_source.html#l00109">GET_ASSIGNMENT</a>, <a class="el" href="kinds_8h_source.html#l00134">GET_CHILD</a>, <a class="el" href="kinds_8h_source.html#l00132">GET_TYPE</a>, <a class="el" href="kinds_8h_source.html#l00108">GET_VALUE</a>, <a class="el" href="theorem__manager_8h_source.html#l00080">CVC3::TheoremManager::getRules()</a>, <a class="el" href="kinds_8h_source.html#l00102">HELP</a>, <a class="el" href="kinds_8h_source.html#l00046">ID</a>, <a class="el" href="kinds_8h_source.html#l00212">IF</a>, <a class="el" href="kinds_8h_source.html#l00070">IFF</a>, <a class="el" href="kinds_8h_source.html#l00076">IFF_R</a>, <a class="el" href="kinds_8h_source.html#l00213">IFTHEN</a>, <a class="el" href="kinds_8h_source.html#l00071">IMPLIES</a>, <a class="el" href="kinds_8h_source.html#l00081">ITE</a>, <a class="el" href="kinds_8h_source.html#l00077">ITE_R</a>, <a class="el" href="kinds_8h_source.html#l00225">LET</a>, <a class="el" href="kinds_8h_source.html#l00227">LETDECL</a>, <a class="el" href="kinds_8h_source.html#l00226">LETDECLS</a>, <a class="el" href="kinds_8h_source.html#l00062">NEQ</a>, <a class="el" href="kinds_8h_source.html#l00066">NOT</a>, <a class="el" href="kinds_8h_source.html#l00101">OPTION</a>, <a class="el" href="kinds_8h_source.html#l00068">OR</a>, <a class="el" href="kinds_8h_source.html#l00275">PF_APPLY</a>, <a class="el" href="kinds_8h_source.html#l00276">PF_HOLE</a>, <a class="el" href="kinds_8h_source.html#l00124">POP</a>, <a class="el" href="kinds_8h_source.html#l00127">POP_SCOPE</a>, <a class="el" href="kinds_8h_source.html#l00125">POPTO</a>, <a class="el" href="kinds_8h_source.html#l00128">POPTO_SCOPE</a>, <a class="el" href="kinds_8h_source.html#l00104">PRINT</a>, <a class="el" href="kinds_8h_source.html#l00123">PUSH</a>, <a class="el" href="kinds_8h_source.html#l00126">PUSH_SCOPE</a>, <a class="el" href="kinds_8h_source.html#l00094">QUERY</a>, <a class="el" href="kinds_8h_source.html#l00044">RAW_LIST</a>, <a class="el" href="expr__manager_8cpp_source.html#l00391">CVC3::ExprManager::registerPrettyPrinter()</a>, <a class="el" href="theory_8cpp_source.html#l00203">CVC3::Theory::registerTheory()</a>, <a class="el" href="expr__manager_8h_source.html#l00344">CVC3::ExprManager::registerTypeComputer()</a>, <a class="el" href="kinds_8h_source.html#l00129">RESET</a>, <a class="el" href="kinds_8h_source.html#l00136">SEQ</a>, <a class="el" href="kinds_8h_source.html#l00290">SKOLEM_VAR</a>, <a class="el" href="kinds_8h_source.html#l00038">STRING_EXPR</a>, <a class="el" href="kinds_8h_source.html#l00135">SUBSTITUTE</a>, <a class="el" href="kinds_8h_source.html#l00193">SUBTYPE</a>, <a class="el" href="kinds_8h_source.html#l00292">THEOREM_KIND</a>, <a class="el" href="kinds_8h_source.html#l00099">TRACE</a>, <a class="el" href="kinds_8h_source.html#l00103">TRANSFORM</a>, <a class="el" href="kinds_8h_source.html#l00035">TRUE_EXPR</a>, <a class="el" href="kinds_8h_source.html#l00053">TYPE</a>, <a class="el" href="kinds_8h_source.html#l00058">TYPEDEF</a>, <a class="el" href="kinds_8h_source.html#l00242">UCONST</a>, <a class="el" href="kinds_8h_source.html#l00100">UNTRACE</a>, <a class="el" href="kinds_8h_source.html#l00145">VARDECL</a>, <a class="el" href="kinds_8h_source.html#l00147">VARDECLS</a>, <a class="el" href="kinds_8h_source.html#l00241">VARLIST</a>, <a class="el" href="kinds_8h_source.html#l00118">WHERE</a>, and <a class="el" href="kinds_8h_source.html#l00069">XOR</a>.</p> </div> </div> <a class="anchor" id="ad91cca07e2f1e8cd9614a6e88d6dd232"></a><!-- doxytag: member="CVC3::TheoryCore::~TheoryCore" ref="ad91cca07e2f1e8cd9614a6e88d6dd232" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">TheoryCore::~TheoryCore </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Destructor. </p> <p>Definition at line <a class="el" href="theory__core_8cpp_source.html#l00847">847</a> of file <a class="el" href="theory__core_8cpp_source.html">theory_core.cpp</a>.</p> <p>References <a class="el" href="theory_8h_source.html#l00067">CVC3::Theory::d_em</a>, <a class="el" href="theory__core_8h_source.html#l00078">d_exprTrans</a>, <a class="el" href="theory__core_8h_source.html#l00072">d_printer</a>, <a class="el" href="theory__core_8h_source.html#l00063">d_rules</a>, <a class="el" href="theory__core_8h_source.html#l00075">d_typeComputer</a>, and <a class="el" href="expr__manager_8cpp_source.html#l00398">CVC3::ExprManager::unregisterPrettyPrinter()</a>.</p> </div> </div> <hr/><h2>Member Function Documentation</h2> <a class="anchor" id="a5b386f16781365b7421e884baaebae41"></a><!-- doxytag: member="CVC3::TheoryCore::createProofRules" ref="a5b386f16781365b7421e884baaebae41" args="(TheoremManager *tm)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCVC3_1_1CoreProofRules.html">CoreProofRules</a> * TheoryCore::createProofRules </td> <td>(</td> <td class="paramtype"><a class="el" href="classCVC3_1_1TheoremManager.html">TheoremManager</a> * </td> <td class="paramname"><em>tm</em></td><td>)</td> <td><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Private method to get a new theorem producer. </p> <p>This method is used ONLY by the <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> constructor. The only reason to have this method is to separate the trusted part of the constructor into a separate .cpp file (Alternative is to make the entire constructer trusted, which is not very safe). Method is implemented in <a class="el" href="core__theorem__producer_8cpp.html">core_theorem_producer.cpp</a> </p> <p>Definition at line <a class="el" href="core__theorem__producer_8cpp_source.html#l00045">45</a> of file <a class="el" href="core__theorem__producer_8cpp_source.html">core_theorem_producer.cpp</a>.</p> <p>Referenced by <a class="el" href="theory__core_8cpp_source.html#l00698">TheoryCore()</a>.</p> </div> </div> <a class="anchor" id="a36cd038dd5644d4a2bd6ea56cec2212e"></a><!-- doxytag: member="CVC3::TheoryCore::processFactQueue" ref="a36cd038dd5644d4a2bd6ea56cec2212e" args="(EffortLevel effort=NORMAL)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool TheoryCore::processFactQueue </td> <td>(</td> <td class="paramtype"><a class="el" href="classCVC3_1_1TheoryCore.html#a9563215d97859a27f661c1517614f6ce">EffortLevel</a> </td> <td class="paramname"><em>effort</em> = <code>NORMAL</code></td><td>)</td> <td><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>A helper function for <a class="el" href="classCVC3_1_1TheoryCore.html#aecef2465eb761f7f112ddce77f93d081" title="Add a new assertion to the core from the user or a SAT solver. Do NOT use it in a decision procedure;...">addFact()</a> </p> <p>Returns true if lemmas were added to search engine, false otherwise </p> <p>Definition at line <a class="el" href="theory__core_8cpp_source.html#l00121">121</a> of file <a class="el" href="theory__core_8cpp_source.html">theory_core.cpp</a>.</p> <p>Referenced by <a class="el" href="theory__core_8cpp_source.html#l03468">addFact()</a>, <a class="el" href="theory__core_8cpp_source.html#l00857">callTheoryPreprocess()</a>, <a class="el" href="theory__core_8cpp_source.html#l03507">checkSATCore()</a>, and <a class="el" href="theory__core_8cpp_source.html#l03541">registerAtom()</a>.</p> </div> </div> <a class="anchor" id="a728d9c7d448cc32f58292677e7b5aae2"></a><!-- doxytag: member="CVC3::TheoryCore::processNotify" ref="a728d9c7d448cc32f58292677e7b5aae2" args="(const Theorem &e, NotifyList *L)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void TheoryCore::processNotify </td> <td>(</td> <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> & </td> <td class="paramname"><em>e</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classCVC3_1_1NotifyList.html">NotifyList</a> * </td> <td class="paramname"><em>L</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Process a notify list triggered as a result of new theorem e. </p> <p>Definition at line <a class="el" href="theory__core_8cpp_source.html#l00173">173</a> of file <a class="el" href="theory__core_8cpp_source.html">theory_core.cpp</a>.</p> <p>References <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="notifylist_8h_source.html#l00042">CVC3::NotifyList::getExpr()</a>, <a class="el" href="notifylist_8h_source.html#l00041">CVC3::NotifyList::getTheory()</a>, <a class="el" href="notifylist_8h_source.html#l00039">CVC3::NotifyList::size()</a>, and <a class="el" href="theory_8h_source.html#l00189">CVC3::Theory::update()</a>.</p> <p>Referenced by <a class="el" href="theory__core_8cpp_source.html#l04093">assertEqualities()</a>.</p> </div> </div> <a class="anchor" id="ad0643e3175b0c8fd270b044b02999de9"></a><!-- doxytag: member="CVC3::TheoryCore::rewriteCore" ref="ad0643e3175b0c8fd270b044b02999de9" args="(const Theorem &e)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> TheoryCore::rewriteCore </td> <td>(</td> <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> & </td> <td class="paramname"><em>e</em></td><td>)</td> <td><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Transitive composition of other rewrites with the above. </p> <p>Definition at line <a class="el" href="theory__core_8cpp_source.html#l00257">257</a> of file <a class="el" href="theory__core_8cpp_source.html">theory_core.cpp</a>.</p> <p>References <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="theorem_8cpp_source.html#l00246">CVC3::Theorem::getRHS()</a>, <a class="el" href="theorem_8cpp_source.html#l00224">CVC3::Theorem::isRewrite()</a>, and <a class="el" href="theorem_8h_source.html#l00404">CVC3::Theorem::toString()</a>.</p> <p>Referenced by <a class="el" href="theory__core_8cpp_source.html#l00968">rewrite()</a>.</p> </div> </div> <a class="anchor" id="af29a30b97ecc26f0c4b3136531487caf"></a><!-- doxytag: member="CVC3::TheoryCore::setupSubFormulas" ref="af29a30b97ecc26f0c4b3136531487caf" args="(const Expr &s, const Expr &e, const Theorem &thm)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void TheoryCore::setupSubFormulas </td> <td>(</td> <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> & </td> <td class="paramname"><em>s</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> & </td> <td class="paramname"><em>e</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>thm</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Helper for registerAtom. </p> <p>Definition at line <a class="el" href="theory__core_8cpp_source.html#l00269">269</a> of file <a class="el" href="theory__core_8cpp_source.html">theory_core.cpp</a>.</p> <p>References <a class="el" href="expr_8cpp_source.html#l00517">CVC3::Expr::addToNotify()</a>, <a class="el" href="expr_8h_source.html#l01201">CVC3::Expr::arity()</a>, <a class="el" href="expr_8h_source.html#l00398">CVC3::Expr::isAbsAtomicFormula()</a>, and <a class="el" href="expr_8cpp_source.html#l00550">CVC3::Expr::isAtomic()</a>.</p> <p>Referenced by <a class="el" href="theory__core_8cpp_source.html#l03541">registerAtom()</a>.</p> </div> </div> <a class="anchor" id="a846416a29d02c4f2615f4de65e042cac"></a><!-- doxytag: member="CVC3::TheoryCore::processUpdates" ref="a846416a29d02c4f2615f4de65e042cac" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void TheoryCore::processUpdates </td> <td>(</td> <td class="paramname"></td><td>)</td> <td><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Process updates recorded by calls to <a class="el" href="classCVC3_1_1TheoryCore.html#a435e2305420c1ed5b2ff1e4758a50dc5">update()</a> </p> <p>Definition at line <a class="el" href="theory__core_8cpp_source.html#l00291">291</a> of file <a class="el" href="theory__core_8cpp_source.html">theory_core.cpp</a>.</p> <p>References <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="theorem_8cpp_source.html#l00246">CVC3::Theorem::getRHS()</a>, <a class="el" href="expr_8h_source.html#l01259">CVC3::Expr::getType()</a>, <a class="el" href="expr_8h_source.html#l00398">CVC3::Expr::isAbsAtomicFormula()</a>, <a class="el" href="type_8h_source.html#l00060">CVC3::Type::isBool()</a>, and <a class="el" href="theorem_8cpp_source.html#l00224">CVC3::Theorem::isRewrite()</a>.</p> </div> </div> <a class="anchor" id="a3a897e60d6dd1dfd382870054e5ad777"></a><!-- doxytag: member="CVC3::TheoryCore::assertFactCore" ref="a3a897e60d6dd1dfd382870054e5ad777" args="(const Theorem &e)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void TheoryCore::assertFactCore </td> <td>(</td> <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> & </td> <td class="paramname"><em>e</em></td><td>)</td> <td><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>The assumptions for e must be in H or phi. "Core" added to avoid conflict with theory interface function name. </p> <p>Definition at line <a class="el" href="theory__core_8cpp_source.html#l00321">321</a> of file <a class="el" href="theory__core_8cpp_source.html">theory_core.cpp</a>.</p> <p>References <a class="el" href="expr_8h_source.html#l01201">CVC3::Expr::arity()</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="expr__stream_8cpp_source.html#l00353">std::endl()</a>, <a class="el" href="theorem_8cpp_source.html#l00230">CVC3::Theorem::getExpr()</a>, <a class="el" href="theorem_8cpp_source.html#l00240">CVC3::Theorem::getLHS()</a>, <a class="el" href="theorem_8cpp_source.html#l00246">CVC3::Theorem::getRHS()</a>, <a class="el" href="expr_8h_source.html#l01232">CVC3::Expr::hasFind()</a>, <a class="el" href="debug_8h_source.html#l00406">IF_DEBUG</a>, <a class="el" href="expr_8h_source.html#l00406">CVC3::Expr::isAbsLiteral()</a>, <a class="el" href="expr_8h_source.html#l00421">CVC3::Expr::isAnd()</a>, <a class="el" href="expr_8h_source.html#l00419">CVC3::Expr::isEq()</a>, <a class="el" href="expr_8h_source.html#l00355">CVC3::Expr::isFalse()</a>, <a class="el" href="expr_8h_source.html#l00420">CVC3::Expr::isNot()</a>, <a class="el" href="theorem_8cpp_source.html#l00224">CVC3::Theorem::isRewrite()</a>, <a class="el" href="expr_8h_source.html#l00356">CVC3::Expr::isTrue()</a>, <a class="el" href="lang_8h_source.html#l00032">CVC3::PRESENTATION_LANG</a>, <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>, and <a class="el" href="kinds_8h_source.html#l00099">TRACE</a>.</p> </div> </div> <a class="anchor" id="a1f662e7f045032350f2a3bccc63a71d6"></a><!-- doxytag: member="CVC3::TheoryCore::assertFormula" ref="a1f662e7f045032350f2a3bccc63a71d6" args="(const Theorem &e)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void TheoryCore::assertFormula </td> <td>(</td> <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> & </td> <td class="paramname"><em>e</em></td><td>)</td> <td><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Process a newly derived formula. </p> <p>Definition at line <a class="el" href="theory__core_8cpp_source.html#l00385">385</a> of file <a class="el" href="theory__core_8cpp_source.html">theory_core.cpp</a>.</p> <p>References <a class="el" href="expr_8cpp_source.html#l00517">CVC3::Expr::addToNotify()</a>, <a class="el" href="group__Theory__API.html#ga58de37714dd855f4d50de15108b8dbc7">CVC3::Theory::assertFact()</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="kinds_8h_source.html#l00061">EQ</a>, <a class="el" href="expr_8h_source.html#l00929">CVC3::Expr::eqExpr()</a>, <a class="el" href="kinds_8h_source.html#l00085">EXISTS</a>, <a class="el" href="theorem_8cpp_source.html#l00230">CVC3::Theorem::getExpr()</a>, <a class="el" href="expr_8h_source.html#l01168">CVC3::Expr::getKind()</a>, <a class="el" href="expr_8h_source.html#l01232">CVC3::Expr::hasFind()</a>, <a class="el" href="debug_8h_source.html#l00406">IF_DEBUG</a>, <a class="el" href="expr_8h_source.html#l00406">CVC3::Expr::isAbsLiteral()</a>, <a class="el" href="expr_8h_source.html#l00420">CVC3::Expr::isNot()</a>, <a class="el" href="kinds_8h_source.html#l00066">NOT</a>, <a class="el" href="lang_8h_source.html#l00032">CVC3::PRESENTATION_LANG</a>, <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>, <a class="el" href="theorem_8h_source.html#l00404">CVC3::Theorem::toString()</a>, and <a class="el" href="kinds_8h_source.html#l00099">TRACE</a>.</p> <p>Referenced by <a class="el" href="theory__core_8cpp_source.html#l04093">assertEqualities()</a>.</p> </div> </div> <a class="anchor" id="a84a6096579ca77dda6b673da7f1fce7c"></a><!-- doxytag: member="CVC3::TheoryCore::rewriteCore" ref="a84a6096579ca77dda6b673da7f1fce7c" args="(const Expr &e)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> CVC3::TheoryCore::rewriteCore </td> <td>(</td> <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> & </td> <td class="paramname"><em>e</em></td><td>)</td> <td><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Check that lhs and rhs of thm have same base type. </p> <p>Returns phi |= e = rewriteCore(e). "Core" added to avoid conflict with theory interface function name </p> <p>Definition at line <a class="el" href="theory__core_8cpp_source.html#l00455">455</a> of file <a class="el" href="theory__core_8cpp_source.html">theory_core.cpp</a>.</p> <p>References <a class="el" href="expr_8h_source.html#l01543">CVC3::Expr::clearRewriteNormal()</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="kinds_8h_source.html#l00061">EQ</a>, <a class="el" href="expr_8h_source.html#l01168">CVC3::Expr::getKind()</a>, <a class="el" href="theorem_8cpp_source.html#l00246">CVC3::Theorem::getRHS()</a>, <a class="el" href="expr_8h_source.html#l01232">CVC3::Expr::hasFind()</a>, <a class="el" href="debug_8h_source.html#l00406">IF_DEBUG</a>, <a class="el" href="expr_8h_source.html#l00419">CVC3::Expr::isEq()</a>, <a class="el" href="theorem_8h_source.html#l00171">CVC3::Theorem::isRefl()</a>, <a class="el" href="expr_8h_source.html#l01322">CVC3::Expr::isRewriteNormal()</a>, <a class="el" href="kinds_8h_source.html#l00066">NOT</a>, <a class="el" href="expr_8h_source.html#l01457">CVC3::Expr::setRewriteNormal()</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p> </div> </div> <a class="anchor" id="a63e4ccd049c6191c675fe8ad4bf1979f"></a><!-- doxytag: member="CVC3::TheoryCore::setFindLiteral" ref="a63e4ccd049c6191c675fe8ad4bf1979f" args="(const Theorem &thm)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void TheoryCore::setFindLiteral </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><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Set the find pointer of an atomic formula and notify <a class="el" href="classCVC3_1_1SearchEngine.html" title="API to to a generic proof search engine.">SearchEngine</a>. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">thm</td><td>is a Theorem(phi) or Theorem(NOT phi), where phi is an atomic formula to get a find pointer to TRUE or FALSE, respectively. </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="theory__core_8cpp_source.html#l00509">509</a> of file <a class="el" href="theory__core_8cpp_source.html">theory_core.cpp</a>.</p> <p>References <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="theorem_8cpp_source.html#l00230">CVC3::Theorem::getExpr()</a>, <a class="el" href="expr_8h_source.html#l01254">CVC3::Expr::getNotify()</a>, <a class="el" href="theorem_8cpp_source.html#l00246">CVC3::Theorem::getRHS()</a>, <a class="el" href="expr_8h_source.html#l01232">CVC3::Expr::hasFind()</a>, <a class="el" href="debug_8h_source.html#l00406">IF_DEBUG</a>, <a class="el" href="expr_8h_source.html#l00355">CVC3::Expr::isFalse()</a>, <a class="el" href="expr_8h_source.html#l01350">CVC3::Expr::isImpliedLiteral()</a>, <a class="el" href="expr_8h_source.html#l00420">CVC3::Expr::isNot()</a>, <a class="el" href="expr_8h_source.html#l01378">CVC3::Expr::isRegisteredAtom()</a>, <a class="el" href="expr_8h_source.html#l00356">CVC3::Expr::isTrue()</a>, <a class="el" href="lang_8h_source.html#l00032">CVC3::PRESENTATION_LANG</a>, <a class="el" href="expr_8h_source.html#l01405">CVC3::Expr::setFind()</a>, <a class="el" href="expr_8h_source.html#l01493">CVC3::Expr::setImpliedLiteral()</a>, <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>, and <a class="el" href="kinds_8h_source.html#l00099">TRACE</a>.</p> <p>Referenced by <a class="el" href="theory__core_8cpp_source.html#l03541">registerAtom()</a>, and <a class="el" href="theory__core_8cpp_source.html#l01141">update()</a>.</p> </div> </div> <a class="anchor" id="a8ba8c93d75329369b8d91f37a463ef09"></a><!-- doxytag: member="CVC3::TheoryCore::rewriteLitCore" ref="a8ba8c93d75329369b8d91f37a463ef09" args="(const Expr &e)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> TheoryCore::rewriteLitCore </td> <td>(</td> <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> & </td> <td class="paramname"><em>e</em></td><td>)</td> <td><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Core rewrites for literals (NOT and EQ) </p> <p>Definition at line <a class="el" href="theory__core_8cpp_source.html#l00560">560</a> of file <a class="el" href="theory__core_8cpp_source.html">theory_core.cpp</a>.</p> <p>References <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="kinds_8h_source.html#l00061">EQ</a>, <a class="el" href="expr_8h_source.html#l01168">CVC3::Expr::getKind()</a>, <a class="el" href="kinds_8h_source.html#l00066">NOT</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p> <p>Referenced by <a class="el" href="theory__core_8cpp_source.html#l00968">rewrite()</a>.</p> </div> </div> <a class="anchor" id="ab360cca9e30af4434130557f6b45f627"></a><!-- doxytag: member="CVC3::TheoryCore::getModelValue" ref="ab360cca9e30af4434130557f6b45f627" args="(const Expr &e)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> TheoryCore::getModelValue </td> <td>(</td> <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> & </td> <td class="paramname"><em>e</em></td><td>)</td> <td><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Enqueue a fact to be sent to the <a class="el" href="classCVC3_1_1SearchEngine.html" title="API to to a generic proof search engine.">SearchEngine</a>. </p> <p>Fetch the concrete assignment to the variable during model generation </p> <p>Reimplemented from <a class="el" href="classCVC3_1_1Theory.html#a4867f332c809f6efe8f01ffa45c32db3">CVC3::Theory</a>.</p> <p>Definition at line <a class="el" href="theory__core_8cpp_source.html#l00595">595</a> of file <a class="el" href="theory__core_8cpp_source.html">theory_core.cpp</a>.</p> <p>References <a class="el" href="expr__map_8h_source.html#l00329">CVC3::ExprHashMap< Data >::find()</a>.</p> <p>Referenced by <a class="el" href="theory__core_8cpp_source.html#l03954">collectModelValues()</a>, and <a class="el" href="theory_8cpp_source.html#l00541">CVC3::Theory::getModelValue()</a>.</p> </div> </div> <a class="anchor" id="aabb093a909384e36c8780e433453358a"></a><!-- doxytag: member="CVC3::TheoryCore::processCond" ref="aabb093a909384e36c8780e433453358a" args="(const Expr &e, int i)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCVC3_1_1Expr.html">Expr</a> TheoryCore::processCond </td> <td>(</td> <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> & </td> <td class="paramname"><em>e</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>i</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>An auxiliary recursive function to process COND expressions into ITE. </p> <p>Definition at line <a class="el" href="theory__core_8cpp_source.html#l00605">605</a> of file <a class="el" href="theory__core_8cpp_source.html">theory_core.cpp</a>.</p> <p>References <a class="el" href="expr_8h_source.html#l01201">CVC3::Expr::arity()</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="expr_8h_source.html#l01168">CVC3::Expr::getKind()</a>, <a class="el" href="expr_8h_source.html#l01055">CVC3::Expr::getString()</a>, <a class="el" href="kinds_8h_source.html#l00046">ID</a>, <a class="el" href="cvc__util_8h_source.html#l00046">CVC3::int2string()</a>, <a class="el" href="expr_8h_source.html#l00961">CVC3::Expr::iteExpr()</a>, <a class="el" href="kinds_8h_source.html#l00044">RAW_LIST</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p> <p>Referenced by <a class="el" href="theory__core_8cpp_source.html#l01724">parseExprOp()</a>.</p> </div> </div> <a class="anchor" id="ac79ad21d2aeee1d50ce53ab7f3a76eba"></a><!-- doxytag: member="CVC3::TheoryCore::isBasicKind" ref="ac79ad21d2aeee1d50ce53ab7f3a76eba" args="(int kind)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool TheoryCore::isBasicKind </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"><em>kind</em></td><td>)</td> <td><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Return true if no special parsing is required for this kind. </p> <p>Definition at line <a class="el" href="theory__core_8cpp_source.html#l00630">630</a> of file <a class="el" href="theory__core_8cpp_source.html">theory_core.cpp</a>.</p> <p>References <a class="el" href="kinds_8h_source.html#l00067">AND</a>, <a class="el" href="kinds_8h_source.html#l00093">ASSERT</a>, <a class="el" href="kinds_8h_source.html#l00119">ASSERTIONS</a>, <a class="el" href="kinds_8h_source.html#l00120">ASSUMPTIONS</a>, <a class="el" href="kinds_8h_source.html#l00105">CALL</a>, <a class="el" href="kinds_8h_source.html#l00133">CHECK_TYPE</a>, <a class="el" href="kinds_8h_source.html#l00095">CHECKSAT</a>, <a class="el" href="kinds_8h_source.html#l00130">CONTEXT</a>, <a class="el" href="kinds_8h_source.html#l00096">CONTINUE</a>, <a class="el" href="kinds_8h_source.html#l00121">COUNTEREXAMPLE</a>, <a class="el" href="kinds_8h_source.html#l00122">COUNTERMODEL</a>, <a class="el" href="kinds_8h_source.html#l00098">DBG</a>, <a class="el" href="kinds_8h_source.html#l00063">DISTINCT</a>, <a class="el" href="kinds_8h_source.html#l00111">DUMP_ASSUMPTIONS</a>, <a class="el" href="kinds_8h_source.html#l00116">DUMP_CLOSURE</a>, <a class="el" href="kinds_8h_source.html#l00117">DUMP_CLOSURE_PROOF</a>, <a class="el" href="kinds_8h_source.html#l00110">DUMP_PROOF</a>, <a class="el" href="kinds_8h_source.html#l00112">DUMP_SIG</a>, <a class="el" href="kinds_8h_source.html#l00113">DUMP_TCC</a>, <a class="el" href="kinds_8h_source.html#l00114">DUMP_TCC_ASSUMPTIONS</a>, <a class="el" href="kinds_8h_source.html#l00115">DUMP_TCC_PROOF</a>, <a class="el" href="kinds_8h_source.html#l00106">ECHO</a>, <a class="el" href="kinds_8h_source.html#l00214">ELSE</a>, <a class="el" href="kinds_8h_source.html#l00131">FORGET</a>, <a class="el" href="kinds_8h_source.html#l00109">GET_ASSIGNMENT</a>, <a class="el" href="kinds_8h_source.html#l00134">GET_CHILD</a>, <a class="el" href="kinds_8h_source.html#l00132">GET_TYPE</a>, <a class="el" href="kinds_8h_source.html#l00108">GET_VALUE</a>, <a class="el" href="kinds_8h_source.html#l00102">HELP</a>, <a class="el" href="kinds_8h_source.html#l00070">IFF</a>, <a class="el" href="kinds_8h_source.html#l00071">IMPLIES</a>, <a class="el" href="kinds_8h_source.html#l00227">LETDECL</a>, <a class="el" href="kinds_8h_source.html#l00226">LETDECLS</a>, <a class="el" href="kinds_8h_source.html#l00066">NOT</a>, <a class="el" href="kinds_8h_source.html#l00101">OPTION</a>, <a class="el" href="kinds_8h_source.html#l00068">OR</a>, <a class="el" href="kinds_8h_source.html#l00124">POP</a>, <a class="el" href="kinds_8h_source.html#l00127">POP_SCOPE</a>, <a class="el" href="kinds_8h_source.html#l00125">POPTO</a>, <a class="el" href="kinds_8h_source.html#l00128">POPTO_SCOPE</a>, <a class="el" href="kinds_8h_source.html#l00104">PRINT</a>, <a class="el" href="kinds_8h_source.html#l00123">PUSH</a>, <a class="el" href="kinds_8h_source.html#l00126">PUSH_SCOPE</a>, <a class="el" href="kinds_8h_source.html#l00094">QUERY</a>, <a class="el" href="kinds_8h_source.html#l00129">RESET</a>, <a class="el" href="kinds_8h_source.html#l00097">RESTART</a>, <a class="el" href="kinds_8h_source.html#l00136">SEQ</a>, <a class="el" href="kinds_8h_source.html#l00135">SUBSTITUTE</a>, <a class="el" href="kinds_8h_source.html#l00099">TRACE</a>, <a class="el" href="kinds_8h_source.html#l00103">TRANSFORM</a>, <a class="el" href="kinds_8h_source.html#l00058">TYPEDEF</a>, <a class="el" href="kinds_8h_source.html#l00100">UNTRACE</a>, <a class="el" href="kinds_8h_source.html#l00145">VARDECL</a>, <a class="el" href="kinds_8h_source.html#l00147">VARDECLS</a>, <a class="el" href="kinds_8h_source.html#l00241">VARLIST</a>, <a class="el" href="kinds_8h_source.html#l00118">WHERE</a>, and <a class="el" href="kinds_8h_source.html#l00069">XOR</a>.</p> <p>Referenced by <a class="el" href="theory__core_8cpp_source.html#l01724">parseExprOp()</a>.</p> </div> </div> <a class="anchor" id="a0b0a73410836f7b3a0808a67647ba448"></a><!-- doxytag: member="CVC3::TheoryCore::checkEquation" ref="a0b0a73410836f7b3a0808a67647ba448" args="(const Theorem &thm)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void TheoryCore::checkEquation </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><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Helper check functions for solve. </p> <p>Definition at line <a class="el" href="theory__core_8cpp_source.html#l01195">1195</a> of file <a class="el" href="theory__core_8cpp_source.html">theory_core.cpp</a>.</p> <p>References <a class="el" href="theory__core_8h_source.html#l00131">d_solver</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="theorem_8cpp_source.html#l00230">CVC3::Theorem::getExpr()</a>, <a class="el" href="expr_8h_source.html#l00419">CVC3::Expr::isEq()</a>, <a class="el" href="theory_8h_source.html#l00204">CVC3::Theory::solve()</a>, <a class="el" href="theory_8cpp_source.html#l00252">CVC3::Theory::theoryOf()</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p> <p>Referenced by <a class="el" href="theory__core_8cpp_source.html#l01220">checkSolved()</a>.</p> </div> </div> <a class="anchor" id="a164ec255c41d187cc87f6996a8a5389a"></a><!-- doxytag: member="CVC3::TheoryCore::checkSolved" ref="a164ec255c41d187cc87f6996a8a5389a" args="(const Theorem &thm)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void TheoryCore::checkSolved </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><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Helper check functions for solve. </p> <p>Definition at line <a class="el" href="theory__core_8cpp_source.html#l01220">1220</a> of file <a class="el" href="theory__core_8cpp_source.html">theory_core.cpp</a>.</p> <p>References <a class="el" href="classCVC3_1_1CommonProofRules.html#a3f3592ac74d0aa0caa3b9224ea7e61f4">CVC3::CommonProofRules::andElim()</a>, <a class="el" href="expr_8h_source.html#l01201">CVC3::Expr::arity()</a>, <a class="el" href="theory__core_8cpp_source.html#l01195">checkEquation()</a>, <a class="el" href="theory_8h_source.html#l00069">CVC3::Theory::d_commonRules</a>, <a class="el" href="theorem_8cpp_source.html#l00230">CVC3::Theorem::getExpr()</a>, <a class="el" href="expr_8h_source.html#l00421">CVC3::Expr::isAnd()</a>, and <a class="el" href="expr_8h_source.html#l00357">CVC3::Expr::isBoolConst()</a>.</p> <p>Referenced by <a class="el" href="theory__core_8cpp_source.html#l01248">solve()</a>.</p> </div> </div> <a class="anchor" id="a226706d3c1ddda709f4b09ec2a4b55bb"></a><!-- doxytag: member="CVC3::TheoryCore::timeLimitReached" ref="a226706d3c1ddda709f4b09ec2a4b55bb" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool TheoryCore::timeLimitReached </td> <td>(</td> <td class="paramname"></td><td>)</td> <td><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="theory__core_8cpp_source.html#l04062">4062</a> of file <a class="el" href="theory__core_8cpp_source.html">theory_core.cpp</a>.</p> <p>References <a class="el" href="theory__core_8h_source.html#l00163">d_timeBase</a>, <a class="el" href="theory__core_8h_source.html#l00164">d_timeLimit</a>, and <a class="el" href="theory__core_8cpp_source.html#l04180">setIncomplete()</a>.</p> </div> </div> <a class="anchor" id="a2856680de1938c077d7b25c865992de6"></a><!-- doxytag: member="CVC3::TheoryCore::printSmtLibShared" ref="a2856680de1938c077d7b25c865992de6" args="(ExprStream &os, const Expr &e)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCVC3_1_1ExprStream.html">ExprStream</a> & TheoryCore::printSmtLibShared </td> <td>(</td> <td class="paramtype"><a class="el" href="classCVC3_1_1ExprStream.html">ExprStream</a> & </td> <td class="paramname"><em>os</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> & </td> <td class="paramname"><em>e</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Print an expression in the shared subset of SMT-LIB v1/v2 Should only be called if os.lang() is SMTLIB_LANG or SMTLIB_V2_LANG. </p> <p>Definition at line <a class="el" href="theory__core_8cpp_source.html#l01915">1915</a> of file <a class="el" href="theory__core_8cpp_source.html">theory_core.cpp</a>.</p> <p>References <a class="el" href="kinds_8h_source.html#l00067">AND</a>, <a class="el" href="kinds_8h_source.html#l00050">ANY_TYPE</a>, <a class="el" href="expr_8h_source.html#l01201">CVC3::Expr::arity()</a>, <a class="el" href="expr_8h_source.html#l01211">CVC3::Expr::begin()</a>, <a class="el" href="kinds_8h_source.html#l00048">BOOLEAN</a>, <a class="el" href="theory__core_8h_source.html#l00081">d_translator</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="kinds_8h_source.html#l00063">DISTINCT</a>, <a class="el" href="expr_8h_source.html#l01217">CVC3::Expr::end()</a>, <a class="el" href="kinds_8h_source.html#l00061">EQ</a>, <a class="el" href="translator_8cpp_source.html#l01816">CVC3::Translator::escapeSymbol()</a>, <a class="el" href="kinds_8h_source.html#l00036">FALSE_EXPR</a>, <a class="el" href="translator_8cpp_source.html#l01804">CVC3::Translator::fixConstName()</a>, <a class="el" href="theory_8h_source.html#l00090">CVC3::Theory::getEM()</a>, <a class="el" href="expr_8h_source.html#l01168">CVC3::Expr::getKind()</a>, <a class="el" href="expr_8h_source.html#l01050">CVC3::Expr::getName()</a>, <a class="el" href="expr__stream_8h_source.html#l00165">CVC3::ExprStream::lang()</a>, <a class="el" href="kinds_8h_source.html#l00227">LETDECL</a>, <a class="el" href="kinds_8h_source.html#l00066">NOT</a>, <a class="el" href="kinds_8h_source.html#l00068">OR</a>, <a class="el" href="kinds_8h_source.html#l00275">PF_APPLY</a>, <a class="el" href="kinds_8h_source.html#l00276">PF_HOLE</a>, <a class="el" href="expr__stream_8cpp_source.html#l00301">CVC3::pop()</a>, <a class="el" href="expr_8cpp_source.html#l00362">CVC3::Expr::print()</a>, <a class="el" href="expr_8cpp_source.html#l00400">CVC3::Expr::printAST()</a>, <a class="el" href="expr__stream_8cpp_source.html#l00298">CVC3::push()</a>, <a class="el" href="kinds_8h_source.html#l00044">RAW_LIST</a>, <a class="el" href="lang_8h_source.html#l00034">CVC3::SMTLIB_LANG</a>, <a class="el" href="lang_8h_source.html#l00052">CVC3::SMTLIB_V2_LANG</a>, <a class="el" href="expr__stream_8cpp_source.html#l00326">CVC3::space()</a>, <a class="el" href="kinds_8h_source.html#l00038">STRING_EXPR</a>, <a class="el" href="kinds_8h_source.html#l00193">SUBTYPE</a>, <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>, <a class="el" href="kinds_8h_source.html#l00103">TRANSFORM</a>, <a class="el" href="kinds_8h_source.html#l00035">TRUE_EXPR</a>, <a class="el" href="kinds_8h_source.html#l00058">TYPEDEF</a>, <a class="el" href="kinds_8h_source.html#l00242">UCONST</a>, and <a class="el" href="kinds_8h_source.html#l00069">XOR</a>.</p> <p>Referenced by <a class="el" href="theory__core_8cpp_source.html#l02055">print()</a>.</p> </div> </div> <a class="anchor" id="a1558a9399314632d76c3d086f680d3b7"></a><!-- doxytag: member="CVC3::TheoryCore::getResource" ref="a1558a9399314632d76c3d086f680d3b7" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void CVC3::TheoryCore::getResource </td> <td>(</td> <td class="paramname"></td><td>)</td> <td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Request a unit of resource. </p> <p>It will be subtracted from the resource limit.</p> <dl class="return"><dt><b>Returns:</b></dt><dd>true if resource unit is granted, false if no more resources available. </dd></dl> <p>Definition at line <a class="el" href="theory__core_8h_source.html#l00334">334</a> of file <a class="el" href="theory__core_8h_source.html">theory_core.h</a>.</p> <p>References <a class="el" href="statistics_8h_source.html#l00163">CVC3::Statistics::counter()</a>, <a class="el" href="theory__core_8h_source.html#l00157">d_resourceLimit</a>, and <a class="el" href="theory__core_8h_source.html#l00351">getStatistics()</a>.</p> <p>Referenced by <a class="el" href="theory__core_8cpp_source.html#l03468">addFact()</a>, and <a class="el" href="theory__core_8cpp_source.html#l04213">enqueueFact()</a>.</p> </div> </div> <a class="anchor" id="afb6629080bceb44023f1bb3a44f9136f"></a><!-- doxytag: member="CVC3::TheoryCore::registerCoreSatAPI" ref="afb6629080bceb44023f1bb3a44f9136f" args="(CoreSatAPI *coreSatAPI)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void CVC3::TheoryCore::registerCoreSatAPI </td> <td>(</td> <td class="paramtype"><a class="el" href="classCVC3_1_1TheoryCore_1_1CoreSatAPI.html">CoreSatAPI</a> * </td> <td class="paramname"><em>coreSatAPI</em></td><td>)</td> <td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Register a SatAPI 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>. </p> <p>Definition at line <a class="el" href="theory__core_8h_source.html#l00340">340</a> of file <a class="el" href="theory__core_8h_source.html">theory_core.h</a>.</p> <p>References <a class="el" href="theory__core_8h_source.html#l00240">d_coreSatAPI</a>.</p> <p>Referenced by <a class="el" href="search__impl__base_8cpp_source.html#l00107">CVC3::SearchImplBase::SearchImplBase()</a>, and <a class="el" href="search__sat_8cpp_source.html#l00936">CVC3::SearchSat::SearchSat()</a>.</p> </div> </div> <a class="anchor" id="ac317be8457175b3cf458bff7f4cb6e27"></a><!-- doxytag: member="CVC3::TheoryCore::addNotifyEq" ref="ac317be8457175b3cf458bff7f4cb6e27" args="(Theory *t, const Expr &e)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void CVC3::TheoryCore::addNotifyEq </td> <td>(</td> <td class="paramtype"><a class="el" href="classCVC3_1_1Theory.html">Theory</a> * </td> <td class="paramname"><em>t</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> & </td> <td class="paramname"><em>e</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Register a callback for every equality. </p> <p>Definition at line <a class="el" href="theory__core_8h_source.html#l00343">343</a> of file <a class="el" href="theory__core_8h_source.html">theory_core.h</a>.</p> <p>References <a class="el" href="notifylist_8h_source.html#l00040">CVC3::NotifyList::add()</a>, and <a class="el" href="theory__core_8h_source.html#l00200">d_notifyEq</a>.</p> <p>Referenced by <a class="el" href="theory__quant_8cpp_source.html#l00140">CVC3::TheoryQuant::TheoryQuant()</a>.</p> </div> </div> <a class="anchor" id="a052424ef27a5042f6321db9a8d41bf82"></a><!-- doxytag: member="CVC3::TheoryCore::callTheoryPreprocess" ref="a052424ef27a5042f6321db9a8d41bf82" args="(const Expr &e)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> TheoryCore::callTheoryPreprocess </td> <td>(</td> <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> & </td> <td class="paramname"><em>e</em></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Call theory-specific preprocess routines. </p> <p>Definition at line <a class="el" href="theory__core_8cpp_source.html#l00857">857</a> of file <a class="el" href="theory__core_8cpp_source.html">theory_core.cpp</a>.</p> <p>References <a class="el" href="theory__core_8h_source.html#l00125">d_theories</a>, <a class="el" href="theorem_8cpp_source.html#l00246">CVC3::Theorem::getRHS()</a>, <a class="el" href="theory__core_8h_source.html#l00259">LOW</a>, <a class="el" href="theory__core_8cpp_source.html#l00121">processFactQueue()</a>, <a class="el" href="theory_8h_source.html#l00673">CVC3::Theory::reflexivityRule()</a>, <a class="el" href="theory_8h_source.html#l00164">CVC3::Theory::theoryPreprocess()</a>, and <a class="el" href="theory_8h_source.html#l00681">CVC3::Theory::transitivityRule()</a>.</p> <p>Referenced by <a class="el" href="expr__transform_8cpp_source.html#l00079">CVC3::ExprTransform::preprocess()</a>.</p> </div> </div> <a class="anchor" id="a9377f423f4fd59fdac396794363733a6"></a><!-- doxytag: member="CVC3::TheoryCore::getCM" ref="a9377f423f4fd59fdac396794363733a6" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCVC3_1_1ContextManager.html">ContextManager</a>* CVC3::TheoryCore::getCM </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="theory__core_8h_source.html#l00348">348</a> of file <a class="el" href="theory__core_8h_source.html">theory_core.h</a>.</p> <p>References <a class="el" href="theory__core_8h_source.html#l00057">d_cm</a>.</p> <p>Referenced by <a class="el" href="theory__quant_8cpp_source.html#l03813">CVC3::TheoryQuant::add_parent()</a>, <a class="el" href="theory__core_8cpp_source.html#l03468">addFact()</a>, <a class="el" href="search__fast_8cpp_source.html#l01445">CVC3::SearchEngineFast::addNonLiteralFact()</a>, <a class="el" href="theory__core_8cpp_source.html#l04093">assertEqualities()</a>, <a class="el" href="theory__uf_8cpp_source.html#l00079">CVC3::TheoryUF::assertFact()</a>, <a class="el" href="theory__quant_8cpp_source.html#l07647">CVC3::TheoryQuant::checkSat()</a>, <a class="el" href="search__simple_8cpp_source.html#l00165">CVC3::SearchSimple::checkValidInternal()</a>, <a class="el" href="search__fast_8cpp_source.html#l01697">CVC3::SearchEngineFast::checkValidInternal()</a>, <a class="el" href="search__simple_8cpp_source.html#l00126">CVC3::SearchSimple::checkValidMain()</a>, <a class="el" href="search__fast_8cpp_source.html#l01624">CVC3::SearchEngineFast::checkValidMain()</a>, <a class="el" href="theory__quant_8cpp_source.html#l04210">CVC3::TheoryQuant::combineOldNewTrigs()</a>, <a class="el" href="theory__quant_8cpp_source.html#l00633">CVC3::TheoryQuant::enqueueInst()</a>, <a class="el" href="theory__quant_8cpp_source.html#l08537">CVC3::TheoryQuant::mapTermsByType()</a>, <a class="el" href="expr__transform_8cpp_source.html#l00334">CVC3::ExprTransform::newPPrec()</a>, <a class="el" href="search__sat_8cpp_source.html#l01064">CVC3::SearchSat::newUserAssumptionInt()</a>, <a class="el" href="search__impl__base_8h_source.html#l00204">CVC3::SearchImplBase::pop()</a>, <a class="el" href="decision__engine_8cpp_source.html#l00150">CVC3::DecisionEngine::popDecision()</a>, <a class="el" href="decision__engine_8cpp_source.html#l00157">CVC3::DecisionEngine::popTo()</a>, <a class="el" href="search__impl__base_8h_source.html#l00203">CVC3::SearchImplBase::push()</a>, <a class="el" href="theory__quant_8cpp_source.html#l07008">CVC3::TheoryQuant::pushBackList()</a>, <a class="el" href="decision__engine_8cpp_source.html#l00128">CVC3::DecisionEngine::pushDecision()</a>, <a class="el" href="theory__quant_8cpp_source.html#l07018">CVC3::TheoryQuant::pushForwList()</a>, <a class="el" href="theory__quant_8cpp_source.html#l08565">CVC3::TheoryQuant::recursiveMap()</a>, <a class="el" href="search__simple_8cpp_source.html#l00207">CVC3::SearchSimple::restartInternal()</a>, <a class="el" href="search__fast_8cpp_source.html#l01750">CVC3::SearchEngineFast::restartInternal()</a>, <a class="el" href="search__impl__base_8h_source.html#l00192">CVC3::SearchImplBase::scopeLevel()</a>, <a class="el" href="search__impl__base_8cpp_source.html#l00107">CVC3::SearchImplBase::SearchImplBase()</a>, <a class="el" href="search__sat_8cpp_source.html#l00936">CVC3::SearchSat::SearchSat()</a>, <a class="el" href="theory__quant_8cpp_source.html#l08119">CVC3::TheoryQuant::synCheckSat()</a>, and <a class="el" href="theory__quant_8cpp_source.html#l07258">CVC3::TheoryQuant::synNewInst()</a>.</p> </div> </div> <a class="anchor" id="af3077cff0601b8ae28e420ef5ce2ea37"></a><!-- doxytag: member="CVC3::TheoryCore::getTM" ref="af3077cff0601b8ae28e420ef5ce2ea37" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCVC3_1_1TheoremManager.html">TheoremManager</a>* CVC3::TheoryCore::getTM </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="theory__core_8h_source.html#l00349">349</a> of file <a class="el" href="theory__core_8h_source.html">theory_core.h</a>.</p> <p>References <a class="el" href="theory__core_8h_source.html#l00060">d_tm</a>.</p> <p>Referenced by <a class="el" href="search__impl__base_8cpp_source.html#l00297">CVC3::SearchImplBase::getAssumptionsUsed()</a>, <a class="el" href="search__impl__base_8cpp_source.html#l00247">CVC3::SearchImplBase::getCounterExample()</a>, <a class="el" href="search__sat_8cpp_source.html#l01178">CVC3::SearchSat::getProof()</a>, <a class="el" href="search__impl__base_8cpp_source.html#l00282">CVC3::SearchImplBase::getProof()</a>, <a class="el" href="dpllt__minisat_8cpp_source.html#l00378">SAT::DPLLTMiniSat::getSatProof()</a>, <a class="el" href="search_8cpp_source.html#l00035">CVC3::SearchEngine::SearchEngine()</a>, and <a class="el" href="search__sat_8cpp_source.html#l00936">CVC3::SearchSat::SearchSat()</a>.</p> </div> </div> <a class="anchor" id="a46b2792a5c24f95ccfc3fbfc0456b09f"></a><!-- doxytag: member="CVC3::TheoryCore::getFlags" ref="a46b2792a5c24f95ccfc3fbfc0456b09f" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const <a class="el" href="classCVC3_1_1CLFlags.html">CLFlags</a>& CVC3::TheoryCore::getFlags </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="theory__core_8h_source.html#l00350">350</a> of file <a class="el" href="theory__core_8h_source.html">theory_core.h</a>.</p> <p>References <a class="el" href="theory__core_8h_source.html#l00066">d_flags</a>.</p> <p>Referenced by <a class="el" href="search__fast_8cpp_source.html#l00637">CVC3::SearchEngineFast::bcp()</a>, <a class="el" href="translator_8cpp_source.html#l01145">CVC3::Translator::finish()</a>, <a class="el" href="theory_8cpp_source.html#l00816">CVC3::Theory::newSubtypeExpr()</a>, <a class="el" href="search__sat_8cpp_source.html#l01042">CVC3::SearchSat::newUserAssumptionIntHelper()</a>, <a class="el" href="theory__core_8cpp_source.html#l01724">parseExprOp()</a>, <a class="el" href="expr__transform_8cpp_source.html#l00079">CVC3::ExprTransform::preprocess()</a>, <a class="el" href="theory__core_8cpp_source.html#l02055">print()</a>, <a class="el" href="translator_8cpp_source.html#l01063">CVC3::Translator::processType()</a>, <a class="el" href="theory__core_8cpp_source.html#l00968">rewrite()</a>, <a class="el" href="search__impl__base_8cpp_source.html#l00107">CVC3::SearchImplBase::SearchImplBase()</a>, <a class="el" href="search__sat_8cpp_source.html#l00936">CVC3::SearchSat::SearchSat()</a>, and <a class="el" href="theory__quant_8cpp_source.html#l00140">CVC3::TheoryQuant::TheoryQuant()</a>.</p> </div> </div> <a class="anchor" id="a7f119c4fa5313b72feca7dd441e045f0"></a><!-- doxytag: member="CVC3::TheoryCore::getStatistics" ref="a7f119c4fa5313b72feca7dd441e045f0" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCVC3_1_1Statistics.html">Statistics</a>& CVC3::TheoryCore::getStatistics </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="theory__core_8h_source.html#l00351">351</a> of file <a class="el" href="theory__core_8h_source.html">theory_core.h</a>.</p> <p>References <a class="el" href="theory__core_8h_source.html#l00069">d_statistics</a>.</p> <p>Referenced by <a class="el" href="search__impl__base_8cpp_source.html#l00723">CVC3::SearchImplBase::addToCNFCache()</a>, <a class="el" href="search__impl__base_8cpp_source.html#l00750">CVC3::SearchImplBase::findInCNFCache()</a>, <a class="el" href="theory__core_8h_source.html#l00334">getResource()</a>, <a class="el" href="search__sat_8cpp_source.html#l00936">CVC3::SearchSat::SearchSat()</a>, and <a class="el" href="search__fast_8cpp_source.html#l00254">CVC3::SearchEngineFast::split()</a>.</p> </div> </div> <a class="anchor" id="acc963fd43994f06d3647394b731e835c"></a><!-- doxytag: member="CVC3::TheoryCore::getExprTrans" ref="acc963fd43994f06d3647394b731e835c" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCVC3_1_1ExprTransform.html">ExprTransform</a>* CVC3::TheoryCore::getExprTrans </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="theory__core_8h_source.html#l00352">352</a> of file <a class="el" href="theory__core_8h_source.html">theory_core.h</a>.</p> <p>References <a class="el" href="theory__core_8h_source.html#l00078">d_exprTrans</a>.</p> <p>Referenced by <a class="el" href="search__simple_8cpp_source.html#l00165">CVC3::SearchSimple::checkValidInternal()</a>, <a class="el" href="search__fast_8cpp_source.html#l01697">CVC3::SearchEngineFast::checkValidInternal()</a>, <a class="el" href="search__impl__base_8cpp_source.html#l00141">CVC3::SearchImplBase::newUserAssumption()</a>, and <a class="el" href="search__sat_8cpp_source.html#l01064">CVC3::SearchSat::newUserAssumptionInt()</a>.</p> </div> </div> <a class="anchor" id="a261880d3c6b9b852de5e1d146b9e1731"></a><!-- doxytag: member="CVC3::TheoryCore::getCoreRules" ref="a261880d3c6b9b852de5e1d146b9e1731" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCVC3_1_1CoreProofRules.html">CoreProofRules</a>* CVC3::TheoryCore::getCoreRules </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="theory__core_8h_source.html#l00353">353</a> of file <a class="el" href="theory__core_8h_source.html">theory_core.h</a>.</p> <p>References <a class="el" href="theory__core_8h_source.html#l00063">d_rules</a>.</p> <p>Referenced by <a class="el" href="expr__transform_8cpp_source.html#l00034">CVC3::ExprTransform::ExprTransform()</a>.</p> </div> </div> <a class="anchor" id="af21dce6ee9ed152e132a4e77f10323e7"></a><!-- doxytag: member="CVC3::TheoryCore::getTranslator" ref="af21dce6ee9ed152e132a4e77f10323e7" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCVC3_1_1Translator.html">Translator</a>* CVC3::TheoryCore::getTranslator </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="theory__core_8h_source.html#l00354">354</a> of file <a class="el" href="theory__core_8h_source.html">theory_core.h</a>.</p> <p>References <a class="el" href="theory__core_8h_source.html#l00081">d_translator</a>.</p> <p>Referenced by <a class="el" href="theory__uf_8cpp_source.html#l00657">CVC3::TheoryUF::printSmtLibShared()</a>.</p> </div> </div> <a class="anchor" id="a1a2ffa9c7365e9f0af36fbd83e2421ed"></a><!-- doxytag: member="CVC3::TheoryCore::tccCache" ref="a1a2ffa9c7365e9f0af36fbd83e2421ed" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCVC3_1_1ExprMap.html">ExprMap</a><<a class="el" href="classCVC3_1_1Expr.html">Expr</a>>& CVC3::TheoryCore::tccCache </td> <td>(</td> <td class="paramname"></td><td>)</td> <td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Access to tcc cache (needed by theory_bitvector) </p> <p>Definition at line <a class="el" href="theory__core_8h_source.html#l00357">357</a> of file <a class="el" href="theory__core_8h_source.html">theory_core.h</a>.</p> <p>References <a class="el" href="theory__core_8h_source.html#l00122">d_tccCache</a>.</p> <p>Referenced by <a class="el" href="theory__bitvector_8cpp_source.html#l05570">CVC3::TheoryBitvector::computeTCC()</a>.</p> </div> </div> <a class="anchor" id="a605f2eee0d52005dba7450e14d36c002"></a><!-- doxytag: member="CVC3::TheoryCore::getTerms" ref="a605f2eee0d52005dba7450e14d36c002" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const <a class="el" href="classCVC3_1_1CDList.html">CDList</a><<a class="el" href="classCVC3_1_1Expr.html">Expr</a>>& CVC3::TheoryCore::getTerms </td> <td>(</td> <td class="paramname"></td><td>)</td> <td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Get list of terms. </p> <p>Definition at line <a class="el" href="theory__core_8h_source.html#l00360">360</a> of file <a class="el" href="theory__core_8h_source.html">theory_core.h</a>.</p> <p>References <a class="el" href="theory__core_8h_source.html#l00096">d_terms</a>.</p> <p>Referenced by <a class="el" href="theory__quant_8cpp_source.html#l07647">CVC3::TheoryQuant::checkSat()</a>, <a class="el" href="theory__quant_8cpp_source.html#l00343">CVC3::TheoryQuant::debug()</a>, <a class="el" href="theory__quant_8cpp_source.html#l08385">CVC3::TheoryQuant::naiveCheckSat()</a>, and <a class="el" href="theory__quant_8cpp_source.html#l08119">CVC3::TheoryQuant::synCheckSat()</a>.</p> </div> </div> <a class="anchor" id="aac8dbad8636607fa6424b0926c6c1c59"></a><!-- doxytag: member="CVC3::TheoryCore::getCurQuantLevel" ref="aac8dbad8636607fa6424b0926c6c1c59" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int CVC3::TheoryCore::getCurQuantLevel </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <a class="anchor" id="a2e0118c395ece4dfcfae018628e3b08b"></a><!-- doxytag: member="CVC3::TheoryCore::setInPP" ref="a2e0118c395ece4dfcfae018628e3b08b" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void CVC3::TheoryCore::setInPP </td> <td>(</td> <td class="paramname"></td><td>)</td> <td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Set the flag for the preprocessor. </p> <p>Definition at line <a class="el" href="theory__core_8h_source.html#l00365">365</a> of file <a class="el" href="theory__core_8h_source.html">theory_core.h</a>.</p> <p>References <a class="el" href="theory__core_8h_source.html#l00169">d_inPP</a>.</p> <p>Referenced by <a class="el" href="expr__transform_8cpp_source.html#l00079">CVC3::ExprTransform::preprocess()</a>.</p> </div> </div> <a class="anchor" id="aeeb68f961407ee80a9762a95e6998cf2"></a><!-- doxytag: member="CVC3::TheoryCore::clearInPP" ref="aeeb68f961407ee80a9762a95e6998cf2" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void CVC3::TheoryCore::clearInPP </td> <td>(</td> <td class="paramname"></td><td>)</td> <td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="theory__core_8h_source.html#l00366">366</a> of file <a class="el" href="theory__core_8h_source.html">theory_core.h</a>.</p> <p>References <a class="el" href="theory__core_8h_source.html#l00169">d_inPP</a>.</p> <p>Referenced by <a class="el" href="expr__transform_8cpp_source.html#l00079">CVC3::ExprTransform::preprocess()</a>.</p> </div> </div> <a class="anchor" id="ad072fbeed392b4b7ecb651609acfd9bd"></a><!-- doxytag: member="CVC3::TheoryCore::getTheoremForTerm" ref="ad072fbeed392b4b7ecb651609acfd9bd" args="(const Expr &e)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> TheoryCore::getTheoremForTerm </td> <td>(</td> <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> & </td> <td class="paramname"><em>e</em></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Get theorem which was responsible for introducing this term. </p> <p>Definition at line <a class="el" href="theory__core_8cpp_source.html#l00868">868</a> of file <a class="el" href="theory__core_8cpp_source.html">theory_core.cpp</a>.</p> <p>References <a class="el" href="theory__core_8h_source.html#l00099">d_termTheorems</a>, <a class="el" href="hash__map_8h_source.html#l00257">Hash::hash_map< _Key, _Data, _HashFcn, _EqualKey >::end()</a>, <a class="el" href="hash__map_8h_source.html#l00171">Hash::hash_map< _Key, _Data, _HashFcn, _EqualKey >::find()</a>, and <a class="el" href="kinds_8h_source.html#l00099">TRACE</a>.</p> <p>Referenced by <a class="el" href="theory__core_8cpp_source.html#l00904">getQuantLevelForTerm()</a>.</p> </div> </div> <a class="anchor" id="ae4e1f7bd995e6ef2bff499869d95c177"></a><!-- doxytag: member="CVC3::TheoryCore::getQuantLevelForTerm" ref="ae4e1f7bd995e6ef2bff499869d95c177" args="(const Expr &e)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">unsigned TheoryCore::getQuantLevelForTerm </td> <td>(</td> <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> & </td> <td class="paramname"><em>e</em></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Get quantification level at which this term was introduced. </p> <p>Definition at line <a class="el" href="theory__core_8cpp_source.html#l00904">904</a> of file <a class="el" href="theory__core_8cpp_source.html">theory_core.cpp</a>.</p> <p>References <a class="el" href="expr_8h_source.html#l01173">CVC3::Expr::getIndex()</a>, <a class="el" href="theory__core_8cpp_source.html#l00868">getTheoremForTerm()</a>, <a class="el" href="expr_8h_source.html#l01358">CVC3::Expr::inUserAssumption()</a>, <a class="el" href="expr_8h_source.html#l00424">CVC3::Expr::isIff()</a>, <a class="el" href="expr_8h_source.html#l00420">CVC3::Expr::isNot()</a>, <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>, and <a class="el" href="kinds_8h_source.html#l00099">TRACE</a>.</p> <p>Referenced by <a class="el" href="theory__quant_8cpp_source.html#l00633">CVC3::TheoryQuant::enqueueInst()</a>, and <a class="el" href="theory__quant_8cpp_source.html#l00274">CVC3::TheoryQuant::getExprScore()</a>.</p> </div> </div> <a class="anchor" id="a2c0a37ab972568b851d69292959eb915"></a><!-- doxytag: member="CVC3::TheoryCore::getPredicates" ref="a2c0a37ab972568b851d69292959eb915" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const <a class="el" href="classCVC3_1_1CDList.html">CDList</a><<a class="el" href="classCVC3_1_1Expr.html">Expr</a>>& CVC3::TheoryCore::getPredicates </td> <td>(</td> <td class="paramname"></td><td>)</td> <td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Get list of predicates. </p> <p>Definition at line <a class="el" href="theory__core_8h_source.html#l00373">373</a> of file <a class="el" href="theory__core_8h_source.html">theory_core.h</a>.</p> <p>References <a class="el" href="theory__core_8h_source.html#l00103">d_predicates</a>.</p> <p>Referenced by <a class="el" href="theory__quant_8cpp_source.html#l07647">CVC3::TheoryQuant::checkSat()</a>, <a class="el" href="theory__quant_8cpp_source.html#l00343">CVC3::TheoryQuant::debug()</a>, and <a class="el" href="theory__quant_8cpp_source.html#l08119">CVC3::TheoryQuant::synCheckSat()</a>.</p> </div> </div> <a class="anchor" id="ac3c2ee71df31487191401722ea1d235a"></a><!-- doxytag: member="CVC3::TheoryCore::inUpdate" ref="ac3c2ee71df31487191401722ea1d235a" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool CVC3::TheoryCore::inUpdate </td> <td>(</td> <td class="paramname"></td><td>)</td> <td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Whether updates are being processed. </p> <p>Definition at line <a class="el" href="theory__core_8h_source.html#l00375">375</a> of file <a class="el" href="theory__core_8h_source.html">theory_core.h</a>.</p> <p>References <a class="el" href="theory__core_8h_source.html#l00203">d_inUpdate</a>.</p> </div> </div> <a class="anchor" id="a753057879f8565c504f162c13d0185a2"></a><!-- doxytag: member="CVC3::TheoryCore::okToEnqueue" ref="a753057879f8565c504f162c13d0185a2" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool CVC3::TheoryCore::okToEnqueue </td> <td>(</td> <td class="paramname"></td><td>)</td> <td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Whether its OK to add new facts (for use in rewrites) </p> <p>Definition at line <a class="el" href="theory__core_8h_source.html#l00377">377</a> of file <a class="el" href="theory__core_8h_source.html">theory_core.h</a>.</p> <p>References <a class="el" href="theory__core_8h_source.html#l00167">d_inAddFact</a>, <a class="el" href="theory__core_8h_source.html#l00166">d_inCheckSATCore</a>, <a class="el" href="theory__core_8h_source.html#l00169">d_inPP</a>, and <a class="el" href="theory__core_8h_source.html#l00168">d_inRegisterAtom</a>.</p> <p>Referenced by <a class="el" href="theory__core_8cpp_source.html#l04213">enqueueFact()</a>.</p> </div> </div> <a class="anchor" id="aaf10cf53aae11fb855883f87c29e02e4"></a><!-- doxytag: member="CVC3::TheoryCore::addSharedTerm" ref="aaf10cf53aae11fb855883f87c29e02e4" args="(const Expr &e)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void CVC3::TheoryCore::addSharedTerm </td> <td>(</td> <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> & </td> <td class="paramname"><em>e</em></td><td>)</td> <td><code> [inline, virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Variables of uninterpreted types may be sent here, and they should be ignored. </p> <p>Reimplemented from <a class="el" href="group__Theory__API.html#ga664e787b0eb7e5e6fdb03efeb409d38a">CVC3::Theory</a>.</p> <p>Definition at line <a class="el" href="theory__core_8h_source.html#l00383">383</a> of file <a class="el" href="theory__core_8h_source.html">theory_core.h</a>.</p> </div> </div> <a class="anchor" id="a36d46f0d53c3513ea56ee2eba60cd75a"></a><!-- doxytag: member="CVC3::TheoryCore::assertFact" ref="a36d46f0d53c3513ea56ee2eba60cd75a" args="(const Theorem &e)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void TheoryCore::assertFact </td> <td>(</td> <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> & </td> <td class="paramname"><em>e</em></td><td>)</td> <td><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Assert a new fact to the decision procedure. </p> <p>Each fact that makes it into the core framework is assigned to exactly one theory: the theory associated with that fact. assertFact is called to inform the theory that a new fact has been assigned to the theory. </p> <p>Implements <a class="el" href="group__Theory__API.html#ga58de37714dd855f4d50de15108b8dbc7">CVC3::Theory</a>.</p> <p>Definition at line <a class="el" href="theory__core_8cpp_source.html#l00960">960</a> of file <a class="el" href="theory__core_8cpp_source.html">theory_core.cpp</a>.</p> <p>References <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="theorem_8cpp_source.html#l00230">CVC3::Theorem::getExpr()</a>, <a class="el" href="expr_8h_source.html#l01168">CVC3::Expr::getKind()</a>, <a class="el" href="kinds_8h_source.html#l00290">SKOLEM_VAR</a>, <a class="el" href="theorem_8h_source.html#l00404">CVC3::Theorem::toString()</a>, <a class="el" href="kinds_8h_source.html#l00242">UCONST</a>, and <a class="el" href="expr_8h_source.html#l00506">CVC3::Expr::unnegate()</a>.</p> </div> </div> <a class="anchor" id="a66cdb1662f1608dc95664b41ff90f1e4"></a><!-- doxytag: member="CVC3::TheoryCore::checkSat" ref="a66cdb1662f1608dc95664b41ff90f1e4" args="(bool fullEffort)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void CVC3::TheoryCore::checkSat </td> <td>(</td> <td class="paramtype">bool </td> <td class="paramname"><em>fullEffort</em></td><td>)</td> <td><code> [inline, virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Check for satisfiability in the theory. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">fullEffort</td><td>when it is false, checkSat can do as much or as little work as it likes, though simple inferences and checks for consistency should be done to increase efficiency. If fullEffort is true, checkSat must check whether the set of facts given by assertFact together with the arrangement of shared terms (provided by addSharedTerm) induced by the global find database equivalence relation are satisfiable. If satisfiable, checkSat does nothing.</td></tr> </table> </dd> </dl> <p>If satisfiability can be acheived by merging some of the shared terms, a new fact must be enqueued using enqueueFact (this fact need not be a literal). If there is no way to make things satisfiable, setInconsistent must be called. </p> <p>Implements <a class="el" href="group__Theory__API.html#gae0bb3d506dad8d69da546777cae27228">CVC3::Theory</a>.</p> <p>Definition at line <a class="el" href="theory__core_8h_source.html#l00385">385</a> of file <a class="el" href="theory__core_8h_source.html">theory_core.h</a>.</p> </div> </div> <a class="anchor" id="a54bce613a6b49a9a8a1a888ec36346d8"></a><!-- doxytag: member="CVC3::TheoryCore::rewrite" ref="a54bce613a6b49a9a8a1a888ec36346d8" args="(const Expr &e)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> TheoryCore::rewrite </td> <td>(</td> <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> & </td> <td class="paramname"><em>e</em></td><td>)</td> <td><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Theory-specific rewrite rules. </p> <p>By default, rewrite just returns a reflexive theorem stating that the input expression is equivalent to itself. However, rewrite is allowed to return any theorem which describes how the input expression is equivalent to some new expression. rewrite should be used to perform simplifications, normalization, and any other preprocessing on theory-specific expressions that needs to be done. </p> <p>Reimplemented from <a class="el" href="group__Theory__API.html#gaa6475baeb444915fa3b2f5c58dc5148a">CVC3::Theory</a>.</p> <p>Definition at line <a class="el" href="theory__core_8cpp_source.html#l00968">968</a> of file <a class="el" href="theory__core_8cpp_source.html">theory_core.cpp</a>.</p> <p>References <a class="el" href="kinds_8h_source.html#l00067">AND</a>, <a class="el" href="kinds_8h_source.html#l00075">AND_R</a>, <a class="el" href="kinds_8h_source.html#l00090">APPLY</a>, <a class="el" href="expr_8h_source.html#l01201">CVC3::Expr::arity()</a>, <a class="el" href="kinds_8h_source.html#l00164">BOUND_VAR</a>, <a class="el" href="theory_8h_source.html#l00069">CVC3::Theory::d_commonRules</a>, <a class="el" href="theory__core_8h_source.html#l00063">d_rules</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="kinds_8h_source.html#l00063">DISTINCT</a>, <a class="el" href="kinds_8h_source.html#l00061">EQ</a>, <a class="el" href="kinds_8h_source.html#l00085">EXISTS</a>, <a class="el" href="kinds_8h_source.html#l00036">FALSE_EXPR</a>, <a class="el" href="theory_8cpp_source.html#l00310">CVC3::Theory::find()</a>, <a class="el" href="kinds_8h_source.html#l00084">FORALL</a>, <a class="el" href="theorem_8cpp_source.html#l00230">CVC3::Theorem::getExpr()</a>, <a class="el" href="theory__core_8h_source.html#l00350">getFlags()</a>, <a class="el" href="expr_8h_source.html#l01168">CVC3::Expr::getKind()</a>, <a class="el" href="theorem_8cpp_source.html#l00240">CVC3::Theorem::getLHS()</a>, <a class="el" href="expr_8h_source.html#l01196">CVC3::Expr::getOpKind()</a>, <a class="el" href="theorem_8cpp_source.html#l00246">CVC3::Theorem::getRHS()</a>, <a class="el" href="expr_8h_source.html#l01259">CVC3::Expr::getType()</a>, <a class="el" href="kinds_8h_source.html#l00070">IFF</a>, <a class="el" href="kinds_8h_source.html#l00076">IFF_R</a>, <a class="el" href="kinds_8h_source.html#l00071">IMPLIES</a>, <a class="el" href="expr_8h_source.html#l00420">CVC3::Expr::isNot()</a>, <a class="el" href="expr_8h_source.html#l00422">CVC3::Expr::isOr()</a>, <a class="el" href="theorem_8h_source.html#l00171">CVC3::Theorem::isRefl()</a>, <a class="el" href="expr_8h_source.html#l00356">CVC3::Expr::isTrue()</a>, <a class="el" href="kinds_8h_source.html#l00081">ITE</a>, <a class="el" href="kinds_8h_source.html#l00077">ITE_R</a>, <a class="el" href="kinds_8h_source.html#l00229">LAMBDA</a>, <a class="el" href="kinds_8h_source.html#l00227">LETDECL</a>, <a class="el" href="kinds_8h_source.html#l00066">NOT</a>, <a class="el" href="kinds_8h_source.html#l00068">OR</a>, <a class="el" href="classCVC3_1_1CommonProofRules.html#a61c1fe56b4ed9744006883a7784ddb71">CVC3::CommonProofRules::reflexivityRule()</a>, <a class="el" href="theory_8h_source.html#l00673">CVC3::Theory::reflexivityRule()</a>, <a class="el" href="theory_8h_source.html#l00159">CVC3::Theory::rewrite()</a>, <a class="el" href="theory_8h_source.html#l00719">CVC3::Theory::rewriteAnd()</a>, <a class="el" href="classCVC3_1_1CoreProofRules.html#a07d66271324bda72a66505bb427df156">CVC3::CoreProofRules::rewriteAndSubterms()</a>, <a class="el" href="theory__core_8cpp_source.html#l00257">rewriteCore()</a>, <a class="el" href="classCVC3_1_1CoreProofRules.html#ae429bb5ede0ce74b02cb85f8d0a372dd">CVC3::CoreProofRules::rewriteDistinct()</a>, <a class="el" href="classCVC3_1_1CommonProofRules.html#a5c50bf251b95dfc47ccfc6e8b51426c1">CVC3::CommonProofRules::rewriteIff()</a>, <a class="el" href="classCVC3_1_1CoreProofRules.html#a3389cd795acc4cee4b591c1488293963">CVC3::CoreProofRules::rewriteImplies()</a>, <a class="el" href="theory_8cpp_source.html#l00923">CVC3::Theory::rewriteIte()</a>, <a class="el" href="classCVC3_1_1CoreProofRules.html#a03f8a74b8b1b6d90ff23a0a6150c49d6">CVC3::CoreProofRules::rewriteIteCond()</a>, <a class="el" href="classCVC3_1_1CoreProofRules.html#a3eb08bdf90ac80d5c372e4791120d894">CVC3::CoreProofRules::rewriteIteToAnd()</a>, <a class="el" href="classCVC3_1_1CoreProofRules.html#a8a98457f410ab11e4b66adad150e1b67">CVC3::CoreProofRules::rewriteIteToIff()</a>, <a class="el" href="classCVC3_1_1CoreProofRules.html#a1d30881c6f1a902575da033dbbeb2aa9">CVC3::CoreProofRules::rewriteIteToImp()</a>, <a class="el" href="classCVC3_1_1CoreProofRules.html#a71c2aa506efd447f6c411159f44d5af0">CVC3::CoreProofRules::rewriteIteToNot()</a>, <a class="el" href="classCVC3_1_1CoreProofRules.html#ab23828c9cc70a3805a0be7632e03163b">CVC3::CoreProofRules::rewriteIteToOr()</a>, <a class="el" href="classCVC3_1_1CoreProofRules.html#acad687c3e6faa5709961210637c260da">CVC3::CoreProofRules::rewriteLetDecl()</a>, <a class="el" href="theory__core_8cpp_source.html#l00560">rewriteLitCore()</a>, <a class="el" href="theory_8h_source.html#l00724">CVC3::Theory::rewriteOr()</a>, <a class="el" href="classCVC3_1_1CoreProofRules.html#a0d589028239025d0e43c92c04b5d586a">CVC3::CoreProofRules::rewriteOrSubterms()</a>, <a class="el" href="expr_8h_source.html#l01457">CVC3::Expr::setRewriteNormal()</a>, <a class="el" href="theory__core_8cpp_source.html#l00184">simplify()</a>, <a class="el" href="kinds_8h_source.html#l00290">SKOLEM_VAR</a>, <a class="el" href="theory_8h_source.html#l00686">CVC3::Theory::substitutivityRule()</a>, <a class="el" href="theory_8cpp_source.html#l00252">CVC3::Theory::theoryOf()</a>, <a class="el" href="type_8h_source.html#l00080">CVC3::Type::toString()</a>, <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>, <a class="el" href="theory_8h_source.html#l00681">CVC3::Theory::transitivityRule()</a>, <a class="el" href="kinds_8h_source.html#l00035">TRUE_EXPR</a>, <a class="el" href="kinds_8h_source.html#l00242">UCONST</a>, <a class="el" href="kinds_8h_source.html#l00069">XOR</a>, and <a class="el" href="classCVC3_1_1CommonProofRules.html#ae25f68b7cceeeb25b41b1d2bcb1df8f3">CVC3::CommonProofRules::xorToIff()</a>.</p> </div> </div> <a class="anchor" id="af4468d5d65b78ac9dc4c89c71c7391f6"></a><!-- doxytag: member="CVC3::TheoryCore::setup" ref="af4468d5d65b78ac9dc4c89c71c7391f6" args="(const Expr &e)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void CVC3::TheoryCore::setup </td> <td>(</td> <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> & </td> <td class="paramname"><em>e</em></td><td>)</td> <td><code> [inline, virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Only Boolean constants (TRUE and FALSE) and variables of uninterpreted types should appear here (they come from records and tuples). Just ignore them. </p> <p>Reimplemented from <a class="el" href="group__Theory__API.html#ga6896845c1e25b3452238059d779fc4c8">CVC3::Theory</a>.</p> <p>Definition at line <a class="el" href="theory__core_8h_source.html#l00390">390</a> of file <a class="el" href="theory__core_8h_source.html">theory_core.h</a>.</p> </div> </div> <a class="anchor" id="a435e2305420c1ed5b2ff1e4758a50dc5"></a><!-- doxytag: member="CVC3::TheoryCore::update" ref="a435e2305420c1ed5b2ff1e4758a50dc5" args="(const Theorem &e, const Expr &d)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void TheoryCore::update </td> <td>(</td> <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> & </td> <td class="paramname"><em>e</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> & </td> <td class="paramname"><em>d</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>We use the update method of theory core to track registered atomic formulas. Updates are recorded and then processed by calling processUpdates once all equalities have been processed. </p> <p>Reimplemented from <a class="el" href="group__Theory__API.html#gac41af6a90290fe83b2ee6c53cbfc4a62">CVC3::Theory</a>.</p> <p>Definition at line <a class="el" href="theory__core_8cpp_source.html#l01141">1141</a> of file <a class="el" href="theory__core_8cpp_source.html">theory_core.cpp</a>.</p> <p>References <a class="el" href="expr_8cpp_source.html#l00517">CVC3::Expr::addToNotify()</a>, <a class="el" href="theory_8h_source.html#l00069">CVC3::Theory::d_commonRules</a>, <a class="el" href="theory__core_8h_source.html#l00197">d_update_data</a>, <a class="el" href="theory__core_8h_source.html#l00194">d_update_thms</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="theory_8cpp_source.html#l00310">CVC3::Theory::find()</a>, <a class="el" href="theorem_8cpp_source.html#l00246">CVC3::Theorem::getRHS()</a>, <a class="el" href="expr_8h_source.html#l01232">CVC3::Expr::hasFind()</a>, <a class="el" href="classCVC3_1_1CommonProofRules.html#a11b56754024b56844336954cf789a63a">CVC3::CommonProofRules::iffFalseElim()</a>, <a class="el" href="theory_8h_source.html#l00714">CVC3::Theory::iffMP()</a>, <a class="el" href="classCVC3_1_1CommonProofRules.html#ad2edb920405666bf6e9d21ae496ff6b3">CVC3::CommonProofRules::iffTrueElim()</a>, <a class="el" href="expr_8h_source.html#l00419">CVC3::Expr::isEq()</a>, <a class="el" href="expr_8h_source.html#l00355">CVC3::Expr::isFalse()</a>, <a class="el" href="expr_8h_source.html#l01350">CVC3::Expr::isImpliedLiteral()</a>, <a class="el" href="expr_8h_source.html#l00420">CVC3::Expr::isNot()</a>, <a class="el" href="expr_8h_source.html#l01378">CVC3::Expr::isRegisteredAtom()</a>, <a class="el" href="expr_8h_source.html#l00356">CVC3::Expr::isTrue()</a>, <a class="el" href="classCVC3_1_1CommonProofRules.html#a338cafc978d9b6a447e8d58af42d7e5b">CVC3::CommonProofRules::rewriteUsingSymmetry()</a>, <a class="el" href="theory__core_8cpp_source.html#l00509">setFindLiteral()</a>, <a class="el" href="theory__core_8cpp_source.html#l04245">setInconsistent()</a>, <a class="el" href="classCVC3_1_1CommonProofRules.html#a776c827bb6e3b889234429c49ae9ad6f">CVC3::CommonProofRules::substitutivityRule()</a>, <a class="el" href="theory_8h_source.html#l00677">CVC3::Theory::symmetryRule()</a>, and <a class="el" href="theory_8h_source.html#l00681">CVC3::Theory::transitivityRule()</a>.</p> </div> </div> <a class="anchor" id="a2128e2419413e5c0455ca3011fa2b2db"></a><!-- doxytag: member="CVC3::TheoryCore::solve" ref="a2128e2419413e5c0455ca3011fa2b2db" args="(const Theorem &e)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> TheoryCore::solve </td> <td>(</td> <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> & </td> <td class="paramname"><em>eThm</em></td><td>)</td> <td><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Function: <a class="el" href="classCVC3_1_1TheoryCore.html#a2128e2419413e5c0455ca3011fa2b2db">TheoryCore::solve</a></p> <p>Author: Clark Barrett</p> <p>Created: Wed Feb 26 16:17:54 2003</p> <p>This is a generalization of what's in my thesis. The goal is to rewrite e into an equisatisfiable conjunction of equations such that the left-hand side of each equation is a variable which does not appear as an i-leaf of the rhs, where i is the theory of the primary solver. Any solution which satisfies this is fine. "Solvers" from other theories can do whatever they want as long as we eventually reach this form. </p> <p>Reimplemented from <a class="el" href="group__Theory__API.html#ga3908ecb66d7ba9830e7cf5d1a8ab91c3">CVC3::Theory</a>.</p> <p>Definition at line <a class="el" href="theory__core_8cpp_source.html#l01248">1248</a> of file <a class="el" href="theory__core_8cpp_source.html">theory_core.cpp</a>.</p> <p>References <a class="el" href="theory__core_8cpp_source.html#l01220">checkSolved()</a>, <a class="el" href="theory__core_8h_source.html#l00131">d_solver</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="theory_8cpp_source.html#l00383">CVC3::Theory::getBaseType()</a>, <a class="el" href="theorem_8cpp_source.html#l00230">CVC3::Theorem::getExpr()</a>, <a class="el" href="theorem_8cpp_source.html#l00240">CVC3::Theorem::getLHS()</a>, <a class="el" href="debug_8h_source.html#l00406">IF_DEBUG</a>, <a class="el" href="expr_8h_source.html#l00421">CVC3::Expr::isAnd()</a>, <a class="el" href="expr_8h_source.html#l00357">CVC3::Expr::isBoolConst()</a>, <a class="el" href="expr_8h_source.html#l00419">CVC3::Expr::isEq()</a>, <a class="el" href="theorem_8cpp_source.html#l00224">CVC3::Theorem::isRewrite()</a>, <a class="el" href="expr_8h_source.html#l01021">CVC3::Expr::isTerm()</a>, <a class="el" href="theory_8h_source.html#l00204">CVC3::Theory::solve()</a>, and <a class="el" href="theory_8cpp_source.html#l00252">CVC3::Theory::theoryOf()</a>.</p> </div> </div> <a class="anchor" id="a3aefb5e53e848ad18a5846d5be42d3d2"></a><!-- doxytag: member="CVC3::TheoryCore::simplifyOp" ref="a3aefb5e53e848ad18a5846d5be42d3d2" args="(const Expr &e)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> TheoryCore::simplifyOp </td> <td>(</td> <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> & </td> <td class="paramname"><em>e</em></td><td>)</td> <td><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Recursive simplification step. </p> <p>INVARIANT: the result is a <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>(e=e'), where e' is a fully simplified version of e. To simplify subexpressions recursively, call <a class="el" href="classCVC3_1_1TheoryCore.html#a8a66da5ca687474a3a725448a3be8c41" title="Top-level simplifier.">simplify()</a> function.</p> <p>This theory-specific method is called when the simplifier descends top-down into the expression. Normally, every kid is simplified recursively, and the results are combined into the new parent with the same operator (<a class="el" href="classCVC3_1_1Op.html">Op</a>). This functionality is provided with the default implementation.</p> <p>However, in some expressions some kids may not matter in the result, and can be skipped. For instance, if the first kid in a long AND simplifies to FALSE, then the entire expression simplifies to FALSE, and the remaining kids do not need to be simplified.</p> <p>This call is a chance for a DP to provide these types of optimizations during the top-down phase of simplification. </p> <p>Reimplemented from <a class="el" href="group__Theory__API.html#ga55b82868b8e9e60906756e797da9355a">CVC3::Theory</a>.</p> <p>Definition at line <a class="el" href="theory__core_8cpp_source.html#l01292">1292</a> of file <a class="el" href="theory__core_8cpp_source.html">theory_core.cpp</a>.</p> <p>References <a class="el" href="kinds_8h_source.html#l00067">AND</a>, <a class="el" href="expr_8h_source.html#l01201">CVC3::Expr::arity()</a>, <a class="el" href="theory_8h_source.html#l00069">CVC3::Theory::d_commonRules</a>, <a class="el" href="theory__core_8h_source.html#l00063">d_rules</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="kinds_8h_source.html#l00061">EQ</a>, <a class="el" href="kinds_8h_source.html#l00036">FALSE_EXPR</a>, <a class="el" href="expr_8h_source.html#l01168">CVC3::Expr::getKind()</a>, <a class="el" href="theorem_8cpp_source.html#l00246">CVC3::Theorem::getRHS()</a>, <a class="el" href="debug_8h_source.html#l00406">IF_DEBUG</a>, <a class="el" href="kinds_8h_source.html#l00070">IFF</a>, <a class="el" href="classCVC3_1_1CommonProofRules.html#ae5a0a67c59ba15d84e900fdccc7653ca">CVC3::CommonProofRules::iffTrue()</a>, <a class="el" href="kinds_8h_source.html#l00071">IMPLIES</a>, <a class="el" href="expr_8h_source.html#l00357">CVC3::Expr::isBoolConst()</a>, <a class="el" href="expr_8h_source.html#l00355">CVC3::Expr::isFalse()</a>, <a class="el" href="theorem_8h_source.html#l00171">CVC3::Theorem::isRefl()</a>, <a class="el" href="expr_8h_source.html#l00356">CVC3::Expr::isTrue()</a>, <a class="el" href="kinds_8h_source.html#l00081">ITE</a>, <a class="el" href="kinds_8h_source.html#l00066">NOT</a>, <a class="el" href="kinds_8h_source.html#l00068">OR</a>, <a class="el" href="theory_8h_source.html#l00673">CVC3::Theory::reflexivityRule()</a>, <a class="el" href="theory_8h_source.html#l00719">CVC3::Theory::rewriteAnd()</a>, <a class="el" href="classCVC3_1_1CoreProofRules.html#a3389cd795acc4cee4b591c1488293963">CVC3::CoreProofRules::rewriteImplies()</a>, <a class="el" href="classCVC3_1_1CommonProofRules.html#a6cb02a9489ef5ed4e548f49bbd07439f">CVC3::CommonProofRules::rewriteIteSame()</a>, <a class="el" href="theory_8h_source.html#l00724">CVC3::Theory::rewriteOr()</a>, <a class="el" href="theory__core_8cpp_source.html#l00184">simplify()</a>, <a class="el" href="classCVC3_1_1CommonProofRules.html#a776c827bb6e3b889234429c49ae9ad6f">CVC3::CommonProofRules::substitutivityRule()</a>, <a class="el" href="theory_8h_source.html#l00686">CVC3::Theory::substitutivityRule()</a>, <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>, <a class="el" href="theory_8h_source.html#l00681">CVC3::Theory::transitivityRule()</a>, and <a class="el" href="kinds_8h_source.html#l00035">TRUE_EXPR</a>.</p> </div> </div> <a class="anchor" id="ada717b1e852018d77f154682a01f6731"></a><!-- doxytag: member="CVC3::TheoryCore::checkType" ref="ada717b1e852018d77f154682a01f6731" args="(const Expr &e)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void TheoryCore::checkType </td> <td>(</td> <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> & </td> <td class="paramname"><em>e</em></td><td>)</td> <td><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Check that e is a valid <a class="el" href="classCVC3_1_1Type.html" title="MS C++ specific settings.">Type</a> expr. </p> <p>Reimplemented from <a class="el" href="group__Theory__API.html#gac22e5fff02a4681c3972e3637bd15748">CVC3::Theory</a>.</p> <p>Definition at line <a class="el" href="theory__core_8cpp_source.html#l01408">1408</a> of file <a class="el" href="theory__core_8cpp_source.html">theory_core.cpp</a>.</p> <p>References <a class="el" href="kinds_8h_source.html#l00050">ANY_TYPE</a>, <a class="el" href="expr_8h_source.html#l01201">CVC3::Expr::arity()</a>, <a class="el" href="kinds_8h_source.html#l00048">BOOLEAN</a>, <a class="el" href="debug_8h_source.html#l00037">FatalAssert</a>, <a class="el" href="theory_8h_source.html#l00090">CVC3::Theory::getEM()</a>, <a class="el" href="expr_8h_source.html#l01168">CVC3::Expr::getKind()</a>, <a class="el" href="expr_8h_source.html#l01259">CVC3::Expr::getType()</a>, <a class="el" href="type_8h_source.html#l00062">CVC3::Type::isFunction()</a>, <a class="el" href="kinds_8h_source.html#l00193">SUBTYPE</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p> </div> </div> <a class="anchor" id="acf724e4b497f7ca829eaaca9007fbae6"></a><!-- doxytag: member="CVC3::TheoryCore::finiteTypeInfo" ref="acf724e4b497f7ca829eaaca9007fbae6" args="(Expr &e, Unsigned &n, bool enumerate, bool computeSize)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="namespaceCVC3.html#af969e724f8b7016909f5804e8cea3e54">Cardinality</a> TheoryCore::finiteTypeInfo </td> <td>(</td> <td class="paramtype"><a class="el" href="classCVC3_1_1Expr.html">Expr</a> & </td> <td class="paramname"><em>e</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classCVC3_1_1Unsigned.html">Unsigned</a> & </td> <td class="paramname"><em>n</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">bool </td> <td class="paramname"><em>enumerate</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">bool </td> <td class="paramname"><em>computeSize</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Compute information related to finiteness of types. </p> <p>Used by the TypeComputer defined in <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> (theories should not call this funtion directly -- they should use the methods in <a class="el" href="classCVC3_1_1Type.html" title="MS C++ specific settings.">Type</a> instead). Each theory should implement this if it contains any types that could be non-infinite.</p> <p>1. Returns Cardinality of the type (finite, infinite, or unknown) 2. If cardinality = finite and enumerate is true, sets e to the nth element of the type if it can sets e to NULL if n is out of bounds or if unable to compute nth element 3. If cardinality = finite and computeSize is true, sets n to the size of the type if it can sets n to 0 otherwise </p> <p>Reimplemented from <a class="el" href="group__Theory__API.html#ga166b2a0c7ec3b09e079c2f84bb6087bc">CVC3::Theory</a>.</p> <p>Definition at line <a class="el" href="theory__core_8cpp_source.html#l01443">1443</a> of file <a class="el" href="theory__core_8cpp_source.html">theory_core.cpp</a>.</p> <p>References <a class="el" href="kinds_8h_source.html#l00050">ANY_TYPE</a>, <a class="el" href="kinds_8h_source.html#l00048">BOOLEAN</a>, <a class="el" href="expr_8h_source.html#l00081">CVC3::CARD_FINITE</a>, <a class="el" href="expr_8h_source.html#l00082">CVC3::CARD_INFINITE</a>, <a class="el" href="expr_8h_source.html#l00083">CVC3::CARD_UNKNOWN</a>, <a class="el" href="theory_8h_source.html#l00579">CVC3::Theory::falseExpr()</a>, <a class="el" href="debug_8h_source.html#l00037">FatalAssert</a>, <a class="el" href="theory_8h_source.html#l00090">CVC3::Theory::getEM()</a>, <a class="el" href="expr_8h_source.html#l01168">CVC3::Expr::getKind()</a>, <a class="el" href="kinds_8h_source.html#l00193">SUBTYPE</a>, and <a class="el" href="theory_8h_source.html#l00582">CVC3::Theory::trueExpr()</a>.</p> </div> </div> <a class="anchor" id="a4968c9a9514669bbd9c2e6774f17b743"></a><!-- doxytag: member="CVC3::TheoryCore::computeType" ref="a4968c9a9514669bbd9c2e6774f17b743" args="(const Expr &e)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void TheoryCore::computeType </td> <td>(</td> <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> & </td> <td class="paramname"><em>e</em></td><td>)</td> <td><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Compute and store the type of e. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">e</td><td>is the expression whose type is computed.</td></tr> </table> </dd> </dl> <p>This function computes the type of the top-level operator of e, and recurses into children using getType(), if necessary. </p> <p>Reimplemented from <a class="el" href="group__Theory__API.html#gabaed6b47e6fdea3ae1e53ff75f1882db">CVC3::Theory</a>.</p> <p>Definition at line <a class="el" href="theory__core_8cpp_source.html#l01471">1471</a> of file <a class="el" href="theory__core_8cpp_source.html">theory_core.cpp</a>.</p> <p>References <a class="el" href="kinds_8h_source.html#l00067">AND</a>, <a class="el" href="kinds_8h_source.html#l00075">AND_R</a>, <a class="el" href="type_8h_source.html#l00074">CVC3::Type::anyType()</a>, <a class="el" href="kinds_8h_source.html#l00090">APPLY</a>, <a class="el" href="type_8h_source.html#l00055">CVC3::Type::arity()</a>, <a class="el" href="expr_8h_source.html#l01201">CVC3::Expr::arity()</a>, <a class="el" href="theory_8h_source.html#l00576">CVC3::Theory::boolType()</a>, <a class="el" href="theory_8h_source.html#l00067">CVC3::Theory::d_em</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="kinds_8h_source.html#l00063">DISTINCT</a>, <a class="el" href="kinds_8h_source.html#l00061">EQ</a>, <a class="el" href="theory_8cpp_source.html#l00383">CVC3::Theory::getBaseType()</a>, <a class="el" href="type_8h_source.html#l00052">CVC3::Type::getExpr()</a>, <a class="el" href="expr_8h_source.html#l01168">CVC3::Expr::getKind()</a>, <a class="el" href="expr_8h_source.html#l01191">CVC3::Expr::getOpExpr()</a>, <a class="el" href="kinds_8h_source.html#l00070">IFF</a>, <a class="el" href="kinds_8h_source.html#l00076">IFF_R</a>, <a class="el" href="kinds_8h_source.html#l00071">IMPLIES</a>, <a class="el" href="cvc__util_8h_source.html#l00046">CVC3::int2string()</a>, <a class="el" href="expr_8h_source.html#l01014">CVC3::Expr::isApply()</a>, <a class="el" href="type_8h_source.html#l00060">CVC3::Type::isBool()</a>, <a class="el" href="type_8h_source.html#l00062">CVC3::Type::isFunction()</a>, <a class="el" href="kinds_8h_source.html#l00081">ITE</a>, <a class="el" href="kinds_8h_source.html#l00077">ITE_R</a>, <a class="el" href="kinds_8h_source.html#l00227">LETDECL</a>, <a class="el" href="kinds_8h_source.html#l00066">NOT</a>, <a class="el" href="kinds_8h_source.html#l00068">OR</a>, <a class="el" href="kinds_8h_source.html#l00044">RAW_LIST</a>, <a class="el" href="expr_8h_source.html#l01427">CVC3::Expr::setType()</a>, <a class="el" href="type_8h_source.html#l00080">CVC3::Type::toString()</a>, <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>, and <a class="el" href="kinds_8h_source.html#l00069">XOR</a>.</p> </div> </div> <a class="anchor" id="a624d8ed203fdd666ae97ec10f9859d26"></a><!-- doxytag: member="CVC3::TheoryCore::computeBaseType" ref="a624d8ed203fdd666ae97ec10f9859d26" args="(const Type &t)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCVC3_1_1Type.html">Type</a> TheoryCore::computeBaseType </td> <td>(</td> <td class="paramtype">const <a class="el" href="classCVC3_1_1Type.html">Type</a> & </td> <td class="paramname"><em>tp</em></td><td>)</td> <td><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Compute the base type of the top-level operator of an arbitrary type. </p> <p>Reimplemented from <a class="el" href="group__Theory__API.html#gaa29925192ee19a6d1f0644174cfd07af">CVC3::Theory</a>.</p> <p>Definition at line <a class="el" href="theory__core_8cpp_source.html#l01620">1620</a> of file <a class="el" href="theory__core_8cpp_source.html">theory_core.cpp</a>.</p> <p>References <a class="el" href="kinds_8h_source.html#l00050">ANY_TYPE</a>, <a class="el" href="expr_8h_source.html#l01201">CVC3::Expr::arity()</a>, <a class="el" href="kinds_8h_source.html#l00048">BOOLEAN</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="theory_8cpp_source.html#l00383">CVC3::Theory::getBaseType()</a>, <a class="el" href="type_8h_source.html#l00052">CVC3::Type::getExpr()</a>, <a class="el" href="expr_8h_source.html#l01168">CVC3::Expr::getKind()</a>, <a class="el" href="expr_8h_source.html#l01259">CVC3::Expr::getType()</a>, <a class="el" href="type_8h_source.html#l00062">CVC3::Type::isFunction()</a>, <a class="el" href="kinds_8h_source.html#l00193">SUBTYPE</a>, <a class="el" href="type_8h_source.html#l00080">CVC3::Type::toString()</a>, <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>, and <a class="el" href="kinds_8h_source.html#l00058">TYPEDEF</a>.</p> </div> </div> <a class="anchor" id="acd533616106f9987039cfbd5988d50d5"></a><!-- doxytag: member="CVC3::TheoryCore::computeTCC" ref="acd533616106f9987039cfbd5988d50d5" args="(const Expr &e)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCVC3_1_1Expr.html">Expr</a> TheoryCore::computeTCC </td> <td>(</td> <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> & </td> <td class="paramname"><em>e</em></td><td>)</td> <td><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Compute and cache the TCC of e. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">e</td><td>is an expression (term or formula). This function computes the TCC of e which is true iff the expression is defined.</td></tr> </table> </dd> </dl> <p>This function computes the TCC or predicate of the top-level operator of e, and recurses into children using <a class="el" href="classCVC3_1_1Theory.html#af38bdeb162a9ab9bd81ce40f598f608f" title="Compute the TCC of e, or the subtyping predicate, if e is a type.">getTCC()</a>, if necessary.</p> <p>The default implementation is to compute TCCs recursively for all children, and return their conjunction. </p> <p>Reimplemented from <a class="el" href="group__Theory__API.html#ga9278ad3a6eb8351865a71acd7bb7f968">CVC3::Theory</a>.</p> <p>Definition at line <a class="el" href="theory__core_8cpp_source.html#l01650">1650</a> of file <a class="el" href="theory__core_8cpp_source.html">theory_core.cpp</a>.</p> <p>References <a class="el" href="kinds_8h_source.html#l00067">AND</a>, <a class="el" href="expr_8h_source.html#l00945">CVC3::andExpr()</a>, <a class="el" href="kinds_8h_source.html#l00090">APPLY</a>, <a class="el" href="expr_8h_source.html#l01211">CVC3::Expr::begin()</a>, <a class="el" href="theory_8cpp_source.html#l00081">CVC3::Theory::computeTCC()</a>, <a class="el" href="expr_8h_source.html#l01217">CVC3::Expr::end()</a>, <a class="el" href="expr_8h_source.html#l01168">CVC3::Expr::getKind()</a>, <a class="el" href="theorem_8cpp_source.html#l00246">CVC3::Theorem::getRHS()</a>, <a class="el" href="theory_8cpp_source.html#l00367">CVC3::Theory::getTCC()</a>, <a class="el" href="kinds_8h_source.html#l00071">IMPLIES</a>, <a class="el" href="kinds_8h_source.html#l00081">ITE</a>, <a class="el" href="kinds_8h_source.html#l00066">NOT</a>, <a class="el" href="kinds_8h_source.html#l00068">OR</a>, <a class="el" href="expr_8h_source.html#l00955">CVC3::orExpr()</a>, <a class="el" href="theory_8h_source.html#l00719">CVC3::Theory::rewriteAnd()</a>, <a class="el" href="theory_8h_source.html#l00724">CVC3::Theory::rewriteOr()</a>, and <a class="el" href="theory_8cpp_source.html#l00252">CVC3::Theory::theoryOf()</a>.</p> </div> </div> <a class="anchor" id="ab12924c15cb53753ba91d1766282a71e"></a><!-- doxytag: member="CVC3::TheoryCore::computeTypePred" ref="ab12924c15cb53753ba91d1766282a71e" args="(const Type &t, const Expr &e)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCVC3_1_1Expr.html">Expr</a> TheoryCore::computeTypePred </td> <td>(</td> <td class="paramtype">const <a class="el" href="classCVC3_1_1Type.html">Type</a> & </td> <td class="paramname"><em>t</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> & </td> <td class="paramname"><em>e</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p><a class="el" href="classCVC3_1_1Theory.html" title="Base class for theories.">Theory</a> specific computation of the subtyping predicate for type t applied to the expression e. </p> <p>By default returns true. Each theory needs to compute subtype predicates for the types associated with it. So, for example, the theory of records will take a record type [# f1: T1, f2: T2 #] and an expression e and will return the subtyping predicate for e, namely: computeTypePred(T1, e.f1) AND computeTypePred(T2, e.f2) </p> <p>Reimplemented from <a class="el" href="group__Theory__API.html#ga19d53b411ccc48276f6666183b3c5887">CVC3::Theory</a>.</p> <p>Definition at line <a class="el" href="theory__core_8cpp_source.html#l01704">1704</a> of file <a class="el" href="theory__core_8cpp_source.html">theory_core.cpp</a>.</p> <p>References <a class="el" href="expr_8h_source.html#l00945">CVC3::andExpr()</a>, <a class="el" href="kinds_8h_source.html#l00090">APPLY</a>, <a class="el" href="theory_8h_source.html#l00275">CVC3::Theory::computeTypePred()</a>, <a class="el" href="expr_8h_source.html#l01156">CVC3::Expr::getEM()</a>, <a class="el" href="type_8h_source.html#l00052">CVC3::Type::getExpr()</a>, <a class="el" href="expr_8h_source.html#l01168">CVC3::Expr::getKind()</a>, <a class="el" href="theory_8cpp_source.html#l00406">CVC3::Theory::getTypePred()</a>, <a class="el" href="expr_8h_source.html#l01265">CVC3::Expr::lookupType()</a>, <a class="el" href="expr_8h_source.html#l01178">CVC3::Expr::mkOp()</a>, <a class="el" href="kinds_8h_source.html#l00193">SUBTYPE</a>, <a class="el" href="theory_8cpp_source.html#l00252">CVC3::Theory::theoryOf()</a>, and <a class="el" href="expr__manager_8h_source.html#l00280">CVC3::ExprManager::trueExpr()</a>.</p> </div> </div> <a class="anchor" id="a0cf4d5c76db5be87a848d694adff4dfe"></a><!-- doxytag: member="CVC3::TheoryCore::parseExprOp" ref="a0cf4d5c76db5be87a848d694adff4dfe" args="(const Expr &e)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCVC3_1_1Expr.html">Expr</a> TheoryCore::parseExprOp </td> <td>(</td> <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> & </td> <td class="paramname"><em>e</em></td><td>)</td> <td><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Theory-specific parsing implemented by the DP. </p> <p>Reimplemented from <a class="el" href="group__Theory__API.html#ga378bef078620e67fc80f36fa79320d91">CVC3::Theory</a>.</p> <p>Definition at line <a class="el" href="theory__core_8cpp_source.html#l01724">1724</a> of file <a class="el" href="theory__core_8cpp_source.html">theory_core.cpp</a>.</p> <p>References <a class="el" href="theory_8cpp_source.html#l00709">CVC3::Theory::addBoundVar()</a>, <a class="el" href="expr_8h_source.html#l01201">CVC3::Expr::arity()</a>, <a class="el" href="expr_8h_source.html#l01211">CVC3::Expr::begin()</a>, <a class="el" href="kinds_8h_source.html#l00048">BOOLEAN</a>, <a class="el" href="expr__manager_8h_source.html#l00276">CVC3::ExprManager::boolExpr()</a>, <a class="el" href="theory_8h_source.html#l00576">CVC3::Theory::boolType()</a>, <a class="el" href="kinds_8h_source.html#l00217">COND</a>, <a class="el" href="theory__core_8h_source.html#l00120">d_parseCache</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="expr_8h_source.html#l01217">CVC3::Expr::end()</a>, <a class="el" href="expr__map_8h_source.html#l00191">CVC3::ExprMap< Data >::end()</a>, <a class="el" href="kinds_8h_source.html#l00061">EQ</a>, <a class="el" href="expr_8h_source.html#l00929">CVC3::Expr::eqExpr()</a>, <a class="el" href="kinds_8h_source.html#l00036">FALSE_EXPR</a>, <a class="el" href="expr__manager_8h_source.html#l00278">CVC3::ExprManager::falseExpr()</a>, <a class="el" href="expr__map_8h_source.html#l00194">CVC3::ExprMap< Data >::find()</a>, <a class="el" href="expr_8h_source.html#l01156">CVC3::Expr::getEM()</a>, <a class="el" href="theory_8h_source.html#l00090">CVC3::Theory::getEM()</a>, <a class="el" href="type_8h_source.html#l00052">CVC3::Type::getExpr()</a>, <a class="el" href="theory__core_8h_source.html#l00350">getFlags()</a>, <a class="el" href="expr__manager_8cpp_source.html#l00412">CVC3::ExprManager::getKind()</a>, <a class="el" href="expr_8h_source.html#l01168">CVC3::Expr::getKind()</a>, <a class="el" href="expr_8h_source.html#l01259">CVC3::Expr::getType()</a>, <a class="el" href="kinds_8h_source.html#l00046">ID</a>, <a class="el" href="kinds_8h_source.html#l00212">IF</a>, <a class="el" href="expr_8h_source.html#l00965">CVC3::Expr::iffExpr()</a>, <a class="el" href="theory__core_8cpp_source.html#l00630">isBasicKind()</a>, <a class="el" href="expr_8h_source.html#l00961">CVC3::Expr::iteExpr()</a>, <a class="el" href="kinds_8h_source.html#l00225">LET</a>, <a class="el" href="kinds_8h_source.html#l00062">NEQ</a>, <a class="el" href="expr__manager_8h_source.html#l00454">CVC3::ExprManager::newLeafExpr()</a>, <a class="el" href="theory_8cpp_source.html#l00816">CVC3::Theory::newSubtypeExpr()</a>, <a class="el" href="kinds_8h_source.html#l00032">NULL_KIND</a>, <a class="el" href="theory__core_8cpp_source.html#l03589">parseExpr()</a>, <a class="el" href="theory__core_8cpp_source.html#l00605">processCond()</a>, <a class="el" href="kinds_8h_source.html#l00044">RAW_LIST</a>, <a class="el" href="kinds_8h_source.html#l00193">SUBTYPE</a>, <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>, <a class="el" href="kinds_8h_source.html#l00099">TRACE</a>, <a class="el" href="kinds_8h_source.html#l00035">TRUE_EXPR</a>, <a class="el" href="expr__manager_8h_source.html#l00280">CVC3::ExprManager::trueExpr()</a>, <a class="el" href="kinds_8h_source.html#l00053">TYPE</a>, <a class="el" href="kinds_8h_source.html#l00056">TYPEDECL</a>, and <a class="el" href="kinds_8h_source.html#l00058">TYPEDEF</a>.</p> </div> </div> <a class="anchor" id="ab334f07590ad297ad6daa3383c61de5f"></a><!-- doxytag: member="CVC3::TheoryCore::print" ref="ab334f07590ad297ad6daa3383c61de5f" args="(ExprStream &os, const Expr &e)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCVC3_1_1ExprStream.html">ExprStream</a> & TheoryCore::print </td> <td>(</td> <td class="paramtype"><a class="el" href="classCVC3_1_1ExprStream.html">ExprStream</a> & </td> <td class="paramname"><em>os</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> & </td> <td class="paramname"><em>e</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Theory-specific pretty-printing. </p> <p>By default, print the top node in AST, and resume pretty-printing the children. The same call e.print(os) can be used in DP-specific printers to use AST printing for the given node. In fact, it is strongly recommended to add e.print(os) as the default for all the cases/kinds that are not handled by the particular pretty-printer. </p> <p>Reimplemented from <a class="el" href="group__Theory__API.html#ga49009744d64bbc47785f3fc5fa6884ca">CVC3::Theory</a>.</p> <p>Definition at line <a class="el" href="theory__core_8cpp_source.html#l02055">2055</a> of file <a class="el" href="theory__core_8cpp_source.html">theory_core.cpp</a>.</p> <p>References <a class="el" href="kinds_8h_source.html#l00067">AND</a>, <a class="el" href="kinds_8h_source.html#l00138">ANNOTATION</a>, <a class="el" href="kinds_8h_source.html#l00050">ANY_TYPE</a>, <a class="el" href="kinds_8h_source.html#l00137">ARITH_VAR_ORDER</a>, <a class="el" href="expr_8h_source.html#l01201">CVC3::Expr::arity()</a>, <a class="el" href="kinds_8h_source.html#l00051">ARROW</a>, <a class="el" href="kinds_8h_source.html#l00093">ASSERT</a>, <a class="el" href="kinds_8h_source.html#l00119">ASSERTIONS</a>, <a class="el" href="kinds_8h_source.html#l00120">ASSUMPTIONS</a>, <a class="el" href="expr_8h_source.html#l01211">CVC3::Expr::begin()</a>, <a class="el" href="kinds_8h_source.html#l00048">BOOLEAN</a>, <a class="el" href="kinds_8h_source.html#l00164">BOUND_VAR</a>, <a class="el" href="expr__map_8h_source.html#l00310">CVC3::ExprHashMap< Data >::clear()</a>, <a class="el" href="kinds_8h_source.html#l00240">CONST</a>, <a class="el" href="theory__core_8cpp_source.html#l02050">contains()</a>, <a class="el" href="kinds_8h_source.html#l00121">COUNTEREXAMPLE</a>, <a class="el" href="kinds_8h_source.html#l00122">COUNTERMODEL</a>, <a class="el" href="theory_8h_source.html#l00067">CVC3::Theory::d_em</a>, <a class="el" href="theory__core_8h_source.html#l00081">d_translator</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="kinds_8h_source.html#l00063">DISTINCT</a>, <a class="el" href="expr_8h_source.html#l01217">CVC3::Expr::end()</a>, <a class="el" href="expr__stream_8cpp_source.html#l00353">std::endl()</a>, <a class="el" href="kinds_8h_source.html#l00061">EQ</a>, <a class="el" href="translator_8cpp_source.html#l01816">CVC3::Translator::escapeSymbol()</a>, <a class="el" href="kinds_8h_source.html#l00036">FALSE_EXPR</a>, <a class="el" href="theory_8h_source.html#l00579">CVC3::Theory::falseExpr()</a>, <a class="el" href="expr__manager_8h_source.html#l00278">CVC3::ExprManager::falseExpr()</a>, <a class="el" href="translator_8cpp_source.html#l01804">CVC3::Translator::fixConstName()</a>, <a class="el" href="theory_8cpp_source.html#l00383">CVC3::Theory::getBaseType()</a>, <a class="el" href="theory_8h_source.html#l00090">CVC3::Theory::getEM()</a>, <a class="el" href="type_8h_source.html#l00052">CVC3::Type::getExpr()</a>, <a class="el" href="theory__core_8h_source.html#l00350">getFlags()</a>, <a class="el" href="expr_8h_source.html#l01173">CVC3::Expr::getIndex()</a>, <a class="el" href="expr_8h_source.html#l01168">CVC3::Expr::getKind()</a>, <a class="el" href="expr_8h_source.html#l01050">CVC3::Expr::getName()</a>, <a class="el" href="expr_8h_source.html#l01055">CVC3::Expr::getString()</a>, <a class="el" href="expr_8h_source.html#l01259">CVC3::Expr::getType()</a>, <a class="el" href="kinds_8h_source.html#l00046">ID</a>, <a class="el" href="kinds_8h_source.html#l00070">IFF</a>, <a class="el" href="kinds_8h_source.html#l00071">IMPLIES</a>, <a class="el" href="cvc__util_8h_source.html#l00046">CVC3::int2string()</a>, <a class="el" href="type_8h_source.html#l00060">CVC3::Type::isBool()</a>, <a class="el" href="type_8h_source.html#l00059">CVC3::Type::isNull()</a>, <a class="el" href="theory__arith_8h_source.html#l00173">CVC3::isReal()</a>, <a class="el" href="expr_8h_source.html#l01006">CVC3::Expr::isString()</a>, <a class="el" href="kinds_8h_source.html#l00081">ITE</a>, <a class="el" href="expr__stream_8h_source.html#l00165">CVC3::ExprStream::lang()</a>, <a class="el" href="kinds_8h_source.html#l00225">LET</a>, <a class="el" href="kinds_8h_source.html#l00227">LETDECL</a>, <a class="el" href="lang_8h_source.html#l00036">CVC3::LISP_LANG</a>, <a class="el" href="expr_8h_source.html#l00937">CVC3::Expr::negate()</a>, <a class="el" href="expr__stream_8cpp_source.html#l00332">CVC3::nodag()</a>, <a class="el" href="kinds_8h_source.html#l00066">NOT</a>, <a class="el" href="expr_8h_source.html#l00933">CVC3::Expr::notExpr()</a>, <a class="el" href="kinds_8h_source.html#l00068">OR</a>, <a class="el" href="kinds_8h_source.html#l00275">PF_APPLY</a>, <a class="el" href="kinds_8h_source.html#l00276">PF_HOLE</a>, <a class="el" href="expr__stream_8cpp_source.html#l00301">CVC3::pop()</a>, <a class="el" href="kinds_8h_source.html#l00124">POP</a>, <a class="el" href="kinds_8h_source.html#l00127">POP_SCOPE</a>, <a class="el" href="expr__stream_8cpp_source.html#l00306">CVC3::popSave()</a>, <a class="el" href="kinds_8h_source.html#l00125">POPTO</a>, <a class="el" href="kinds_8h_source.html#l00128">POPTO_SCOPE</a>, <a class="el" href="lang_8h_source.html#l00032">CVC3::PRESENTATION_LANG</a>, <a class="el" href="expr_8cpp_source.html#l00362">CVC3::Expr::print()</a>, <a class="el" href="expr_8cpp_source.html#l00400">CVC3::Expr::printAST()</a>, <a class="el" href="theory__core_8cpp_source.html#l01915">printSmtLibShared()</a>, <a class="el" href="kinds_8h_source.html#l00123">PUSH</a>, <a class="el" href="expr__stream_8cpp_source.html#l00298">CVC3::push()</a>, <a class="el" href="kinds_8h_source.html#l00126">PUSH_SCOPE</a>, <a class="el" href="expr__stream_8cpp_source.html#l00315">CVC3::pushRestore()</a>, <a class="el" href="kinds_8h_source.html#l00094">QUERY</a>, <a class="el" href="translator_8cpp_source.html#l01830">CVC3::Translator::quoteAnnotation()</a>, <a class="el" href="kinds_8h_source.html#l00044">RAW_LIST</a>, <a class="el" href="kinds_8h_source.html#l00129">RESET</a>, <a class="el" href="lang_8h_source.html#l00043">CVC3::SIMPLIFY_LANG</a>, <a class="el" href="kinds_8h_source.html#l00290">SKOLEM_VAR</a>, <a class="el" href="lang_8h_source.html#l00034">CVC3::SMTLIB_LANG</a>, <a class="el" href="lang_8h_source.html#l00052">CVC3::SMTLIB_V2_LANG</a>, <a class="el" href="expr__stream_8cpp_source.html#l00326">CVC3::space()</a>, <a class="el" href="lang_8h_source.html#l00049">CVC3::SPASS_LANG</a>, <a class="el" href="kinds_8h_source.html#l00038">STRING_EXPR</a>, <a class="el" href="kinds_8h_source.html#l00193">SUBTYPE</a>, <a class="el" href="cvc__util_8h_source.html#l00038">CVC3::to_lower()</a>, <a class="el" href="cvc__util_8h_source.html#l00030">CVC3::to_upper()</a>, <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>, <a class="el" href="lang_8h_source.html#l00046">CVC3::TPTP_LANG</a>, <a class="el" href="kinds_8h_source.html#l00103">TRANSFORM</a>, <a class="el" href="kinds_8h_source.html#l00035">TRUE_EXPR</a>, <a class="el" href="theory_8h_source.html#l00582">CVC3::Theory::trueExpr()</a>, <a class="el" href="expr__manager_8h_source.html#l00280">CVC3::ExprManager::trueExpr()</a>, <a class="el" href="kinds_8h_source.html#l00053">TYPE</a>, <a class="el" href="kinds_8h_source.html#l00058">TYPEDEF</a>, <a class="el" href="kinds_8h_source.html#l00242">UCONST</a>, <a class="el" href="kinds_8h_source.html#l00118">WHERE</a>, and <a class="el" href="kinds_8h_source.html#l00069">XOR</a>.</p> </div> </div> <a class="anchor" id="a6822c229c357d1afcda22bc073d45142"></a><!-- doxytag: member="CVC3::TheoryCore::refineCounterExample" ref="a6822c229c357d1afcda22bc073d45142" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void TheoryCore::refineCounterExample </td> <td>(</td> <td class="paramname"></td><td>)</td> <td><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Calls for other theories to add facts to refine a coutnerexample. </p> <p>Reimplemented from <a class="el" href="group__Theory__API.html#gab23238889b7f68caa0715e6ab5d31775">CVC3::Theory</a>.</p> <p>Definition at line <a class="el" href="theory__core_8cpp_source.html#l03429">3429</a> of file <a class="el" href="theory__core_8cpp_source.html">theory_core.cpp</a>.</p> <p>References <a class="el" href="theory_8h_source.html#l00067">CVC3::Theory::d_em</a>, <a class="el" href="theory__core_8h_source.html#l00125">d_theories</a>, <a class="el" href="theorem_8cpp_source.html#l00274">CVC3::Theorem::getLeafAssumptions()</a>, <a class="el" href="theory_8h_source.html#l00099">CVC3::Theory::getName()</a>, <a class="el" href="theory_8cpp_source.html#l00241">CVC3::Theory::getNumTheories()</a>, <a class="el" href="theory__core_8h_source.html#l00422">inconsistent()</a>, <a class="el" href="theory__core_8h_source.html#l00425">inconsistentThm()</a>, <a class="el" href="kinds_8h_source.html#l00044">RAW_LIST</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p> <p>Referenced by <a class="el" href="search_8cpp_source.html#l00091">CVC3::SearchEngine::getConcreteModel()</a>, and <a class="el" href="search_8cpp_source.html#l00057">CVC3::SearchEngine::tryModelGeneration()</a>.</p> </div> </div> <a class="anchor" id="a22920ae8b347ea919e53e6e009b13ce0"></a><!-- doxytag: member="CVC3::TheoryCore::refineCounterExample" ref="a22920ae8b347ea919e53e6e009b13ce0" args="(Theorem &thm)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool TheoryCore::refineCounterExample </td> <td>(</td> <td class="paramtype"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> & </td> <td class="paramname"><em>thm</em></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="theory__core_8cpp_source.html#l03415">3415</a> of file <a class="el" href="theory__core_8cpp_source.html">theory_core.cpp</a>.</p> <p>References <a class="el" href="theory__core_8h_source.html#l00125">d_theories</a>, <a class="el" href="theory_8cpp_source.html#l00241">CVC3::Theory::getNumTheories()</a>, <a class="el" href="theory__core_8h_source.html#l00422">inconsistent()</a>, and <a class="el" href="theory__core_8h_source.html#l00425">inconsistentThm()</a>.</p> </div> </div> <a class="anchor" id="a6edb2212446e43165666dcb7f319985a"></a><!-- doxytag: member="CVC3::TheoryCore::computeModelBasic" ref="a6edb2212446e43165666dcb7f319985a" args="(const std::vector< Expr > &v)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void TheoryCore::computeModelBasic </td> <td>(</td> <td class="paramtype">const std::vector< <a class="el" href="classCVC3_1_1Expr.html">Expr</a> > & </td> <td class="paramname"><em>v</em></td><td>)</td> <td><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Assign concrete values to basic-type variables in v. </p> <p>Reimplemented from <a class="el" href="group__Theory__API.html#ga6a6bc2982a8c71475cd9f1b6a4aa388e">CVC3::Theory</a>.</p> <p>Definition at line <a class="el" href="theory__core_8cpp_source.html#l03449">3449</a> of file <a class="el" href="theory__core_8cpp_source.html">theory_core.cpp</a>.</p> <p>References <a class="el" href="theory__core_8cpp_source.html#l03713">assignValue()</a>, <a class="el" href="theory_8h_source.html#l00067">CVC3::Theory::d_em</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="theory_8cpp_source.html#l00310">CVC3::Theory::find()</a>, <a class="el" href="theorem_8cpp_source.html#l00246">CVC3::Theorem::getRHS()</a>, <a class="el" href="kinds_8h_source.html#l00099">TRACE</a>, and <a class="el" href="expr__manager_8h_source.html#l00280">CVC3::ExprManager::trueExpr()</a>.</p> </div> </div> <a class="anchor" id="aecef2465eb761f7f112ddce77f93d081"></a><!-- doxytag: member="CVC3::TheoryCore::addFact" ref="aecef2465eb761f7f112ddce77f93d081" args="(const Theorem &e)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void TheoryCore::addFact </td> <td>(</td> <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> & </td> <td class="paramname"><em>e</em></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Add a new assertion to the core from the user or a <a class="el" href="namespaceSAT.html">SAT</a> solver. Do NOT use it in a decision procedure; use <a class="el" href="classCVC3_1_1TheoryCore.html#a479141bc26a125b758a2acc6420274f9" title="Enqueue a new fact.">enqueueFact()</a>. </p> <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classCVC3_1_1TheoryCore.html#a479141bc26a125b758a2acc6420274f9" title="Enqueue a new fact.">enqueueFact</a> </dd></dl> <p>Definition at line <a class="el" href="theory__core_8cpp_source.html#l03468">3468</a> of file <a class="el" href="theory__core_8cpp_source.html">theory_core.cpp</a>.</p> <p>References <a class="el" href="theory__core_8h_source.html#l00167">d_inAddFact</a>, <a class="el" href="theory__core_8h_source.html#l00089">d_inconsistent</a>, <a class="el" href="theory__core_8h_source.html#l00084">d_queue</a>, <a class="el" href="theory__core_8h_source.html#l00086">d_queueSE</a>, <a class="el" href="theory__core_8h_source.html#l00197">d_update_data</a>, <a class="el" href="theory__core_8h_source.html#l00194">d_update_thms</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="theory__core_8h_source.html#l00348">getCM()</a>, <a class="el" href="theorem_8cpp_source.html#l00230">CVC3::Theorem::getExpr()</a>, <a class="el" href="theory__core_8h_source.html#l00334">getResource()</a>, <a class="el" href="debug_8h_source.html#l00406">IF_DEBUG</a>, <a class="el" href="theory__core_8h_source.html#l00492">outOfResources()</a>, <a class="el" href="lang_8h_source.html#l00032">CVC3::PRESENTATION_LANG</a>, <a class="el" href="theory__core_8cpp_source.html#l00121">processFactQueue()</a>, <a class="el" href="theory__core_8cpp_source.html#l04180">setIncomplete()</a>, <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>, and <a class="el" href="kinds_8h_source.html#l00099">TRACE</a>.</p> <p>Referenced by <a class="el" href="theory__core_8cpp_source.html#l03713">assignValue()</a>, <a class="el" href="search__simple_8cpp_source.html#l00165">CVC3::SearchSimple::checkValidInternal()</a>, <a class="el" href="search__fast_8cpp_source.html#l01050">CVC3::SearchEngineFast::commitFacts()</a>, <a class="el" href="expr__transform_8cpp_source.html#l00334">CVC3::ExprTransform::newPPrec()</a>, <a class="el" href="search__impl__base_8cpp_source.html#l00141">CVC3::SearchImplBase::newUserAssumption()</a>, <a class="el" href="search__sat_8cpp_source.html#l01064">CVC3::SearchSat::newUserAssumptionInt()</a>, <a class="el" href="circuit_8cpp_source.html#l00047">CVC3::Circuit::propagate()</a>, <a class="el" href="decision__engine_8cpp_source.html#l00128">CVC3::DecisionEngine::pushDecision()</a>, <a class="el" href="search__simple_8cpp_source.html#l00207">CVC3::SearchSimple::restartInternal()</a>, <a class="el" href="search__fast_8cpp_source.html#l01750">CVC3::SearchEngineFast::restartInternal()</a>, and <a class="el" href="search__fast_8cpp_source.html#l00254">CVC3::SearchEngineFast::split()</a>.</p> </div> </div> <a class="anchor" id="a8a66da5ca687474a3a725448a3be8c41"></a><!-- doxytag: member="CVC3::TheoryCore::simplify" ref="a8a66da5ca687474a3a725448a3be8c41" args="(const Expr &e)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> TheoryCore::simplify </td> <td>(</td> <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> & </td> <td class="paramname"><em>e</em></td><td>)</td> <td><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Top-level simplifier. </p> <p>Reimplemented from <a class="el" href="classCVC3_1_1Theory.html#a52158688456f8605b064fbbf7a46039c">CVC3::Theory</a>.</p> <p>Definition at line <a class="el" href="theory__core_8cpp_source.html#l00184">184</a> of file <a class="el" href="theory__core_8cpp_source.html">theory_core.cpp</a>.</p> <p>References <a class="el" href="expr_8h_source.html#l01201">CVC3::Expr::arity()</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="expr_8h_source.html#l01196">CVC3::Expr::getOpKind()</a>, <a class="el" href="theorem_8cpp_source.html#l00246">CVC3::Theorem::getRHS()</a>, <a class="el" href="expr_8h_source.html#l01298">CVC3::Expr::getSimpCache()</a>, <a class="el" href="expr_8h_source.html#l01232">CVC3::Expr::hasFind()</a>, <a class="el" href="debug_8h_source.html#l00406">IF_DEBUG</a>, <a class="el" href="cvc__util_8h_source.html#l00046">CVC3::int2string()</a>, <a class="el" href="theorem_8h_source.html#l00171">CVC3::Theorem::isRefl()</a>, <a class="el" href="expr_8h_source.html#l01005">CVC3::Expr::isVar()</a>, <a class="el" href="expr_8h_source.html#l01432">CVC3::Expr::setSimpCache()</a>, <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>, <a class="el" href="expr_8h_source.html#l01342">CVC3::Expr::usesCC()</a>, and <a class="el" href="expr_8h_source.html#l01294">CVC3::Expr::validSimpCache()</a>.</p> <p>Referenced by <a class="el" href="theory__core_8cpp_source.html#l04320">getAssignment()</a>, <a class="el" href="theory__core_8cpp_source.html#l04333">getValue()</a>, <a class="el" href="expr__transform_8cpp_source.html#l00334">CVC3::ExprTransform::newPPrec()</a>, <a class="el" href="theory__core_8cpp_source.html#l03541">registerAtom()</a>, <a class="el" href="theory__core_8cpp_source.html#l00968">rewrite()</a>, <a class="el" href="theory__core_8cpp_source.html#l04260">setupTerm()</a>, <a class="el" href="theory_8cpp_source.html#l00119">CVC3::Theory::simplify()</a>, <a class="el" href="search__impl__base_8h_source.html#l00124">CVC3::SearchImplBase::simplify()</a>, <a class="el" href="theory__core_8cpp_source.html#l01292">simplifyOp()</a>, <a class="el" href="theory_8cpp_source.html#l00053">CVC3::Theory::simplifyOp()</a>, <a class="el" href="expr__transform_8cpp_source.html#l00476">CVC3::ExprTransform::simplifyWithCare()</a>, <a class="el" href="expr__transform_8cpp_source.html#l00042">CVC3::ExprTransform::smartSimplify()</a>, <a class="el" href="expr__transform_8cpp_source.html#l00296">CVC3::ExprTransform::specialSimplify()</a>, and <a class="el" href="search__fast_8cpp_source.html#l00254">CVC3::SearchEngineFast::split()</a>.</p> </div> </div> <a class="anchor" id="a289340e4457a79f1101f37c3a07a49ed"></a><!-- doxytag: member="CVC3::TheoryCore::inconsistent" ref="a289340e4457a79f1101f37c3a07a49ed" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool CVC3::TheoryCore::inconsistent </td> <td>(</td> <td class="paramname"></td><td>)</td> <td><code> [inline, virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Check if the current context is inconsistent. </p> <p>Reimplemented from <a class="el" href="classCVC3_1_1Theory.html#ab85541a91803599b7495f709c72c28c5">CVC3::Theory</a>.</p> <p>Definition at line <a class="el" href="theory__core_8h_source.html#l00422">422</a> of file <a class="el" href="theory__core_8h_source.html">theory_core.h</a>.</p> <p>References <a class="el" href="theory__core_8h_source.html#l00089">d_inconsistent</a>.</p> <p>Referenced by <a class="el" href="search__fast_8cpp_source.html#l00637">CVC3::SearchEngineFast::bcp()</a>, <a class="el" href="theory__core_8cpp_source.html#l03817">buildModel()</a>, <a class="el" href="theory_8cpp_source.html#l00097">CVC3::Theory::inconsistent()</a>, <a class="el" href="theory__core_8cpp_source.html#l03415">refineCounterExample()</a>, and <a class="el" href="search__fast_8cpp_source.html#l00254">CVC3::SearchEngineFast::split()</a>.</p> </div> </div> <a class="anchor" id="a5c7d2aa7db5db78829b8558d28560ddf"></a><!-- doxytag: member="CVC3::TheoryCore::inconsistentThm" ref="a5c7d2aa7db5db78829b8558d28560ddf" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> CVC3::TheoryCore::inconsistentThm </td> <td>(</td> <td class="paramname"></td><td>)</td> <td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Get the proof of inconsistency for the current context. </p> <dl class="return"><dt><b>Returns:</b></dt><dd>Theorem(FALSE) </dd></dl> <p>Definition at line <a class="el" href="theory__core_8h_source.html#l00425">425</a> of file <a class="el" href="theory__core_8h_source.html">theory_core.h</a>.</p> <p>References <a class="el" href="theory__core_8h_source.html#l00094">d_incThm</a>.</p> <p>Referenced by <a class="el" href="search__fast_8cpp_source.html#l00637">CVC3::SearchEngineFast::bcp()</a>, <a class="el" href="theory__core_8cpp_source.html#l03817">buildModel()</a>, <a class="el" href="search_8cpp_source.html#l00091">CVC3::SearchEngine::getConcreteModel()</a>, and <a class="el" href="theory__core_8cpp_source.html#l03415">refineCounterExample()</a>.</p> </div> </div> <a class="anchor" id="ae45217f71500d48ef1c4c5118011f254"></a><!-- doxytag: member="CVC3::TheoryCore::checkSATCore" ref="ae45217f71500d48ef1c4c5118011f254" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool TheoryCore::checkSATCore </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>To be called by <a class="el" href="classCVC3_1_1SearchEngine.html" title="API to to a generic proof search engine.">SearchEngine</a> when it believes the context is satisfiable. </p> <dl class="return"><dt><b>Returns:</b></dt><dd>true if definitely consistent or inconsistent and false if consistency is unknown. </dd></dl> <p>Definition at line <a class="el" href="theory__core_8cpp_source.html#l03507">3507</a> of file <a class="el" href="theory__core_8cpp_source.html">theory_core.cpp</a>.</p> <p>References <a class="el" href="theory__core_8h_source.html#l00166">d_inCheckSATCore</a>, <a class="el" href="theory__core_8h_source.html#l00084">d_queue</a>, <a class="el" href="theory__core_8h_source.html#l00086">d_queueSE</a>, <a class="el" href="theory__core_8h_source.html#l00197">d_update_data</a>, <a class="el" href="theory__core_8h_source.html#l00194">d_update_thms</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="theory__core_8h_source.html#l00261">FULL</a>, <a class="el" href="debug_8h_source.html#l00406">IF_DEBUG</a>, and <a class="el" href="theory__core_8cpp_source.html#l00121">processFactQueue()</a>.</p> <p>Referenced by <a class="el" href="search__fast_8cpp_source.html#l00254">CVC3::SearchEngineFast::split()</a>.</p> </div> </div> <a class="anchor" id="a36571dc56183d89cd36def27939430b0"></a><!-- doxytag: member="CVC3::TheoryCore::incomplete" ref="a36571dc56183d89cd36def27939430b0" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool CVC3::TheoryCore::incomplete </td> <td>(</td> <td class="paramname"></td><td>)</td> <td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Check if the current decision branch is marked as incomplete. </p> <p>Definition at line <a class="el" href="theory__core_8h_source.html#l00435">435</a> of file <a class="el" href="theory__core_8h_source.html">theory_core.h</a>.</p> <p>References <a class="el" href="theory__core_8h_source.html#l00091">d_incomplete</a>, and <a class="el" href="cdmap_8h_source.html#l00171">CVC3::CDMap< Key, Data, HashFcn >::size()</a>.</p> <p>Referenced by <a class="el" href="theory__core_8cpp_source.html#l04093">assertEqualities()</a>, <a class="el" href="search__fast_8cpp_source.html#l00186">CVC3::SearchEngineFast::checkSAT()</a>, and <a class="el" href="search__simple_8cpp_source.html#l00126">CVC3::SearchSimple::checkValidMain()</a>.</p> </div> </div> <a class="anchor" id="a7725800ff83f210545f44c6eef346ee2"></a><!-- doxytag: member="CVC3::TheoryCore::incomplete" ref="a7725800ff83f210545f44c6eef346ee2" args="(std::vector< std::string > &reasons)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool TheoryCore::incomplete </td> <td>(</td> <td class="paramtype">std::vector< std::string > & </td> <td class="paramname"><em>reasons</em></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Check if the branch is incomplete, and return the reasons (strings) </p> <p>Definition at line <a class="el" href="theory__core_8cpp_source.html#l03528">3528</a> of file <a class="el" href="theory__core_8cpp_source.html">theory_core.cpp</a>.</p> <p>References <a class="el" href="cdmap_8h_source.html#l00257">CVC3::CDMap< Key, Data, HashFcn >::begin()</a>, <a class="el" href="theory__core_8h_source.html#l00091">d_incomplete</a>, <a class="el" href="cdmap_8h_source.html#l00258">CVC3::CDMap< Key, Data, HashFcn >::end()</a>, and <a class="el" href="cdmap_8h_source.html#l00171">CVC3::CDMap< Key, Data, HashFcn >::size()</a>.</p> </div> </div> <a class="anchor" id="ade1177fbf32e95b9433eb608c82857d7"></a><!-- doxytag: member="CVC3::TheoryCore::registerAtom" ref="ade1177fbf32e95b9433eb608c82857d7" args="(const Expr &e, const Theorem &thm)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void TheoryCore::registerAtom </td> <td>(</td> <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> & </td> <td class="paramname"><em>e</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>thm</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Register an atomic formula of interest. </p> <p>If e or its negation is later deduced, we will add the implied literal to d_impliedLiterals </p> <p>Reimplemented from <a class="el" href="group__Theory__API.html#gafb1431aa8258f6663ad948ebb08e5330">CVC3::Theory</a>.</p> <p>Definition at line <a class="el" href="theory__core_8cpp_source.html#l03541">3541</a> of file <a class="el" href="theory__core_8cpp_source.html">theory_core.cpp</a>.</p> <p>References <a class="el" href="theory_8h_source.html#l00069">CVC3::Theory::d_commonRules</a>, <a class="el" href="theory__core_8h_source.html#l00168">d_inRegisterAtom</a>, <a class="el" href="theory__core_8h_source.html#l00099">d_termTheorems</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="hash__map_8h_source.html#l00257">Hash::hash_map< _Key, _Data, _HashFcn, _EqualKey >::end()</a>, <a class="el" href="hash__map_8h_source.html#l00171">Hash::hash_map< _Key, _Data, _HashFcn, _EqualKey >::find()</a>, <a class="el" href="theorem_8cpp_source.html#l00246">CVC3::Theorem::getRHS()</a>, <a class="el" href="classCVC3_1_1CommonProofRules.html#a11b56754024b56844336954cf789a63a">CVC3::CommonProofRules::iffFalseElim()</a>, <a class="el" href="classCVC3_1_1CommonProofRules.html#ad2edb920405666bf6e9d21ae496ff6b3">CVC3::CommonProofRules::iffTrueElim()</a>, <a class="el" href="expr_8h_source.html#l00398">CVC3::Expr::isAbsAtomicFormula()</a>, <a class="el" href="expr_8h_source.html#l00419">CVC3::Expr::isEq()</a>, <a class="el" href="expr_8h_source.html#l00355">CVC3::Expr::isFalse()</a>, <a class="el" href="expr_8h_source.html#l01378">CVC3::Expr::isRegisteredAtom()</a>, <a class="el" href="expr_8h_source.html#l00356">CVC3::Expr::isTrue()</a>, <a class="el" href="theory__core_8h_source.html#l00259">LOW</a>, <a class="el" href="theory__core_8cpp_source.html#l00121">processFactQueue()</a>, <a class="el" href="theory__core_8cpp_source.html#l00509">setFindLiteral()</a>, <a class="el" href="expr_8h_source.html#l01528">CVC3::Expr::setRegisteredAtom()</a>, <a class="el" href="theory__core_8cpp_source.html#l00269">setupSubFormulas()</a>, <a class="el" href="theory__core_8cpp_source.html#l00184">simplify()</a>, and <a class="el" href="theory_8cpp_source.html#l00252">CVC3::Theory::theoryOf()</a>.</p> <p>Referenced by <a class="el" href="theory_8cpp_source.html#l00091">CVC3::Theory::registerAtom()</a>, and <a class="el" href="search__sat_8cpp_source.html#l01002">CVC3::SearchSat::registerAtom()</a>.</p> </div> </div> <a class="anchor" id="a464a49882cbd94a3c48428ed60d3a365"></a><!-- doxytag: member="CVC3::TheoryCore::getImpliedLiteral" ref="a464a49882cbd94a3c48428ed60d3a365" args="(void)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> TheoryCore::getImpliedLiteral </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Return the next implied literal (NULL <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> if none) </p> <p>Definition at line <a class="el" href="theory__core_8cpp_source.html#l03571">3571</a> of file <a class="el" href="theory__core_8cpp_source.html">theory_core.cpp</a>.</p> <p>References <a class="el" href="theory__core_8h_source.html#l00186">d_impliedLiterals</a>, <a class="el" href="theory__core_8h_source.html#l00189">d_impliedLiteralsIdx</a>, and <a class="el" href="cdlist_8h_source.html#l00064">CVC3::CDList< T >::size()</a>.</p> <p>Referenced by <a class="el" href="search__impl__base_8h_source.html#l00202">CVC3::SearchImplBase::getImpliedLiteral()</a>.</p> </div> </div> <a class="anchor" id="a2f6f4b38fe4582c8f979f35842284b4c"></a><!-- doxytag: member="CVC3::TheoryCore::numImpliedLiterals" ref="a2f6f4b38fe4582c8f979f35842284b4c" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">unsigned CVC3::TheoryCore::numImpliedLiterals </td> <td>(</td> <td class="paramname"></td><td>)</td> <td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Return total number of implied literals. </p> <p>Definition at line <a class="el" href="theory__core_8h_source.html#l00448">448</a> of file <a class="el" href="theory__core_8h_source.html">theory_core.h</a>.</p> <p>References <a class="el" href="theory__core_8h_source.html#l00186">d_impliedLiterals</a>, and <a class="el" href="cdlist_8h_source.html#l00064">CVC3::CDList< T >::size()</a>.</p> </div> </div> <a class="anchor" id="adb97ff20d5c0d9a93d322b347b306f69"></a><!-- doxytag: member="CVC3::TheoryCore::getImpliedLiteralByIndex" ref="adb97ff20d5c0d9a93d322b347b306f69" args="(unsigned index)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> TheoryCore::getImpliedLiteralByIndex </td> <td>(</td> <td class="paramtype">unsigned </td> <td class="paramname"><em>index</em></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Return an implied literal by index. </p> <p>Definition at line <a class="el" href="theory__core_8cpp_source.html#l03582">3582</a> of file <a class="el" href="theory__core_8cpp_source.html">theory_core.cpp</a>.</p> <p>References <a class="el" href="theory__core_8h_source.html#l00186">d_impliedLiterals</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, and <a class="el" href="cdlist_8h_source.html#l00064">CVC3::CDList< T >::size()</a>.</p> <p>Referenced by <a class="el" href="search__sat_8cpp_source.html#l01010">CVC3::SearchSat::getImpliedLiteral()</a>.</p> </div> </div> <a class="anchor" id="a6f367b1f413d7f1275e72381724ca148"></a><!-- doxytag: member="CVC3::TheoryCore::parseExpr" ref="a6f367b1f413d7f1275e72381724ca148" args="(const Expr &e)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCVC3_1_1Expr.html">Expr</a> TheoryCore::parseExpr </td> <td>(</td> <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> & </td> <td class="paramname"><em>e</em></td><td>)</td> <td><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Parse the generic expression. </p> <p>This method should be used in <a class="el" href="classCVC3_1_1TheoryCore.html#a0cf4d5c76db5be87a848d694adff4dfe" title="Theory-specific parsing implemented by the DP.">parseExprOp()</a> for recursive calls to subexpressions, and is the method called by the command processor. </p> <p>Reimplemented from <a class="el" href="classCVC3_1_1Theory.html#abd5a64ee867dda0c216a04e9fc7fbd6c">CVC3::Theory</a>.</p> <p>Definition at line <a class="el" href="theory__core_8cpp_source.html#l03589">3589</a> of file <a class="el" href="theory__core_8cpp_source.html">theory_core.cpp</a>.</p> <p>References <a class="el" href="expr_8h_source.html#l01201">CVC3::Expr::arity()</a>, <a class="el" href="expr_8h_source.html#l01211">CVC3::Expr::begin()</a>, <a class="el" href="expr__map_8h_source.html#l00175">CVC3::ExprMap< Data >::clear()</a>, <a class="el" href="theory__core_8h_source.html#l00206">d_assignment</a>, <a class="el" href="theory__core_8h_source.html#l00111">d_boundVarMap</a>, <a class="el" href="theory__core_8h_source.html#l00109">d_boundVarStack</a>, <a class="el" href="theory__core_8h_source.html#l00120">d_parseCache</a>, <a class="el" href="theory__core_8h_source.html#l00114">d_parseCacheTop</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="hash__map_8h_source.html#l00257">Hash::hash_map< _Key, _Data, _HashFcn, _EqualKey >::end()</a>, <a class="el" href="expr_8h_source.html#l01217">CVC3::Expr::end()</a>, <a class="el" href="expr__map_8h_source.html#l00191">CVC3::ExprMap< Data >::end()</a>, <a class="el" href="hash__map_8h_source.html#l00197">Hash::hash_map< _Key, _Data, _HashFcn, _EqualKey >::erase()</a>, <a class="el" href="debug_8h_source.html#l00037">FatalAssert</a>, <a class="el" href="hash__map_8h_source.html#l00171">Hash::hash_map< _Key, _Data, _HashFcn, _EqualKey >::find()</a>, <a class="el" href="expr__map_8h_source.html#l00194">CVC3::ExprMap< Data >::find()</a>, <a class="el" href="theory_8h_source.html#l00090">CVC3::Theory::getEM()</a>, <a class="el" href="expr__manager_8cpp_source.html#l00412">CVC3::ExprManager::getKind()</a>, <a class="el" href="expr_8h_source.html#l01168">CVC3::Expr::getKind()</a>, <a class="el" href="expr_8h_source.html#l01196">CVC3::Expr::getOpKind()</a>, <a class="el" href="expr_8h_source.html#l01055">CVC3::Expr::getString()</a>, <a class="el" href="expr_8h_source.html#l01259">CVC3::Expr::getType()</a>, <a class="el" href="theory_8cpp_source.html#l00247">CVC3::Theory::hasTheory()</a>, <a class="el" href="kinds_8h_source.html#l00046">ID</a>, <a class="el" href="expr_8h_source.html#l01014">CVC3::Expr::isApply()</a>, <a class="el" href="expr_8h_source.html#l01223">CVC3::Expr::isNull()</a>, <a class="el" href="kinds_8h_source.html#l00229">LAMBDA</a>, <a class="el" href="expr_8h_source.html#l01178">CVC3::Expr::mkOp()</a>, <a class="el" href="kinds_8h_source.html#l00032">NULL_KIND</a>, <a class="el" href="theory_8h_source.html#l00292">CVC3::Theory::parseExprOp()</a>, <a class="el" href="kinds_8h_source.html#l00044">RAW_LIST</a>, <a class="el" href="theory_8cpp_source.html#l00887">CVC3::Theory::resolveID()</a>, <a class="el" href="kinds_8h_source.html#l00038">STRING_EXPR</a>, <a class="el" href="theory_8cpp_source.html#l00252">CVC3::Theory::theoryOf()</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p> <p>Referenced by <a class="el" href="theory_8cpp_source.html#l00519">CVC3::Theory::parseExpr()</a>, <a class="el" href="theory__core_8cpp_source.html#l01724">parseExprOp()</a>, and <a class="el" href="theory__core_8h_source.html#l00461">parseExprTop()</a>.</p> </div> </div> <a class="anchor" id="ac173889ba81d910884901b3fa32e600c"></a><!-- doxytag: member="CVC3::TheoryCore::parseExprTop" ref="ac173889ba81d910884901b3fa32e600c" args="(const Expr &e)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCVC3_1_1Expr.html">Expr</a> CVC3::TheoryCore::parseExprTop </td> <td>(</td> <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> & </td> <td class="paramname"><em>e</em></td><td>)</td> <td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Top-level call to parseExpr, clears the bound variable stack. </p> <p>Use it in <a class="el" href="classCVC3_1_1VCL.html">VCL</a> instead of <a class="el" href="classCVC3_1_1TheoryCore.html#a6f367b1f413d7f1275e72381724ca148" title="Parse the generic expression.">parseExpr()</a>. </p> <p>Definition at line <a class="el" href="theory__core_8h_source.html#l00461">461</a> of file <a class="el" href="theory__core_8h_source.html">theory_core.h</a>.</p> <p>References <a class="el" href="theory__core_8h_source.html#l00109">d_boundVarStack</a>, <a class="el" href="theory__core_8h_source.html#l00120">d_parseCache</a>, <a class="el" href="theory__core_8h_source.html#l00114">d_parseCacheTop</a>, and <a class="el" href="theory__core_8cpp_source.html#l03589">parseExpr()</a>.</p> </div> </div> <a class="anchor" id="a584ebdaddb7e1a51b1740277a0b7098d"></a><!-- doxytag: member="CVC3::TheoryCore::assignValue" ref="a584ebdaddb7e1a51b1740277a0b7098d" args="(const Expr &t, const Expr &val)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void TheoryCore::assignValue </td> <td>(</td> <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> & </td> <td class="paramname"><em>t</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> & </td> <td class="paramname"><em>val</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Assign t a concrete value val. Used in model generation. </p> <p>Reimplemented from <a class="el" href="classCVC3_1_1Theory.html#a917b117d28514f486b296568fcd1cfd1">CVC3::Theory</a>.</p> <p>Definition at line <a class="el" href="theory__core_8cpp_source.html#l03713">3713</a> of file <a class="el" href="theory__core_8cpp_source.html">theory_core.cpp</a>.</p> <p>References <a class="el" href="classCVC3_1_1TheoryCore_1_1CoreSatAPI.html#ac56278526add1e4e1a92964a5db037bf">CVC3::TheoryCore::CoreSatAPI::addAssumption()</a>, <a class="el" href="theory__core_8cpp_source.html#l03468">addFact()</a>, <a class="el" href="expr__map_8h_source.html#l00308">CVC3::ExprHashMap< Data >::count()</a>, <a class="el" href="theory__core_8h_source.html#l00240">d_coreSatAPI</a>, <a class="el" href="theory__core_8h_source.html#l00136">d_varAssignments</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="expr_8h_source.html#l00929">CVC3::Expr::eqExpr()</a>, <a class="el" href="theory_8cpp_source.html#l00310">CVC3::Theory::find()</a>, <a class="el" href="expr_8h_source.html#l01259">CVC3::Expr::getType()</a>, <a class="el" href="expr_8h_source.html#l00965">CVC3::Expr::iffExpr()</a>, <a class="el" href="type_8h_source.html#l00060">CVC3::Type::isBool()</a>, <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>, and <a class="el" href="theory_8h_source.html#l00681">CVC3::Theory::transitivityRule()</a>.</p> <p>Referenced by <a class="el" href="theory_8cpp_source.html#l00162">CVC3::Theory::assignValue()</a>, <a class="el" href="theory__core_8cpp_source.html#l03862">buildModel()</a>, <a class="el" href="theory__core_8cpp_source.html#l03954">collectModelValues()</a>, and <a class="el" href="theory__core_8cpp_source.html#l03449">computeModelBasic()</a>.</p> </div> </div> <a class="anchor" id="a1a5505333dc3aea609553ab72f509205"></a><!-- doxytag: member="CVC3::TheoryCore::assignValue" ref="a1a5505333dc3aea609553ab72f509205" args="(const Theorem &thm)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void TheoryCore::assignValue </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><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Record a derived assignment to a variable (LHS). </p> <p>Reimplemented from <a class="el" href="classCVC3_1_1Theory.html#a4a9cda0b7c7b2fd0874e7d7b9819a68f">CVC3::Theory</a>.</p> <p>Definition at line <a class="el" href="theory__core_8cpp_source.html#l03734">3734</a> of file <a class="el" href="theory__core_8cpp_source.html">theory_core.cpp</a>.</p> <p>References <a class="el" href="theory__core_8cpp_source.html#l03468">addFact()</a>, <a class="el" href="expr__map_8h_source.html#l00308">CVC3::ExprHashMap< Data >::count()</a>, <a class="el" href="theory__core_8h_source.html#l00136">d_varAssignments</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="theory_8cpp_source.html#l00310">CVC3::Theory::find()</a>, <a class="el" href="theorem_8cpp_source.html#l00230">CVC3::Theorem::getExpr()</a>, <a class="el" href="theorem_8cpp_source.html#l00240">CVC3::Theorem::getLHS()</a>, <a class="el" href="theorem_8cpp_source.html#l00246">CVC3::Theorem::getRHS()</a>, <a class="el" href="theorem_8cpp_source.html#l00224">CVC3::Theorem::isRewrite()</a>, <a class="el" href="theory_8h_source.html#l00677">CVC3::Theory::symmetryRule()</a>, <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>, <a class="el" href="theorem_8h_source.html#l00404">CVC3::Theorem::toString()</a>, and <a class="el" href="theory_8h_source.html#l00681">CVC3::Theory::transitivityRule()</a>.</p> </div> </div> <a class="anchor" id="ab810c8fdffa082334e4aa840d1249a39"></a><!-- doxytag: member="CVC3::TheoryCore::addToVarDB" ref="ab810c8fdffa082334e4aa840d1249a39" args="(const Expr &e)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void TheoryCore::addToVarDB </td> <td>(</td> <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> & </td> <td class="paramname"><em>e</em></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Adds expression to var database. </p> <p>Definition at line <a class="el" href="theory__core_8cpp_source.html#l03756">3756</a> of file <a class="el" href="theory__core_8cpp_source.html">theory_core.cpp</a>.</p> <p>References <a class="el" href="theory__core_8h_source.html#l00105">d_vars</a>, and <a class="el" href="kinds_8h_source.html#l00099">TRACE</a>.</p> <p>Referenced by <a class="el" href="theory_8cpp_source.html#l00647">CVC3::Theory::newFunction()</a>, <a class="el" href="theory_8cpp_source.html#l00569">CVC3::Theory::newVar()</a>, and <a class="el" href="theory_8cpp_source.html#l00935">CVC3::Theory::renameExpr()</a>.</p> </div> </div> <a class="anchor" id="a21441c74132e9fcfb53d2b33bd8c622a"></a><!-- doxytag: member="CVC3::TheoryCore::collectBasicVars" ref="a21441c74132e9fcfb53d2b33bd8c622a" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void TheoryCore::collectBasicVars </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Split compound vars into basic type variables. </p> <p>The results are saved in d_basicModelVars and d_simplifiedModelVars. Also, add new basic vars as shared terms whenever their type belongs to a different theory than the term itself. </p> <p>Definition at line <a class="el" href="theory__core_8cpp_source.html#l03763">3763</a> of file <a class="el" href="theory__core_8cpp_source.html">theory_core.cpp</a>.</p> <p>References <a class="el" href="theory_8h_source.html#l00127">CVC3::Theory::addSharedTerm()</a>, <a class="el" href="expr__map_8h_source.html#l00310">CVC3::ExprHashMap< Data >::clear()</a>, <a class="el" href="expr__map_8h_source.html#l00308">CVC3::ExprHashMap< Data >::count()</a>, <a class="el" href="theory__core_8h_source.html#l00138">d_basicModelVars</a>, <a class="el" href="theory__core_8h_source.html#l00145">d_simplifiedModelVars</a>, <a class="el" href="theory__core_8h_source.html#l00136">d_varAssignments</a>, <a class="el" href="theory__core_8h_source.html#l00134">d_varModelMap</a>, <a class="el" href="theory__core_8h_source.html#l00105">d_vars</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="theory_8cpp_source.html#l00310">CVC3::Theory::find()</a>, <a class="el" href="theory_8cpp_source.html#l00383">CVC3::Theory::getBaseType()</a>, <a class="el" href="theory_8h_source.html#l00090">CVC3::Theory::getEM()</a>, <a class="el" href="theorem_8cpp_source.html#l00230">CVC3::Theorem::getExpr()</a>, <a class="el" href="theory_8cpp_source.html#l00527">CVC3::Theory::getModelTerm()</a>, <a class="el" href="theorem_8cpp_source.html#l00246">CVC3::Theorem::getRHS()</a>, <a class="el" href="kinds_8h_source.html#l00044">RAW_LIST</a>, <a class="el" href="theory_8cpp_source.html#l00252">CVC3::Theory::theoryOf()</a>, <a class="el" href="kinds_8h_source.html#l00099">TRACE</a>, and <a class="el" href="debug_8h_source.html#l00414">TRACE_MSG</a>.</p> <p>Referenced by <a class="el" href="search_8cpp_source.html#l00091">CVC3::SearchEngine::getConcreteModel()</a>, and <a class="el" href="search_8cpp_source.html#l00057">CVC3::SearchEngine::tryModelGeneration()</a>.</p> </div> </div> <a class="anchor" id="a6b5123c9d923a076385aa83a0fa37cf5"></a><!-- doxytag: member="CVC3::TheoryCore::buildModel" ref="a6b5123c9d923a076385aa83a0fa37cf5" args="(ExprMap< Expr > &m)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void TheoryCore::buildModel </td> <td>(</td> <td class="paramtype"><a class="el" href="classCVC3_1_1ExprMap.html">ExprMap</a>< <a class="el" href="classCVC3_1_1Expr.html">Expr</a> > & </td> <td class="paramname"><em>m</em></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Calls theory specific computeModel, results are placed in map. </p> <p>Definition at line <a class="el" href="theory__core_8cpp_source.html#l03862">3862</a> of file <a class="el" href="theory__core_8cpp_source.html">theory_core.cpp</a>.</p> <p>References <a class="el" href="theory__core_8cpp_source.html#l03713">assignValue()</a>, <a class="el" href="theory__core_8cpp_source.html#l03954">collectModelValues()</a>, <a class="el" href="expr__map_8h_source.html#l00308">CVC3::ExprHashMap< Data >::count()</a>, <a class="el" href="theory__core_8h_source.html#l00138">d_basicModelVars</a>, <a class="el" href="theory_8h_source.html#l00067">CVC3::Theory::d_em</a>, <a class="el" href="theory__core_8h_source.html#l00145">d_simplifiedModelVars</a>, <a class="el" href="theory__core_8h_source.html#l00125">d_theories</a>, <a class="el" href="theory__core_8h_source.html#l00136">d_varAssignments</a>, <a class="el" href="theory__core_8h_source.html#l00105">d_vars</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="expr__map_8h_source.html#l00326">CVC3::ExprHashMap< Data >::end()</a>, <a class="el" href="expr__map_8h_source.html#l00329">CVC3::ExprHashMap< Data >::find()</a>, <a class="el" href="theory_8cpp_source.html#l00310">CVC3::Theory::find()</a>, <a class="el" href="theory_8cpp_source.html#l00383">CVC3::Theory::getBaseType()</a>, <a class="el" href="theorem_8cpp_source.html#l00274">CVC3::Theorem::getLeafAssumptions()</a>, <a class="el" href="theorem_8cpp_source.html#l00240">CVC3::Theorem::getLHS()</a>, <a class="el" href="theory_8h_source.html#l00099">CVC3::Theory::getName()</a>, <a class="el" href="theory_8cpp_source.html#l00241">CVC3::Theory::getNumTheories()</a>, <a class="el" href="theorem_8cpp_source.html#l00246">CVC3::Theorem::getRHS()</a>, <a class="el" href="theory__core_8h_source.html#l00422">inconsistent()</a>, <a class="el" href="theory__core_8h_source.html#l00425">inconsistentThm()</a>, <a class="el" href="theorem_8h_source.html#l00164">CVC3::Theorem::isNull()</a>, <a class="el" href="kinds_8h_source.html#l00044">RAW_LIST</a>, <a class="el" href="theory_8cpp_source.html#l00252">CVC3::Theory::theoryOf()</a>, <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>, <a class="el" href="kinds_8h_source.html#l00099">TRACE</a>, <a class="el" href="debug_8h_source.html#l00414">TRACE_MSG</a>, and <a class="el" href="theory_8h_source.html#l00681">CVC3::Theory::transitivityRule()</a>.</p> <p>Referenced by <a class="el" href="search_8cpp_source.html#l00091">CVC3::SearchEngine::getConcreteModel()</a>, and <a class="el" href="search_8cpp_source.html#l00057">CVC3::SearchEngine::tryModelGeneration()</a>.</p> </div> </div> <a class="anchor" id="a5cce3a2fa78a9aa11b7d8e0668434f95"></a><!-- doxytag: member="CVC3::TheoryCore::buildModel" ref="a5cce3a2fa78a9aa11b7d8e0668434f95" args="(Theorem &thm)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool TheoryCore::buildModel </td> <td>(</td> <td class="paramtype"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> & </td> <td class="paramname"><em>thm</em></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="theory__core_8cpp_source.html#l03817">3817</a> of file <a class="el" href="theory__core_8cpp_source.html">theory_core.cpp</a>.</p> <p>References <a class="el" href="theory__core_8h_source.html#l00138">d_basicModelVars</a>, <a class="el" href="theory__core_8h_source.html#l00145">d_simplifiedModelVars</a>, <a class="el" href="theory__core_8h_source.html#l00125">d_theories</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="theory_8cpp_source.html#l00310">CVC3::Theory::find()</a>, <a class="el" href="theory_8cpp_source.html#l00383">CVC3::Theory::getBaseType()</a>, <a class="el" href="theory_8h_source.html#l00099">CVC3::Theory::getName()</a>, <a class="el" href="theory_8cpp_source.html#l00241">CVC3::Theory::getNumTheories()</a>, <a class="el" href="theorem_8cpp_source.html#l00246">CVC3::Theorem::getRHS()</a>, <a class="el" href="theory__core_8h_source.html#l00422">inconsistent()</a>, <a class="el" href="theory__core_8h_source.html#l00425">inconsistentThm()</a>, <a class="el" href="theory_8cpp_source.html#l00252">CVC3::Theory::theoryOf()</a>, <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>, and <a class="el" href="kinds_8h_source.html#l00099">TRACE</a>.</p> </div> </div> <a class="anchor" id="a48ba4c9731b4be8afdeafdf3eddeb919"></a><!-- doxytag: member="CVC3::TheoryCore::collectModelValues" ref="a48ba4c9731b4be8afdeafdf3eddeb919" args="(const Expr &e, ExprMap< Expr > &m)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void TheoryCore::collectModelValues </td> <td>(</td> <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> & </td> <td class="paramname"><em>e</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classCVC3_1_1ExprMap.html">ExprMap</a>< <a class="el" href="classCVC3_1_1Expr.html">Expr</a> > & </td> <td class="paramname"><em>m</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Recursively build a compound-type variable assignment for e. </p> <p>Not all theories may implement aggregation of compound values. If a compound variable is not assigned by a theory, add the more primitive variable assignments to 'm'.</p> <p>Some variables may simplify to something else (simplifiedVars map). INVARIANT: e is always simplified (it's not in simplifiedVars map). Also, if v simplifies to e, and e is assigned, then v must be assigned. </p> <p>Definition at line <a class="el" href="theory__core_8cpp_source.html#l03954">3954</a> of file <a class="el" href="theory__core_8cpp_source.html">theory_core.cpp</a>.</p> <p>References <a class="el" href="theory__core_8cpp_source.html#l03713">assignValue()</a>, <a class="el" href="theory_8h_source.html#l00334">CVC3::Theory::computeModel()</a>, <a class="el" href="expr__map_8h_source.html#l00308">CVC3::ExprHashMap< Data >::count()</a>, <a class="el" href="theory__core_8h_source.html#l00145">d_simplifiedModelVars</a>, <a class="el" href="theory__core_8h_source.html#l00136">d_varAssignments</a>, <a class="el" href="theory__core_8h_source.html#l00134">d_varModelMap</a>, <a class="el" href="expr__map_8h_source.html#l00326">CVC3::ExprHashMap< Data >::end()</a>, <a class="el" href="expr__map_8h_source.html#l00329">CVC3::ExprHashMap< Data >::find()</a>, <a class="el" href="theory_8cpp_source.html#l00383">CVC3::Theory::getBaseType()</a>, <a class="el" href="theory_8h_source.html#l00090">CVC3::Theory::getEM()</a>, <a class="el" href="theorem_8cpp_source.html#l00230">CVC3::Theorem::getExpr()</a>, <a class="el" href="theory__core_8cpp_source.html#l00595">getModelValue()</a>, <a class="el" href="theory_8h_source.html#l00099">CVC3::Theory::getName()</a>, <a class="el" href="theorem_8cpp_source.html#l00246">CVC3::Theorem::getRHS()</a>, <a class="el" href="debug_8h_source.html#l00406">IF_DEBUG</a>, <a class="el" href="kinds_8h_source.html#l00044">RAW_LIST</a>, <a class="el" href="theory_8h_source.html#l00673">CVC3::Theory::reflexivityRule()</a>, <a class="el" href="theory_8cpp_source.html#l00252">CVC3::Theory::theoryOf()</a>, <a class="el" href="kinds_8h_source.html#l00099">TRACE</a>, and <a class="el" href="theory_8h_source.html#l00681">CVC3::Theory::transitivityRule()</a>.</p> <p>Referenced by <a class="el" href="theory__core_8cpp_source.html#l03862">buildModel()</a>.</p> </div> </div> <a class="anchor" id="a02c9e1bf2f581de6b8f8a8da5cbb5318"></a><!-- doxytag: member="CVC3::TheoryCore::setResourceLimit" ref="a02c9e1bf2f581de6b8f8a8da5cbb5318" args="(unsigned limit)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void CVC3::TheoryCore::setResourceLimit </td> <td>(</td> <td class="paramtype">unsigned </td> <td class="paramname"><em>limit</em></td><td>)</td> <td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Set the resource limit (0==unlimited). </p> <p>Definition at line <a class="el" href="theory__core_8h_source.html#l00488">488</a> of file <a class="el" href="theory__core_8h_source.html">theory_core.h</a>.</p> <p>References <a class="el" href="theory__core_8h_source.html#l00157">d_resourceLimit</a>.</p> </div> </div> <a class="anchor" id="ae5f8dd0508305fac921b9475376c4623"></a><!-- doxytag: member="CVC3::TheoryCore::getResourceLimit" ref="ae5f8dd0508305fac921b9475376c4623" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">unsigned CVC3::TheoryCore::getResourceLimit </td> <td>(</td> <td class="paramname"></td><td>)</td> <td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Get the resource limit. </p> <p>Definition at line <a class="el" href="theory__core_8h_source.html#l00490">490</a> of file <a class="el" href="theory__core_8h_source.html">theory_core.h</a>.</p> <p>References <a class="el" href="theory__core_8h_source.html#l00157">d_resourceLimit</a>.</p> </div> </div> <a class="anchor" id="abf168c0ef6bed9274e49dc2c0576312e"></a><!-- doxytag: member="CVC3::TheoryCore::outOfResources" ref="abf168c0ef6bed9274e49dc2c0576312e" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool CVC3::TheoryCore::outOfResources </td> <td>(</td> <td class="paramname"></td><td>)</td> <td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Return true if resources are exhausted. </p> <p>Definition at line <a class="el" href="theory__core_8h_source.html#l00492">492</a> of file <a class="el" href="theory__core_8h_source.html">theory_core.h</a>.</p> <p>References <a class="el" href="theory__core_8h_source.html#l00157">d_resourceLimit</a>.</p> <p>Referenced by <a class="el" href="theory__core_8cpp_source.html#l03468">addFact()</a>, <a class="el" href="search__fast_8cpp_source.html#l00186">CVC3::SearchEngineFast::checkSAT()</a>, and <a class="el" href="theory__core_8cpp_source.html#l04213">enqueueFact()</a>.</p> </div> </div> <a class="anchor" id="ac5b53deab8186f2c2b48e9916f09801e"></a><!-- doxytag: member="CVC3::TheoryCore::initTimeLimit" ref="ac5b53deab8186f2c2b48e9916f09801e" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void TheoryCore::initTimeLimit </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Initialize base time used for !setTimeLimit. </p> <p>Definition at line <a class="el" href="theory__core_8cpp_source.html#l04058">4058</a> of file <a class="el" href="theory__core_8cpp_source.html">theory_core.cpp</a>.</p> <p>References <a class="el" href="theory__core_8h_source.html#l00163">d_timeBase</a>.</p> <p>Referenced by <a class="el" href="theory__core_8cpp_source.html#l04053">setTimeLimit()</a>.</p> </div> </div> <a class="anchor" id="a18c6f732488f868d08fb2a0516c2ef33"></a><!-- doxytag: member="CVC3::TheoryCore::setTimeLimit" ref="a18c6f732488f868d08fb2a0516c2ef33" args="(unsigned limit)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void TheoryCore::setTimeLimit </td> <td>(</td> <td class="paramtype">unsigned </td> <td class="paramname"><em>limit</em></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Set the time limit in seconds (0==unlimited). </p> <p>Definition at line <a class="el" href="theory__core_8cpp_source.html#l04053">4053</a> of file <a class="el" href="theory__core_8cpp_source.html">theory_core.cpp</a>.</p> <p>References <a class="el" href="theory__core_8h_source.html#l00164">d_timeLimit</a>, and <a class="el" href="theory__core_8cpp_source.html#l04058">initTimeLimit()</a>.</p> </div> </div> <a class="anchor" id="a586e77e855946fd0b5f541ec06f7decd"></a><!-- doxytag: member="CVC3::TheoryCore::rewriteLiteral" ref="a586e77e855946fd0b5f541ec06f7decd" args="(const Expr &e)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> TheoryCore::rewriteLiteral </td> <td>(</td> <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> & </td> <td class="paramname"><em>e</em></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Called by search engine. </p> <p>Definition at line <a class="el" href="theory__core_8cpp_source.html#l04029">4029</a> of file <a class="el" href="theory__core_8cpp_source.html">theory_core.cpp</a>.</p> <p>References <a class="el" href="theory_8h_source.html#l00069">CVC3::Theory::d_commonRules</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="theory_8cpp_source.html#l00383">CVC3::Theory::getBaseType()</a>, <a class="el" href="type_8h_source.html#l00052">CVC3::Type::getExpr()</a>, <a class="el" href="classCVC3_1_1CommonProofRules.html#af38f25446a561384c3de66392c4d3544">CVC3::CommonProofRules::iffContrapositive()</a>, <a class="el" href="expr_8h_source.html#l00406">CVC3::Expr::isAbsLiteral()</a>, <a class="el" href="expr_8h_source.html#l00420">CVC3::Expr::isNot()</a>, <a class="el" href="theory_8h_source.html#l00365">CVC3::Theory::rewriteAtomic()</a>, <a class="el" href="theory_8cpp_source.html#l00252">CVC3::Theory::theoryOf()</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p> <p>Referenced by <a class="el" href="search__impl__base_8cpp_source.html#l00804">CVC3::SearchImplBase::replaceITE()</a>.</p> </div> </div> <a class="anchor" id="a3875119ce8336e4bb67a5cc6e771f779"></a><!-- doxytag: member="CVC3::TheoryCore::getAssignment" ref="a3875119ce8336e4bb67a5cc6e771f779" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCVC3_1_1Expr.html">Expr</a> TheoryCore::getAssignment </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Get the value of all :named terms. </p> <p>Definition at line <a class="el" href="theory__core_8cpp_source.html#l04320">4320</a> of file <a class="el" href="theory__core_8cpp_source.html">theory_core.cpp</a>.</p> <p>References <a class="el" href="theory__core_8h_source.html#l00206">d_assignment</a>, <a class="el" href="theory__core_8h_source.html#l00078">d_exprTrans</a>, <a class="el" href="theory_8h_source.html#l00068">CVC3::Theory::d_theoryCore</a>, <a class="el" href="theory_8h_source.html#l00090">CVC3::Theory::getEM()</a>, <a class="el" href="theorem_8cpp_source.html#l00246">CVC3::Theorem::getRHS()</a>, <a class="el" href="expr__transform_8cpp_source.html#l00079">CVC3::ExprTransform::preprocess()</a>, <a class="el" href="kinds_8h_source.html#l00044">RAW_LIST</a>, and <a class="el" href="theory__core_8cpp_source.html#l00184">simplify()</a>.</p> </div> </div> <a class="anchor" id="a07e62d88f43bc14e3f0fe4805bd99356"></a><!-- doxytag: member="CVC3::TheoryCore::getValue" ref="a07e62d88f43bc14e3f0fe4805bd99356" args="(Expr e)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCVC3_1_1Expr.html">Expr</a> TheoryCore::getValue </td> <td>(</td> <td class="paramtype"><a class="el" href="classCVC3_1_1Expr.html">Expr</a> </td> <td class="paramname"><em>e</em></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Get the value of an arbitrary formula or term. </p> <p>Definition at line <a class="el" href="theory__core_8cpp_source.html#l04333">4333</a> of file <a class="el" href="theory__core_8cpp_source.html">theory_core.cpp</a>.</p> <p>References <a class="el" href="theory__core_8h_source.html#l00078">d_exprTrans</a>, <a class="el" href="theory_8h_source.html#l00068">CVC3::Theory::d_theoryCore</a>, <a class="el" href="theorem_8cpp_source.html#l00246">CVC3::Theorem::getRHS()</a>, <a class="el" href="expr__transform_8cpp_source.html#l00079">CVC3::ExprTransform::preprocess()</a>, and <a class="el" href="theory__core_8cpp_source.html#l00184">simplify()</a>.</p> </div> </div> <a class="anchor" id="aaab0bd52237688848681cdb62c74f14c"></a><!-- doxytag: member="CVC3::TheoryCore::assertEqualities" ref="aaab0bd52237688848681cdb62c74f14c" args="(const Theorem &e)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void TheoryCore::assertEqualities </td> <td>(</td> <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> & </td> <td class="paramname"><em>e</em></td><td>)</td> <td><code> [private, virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Assert a system of equations (1 or more). </p> <p>e is either a single equation, or a conjunction of equations</p> <p>Invariants:</p> <ul> <li>The input theorem e is either an equality or a conjunction of equalities;</li> <li>In each equality e1=e2, the RHS e2 i-leaf-simplified;</li> <li>At the time of calling <a class="el" href="classCVC3_1_1TheoryCore.html#a435e2305420c1ed5b2ff1e4758a50dc5">update()</a>, all equalities in the queue are processed by <a class="el" href="classCVC3_1_1TheoryCore.html#a1f662e7f045032350f2a3bccc63a71d6" title="Process a newly derived formula.">assertFormula()</a> and the equivalence classes are merged in the union-find database.</li> </ul> <p>In other words, the entire equality queue is processed "in parallel". </p> <p>Reimplemented from <a class="el" href="classCVC3_1_1Theory.html#a135cfab97004ee025a7840d72b6c4e1d">CVC3::Theory</a>.</p> <p>Definition at line <a class="el" href="theory__core_8cpp_source.html#l04093">4093</a> of file <a class="el" href="theory__core_8cpp_source.html">theory_core.cpp</a>.</p> <p>References <a class="el" href="classCVC3_1_1CommonProofRules.html#a3f3592ac74d0aa0caa3b9224ea7e61f4">CVC3::CommonProofRules::andElim()</a>, <a class="el" href="expr_8h_source.html#l01201">CVC3::Expr::arity()</a>, <a class="el" href="theory__core_8cpp_source.html#l00385">assertFormula()</a>, <a class="el" href="theory_8h_source.html#l00206">CVC3::Theory::checkAssertEqInvariant()</a>, <a class="el" href="theory_8h_source.html#l00069">CVC3::Theory::d_commonRules</a>, <a class="el" href="theory_8h_source.html#l00067">CVC3::Theory::d_em</a>, <a class="el" href="theory__core_8h_source.html#l00089">d_inconsistent</a>, <a class="el" href="theory__core_8h_source.html#l00200">d_notifyEq</a>, <a class="el" href="theory__core_8h_source.html#l00131">d_solver</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="theory_8cpp_source.html#l00310">CVC3::Theory::find()</a>, <a class="el" href="theory_8cpp_source.html#l00357">CVC3::Theory::findReduced()</a>, <a class="el" href="theory__core_8h_source.html#l00348">getCM()</a>, <a class="el" href="expr_8h_source.html#l01247">CVC3::Expr::getEqNext()</a>, <a class="el" href="theorem_8cpp_source.html#l00230">CVC3::Theorem::getExpr()</a>, <a class="el" href="theorem_8cpp_source.html#l00240">CVC3::Theorem::getLHS()</a>, <a class="el" href="expr_8h_source.html#l01254">CVC3::Expr::getNotify()</a>, <a class="el" href="theorem_8cpp_source.html#l00246">CVC3::Theorem::getRHS()</a>, <a class="el" href="debug_8h_source.html#l00406">IF_DEBUG</a>, <a class="el" href="theory__core_8h_source.html#l00435">incomplete()</a>, <a class="el" href="expr__manager_8h_source.html#l00341">CVC3::ExprManager::invalidateSimpCache()</a>, <a class="el" href="expr_8h_source.html#l00421">CVC3::Expr::isAnd()</a>, <a class="el" href="expr_8h_source.html#l00355">CVC3::Expr::isFalse()</a>, <a class="el" href="theorem_8cpp_source.html#l00224">CVC3::Theorem::isRewrite()</a>, <a class="el" href="expr_8h_source.html#l01021">CVC3::Expr::isTerm()</a>, <a class="el" href="theory__core_8cpp_source.html#l00173">processNotify()</a>, <a class="el" href="expr_8h_source.html#l01416">CVC3::Expr::setEqNext()</a>, <a class="el" href="expr_8h_source.html#l01405">CVC3::Expr::setFind()</a>, <a class="el" href="theory__core_8cpp_source.html#l04245">setInconsistent()</a>, <a class="el" href="theory_8h_source.html#l00677">CVC3::Theory::symmetryRule()</a>, <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>, <a class="el" href="kinds_8h_source.html#l00099">TRACE</a>, and <a class="el" href="theory_8h_source.html#l00681">CVC3::Theory::transitivityRule()</a>.</p> <p>Referenced by <a class="el" href="theory_8cpp_source.html#l00142">CVC3::Theory::assertEqualities()</a>.</p> </div> </div> <a class="anchor" id="a1589ba9f082079a4dce4c9125befcf06"></a><!-- doxytag: member="CVC3::TheoryCore::setIncomplete" ref="a1589ba9f082079a4dce4c9125befcf06" args="(const std::string &reason)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void TheoryCore::setIncomplete </td> <td>(</td> <td class="paramtype">const std::string & </td> <td class="paramname"><em>reason</em></td><td>)</td> <td><code> [private, virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Mark the branch as incomplete. </p> <p>Reimplemented from <a class="el" href="classCVC3_1_1Theory.html#a08cc815e21d2972f54f8c1e70ce8ab51">CVC3::Theory</a>.</p> <p>Definition at line <a class="el" href="theory__core_8cpp_source.html#l04180">4180</a> of file <a class="el" href="theory__core_8cpp_source.html">theory_core.cpp</a>.</p> <p>References <a class="el" href="theory__core_8h_source.html#l00091">d_incomplete</a>, and <a class="el" href="cdmap_8h_source.html#l00190">CVC3::CDMap< Key, Data, HashFcn >::insert()</a>.</p> <p>Referenced by <a class="el" href="theory__core_8cpp_source.html#l03468">addFact()</a>, <a class="el" href="theory__core_8cpp_source.html#l04213">enqueueFact()</a>, <a class="el" href="theory_8cpp_source.html#l00112">CVC3::Theory::setIncomplete()</a>, and <a class="el" href="theory__core_8cpp_source.html#l04062">timeLimitReached()</a>.</p> </div> </div> <a class="anchor" id="a69cd86a10c207d95ded425684c5527b9"></a><!-- doxytag: member="CVC3::TheoryCore::typePred" ref="a69cd86a10c207d95ded425684c5527b9" args="(const Expr &e)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> TheoryCore::typePred </td> <td>(</td> <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> & </td> <td class="paramname"><em>e</em></td><td>)</td> <td><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Return a theorem for the type predicate of e. </p> <p>Note: used only by theory_arith </p> <p>Reimplemented from <a class="el" href="classCVC3_1_1Theory.html#a090c2b079f3b90b4f5da3d8606b14d16">CVC3::Theory</a>.</p> <p>Definition at line <a class="el" href="theory__core_8cpp_source.html#l04186">4186</a> of file <a class="el" href="theory__core_8cpp_source.html">theory_core.cpp</a>.</p> <p>References <a class="el" href="theory__core_8h_source.html#l00063">d_rules</a>, and <a class="el" href="classCVC3_1_1CoreProofRules.html#ae4fcd08f795189bb93d76144f77a3862">CVC3::CoreProofRules::typePred()</a>.</p> <p>Referenced by <a class="el" href="theory_8cpp_source.html#l00918">CVC3::Theory::typePred()</a>.</p> </div> </div> <a class="anchor" id="a479141bc26a125b758a2acc6420274f9"></a><!-- doxytag: member="CVC3::TheoryCore::enqueueFact" ref="a479141bc26a125b758a2acc6420274f9" args="(const Theorem &e)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void TheoryCore::enqueueFact </td> <td>(</td> <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> & </td> <td class="paramname"><em>e</em></td><td>)</td> <td><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Enqueue a new fact. </p> <p>not private because used in <a class="el" href="search__fast_8cpp.html">search_fast.cpp</a> </p> <p>Reimplemented from <a class="el" href="classCVC3_1_1Theory.html#a93856c9af82b2c25c51b3c36bafb71f4">CVC3::Theory</a>.</p> <p>Definition at line <a class="el" href="theory__core_8cpp_source.html#l04213">4213</a> of file <a class="el" href="theory__core_8cpp_source.html">theory_core.cpp</a>.</p> <p>References <a class="el" href="theory__core_8h_source.html#l00057">d_cm</a>, <a class="el" href="theory__core_8h_source.html#l00089">d_inconsistent</a>, <a class="el" href="theory__core_8h_source.html#l00084">d_queue</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="theorem_8cpp_source.html#l00230">CVC3::Theorem::getExpr()</a>, <a class="el" href="theorem_8cpp_source.html#l00240">CVC3::Theorem::getLHS()</a>, <a class="el" href="theory__core_8h_source.html#l00334">getResource()</a>, <a class="el" href="theorem_8cpp_source.html#l00246">CVC3::Theorem::getRHS()</a>, <a class="el" href="theorem_8cpp_source.html#l00486">CVC3::Theorem::getScope()</a>, <a class="el" href="cvc__util_8h_source.html#l00046">CVC3::int2string()</a>, <a class="el" href="expr_8h_source.html#l00355">CVC3::Expr::isFalse()</a>, <a class="el" href="theorem_8cpp_source.html#l00224">CVC3::Theorem::isRewrite()</a>, <a class="el" href="theory__core_8h_source.html#l00377">okToEnqueue()</a>, <a class="el" href="theory__core_8h_source.html#l00492">outOfResources()</a>, <a class="el" href="context_8h_source.html#l00404">CVC3::ContextManager::scopeLevel()</a>, <a class="el" href="theory__core_8cpp_source.html#l04180">setIncomplete()</a>, <a class="el" href="theory__core_8cpp_source.html#l04245">setInconsistent()</a>, <a class="el" href="theorem_8h_source.html#l00404">CVC3::Theorem::toString()</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p> <p>Referenced by <a class="el" href="search__impl__base_8cpp_source.html#l00218">CVC3::SearchImplBase::addCNFFact()</a>, <a class="el" href="search__fast_8cpp_source.html#l01445">CVC3::SearchEngineFast::addNonLiteralFact()</a>, <a class="el" href="search__fast_8cpp_source.html#l01050">CVC3::SearchEngineFast::commitFacts()</a>, and <a class="el" href="theory_8cpp_source.html#l00128">CVC3::Theory::enqueueFact()</a>.</p> </div> </div> <a class="anchor" id="a09a7b1c4878f4ce9150fa89d304ca172"></a><!-- doxytag: member="CVC3::TheoryCore::enqueueSE" ref="a09a7b1c4878f4ce9150fa89d304ca172" args="(const Theorem &thm)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void TheoryCore::enqueueSE </td> <td>(</td> <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> & </td> <td class="paramname"><em>e</em></td><td>)</td> <td><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Check if the current context is inconsistent. </p> <p>Reimplemented from <a class="el" href="classCVC3_1_1Theory.html#af833743a1332ba2b84bdc4118a05300f">CVC3::Theory</a>.</p> <p>Definition at line <a class="el" href="theory__core_8cpp_source.html#l00588">588</a> of file <a class="el" href="theory__core_8cpp_source.html">theory_core.cpp</a>.</p> <p>References <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>.</p> <p>Referenced by <a class="el" href="theory_8cpp_source.html#l00134">CVC3::Theory::enqueueSE()</a>.</p> </div> </div> <a class="anchor" id="a4a87431f344c128dc58d5c2bd9206784"></a><!-- doxytag: member="CVC3::TheoryCore::setInconsistent" ref="a4a87431f344c128dc58d5c2bd9206784" args="(const Theorem &e)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void TheoryCore::setInconsistent </td> <td>(</td> <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> & </td> <td class="paramname"><em>e</em></td><td>)</td> <td><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>not private because used in <a class="el" href="search__fast_8cpp.html">search_fast.cpp</a> </p> <p>Reimplemented from <a class="el" href="classCVC3_1_1Theory.html#a89f8e1e02e22ef524c286ce8b87bdea4">CVC3::Theory</a>.</p> <p>Definition at line <a class="el" href="theory__core_8cpp_source.html#l04245">4245</a> of file <a class="el" href="theory__core_8cpp_source.html">theory_core.cpp</a>.</p> <p>References <a class="el" href="theory__core_8h_source.html#l00089">d_inconsistent</a>, <a class="el" href="theory__core_8h_source.html#l00094">d_incThm</a>, <a class="el" href="theory__core_8h_source.html#l00086">d_queueSE</a>, <a class="el" href="theory__core_8h_source.html#l00125">d_theories</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="theory_8h_source.html#l00579">CVC3::Theory::falseExpr()</a>, and <a class="el" href="theorem_8cpp_source.html#l00230">CVC3::Theorem::getExpr()</a>.</p> <p>Referenced by <a class="el" href="theory__core_8cpp_source.html#l04093">assertEqualities()</a>, <a class="el" href="theory__core_8cpp_source.html#l04213">enqueueFact()</a>, <a class="el" href="theory_8cpp_source.html#l00103">CVC3::Theory::setInconsistent()</a>, <a class="el" href="search__fast_8cpp_source.html#l01043">CVC3::SearchEngineFast::setInconsistent()</a>, <a class="el" href="theory__core_8cpp_source.html#l04260">setupTerm()</a>, and <a class="el" href="theory__core_8cpp_source.html#l01141">update()</a>.</p> </div> </div> <a class="anchor" id="afbd6dec08ab7f31031ddc2a97d779bd8"></a><!-- doxytag: member="CVC3::TheoryCore::setupTerm" ref="afbd6dec08ab7f31031ddc2a97d779bd8" args="(const Expr &e, Theory *i, const Theorem &thm)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void TheoryCore::setupTerm </td> <td>(</td> <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> & </td> <td class="paramname"><em>e</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classCVC3_1_1Theory.html">Theory</a> * </td> <td class="paramname"><em>i</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>thm</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Setup additional terms within a theory-specific <a class="el" href="classCVC3_1_1TheoryCore.html#af4468d5d65b78ac9dc4c89c71c7391f6">setup()</a>. </p> <p>not private because used in <a class="el" href="theory__bitvector_8cpp.html">theory_bitvector.cpp</a> </p> <p>Definition at line <a class="el" href="theory__core_8cpp_source.html#l04260">4260</a> of file <a class="el" href="theory__core_8cpp_source.html">theory_core.cpp</a>.</p> <p>References <a class="el" href="theory_8h_source.html#l00127">CVC3::Theory::addSharedTerm()</a>, <a class="el" href="expr_8h_source.html#l01201">CVC3::Expr::arity()</a>, <a class="el" href="theory_8h_source.html#l00350">CVC3::Theory::assertTypePred()</a>, <a class="el" href="theory__core_8h_source.html#l00103">d_predicates</a>, <a class="el" href="theory__core_8h_source.html#l00063">d_rules</a>, <a class="el" href="theory__core_8h_source.html#l00096">d_terms</a>, <a class="el" href="theory__core_8h_source.html#l00099">d_termTheorems</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="type_8h_source.html#l00052">CVC3::Type::getExpr()</a>, <a class="el" href="theorem_8cpp_source.html#l00230">CVC3::Theorem::getExpr()</a>, <a class="el" href="expr_8h_source.html#l01173">CVC3::Expr::getIndex()</a>, <a class="el" href="theorem_8cpp_source.html#l00491">CVC3::Theorem::getQuantLevel()</a>, <a class="el" href="expr_8h_source.html#l01259">CVC3::Expr::getType()</a>, <a class="el" href="expr_8h_source.html#l01232">CVC3::Expr::hasFind()</a>, <a class="el" href="debug_8h_source.html#l00406">IF_DEBUG</a>, <a class="el" href="theory_8h_source.html#l00714">CVC3::Theory::iffMP()</a>, <a class="el" href="expr_8h_source.html#l00406">CVC3::Expr::isAbsLiteral()</a>, <a class="el" href="expr_8h_source.html#l00355">CVC3::Expr::isFalse()</a>, <a class="el" href="expr_8h_source.html#l01386">CVC3::Expr::isStoredPredicate()</a>, <a class="el" href="expr_8h_source.html#l01021">CVC3::Expr::isTerm()</a>, <a class="el" href="expr_8h_source.html#l00356">CVC3::Expr::isTrue()</a>, <a class="el" href="cdlist_8h_source.html#l00066">CVC3::CDList< T >::push_back()</a>, <a class="el" href="theory_8h_source.html#l00673">CVC3::Theory::reflexivityRule()</a>, <a class="el" href="expr_8h_source.html#l01416">CVC3::Expr::setEqNext()</a>, <a class="el" href="expr_8h_source.html#l01405">CVC3::Expr::setFind()</a>, <a class="el" href="theory__core_8cpp_source.html#l04245">setInconsistent()</a>, <a class="el" href="expr_8h_source.html#l01538">CVC3::Expr::setStoredPredicate()</a>, <a class="el" href="theory_8h_source.html#l00172">CVC3::Theory::setup()</a>, <a class="el" href="theory__core_8cpp_source.html#l00184">simplify()</a>, <a class="el" href="theory_8cpp_source.html#l00252">CVC3::Theory::theoryOf()</a>, <a class="el" href="theorem_8h_source.html#l00404">CVC3::Theorem::toString()</a>, <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>, <a class="el" href="kinds_8h_source.html#l00099">TRACE</a>, and <a class="el" href="classCVC3_1_1CoreProofRules.html#ae4fcd08f795189bb93d76144f77a3862">CVC3::CoreProofRules::typePred()</a>.</p> <p>Referenced by <a class="el" href="theory__records_8cpp_source.html#l00508">CVC3::TheoryRecords::setup()</a>, and <a class="el" href="theory__array_8cpp_source.html#l00490">CVC3::TheoryArray::setup()</a>.</p> </div> </div> <hr/><h2>Friends And Related Function Documentation</h2> <a class="anchor" id="abe20cc4b804d6951c09b92aec0085063"></a><!-- doxytag: member="CVC3::TheoryCore::Theory" ref="abe20cc4b804d6951c09b92aec0085063" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">friend class <a class="el" href="classCVC3_1_1Theory.html">Theory</a><code> [friend]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="theory__core_8h_source.html#l00054">54</a> of file <a class="el" href="theory__core_8h_source.html">theory_core.h</a>.</p> </div> </div> <a class="anchor" id="a6b4c0f704ab77eddaaa6308ad6cf45cd"></a><!-- doxytag: member="CVC3::TheoryCore::CoreNotifyObj" ref="a6b4c0f704ab77eddaaa6308ad6cf45cd" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">friend class <a class="el" href="classCVC3_1_1TheoryCore_1_1CoreNotifyObj.html">CoreNotifyObj</a><code> [friend]</code></td> </tr> </table> </div> <div class="memdoc"> <p>So we get notified every time there's a pop. </p> <p>Definition at line <a class="el" href="theory__core_8h_source.html#l00175">175</a> of file <a class="el" href="theory__core_8h_source.html">theory_core.h</a>.</p> </div> </div> <hr/><h2>Member Data Documentation</h2> <a class="anchor" id="aa803e0e65fec3e389c9c4d12d8d634a3"></a><!-- doxytag: member="CVC3::TheoryCore::d_cm" ref="aa803e0e65fec3e389c9c4d12d8d634a3" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCVC3_1_1ContextManager.html">ContextManager</a>* <a class="el" href="classCVC3_1_1TheoryCore.html#aa803e0e65fec3e389c9c4d12d8d634a3">CVC3::TheoryCore::d_cm</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p><a class="el" href="classCVC3_1_1Context.html">Context</a> manager. </p> <p>Definition at line <a class="el" href="theory__core_8h_source.html#l00057">57</a> of file <a class="el" href="theory__core_8h_source.html">theory_core.h</a>.</p> <p>Referenced by <a class="el" href="theory__core_8cpp_source.html#l04213">enqueueFact()</a>, and <a class="el" href="theory__core_8h_source.html#l00348">getCM()</a>.</p> </div> </div> <a class="anchor" id="a8b9c81920208ce15dac9eb3bb97b4a2b"></a><!-- doxytag: member="CVC3::TheoryCore::d_tm" ref="a8b9c81920208ce15dac9eb3bb97b4a2b" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCVC3_1_1TheoremManager.html">TheoremManager</a>* <a class="el" href="classCVC3_1_1TheoryCore.html#a8b9c81920208ce15dac9eb3bb97b4a2b">CVC3::TheoryCore::d_tm</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> manager. </p> <p>Definition at line <a class="el" href="theory__core_8h_source.html#l00060">60</a> of file <a class="el" href="theory__core_8h_source.html">theory_core.h</a>.</p> <p>Referenced by <a class="el" href="theory__core_8h_source.html#l00349">getTM()</a>.</p> </div> </div> <a class="anchor" id="af28b98269dc8ef40a6fa97d58f414173"></a><!-- doxytag: member="CVC3::TheoryCore::d_rules" ref="af28b98269dc8ef40a6fa97d58f414173" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCVC3_1_1CoreProofRules.html">CoreProofRules</a>* <a class="el" href="classCVC3_1_1TheoryCore.html#af28b98269dc8ef40a6fa97d58f414173">CVC3::TheoryCore::d_rules</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Core proof rules. </p> <p>Definition at line <a class="el" href="theory__core_8h_source.html#l00063">63</a> of file <a class="el" href="theory__core_8h_source.html">theory_core.h</a>.</p> <p>Referenced by <a class="el" href="theory__core_8h_source.html#l00353">getCoreRules()</a>, <a class="el" href="theory__core_8cpp_source.html#l00968">rewrite()</a>, <a class="el" href="theory__core_8cpp_source.html#l04260">setupTerm()</a>, <a class="el" href="theory__core_8cpp_source.html#l01292">simplifyOp()</a>, <a class="el" href="theory__core_8cpp_source.html#l00698">TheoryCore()</a>, <a class="el" href="theory__core_8cpp_source.html#l04186">typePred()</a>, and <a class="el" href="theory__core_8cpp_source.html#l00847">~TheoryCore()</a>.</p> </div> </div> <a class="anchor" id="adf5b754e1e4732cb0e1946cf0f274885"></a><!-- doxytag: member="CVC3::TheoryCore::d_flags" ref="adf5b754e1e4732cb0e1946cf0f274885" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const <a class="el" href="classCVC3_1_1CLFlags.html">CLFlags</a>& <a class="el" href="classCVC3_1_1TheoryCore.html#adf5b754e1e4732cb0e1946cf0f274885">CVC3::TheoryCore::d_flags</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Reference to command line flags. </p> <p>Definition at line <a class="el" href="theory__core_8h_source.html#l00066">66</a> of file <a class="el" href="theory__core_8h_source.html">theory_core.h</a>.</p> <p>Referenced by <a class="el" href="theory__core_8h_source.html#l00350">getFlags()</a>.</p> </div> </div> <a class="anchor" id="a053311bcc9681a402ab440bf90447632"></a><!-- doxytag: member="CVC3::TheoryCore::d_statistics" ref="a053311bcc9681a402ab440bf90447632" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCVC3_1_1Statistics.html">Statistics</a>& <a class="el" href="classCVC3_1_1TheoryCore.html#a053311bcc9681a402ab440bf90447632">CVC3::TheoryCore::d_statistics</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Reference to statistics. </p> <p>Definition at line <a class="el" href="theory__core_8h_source.html#l00069">69</a> of file <a class="el" href="theory__core_8h_source.html">theory_core.h</a>.</p> <p>Referenced by <a class="el" href="theory__core_8h_source.html#l00351">getStatistics()</a>.</p> </div> </div> <a class="anchor" id="aba88f17e048e24984f8637be9d31a74c"></a><!-- doxytag: member="CVC3::TheoryCore::d_printer" ref="aba88f17e048e24984f8637be9d31a74c" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCVC3_1_1PrettyPrinter.html">PrettyPrinter</a>* <a class="el" href="classCVC3_1_1TheoryCore.html#aba88f17e048e24984f8637be9d31a74c">CVC3::TheoryCore::d_printer</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p><a class="el" href="classCVC3_1_1PrettyPrinter.html" title="Abstract API to a pretty-printer for Expr.">PrettyPrinter</a> (we own it) </p> <p>Definition at line <a class="el" href="theory__core_8h_source.html#l00072">72</a> of file <a class="el" href="theory__core_8h_source.html">theory_core.h</a>.</p> <p>Referenced by <a class="el" href="theory__core_8cpp_source.html#l00698">TheoryCore()</a>, and <a class="el" href="theory__core_8cpp_source.html#l00847">~TheoryCore()</a>.</p> </div> </div> <a class="anchor" id="ae430167a0f9f0e2ba742436bcb04e9fb"></a><!-- doxytag: member="CVC3::TheoryCore::d_typeComputer" ref="ae430167a0f9f0e2ba742436bcb04e9fb" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCVC3_1_1ExprManager_1_1TypeComputer.html">ExprManager::TypeComputer</a>* <a class="el" href="classCVC3_1_1TheoryCore.html#ae430167a0f9f0e2ba742436bcb04e9fb">CVC3::TheoryCore::d_typeComputer</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p><a class="el" href="classCVC3_1_1Type.html" title="MS C++ specific settings.">Type</a> Computer. </p> <p>Definition at line <a class="el" href="theory__core_8h_source.html#l00075">75</a> of file <a class="el" href="theory__core_8h_source.html">theory_core.h</a>.</p> <p>Referenced by <a class="el" href="theory__core_8cpp_source.html#l00698">TheoryCore()</a>, and <a class="el" href="theory__core_8cpp_source.html#l00847">~TheoryCore()</a>.</p> </div> </div> <a class="anchor" id="a03b7c799d7ee3b3a4a10f14b2faacfbb"></a><!-- doxytag: member="CVC3::TheoryCore::d_exprTrans" ref="a03b7c799d7ee3b3a4a10f14b2faacfbb" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCVC3_1_1ExprTransform.html">ExprTransform</a>* <a class="el" href="classCVC3_1_1TheoryCore.html#a03b7c799d7ee3b3a4a10f14b2faacfbb">CVC3::TheoryCore::d_exprTrans</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p><a class="el" href="classCVC3_1_1Expr.html" title="Data structure of expressions in CVC3.">Expr</a> Transformer. </p> <p>Definition at line <a class="el" href="theory__core_8h_source.html#l00078">78</a> of file <a class="el" href="theory__core_8h_source.html">theory_core.h</a>.</p> <p>Referenced by <a class="el" href="theory__core_8cpp_source.html#l04320">getAssignment()</a>, <a class="el" href="theory__core_8h_source.html#l00352">getExprTrans()</a>, <a class="el" href="theory__core_8cpp_source.html#l04333">getValue()</a>, <a class="el" href="theory__core_8cpp_source.html#l00698">TheoryCore()</a>, and <a class="el" href="theory__core_8cpp_source.html#l00847">~TheoryCore()</a>.</p> </div> </div> <a class="anchor" id="abe21ce53a179720cb3e94293fd6d771f"></a><!-- doxytag: member="CVC3::TheoryCore::d_translator" ref="abe21ce53a179720cb3e94293fd6d771f" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCVC3_1_1Translator.html">Translator</a>* <a class="el" href="classCVC3_1_1TheoryCore.html#abe21ce53a179720cb3e94293fd6d771f">CVC3::TheoryCore::d_translator</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p><a class="el" href="classCVC3_1_1Translator.html">Translator</a>. </p> <p>Definition at line <a class="el" href="theory__core_8h_source.html#l00081">81</a> of file <a class="el" href="theory__core_8h_source.html">theory_core.h</a>.</p> <p>Referenced by <a class="el" href="theory__core_8h_source.html#l00354">getTranslator()</a>, <a class="el" href="theory__core_8cpp_source.html#l02055">print()</a>, and <a class="el" href="theory__core_8cpp_source.html#l01915">printSmtLibShared()</a>.</p> </div> </div> <a class="anchor" id="af057513081cf61dc3780967f84ae58fe"></a><!-- doxytag: member="CVC3::TheoryCore::d_queue" ref="af057513081cf61dc3780967f84ae58fe" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">std::queue<<a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>> <a class="el" href="classCVC3_1_1TheoryCore.html#af057513081cf61dc3780967f84ae58fe">CVC3::TheoryCore::d_queue</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Assertion queue. </p> <p>Definition at line <a class="el" href="theory__core_8h_source.html#l00084">84</a> of file <a class="el" href="theory__core_8h_source.html">theory_core.h</a>.</p> <p>Referenced by <a class="el" href="theory__core_8cpp_source.html#l03468">addFact()</a>, <a class="el" href="theory__core_8cpp_source.html#l03507">checkSATCore()</a>, and <a class="el" href="theory__core_8cpp_source.html#l04213">enqueueFact()</a>.</p> </div> </div> <a class="anchor" id="a5253f49c096b1ce32579f7095c895ac4"></a><!-- doxytag: member="CVC3::TheoryCore::d_queueSE" ref="a5253f49c096b1ce32579f7095c895ac4" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">std::vector<<a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>> <a class="el" href="classCVC3_1_1TheoryCore.html#a5253f49c096b1ce32579f7095c895ac4">CVC3::TheoryCore::d_queueSE</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Queue of facts to be sent to the <a class="el" href="classCVC3_1_1SearchEngine.html" title="API to to a generic proof search engine.">SearchEngine</a>. </p> <p>Definition at line <a class="el" href="theory__core_8h_source.html#l00086">86</a> of file <a class="el" href="theory__core_8h_source.html">theory_core.h</a>.</p> <p>Referenced by <a class="el" href="theory__core_8cpp_source.html#l03468">addFact()</a>, <a class="el" href="theory__core_8cpp_source.html#l03507">checkSATCore()</a>, and <a class="el" href="theory__core_8cpp_source.html#l04245">setInconsistent()</a>.</p> </div> </div> <a class="anchor" id="ac44993c5095bc2fda1f6b931060223bf"></a><!-- doxytag: member="CVC3::TheoryCore::d_inconsistent" ref="ac44993c5095bc2fda1f6b931060223bf" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCVC3_1_1CDO.html">CDO</a><bool> <a class="el" href="classCVC3_1_1TheoryCore.html#ac44993c5095bc2fda1f6b931060223bf">CVC3::TheoryCore::d_inconsistent</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Inconsistent flag. </p> <p>Definition at line <a class="el" href="theory__core_8h_source.html#l00089">89</a> of file <a class="el" href="theory__core_8h_source.html">theory_core.h</a>.</p> <p>Referenced by <a class="el" href="theory__core_8cpp_source.html#l03468">addFact()</a>, <a class="el" href="theory__core_8cpp_source.html#l04093">assertEqualities()</a>, <a class="el" href="theory__core_8cpp_source.html#l04213">enqueueFact()</a>, <a class="el" href="theory__core_8h_source.html#l00422">inconsistent()</a>, and <a class="el" href="theory__core_8cpp_source.html#l04245">setInconsistent()</a>.</p> </div> </div> <a class="anchor" id="ae81dae9c186efe8ead153d14e29985bf"></a><!-- doxytag: member="CVC3::TheoryCore::d_incomplete" ref="ae81dae9c186efe8ead153d14e29985bf" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCVC3_1_1CDMap.html">CDMap</a><std::string, bool> <a class="el" href="classCVC3_1_1TheoryCore.html#ae81dae9c186efe8ead153d14e29985bf">CVC3::TheoryCore::d_incomplete</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>The set of reasons for incompleteness (empty when we are complete) </p> <p>Definition at line <a class="el" href="theory__core_8h_source.html#l00091">91</a> of file <a class="el" href="theory__core_8h_source.html">theory_core.h</a>.</p> <p>Referenced by <a class="el" href="theory__core_8cpp_source.html#l03528">incomplete()</a>, and <a class="el" href="theory__core_8cpp_source.html#l04180">setIncomplete()</a>.</p> </div> </div> <a class="anchor" id="a1560124d30d8cda4a6cedca4c919f8aa"></a><!-- doxytag: member="CVC3::TheoryCore::d_incThm" ref="a1560124d30d8cda4a6cedca4c919f8aa" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCVC3_1_1CDO.html">CDO</a><<a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>> <a class="el" href="classCVC3_1_1TheoryCore.html#a1560124d30d8cda4a6cedca4c919f8aa">CVC3::TheoryCore::d_incThm</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p><a class="el" href="classCVC3_1_1Proof.html">Proof</a> of inconsistent. </p> <p>Definition at line <a class="el" href="theory__core_8h_source.html#l00094">94</a> of file <a class="el" href="theory__core_8h_source.html">theory_core.h</a>.</p> <p>Referenced by <a class="el" href="theory__core_8h_source.html#l00425">inconsistentThm()</a>, and <a class="el" href="theory__core_8cpp_source.html#l04245">setInconsistent()</a>.</p> </div> </div> <a class="anchor" id="a9ebcf505b2577cd3a3a29d70a4fd50ae"></a><!-- doxytag: member="CVC3::TheoryCore::d_terms" ref="a9ebcf505b2577cd3a3a29d70a4fd50ae" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCVC3_1_1CDList.html">CDList</a><<a class="el" href="classCVC3_1_1Expr.html">Expr</a>> <a class="el" href="classCVC3_1_1TheoryCore.html#a9ebcf505b2577cd3a3a29d70a4fd50ae">CVC3::TheoryCore::d_terms</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>List of all active terms in the system (for quantifier instantiation) </p> <p>Definition at line <a class="el" href="theory__core_8h_source.html#l00096">96</a> of file <a class="el" href="theory__core_8h_source.html">theory_core.h</a>.</p> <p>Referenced by <a class="el" href="theory__core_8h_source.html#l00360">getTerms()</a>, and <a class="el" href="theory__core_8cpp_source.html#l04260">setupTerm()</a>.</p> </div> </div> <a class="anchor" id="ab2fd8e3ebcc92df0276d6d0b4e8a88bf"></a><!-- doxytag: member="CVC3::TheoryCore::d_termTheorems" ref="ab2fd8e3ebcc92df0276d6d0b4e8a88bf" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classHash_1_1hash__map.html">std::hash_map</a><<a class="el" href="classCVC3_1_1Expr.html">Expr</a>, <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>> <a class="el" href="classCVC3_1_1TheoryCore.html#ab2fd8e3ebcc92df0276d6d0b4e8a88bf">CVC3::TheoryCore::d_termTheorems</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Map from active terms to theorems that introduced those terms. </p> <p>Definition at line <a class="el" href="theory__core_8h_source.html#l00099">99</a> of file <a class="el" href="theory__core_8h_source.html">theory_core.h</a>.</p> <p>Referenced by <a class="el" href="theory__core_8cpp_source.html#l00868">getTheoremForTerm()</a>, <a class="el" href="theory__core_8cpp_source.html#l03541">registerAtom()</a>, and <a class="el" href="theory__core_8cpp_source.html#l04260">setupTerm()</a>.</p> </div> </div> <a class="anchor" id="a27f2f350452da6f7adca44c342a1f29d"></a><!-- doxytag: member="CVC3::TheoryCore::d_predicates" ref="a27f2f350452da6f7adca44c342a1f29d" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCVC3_1_1CDList.html">CDList</a><<a class="el" href="classCVC3_1_1Expr.html">Expr</a>> <a class="el" href="classCVC3_1_1TheoryCore.html#a27f2f350452da6f7adca44c342a1f29d">CVC3::TheoryCore::d_predicates</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>List of all active non-equality atomic formulas in the system (for quantifier instantiation) </p> <p>Definition at line <a class="el" href="theory__core_8h_source.html#l00103">103</a> of file <a class="el" href="theory__core_8h_source.html">theory_core.h</a>.</p> <p>Referenced by <a class="el" href="theory__core_8h_source.html#l00373">getPredicates()</a>, and <a class="el" href="theory__core_8cpp_source.html#l04260">setupTerm()</a>.</p> </div> </div> <a class="anchor" id="ae3ac2dba3022934af3ba4a61fc979be4"></a><!-- doxytag: member="CVC3::TheoryCore::d_vars" ref="ae3ac2dba3022934af3ba4a61fc979be4" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">std::vector<<a class="el" href="classCVC3_1_1Expr.html">Expr</a>> <a class="el" href="classCVC3_1_1TheoryCore.html#ae3ac2dba3022934af3ba4a61fc979be4">CVC3::TheoryCore::d_vars</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>List of variables that were created up to this point. </p> <p>Definition at line <a class="el" href="theory__core_8h_source.html#l00105">105</a> of file <a class="el" href="theory__core_8h_source.html">theory_core.h</a>.</p> <p>Referenced by <a class="el" href="theory__core_8cpp_source.html#l03756">addToVarDB()</a>, <a class="el" href="theory__core_8cpp_source.html#l03862">buildModel()</a>, and <a class="el" href="theory__core_8cpp_source.html#l03763">collectBasicVars()</a>.</p> </div> </div> <a class="anchor" id="a6ef875ba12849a2bfd367c4e1bc02e71"></a><!-- doxytag: member="CVC3::TheoryCore::d_globals" ref="a6ef875ba12849a2bfd367c4e1bc02e71" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">std::map<std::string, <a class="el" href="classCVC3_1_1Expr.html">Expr</a>> <a class="el" href="classCVC3_1_1TheoryCore.html#a6ef875ba12849a2bfd367c4e1bc02e71">CVC3::TheoryCore::d_globals</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Database of declared identifiers. </p> <p>Definition at line <a class="el" href="theory__core_8h_source.html#l00107">107</a> of file <a class="el" href="theory__core_8h_source.html">theory_core.h</a>.</p> <p>Referenced by <a class="el" href="theory_8cpp_source.html#l00910">CVC3::Theory::installID()</a>, and <a class="el" href="theory_8cpp_source.html#l00887">CVC3::Theory::resolveID()</a>.</p> </div> </div> <a class="anchor" id="a72592744e8f94ed7c832ad895791a72a"></a><!-- doxytag: member="CVC3::TheoryCore::d_boundVarStack" ref="a72592744e8f94ed7c832ad895791a72a" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">std::vector<std::pair<std::string, <a class="el" href="classCVC3_1_1Expr.html">Expr</a>> > <a class="el" href="classCVC3_1_1TheoryCore.html#a72592744e8f94ed7c832ad895791a72a">CVC3::TheoryCore::d_boundVarStack</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Bound variable stack: a vector of pairs <name, var> </p> <p>Definition at line <a class="el" href="theory__core_8h_source.html#l00109">109</a> of file <a class="el" href="theory__core_8h_source.html">theory_core.h</a>.</p> <p>Referenced by <a class="el" href="theory_8cpp_source.html#l00709">CVC3::Theory::addBoundVar()</a>, <a class="el" href="theory__core_8cpp_source.html#l03589">parseExpr()</a>, and <a class="el" href="theory__core_8h_source.html#l00461">parseExprTop()</a>.</p> </div> </div> <a class="anchor" id="af1f09ebd45eebb8171943533fe49e677"></a><!-- doxytag: member="CVC3::TheoryCore::d_boundVarMap" ref="af1f09ebd45eebb8171943533fe49e677" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classHash_1_1hash__map.html">std::hash_map</a><std::string, <a class="el" href="classCVC3_1_1Expr.html">Expr</a>> <a class="el" href="classCVC3_1_1TheoryCore.html#af1f09ebd45eebb8171943533fe49e677">CVC3::TheoryCore::d_boundVarMap</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Map for bound vars. </p> <p>Definition at line <a class="el" href="theory__core_8h_source.html#l00111">111</a> of file <a class="el" href="theory__core_8h_source.html">theory_core.h</a>.</p> <p>Referenced by <a class="el" href="theory_8cpp_source.html#l00709">CVC3::Theory::addBoundVar()</a>, <a class="el" href="theory__core_8cpp_source.html#l03589">parseExpr()</a>, and <a class="el" href="theory_8cpp_source.html#l00887">CVC3::Theory::resolveID()</a>.</p> </div> </div> <a class="anchor" id="a22825b89097f0baa8348f268317db563"></a><!-- doxytag: member="CVC3::TheoryCore::d_parseCacheTop" ref="a22825b89097f0baa8348f268317db563" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCVC3_1_1ExprMap.html">ExprMap</a><<a class="el" href="classCVC3_1_1Expr.html">Expr</a>> <a class="el" href="classCVC3_1_1TheoryCore.html#a22825b89097f0baa8348f268317db563">CVC3::TheoryCore::d_parseCacheTop</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Top-level cache for parser. </p> <p>Definition at line <a class="el" href="theory__core_8h_source.html#l00114">114</a> of file <a class="el" href="theory__core_8h_source.html">theory_core.h</a>.</p> <p>Referenced by <a class="el" href="theory_8cpp_source.html#l00709">CVC3::Theory::addBoundVar()</a>, <a class="el" href="theory__core_8cpp_source.html#l03589">parseExpr()</a>, and <a class="el" href="theory__core_8h_source.html#l00461">parseExprTop()</a>.</p> </div> </div> <a class="anchor" id="ac0523af18592d25050b45ca363e52332"></a><!-- doxytag: member="CVC3::TheoryCore::d_parseCacheOther" ref="ac0523af18592d25050b45ca363e52332" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCVC3_1_1ExprMap.html">ExprMap</a><<a class="el" href="classCVC3_1_1Expr.html">Expr</a>> <a class="el" href="classCVC3_1_1TheoryCore.html#ac0523af18592d25050b45ca363e52332">CVC3::TheoryCore::d_parseCacheOther</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Alternative cache for parser when not at top-level. </p> <p>Definition at line <a class="el" href="theory__core_8h_source.html#l00118">118</a> of file <a class="el" href="theory__core_8h_source.html">theory_core.h</a>.</p> <p>Referenced by <a class="el" href="theory_8cpp_source.html#l00709">CVC3::Theory::addBoundVar()</a>.</p> </div> </div> <a class="anchor" id="af8402b991e938282c87e01120dfd6b99"></a><!-- doxytag: member="CVC3::TheoryCore::d_parseCache" ref="af8402b991e938282c87e01120dfd6b99" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCVC3_1_1ExprMap.html">ExprMap</a><<a class="el" href="classCVC3_1_1Expr.html">Expr</a>>* <a class="el" href="classCVC3_1_1TheoryCore.html#af8402b991e938282c87e01120dfd6b99">CVC3::TheoryCore::d_parseCache</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Current cache being used for parser. </p> <p>Definition at line <a class="el" href="theory__core_8h_source.html#l00120">120</a> of file <a class="el" href="theory__core_8h_source.html">theory_core.h</a>.</p> <p>Referenced by <a class="el" href="theory_8cpp_source.html#l00709">CVC3::Theory::addBoundVar()</a>, <a class="el" href="theory__core_8cpp_source.html#l03589">parseExpr()</a>, <a class="el" href="theory__core_8cpp_source.html#l01724">parseExprOp()</a>, and <a class="el" href="theory__core_8h_source.html#l00461">parseExprTop()</a>.</p> </div> </div> <a class="anchor" id="ab1f589f325461e2bb39f0035c2dfa4bb"></a><!-- doxytag: member="CVC3::TheoryCore::d_tccCache" ref="ab1f589f325461e2bb39f0035c2dfa4bb" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCVC3_1_1ExprMap.html">ExprMap</a><<a class="el" href="classCVC3_1_1Expr.html">Expr</a>> <a class="el" href="classCVC3_1_1TheoryCore.html#ab1f589f325461e2bb39f0035c2dfa4bb">CVC3::TheoryCore::d_tccCache</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Cache for tcc's. </p> <p>Definition at line <a class="el" href="theory__core_8h_source.html#l00122">122</a> of file <a class="el" href="theory__core_8h_source.html">theory_core.h</a>.</p> <p>Referenced by <a class="el" href="theory_8cpp_source.html#l00367">CVC3::Theory::getTCC()</a>, and <a class="el" href="theory__core_8h_source.html#l00357">tccCache()</a>.</p> </div> </div> <a class="anchor" id="a067b4f792c7bcd9fa1d756efdc5d1e72"></a><!-- doxytag: member="CVC3::TheoryCore::d_theories" ref="a067b4f792c7bcd9fa1d756efdc5d1e72" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">std::vector<<a class="el" href="classCVC3_1_1Theory.html">Theory</a>*> <a class="el" href="classCVC3_1_1TheoryCore.html#a067b4f792c7bcd9fa1d756efdc5d1e72">CVC3::TheoryCore::d_theories</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Array of registered theories. </p> <p>Definition at line <a class="el" href="theory__core_8h_source.html#l00125">125</a> of file <a class="el" href="theory__core_8h_source.html">theory_core.h</a>.</p> <p>Referenced by <a class="el" href="theory__core_8cpp_source.html#l03817">buildModel()</a>, <a class="el" href="theory__core_8cpp_source.html#l00857">callTheoryPreprocess()</a>, <a class="el" href="theory_8cpp_source.html#l00241">CVC3::Theory::getNumTheories()</a>, <a class="el" href="theory__core_8cpp_source.html#l03415">refineCounterExample()</a>, <a class="el" href="theory_8cpp_source.html#l00203">CVC3::Theory::registerTheory()</a>, <a class="el" href="theory__core_8cpp_source.html#l04245">setInconsistent()</a>, and <a class="el" href="theory_8cpp_source.html#l00224">CVC3::Theory::unregisterTheory()</a>.</p> </div> </div> <a class="anchor" id="af9395eb99819f9b78df0dcb24ffac785"></a><!-- doxytag: member="CVC3::TheoryCore::d_theoryMap" ref="af9395eb99819f9b78df0dcb24ffac785" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classHash_1_1hash__map.html">std::hash_map</a><int, <a class="el" href="classCVC3_1_1Theory.html">Theory</a>*> <a class="el" href="classCVC3_1_1TheoryCore.html#af9395eb99819f9b78df0dcb24ffac785">CVC3::TheoryCore::d_theoryMap</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Array mapping kinds to theories. </p> <p>Definition at line <a class="el" href="theory__core_8h_source.html#l00128">128</a> of file <a class="el" href="theory__core_8h_source.html">theory_core.h</a>.</p> <p>Referenced by <a class="el" href="theory_8cpp_source.html#l00247">CVC3::Theory::hasTheory()</a>, <a class="el" href="theory_8cpp_source.html#l00177">CVC3::Theory::registerKinds()</a>, <a class="el" href="theory_8cpp_source.html#l00252">CVC3::Theory::theoryOf()</a>, and <a class="el" href="theory_8cpp_source.html#l00190">CVC3::Theory::unregisterKinds()</a>.</p> </div> </div> <a class="anchor" id="af15d1082296c5c7f610d832bfb3cc675"></a><!-- doxytag: member="CVC3::TheoryCore::d_solver" ref="af15d1082296c5c7f610d832bfb3cc675" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCVC3_1_1Theory.html">Theory</a>* <a class="el" href="classCVC3_1_1TheoryCore.html#af15d1082296c5c7f610d832bfb3cc675">CVC3::TheoryCore::d_solver</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>The theory which has the solver (if any) </p> <p>Definition at line <a class="el" href="theory__core_8h_source.html#l00131">131</a> of file <a class="el" href="theory__core_8h_source.html">theory_core.h</a>.</p> <p>Referenced by <a class="el" href="theory__core_8cpp_source.html#l04093">assertEqualities()</a>, <a class="el" href="theory__core_8cpp_source.html#l01195">checkEquation()</a>, <a class="el" href="theory_8cpp_source.html#l00203">CVC3::Theory::registerTheory()</a>, <a class="el" href="theory__core_8cpp_source.html#l01248">solve()</a>, and <a class="el" href="theory_8cpp_source.html#l00224">CVC3::Theory::unregisterTheory()</a>.</p> </div> </div> <a class="anchor" id="a74cb89f5b3e600cde8e0d7b961532a5e"></a><!-- doxytag: member="CVC3::TheoryCore::d_varModelMap" ref="a74cb89f5b3e600cde8e0d7b961532a5e" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCVC3_1_1ExprHashMap.html">ExprHashMap</a><std::vector<<a class="el" href="classCVC3_1_1Expr.html">Expr</a>> > <a class="el" href="classCVC3_1_1TheoryCore.html#a74cb89f5b3e600cde8e0d7b961532a5e">CVC3::TheoryCore::d_varModelMap</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Mapping of compound type variables to simpler types (model generation) </p> <p>Definition at line <a class="el" href="theory__core_8h_source.html#l00134">134</a> of file <a class="el" href="theory__core_8h_source.html">theory_core.h</a>.</p> <p>Referenced by <a class="el" href="theory__core_8cpp_source.html#l03763">collectBasicVars()</a>, and <a class="el" href="theory__core_8cpp_source.html#l03954">collectModelValues()</a>.</p> </div> </div> <a class="anchor" id="ad2689808e6b677e79151c5ae413a9170"></a><!-- doxytag: member="CVC3::TheoryCore::d_varAssignments" ref="ad2689808e6b677e79151c5ae413a9170" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCVC3_1_1ExprHashMap.html">ExprHashMap</a><<a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>> <a class="el" href="classCVC3_1_1TheoryCore.html#ad2689808e6b677e79151c5ae413a9170">CVC3::TheoryCore::d_varAssignments</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Mapping of intermediate variables to their values. </p> <p>Definition at line <a class="el" href="theory__core_8h_source.html#l00136">136</a> of file <a class="el" href="theory__core_8h_source.html">theory_core.h</a>.</p> <p>Referenced by <a class="el" href="theory__core_8cpp_source.html#l03713">assignValue()</a>, <a class="el" href="theory__core_8cpp_source.html#l03862">buildModel()</a>, <a class="el" href="theory__core_8cpp_source.html#l03763">collectBasicVars()</a>, and <a class="el" href="theory__core_8cpp_source.html#l03954">collectModelValues()</a>.</p> </div> </div> <a class="anchor" id="afbe156b32fe43d2b3e5519477df83110"></a><!-- doxytag: member="CVC3::TheoryCore::d_basicModelVars" ref="afbe156b32fe43d2b3e5519477df83110" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">std::vector<<a class="el" href="classCVC3_1_1Expr.html">Expr</a>> <a class="el" href="classCVC3_1_1TheoryCore.html#afbe156b32fe43d2b3e5519477df83110">CVC3::TheoryCore::d_basicModelVars</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>List of basic variables (temporary storage for model generation) </p> <p>Definition at line <a class="el" href="theory__core_8h_source.html#l00138">138</a> of file <a class="el" href="theory__core_8h_source.html">theory_core.h</a>.</p> <p>Referenced by <a class="el" href="theory__core_8cpp_source.html#l03817">buildModel()</a>, and <a class="el" href="theory__core_8cpp_source.html#l03763">collectBasicVars()</a>.</p> </div> </div> <a class="anchor" id="a28416be391c5f58a2bf7cbe301e81663"></a><!-- doxytag: member="CVC3::TheoryCore::d_simplifiedModelVars" ref="a28416be391c5f58a2bf7cbe301e81663" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCVC3_1_1ExprHashMap.html">ExprHashMap</a><<a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>> <a class="el" href="classCVC3_1_1TheoryCore.html#a28416be391c5f58a2bf7cbe301e81663">CVC3::TheoryCore::d_simplifiedModelVars</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Mapping of basic variables to simplified expressions (temp. storage) </p> <p>There may be some vars which simplify to something else; we save those separately, and keep only those which simplify to themselves. Once the latter vars are assigned, we'll re-simplify the former variables and use the results as concrete values. </p> <p>Definition at line <a class="el" href="theory__core_8h_source.html#l00145">145</a> of file <a class="el" href="theory__core_8h_source.html">theory_core.h</a>.</p> <p>Referenced by <a class="el" href="theory__core_8cpp_source.html#l03817">buildModel()</a>, <a class="el" href="theory__core_8cpp_source.html#l03763">collectBasicVars()</a>, and <a class="el" href="theory__core_8cpp_source.html#l03954">collectModelValues()</a>.</p> </div> </div> <a class="anchor" id="ac02ca139143a150df1ecb7ec4d4247e7"></a><!-- doxytag: member="CVC3::TheoryCore::d_simplifyInPlace" ref="ac02ca139143a150df1ecb7ec4d4247e7" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const bool* <a class="el" href="classCVC3_1_1TheoryCore.html#ac02ca139143a150df1ecb7ec4d4247e7">CVC3::TheoryCore::d_simplifyInPlace</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Command line flag whether to simplify in place. </p> <p>Definition at line <a class="el" href="theory__core_8h_source.html#l00148">148</a> of file <a class="el" href="theory__core_8h_source.html">theory_core.h</a>.</p> </div> </div> <a class="anchor" id="ae9e63b5ca2b5d745cb176ac3a528959b"></a><!-- doxytag: member="CVC3::TheoryCore::d_currentRecursiveSimplifier" ref="ae9e63b5ca2b5d745cb176ac3a528959b" args=")(const Expr &)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>(TheoryCore::* <a class="el" href="classCVC3_1_1TheoryCore.html#ae9e63b5ca2b5d745cb176ac3a528959b">CVC3::TheoryCore::d_currentRecursiveSimplifier</a>)(const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &)<code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Which recursive simplifier to use. </p> <p>Definition at line <a class="el" href="theory__core_8h_source.html#l00150">150</a> of file <a class="el" href="theory__core_8h_source.html">theory_core.h</a>.</p> </div> </div> <a class="anchor" id="a7040ce9b2fa8d567df0d84a5ceee84bf"></a><!-- doxytag: member="CVC3::TheoryCore::d_resourceLimit" ref="a7040ce9b2fa8d567df0d84a5ceee84bf" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">unsigned <a class="el" href="classCVC3_1_1TheoryCore.html#a7040ce9b2fa8d567df0d84a5ceee84bf">CVC3::TheoryCore::d_resourceLimit</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Resource limit (0==unlimited, 1==no more resources, >=2 - available). </p> <p>Currently, it is the number of enqueued facts. Once the resource is exhausted, the remaining facts will be dropped, and an incomplete flag is set. </p> <p>Definition at line <a class="el" href="theory__core_8h_source.html#l00157">157</a> of file <a class="el" href="theory__core_8h_source.html">theory_core.h</a>.</p> <p>Referenced by <a class="el" href="theory__core_8h_source.html#l00334">getResource()</a>, <a class="el" href="theory__core_8h_source.html#l00490">getResourceLimit()</a>, <a class="el" href="theory__core_8h_source.html#l00492">outOfResources()</a>, and <a class="el" href="theory__core_8h_source.html#l00488">setResourceLimit()</a>.</p> </div> </div> <a class="anchor" id="aa2e429d75afaade7281ed2b370a50dcf"></a><!-- doxytag: member="CVC3::TheoryCore::d_timeBase" ref="aa2e429d75afaade7281ed2b370a50dcf" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">unsigned <a class="el" href="classCVC3_1_1TheoryCore.html#aa2e429d75afaade7281ed2b370a50dcf">CVC3::TheoryCore::d_timeBase</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Time limit (0==unlimited, >0==total available cpu time in seconds). </p> <p>Currently, if exhausted processFactQueue will not perform any more reasoning with FULL effor and an incomplete flag is set. </p> <p>Definition at line <a class="el" href="theory__core_8h_source.html#l00163">163</a> of file <a class="el" href="theory__core_8h_source.html">theory_core.h</a>.</p> <p>Referenced by <a class="el" href="theory__core_8cpp_source.html#l04058">initTimeLimit()</a>, and <a class="el" href="theory__core_8cpp_source.html#l04062">timeLimitReached()</a>.</p> </div> </div> <a class="anchor" id="a4ad36b717dcce5ed5ad9a4514e39e66f"></a><!-- doxytag: member="CVC3::TheoryCore::d_timeLimit" ref="a4ad36b717dcce5ed5ad9a4514e39e66f" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">unsigned <a class="el" href="classCVC3_1_1TheoryCore.html#a4ad36b717dcce5ed5ad9a4514e39e66f">CVC3::TheoryCore::d_timeLimit</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="theory__core_8h_source.html#l00164">164</a> of file <a class="el" href="theory__core_8h_source.html">theory_core.h</a>.</p> <p>Referenced by <a class="el" href="theory__core_8cpp_source.html#l04053">setTimeLimit()</a>, and <a class="el" href="theory__core_8cpp_source.html#l04062">timeLimitReached()</a>.</p> </div> </div> <a class="anchor" id="adc61197a61a4a024cdd614a281f8cf0c"></a><!-- doxytag: member="CVC3::TheoryCore::d_inCheckSATCore" ref="adc61197a61a4a024cdd614a281f8cf0c" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool <a class="el" href="classCVC3_1_1TheoryCore.html#adc61197a61a4a024cdd614a281f8cf0c">CVC3::TheoryCore::d_inCheckSATCore</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="theory__core_8h_source.html#l00166">166</a> of file <a class="el" href="theory__core_8h_source.html">theory_core.h</a>.</p> <p>Referenced by <a class="el" href="theory__core_8cpp_source.html#l03507">checkSATCore()</a>, and <a class="el" href="theory__core_8h_source.html#l00377">okToEnqueue()</a>.</p> </div> </div> <a class="anchor" id="abf9ffc3f83f262e0acdece359d2d00bd"></a><!-- doxytag: member="CVC3::TheoryCore::d_inAddFact" ref="abf9ffc3f83f262e0acdece359d2d00bd" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool <a class="el" href="classCVC3_1_1TheoryCore.html#abf9ffc3f83f262e0acdece359d2d00bd">CVC3::TheoryCore::d_inAddFact</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="theory__core_8h_source.html#l00167">167</a> of file <a class="el" href="theory__core_8h_source.html">theory_core.h</a>.</p> <p>Referenced by <a class="el" href="theory__core_8cpp_source.html#l03468">addFact()</a>, and <a class="el" href="theory__core_8h_source.html#l00377">okToEnqueue()</a>.</p> </div> </div> <a class="anchor" id="a608590056910229da1a794d0dd5930c4"></a><!-- doxytag: member="CVC3::TheoryCore::d_inRegisterAtom" ref="a608590056910229da1a794d0dd5930c4" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool <a class="el" href="classCVC3_1_1TheoryCore.html#a608590056910229da1a794d0dd5930c4">CVC3::TheoryCore::d_inRegisterAtom</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="theory__core_8h_source.html#l00168">168</a> of file <a class="el" href="theory__core_8h_source.html">theory_core.h</a>.</p> <p>Referenced by <a class="el" href="theory__core_8h_source.html#l00377">okToEnqueue()</a>, and <a class="el" href="theory__core_8cpp_source.html#l03541">registerAtom()</a>.</p> </div> </div> <a class="anchor" id="aac5050e644f0c475d104f4dd3a8ddf32"></a><!-- doxytag: member="CVC3::TheoryCore::d_inPP" ref="aac5050e644f0c475d104f4dd3a8ddf32" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool <a class="el" href="classCVC3_1_1TheoryCore.html#aac5050e644f0c475d104f4dd3a8ddf32">CVC3::TheoryCore::d_inPP</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="theory__core_8h_source.html#l00169">169</a> of file <a class="el" href="theory__core_8h_source.html">theory_core.h</a>.</p> <p>Referenced by <a class="el" href="theory__core_8h_source.html#l00366">clearInPP()</a>, <a class="el" href="theory__core_8h_source.html#l00377">okToEnqueue()</a>, and <a class="el" href="theory__core_8h_source.html#l00365">setInPP()</a>.</p> </div> </div> <a class="anchor" id="ae16ab39bb24e04e3928d693ac3a1bb1e"></a><!-- doxytag: member="CVC3::TheoryCore::d_notifyObj" ref="ae16ab39bb24e04e3928d693ac3a1bb1e" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCVC3_1_1TheoryCore_1_1CoreNotifyObj.html">CoreNotifyObj</a> <a class="el" href="classCVC3_1_1TheoryCore.html#ae16ab39bb24e04e3928d693ac3a1bb1e">CVC3::TheoryCore::d_notifyObj</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="theory__core_8h_source.html#l00183">183</a> of file <a class="el" href="theory__core_8h_source.html">theory_core.h</a>.</p> </div> </div> <a class="anchor" id="a7b531fbcb166cac53d82f74c812d42f6"></a><!-- doxytag: member="CVC3::TheoryCore::d_impliedLiterals" ref="a7b531fbcb166cac53d82f74c812d42f6" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCVC3_1_1CDList.html">CDList</a><<a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>> <a class="el" href="classCVC3_1_1TheoryCore.html#a7b531fbcb166cac53d82f74c812d42f6">CVC3::TheoryCore::d_impliedLiterals</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>List of implied literals, based on registered atomic formulas of interest. </p> <p>Definition at line <a class="el" href="theory__core_8h_source.html#l00186">186</a> of file <a class="el" href="theory__core_8h_source.html">theory_core.h</a>.</p> <p>Referenced by <a class="el" href="theory__core_8cpp_source.html#l03571">getImpliedLiteral()</a>, <a class="el" href="theory__core_8cpp_source.html#l03582">getImpliedLiteralByIndex()</a>, and <a class="el" href="theory__core_8h_source.html#l00448">numImpliedLiterals()</a>.</p> </div> </div> <a class="anchor" id="a496993a9e180ca584cff84ce9dbdff69"></a><!-- doxytag: member="CVC3::TheoryCore::d_impliedLiteralsIdx" ref="a496993a9e180ca584cff84ce9dbdff69" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCVC3_1_1CDO.html">CDO</a><unsigned> <a class="el" href="classCVC3_1_1TheoryCore.html#a496993a9e180ca584cff84ce9dbdff69">CVC3::TheoryCore::d_impliedLiteralsIdx</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Next index in d_impliedLiterals that has not yet been fetched. </p> <p>Definition at line <a class="el" href="theory__core_8h_source.html#l00189">189</a> of file <a class="el" href="theory__core_8h_source.html">theory_core.h</a>.</p> <p>Referenced by <a class="el" href="theory__core_8cpp_source.html#l03571">getImpliedLiteral()</a>.</p> </div> </div> <a class="anchor" id="a0813a81e68625ac93111f45a4e81b131"></a><!-- doxytag: member="CVC3::TheoryCore::d_update_thms" ref="a0813a81e68625ac93111f45a4e81b131" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">std::vector<<a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>> <a class="el" href="classCVC3_1_1TheoryCore.html#a0813a81e68625ac93111f45a4e81b131">CVC3::TheoryCore::d_update_thms</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>List of theorems from calls to <a class="el" href="classCVC3_1_1TheoryCore.html#a435e2305420c1ed5b2ff1e4758a50dc5">update()</a> </p> <p>Definition at line <a class="el" href="theory__core_8h_source.html#l00194">194</a> of file <a class="el" href="theory__core_8h_source.html">theory_core.h</a>.</p> <p>Referenced by <a class="el" href="theory__core_8cpp_source.html#l03468">addFact()</a>, <a class="el" href="theory__core_8cpp_source.html#l03507">checkSATCore()</a>, and <a class="el" href="theory__core_8cpp_source.html#l01141">update()</a>.</p> </div> </div> <a class="anchor" id="a9b774b862908ff097c6aed53bdfdbcd3"></a><!-- doxytag: member="CVC3::TheoryCore::d_update_data" ref="a9b774b862908ff097c6aed53bdfdbcd3" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">std::vector<<a class="el" href="classCVC3_1_1Expr.html">Expr</a>> <a class="el" href="classCVC3_1_1TheoryCore.html#a9b774b862908ff097c6aed53bdfdbcd3">CVC3::TheoryCore::d_update_data</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>List of data accompanying above theorems from calls to <a class="el" href="classCVC3_1_1TheoryCore.html#a435e2305420c1ed5b2ff1e4758a50dc5">update()</a> </p> <p>Definition at line <a class="el" href="theory__core_8h_source.html#l00197">197</a> of file <a class="el" href="theory__core_8h_source.html">theory_core.h</a>.</p> <p>Referenced by <a class="el" href="theory__core_8cpp_source.html#l03468">addFact()</a>, <a class="el" href="theory__core_8cpp_source.html#l03507">checkSATCore()</a>, and <a class="el" href="theory__core_8cpp_source.html#l01141">update()</a>.</p> </div> </div> <a class="anchor" id="a96ce7c2fe3b14e3b8b4661fbe19db290"></a><!-- doxytag: member="CVC3::TheoryCore::d_notifyEq" ref="a96ce7c2fe3b14e3b8b4661fbe19db290" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCVC3_1_1NotifyList.html">NotifyList</a> <a class="el" href="classCVC3_1_1TheoryCore.html#a96ce7c2fe3b14e3b8b4661fbe19db290">CVC3::TheoryCore::d_notifyEq</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Notify list that gets processed on every equality. </p> <p>Definition at line <a class="el" href="theory__core_8h_source.html#l00200">200</a> of file <a class="el" href="theory__core_8h_source.html">theory_core.h</a>.</p> <p>Referenced by <a class="el" href="theory__core_8h_source.html#l00343">addNotifyEq()</a>, and <a class="el" href="theory__core_8cpp_source.html#l04093">assertEqualities()</a>.</p> </div> </div> <a class="anchor" id="a966030ae5b96557c9ea5de874a9526ef"></a><!-- doxytag: member="CVC3::TheoryCore::d_inUpdate" ref="a966030ae5b96557c9ea5de874a9526ef" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">unsigned <a class="el" href="classCVC3_1_1TheoryCore.html#a966030ae5b96557c9ea5de874a9526ef">CVC3::TheoryCore::d_inUpdate</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Whether we are in the middle of doing updates. </p> <p>Definition at line <a class="el" href="theory__core_8h_source.html#l00203">203</a> of file <a class="el" href="theory__core_8h_source.html">theory_core.h</a>.</p> <p>Referenced by <a class="el" href="theory__core_8h_source.html#l00375">inUpdate()</a>.</p> </div> </div> <a class="anchor" id="ae0a477cb44ee4e9285008f0653b2f366"></a><!-- doxytag: member="CVC3::TheoryCore::d_assignment" ref="ae0a477cb44ee4e9285008f0653b2f366" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">std::vector< std::pair<<a class="el" href="classCVC3_1_1Expr.html">Expr</a>, <a class="el" href="classCVC3_1_1Expr.html">Expr</a>> > <a class="el" href="classCVC3_1_1TheoryCore.html#ae0a477cb44ee4e9285008f0653b2f366">CVC3::TheoryCore::d_assignment</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>The set of named expressions to evaluate on a GET_ASSIGNMENT request. </p> <p>Definition at line <a class="el" href="theory__core_8h_source.html#l00206">206</a> of file <a class="el" href="theory__core_8h_source.html">theory_core.h</a>.</p> <p>Referenced by <a class="el" href="theory__core_8cpp_source.html#l04320">getAssignment()</a>, and <a class="el" href="theory__core_8cpp_source.html#l03589">parseExpr()</a>.</p> </div> </div> <a class="anchor" id="ae1618a8812ad74a6349ad585bb677354"></a><!-- doxytag: member="CVC3::TheoryCore::d_coreSatAPI" ref="ae1618a8812ad74a6349ad585bb677354" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCVC3_1_1TheoryCore_1_1CoreSatAPI.html">CoreSatAPI</a>* <a class="el" href="classCVC3_1_1TheoryCore.html#ae1618a8812ad74a6349ad585bb677354">CVC3::TheoryCore::d_coreSatAPI</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="theory__core_8h_source.html#l00240">240</a> of file <a class="el" href="theory__core_8h_source.html">theory_core.h</a>.</p> <p>Referenced by <a class="el" href="theory_8cpp_source.html#l00157">CVC3::Theory::addGlobalLemma()</a>, <a class="el" href="theory_8cpp_source.html#l00148">CVC3::Theory::addSplitter()</a>, <a class="el" href="theory__core_8cpp_source.html#l03713">assignValue()</a>, <a class="el" href="theory_8cpp_source.html#l00816">CVC3::Theory::newSubtypeExpr()</a>, and <a class="el" href="theory__core_8h_source.html#l00340">registerCoreSatAPI()</a>.</p> </div> </div> <hr/>The documentation for this class was generated from the following files:<ul> <li><a class="el" href="theory__core_8h_source.html">theory_core.h</a></li> <li><a class="el" href="core__theorem__producer_8cpp_source.html">core_theorem_producer.cpp</a></li> <li><a class="el" href="theory__core_8cpp_source.html">theory_core.cpp</a></li> </ul> </div> <hr class="footer"/><address class="footer"><small>Generated on Wed Sep 7 2011 for CVC3 by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address> </body> </html>