Sophie

Sophie

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

cvc3-doc-2.4.1-1.fc15.noarch.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>CVC3: CVC3::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&#160;<span id="projectnumber">2.4.1</span></div>
  </td>
 </tr>
 </tbody>
</table>
</div>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
  <div id="nav-path" class="navpath">
    <ul>
      <li class="navelem"><a class="el" href="namespaceCVC3.html">CVC3</a>      </li>
      <li class="navelem"><a class="el" href="classCVC3_1_1TheoryCore.html">TheoryCore</a>      </li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pri-types">Private Types</a> &#124;
<a href="#pri-methods">Private Member Functions</a> &#124;
<a href="#pri-attribs">Private Attributes</a> &#124;
<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 &lt;<a class="el" href="theory__core_8h_source.html">theory_core.h</a>&gt;</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> &amp;flags, <a class="el" href="classCVC3_1_1Statistics.html">Statistics</a> &amp;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> &amp;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> &amp;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> &amp; <a class="el" href="classCVC3_1_1TheoryCore.html#a46b2792a5c24f95ccfc3fbfc0456b09f">getFlags</a> () const 
<li><a class="el" href="classCVC3_1_1Statistics.html">Statistics</a> &amp; <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>&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp; <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>&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp; <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> &amp;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> &amp;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>&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp; <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> &amp;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> &amp;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> &amp;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> &amp;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> &amp;e, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;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> &amp;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> &amp;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> &amp;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> &amp;e, <a class="el" href="classCVC3_1_1Unsigned.html">Unsigned</a> &amp;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> &amp;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> &amp;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> &amp;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> &amp;t, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;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> &amp;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> &amp; <a class="el" href="classCVC3_1_1TheoryCore.html#ab334f07590ad297ad6daa3383c61de5f">print</a> (<a class="el" href="classCVC3_1_1ExprStream.html">ExprStream</a> &amp;os, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;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> &amp;thm)
<li>void <a class="el" href="classCVC3_1_1TheoryCore.html#a6edb2212446e43165666dcb7f319985a">computeModelBasic</a> (const std::vector&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;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> &amp;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> &amp;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&lt; std::string &gt; &amp;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> &amp;e, const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;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> &amp;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> &amp;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> &amp;t, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;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> &amp;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> &amp;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>&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;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> &amp;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> &amp;e, <a class="el" href="classCVC3_1_1ExprMap.html">ExprMap</a>&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;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> &amp;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> &amp;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> &amp;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> &amp;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> &amp;e, <a class="el" href="classCVC3_1_1Theory.html">Theory</a> *i, const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;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> &amp;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> &amp;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> &amp;s, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e, const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;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> &amp;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> &amp;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> &amp;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> &amp;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> &amp;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> &amp;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> &amp;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> &amp;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> &amp;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> &amp; <a class="el" href="classCVC3_1_1TheoryCore.html#a2856680de1938c077d7b25c865992de6">printSmtLibShared</a> (<a class="el" href="classCVC3_1_1ExprStream.html">ExprStream</a> &amp;os, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;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> &amp;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 &amp;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> &amp;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> &amp; <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> &amp; <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&lt; <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &gt; <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&lt; <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &gt; <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>&lt; bool &gt; <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>&lt; std::string, bool &gt; <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>&lt; <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &gt; <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>&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; <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>&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a>, <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &gt; <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>&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; <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&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; <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&lt; std::string, <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; <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&lt; std::pair<br class="typebreak"/>
&lt; std::string, <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &gt; <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 &lt;name, var&gt;  <a href="#a72592744e8f94ed7c832ad895791a72a"></a><br/></dl><li><a class="el" href="classHash_1_1hash__map.html">std::hash_map</a>&lt; std::string, <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; <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>&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; <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>&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; <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>&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; * <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>&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; <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&lt; <a class="el" href="classCVC3_1_1Theory.html">Theory</a> * &gt; <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>&lt; int, <a class="el" href="classCVC3_1_1Theory.html">Theory</a> * &gt; <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>&lt; std::vector&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &gt; <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>&lt; <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &gt; <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&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; <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>&lt; <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &gt; <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> &amp;)
<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, &gt;=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, &gt;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>&lt; <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &gt; <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>&lt; unsigned &gt; <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&lt; <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &gt; <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&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; <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&lt; std::pair&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a>, <br class="typebreak"/>
<a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &gt; <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>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a9563215d97859a27f661c1517614f6cea1c0ce47707a6729f337134fc3239ef07"></a><!-- doxytag: member="NORMAL" ref="a9563215d97859a27f661c1517614f6cea1c0ce47707a6729f337134fc3239ef07" args="" -->NORMAL</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a9563215d97859a27f661c1517614f6ceaf927a488bd3f95079d191debe7e93a06"></a><!-- doxytag: member="FULL" ref="a9563215d97859a27f661c1517614f6ceaf927a488bd3f95079d191debe7e93a06" args="" -->FULL</em>&nbsp;</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 &amp; 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 &amp;flags, Statistics &amp;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> *&#160;</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> *&#160;</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> *&#160;</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> *&#160;</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> &amp;&#160;</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> &amp;&#160;</td>
          <td class="paramname"><em>statistics</em>&#160;</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> *&#160;</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>&#160;</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 &amp;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> &amp;&#160;</td>
          <td class="paramname"><em>e</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1NotifyList.html">NotifyList</a> *&#160;</td>
          <td class="paramname"><em>L</em>&#160;</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 &amp;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> &amp;&#160;</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 &amp;s, const Expr &amp;e, const Theorem &amp;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> &amp;&#160;</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> &amp;&#160;</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> &amp;&#160;</td>
          <td class="paramname"><em>thm</em>&#160;</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 &amp;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> &amp;&#160;</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 &amp;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> &amp;&#160;</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 &amp;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> &amp;&#160;</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 &amp;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> &amp;&#160;</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 &amp;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> &amp;&#160;</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 &amp;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> &amp;&#160;</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&lt; Data &gt;::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 &amp;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> &amp;&#160;</td>
          <td class="paramname"><em>e</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>i</em>&#160;</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&#160;</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 &amp;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> &amp;&#160;</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 &amp;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> &amp;&#160;</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 &amp;os, const Expr &amp;e)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1ExprStream.html">ExprStream</a> &amp; TheoryCore::printSmtLibShared </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1ExprStream.html">ExprStream</a> &amp;&#160;</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> &amp;&#160;</td>
          <td class="paramname"><em>e</em>&#160;</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> *&#160;</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 &amp;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> *&#160;</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> &amp;&#160;</td>
          <td class="paramname"><em>e</em>&#160;</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 &amp;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> &amp;&#160;</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>&amp; 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>&amp; 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>&lt;<a class="el" href="classCVC3_1_1Expr.html">Expr</a>&gt;&amp; 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>&lt;<a class="el" href="classCVC3_1_1Expr.html">Expr</a>&gt;&amp; 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 &amp;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> &amp;&#160;</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&lt; _Key, _Data, _HashFcn, _EqualKey &gt;::end()</a>, <a class="el" href="hash__map_8h_source.html#l00171">Hash::hash_map&lt; _Key, _Data, _HashFcn, _EqualKey &gt;::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 &amp;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> &amp;&#160;</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>&lt;<a class="el" href="classCVC3_1_1Expr.html">Expr</a>&gt;&amp; 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 &amp;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> &amp;&#160;</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 &amp;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> &amp;&#160;</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&#160;</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 &amp;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> &amp;&#160;</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 &amp;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> &amp;&#160;</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 &amp;e, const Expr &amp;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> &amp;&#160;</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> &amp;&#160;</td>
          <td class="paramname"><em>d</em>&#160;</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 &amp;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> &amp;&#160;</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 &amp;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> &amp;&#160;</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 &amp;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> &amp;&#160;</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 &amp;e, Unsigned &amp;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> &amp;&#160;</td>
          <td class="paramname"><em>e</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1Unsigned.html">Unsigned</a> &amp;&#160;</td>
          <td class="paramname"><em>n</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>enumerate</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>computeSize</em>&#160;</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 &amp;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> &amp;&#160;</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 &amp;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> &amp;&#160;</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 &amp;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> &amp;&#160;</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 &amp;t, const Expr &amp;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> &amp;&#160;</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> &amp;&#160;</td>
          <td class="paramname"><em>e</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p><a class="el" href="classCVC3_1_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 &amp;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> &amp;&#160;</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&lt; Data &gt;::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&lt; Data &gt;::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 &amp;os, const Expr &amp;e)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1ExprStream.html">ExprStream</a> &amp; TheoryCore::print </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1ExprStream.html">ExprStream</a> &amp;&#160;</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> &amp;&#160;</td>
          <td class="paramname"><em>e</em>&#160;</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&lt; Data &gt;::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 &amp;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> &amp;&#160;</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&lt; Expr &gt; &amp;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&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;&#160;</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 &amp;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> &amp;&#160;</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 &amp;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> &amp;&#160;</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&lt; Key, Data, HashFcn &gt;::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&lt; std::string &gt; &amp;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&lt; std::string &gt; &amp;&#160;</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&lt; Key, Data, HashFcn &gt;::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&lt; Key, Data, HashFcn &gt;::end()</a>, and <a class="el" href="cdmap_8h_source.html#l00171">CVC3::CDMap&lt; Key, Data, HashFcn &gt;::size()</a>.</p>

</div>
</div>
<a class="anchor" id="ade1177fbf32e95b9433eb608c82857d7"></a><!-- doxytag: member="CVC3::TheoryCore::registerAtom" ref="ade1177fbf32e95b9433eb608c82857d7" args="(const Expr &amp;e, const Theorem &amp;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> &amp;&#160;</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> &amp;&#160;</td>
          <td class="paramname"><em>thm</em>&#160;</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&lt; _Key, _Data, _HashFcn, _EqualKey &gt;::end()</a>, <a class="el" href="hash__map_8h_source.html#l00171">Hash::hash_map&lt; _Key, _Data, _HashFcn, _EqualKey &gt;::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&#160;</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&lt; T &gt;::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&lt; T &gt;::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&#160;</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&lt; T &gt;::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 &amp;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> &amp;&#160;</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&lt; Data &gt;::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&lt; _Key, _Data, _HashFcn, _EqualKey &gt;::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&lt; Data &gt;::end()</a>, <a class="el" href="hash__map_8h_source.html#l00197">Hash::hash_map&lt; _Key, _Data, _HashFcn, _EqualKey &gt;::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&lt; _Key, _Data, _HashFcn, _EqualKey &gt;::find()</a>, <a class="el" href="expr__map_8h_source.html#l00194">CVC3::ExprMap&lt; Data &gt;::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 &amp;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> &amp;&#160;</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 &amp;t, const Expr &amp;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> &amp;&#160;</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> &amp;&#160;</td>
          <td class="paramname"><em>val</em>&#160;</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&lt; Data &gt;::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 &amp;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> &amp;&#160;</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&lt; Data &gt;::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 &amp;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> &amp;&#160;</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&lt; Data &gt;::clear()</a>, <a class="el" href="expr__map_8h_source.html#l00308">CVC3::ExprHashMap&lt; Data &gt;::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&lt; Expr &gt; &amp;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>&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;&#160;</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&lt; Data &gt;::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&lt; Data &gt;::end()</a>, <a class="el" href="expr__map_8h_source.html#l00329">CVC3::ExprHashMap&lt; Data &gt;::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 &amp;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> &amp;&#160;</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 &amp;e, ExprMap&lt; Expr &gt; &amp;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> &amp;&#160;</td>
          <td class="paramname"><em>e</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1ExprMap.html">ExprMap</a>&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>m</em>&#160;</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&lt; Data &gt;::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&lt; Data &gt;::end()</a>, <a class="el" href="expr__map_8h_source.html#l00329">CVC3::ExprHashMap&lt; Data &gt;::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&#160;</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&#160;</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 &amp;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> &amp;&#160;</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>&#160;</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 &amp;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> &amp;&#160;</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 &amp;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 &amp;&#160;</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&lt; Key, Data, HashFcn &gt;::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 &amp;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> &amp;&#160;</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 &amp;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> &amp;&#160;</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 &amp;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> &amp;&#160;</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 &amp;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> &amp;&#160;</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 &amp;e, Theory *i, const Theorem &amp;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> &amp;&#160;</td>
          <td class="paramname"><em>e</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1Theory.html">Theory</a> *&#160;</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> &amp;&#160;</td>
          <td class="paramname"><em>thm</em>&#160;</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&lt; T &gt;::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>&amp; <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>&amp; <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&lt;<a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>&gt; <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&lt;<a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>&gt; <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>&lt;bool&gt; <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>&lt;std::string, bool&gt; <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>&lt;<a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>&gt; <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>&lt;<a class="el" href="classCVC3_1_1Expr.html">Expr</a>&gt; <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>&lt;<a class="el" href="classCVC3_1_1Expr.html">Expr</a>, <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>&gt; <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>&lt;<a class="el" href="classCVC3_1_1Expr.html">Expr</a>&gt; <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&lt;<a class="el" href="classCVC3_1_1Expr.html">Expr</a>&gt; <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&lt;std::string, <a class="el" href="classCVC3_1_1Expr.html">Expr</a>&gt; <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&lt;std::pair&lt;std::string, <a class="el" href="classCVC3_1_1Expr.html">Expr</a>&gt; &gt; <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 &lt;name, var&gt; </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>&lt;std::string, <a class="el" href="classCVC3_1_1Expr.html">Expr</a>&gt; <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>&lt;<a class="el" href="classCVC3_1_1Expr.html">Expr</a>&gt; <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>&lt;<a class="el" href="classCVC3_1_1Expr.html">Expr</a>&gt; <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>&lt;<a class="el" href="classCVC3_1_1Expr.html">Expr</a>&gt;* <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>&lt;<a class="el" href="classCVC3_1_1Expr.html">Expr</a>&gt; <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&lt;<a class="el" href="classCVC3_1_1Theory.html">Theory</a>*&gt; <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>&lt;int, <a class="el" href="classCVC3_1_1Theory.html">Theory</a>*&gt; <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>&lt;std::vector&lt;<a class="el" href="classCVC3_1_1Expr.html">Expr</a>&gt; &gt; <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>&lt;<a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>&gt; <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&lt;<a class="el" href="classCVC3_1_1Expr.html">Expr</a>&gt; <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>&lt;<a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>&gt; <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 &amp;)" -->
<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> &amp;)<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, &gt;=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, &gt;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>&lt;<a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>&gt; <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>&lt;unsigned&gt; <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&lt;<a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>&gt; <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&lt;<a class="el" href="classCVC3_1_1Expr.html">Expr</a>&gt; <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&lt; std::pair&lt;<a class="el" href="classCVC3_1_1Expr.html">Expr</a>, <a class="el" href="classCVC3_1_1Expr.html">Expr</a>&gt; &gt; <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&#160;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
</html>