Sophie

Sophie

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

cvc3-doc-2.4.1-1.noarch.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>CVC3: CVC3::TheoryArithNew Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">CVC3
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.2 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#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="inherits.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_1TheoryArithNew.html">TheoryArithNew</a></li>  </ul>
</div>
</div><!-- top -->
<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> &#124;
<a href="classCVC3_1_1TheoryArithNew-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">CVC3::TheoryArithNew Class Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p><code>#include &lt;<a class="el" href="theory__arith__new_8h_source.html">theory_arith_new.h</a>&gt;</code></p>

<p>Inherits <a class="el" href="classCVC3_1_1TheoryArith.html">CVC3::TheoryArith</a>.</p>
<div class="dynheader">
Collaboration diagram for CVC3::TheoryArithNew:</div>
<div class="dyncontent">
<div class="center"><img src="classCVC3_1_1TheoryArithNew__coll__graph.gif" border="0" usemap="#CVC3_1_1TheoryArithNew_coll__map" alt="Collaboration graph"/></div>
<map name="CVC3_1_1TheoryArithNew_coll__map" id="CVC3_1_1TheoryArithNew_coll__map">
</map>
</div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structCVC3_1_1TheoryArithNew_1_1BoundInfo.html">BoundInfo</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew_1_1EpsRational.html">EpsRational</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structCVC3_1_1TheoryArithNew_1_1ExprBoundInfo.html">ExprBoundInfo</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew_1_1FreeConst.html">FreeConst</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew_1_1Ineq.html">Ineq</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Private class for an inequality in the Fourier-Motzkin database.  <a href="classCVC3_1_1TheoryArithNew_1_1Ineq.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew_1_1VarOrderGraph.html">VarOrderGraph</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a420591a664c53906e735b528f7dc2c94"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#a420591a664c53906e735b528f7dc2c94">separateMonomial</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e, <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;c, <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;var)</td></tr>
<tr class="memdesc:a420591a664c53906e735b528f7dc2c94"><td class="mdescLeft">&#160;</td><td class="mdescRight">Separate monomial e = c*p1*...*pn into c and 1*p1*...*pn.  <a href="#a420591a664c53906e735b528f7dc2c94"></a><br/></td></tr>
<tr class="separator:a420591a664c53906e735b528f7dc2c94"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8e6e4c763da5203506a4ccc89d884655"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#a8e6e4c763da5203506a4ccc89d884655">isInteger</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="memdesc:a8e6e4c763da5203506a4ccc89d884655"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check the term t for integrality (return bool)  <a href="#a8e6e4c763da5203506a4ccc89d884655"></a><br/></td></tr>
<tr class="separator:a8e6e4c763da5203506a4ccc89d884655"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab4411e3c522623b9041aa52ce7d857f7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#ab4411e3c522623b9041aa52ce7d857f7">TheoryArithNew</a> (<a class="el" href="classCVC3_1_1TheoryCore.html">TheoryCore</a> *core)</td></tr>
<tr class="separator:ab4411e3c522623b9041aa52ce7d857f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad1803172bb5078cdfc962febe9b080dc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#ad1803172bb5078cdfc962febe9b080dc">~TheoryArithNew</a> ()</td></tr>
<tr class="separator:ad1803172bb5078cdfc962febe9b080dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac92f7d2a8db02ccf23fe15302dee278d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1ArithProofRules.html">ArithProofRules</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#ac92f7d2a8db02ccf23fe15302dee278d">createProofRules</a> ()</td></tr>
<tr class="separator:ac92f7d2a8db02ccf23fe15302dee278d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a73bfa7842e5dfb1bbcf540b6a0ce49c8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#a73bfa7842e5dfb1bbcf540b6a0ce49c8">addSharedTerm</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="separator:a73bfa7842e5dfb1bbcf540b6a0ce49c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad083c5101196d8ea5aecf48dc00a9341"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#ad083c5101196d8ea5aecf48dc00a9341">assertFact</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;e)</td></tr>
<tr class="memdesc:ad083c5101196d8ea5aecf48dc00a9341"><td class="mdescLeft">&#160;</td><td class="mdescRight">Assert a new fact to the decision procedure.  <a href="#ad083c5101196d8ea5aecf48dc00a9341"></a><br/></td></tr>
<tr class="separator:ad083c5101196d8ea5aecf48dc00a9341"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3dafcfa8f6451023a83ce69c53fac641"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#a3dafcfa8f6451023a83ce69c53fac641">refineCounterExample</a> ()</td></tr>
<tr class="memdesc:a3dafcfa8f6451023a83ce69c53fac641"><td class="mdescLeft">&#160;</td><td class="mdescRight">Process disequalities from the arrangement for model generation.  <a href="#a3dafcfa8f6451023a83ce69c53fac641"></a><br/></td></tr>
<tr class="separator:a3dafcfa8f6451023a83ce69c53fac641"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7d73feef91b15cb086f6d1b7a7bd19c2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#a7d73feef91b15cb086f6d1b7a7bd19c2">computeModelBasic</a> (const std::vector&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;v)</td></tr>
<tr class="memdesc:a7d73feef91b15cb086f6d1b7a7bd19c2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Assign concrete values to basic-type variables in v.  <a href="#a7d73feef91b15cb086f6d1b7a7bd19c2"></a><br/></td></tr>
<tr class="separator:a7d73feef91b15cb086f6d1b7a7bd19c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5c9f6212127845ff56f5c88aff72d49a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#a5c9f6212127845ff56f5c88aff72d49a">computeModel</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e, std::vector&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;vars)</td></tr>
<tr class="memdesc:a5c9f6212127845ff56f5c88aff72d49a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute the value of a compound variable from the more primitive ones.  <a href="#a5c9f6212127845ff56f5c88aff72d49a"></a><br/></td></tr>
<tr class="separator:a5c9f6212127845ff56f5c88aff72d49a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af7b2bbb0c854bab9488a19b1d3072cb5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#af7b2bbb0c854bab9488a19b1d3072cb5">checkSat</a> (bool fullEffort)</td></tr>
<tr class="memdesc:af7b2bbb0c854bab9488a19b1d3072cb5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check for satisfiability in the theory.  <a href="#af7b2bbb0c854bab9488a19b1d3072cb5"></a><br/></td></tr>
<tr class="separator:af7b2bbb0c854bab9488a19b1d3072cb5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adf76a677d3133da1fb3e8cf33ba26cc9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#adf76a677d3133da1fb3e8cf33ba26cc9">rewrite</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="memdesc:adf76a677d3133da1fb3e8cf33ba26cc9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Theory-specific rewrite rules.  <a href="#adf76a677d3133da1fb3e8cf33ba26cc9"></a><br/></td></tr>
<tr class="separator:adf76a677d3133da1fb3e8cf33ba26cc9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a36a8c831cfe356a9e779988cae3e101c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#a36a8c831cfe356a9e779988cae3e101c">setup</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="memdesc:a36a8c831cfe356a9e779988cae3e101c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set up the term e for call-backs when e or its children change.  <a href="#a36a8c831cfe356a9e779988cae3e101c"></a><br/></td></tr>
<tr class="separator:a36a8c831cfe356a9e779988cae3e101c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3790410296752fded1074ce1b808598b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#a3790410296752fded1074ce1b808598b">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)</td></tr>
<tr class="memdesc:a3790410296752fded1074ce1b808598b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Notify a theory of a new equality.  <a href="#a3790410296752fded1074ce1b808598b"></a><br/></td></tr>
<tr class="separator:a3790410296752fded1074ce1b808598b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a35ee82710c965d845aecbe6320f2ae38"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#a35ee82710c965d845aecbe6320f2ae38">solve</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;e)</td></tr>
<tr class="memdesc:a35ee82710c965d845aecbe6320f2ae38"><td class="mdescLeft">&#160;</td><td class="mdescRight">An optional solver.  <a href="#a35ee82710c965d845aecbe6320f2ae38"></a><br/></td></tr>
<tr class="separator:a35ee82710c965d845aecbe6320f2ae38"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae4ed8b9b3074828d356a35192288b397"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#ae4ed8b9b3074828d356a35192288b397">checkAssertEqInvariant</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;e)</td></tr>
<tr class="memdesc:ae4ed8b9b3074828d356a35192288b397"><td class="mdescLeft">&#160;</td><td class="mdescRight">A debug check used by the primary solver.  <a href="#ae4ed8b9b3074828d356a35192288b397"></a><br/></td></tr>
<tr class="separator:ae4ed8b9b3074828d356a35192288b397"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a272700cefa9c3f96bde0b61cc1d0b69e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#a272700cefa9c3f96bde0b61cc1d0b69e">checkType</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="memdesc:a272700cefa9c3f96bde0b61cc1d0b69e"><td class="mdescLeft">&#160;</td><td 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="#a272700cefa9c3f96bde0b61cc1d0b69e"></a><br/></td></tr>
<tr class="separator:a272700cefa9c3f96bde0b61cc1d0b69e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1070c24b2f7c993390dc1e3f00282f94"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceCVC3.html#af969e724f8b7016909f5804e8cea3e54">Cardinality</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#a1070c24b2f7c993390dc1e3f00282f94">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)</td></tr>
<tr class="memdesc:a1070c24b2f7c993390dc1e3f00282f94"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute information related to finiteness of types.  <a href="#a1070c24b2f7c993390dc1e3f00282f94"></a><br/></td></tr>
<tr class="separator:a1070c24b2f7c993390dc1e3f00282f94"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a86fdcfbc819885dac3640dcf68472554"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#a86fdcfbc819885dac3640dcf68472554">computeType</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="memdesc:a86fdcfbc819885dac3640dcf68472554"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute and store the type of e.  <a href="#a86fdcfbc819885dac3640dcf68472554"></a><br/></td></tr>
<tr class="separator:a86fdcfbc819885dac3640dcf68472554"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a84a67c02055bd8d4e4eb3d7c60ddf495"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Type.html">Type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#a84a67c02055bd8d4e4eb3d7c60ddf495">computeBaseType</a> (const <a class="el" href="classCVC3_1_1Type.html">Type</a> &amp;t)</td></tr>
<tr class="memdesc:a84a67c02055bd8d4e4eb3d7c60ddf495"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute the base type of the top-level operator of an arbitrary type.  <a href="#a84a67c02055bd8d4e4eb3d7c60ddf495"></a><br/></td></tr>
<tr class="separator:a84a67c02055bd8d4e4eb3d7c60ddf495"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adb72936111e69a1ab0e032cc017ee2db"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#adb72936111e69a1ab0e032cc017ee2db">computeModelTerm</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e, std::vector&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;v)</td></tr>
<tr class="memdesc:adb72936111e69a1ab0e032cc017ee2db"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add variables from 'e' to 'v' for constructing a concrete model.  <a href="#adb72936111e69a1ab0e032cc017ee2db"></a><br/></td></tr>
<tr class="separator:adb72936111e69a1ab0e032cc017ee2db"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a46272039047747962cdfbb34d6e54476"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Expr.html">Expr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#a46272039047747962cdfbb34d6e54476">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)</td></tr>
<tr class="memdesc:a46272039047747962cdfbb34d6e54476"><td class="mdescLeft">&#160;</td><td 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="#a46272039047747962cdfbb34d6e54476"></a><br/></td></tr>
<tr class="separator:a46272039047747962cdfbb34d6e54476"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa618dbba5196953efee6954efe321ef8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Expr.html">Expr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#aa618dbba5196953efee6954efe321ef8">computeTCC</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="memdesc:aa618dbba5196953efee6954efe321ef8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute and cache the TCC of e.  <a href="#aa618dbba5196953efee6954efe321ef8"></a><br/></td></tr>
<tr class="separator:aa618dbba5196953efee6954efe321ef8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a01afc8056a17c0412af99b3c33bace20"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1ExprStream.html">ExprStream</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#a01afc8056a17c0412af99b3c33bace20">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)</td></tr>
<tr class="memdesc:a01afc8056a17c0412af99b3c33bace20"><td class="mdescLeft">&#160;</td><td class="mdescRight">Theory-specific pretty-printing.  <a href="#a01afc8056a17c0412af99b3c33bace20"></a><br/></td></tr>
<tr class="separator:a01afc8056a17c0412af99b3c33bace20"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae909a0b86693e59e95c69de37e6adf08"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classCVC3_1_1Expr.html">Expr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#ae909a0b86693e59e95c69de37e6adf08">parseExprOp</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="memdesc:ae909a0b86693e59e95c69de37e6adf08"><td class="mdescLeft">&#160;</td><td class="mdescRight">Theory-specific parsing implemented by the DP.  <a href="#ae909a0b86693e59e95c69de37e6adf08"></a><br/></td></tr>
<tr class="separator:ae909a0b86693e59e95c69de37e6adf08"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acf71ca1da6261f1fb8f14522613de497"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#acf71ca1da6261f1fb8f14522613de497">registerAtom</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="separator:acf71ca1da6261f1fb8f14522613de497"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad4e8b908bccb2d534552f968bd27979c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1TheoryArithNew_1_1EpsRational.html">EpsRational</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#ad4e8b908bccb2d534552f968bd27979c">getLowerBound</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;x) const </td></tr>
<tr class="separator:ad4e8b908bccb2d534552f968bd27979c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7fcc9a229fd6125188d69f4bc282cdfb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1TheoryArithNew_1_1EpsRational.html">EpsRational</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#a7fcc9a229fd6125188d69f4bc282cdfb">getUpperBound</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;x) const </td></tr>
<tr class="separator:a7fcc9a229fd6125188d69f4bc282cdfb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab27c747e527f4e6a9f0bc39692a706af"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#ab27c747e527f4e6a9f0bc39692a706af">getLowerBoundThm</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;x) const </td></tr>
<tr class="separator:ab27c747e527f4e6a9f0bc39692a706af"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab41d31e40d053398a37f77a7a797c7a7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#ab41d31e40d053398a37f77a7a797c7a7">getUpperBoundThm</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;x) const </td></tr>
<tr class="separator:ab41d31e40d053398a37f77a7a797c7a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a41dbe160161458e73fa669fe891ec529"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1TheoryArithNew_1_1EpsRational.html">EpsRational</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#a41dbe160161458e73fa669fe891ec529">getBeta</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;x)</td></tr>
<tr class="separator:a41dbe160161458e73fa669fe891ec529"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classCVC3_1_1TheoryArith"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classCVC3_1_1TheoryArith')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classCVC3_1_1TheoryArith.html">CVC3::TheoryArith</a></td></tr>
<tr class="memitem:a6a2211c8a2f43f881c2d9cf31deb6f08 inherit pub_methods_classCVC3_1_1TheoryArith"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArith.html#a6a2211c8a2f43f881c2d9cf31deb6f08">TheoryArith</a> (<a class="el" href="classCVC3_1_1TheoryCore.html">TheoryCore</a> *core, const std::string &amp;name)</td></tr>
<tr class="separator:a6a2211c8a2f43f881c2d9cf31deb6f08 inherit pub_methods_classCVC3_1_1TheoryArith"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a23882e28175f07c2f0636f5ffe423595 inherit pub_methods_classCVC3_1_1TheoryArith"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArith.html#a23882e28175f07c2f0636f5ffe423595">~TheoryArith</a> ()</td></tr>
<tr class="separator:a23882e28175f07c2f0636f5ffe423595 inherit pub_methods_classCVC3_1_1TheoryArith"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7491e5568f08eb89f9e801fccbd94b3e inherit pub_methods_classCVC3_1_1TheoryArith"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArith.html#a7491e5568f08eb89f9e801fccbd94b3e">addMultiplicativeSignSplit</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;case_split_thm)</td></tr>
<tr class="separator:a7491e5568f08eb89f9e801fccbd94b3e inherit pub_methods_classCVC3_1_1TheoryArith"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9c7006698172a267cd3b138baf5ad5a9 inherit pub_methods_classCVC3_1_1TheoryArith"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArith.html#a9c7006698172a267cd3b138baf5ad5a9">addPairToArithOrder</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;smaller, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;bigger)</td></tr>
<tr class="separator:a9c7006698172a267cd3b138baf5ad5a9 inherit pub_methods_classCVC3_1_1TheoryArith"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4df272c28af590572a6ed1b1df8316b0 inherit pub_methods_classCVC3_1_1TheoryArith"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArith.html#a4df272c28af590572a6ed1b1df8316b0">isSyntacticRational</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e, <a class="el" href="classCVC3_1_1Rational.html">Rational</a> &amp;r)</td></tr>
<tr class="memdesc:a4df272c28af590572a6ed1b1df8316b0 inherit pub_methods_classCVC3_1_1TheoryArith"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return whether e is syntactically identical to a rational constant.  <a href="#a4df272c28af590572a6ed1b1df8316b0"></a><br/></td></tr>
<tr class="separator:a4df272c28af590572a6ed1b1df8316b0 inherit pub_methods_classCVC3_1_1TheoryArith"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8a309c3cad104aeb4a0b94b64dff22d7 inherit pub_methods_classCVC3_1_1TheoryArith"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArith.html#a8a309c3cad104aeb4a0b94b64dff22d7">isAtomicArithFormula</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="memdesc:a8a309c3cad104aeb4a0b94b64dff22d7 inherit pub_methods_classCVC3_1_1TheoryArith"><td class="mdescLeft">&#160;</td><td class="mdescRight">Whether any ite's appear in the arithmetic part of the formula e.  <a href="#a8a309c3cad104aeb4a0b94b64dff22d7"></a><br/></td></tr>
<tr class="separator:a8a309c3cad104aeb4a0b94b64dff22d7 inherit pub_methods_classCVC3_1_1TheoryArith"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5fcd4d9b9075f8d00096eea469b81abc inherit pub_methods_classCVC3_1_1TheoryArith"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Expr.html">Expr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArith.html#a5fcd4d9b9075f8d00096eea469b81abc">rewriteToDiff</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="memdesc:a5fcd4d9b9075f8d00096eea469b81abc inherit pub_methods_classCVC3_1_1TheoryArith"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rewrite an atom to look like x - y op c if possible&ndash;for smtlib translation.  <a href="#a5fcd4d9b9075f8d00096eea469b81abc"></a><br/></td></tr>
<tr class="separator:a5fcd4d9b9075f8d00096eea469b81abc inherit pub_methods_classCVC3_1_1TheoryArith"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad758f1c786e6c2631f0b74f0ef135353 inherit pub_methods_classCVC3_1_1TheoryArith"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArith.html#ad758f1c786e6c2631f0b74f0ef135353">canonThm</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;thm)</td></tr>
<tr class="memdesc:ad758f1c786e6c2631f0b74f0ef135353 inherit pub_methods_classCVC3_1_1TheoryArith"><td class="mdescLeft">&#160;</td><td class="mdescRight">Composition of <a class="el" href="classCVC3_1_1TheoryArith.html#a78442f767c7ce9eef62df74af29178d6" title="Canonize the expression e, assuming all children are canonical.">canon(const Expr&amp;)</a> by transitivity: take e0 = e1, canonize e1 to e2, return e0 = e2.  <a href="#ad758f1c786e6c2631f0b74f0ef135353"></a><br/></td></tr>
<tr class="separator:ad758f1c786e6c2631f0b74f0ef135353 inherit pub_methods_classCVC3_1_1TheoryArith"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a03fa81194322b92c488033695bec7204 inherit pub_methods_classCVC3_1_1TheoryArith"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Type.html">Type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArith.html#a03fa81194322b92c488033695bec7204">realType</a> ()</td></tr>
<tr class="separator:a03fa81194322b92c488033695bec7204 inherit pub_methods_classCVC3_1_1TheoryArith"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad3e47bba6c50745ad194cf273aa1d146 inherit pub_methods_classCVC3_1_1TheoryArith"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Type.html">Type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArith.html#ad3e47bba6c50745ad194cf273aa1d146">intType</a> ()</td></tr>
<tr class="separator:ad3e47bba6c50745ad194cf273aa1d146 inherit pub_methods_classCVC3_1_1TheoryArith"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3ddbc092260178d9042bba1c175cb9a6 inherit pub_methods_classCVC3_1_1TheoryArith"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Type.html">Type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArith.html#a3ddbc092260178d9042bba1c175cb9a6">subrangeType</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;l, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;r)</td></tr>
<tr class="separator:a3ddbc092260178d9042bba1c175cb9a6 inherit pub_methods_classCVC3_1_1TheoryArith"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a11b44bafcad3c0875372d6c90a041e2d inherit pub_methods_classCVC3_1_1TheoryArith"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Expr.html">Expr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArith.html#a11b44bafcad3c0875372d6c90a041e2d">rat</a> (<a class="el" href="classCVC3_1_1Rational.html">Rational</a> r)</td></tr>
<tr class="separator:a11b44bafcad3c0875372d6c90a041e2d inherit pub_methods_classCVC3_1_1TheoryArith"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abee62d97b0c60a1a44b7ede3c60b11b6 inherit pub_methods_classCVC3_1_1TheoryArith"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Expr.html">Expr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArith.html#abee62d97b0c60a1a44b7ede3c60b11b6">darkShadow</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;lhs, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;rhs)</td></tr>
<tr class="memdesc:abee62d97b0c60a1a44b7ede3c60b11b6 inherit pub_methods_classCVC3_1_1TheoryArith"><td class="mdescLeft">&#160;</td><td class="mdescRight">Construct the dark shadow expression representing lhs &lt;= rhs.  <a href="#abee62d97b0c60a1a44b7ede3c60b11b6"></a><br/></td></tr>
<tr class="separator:abee62d97b0c60a1a44b7ede3c60b11b6 inherit pub_methods_classCVC3_1_1TheoryArith"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae7d59b8b9bff1ae3cbb1b67a0baa3463 inherit pub_methods_classCVC3_1_1TheoryArith"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Expr.html">Expr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArith.html#ae7d59b8b9bff1ae3cbb1b67a0baa3463">grayShadow</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;v, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e, const <a class="el" href="classCVC3_1_1Rational.html">Rational</a> &amp;c1, const <a class="el" href="classCVC3_1_1Rational.html">Rational</a> &amp;c2)</td></tr>
<tr class="memdesc:ae7d59b8b9bff1ae3cbb1b67a0baa3463 inherit pub_methods_classCVC3_1_1TheoryArith"><td class="mdescLeft">&#160;</td><td class="mdescRight">Construct the gray shadow expression representing c1 &lt;= v - e &lt;= c2.  <a href="#ae7d59b8b9bff1ae3cbb1b67a0baa3463"></a><br/></td></tr>
<tr class="separator:ae7d59b8b9bff1ae3cbb1b67a0baa3463 inherit pub_methods_classCVC3_1_1TheoryArith"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adcdf01dd1e0f78760fefc2a82b604098 inherit pub_methods_classCVC3_1_1TheoryArith"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArith.html#adcdf01dd1e0f78760fefc2a82b604098">leavesAreNumConst</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="separator:adcdf01dd1e0f78760fefc2a82b604098 inherit pub_methods_classCVC3_1_1TheoryArith"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classCVC3_1_1Theory"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classCVC3_1_1Theory')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classCVC3_1_1Theory.html">CVC3::Theory</a></td></tr>
<tr class="memitem:a8fa244df7dcd091e8a5c3381053cc394 inherit pub_methods_classCVC3_1_1Theory"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1Theory.html#a8fa244df7dcd091e8a5c3381053cc394">Theory</a> (<a class="el" href="classCVC3_1_1TheoryCore.html">TheoryCore</a> *<a class="el" href="classCVC3_1_1Theory.html#a90684d2a97738341c00f8f9c99af7b66">theoryCore</a>, const std::string &amp;name)</td></tr>
<tr class="memdesc:a8fa244df7dcd091e8a5c3381053cc394 inherit pub_methods_classCVC3_1_1Theory"><td class="mdescLeft">&#160;</td><td class="mdescRight">Whether theory has been used (for smtlib translator)  <a href="#a8fa244df7dcd091e8a5c3381053cc394"></a><br/></td></tr>
<tr class="separator:a8fa244df7dcd091e8a5c3381053cc394 inherit pub_methods_classCVC3_1_1Theory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac4527f940d280bca9ae279520fd1bc17 inherit pub_methods_classCVC3_1_1Theory"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1Theory.html#ac4527f940d280bca9ae279520fd1bc17">~Theory</a> (void)</td></tr>
<tr class="memdesc:ac4527f940d280bca9ae279520fd1bc17 inherit pub_methods_classCVC3_1_1Theory"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor.  <a href="#ac4527f940d280bca9ae279520fd1bc17"></a><br/></td></tr>
<tr class="separator:ac4527f940d280bca9ae279520fd1bc17 inherit pub_methods_classCVC3_1_1Theory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abc2e30308c9e1f3cf752cfe8d939df1e inherit pub_methods_classCVC3_1_1Theory"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1ExprManager.html">ExprManager</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1Theory.html#abc2e30308c9e1f3cf752cfe8d939df1e">getEM</a> ()</td></tr>
<tr class="memdesc:abc2e30308c9e1f3cf752cfe8d939df1e inherit pub_methods_classCVC3_1_1Theory"><td class="mdescLeft">&#160;</td><td class="mdescRight">Access to <a class="el" href="classCVC3_1_1ExprManager.html">ExprManager</a>.  <a href="#abc2e30308c9e1f3cf752cfe8d939df1e"></a><br/></td></tr>
<tr class="separator:abc2e30308c9e1f3cf752cfe8d939df1e inherit pub_methods_classCVC3_1_1Theory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a90684d2a97738341c00f8f9c99af7b66 inherit pub_methods_classCVC3_1_1Theory"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1TheoryCore.html">TheoryCore</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1Theory.html#a90684d2a97738341c00f8f9c99af7b66">theoryCore</a> ()</td></tr>
<tr class="memdesc:a90684d2a97738341c00f8f9c99af7b66 inherit pub_methods_classCVC3_1_1Theory"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a pointer to theoryCore.  <a href="#a90684d2a97738341c00f8f9c99af7b66"></a><br/></td></tr>
<tr class="separator:a90684d2a97738341c00f8f9c99af7b66 inherit pub_methods_classCVC3_1_1Theory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a50802b148e8192178cf790e6c45ddff3 inherit pub_methods_classCVC3_1_1Theory"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1CommonProofRules.html">CommonProofRules</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1Theory.html#a50802b148e8192178cf790e6c45ddff3">getCommonRules</a> ()</td></tr>
<tr class="memdesc:a50802b148e8192178cf790e6c45ddff3 inherit pub_methods_classCVC3_1_1Theory"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a pointer to common proof rules.  <a href="#a50802b148e8192178cf790e6c45ddff3"></a><br/></td></tr>
<tr class="separator:a50802b148e8192178cf790e6c45ddff3 inherit pub_methods_classCVC3_1_1Theory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4270eb556496ee10472b478b5792751c inherit pub_methods_classCVC3_1_1Theory"><td class="memItemLeft" align="right" valign="top">const std::string &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1Theory.html#a4270eb556496ee10472b478b5792751c">getName</a> () const </td></tr>
<tr class="memdesc:a4270eb556496ee10472b478b5792751c inherit pub_methods_classCVC3_1_1Theory"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the name of the theory (for debugging purposes)  <a href="#a4270eb556496ee10472b478b5792751c"></a><br/></td></tr>
<tr class="separator:a4270eb556496ee10472b478b5792751c inherit pub_methods_classCVC3_1_1Theory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adaea4aa951adbe1561f7b445517378b6 inherit pub_methods_classCVC3_1_1Theory"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1Theory.html#adaea4aa951adbe1561f7b445517378b6">setUsed</a> ()</td></tr>
<tr class="memdesc:adaea4aa951adbe1561f7b445517378b6 inherit pub_methods_classCVC3_1_1Theory"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the "used" flag on this theory (for smtlib translator)  <a href="#adaea4aa951adbe1561f7b445517378b6"></a><br/></td></tr>
<tr class="separator:adaea4aa951adbe1561f7b445517378b6 inherit pub_methods_classCVC3_1_1Theory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5dad9fa356483782703a1ef1024d2a74 inherit pub_methods_classCVC3_1_1Theory"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1Theory.html#a5dad9fa356483782703a1ef1024d2a74">theoryUsed</a> ()</td></tr>
<tr class="memdesc:a5dad9fa356483782703a1ef1024d2a74 inherit pub_methods_classCVC3_1_1Theory"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get whether theory has been used (for smtlib translator)  <a href="#a5dad9fa356483782703a1ef1024d2a74"></a><br/></td></tr>
<tr class="separator:a5dad9fa356483782703a1ef1024d2a74 inherit pub_methods_classCVC3_1_1Theory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab66d477fcc5c27075a25dbfec4988537 inherit pub_methods_classCVC3_1_1Theory"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Theory__API.html#gab66d477fcc5c27075a25dbfec4988537">theoryPreprocess</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="memdesc:gab66d477fcc5c27075a25dbfec4988537 inherit pub_methods_classCVC3_1_1Theory"><td class="mdescLeft">&#160;</td><td class="mdescRight">Theory-specific preprocessing.  <a href="group__Theory__API.html#gab66d477fcc5c27075a25dbfec4988537"></a><br/></td></tr>
<tr class="separator:gab66d477fcc5c27075a25dbfec4988537 inherit pub_methods_classCVC3_1_1Theory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga55b82868b8e9e60906756e797da9355a inherit pub_methods_classCVC3_1_1Theory"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Theory__API.html#ga55b82868b8e9e60906756e797da9355a">simplifyOp</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="memdesc:ga55b82868b8e9e60906756e797da9355a inherit pub_methods_classCVC3_1_1Theory"><td class="mdescLeft">&#160;</td><td class="mdescRight">Recursive simplification step.  <a href="group__Theory__API.html#ga55b82868b8e9e60906756e797da9355a"></a><br/></td></tr>
<tr class="separator:ga55b82868b8e9e60906756e797da9355a inherit pub_methods_classCVC3_1_1Theory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4ce2fe1baec76fcb6120bbd86623ecd2 inherit pub_methods_classCVC3_1_1Theory"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Theory__API.html#ga4ce2fe1baec76fcb6120bbd86623ecd2">assertTypePred</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;pred)</td></tr>
<tr class="memdesc:ga4ce2fe1baec76fcb6120bbd86623ecd2 inherit pub_methods_classCVC3_1_1Theory"><td class="mdescLeft">&#160;</td><td class="mdescRight">Receives all the type predicates for the types of the given theory.  <a href="group__Theory__API.html#ga4ce2fe1baec76fcb6120bbd86623ecd2"></a><br/></td></tr>
<tr class="separator:ga4ce2fe1baec76fcb6120bbd86623ecd2 inherit pub_methods_classCVC3_1_1Theory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaacb9782eae3d1121c415cd4b7650025c inherit pub_methods_classCVC3_1_1Theory"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Theory__API.html#gaacb9782eae3d1121c415cd4b7650025c">rewriteAtomic</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="memdesc:gaacb9782eae3d1121c415cd4b7650025c inherit pub_methods_classCVC3_1_1Theory"><td class="mdescLeft">&#160;</td><td class="mdescRight">Theory-specific rewrites for atomic formulas.  <a href="group__Theory__API.html#gaacb9782eae3d1121c415cd4b7650025c"></a><br/></td></tr>
<tr class="separator:gaacb9782eae3d1121c415cd4b7650025c inherit pub_methods_classCVC3_1_1Theory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga30a5750a0c38416c847e411c7400214a inherit pub_methods_classCVC3_1_1Theory"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Theory__API.html#ga30a5750a0c38416c847e411c7400214a">notifyInconsistent</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;thm)</td></tr>
<tr class="memdesc:ga30a5750a0c38416c847e411c7400214a inherit pub_methods_classCVC3_1_1Theory"><td class="mdescLeft">&#160;</td><td class="mdescRight">Notification of conflict.  <a href="group__Theory__API.html#ga30a5750a0c38416c847e411c7400214a"></a><br/></td></tr>
<tr class="separator:ga30a5750a0c38416c847e411c7400214a inherit pub_methods_classCVC3_1_1Theory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafb1431aa8258f6663ad948ebb08e5330 inherit pub_methods_classCVC3_1_1Theory"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Theory__API.html#gafb1431aa8258f6663ad948ebb08e5330">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)</td></tr>
<tr class="separator:gafb1431aa8258f6663ad948ebb08e5330 inherit pub_methods_classCVC3_1_1Theory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab85541a91803599b7495f709c72c28c5 inherit pub_methods_classCVC3_1_1Theory"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1Theory.html#ab85541a91803599b7495f709c72c28c5">inconsistent</a> ()</td></tr>
<tr class="memdesc:ab85541a91803599b7495f709c72c28c5 inherit pub_methods_classCVC3_1_1Theory"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if the current context is inconsistent.  <a href="#ab85541a91803599b7495f709c72c28c5"></a><br/></td></tr>
<tr class="separator:ab85541a91803599b7495f709c72c28c5 inherit pub_methods_classCVC3_1_1Theory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a89f8e1e02e22ef524c286ce8b87bdea4 inherit pub_methods_classCVC3_1_1Theory"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1Theory.html#a89f8e1e02e22ef524c286ce8b87bdea4">setInconsistent</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;e)</td></tr>
<tr class="memdesc:a89f8e1e02e22ef524c286ce8b87bdea4 inherit pub_methods_classCVC3_1_1Theory"><td class="mdescLeft">&#160;</td><td class="mdescRight">Make the context inconsistent; The formula proved by e must FALSE.  <a href="#a89f8e1e02e22ef524c286ce8b87bdea4"></a><br/></td></tr>
<tr class="separator:a89f8e1e02e22ef524c286ce8b87bdea4 inherit pub_methods_classCVC3_1_1Theory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a08cc815e21d2972f54f8c1e70ce8ab51 inherit pub_methods_classCVC3_1_1Theory"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1Theory.html#a08cc815e21d2972f54f8c1e70ce8ab51">setIncomplete</a> (const std::string &amp;reason)</td></tr>
<tr class="memdesc:a08cc815e21d2972f54f8c1e70ce8ab51 inherit pub_methods_classCVC3_1_1Theory"><td class="mdescLeft">&#160;</td><td class="mdescRight">Mark the current decision branch as possibly incomplete.  <a href="#a08cc815e21d2972f54f8c1e70ce8ab51"></a><br/></td></tr>
<tr class="separator:a08cc815e21d2972f54f8c1e70ce8ab51 inherit pub_methods_classCVC3_1_1Theory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a52158688456f8605b064fbbf7a46039c inherit pub_methods_classCVC3_1_1Theory"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1Theory.html#a52158688456f8605b064fbbf7a46039c">simplify</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="memdesc:a52158688456f8605b064fbbf7a46039c inherit pub_methods_classCVC3_1_1Theory"><td class="mdescLeft">&#160;</td><td class="mdescRight">Simplify a term e and return a <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>(e==e')  <a href="#a52158688456f8605b064fbbf7a46039c"></a><br/></td></tr>
<tr class="separator:a52158688456f8605b064fbbf7a46039c inherit pub_methods_classCVC3_1_1Theory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9d441225b287419426c80a0374d6c6cb inherit pub_methods_classCVC3_1_1Theory"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Expr.html">Expr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1Theory.html#a9d441225b287419426c80a0374d6c6cb">simplifyExpr</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="memdesc:a9d441225b287419426c80a0374d6c6cb inherit pub_methods_classCVC3_1_1Theory"><td class="mdescLeft">&#160;</td><td class="mdescRight">Simplify a term e w.r.t. the current context.  <a href="#a9d441225b287419426c80a0374d6c6cb"></a><br/></td></tr>
<tr class="separator:a9d441225b287419426c80a0374d6c6cb inherit pub_methods_classCVC3_1_1Theory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a93856c9af82b2c25c51b3c36bafb71f4 inherit pub_methods_classCVC3_1_1Theory"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1Theory.html#a93856c9af82b2c25c51b3c36bafb71f4">enqueueFact</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;e)</td></tr>
<tr class="memdesc:a93856c9af82b2c25c51b3c36bafb71f4 inherit pub_methods_classCVC3_1_1Theory"><td class="mdescLeft">&#160;</td><td class="mdescRight">Submit a derived fact to the core from a decision procedure.  <a href="#a93856c9af82b2c25c51b3c36bafb71f4"></a><br/></td></tr>
<tr class="separator:a93856c9af82b2c25c51b3c36bafb71f4 inherit pub_methods_classCVC3_1_1Theory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af833743a1332ba2b84bdc4118a05300f inherit pub_methods_classCVC3_1_1Theory"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1Theory.html#af833743a1332ba2b84bdc4118a05300f">enqueueSE</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;e)</td></tr>
<tr class="memdesc:af833743a1332ba2b84bdc4118a05300f inherit pub_methods_classCVC3_1_1Theory"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if the current context is inconsistent.  <a href="#af833743a1332ba2b84bdc4118a05300f"></a><br/></td></tr>
<tr class="separator:af833743a1332ba2b84bdc4118a05300f inherit pub_methods_classCVC3_1_1Theory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a135cfab97004ee025a7840d72b6c4e1d inherit pub_methods_classCVC3_1_1Theory"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1Theory.html#a135cfab97004ee025a7840d72b6c4e1d">assertEqualities</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;e)</td></tr>
<tr class="memdesc:a135cfab97004ee025a7840d72b6c4e1d inherit pub_methods_classCVC3_1_1Theory"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handle new equalities (usually asserted through addFact)  <a href="#a135cfab97004ee025a7840d72b6c4e1d"></a><br/></td></tr>
<tr class="separator:a135cfab97004ee025a7840d72b6c4e1d inherit pub_methods_classCVC3_1_1Theory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abd5a64ee867dda0c216a04e9fc7fbd6c inherit pub_methods_classCVC3_1_1Theory"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classCVC3_1_1Expr.html">Expr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1Theory.html#abd5a64ee867dda0c216a04e9fc7fbd6c">parseExpr</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="memdesc:abd5a64ee867dda0c216a04e9fc7fbd6c inherit pub_methods_classCVC3_1_1Theory"><td class="mdescLeft">&#160;</td><td class="mdescRight">Parse the generic expression.  <a href="#abd5a64ee867dda0c216a04e9fc7fbd6c"></a><br/></td></tr>
<tr class="separator:abd5a64ee867dda0c216a04e9fc7fbd6c inherit pub_methods_classCVC3_1_1Theory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a917b117d28514f486b296568fcd1cfd1 inherit pub_methods_classCVC3_1_1Theory"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1Theory.html#a917b117d28514f486b296568fcd1cfd1">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)</td></tr>
<tr class="memdesc:a917b117d28514f486b296568fcd1cfd1 inherit pub_methods_classCVC3_1_1Theory"><td class="mdescLeft">&#160;</td><td class="mdescRight">Assigns t a concrete value val. Used in model generation.  <a href="#a917b117d28514f486b296568fcd1cfd1"></a><br/></td></tr>
<tr class="separator:a917b117d28514f486b296568fcd1cfd1 inherit pub_methods_classCVC3_1_1Theory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4a9cda0b7c7b2fd0874e7d7b9819a68f inherit pub_methods_classCVC3_1_1Theory"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1Theory.html#a4a9cda0b7c7b2fd0874e7d7b9819a68f">assignValue</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;thm)</td></tr>
<tr class="memdesc:a4a9cda0b7c7b2fd0874e7d7b9819a68f inherit pub_methods_classCVC3_1_1Theory"><td class="mdescLeft">&#160;</td><td class="mdescRight">Record a derived assignment to a variable (LHS).  <a href="#a4a9cda0b7c7b2fd0874e7d7b9819a68f"></a><br/></td></tr>
<tr class="separator:a4a9cda0b7c7b2fd0874e7d7b9819a68f inherit pub_methods_classCVC3_1_1Theory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a41499be2b31d82e7bec5efc880126510 inherit pub_methods_classCVC3_1_1Theory"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1Theory.html#a41499be2b31d82e7bec5efc880126510">registerKinds</a> (<a class="el" href="classCVC3_1_1Theory.html">Theory</a> *theory, std::vector&lt; int &gt; &amp;kinds)</td></tr>
<tr class="memdesc:a41499be2b31d82e7bec5efc880126510 inherit pub_methods_classCVC3_1_1Theory"><td class="mdescLeft">&#160;</td><td class="mdescRight">Register new kinds with the given theory.  <a href="#a41499be2b31d82e7bec5efc880126510"></a><br/></td></tr>
<tr class="separator:a41499be2b31d82e7bec5efc880126510 inherit pub_methods_classCVC3_1_1Theory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aafdee81857fde584632759c78ed821f5 inherit pub_methods_classCVC3_1_1Theory"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1Theory.html#aafdee81857fde584632759c78ed821f5">unregisterKinds</a> (<a class="el" href="classCVC3_1_1Theory.html">Theory</a> *theory, std::vector&lt; int &gt; &amp;kinds)</td></tr>
<tr class="memdesc:aafdee81857fde584632759c78ed821f5 inherit pub_methods_classCVC3_1_1Theory"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unregister kinds for a theory.  <a href="#aafdee81857fde584632759c78ed821f5"></a><br/></td></tr>
<tr class="separator:aafdee81857fde584632759c78ed821f5 inherit pub_methods_classCVC3_1_1Theory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a97a6f8e09f71513da969fa7847346c6f inherit pub_methods_classCVC3_1_1Theory"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1Theory.html#a97a6f8e09f71513da969fa7847346c6f">registerTheory</a> (<a class="el" href="classCVC3_1_1Theory.html">Theory</a> *theory, std::vector&lt; int &gt; &amp;kinds, bool hasSolver=false)</td></tr>
<tr class="memdesc:a97a6f8e09f71513da969fa7847346c6f inherit pub_methods_classCVC3_1_1Theory"><td class="mdescLeft">&#160;</td><td class="mdescRight">Register a new theory.  <a href="#a97a6f8e09f71513da969fa7847346c6f"></a><br/></td></tr>
<tr class="separator:a97a6f8e09f71513da969fa7847346c6f inherit pub_methods_classCVC3_1_1Theory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6bdcdfdf6d658b1b1b7c548ea4782e6e inherit pub_methods_classCVC3_1_1Theory"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1Theory.html#a6bdcdfdf6d658b1b1b7c548ea4782e6e">unregisterTheory</a> (<a class="el" href="classCVC3_1_1Theory.html">Theory</a> *theory, std::vector&lt; int &gt; &amp;kinds, bool hasSolver)</td></tr>
<tr class="memdesc:a6bdcdfdf6d658b1b1b7c548ea4782e6e inherit pub_methods_classCVC3_1_1Theory"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unregister a theory.  <a href="#a6bdcdfdf6d658b1b1b7c548ea4782e6e"></a><br/></td></tr>
<tr class="separator:a6bdcdfdf6d658b1b1b7c548ea4782e6e inherit pub_methods_classCVC3_1_1Theory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab7c83d1e21c1553ff229447fe6d51530 inherit pub_methods_classCVC3_1_1Theory"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1Theory.html#ab7c83d1e21c1553ff229447fe6d51530">getNumTheories</a> ()</td></tr>
<tr class="memdesc:ab7c83d1e21c1553ff229447fe6d51530 inherit pub_methods_classCVC3_1_1Theory"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the number of registered theories.  <a href="#ab7c83d1e21c1553ff229447fe6d51530"></a><br/></td></tr>
<tr class="separator:ab7c83d1e21c1553ff229447fe6d51530 inherit pub_methods_classCVC3_1_1Theory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8dc9b3350f948ce5b6112a4812819696 inherit pub_methods_classCVC3_1_1Theory"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1Theory.html#a8dc9b3350f948ce5b6112a4812819696">hasTheory</a> (int kind)</td></tr>
<tr class="memdesc:a8dc9b3350f948ce5b6112a4812819696 inherit pub_methods_classCVC3_1_1Theory"><td class="mdescLeft">&#160;</td><td class="mdescRight">Test whether a kind maps to any theory.  <a href="#a8dc9b3350f948ce5b6112a4812819696"></a><br/></td></tr>
<tr class="separator:a8dc9b3350f948ce5b6112a4812819696 inherit pub_methods_classCVC3_1_1Theory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a01fa8047ed1f649dc98831cb536187e4 inherit pub_methods_classCVC3_1_1Theory"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Theory.html">Theory</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1Theory.html#a01fa8047ed1f649dc98831cb536187e4">theoryOf</a> (int kind)</td></tr>
<tr class="memdesc:a01fa8047ed1f649dc98831cb536187e4 inherit pub_methods_classCVC3_1_1Theory"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the theory associated with a kind.  <a href="#a01fa8047ed1f649dc98831cb536187e4"></a><br/></td></tr>
<tr class="separator:a01fa8047ed1f649dc98831cb536187e4 inherit pub_methods_classCVC3_1_1Theory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad4fea3e52e80f6ea2fb1a1eaaa7163b8 inherit pub_methods_classCVC3_1_1Theory"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Theory.html">Theory</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1Theory.html#ad4fea3e52e80f6ea2fb1a1eaaa7163b8">theoryOf</a> (const <a class="el" href="classCVC3_1_1Type.html">Type</a> &amp;e)</td></tr>
<tr class="memdesc:ad4fea3e52e80f6ea2fb1a1eaaa7163b8 inherit pub_methods_classCVC3_1_1Theory"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the theory associated with a type.  <a href="#ad4fea3e52e80f6ea2fb1a1eaaa7163b8"></a><br/></td></tr>
<tr class="separator:ad4fea3e52e80f6ea2fb1a1eaaa7163b8 inherit pub_methods_classCVC3_1_1Theory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9ea78dba89246dda6c504c7af5201f1b inherit pub_methods_classCVC3_1_1Theory"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Theory.html">Theory</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1Theory.html#a9ea78dba89246dda6c504c7af5201f1b">theoryOf</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="memdesc:a9ea78dba89246dda6c504c7af5201f1b inherit pub_methods_classCVC3_1_1Theory"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the theory associated with an <a class="el" href="classCVC3_1_1Expr.html" title="Data structure of expressions in CVC3.">Expr</a>.  <a href="#a9ea78dba89246dda6c504c7af5201f1b"></a><br/></td></tr>
<tr class="separator:a9ea78dba89246dda6c504c7af5201f1b inherit pub_methods_classCVC3_1_1Theory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac59f888b3b3f973580e061ffd803b6bb inherit pub_methods_classCVC3_1_1Theory"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1Theory.html#ac59f888b3b3f973580e061ffd803b6bb">find</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="memdesc:ac59f888b3b3f973580e061ffd803b6bb inherit pub_methods_classCVC3_1_1Theory"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the theorem that e is equal to its find.  <a href="#ac59f888b3b3f973580e061ffd803b6bb"></a><br/></td></tr>
<tr class="separator:ac59f888b3b3f973580e061ffd803b6bb inherit pub_methods_classCVC3_1_1Theory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a89a91d7480d5783fb0c0f67f2fdb7873 inherit pub_methods_classCVC3_1_1Theory"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1Theory.html#a89a91d7480d5783fb0c0f67f2fdb7873">findRef</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="memdesc:a89a91d7480d5783fb0c0f67f2fdb7873 inherit pub_methods_classCVC3_1_1Theory"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the find as a reference: expr must have a find.  <a href="#a89a91d7480d5783fb0c0f67f2fdb7873"></a><br/></td></tr>
<tr class="separator:a89a91d7480d5783fb0c0f67f2fdb7873 inherit pub_methods_classCVC3_1_1Theory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab46ce7e7b6c9425a42df38ccf56642b6 inherit pub_methods_classCVC3_1_1Theory"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1Theory.html#ab46ce7e7b6c9425a42df38ccf56642b6">findReduce</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="memdesc:ab46ce7e7b6c9425a42df38ccf56642b6 inherit pub_methods_classCVC3_1_1Theory"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return find-reduced version of e.  <a href="#ab46ce7e7b6c9425a42df38ccf56642b6"></a><br/></td></tr>
<tr class="separator:ab46ce7e7b6c9425a42df38ccf56642b6 inherit pub_methods_classCVC3_1_1Theory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad0f5335bae1a358802ec5b958e77934e inherit pub_methods_classCVC3_1_1Theory"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1Theory.html#ad0f5335bae1a358802ec5b958e77934e">findReduced</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="memdesc:ad0f5335bae1a358802ec5b958e77934e inherit pub_methods_classCVC3_1_1Theory"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return true iff e is find-reduced.  <a href="#ad0f5335bae1a358802ec5b958e77934e"></a><br/></td></tr>
<tr class="separator:ad0f5335bae1a358802ec5b958e77934e inherit pub_methods_classCVC3_1_1Theory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a08412b310cb743536f7edd9fccd60e46 inherit pub_methods_classCVC3_1_1Theory"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Expr.html">Expr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1Theory.html#a08412b310cb743536f7edd9fccd60e46">findExpr</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="memdesc:a08412b310cb743536f7edd9fccd60e46 inherit pub_methods_classCVC3_1_1Theory"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the find of e, or e if it has no find.  <a href="#a08412b310cb743536f7edd9fccd60e46"></a><br/></td></tr>
<tr class="separator:a08412b310cb743536f7edd9fccd60e46 inherit pub_methods_classCVC3_1_1Theory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af38bdeb162a9ab9bd81ce40f598f608f inherit pub_methods_classCVC3_1_1Theory"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Expr.html">Expr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1Theory.html#af38bdeb162a9ab9bd81ce40f598f608f">getTCC</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="memdesc:af38bdeb162a9ab9bd81ce40f598f608f inherit pub_methods_classCVC3_1_1Theory"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute the TCC of e, or the subtyping predicate, if e is a type.  <a href="#af38bdeb162a9ab9bd81ce40f598f608f"></a><br/></td></tr>
<tr class="separator:af38bdeb162a9ab9bd81ce40f598f608f inherit pub_methods_classCVC3_1_1Theory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa408fe61c3d28f4333b78a3027606bb8 inherit pub_methods_classCVC3_1_1Theory"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Type.html">Type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1Theory.html#aa408fe61c3d28f4333b78a3027606bb8">getBaseType</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="memdesc:aa408fe61c3d28f4333b78a3027606bb8 inherit pub_methods_classCVC3_1_1Theory"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute (or look up in cache) the base type of e and return the result.  <a href="#aa408fe61c3d28f4333b78a3027606bb8"></a><br/></td></tr>
<tr class="separator:aa408fe61c3d28f4333b78a3027606bb8 inherit pub_methods_classCVC3_1_1Theory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a26afbc255a32b9fcff11d6b2625157ae inherit pub_methods_classCVC3_1_1Theory"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Type.html">Type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1Theory.html#a26afbc255a32b9fcff11d6b2625157ae">getBaseType</a> (const <a class="el" href="classCVC3_1_1Type.html">Type</a> &amp;tp)</td></tr>
<tr class="memdesc:a26afbc255a32b9fcff11d6b2625157ae inherit pub_methods_classCVC3_1_1Theory"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute the base type from an arbitrary type.  <a href="#a26afbc255a32b9fcff11d6b2625157ae"></a><br/></td></tr>
<tr class="separator:a26afbc255a32b9fcff11d6b2625157ae inherit pub_methods_classCVC3_1_1Theory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a39539e895f8aade88ae5bc05bbcc9302 inherit pub_methods_classCVC3_1_1Theory"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Expr.html">Expr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1Theory.html#a39539e895f8aade88ae5bc05bbcc9302">getTypePred</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)</td></tr>
<tr class="memdesc:a39539e895f8aade88ae5bc05bbcc9302 inherit pub_methods_classCVC3_1_1Theory"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calls the correct theory to compute a type predicate.  <a href="#a39539e895f8aade88ae5bc05bbcc9302"></a><br/></td></tr>
<tr class="separator:a39539e895f8aade88ae5bc05bbcc9302 inherit pub_methods_classCVC3_1_1Theory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad6cb45844df7f1b08a53e41e40a362e3 inherit pub_methods_classCVC3_1_1Theory"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1Theory.html#ad6cb45844df7f1b08a53e41e40a362e3">updateHelper</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="memdesc:ad6cb45844df7f1b08a53e41e40a362e3 inherit pub_methods_classCVC3_1_1Theory"><td class="mdescLeft">&#160;</td><td class="mdescRight">Update the children of the term e.  <a href="#ad6cb45844df7f1b08a53e41e40a362e3"></a><br/></td></tr>
<tr class="separator:ad6cb45844df7f1b08a53e41e40a362e3 inherit pub_methods_classCVC3_1_1Theory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a29cc343040a52a299a4f20123edf4c75 inherit pub_methods_classCVC3_1_1Theory"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1Theory.html#a29cc343040a52a299a4f20123edf4c75">setupCC</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="memdesc:a29cc343040a52a299a4f20123edf4c75 inherit pub_methods_classCVC3_1_1Theory"><td class="mdescLeft">&#160;</td><td class="mdescRight">Setup a term for congruence closure (must have sig and rep attributes)  <a href="#a29cc343040a52a299a4f20123edf4c75"></a><br/></td></tr>
<tr class="separator:a29cc343040a52a299a4f20123edf4c75 inherit pub_methods_classCVC3_1_1Theory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0b9e5a75b0e23a334563392f075df9e2 inherit pub_methods_classCVC3_1_1Theory"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1Theory.html#a0b9e5a75b0e23a334563392f075df9e2">updateCC</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)</td></tr>
<tr class="memdesc:a0b9e5a75b0e23a334563392f075df9e2 inherit pub_methods_classCVC3_1_1Theory"><td class="mdescLeft">&#160;</td><td class="mdescRight">Update a term w.r.t. congruence closure (must be setup with <a class="el" href="classCVC3_1_1Theory.html#a29cc343040a52a299a4f20123edf4c75" title="Setup a term for congruence closure (must have sig and rep attributes)">setupCC()</a>)  <a href="#a0b9e5a75b0e23a334563392f075df9e2"></a><br/></td></tr>
<tr class="separator:a0b9e5a75b0e23a334563392f075df9e2 inherit pub_methods_classCVC3_1_1Theory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2d91d71489b0c0a9822cef765326bc89 inherit pub_methods_classCVC3_1_1Theory"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1Theory.html#a2d91d71489b0c0a9822cef765326bc89">rewriteCC</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="memdesc:a2d91d71489b0c0a9822cef765326bc89 inherit pub_methods_classCVC3_1_1Theory"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rewrite a term w.r.t. congruence closure (must be setup with <a class="el" href="classCVC3_1_1Theory.html#a29cc343040a52a299a4f20123edf4c75" title="Setup a term for congruence closure (must have sig and rep attributes)">setupCC()</a>)  <a href="#a2d91d71489b0c0a9822cef765326bc89"></a><br/></td></tr>
<tr class="separator:a2d91d71489b0c0a9822cef765326bc89 inherit pub_methods_classCVC3_1_1Theory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad8b27aeea37d99def7a3c0348ded3e66 inherit pub_methods_classCVC3_1_1Theory"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1Theory.html#ad8b27aeea37d99def7a3c0348ded3e66">getModelTerm</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e, std::vector&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;v)</td></tr>
<tr class="memdesc:ad8b27aeea37d99def7a3c0348ded3e66 inherit pub_methods_classCVC3_1_1Theory"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calls the correct theory to get all of the terms that need to be assigned values in the concrete model.  <a href="#ad8b27aeea37d99def7a3c0348ded3e66"></a><br/></td></tr>
<tr class="separator:ad8b27aeea37d99def7a3c0348ded3e66 inherit pub_methods_classCVC3_1_1Theory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4867f332c809f6efe8f01ffa45c32db3 inherit pub_methods_classCVC3_1_1Theory"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1Theory.html#a4867f332c809f6efe8f01ffa45c32db3">getModelValue</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="memdesc:a4867f332c809f6efe8f01ffa45c32db3 inherit pub_methods_classCVC3_1_1Theory"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fetch the concrete assignment to the variable during model generation.  <a href="#a4867f332c809f6efe8f01ffa45c32db3"></a><br/></td></tr>
<tr class="separator:a4867f332c809f6efe8f01ffa45c32db3 inherit pub_methods_classCVC3_1_1Theory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a605e960d2442b587046c562723b7f03a inherit pub_methods_classCVC3_1_1Theory"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1Theory.html#a605e960d2442b587046c562723b7f03a">addSplitter</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e, int priority=0)</td></tr>
<tr class="memdesc:a605e960d2442b587046c562723b7f03a inherit pub_methods_classCVC3_1_1Theory"><td class="mdescLeft">&#160;</td><td class="mdescRight">Suggest a splitter to the <a class="el" href="classCVC3_1_1SearchEngine.html" title="API to to a generic proof search engine.">SearchEngine</a>.  <a href="#a605e960d2442b587046c562723b7f03a"></a><br/></td></tr>
<tr class="separator:a605e960d2442b587046c562723b7f03a inherit pub_methods_classCVC3_1_1Theory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a688cd0c0b669ab9719f8a99cb207ad2c inherit pub_methods_classCVC3_1_1Theory"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1Theory.html#a688cd0c0b669ab9719f8a99cb207ad2c">addGlobalLemma</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;thm, int priority=0)</td></tr>
<tr class="memdesc:a688cd0c0b669ab9719f8a99cb207ad2c inherit pub_methods_classCVC3_1_1Theory"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a global lemma.  <a href="#a688cd0c0b669ab9719f8a99cb207ad2c"></a><br/></td></tr>
<tr class="separator:a688cd0c0b669ab9719f8a99cb207ad2c inherit pub_methods_classCVC3_1_1Theory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8d466120560b7b91dc279e657fe3c433 inherit pub_methods_classCVC3_1_1Theory"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1Theory.html#a8d466120560b7b91dc279e657fe3c433">isLeaf</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="memdesc:a8d466120560b7b91dc279e657fe3c433 inherit pub_methods_classCVC3_1_1Theory"><td class="mdescLeft">&#160;</td><td class="mdescRight">Test if e is an i-leaf term for the current theory.  <a href="#a8d466120560b7b91dc279e657fe3c433"></a><br/></td></tr>
<tr class="separator:a8d466120560b7b91dc279e657fe3c433 inherit pub_methods_classCVC3_1_1Theory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa0ef53bc2009d92763e0916c38aaf692 inherit pub_methods_classCVC3_1_1Theory"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1Theory.html#aa0ef53bc2009d92763e0916c38aaf692">isLeafIn</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e1, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e2)</td></tr>
<tr class="memdesc:aa0ef53bc2009d92763e0916c38aaf692 inherit pub_methods_classCVC3_1_1Theory"><td class="mdescLeft">&#160;</td><td class="mdescRight">Test if e1 is an i-leaf in e2.  <a href="#aa0ef53bc2009d92763e0916c38aaf692"></a><br/></td></tr>
<tr class="separator:aa0ef53bc2009d92763e0916c38aaf692 inherit pub_methods_classCVC3_1_1Theory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8dd39cad11cf866afc6282475cfc81b7 inherit pub_methods_classCVC3_1_1Theory"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1Theory.html#a8dd39cad11cf866afc6282475cfc81b7">leavesAreSimp</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="memdesc:a8dd39cad11cf866afc6282475cfc81b7 inherit pub_methods_classCVC3_1_1Theory"><td class="mdescLeft">&#160;</td><td class="mdescRight">Test if all i-leaves of e are simplified.  <a href="#a8dd39cad11cf866afc6282475cfc81b7"></a><br/></td></tr>
<tr class="separator:a8dd39cad11cf866afc6282475cfc81b7 inherit pub_methods_classCVC3_1_1Theory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a705d998884ec8a53c22220373472d868 inherit pub_methods_classCVC3_1_1Theory"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Type.html">Type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1Theory.html#a705d998884ec8a53c22220373472d868">boolType</a> ()</td></tr>
<tr class="memdesc:a705d998884ec8a53c22220373472d868 inherit pub_methods_classCVC3_1_1Theory"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return BOOLEAN type.  <a href="#a705d998884ec8a53c22220373472d868"></a><br/></td></tr>
<tr class="separator:a705d998884ec8a53c22220373472d868 inherit pub_methods_classCVC3_1_1Theory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0bbf7c5b6079fc99a0f759e5809fe6f5 inherit pub_methods_classCVC3_1_1Theory"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1Theory.html#a0bbf7c5b6079fc99a0f759e5809fe6f5">falseExpr</a> ()</td></tr>
<tr class="memdesc:a0bbf7c5b6079fc99a0f759e5809fe6f5 inherit pub_methods_classCVC3_1_1Theory"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return FALSE <a class="el" href="classCVC3_1_1Expr.html" title="Data structure of expressions in CVC3.">Expr</a>.  <a href="#a0bbf7c5b6079fc99a0f759e5809fe6f5"></a><br/></td></tr>
<tr class="separator:a0bbf7c5b6079fc99a0f759e5809fe6f5 inherit pub_methods_classCVC3_1_1Theory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab8835beee96db67f3c26a604d96f2fe8 inherit pub_methods_classCVC3_1_1Theory"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1Theory.html#ab8835beee96db67f3c26a604d96f2fe8">trueExpr</a> ()</td></tr>
<tr class="memdesc:ab8835beee96db67f3c26a604d96f2fe8 inherit pub_methods_classCVC3_1_1Theory"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return TRUE <a class="el" href="classCVC3_1_1Expr.html" title="Data structure of expressions in CVC3.">Expr</a>.  <a href="#ab8835beee96db67f3c26a604d96f2fe8"></a><br/></td></tr>
<tr class="separator:ab8835beee96db67f3c26a604d96f2fe8 inherit pub_methods_classCVC3_1_1Theory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4f82b4903d68da2bd83afb104c2c62cc inherit pub_methods_classCVC3_1_1Theory"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Expr.html">Expr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1Theory.html#a4f82b4903d68da2bd83afb104c2c62cc">newVar</a> (const std::string &amp;name, const <a class="el" href="classCVC3_1_1Type.html">Type</a> &amp;type)</td></tr>
<tr class="memdesc:a4f82b4903d68da2bd83afb104c2c62cc inherit pub_methods_classCVC3_1_1Theory"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a new variable given its name and type.  <a href="#a4f82b4903d68da2bd83afb104c2c62cc"></a><br/></td></tr>
<tr class="separator:a4f82b4903d68da2bd83afb104c2c62cc inherit pub_methods_classCVC3_1_1Theory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa7b6e0e6f53256fd0e5573ad51ae472b inherit pub_methods_classCVC3_1_1Theory"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Expr.html">Expr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1Theory.html#aa7b6e0e6f53256fd0e5573ad51ae472b">newVar</a> (const std::string &amp;name, const <a class="el" href="classCVC3_1_1Type.html">Type</a> &amp;type, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;def)</td></tr>
<tr class="memdesc:aa7b6e0e6f53256fd0e5573ad51ae472b inherit pub_methods_classCVC3_1_1Theory"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a new named expression given its name, type, and definition.  <a href="#aa7b6e0e6f53256fd0e5573ad51ae472b"></a><br/></td></tr>
<tr class="separator:aa7b6e0e6f53256fd0e5573ad51ae472b inherit pub_methods_classCVC3_1_1Theory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a97642364c244b753d33b551fc8c3bb9a inherit pub_methods_classCVC3_1_1Theory"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Op.html">Op</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1Theory.html#a97642364c244b753d33b551fc8c3bb9a">newFunction</a> (const std::string &amp;name, const <a class="el" href="classCVC3_1_1Type.html">Type</a> &amp;type, bool computeTransClosure)</td></tr>
<tr class="memdesc:a97642364c244b753d33b551fc8c3bb9a inherit pub_methods_classCVC3_1_1Theory"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a new uninterpreted function.  <a href="#a97642364c244b753d33b551fc8c3bb9a"></a><br/></td></tr>
<tr class="separator:a97642364c244b753d33b551fc8c3bb9a inherit pub_methods_classCVC3_1_1Theory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a61a4a3159152e1ff93dea55a33441557 inherit pub_methods_classCVC3_1_1Theory"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Op.html">Op</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1Theory.html#a61a4a3159152e1ff93dea55a33441557">lookupFunction</a> (const std::string &amp;name, <a class="el" href="classCVC3_1_1Type.html">Type</a> *type)</td></tr>
<tr class="memdesc:a61a4a3159152e1ff93dea55a33441557 inherit pub_methods_classCVC3_1_1Theory"><td class="mdescLeft">&#160;</td><td class="mdescRight">Look up a function by name.  <a href="#a61a4a3159152e1ff93dea55a33441557"></a><br/></td></tr>
<tr class="separator:a61a4a3159152e1ff93dea55a33441557 inherit pub_methods_classCVC3_1_1Theory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac6c5f95bbc428cad8085b416cd40292a inherit pub_methods_classCVC3_1_1Theory"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Op.html">Op</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1Theory.html#ac6c5f95bbc428cad8085b416cd40292a">newFunction</a> (const std::string &amp;name, const <a class="el" href="classCVC3_1_1Type.html">Type</a> &amp;type, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;def)</td></tr>
<tr class="memdesc:ac6c5f95bbc428cad8085b416cd40292a inherit pub_methods_classCVC3_1_1Theory"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a new defined function.  <a href="#ac6c5f95bbc428cad8085b416cd40292a"></a><br/></td></tr>
<tr class="separator:ac6c5f95bbc428cad8085b416cd40292a inherit pub_methods_classCVC3_1_1Theory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a13ba9024a22362cc96760519a84f2316 inherit pub_methods_classCVC3_1_1Theory"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Expr.html">Expr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1Theory.html#a13ba9024a22362cc96760519a84f2316">addBoundVar</a> (const std::string &amp;name, const <a class="el" href="classCVC3_1_1Type.html">Type</a> &amp;type)</td></tr>
<tr class="memdesc:a13ba9024a22362cc96760519a84f2316 inherit pub_methods_classCVC3_1_1Theory"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create and add a new bound variable to the stack, for <a class="el" href="group__Theory__API.html#ga378bef078620e67fc80f36fa79320d91" title="Theory-specific parsing implemented by the DP.">parseExprOp()</a>.  <a href="#a13ba9024a22362cc96760519a84f2316"></a><br/></td></tr>
<tr class="separator:a13ba9024a22362cc96760519a84f2316 inherit pub_methods_classCVC3_1_1Theory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa8f3f9fb084f9d5e385255baab5dc8f3 inherit pub_methods_classCVC3_1_1Theory"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Expr.html">Expr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1Theory.html#aa8f3f9fb084f9d5e385255baab5dc8f3">addBoundVar</a> (const std::string &amp;name, const <a class="el" href="classCVC3_1_1Type.html">Type</a> &amp;type, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;def)</td></tr>
<tr class="memdesc:aa8f3f9fb084f9d5e385255baab5dc8f3 inherit pub_methods_classCVC3_1_1Theory"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create and add a new bound named def to the stack, for <a class="el" href="group__Theory__API.html#ga378bef078620e67fc80f36fa79320d91" title="Theory-specific parsing implemented by the DP.">parseExprOp()</a>.  <a href="#aa8f3f9fb084f9d5e385255baab5dc8f3"></a><br/></td></tr>
<tr class="separator:aa8f3f9fb084f9d5e385255baab5dc8f3 inherit pub_methods_classCVC3_1_1Theory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4b58aeebc3a62e41f0ce71ba01fa3961 inherit pub_methods_classCVC3_1_1Theory"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Expr.html">Expr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1Theory.html#a4b58aeebc3a62e41f0ce71ba01fa3961">lookupVar</a> (const std::string &amp;name, <a class="el" href="classCVC3_1_1Type.html">Type</a> *type)</td></tr>
<tr class="memdesc:a4b58aeebc3a62e41f0ce71ba01fa3961 inherit pub_methods_classCVC3_1_1Theory"><td class="mdescLeft">&#160;</td><td class="mdescRight">Lookup variable and return it and its type. Return NULL <a class="el" href="classCVC3_1_1Expr.html" title="Data structure of expressions in CVC3.">Expr</a> if it doesn't exist yet.  <a href="#a4b58aeebc3a62e41f0ce71ba01fa3961"></a><br/></td></tr>
<tr class="separator:a4b58aeebc3a62e41f0ce71ba01fa3961 inherit pub_methods_classCVC3_1_1Theory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aadde006d0dea508fec039b8092b14ed6 inherit pub_methods_classCVC3_1_1Theory"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Type.html">Type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1Theory.html#aadde006d0dea508fec039b8092b14ed6">newTypeExpr</a> (const std::string &amp;name)</td></tr>
<tr class="memdesc:aadde006d0dea508fec039b8092b14ed6 inherit pub_methods_classCVC3_1_1Theory"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a new uninterpreted type with the given name.  <a href="#aadde006d0dea508fec039b8092b14ed6"></a><br/></td></tr>
<tr class="separator:aadde006d0dea508fec039b8092b14ed6 inherit pub_methods_classCVC3_1_1Theory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4e57c5fb189f51c6e5abeeb0bcb1baef inherit pub_methods_classCVC3_1_1Theory"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Type.html">Type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1Theory.html#a4e57c5fb189f51c6e5abeeb0bcb1baef">lookupTypeExpr</a> (const std::string &amp;name)</td></tr>
<tr class="memdesc:a4e57c5fb189f51c6e5abeeb0bcb1baef inherit pub_methods_classCVC3_1_1Theory"><td class="mdescLeft">&#160;</td><td class="mdescRight">Lookup type by name. Return Null if no such type exists.  <a href="#a4e57c5fb189f51c6e5abeeb0bcb1baef"></a><br/></td></tr>
<tr class="separator:a4e57c5fb189f51c6e5abeeb0bcb1baef inherit pub_methods_classCVC3_1_1Theory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7aadedb0affc98a4cd1741f5dcf42d3a inherit pub_methods_classCVC3_1_1Theory"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Type.html">Type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1Theory.html#a7aadedb0affc98a4cd1741f5dcf42d3a">newTypeExpr</a> (const std::string &amp;name, const <a class="el" href="classCVC3_1_1Type.html">Type</a> &amp;def)</td></tr>
<tr class="memdesc:a7aadedb0affc98a4cd1741f5dcf42d3a inherit pub_methods_classCVC3_1_1Theory"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a new type abbreviation with the given name.  <a href="#a7aadedb0affc98a4cd1741f5dcf42d3a"></a><br/></td></tr>
<tr class="separator:a7aadedb0affc98a4cd1741f5dcf42d3a inherit pub_methods_classCVC3_1_1Theory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af85a563480c411b1e8eb280de9f39bb2 inherit pub_methods_classCVC3_1_1Theory"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Type.html">Type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1Theory.html#af85a563480c411b1e8eb280de9f39bb2">newSubtypeExpr</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;pred, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;witness)</td></tr>
<tr class="memdesc:af85a563480c411b1e8eb280de9f39bb2 inherit pub_methods_classCVC3_1_1Theory"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a new subtype expression.  <a href="#af85a563480c411b1e8eb280de9f39bb2"></a><br/></td></tr>
<tr class="separator:af85a563480c411b1e8eb280de9f39bb2 inherit pub_methods_classCVC3_1_1Theory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a07b326cd94b2bb8bafa39faf07caaec5 inherit pub_methods_classCVC3_1_1Theory"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Expr.html">Expr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1Theory.html#a07b326cd94b2bb8bafa39faf07caaec5">resolveID</a> (const std::string &amp;name)</td></tr>
<tr class="memdesc:a07b326cd94b2bb8bafa39faf07caaec5 inherit pub_methods_classCVC3_1_1Theory"><td class="mdescLeft">&#160;</td><td class="mdescRight">Resolve an identifier, for use in <a class="el" href="group__Theory__API.html#ga378bef078620e67fc80f36fa79320d91" title="Theory-specific parsing implemented by the DP.">parseExprOp()</a>  <a href="#a07b326cd94b2bb8bafa39faf07caaec5"></a><br/></td></tr>
<tr class="separator:a07b326cd94b2bb8bafa39faf07caaec5 inherit pub_methods_classCVC3_1_1Theory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6b1c155465b0c24885213e7442dd0882 inherit pub_methods_classCVC3_1_1Theory"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1Theory.html#a6b1c155465b0c24885213e7442dd0882">installID</a> (const std::string &amp;name, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="memdesc:a6b1c155465b0c24885213e7442dd0882 inherit pub_methods_classCVC3_1_1Theory"><td class="mdescLeft">&#160;</td><td class="mdescRight">Install name as a new identifier associated with <a class="el" href="classCVC3_1_1Expr.html" title="Data structure of expressions in CVC3.">Expr</a> e.  <a href="#a6b1c155465b0c24885213e7442dd0882"></a><br/></td></tr>
<tr class="separator:a6b1c155465b0c24885213e7442dd0882 inherit pub_methods_classCVC3_1_1Theory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a090c2b079f3b90b4f5da3d8606b14d16 inherit pub_methods_classCVC3_1_1Theory"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1Theory.html#a090c2b079f3b90b4f5da3d8606b14d16">typePred</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="memdesc:a090c2b079f3b90b4f5da3d8606b14d16 inherit pub_methods_classCVC3_1_1Theory"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return BOOLEAN type.  <a href="#a090c2b079f3b90b4f5da3d8606b14d16"></a><br/></td></tr>
<tr class="separator:a090c2b079f3b90b4f5da3d8606b14d16 inherit pub_methods_classCVC3_1_1Theory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af860f5d5e01423628c97c399606916ff inherit pub_methods_classCVC3_1_1Theory"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1Theory.html#af860f5d5e01423628c97c399606916ff">reflexivityRule</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;a)</td></tr>
<tr class="memdesc:af860f5d5e01423628c97c399606916ff inherit pub_methods_classCVC3_1_1Theory"><td class="mdescLeft">&#160;</td><td class="mdescRight">==&gt; a == a  <a href="#af860f5d5e01423628c97c399606916ff"></a><br/></td></tr>
<tr class="separator:af860f5d5e01423628c97c399606916ff inherit pub_methods_classCVC3_1_1Theory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7440711981ac1bba2bed7476c0fa4e0b inherit pub_methods_classCVC3_1_1Theory"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1Theory.html#a7440711981ac1bba2bed7476c0fa4e0b">symmetryRule</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;a1_eq_a2)</td></tr>
<tr class="memdesc:a7440711981ac1bba2bed7476c0fa4e0b inherit pub_methods_classCVC3_1_1Theory"><td class="mdescLeft">&#160;</td><td class="mdescRight">a1 == a2 ==&gt; a2 == a1  <a href="#a7440711981ac1bba2bed7476c0fa4e0b"></a><br/></td></tr>
<tr class="separator:a7440711981ac1bba2bed7476c0fa4e0b inherit pub_methods_classCVC3_1_1Theory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a76f6507116e36f46dab074781fb9bf2d inherit pub_methods_classCVC3_1_1Theory"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1Theory.html#a76f6507116e36f46dab074781fb9bf2d">transitivityRule</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;a1_eq_a2, const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;a2_eq_a3)</td></tr>
<tr class="memdesc:a76f6507116e36f46dab074781fb9bf2d inherit pub_methods_classCVC3_1_1Theory"><td class="mdescLeft">&#160;</td><td class="mdescRight">(a1 == a2) &amp; (a2 == a3) ==&gt; (a1 == a3)  <a href="#a76f6507116e36f46dab074781fb9bf2d"></a><br/></td></tr>
<tr class="separator:a76f6507116e36f46dab074781fb9bf2d inherit pub_methods_classCVC3_1_1Theory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a92e2da5223d7fb620cce85b2813e047f inherit pub_methods_classCVC3_1_1Theory"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1Theory.html#a92e2da5223d7fb620cce85b2813e047f">substitutivityRule</a> (const <a class="el" href="classCVC3_1_1Op.html">Op</a> &amp;op, const std::vector&lt; <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &gt; &amp;thms)</td></tr>
<tr class="memdesc:a92e2da5223d7fb620cce85b2813e047f inherit pub_methods_classCVC3_1_1Theory"><td class="mdescLeft">&#160;</td><td class="mdescRight">(c_1 == d_1) &amp; ... &amp; (c_n == d_n) ==&gt; op(c_1,...,c_n) == op(d_1,...,d_n)  <a href="#a92e2da5223d7fb620cce85b2813e047f"></a><br/></td></tr>
<tr class="separator:a92e2da5223d7fb620cce85b2813e047f inherit pub_methods_classCVC3_1_1Theory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a83a1a0b30a27f887cef4c394544b30b0 inherit pub_methods_classCVC3_1_1Theory"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1Theory.html#a83a1a0b30a27f887cef4c394544b30b0">substitutivityRule</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;t)</td></tr>
<tr class="memdesc:a83a1a0b30a27f887cef4c394544b30b0 inherit pub_methods_classCVC3_1_1Theory"><td class="mdescLeft">&#160;</td><td class="mdescRight">Special case for unary operators.  <a href="#a83a1a0b30a27f887cef4c394544b30b0"></a><br/></td></tr>
<tr class="separator:a83a1a0b30a27f887cef4c394544b30b0 inherit pub_methods_classCVC3_1_1Theory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abddfe81d6d08a46f1d1b3aa80ac565d5 inherit pub_methods_classCVC3_1_1Theory"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1Theory.html#abddfe81d6d08a46f1d1b3aa80ac565d5">substitutivityRule</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;t1, const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;t2)</td></tr>
<tr class="memdesc:abddfe81d6d08a46f1d1b3aa80ac565d5 inherit pub_methods_classCVC3_1_1Theory"><td class="mdescLeft">&#160;</td><td class="mdescRight">Special case for binary operators.  <a href="#abddfe81d6d08a46f1d1b3aa80ac565d5"></a><br/></td></tr>
<tr class="separator:abddfe81d6d08a46f1d1b3aa80ac565d5 inherit pub_methods_classCVC3_1_1Theory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8ab61a1574ac8c29db7ddb5b0d45235b inherit pub_methods_classCVC3_1_1Theory"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1Theory.html#a8ab61a1574ac8c29db7ddb5b0d45235b">substitutivityRule</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e, const std::vector&lt; unsigned &gt; &amp;changed, const std::vector&lt; <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &gt; &amp;thms)</td></tr>
<tr class="memdesc:a8ab61a1574ac8c29db7ddb5b0d45235b inherit pub_methods_classCVC3_1_1Theory"><td class="mdescLeft">&#160;</td><td class="mdescRight">Optimized: only positions which changed are included.  <a href="#a8ab61a1574ac8c29db7ddb5b0d45235b"></a><br/></td></tr>
<tr class="separator:a8ab61a1574ac8c29db7ddb5b0d45235b inherit pub_methods_classCVC3_1_1Theory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a56f710c79a9b3464189e8bb4d9d8a8c2 inherit pub_methods_classCVC3_1_1Theory"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1Theory.html#a56f710c79a9b3464189e8bb4d9d8a8c2">substitutivityRule</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e, int changed, const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;thm)</td></tr>
<tr class="memdesc:a56f710c79a9b3464189e8bb4d9d8a8c2 inherit pub_methods_classCVC3_1_1Theory"><td class="mdescLeft">&#160;</td><td class="mdescRight">Optimized: only a single position changed.  <a href="#a56f710c79a9b3464189e8bb4d9d8a8c2"></a><br/></td></tr>
<tr class="separator:a56f710c79a9b3464189e8bb4d9d8a8c2 inherit pub_methods_classCVC3_1_1Theory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeda4c57dfbe357a80a348da9ffa71072 inherit pub_methods_classCVC3_1_1Theory"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1Theory.html#aeda4c57dfbe357a80a348da9ffa71072">iffMP</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;e1, const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;e1_iff_e2)</td></tr>
<tr class="memdesc:aeda4c57dfbe357a80a348da9ffa71072 inherit pub_methods_classCVC3_1_1Theory"><td class="mdescLeft">&#160;</td><td class="mdescRight">e1 AND (e1 IFF e2) ==&gt; e2  <a href="#aeda4c57dfbe357a80a348da9ffa71072"></a><br/></td></tr>
<tr class="separator:aeda4c57dfbe357a80a348da9ffa71072 inherit pub_methods_classCVC3_1_1Theory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aba1822f2d985b50f6405c290c3814c1a inherit pub_methods_classCVC3_1_1Theory"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1Theory.html#aba1822f2d985b50f6405c290c3814c1a">rewriteAnd</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="memdesc:aba1822f2d985b50f6405c290c3814c1a inherit pub_methods_classCVC3_1_1Theory"><td class="mdescLeft">&#160;</td><td class="mdescRight">==&gt; AND(e1,e2) IFF [simplified expr]  <a href="#aba1822f2d985b50f6405c290c3814c1a"></a><br/></td></tr>
<tr class="separator:aba1822f2d985b50f6405c290c3814c1a inherit pub_methods_classCVC3_1_1Theory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad58c336212c2669f3cf32c0915ee3788 inherit pub_methods_classCVC3_1_1Theory"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1Theory.html#ad58c336212c2669f3cf32c0915ee3788">rewriteOr</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="memdesc:ad58c336212c2669f3cf32c0915ee3788 inherit pub_methods_classCVC3_1_1Theory"><td class="mdescLeft">&#160;</td><td class="mdescRight">==&gt; OR(e1,...,en) IFF [simplified expr]  <a href="#ad58c336212c2669f3cf32c0915ee3788"></a><br/></td></tr>
<tr class="separator:ad58c336212c2669f3cf32c0915ee3788 inherit pub_methods_classCVC3_1_1Theory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0f2e0c6647ff6282ee2f65116a82e13b inherit pub_methods_classCVC3_1_1Theory"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1Theory.html#a0f2e0c6647ff6282ee2f65116a82e13b">rewriteIte</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="memdesc:a0f2e0c6647ff6282ee2f65116a82e13b inherit pub_methods_classCVC3_1_1Theory"><td class="mdescLeft">&#160;</td><td class="mdescRight">Derived rule for rewriting ITE.  <a href="#a0f2e0c6647ff6282ee2f65116a82e13b"></a><br/></td></tr>
<tr class="separator:a0f2e0c6647ff6282ee2f65116a82e13b inherit pub_methods_classCVC3_1_1Theory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a07c2391015494b5f71def510c1fb6e26 inherit pub_methods_classCVC3_1_1Theory"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1Theory.html#a07c2391015494b5f71def510c1fb6e26">renameExpr</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="memdesc:a07c2391015494b5f71def510c1fb6e26 inherit pub_methods_classCVC3_1_1Theory"><td class="mdescLeft">&#160;</td><td class="mdescRight">Derived rule to create a new name for an expression.  <a href="#a07c2391015494b5f71def510c1fb6e26"></a><br/></td></tr>
<tr class="separator:a07c2391015494b5f71def510c1fb6e26 inherit pub_methods_classCVC3_1_1Theory"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-types"></a>
Private Types</h2></td></tr>
<tr class="memitem:a9707c04f2d2af4812b8c18029f0368f4"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#a9707c04f2d2af4812b8c18029f0368f4">NormalizationType</a> { <a class="el" href="classCVC3_1_1TheoryArithNew.html#a9707c04f2d2af4812b8c18029f0368f4a5df10a1338d39c91f6886d5b09a2751d">NORMALIZE_GCD</a>, 
<a class="el" href="classCVC3_1_1TheoryArithNew.html#a9707c04f2d2af4812b8c18029f0368f4a382fccac5af0c0091adfac3b4048c2ba">NORMALIZE_UNIT</a>
 }</td></tr>
<tr class="separator:a9707c04f2d2af4812b8c18029f0368f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a159af481e211c2e18dd9280a17ae17a3"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classHash_1_1hash__map.html">Hash::hash_map</a>&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a>, <br class="typebreak"/>
<a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#a159af481e211c2e18dd9280a17ae17a3">TebleauxMap</a></td></tr>
<tr class="separator:a159af481e211c2e18dd9280a17ae17a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a57d34162d4006753f6202c531e2a9d9a"><td class="memItemLeft" align="right" valign="top">typedef std::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#a57d34162d4006753f6202c531e2a9d9a">SetOfVariables</a></td></tr>
<tr class="separator:a57d34162d4006753f6202c531e2a9d9a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3353b432dcd79f2168bfcefc072edb67"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classHash_1_1hash__map.html">Hash::hash_map</a>&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a>, <br class="typebreak"/>
<a class="el" href="classCVC3_1_1TheoryArithNew.html#a57d34162d4006753f6202c531e2a9d9a">SetOfVariables</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#a3353b432dcd79f2168bfcefc072edb67">DependenciesMap</a></td></tr>
<tr class="separator:a3353b432dcd79f2168bfcefc072edb67"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2a34551a41e235972300cd849314c472"><td class="memItemLeft" align="right" valign="top">typedef std::set&lt; <a class="el" href="structCVC3_1_1TheoryArithNew_1_1ExprBoundInfo.html">ExprBoundInfo</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#a2a34551a41e235972300cd849314c472">BoundInfoSet</a></td></tr>
<tr class="separator:a2a34551a41e235972300cd849314c472"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-methods"></a>
Private Member Functions</h2></td></tr>
<tr class="memitem:a1f78d51287d2a25282a94b7bb09d7932"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#a1f78d51287d2a25282a94b7bb09d7932">isIntegerThm</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="memdesc:a1f78d51287d2a25282a94b7bb09d7932"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check the term t for integrality.  <a href="#a1f78d51287d2a25282a94b7bb09d7932"></a><br/></td></tr>
<tr class="separator:a1f78d51287d2a25282a94b7bb09d7932"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aedd0b63568ada4ac3ddbc515e882a617"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#aedd0b63568ada4ac3ddbc515e882a617">isIntegerDerive</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;isIntE, const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;thm)</td></tr>
<tr class="memdesc:aedd0b63568ada4ac3ddbc515e882a617"><td class="mdescLeft">&#160;</td><td class="mdescRight">A helper method for <a class="el" href="classCVC3_1_1TheoryArithNew.html#a1f78d51287d2a25282a94b7bb09d7932" title="Check the term t for integrality.">isIntegerThm()</a>  <a href="#aedd0b63568ada4ac3ddbc515e882a617"></a><br/></td></tr>
<tr class="separator:aedd0b63568ada4ac3ddbc515e882a617"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a89696e5cdd27e0e15711a7b9a027c205"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#a89696e5cdd27e0e15711a7b9a027c205">kidsCanonical</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="memdesc:a89696e5cdd27e0e15711a7b9a027c205"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if the kids of e are fully simplified and canonized (for debugging)  <a href="#a89696e5cdd27e0e15711a7b9a027c205"></a><br/></td></tr>
<tr class="separator:a89696e5cdd27e0e15711a7b9a027c205"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a453194ac83f105514a4d95fca44bd08e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#a453194ac83f105514a4d95fca44bd08e">canon</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="memdesc:a453194ac83f105514a4d95fca44bd08e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Canonize the expression e, assuming all children are canonical.  <a href="#a453194ac83f105514a4d95fca44bd08e"></a><br/></td></tr>
<tr class="separator:a453194ac83f105514a4d95fca44bd08e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeb8051f2049c78b1b007e274288fcc3b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#aeb8051f2049c78b1b007e274288fcc3b">canonSimplify</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="memdesc:aeb8051f2049c78b1b007e274288fcc3b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Canonize and reduce e w.r.t. union-find database; assume all children are canonical.  <a href="#aeb8051f2049c78b1b007e274288fcc3b"></a><br/></td></tr>
<tr class="separator:aeb8051f2049c78b1b007e274288fcc3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2a7779383e5e73671e5b29978f106c0d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#a2a7779383e5e73671e5b29978f106c0d">canonSimplify</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;thm)</td></tr>
<tr class="memdesc:a2a7779383e5e73671e5b29978f106c0d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Composition of <a class="el" href="classCVC3_1_1TheoryArithNew.html#aeb8051f2049c78b1b007e274288fcc3b" title="Canonize and reduce e w.r.t. union-find database; assume all children are canonical.">canonSimplify(const Expr&amp;)</a> by transitivity: take e0 = e1, canonize and simplify e1 to e2, return e0 = e2.  <a href="#a2a7779383e5e73671e5b29978f106c0d"></a><br/></td></tr>
<tr class="separator:a2a7779383e5e73671e5b29978f106c0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a48756ab6f45691b827fc4e5545651778"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#a48756ab6f45691b827fc4e5545651778">canonPred</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;thm)</td></tr>
<tr class="memdesc:a48756ab6f45691b827fc4e5545651778"><td class="mdescLeft">&#160;</td><td class="mdescRight">Canonize predicate (x = y, x &lt; y, etc.)  <a href="#a48756ab6f45691b827fc4e5545651778"></a><br/></td></tr>
<tr class="separator:a48756ab6f45691b827fc4e5545651778"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a18e20adf514c858e9cfeb535e545fb06"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#a18e20adf514c858e9cfeb535e545fb06">canonPredEquiv</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;thm)</td></tr>
<tr class="separator:a18e20adf514c858e9cfeb535e545fb06"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab43a4690bbc1cbe62a368efa7816de4a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#ab43a4690bbc1cbe62a368efa7816de4a">doSolve</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;e)</td></tr>
<tr class="memdesc:ab43a4690bbc1cbe62a368efa7816de4a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Solve an equation and return an equivalent <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> in the solved form.  <a href="#ab43a4690bbc1cbe62a368efa7816de4a"></a><br/></td></tr>
<tr class="separator:ab43a4690bbc1cbe62a368efa7816de4a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1e1a47d2be625ad62ac79da63678dc26"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#a1e1a47d2be625ad62ac79da63678dc26">canonConjunctionEquiv</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;thm)</td></tr>
<tr class="memdesc:a1e1a47d2be625ad62ac79da63678dc26"><td class="mdescLeft">&#160;</td><td class="mdescRight">takes in a conjunction equivalence Thm and canonizes it.  <a href="#a1e1a47d2be625ad62ac79da63678dc26"></a><br/></td></tr>
<tr class="separator:a1e1a47d2be625ad62ac79da63678dc26"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7e1ffe57de5017f1a3bc83aa3a6163a7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Expr.html">Expr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#a7e1ffe57de5017f1a3bc83aa3a6163a7">pickIntEqMonomial</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;right)</td></tr>
<tr class="memdesc:a7e1ffe57de5017f1a3bc83aa3a6163a7"><td class="mdescLeft">&#160;</td><td class="mdescRight">picks the monomial with the smallest abs(coeff) from the input  <a href="#a7e1ffe57de5017f1a3bc83aa3a6163a7"></a><br/></td></tr>
<tr class="separator:a7e1ffe57de5017f1a3bc83aa3a6163a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5cc134d71df3e702dc3785072f4d5bb3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#a5cc134d71df3e702dc3785072f4d5bb3">processRealEq</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;eqn)</td></tr>
<tr class="memdesc:a5cc134d71df3e702dc3785072f4d5bb3"><td class="mdescLeft">&#160;</td><td class="mdescRight">processes equalities with 1 or more vars of type REAL  <a href="#a5cc134d71df3e702dc3785072f4d5bb3"></a><br/></td></tr>
<tr class="separator:a5cc134d71df3e702dc3785072f4d5bb3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afdcb8dc50f957161f878c563f09a48b3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#afdcb8dc50f957161f878c563f09a48b3">processIntEq</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;eqn)</td></tr>
<tr class="memdesc:afdcb8dc50f957161f878c563f09a48b3"><td class="mdescLeft">&#160;</td><td class="mdescRight">processes equalities whose vars are all of type INT  <a href="#afdcb8dc50f957161f878c563f09a48b3"></a><br/></td></tr>
<tr class="separator:afdcb8dc50f957161f878c563f09a48b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a25d8be2e57c83d2e810ee815fae992d7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#a25d8be2e57c83d2e810ee815fae992d7">processSimpleIntEq</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;eqn)</td></tr>
<tr class="memdesc:a25d8be2e57c83d2e810ee815fae992d7"><td class="mdescLeft">&#160;</td><td class="mdescRight">One step of INT equality processing (aux. method for <a class="el" href="classCVC3_1_1TheoryArithNew.html#afdcb8dc50f957161f878c563f09a48b3" title="processes equalities whose vars are all of type INT">processIntEq()</a>)  <a href="#a25d8be2e57c83d2e810ee815fae992d7"></a><br/></td></tr>
<tr class="separator:a25d8be2e57c83d2e810ee815fae992d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a210dc18f7e0df0a95ff00292e9dacdbc"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#a210dc18f7e0df0a95ff00292e9dacdbc">isolateVariable</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;inputThm, bool &amp;e1)</td></tr>
<tr class="memdesc:a210dc18f7e0df0a95ff00292e9dacdbc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Take an inequality and isolate a variable.  <a href="#a210dc18f7e0df0a95ff00292e9dacdbc"></a><br/></td></tr>
<tr class="separator:a210dc18f7e0df0a95ff00292e9dacdbc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af80703576d25418c16a5a187e8bcd0ef"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#af80703576d25418c16a5a187e8bcd0ef">updateStats</a> (const <a class="el" href="classCVC3_1_1Rational.html">Rational</a> &amp;c, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;var)</td></tr>
<tr class="memdesc:af80703576d25418c16a5a187e8bcd0ef"><td class="mdescLeft">&#160;</td><td class="mdescRight">Update the statistics counters for the variable with a coeff. c.  <a href="#af80703576d25418c16a5a187e8bcd0ef"></a><br/></td></tr>
<tr class="separator:af80703576d25418c16a5a187e8bcd0ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8105c616e2a7410133e6f4c908d35def"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#a8105c616e2a7410133e6f4c908d35def">updateStats</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;monomial)</td></tr>
<tr class="memdesc:a8105c616e2a7410133e6f4c908d35def"><td class="mdescLeft">&#160;</td><td class="mdescRight">Update the statistics counters for the monomial.  <a href="#a8105c616e2a7410133e6f4c908d35def"></a><br/></td></tr>
<tr class="separator:a8105c616e2a7410133e6f4c908d35def"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4aa91ab5d33db7fbcaf1eb5e327f64f9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#a4aa91ab5d33db7fbcaf1eb5e327f64f9">addToBuffer</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;thm)</td></tr>
<tr class="memdesc:a4aa91ab5d33db7fbcaf1eb5e327f64f9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add an inequality to the input buffer. See also d_buffer.  <a href="#a4aa91ab5d33db7fbcaf1eb5e327f64f9"></a><br/></td></tr>
<tr class="separator:a4aa91ab5d33db7fbcaf1eb5e327f64f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5d94da8150af4d31977b695bfeac4801"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Expr.html">Expr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#a5d94da8150af4d31977b695bfeac4801">pickMonomial</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;right)</td></tr>
<tr class="separator:a5d94da8150af4d31977b695bfeac4801"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad34845d9afc0b2091a4e07d6ee805066"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#ad34845d9afc0b2091a4e07d6ee805066">lessThanVar</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;isolatedVar, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;var2)</td></tr>
<tr class="separator:ad34845d9afc0b2091a4e07d6ee805066"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2597ed8fe8f3cae03240a2064d516c88"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#a2597ed8fe8f3cae03240a2064d516c88">isStale</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="memdesc:a2597ed8fe8f3cae03240a2064d516c88"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if the term expression is "stale".  <a href="#a2597ed8fe8f3cae03240a2064d516c88"></a><br/></td></tr>
<tr class="separator:a2597ed8fe8f3cae03240a2064d516c88"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6c182b83ba6d8d60557dfa19446fb9da"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#a6c182b83ba6d8d60557dfa19446fb9da">isStale</a> (const <a class="el" href="classCVC3_1_1TheoryArithNew_1_1Ineq.html">Ineq</a> &amp;ineq)</td></tr>
<tr class="memdesc:a6c182b83ba6d8d60557dfa19446fb9da"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if the inequality is "stale" or subsumed.  <a href="#a6c182b83ba6d8d60557dfa19446fb9da"></a><br/></td></tr>
<tr class="separator:a6c182b83ba6d8d60557dfa19446fb9da"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab4e8d03929cc1b660d29d94c3adf3fcc"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#ab4e8d03929cc1b660d29d94c3adf3fcc">projectInequalities</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;theInequality, bool isolatedVarOnRHS)</td></tr>
<tr class="separator:ab4e8d03929cc1b660d29d94c3adf3fcc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac327959d7f9b67467862643c33ff89c1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#ac327959d7f9b67467862643c33ff89c1">assignVariables</a> (std::vector&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;v)</td></tr>
<tr class="separator:ac327959d7f9b67467862643c33ff89c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abb05a7ed953b9b3ac71497c44826c743"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#abb05a7ed953b9b3ac71497c44826c743">findRationalBound</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;varSide, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;ratSide, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;var, <a class="el" href="classCVC3_1_1Rational.html">Rational</a> &amp;r)</td></tr>
<tr class="separator:abb05a7ed953b9b3ac71497c44826c743"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad2690ef89c8acd959a9238c4f0bc0a57"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#ad2690ef89c8acd959a9238c4f0bc0a57">findBounds</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e, <a class="el" href="classCVC3_1_1Rational.html">Rational</a> &amp;lub, <a class="el" href="classCVC3_1_1Rational.html">Rational</a> &amp;glb)</td></tr>
<tr class="separator:ad2690ef89c8acd959a9238c4f0bc0a57"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9c096e8707864d1a0ecde75bd58cf424"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#a9c096e8707864d1a0ecde75bd58cf424">normalizeProjectIneqs</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;ineqThm1, const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;ineqThm2)</td></tr>
<tr class="separator:a9c096e8707864d1a0ecde75bd58cf424"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6a01623e613f46e0d8f2de1a05262ec2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#a6a01623e613f46e0d8f2de1a05262ec2">solvedForm</a> (const std::vector&lt; <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &gt; &amp;solvedEqs)</td></tr>
<tr class="memdesc:a6a01623e613f46e0d8f2de1a05262ec2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Take a system of equations and turn it into a solved form.  <a href="#a6a01623e613f46e0d8f2de1a05262ec2"></a><br/></td></tr>
<tr class="separator:a6a01623e613f46e0d8f2de1a05262ec2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeeb80a89d9eb5c4fc2515d2108e197d8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#aeeb80a89d9eb5c4fc2515d2108e197d8">substAndCanonize</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;t, <a class="el" href="classCVC3_1_1ExprMap.html">ExprMap</a>&lt; <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &gt; &amp;subst)</td></tr>
<tr class="memdesc:aeeb80a89d9eb5c4fc2515d2108e197d8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Substitute all vars in term 't' according to the substitution 'subst' and canonize the result.  <a href="#aeeb80a89d9eb5c4fc2515d2108e197d8"></a><br/></td></tr>
<tr class="separator:aeeb80a89d9eb5c4fc2515d2108e197d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af2775def72b9055dc878963bcfb9b947"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#af2775def72b9055dc878963bcfb9b947">substAndCanonize</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;eq, <a class="el" href="classCVC3_1_1ExprMap.html">ExprMap</a>&lt; <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &gt; &amp;subst)</td></tr>
<tr class="memdesc:af2775def72b9055dc878963bcfb9b947"><td class="mdescLeft">&#160;</td><td class="mdescRight">Substitute all vars in the RHS of the equation 'eq' of the form (x = t) according to the substitution 'subst', and canonize the result.  <a href="#af2775def72b9055dc878963bcfb9b947"></a><br/></td></tr>
<tr class="separator:af2775def72b9055dc878963bcfb9b947"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a437f70ccbf4e58ba40b4b9a067b224f1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#a437f70ccbf4e58ba40b4b9a067b224f1">collectVars</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e, std::vector&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;vars, std::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;cache)</td></tr>
<tr class="memdesc:a437f70ccbf4e58ba40b4b9a067b224f1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Traverse 'e' and push all the i-leaves into 'vars' vector.  <a href="#a437f70ccbf4e58ba40b4b9a067b224f1"></a><br/></td></tr>
<tr class="separator:a437f70ccbf4e58ba40b4b9a067b224f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2f6e83fb2d863d7625c94d90bf5db856"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#a2f6e83fb2d863d7625c94d90bf5db856">processFiniteInterval</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;alphaLEax, const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;bxLEbeta)</td></tr>
<tr class="memdesc:a2f6e83fb2d863d7625c94d90bf5db856"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if alpha &lt;= ax &amp; bx &lt;= beta is a finite interval for integer var 'x', and assert the corresponding constraint.  <a href="#a2f6e83fb2d863d7625c94d90bf5db856"></a><br/></td></tr>
<tr class="separator:a2f6e83fb2d863d7625c94d90bf5db856"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa2a249c2877aa16d3517a6cca9992216"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#aa2a249c2877aa16d3517a6cca9992216">processFiniteIntervals</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;x)</td></tr>
<tr class="memdesc:aa2a249c2877aa16d3517a6cca9992216"><td class="mdescLeft">&#160;</td><td class="mdescRight">For an integer var 'x', find and process all constraints A &lt;= ax &lt;= A+c.  <a href="#aa2a249c2877aa16d3517a6cca9992216"></a><br/></td></tr>
<tr class="separator:aa2a249c2877aa16d3517a6cca9992216"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a251086c30f2a7939e6d624d4a4cd8db4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#a251086c30f2a7939e6d624d4a4cd8db4">setupRec</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="memdesc:a251086c30f2a7939e6d624d4a4cd8db4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Recursive setup for isolated inequalities (and other new expressions)  <a href="#a251086c30f2a7939e6d624d4a4cd8db4"></a><br/></td></tr>
<tr class="separator:a251086c30f2a7939e6d624d4a4cd8db4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeee481c90c90340e900a847fc0c8b82e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#aeee481c90c90340e900a847fc0c8b82e">deriveGomoryCut</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;x_i)</td></tr>
<tr class="separator:aeee481c90c90340e900a847fc0c8b82e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a68884e312bf69a858ed5a45979571d1a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#a68884e312bf69a858ed5a45979571d1a">rafineIntegerConstraints</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;thm)</td></tr>
<tr class="separator:a68884e312bf69a858ed5a45979571d1a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac6fc7d06f3933010435be7f77b0022bc"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#ac6fc7d06f3933010435be7f77b0022bc">propagateTheory</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;assertExpr, const <a class="el" href="classCVC3_1_1TheoryArithNew_1_1EpsRational.html">EpsRational</a> &amp;bound, const <a class="el" href="classCVC3_1_1TheoryArithNew_1_1EpsRational.html">EpsRational</a> &amp;oldBound)</td></tr>
<tr class="separator:ac6fc7d06f3933010435be7f77b0022bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a59752d5aa73e48dd1a6c133a41a3c5d4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#a59752d5aa73e48dd1a6c133a41a3c5d4">updateDependenciesAdd</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;var, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;sum)</td></tr>
<tr class="separator:a59752d5aa73e48dd1a6c133a41a3c5d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa21dc626bcc3110d6f90cddfa66e7729"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#aa21dc626bcc3110d6f90cddfa66e7729">updateDependenciesRemove</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;var, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;sum)</td></tr>
<tr class="separator:aa21dc626bcc3110d6f90cddfa66e7729"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a85da313a2d543ca7343191a4cc20fa0d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#a85da313a2d543ca7343191a4cc20fa0d">updateDependencies</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;oldExpr, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;newExpr, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;var, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;skipVar)</td></tr>
<tr class="separator:a85da313a2d543ca7343191a4cc20fa0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a16a43c368ec23e06c847ae9684a98381"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#a16a43c368ec23e06c847ae9684a98381">updateFreshVariables</a> ()</td></tr>
<tr class="separator:a16a43c368ec23e06c847ae9684a98381"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad22fa5522add29991c72dab60da2e922"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#ad22fa5522add29991c72dab60da2e922">updateValue</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;var, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="separator:ad22fa5522add29991c72dab60da2e922"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af2a4bc0a133edf66fe040d72c4e7ea01"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#af2a4bc0a133edf66fe040d72c4e7ea01">tableauxAsString</a> () const </td></tr>
<tr class="separator:af2a4bc0a133edf66fe040d72c4e7ea01"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afbbf8a22ba662eaea65afbbcb135ff83"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#afbbf8a22ba662eaea65afbbcb135ff83">unsatAsString</a> () const </td></tr>
<tr class="separator:afbbf8a22ba662eaea65afbbcb135ff83"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acbfcb4d92182bdf9e185661ec0fc61e0"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#acbfcb4d92182bdf9e185661ec0fc61e0">boundsAsString</a> ()</td></tr>
<tr class="separator:acbfcb4d92182bdf9e185661ec0fc61e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad6fc5bdbe7ed6bcd4df8543e96b2b079"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#ad6fc5bdbe7ed6bcd4df8543e96b2b079">getVariableIntroThm</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;leftSide)</td></tr>
<tr class="separator:ad6fc5bdbe7ed6bcd4df8543e96b2b079"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5fcebedad96665573ab5eafb7d70b2e0"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classCVC3_1_1Rational.html">Rational</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#a5fcebedad96665573ab5eafb7d70b2e0">findCoefficient</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;var, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;expr)</td></tr>
<tr class="separator:a5fcebedad96665573ab5eafb7d70b2e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af4eaf347e86ee4616a52676801213711"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#af4eaf347e86ee4616a52676801213711">isBasic</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;x) const </td></tr>
<tr class="separator:af4eaf347e86ee4616a52676801213711"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4ed9c0c6e1bfa32ead951cb6c1221f0e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Rational.html">Rational</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#a4ed9c0c6e1bfa32ead951cb6c1221f0e">getTableauxEntry</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;x_i, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;x_j)</td></tr>
<tr class="separator:a4ed9c0c6e1bfa32ead951cb6c1221f0e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab19840152f3116c50edb0b6c0cc673f7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#ab19840152f3116c50edb0b6c0cc673f7">pivot</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;x_r, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;x_s)</td></tr>
<tr class="separator:ab19840152f3116c50edb0b6c0cc673f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abd8ac3d26ddd910cc52da9bde210e50a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#abd8ac3d26ddd910cc52da9bde210e50a">update</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;x_i, const <a class="el" href="classCVC3_1_1TheoryArithNew_1_1EpsRational.html">EpsRational</a> &amp;v)</td></tr>
<tr class="separator:abd8ac3d26ddd910cc52da9bde210e50a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae9e0aad1b930137d011dbab8bf4b0874"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#ae9e0aad1b930137d011dbab8bf4b0874">pivotAndUpdate</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;x_i, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;x_j, const <a class="el" href="classCVC3_1_1TheoryArithNew_1_1EpsRational.html">EpsRational</a> &amp;v)</td></tr>
<tr class="separator:ae9e0aad1b930137d011dbab8bf4b0874"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a344feb254ed4f336fc0dc41a66cf232c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceCVC3.html#a060d21b3207cc3471e24f8dbcff3498b">QueryResult</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#a344feb254ed4f336fc0dc41a66cf232c">assertUpper</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;x_i, const <a class="el" href="classCVC3_1_1TheoryArithNew_1_1EpsRational.html">EpsRational</a> &amp;c, const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;thm)</td></tr>
<tr class="separator:a344feb254ed4f336fc0dc41a66cf232c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa17423f3ce290e28544a356f0977f6f8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceCVC3.html#a060d21b3207cc3471e24f8dbcff3498b">QueryResult</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#aa17423f3ce290e28544a356f0977f6f8">assertLower</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;x_i, const <a class="el" href="classCVC3_1_1TheoryArithNew_1_1EpsRational.html">EpsRational</a> &amp;c, const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;thm)</td></tr>
<tr class="separator:aa17423f3ce290e28544a356f0977f6f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ace140a37ea260f769f4aa2756e5f22f0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceCVC3.html#a060d21b3207cc3471e24f8dbcff3498b">QueryResult</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#ace140a37ea260f769f4aa2756e5f22f0">assertEqual</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;x_i, const <a class="el" href="classCVC3_1_1TheoryArithNew_1_1EpsRational.html">EpsRational</a> &amp;c, const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;thm)</td></tr>
<tr class="separator:ace140a37ea260f769f4aa2756e5f22f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a48d4a6a488973f4fc79fc8d0c4d1470c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Expr.html">Expr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#a48d4a6a488973f4fc79fc8d0c4d1470c">computeNormalFactor</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;rhs, <a class="el" href="classCVC3_1_1TheoryArithNew.html#a9707c04f2d2af4812b8c18029f0368f4">NormalizationType</a> type=<a class="el" href="classCVC3_1_1TheoryArithNew.html#a9707c04f2d2af4812b8c18029f0368f4a5df10a1338d39c91f6886d5b09a2751d">NORMALIZE_GCD</a>)</td></tr>
<tr class="separator:a48d4a6a488973f4fc79fc8d0c4d1470c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a243f5665943792345df52be2a94eb648"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#a243f5665943792345df52be2a94eb648">normalize</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e, <a class="el" href="classCVC3_1_1TheoryArithNew.html#a9707c04f2d2af4812b8c18029f0368f4">NormalizationType</a> type=<a class="el" href="classCVC3_1_1TheoryArithNew.html#a9707c04f2d2af4812b8c18029f0368f4a5df10a1338d39c91f6886d5b09a2751d">NORMALIZE_GCD</a>)</td></tr>
<tr class="separator:a243f5665943792345df52be2a94eb648"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a51f12b9264f77ec8a82f58cce68780c8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#a51f12b9264f77ec8a82f58cce68780c8">normalize</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;thm, <a class="el" href="classCVC3_1_1TheoryArithNew.html#a9707c04f2d2af4812b8c18029f0368f4">NormalizationType</a> type=<a class="el" href="classCVC3_1_1TheoryArithNew.html#a9707c04f2d2af4812b8c18029f0368f4a5df10a1338d39c91f6886d5b09a2751d">NORMALIZE_GCD</a>)</td></tr>
<tr class="separator:a51f12b9264f77ec8a82f58cce68780c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a349c59e5b2eb5c2a9154f5bdeff43fde"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#a349c59e5b2eb5c2a9154f5bdeff43fde">substAndCanonizeModTableaux</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;eq)</td></tr>
<tr class="separator:a349c59e5b2eb5c2a9154f5bdeff43fde"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afc88d03ab0e42f2e4e53f8c5800313ad"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#afc88d03ab0e42f2e4e53f8c5800313ad">substAndCanonizeModTableaux</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;sum)</td></tr>
<tr class="separator:afc88d03ab0e42f2e4e53f8c5800313ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad7d64d8e7110a9992654154b3e3613b0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#ad7d64d8e7110a9992654154b3e3613b0">substAndCanonizeTableaux</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;eq)</td></tr>
<tr class="separator:ad7d64d8e7110a9992654154b3e3613b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abebb5cee14c85657ea68c873372b14d9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#abebb5cee14c85657ea68c873372b14d9">pivotRule</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;eq, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;var)</td></tr>
<tr class="separator:abebb5cee14c85657ea68c873372b14d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a843498f8c1a569a296822e8f1f92d675"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#a843498f8c1a569a296822e8f1f92d675">getLowerBoundExplanation</a> (const <a class="el" href="classHash_1_1hash__map.html#a0fae180472ddfd8822c881caf23c11a9">TebleauxMap::iterator</a> &amp;var_it)</td></tr>
<tr class="separator:a843498f8c1a569a296822e8f1f92d675"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6bbd3291d090682e1c8a2cadb0d8380d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#a6bbd3291d090682e1c8a2cadb0d8380d">getUpperBoundExplanation</a> (const <a class="el" href="classHash_1_1hash__map.html#a0fae180472ddfd8822c881caf23c11a9">TebleauxMap::iterator</a> &amp;var_it)</td></tr>
<tr class="separator:a6bbd3291d090682e1c8a2cadb0d8380d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5402887425b9a029f2ae0718c5012cb2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#a5402887425b9a029f2ae0718c5012cb2">addInequalities</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;le_1, const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;le_2)</td></tr>
<tr class="separator:a5402887425b9a029f2ae0718c5012cb2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab67b64c7fd085bd9881aa7cef33217de"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceCVC3.html#a060d21b3207cc3471e24f8dbcff3498b">QueryResult</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#ab67b64c7fd085bd9881aa7cef33217de">checkSatSimplex</a> ()</td></tr>
<tr class="separator:ab67b64c7fd085bd9881aa7cef33217de"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7b516a72d54789b1403b8854b83aeb29"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceCVC3.html#a060d21b3207cc3471e24f8dbcff3498b">QueryResult</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#a7b516a72d54789b1403b8854b83aeb29">checkSatInteger</a> ()</td></tr>
<tr class="separator:a7b516a72d54789b1403b8854b83aeb29"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a>
Private Attributes</h2></td></tr>
<tr class="memitem:a7f402d265d6f783bbc4139ba3dddd9db"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1CDList.html">CDList</a>&lt; <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#a7f402d265d6f783bbc4139ba3dddd9db">d_diseq</a></td></tr>
<tr class="separator:a7f402d265d6f783bbc4139ba3dddd9db"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a40a1d8f8e7d2faf4ddffe3ca14a90e88"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1CDO.html">CDO</a>&lt; size_t &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#a40a1d8f8e7d2faf4ddffe3ca14a90e88">d_diseqIdx</a></td></tr>
<tr class="separator:a40a1d8f8e7d2faf4ddffe3ca14a90e88"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1fb30358f2875620fef664227f0d3d5e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1ArithProofRules.html">ArithProofRules</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#a1fb30358f2875620fef664227f0d3d5e">d_rules</a></td></tr>
<tr class="separator:a1fb30358f2875620fef664227f0d3d5e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae29425ad828a82acb991db1ab50e8dd7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1CDO.html">CDO</a>&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#ae29425ad828a82acb991db1ab50e8dd7">d_inModelCreation</a></td></tr>
<tr class="separator:ae29425ad828a82acb991db1ab50e8dd7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acb102f87cd4bcdba4d404a6951eac0aa"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1ExprMap.html">ExprMap</a>&lt; <a class="el" href="classCVC3_1_1CDList.html">CDList</a>&lt; <a class="el" href="classCVC3_1_1TheoryArithNew_1_1Ineq.html">Ineq</a> &gt; * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#acb102f87cd4bcdba4d404a6951eac0aa">d_inequalitiesRightDB</a></td></tr>
<tr class="memdesc:acb102f87cd4bcdba4d404a6951eac0aa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Database of inequalities with a variable isolated on the right.  <a href="#acb102f87cd4bcdba4d404a6951eac0aa"></a><br/></td></tr>
<tr class="separator:acb102f87cd4bcdba4d404a6951eac0aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a74167d750ba8d8cc8b0ec520e8a41894"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1ExprMap.html">ExprMap</a>&lt; <a class="el" href="classCVC3_1_1CDList.html">CDList</a>&lt; <a class="el" href="classCVC3_1_1TheoryArithNew_1_1Ineq.html">Ineq</a> &gt; * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#a74167d750ba8d8cc8b0ec520e8a41894">d_inequalitiesLeftDB</a></td></tr>
<tr class="memdesc:a74167d750ba8d8cc8b0ec520e8a41894"><td class="mdescLeft">&#160;</td><td class="mdescRight">Database of inequalities with a variable isolated on the left.  <a href="#a74167d750ba8d8cc8b0ec520e8a41894"></a><br/></td></tr>
<tr class="separator:a74167d750ba8d8cc8b0ec520e8a41894"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab5a2165c11bc6867c349627682291fcf"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1CDMap.html">CDMap</a>&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a>, <a class="el" href="classCVC3_1_1TheoryArithNew_1_1FreeConst.html">FreeConst</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#ab5a2165c11bc6867c349627682291fcf">d_freeConstDB</a></td></tr>
<tr class="memdesc:ab5a2165c11bc6867c349627682291fcf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Mapping of inequalities to the largest/smallest free constant.  <a href="#ab5a2165c11bc6867c349627682291fcf"></a><br/></td></tr>
<tr class="separator:ab5a2165c11bc6867c349627682291fcf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2f0dca2d2952728c2556f8d255cfb008"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1CDList.html">CDList</a>&lt; <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#a2f0dca2d2952728c2556f8d255cfb008">d_buffer</a></td></tr>
<tr class="memdesc:a2f0dca2d2952728c2556f8d255cfb008"><td class="mdescLeft">&#160;</td><td class="mdescRight">Buffer of input inequalities.  <a href="#a2f0dca2d2952728c2556f8d255cfb008"></a><br/></td></tr>
<tr class="separator:a2f0dca2d2952728c2556f8d255cfb008"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9a394c94c0607e645c355489631ed690"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1CDO.html">CDO</a>&lt; size_t &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#a9a394c94c0607e645c355489631ed690">d_bufferIdx</a></td></tr>
<tr class="memdesc:a9a394c94c0607e645c355489631ed690"><td class="mdescLeft">&#160;</td><td class="mdescRight">Buffer index of the next unprocessed inequality.  <a href="#a9a394c94c0607e645c355489631ed690"></a><br/></td></tr>
<tr class="separator:a9a394c94c0607e645c355489631ed690"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2f0bafe4d3eddd28d9d9484318c17e45"><td class="memItemLeft" align="right" valign="top">const int *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#a2f0bafe4d3eddd28d9d9484318c17e45">d_bufferThres</a></td></tr>
<tr class="memdesc:a2f0bafe4d3eddd28d9d9484318c17e45"><td class="mdescLeft">&#160;</td><td class="mdescRight">Threshold when the buffer must be processed.  <a href="#a2f0bafe4d3eddd28d9d9484318c17e45"></a><br/></td></tr>
<tr class="separator:a2f0bafe4d3eddd28d9d9484318c17e45"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad568a72b85a6bc0c70dfe14d279c9360"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1CDMap.html">CDMap</a>&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a>, int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#ad568a72b85a6bc0c70dfe14d279c9360">d_countRight</a></td></tr>
<tr class="memdesc:ad568a72b85a6bc0c70dfe14d279c9360"><td class="mdescLeft">&#160;</td><td class="mdescRight">Mapping of a variable to the number of inequalities where the variable would be isolated on the right.  <a href="#ad568a72b85a6bc0c70dfe14d279c9360"></a><br/></td></tr>
<tr class="separator:ad568a72b85a6bc0c70dfe14d279c9360"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:add35a93fae75084ae5b77f1995477c77"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1CDMap.html">CDMap</a>&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a>, int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#add35a93fae75084ae5b77f1995477c77">d_countLeft</a></td></tr>
<tr class="memdesc:add35a93fae75084ae5b77f1995477c77"><td class="mdescLeft">&#160;</td><td class="mdescRight">Mapping of a variable to the number of inequalities where the variable would be isolated on the left.  <a href="#add35a93fae75084ae5b77f1995477c77"></a><br/></td></tr>
<tr class="separator:add35a93fae75084ae5b77f1995477c77"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6d0b6ef62c9feb4df9c71f2c11912b54"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1CDMap.html">CDMap</a>&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a>, bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#a6d0b6ef62c9feb4df9c71f2c11912b54">d_sharedTerms</a></td></tr>
<tr class="memdesc:a6d0b6ef62c9feb4df9c71f2c11912b54"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set of shared terms (for counterexample generation)  <a href="#a6d0b6ef62c9feb4df9c71f2c11912b54"></a><br/></td></tr>
<tr class="separator:a6d0b6ef62c9feb4df9c71f2c11912b54"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7ae009f0e7ba96e071f45d9e1094c522"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1CDMap.html">CDMap</a>&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a>, bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#a7ae009f0e7ba96e071f45d9e1094c522">d_sharedVars</a></td></tr>
<tr class="memdesc:a7ae009f0e7ba96e071f45d9e1094c522"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set of shared integer variables (i-leaves)  <a href="#a7ae009f0e7ba96e071f45d9e1094c522"></a><br/></td></tr>
<tr class="separator:a7ae009f0e7ba96e071f45d9e1094c522"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aed79ec63593f899733e76790d28d4a62"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1TheoryArithNew_1_1VarOrderGraph.html">VarOrderGraph</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#aed79ec63593f899733e76790d28d4a62">d_graph</a></td></tr>
<tr class="separator:aed79ec63593f899733e76790d28d4a62"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae79693c72c0c7236d6d76cab2a4dcc0b"><td class="memItemLeft" align="right" valign="top">std::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#ae79693c72c0c7236d6d76cab2a4dcc0b">intVariables</a></td></tr>
<tr class="separator:ae79693c72c0c7236d6d76cab2a4dcc0b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5d837dd76fd8ae099ace4c1e6492301d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1CDO.html">CDO</a>&lt; <a class="el" href="namespaceCVC3.html#a060d21b3207cc3471e24f8dbcff3498b">QueryResult</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#a5d837dd76fd8ae099ace4c1e6492301d">consistent</a></td></tr>
<tr class="separator:a5d837dd76fd8ae099ace4c1e6492301d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a26d56a1b473c8e770caba9f3eb85f79a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#a26d56a1b473c8e770caba9f3eb85f79a">explanation</a></td></tr>
<tr class="separator:a26d56a1b473c8e770caba9f3eb85f79a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9fd0d5eca20607172cb8260a02296e74"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1CDMap.html">CDMap</a>&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a>, <a class="el" href="structCVC3_1_1TheoryArithNew_1_1BoundInfo.html">BoundInfo</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#a9fd0d5eca20607172cb8260a02296e74">lowerBound</a></td></tr>
<tr class="separator:a9fd0d5eca20607172cb8260a02296e74"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a485637b86fce6c4a8d53d54e286d2eb8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1CDMap.html">CDMap</a>&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a>, <a class="el" href="structCVC3_1_1TheoryArithNew_1_1BoundInfo.html">BoundInfo</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#a485637b86fce6c4a8d53d54e286d2eb8">upperBound</a></td></tr>
<tr class="separator:a485637b86fce6c4a8d53d54e286d2eb8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab75b8a7b5960850c91a39c7713fb2477"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1CDMap.html">CDMap</a>&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a>, <a class="el" href="classCVC3_1_1TheoryArithNew_1_1EpsRational.html">EpsRational</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#ab75b8a7b5960850c91a39c7713fb2477">beta</a></td></tr>
<tr class="separator:ab75b8a7b5960850c91a39c7713fb2477"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5fd6d2cc2d018a67da124ef194f178ab"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1TheoryArithNew.html#a3353b432dcd79f2168bfcefc072edb67">DependenciesMap</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#a5fd6d2cc2d018a67da124ef194f178ab">dependenciesMap</a></td></tr>
<tr class="separator:a5fd6d2cc2d018a67da124ef194f178ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad96e0ca1cad09988822b88f82ebdc016"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1TheoryArithNew.html#a159af481e211c2e18dd9280a17ae17a3">TebleauxMap</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#ad96e0ca1cad09988822b88f82ebdc016">tableaux</a></td></tr>
<tr class="separator:ad96e0ca1cad09988822b88f82ebdc016"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac7d4a8110239f9c2d6f17c7a46a69d6e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1TheoryArithNew.html#a159af481e211c2e18dd9280a17ae17a3">TebleauxMap</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#ac7d4a8110239f9c2d6f17c7a46a69d6e">freshVariables</a></td></tr>
<tr class="separator:ac7d4a8110239f9c2d6f17c7a46a69d6e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3accb9cf21e2168036e7b365649820fa"><td class="memItemLeft" align="right" valign="top">std::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#a3accb9cf21e2168036e7b365649820fa">unsatBasicVariables</a></td></tr>
<tr class="separator:a3accb9cf21e2168036e7b365649820fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7ff415cf3c90ddb60ff436d4b0b4c04b"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#a7ff415cf3c90ddb60ff436d4b0b4c04b">assertedExpr</a></td></tr>
<tr class="separator:a7ff415cf3c90ddb60ff436d4b0b4c04b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a74dc050dee06beacca0e7e32b4585ec0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1CDO.html">CDO</a>&lt; unsigned int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#a74dc050dee06beacca0e7e32b4585ec0">assertedExprCount</a></td></tr>
<tr class="separator:a74dc050dee06beacca0e7e32b4585ec0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ace61ed893b9e6d4b5e8ff19f40e9152a"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#ace61ed893b9e6d4b5e8ff19f40e9152a">propagate</a></td></tr>
<tr class="separator:ace61ed893b9e6d4b5e8ff19f40e9152a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae72d6b44b420d4acb2935c00d0b01fec"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1TheoryArithNew.html#a2a34551a41e235972300cd849314c472">BoundInfoSet</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#ae72d6b44b420d4acb2935c00d0b01fec">allBounds</a></td></tr>
<tr class="separator:ae72d6b44b420d4acb2935c00d0b01fec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a17aa12461bb0531b62670e37499b38a0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1CDO.html">CDO</a>&lt; <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#a17aa12461bb0531b62670e37499b38a0">integer_lemma</a></td></tr>
<tr class="separator:a17aa12461bb0531b62670e37499b38a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a>
Friends</h2></td></tr>
<tr class="memitem:a24b0687e8f0fa36a6d5bacc8155517e2"><td class="memItemLeft" align="right" valign="top">std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#a24b0687e8f0fa36a6d5bacc8155517e2">operator&lt;&lt;</a> (std::ostream &amp;os, const <a class="el" href="classCVC3_1_1TheoryArithNew_1_1FreeConst.html">FreeConst</a> &amp;fc)</td></tr>
<tr class="memdesc:a24b0687e8f0fa36a6d5bacc8155517e2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Printing.  <a href="#a24b0687e8f0fa36a6d5bacc8155517e2"></a><br/></td></tr>
<tr class="separator:a24b0687e8f0fa36a6d5bacc8155517e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a588ea1b8e9435f2a0fa0fbfe028fbd28"><td class="memItemLeft" align="right" valign="top">std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArithNew.html#a588ea1b8e9435f2a0fa0fbfe028fbd28">operator&lt;&lt;</a> (std::ostream &amp;os, const <a class="el" href="classCVC3_1_1TheoryArithNew_1_1Ineq.html">Ineq</a> &amp;ineq)</td></tr>
<tr class="memdesc:a588ea1b8e9435f2a0fa0fbfe028fbd28"><td class="mdescLeft">&#160;</td><td class="mdescRight">Printing.  <a href="#a588ea1b8e9435f2a0fa0fbfe028fbd28"></a><br/></td></tr>
<tr class="separator:a588ea1b8e9435f2a0fa0fbfe028fbd28"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pro_methods_classCVC3_1_1TheoryArith"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classCVC3_1_1TheoryArith')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classCVC3_1_1TheoryArith.html">CVC3::TheoryArith</a></td></tr>
<tr class="memitem:a646f9972679d4465ba9ff7430cda9268 inherit pro_methods_classCVC3_1_1TheoryArith"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArith.html#a646f9972679d4465ba9ff7430cda9268">canonRec</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="memdesc:a646f9972679d4465ba9ff7430cda9268 inherit pro_methods_classCVC3_1_1TheoryArith"><td class="mdescLeft">&#160;</td><td class="mdescRight">Canonize the expression e recursively.  <a href="#a646f9972679d4465ba9ff7430cda9268"></a><br/></td></tr>
<tr class="separator:a646f9972679d4465ba9ff7430cda9268 inherit pro_methods_classCVC3_1_1TheoryArith"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa2e49ab9e41d425df9398b27c7a95251 inherit pro_methods_classCVC3_1_1TheoryArith"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArith.html#aa2e49ab9e41d425df9398b27c7a95251">printRational</a> (<a class="el" href="classCVC3_1_1ExprStream.html">ExprStream</a> &amp;os, const <a class="el" href="classCVC3_1_1Rational.html">Rational</a> &amp;r, bool printAsReal=false)</td></tr>
<tr class="memdesc:aa2e49ab9e41d425df9398b27c7a95251 inherit pro_methods_classCVC3_1_1TheoryArith"><td class="mdescLeft">&#160;</td><td class="mdescRight">Print a rational in SMT-LIB format.  <a href="#aa2e49ab9e41d425df9398b27c7a95251"></a><br/></td></tr>
<tr class="separator:aa2e49ab9e41d425df9398b27c7a95251 inherit pro_methods_classCVC3_1_1TheoryArith"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a432e12ff64bf229a3572e36d49aec683 inherit pro_methods_classCVC3_1_1TheoryArith"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArith.html#a432e12ff64bf229a3572e36d49aec683">isAtomicArithTerm</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="memdesc:a432e12ff64bf229a3572e36d49aec683 inherit pro_methods_classCVC3_1_1TheoryArith"><td class="mdescLeft">&#160;</td><td class="mdescRight">Whether any ite's appear in the arithmetic part of the term e.  <a href="#a432e12ff64bf229a3572e36d49aec683"></a><br/></td></tr>
<tr class="separator:a432e12ff64bf229a3572e36d49aec683 inherit pro_methods_classCVC3_1_1TheoryArith"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac34712c1935e1c1f465f3132c622d1aa inherit pro_methods_classCVC3_1_1TheoryArith"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArith.html#ac34712c1935e1c1f465f3132c622d1aa">canonSimp</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="memdesc:ac34712c1935e1c1f465f3132c622d1aa inherit pro_methods_classCVC3_1_1TheoryArith"><td class="mdescLeft">&#160;</td><td class="mdescRight">simplify leaves and then canonize  <a href="#ac34712c1935e1c1f465f3132c622d1aa"></a><br/></td></tr>
<tr class="separator:ac34712c1935e1c1f465f3132c622d1aa inherit pro_methods_classCVC3_1_1TheoryArith"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adea0b08bcb123d6dca2b4742326b87c1 inherit pro_methods_classCVC3_1_1TheoryArith"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArith.html#adea0b08bcb123d6dca2b4742326b87c1">recursiveCanonSimpCheck</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="memdesc:adea0b08bcb123d6dca2b4742326b87c1 inherit pro_methods_classCVC3_1_1TheoryArith"><td class="mdescLeft">&#160;</td><td class="mdescRight">helper for checkAssertEqInvariant  <a href="#adea0b08bcb123d6dca2b4742326b87c1"></a><br/></td></tr>
<tr class="separator:adea0b08bcb123d6dca2b4742326b87c1 inherit pro_methods_classCVC3_1_1TheoryArith"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_attribs_classCVC3_1_1TheoryArith"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classCVC3_1_1TheoryArith')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classCVC3_1_1TheoryArith.html">CVC3::TheoryArith</a></td></tr>
<tr class="memitem:a447eac07a3b8a1f439e9379466be2a10 inherit pro_attribs_classCVC3_1_1TheoryArith"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Type.html">Type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArith.html#a447eac07a3b8a1f439e9379466be2a10">d_realType</a></td></tr>
<tr class="separator:a447eac07a3b8a1f439e9379466be2a10 inherit pro_attribs_classCVC3_1_1TheoryArith"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8ae42bae19cdfd95be038365c55ca1ab inherit pro_attribs_classCVC3_1_1TheoryArith"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Type.html">Type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArith.html#a8ae42bae19cdfd95be038365c55ca1ab">d_intType</a></td></tr>
<tr class="separator:a8ae42bae19cdfd95be038365c55ca1ab inherit pro_attribs_classCVC3_1_1TheoryArith"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a96bd09b1e8c9d9044d186197fa3aa924 inherit pro_attribs_classCVC3_1_1TheoryArith"><td class="memItemLeft" align="right" valign="top">std::vector&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoryArith.html#a96bd09b1e8c9d9044d186197fa3aa924">d_kinds</a></td></tr>
<tr class="separator:a96bd09b1e8c9d9044d186197fa3aa924 inherit pro_attribs_classCVC3_1_1TheoryArith"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>This theory handles basic linear arithmetic.</p>
<dl class="section author"><dt>Author</dt><dd>Clark Barrett</dd></dl>
<dl class="section since"><dt>Since</dt><dd>Sat Feb 8 14:44:32 2003 </dd></dl>

<p>Definition at line <a class="el" href="theory__arith__new_8h_source.html#l00041">41</a> of file <a class="el" href="theory__arith__new_8h_source.html">theory_arith_new.h</a>.</p>
</div><h2 class="groupheader">Member Typedef Documentation</h2>
<a class="anchor" id="a159af481e211c2e18dd9280a17ae17a3"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="classHash_1_1hash__map.html">Hash::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_1TheoryArithNew.html#a159af481e211c2e18dd9280a17ae17a3">CVC3::TheoryArithNew::TebleauxMap</a></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="theory__arith__new_8h_source.html#l00611">611</a> of file <a class="el" href="theory__arith__new_8h_source.html">theory_arith_new.h</a>.</p>

</div>
</div>
<a class="anchor" id="a57d34162d4006753f6202c531e2a9d9a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">typedef std::set&lt;<a class="el" href="classCVC3_1_1Expr.html">Expr</a>&gt; <a class="el" href="classCVC3_1_1TheoryArithNew.html#a57d34162d4006753f6202c531e2a9d9a">CVC3::TheoryArithNew::SetOfVariables</a></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="theory__arith__new_8h_source.html#l00615">615</a> of file <a class="el" href="theory__arith__new_8h_source.html">theory_arith_new.h</a>.</p>

</div>
</div>
<a class="anchor" id="a3353b432dcd79f2168bfcefc072edb67"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="classHash_1_1hash__map.html">Hash::hash_map</a>&lt;<a class="el" href="classCVC3_1_1Expr.html">Expr</a>, <a class="el" href="classCVC3_1_1TheoryArithNew.html#a57d34162d4006753f6202c531e2a9d9a">SetOfVariables</a>&gt; <a class="el" href="classCVC3_1_1TheoryArithNew.html#a3353b432dcd79f2168bfcefc072edb67">CVC3::TheoryArithNew::DependenciesMap</a></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="theory__arith__new_8h_source.html#l00616">616</a> of file <a class="el" href="theory__arith__new_8h_source.html">theory_arith_new.h</a>.</p>

</div>
</div>
<a class="anchor" id="a2a34551a41e235972300cd849314c472"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">typedef std::set&lt;<a class="el" href="structCVC3_1_1TheoryArithNew_1_1ExprBoundInfo.html">ExprBoundInfo</a>&gt; <a class="el" href="classCVC3_1_1TheoryArithNew.html#a2a34551a41e235972300cd849314c472">CVC3::TheoryArithNew::BoundInfoSet</a></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>A set of <a class="el" href="structCVC3_1_1TheoryArithNew_1_1BoundInfo.html">BoundInfo</a> objects </p>

<p>Definition at line <a class="el" href="theory__arith__new_8h_source.html#l00636">636</a> of file <a class="el" href="theory__arith__new_8h_source.html">theory_arith_new.h</a>.</p>

</div>
</div>
<h2 class="groupheader">Member Enumeration Documentation</h2>
<a class="anchor" id="a9707c04f2d2af4812b8c18029f0368f4"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="classCVC3_1_1TheoryArithNew.html#a9707c04f2d2af4812b8c18029f0368f4">CVC3::TheoryArithNew::NormalizationType</a></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p><a class="el" href="classCVC3_1_1Type.html" title="MS C++ specific settings.">Type</a> of noramlization GCD = 1 or just first coefficient 1 </p>
<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" id="a9707c04f2d2af4812b8c18029f0368f4a5df10a1338d39c91f6886d5b09a2751d"></a>NORMALIZE_GCD</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a9707c04f2d2af4812b8c18029f0368f4a382fccac5af0c0091adfac3b4048c2ba"></a>NORMALIZE_UNIT</em>&nbsp;</td><td>
</td></tr>
</table>
</dd>
</dl>

<p>Definition at line <a class="el" href="theory__arith__new_8h_source.html#l00813">813</a> of file <a class="el" href="theory__arith__new_8h_source.html">theory_arith_new.h</a>.</p>

</div>
</div>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="ab4411e3c522623b9041aa52ce7d857f7"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">TheoryArithNew::TheoryArithNew </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1TheoryCore.html">TheoryCore</a> *&#160;</td>
          <td class="paramname"><em>core</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="theory__arith__new_8cpp_source.html#l01055">1055</a> of file <a class="el" href="theory__arith__new_8cpp_source.html">theory_arith_new.cpp</a>.</p>

<p>References <a class="el" href="theory__arith__new_8h_source.html#l00633">assertedExprCount</a>, <a class="el" href="theory__arith__new_8h_source.html#l00527">consistent</a>, <a class="el" href="arith__theorem__producer_8cpp_source.html#l00043">createProofRules()</a>, <a class="el" href="theory__arith__new_8h_source.html#l00102">d_buffer</a>, <a class="el" href="theory__arith__new_8h_source.html#l00103">d_bufferIdx</a>, <a class="el" href="theory__arith__new_8h_source.html#l00044">d_diseq</a>, <a class="el" href="theory__arith_8h_source.html#l00073">CVC3::TheoryArith::d_intType</a>, <a class="el" href="theory__arith_8h_source.html#l00072">CVC3::TheoryArith::d_realType</a>, <a class="el" href="theory__arith__new_8h_source.html#l00047">d_rules</a>, <a class="el" href="theory__arith_8h_source.html#l00054">CVC3::DARK_SHADOW</a>, <a class="el" href="theory__arith_8h_source.html#l00045">CVC3::DIVIDE</a>, <a class="el" href="theory__arith_8h_source.html#l00052">CVC3::GE</a>, <a class="el" href="theory_8h_source.html#l00090">CVC3::Theory::getEM()</a>, <a class="el" href="theory__arith_8h_source.html#l00055">CVC3::GRAY_SHADOW</a>, <a class="el" href="theory__arith_8h_source.html#l00051">CVC3::GT</a>, <a class="el" href="debug_8h_source.html#l00406">IF_DEBUG</a>, <a class="el" href="theory__arith_8h_source.html#l00038">CVC3::INT</a>, <a class="el" href="theory__arith_8h_source.html#l00047">CVC3::INTDIV</a>, <a class="el" href="theory__arith_8h_source.html#l00053">CVC3::IS_INTEGER</a>, <a class="el" href="theory__arith_8h_source.html#l00050">CVC3::LE</a>, <a class="el" href="theory__arith_8h_source.html#l00049">CVC3::LT</a>, <a class="el" href="theory__arith_8h_source.html#l00043">CVC3::MINUS</a>, <a class="el" href="theory__arith_8h_source.html#l00048">CVC3::MOD</a>, <a class="el" href="theory__arith_8h_source.html#l00044">CVC3::MULT</a>, <a class="el" href="theory__arith_8h_source.html#l00034">CVC3::NEGINF</a>, <a class="el" href="expr__manager_8cpp_source.html#l00367">CVC3::ExprManager::newKind()</a>, <a class="el" href="theory__arith_8h_source.html#l00042">CVC3::PLUS</a>, <a class="el" href="theory__arith_8h_source.html#l00035">CVC3::POSINF</a>, <a class="el" href="theory__arith_8h_source.html#l00046">CVC3::POW</a>, <a class="el" href="kinds_8h_source.html#l00037">RATIONAL_EXPR</a>, <a class="el" href="theory__arith_8h_source.html#l00037">CVC3::REAL</a>, <a class="el" href="theory__arith_8h_source.html#l00033">CVC3::REAL_CONST</a>, <a class="el" href="theory_8cpp_source.html#l00203">CVC3::Theory::registerTheory()</a>, <a class="el" href="queryresult_8h_source.html#l00033">CVC3::SATISFIABLE</a>, <a class="el" href="theory__arith_8h_source.html#l00039">CVC3::SUBRANGE</a>, and <a class="el" href="theory__arith_8h_source.html#l00041">CVC3::UMINUS</a>.</p>

</div>
</div>
<a class="anchor" id="ad1803172bb5078cdfc962febe9b080dc"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">TheoryArithNew::~TheoryArithNew </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="theory__arith__new_8cpp_source.html#l01140">1140</a> of file <a class="el" href="theory__arith__new_8cpp_source.html">theory_arith_new.cpp</a>.</p>

<p>References <a class="el" href="expr__map_8h_source.html#l00190">CVC3::ExprMap&lt; Data &gt;::begin()</a>, <a class="el" href="theory__arith__new_8h_source.html#l00091">d_inequalitiesLeftDB</a>, <a class="el" href="theory__arith__new_8h_source.html#l00089">d_inequalitiesRightDB</a>, <a class="el" href="theory__arith__new_8h_source.html#l00047">d_rules</a>, and <a class="el" href="expr__map_8h_source.html#l00191">CVC3::ExprMap&lt; Data &gt;::end()</a>.</p>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a1f78d51287d2a25282a94b7bb09d7932"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> TheoryArithNew::isIntegerThm </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>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Check the term t for integrality. </p>
<dl class="section return"><dt>Returns</dt><dd>a theorem of IS_INTEGER(t) or Null. </dd></dl>

<p>Definition at line <a class="el" href="theory__arith__new_8cpp_source.html#l00068">68</a> of file <a class="el" href="theory__arith__new_8cpp_source.html">theory_arith_new.cpp</a>.</p>

<p>References <a class="el" href="expr_8h_source.html#l01259">CVC3::Expr::getType()</a>, <a class="el" href="theory__arith_8h_source.html#l00053">CVC3::IS_INTEGER</a>, and <a class="el" href="theory__arith_8h_source.html#l00173">CVC3::isReal()</a>.</p>

<p>Referenced by <a class="el" href="theory__arith__new_8h_source.html#l00189">isInteger()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l01168">processFiniteInterval()</a>, and <a class="el" href="theory__arith__new_8cpp_source.html#l01541">rafineIntegerConstraints()</a>.</p>

</div>
</div>
<a class="anchor" id="aedd0b63568ada4ac3ddbc515e882a617"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> TheoryArithNew::isIntegerDerive </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>isIntE</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>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>A helper method for <a class="el" href="classCVC3_1_1TheoryArithNew.html#a1f78d51287d2a25282a94b7bb09d7932" title="Check the term t for integrality.">isIntegerThm()</a> </p>
<p>Check if IS_INTEGER(e) is easily derivable from the given 'thm' </p>

<p>Definition at line <a class="el" href="theory__arith__new_8cpp_source.html#l00076">76</a> of file <a class="el" href="theory__arith__new_8cpp_source.html">theory_arith_new.cpp</a>.</p>

<p>References <a class="el" href="expr_8h_source.html#l01201">CVC3::Expr::arity()</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="theorem_8h_source.html#l00164">CVC3::Theorem::isNull()</a>.</p>

</div>
</div>
<a class="anchor" id="a89696e5cdd27e0e15711a7b9a027c205"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool TheoryArithNew::kidsCanonical </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>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Check if the kids of e are fully simplified and canonized (for debugging) </p>

<p>Definition at line <a class="el" href="theory__arith__new_8cpp_source.html#l00094">94</a> of file <a class="el" href="theory__arith__new_8cpp_source.html">theory_arith_new.cpp</a>.</p>

<p>References <a class="el" href="expr_8h_source.html#l01201">CVC3::Expr::arity()</a>, <a class="el" href="expr__stream_8cpp_source.html#l00353">std::endl()</a>, and <a class="el" href="debug_8h_source.html#l00406">IF_DEBUG</a>.</p>

</div>
</div>
<a class="anchor" id="a453194ac83f105514a4d95fca44bd08e"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> TheoryArithNew::canon </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>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Canonize the expression e, assuming all children are canonical. </p>
<p>Compute a canonical form for expression e and return a theorem that e is equal to its canonical form. Note that canonical form for arith expressions is of the following form:</p>
<p>b + a_1 x_1 + a_2 x_2 + ... + a_n x_n (ONE SUM EXPRESION)</p>
<p>or just a rational b (RATIONAL EXPRESSION)</p>
<p>where a_i and b are rationals and x_i are arithmetical leaves (i.e. variables or non arithmetic terms)</p>
<dl class="section author"><dt>Author</dt><dd>Clark Barrett </dd>
<dd>
Vijay Ganesh </dd></dl>
<dl class="section since"><dt>Since</dt><dd>Sat Feb 8 14:46:32 2003 </dd></dl>

<p>Implements <a class="el" href="classCVC3_1_1TheoryArith.html#a78442f767c7ce9eef62df74af29178d6">CVC3::TheoryArith</a>.</p>

<p>Definition at line <a class="el" href="theory__arith__new_8cpp_source.html#l00123">123</a> of file <a class="el" href="theory__arith__new_8cpp_source.html">theory_arith_new.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="theory__arith_8h_source.html#l00045">CVC3::DIVIDE</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__arith_8h_source.html#l00177">CVC3::isRational()</a>, <a class="el" href="theory__arith_8h_source.html#l00043">CVC3::MINUS</a>, <a class="el" href="theory__arith_8h_source.html#l00044">CVC3::MULT</a>, <a class="el" href="theory__arith_8h_source.html#l00042">CVC3::PLUS</a>, <a class="el" href="theory__arith_8h_source.html#l00046">CVC3::POW</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__arith_8h_source.html#l00041">CVC3::UMINUS</a>.</p>

<p>Referenced by <a class="el" href="theory__arith__new_8cpp_source.html#l03600">pivotRule()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l01168">processFiniteInterval()</a>, and <a class="el" href="theory__arith__new_8cpp_source.html#l01570">rewrite()</a>.</p>

</div>
</div>
<a class="anchor" id="aeb8051f2049c78b1b007e274288fcc3b"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> TheoryArithNew::canonSimplify </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>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Canonize and reduce e w.r.t. union-find database; assume all children are canonical. </p>

<p>Definition at line <a class="el" href="theory__arith__new_8cpp_source.html#l00246">246</a> of file <a class="el" href="theory__arith__new_8cpp_source.html">theory_arith_new.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#l01232">CVC3::Expr::hasFind()</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__arith__new_8h_source.html#l00155">canonSimplify()</a>.</p>

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

<p>Composition of <a class="el" href="classCVC3_1_1TheoryArithNew.html#aeb8051f2049c78b1b007e274288fcc3b" title="Canonize and reduce e w.r.t. union-find database; assume all children are canonical.">canonSimplify(const Expr&amp;)</a> by transitivity: take e0 = e1, canonize and simplify e1 to e2, return e0 = e2. </p>

<p>Definition at line <a class="el" href="theory__arith__new_8h_source.html#l00155">155</a> of file <a class="el" href="theory__arith__new_8h_source.html">theory_arith_new.h</a>.</p>

<p>References <a class="el" href="theory__arith__new_8cpp_source.html#l00246">canonSimplify()</a>, <a class="el" href="theorem_8cpp_source.html#l00246">CVC3::Theorem::getRHS()</a>, and <a class="el" href="theory_8h_source.html#l00681">CVC3::Theory::transitivityRule()</a>.</p>

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

<p>Canonize predicate (x = y, x &lt; y, etc.) </p>
<p>accepts a theorem, canonizes it, applies iffMP and substituvity to derive the canonized thm </p>

<p>Definition at line <a class="el" href="theory__arith__new_8cpp_source.html#l00279">279</a> of file <a class="el" href="theory__arith__new_8cpp_source.html">theory_arith_new.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="theorem_8cpp_source.html#l00230">CVC3::Theorem::getExpr()</a>, <a class="el" href="expr_8h_source.html#l01183">CVC3::Expr::getOp()</a>, and <a class="el" href="theorem_8h_source.html#l00404">CVC3::Theorem::toString()</a>.</p>

<p>Referenced by <a class="el" href="theory__arith__new_8cpp_source.html#l01168">processFiniteInterval()</a>.</p>

</div>
</div>
<a class="anchor" id="a18e20adf514c858e9cfeb535e545fb06"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> TheoryArithNew::canonPredEquiv </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>thm</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Canonize predicate like canonPred except that the input theorem is an equivalent transformation.</p>
<p>Accepts an equivalence theorem, canonizes the subexpressions, applies transitivity and substituvity to derive the canonized theorem.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">thm</td><td>equivalence theorem </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the canonised expression theorem </dd></dl>

<p>Definition at line <a class="el" href="theory__arith__new_8cpp_source.html#l00295">295</a> of file <a class="el" href="theory__arith__new_8cpp_source.html">theory_arith_new.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#l01183">CVC3::Expr::getOp()</a>, <a class="el" href="theorem_8cpp_source.html#l00246">CVC3::Theorem::getRHS()</a>, and <a class="el" href="theorem_8h_source.html#l00404">CVC3::Theorem::toString()</a>.</p>

<p>Referenced by <a class="el" href="theory__arith__new_8cpp_source.html#l01468">normalize()</a>, and <a class="el" href="theory__arith__new_8cpp_source.html#l01570">rewrite()</a>.</p>

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

<p>Solve an equation and return an equivalent <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> in the solved form. </p>
<p>Pseudo-code for doSolve. (Input is an equation) (output is a <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>)</p>
<ol type="1">
<li>translate e to the form e' = 0</li>
<li>if (e'.<a class="el" href="namespaceCVC3.html#ac0334a083d6782caa17ca0d337fddddf">isRational()</a>) then {if e' != 0 return false else true}</li>
<li>a for loop checks if all the variables are integers.<ul>
<li>if not isolate a suitable real variable and call <a class="el" href="classCVC3_1_1TheoryArithNew.html#a5cc134d71df3e702dc3785072f4d5bb3" title="processes equalities with 1 or more vars of type REAL">processRealEq()</a>.</li>
<li>if all variables are integers then isolate suitable variable and call <a class="el" href="classCVC3_1_1TheoryArithNew.html#afdcb8dc50f957161f878c563f09a48b3" title="processes equalities whose vars are all of type INT">processIntEq()</a>. </li>
</ul>
</li>
</ol>

<p>Definition at line <a class="el" href="theory__arith__new_8cpp_source.html#l00331">331</a> of file <a class="el" href="theory__arith__new_8cpp_source.html">theory_arith_new.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#l01135">CVC3::Expr::getRational()</a>, <a class="el" href="debug_8h_source.html#l00406">IF_DEBUG</a>, <a class="el" href="theory__arith_8h_source.html#l00177">CVC3::isRational()</a>, <a class="el" href="expr_8h_source.html#l00431">CVC3::Expr::isRational()</a>, <a class="el" href="theorem_8cpp_source.html#l00224">CVC3::Theorem::isRewrite()</a>, <a class="el" href="minisat__heap_8h_source.html#l00054">MiniSat::right()</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__arith__new_8cpp_source.html#l01805">solve()</a>.</p>

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

<p>takes in a conjunction equivalence Thm and canonizes it. </p>
<p>accepts an equivalence theorem whose RHS is a conjunction, canonizes it, applies iffMP and substituvity to derive the canonized thm </p>

<p>Definition at line <a class="el" href="theory__arith__new_8cpp_source.html#l00318">318</a> of file <a class="el" href="theory__arith__new_8cpp_source.html">theory_arith_new.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a7e1ffe57de5017f1a3bc83aa3a6163a7"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Expr.html">Expr</a> TheoryArithNew::pickIntEqMonomial </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>right</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>picks the monomial with the smallest abs(coeff) from the input </p>
<p>pick a monomial for the input equation. This function is used only if the equation is an integer equation. Choose the monomial with the smallest absolute value of coefficient. </p>

<p>Definition at line <a class="el" href="theory__arith__new_8cpp_source.html#l00388">388</a> of file <a class="el" href="theory__arith__new_8cpp_source.html">theory_arith_new.cpp</a>.</p>

<p>References <a class="el" href="cvc__util_8h_source.html#l00053">CVC3::abs()</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="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="expr_8h_source.html#l01217">CVC3::Expr::end()</a>, <a class="el" href="theory__arith_8h_source.html#l00183">CVC3::isMult()</a>, <a class="el" href="theory__arith_8h_source.html#l00181">CVC3::isPlus()</a>, <a class="el" href="theory__arith_8h_source.html#l00177">CVC3::isRational()</a>, <a class="el" href="minisat__global_8h_source.html#l00058">MiniSat::min()</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

</div>
</div>
<a class="anchor" id="a5cc134d71df3e702dc3785072f4d5bb3"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> TheoryArithNew::processRealEq </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>eqn</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>processes equalities with 1 or more vars of type REAL </p>
<p>input is e1=e2&lt;==&gt;0=e' <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> and some of the vars in e' are of type REAL. isolate one of them and send back to framework. output is "e1=e2 &lt;==&gt; var = e''" <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>. </p>

<p>Definition at line <a class="el" href="theory__arith__new_8cpp_source.html#l00420">420</a> of file <a class="el" href="theory__arith__new_8cpp_source.html">theory_arith_new.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="kinds_8h_source.html#l00061">EQ</a>, <a class="el" href="theorem_8cpp_source.html#l00240">CVC3::Theorem::getLHS()</a>, <a class="el" href="expr_8h_source.html#l01135">CVC3::Expr::getRational()</a>, <a class="el" href="theorem_8cpp_source.html#l00246">CVC3::Theorem::getRHS()</a>, <a class="el" href="theory__arith_8h_source.html#l00183">CVC3::isMult()</a>, <a class="el" href="theory__arith_8h_source.html#l00181">CVC3::isPlus()</a>, <a class="el" href="theory__arith_8h_source.html#l00177">CVC3::isRational()</a>, <a class="el" href="theory__arith_8h_source.html#l00173">CVC3::isReal()</a>, <a class="el" href="minisat__heap_8h_source.html#l00053">MiniSat::left()</a>, <a class="el" href="minisat__heap_8h_source.html#l00054">MiniSat::right()</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>, and <a class="el" href="kinds_8h_source.html#l00099">TRACE</a>.</p>

</div>
</div>
<a class="anchor" id="afdcb8dc50f957161f878c563f09a48b3"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> TheoryArithNew::processIntEq </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>eqn</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>processes equalities whose vars are all of type INT </p>
<p>input is e1=e2&lt;==&gt;0=e' <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> and all of the vars in e' are of type INT. isolate one of them and send back to framework. output is "e1=e2 &lt;==&gt; var = e''" <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> and some associated equations in solved form. </p>

<p>Definition at line <a class="el" href="theory__arith__new_8cpp_source.html#l00642">642</a> of file <a class="el" href="theory__arith__new_8cpp_source.html">theory_arith_new.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="theorem_8cpp_source.html#l00230">CVC3::Theorem::getExpr()</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_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="a25d8be2e57c83d2e810ee815fae992d7"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> TheoryArithNew::processSimpleIntEq </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>eqn</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>One step of INT equality processing (aux. method for <a class="el" href="classCVC3_1_1TheoryArithNew.html#afdcb8dc50f957161f878c563f09a48b3" title="processes equalities whose vars are all of type INT">processIntEq()</a>) </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">eqn</td><td>is a single equation 0 = e </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>an equivalent <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> (x = t AND 0 = e'), or just x = t </dd></dl>

<p>Definition at line <a class="el" href="theory__arith__new_8cpp_source.html#l00507">507</a> of file <a class="el" href="theory__arith__new_8cpp_source.html">theory_arith_new.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="debug_8h_source.html#l00408">DebugAssert</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="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#l01135">CVC3::Expr::getRational()</a>, <a class="el" href="theorem_8cpp_source.html#l00246">CVC3::Theorem::getRHS()</a>, <a class="el" href="expr_8h_source.html#l00421">CVC3::Expr::isAnd()</a>, <a class="el" href="theory__quant_8cpp_source.html#l03731">isIntx()</a>, <a class="el" href="theory__arith_8h_source.html#l00183">CVC3::isMult()</a>, <a class="el" href="theorem_8h_source.html#l00164">CVC3::Theorem::isNull()</a>, <a class="el" href="theory__arith_8h_source.html#l00181">CVC3::isPlus()</a>, <a class="el" href="expr_8h_source.html#l00431">CVC3::Expr::isRational()</a>, <a class="el" href="theorem_8cpp_source.html#l00224">CVC3::Theorem::isRewrite()</a>, <a class="el" href="minisat__heap_8h_source.html#l00054">MiniSat::right()</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="a210dc18f7e0df0a95ff00292e9dacdbc"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> CVC3::TheoryArithNew::isolateVariable </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>inputThm</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool &amp;&#160;</td>
          <td class="paramname"><em>e1</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Take an inequality and isolate a variable. </p>

</div>
</div>
<a class="anchor" id="af80703576d25418c16a5a187e8bcd0ef"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void TheoryArithNew::updateStats </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Rational.html">Rational</a> &amp;&#160;</td>
          <td class="paramname"><em>c</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>var</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Update the statistics counters for the variable with a coeff. c. </p>

<p>Definition at line <a class="el" href="theory__arith__new_8cpp_source.html#l00808">808</a> of file <a class="el" href="theory__arith__new_8cpp_source.html">theory_arith_new.cpp</a>.</p>

<p>References <a class="el" href="classCVC3_1_1Rational.html#a195c125a76cb9a6c5731369e244a2de3">CVC3::Rational::toString()</a>, and <a class="el" href="kinds_8h_source.html#l00099">TRACE</a>.</p>

</div>
</div>
<a class="anchor" id="a8105c616e2a7410133e6f4c908d35def"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void TheoryArithNew::updateStats </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>monomial</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Update the statistics counters for the monomial. </p>

<p>Definition at line <a class="el" href="theory__arith__new_8cpp_source.html#l00821">821</a> of file <a class="el" href="theory__arith__new_8cpp_source.html">theory_arith_new.cpp</a>.</p>

<p>References <a class="el" href="expr_8h_source.html#l01135">CVC3::Expr::getRational()</a>.</p>

</div>
</div>
<a class="anchor" id="a4aa91ab5d33db7fbcaf1eb5e327f64f9"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void TheoryArithNew::addToBuffer </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>thm</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Add an inequality to the input buffer. See also d_buffer. </p>

<p>Definition at line <a class="el" href="theory__arith__new_8cpp_source.html#l00829">829</a> of file <a class="el" href="theory__arith__new_8cpp_source.html">theory_arith_new.cpp</a>.</p>

<p>References <a class="el" href="expr_8h_source.html#l01211">CVC3::Expr::begin()</a>, <a class="el" href="expr_8h_source.html#l01217">CVC3::Expr::end()</a>, <a class="el" href="theorem_8cpp_source.html#l00230">CVC3::Theorem::getExpr()</a>, <a class="el" href="theory__arith_8h_source.html#l00181">CVC3::isPlus()</a>, <a class="el" href="theory__arith_8h_source.html#l00177">CVC3::isRational()</a>, and <a class="el" href="kinds_8h_source.html#l00099">TRACE</a>.</p>

</div>
</div>
<a class="anchor" id="a5d94da8150af4d31977b695bfeac4801"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Expr.html">Expr</a> CVC3::TheoryArithNew::pickMonomial </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>right</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="a420591a664c53906e735b528f7dc2c94"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void TheoryArithNew::separateMonomial </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_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>c</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>var</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Separate monomial e = c*p1*...*pn into c and 1*p1*...*pn. </p>

<p>Implements <a class="el" href="classCVC3_1_1TheoryArith.html#aa1298a20a1dcddd2be2aa7d591909d2c">CVC3::TheoryArith</a>.</p>

<p>Definition at line <a class="el" href="theory__arith__new_8cpp_source.html#l00944">944</a> of file <a class="el" href="theory__arith__new_8cpp_source.html">theory_arith_new.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#l01162">CVC3::Expr::getKids()</a>, <a class="el" href="theory__arith_8h_source.html#l00183">CVC3::isMult()</a>, <a class="el" href="theory__arith_8h_source.html#l00181">CVC3::isPlus()</a>, <a class="el" href="theory__arith_8h_source.html#l00177">CVC3::isRational()</a>, <a class="el" href="expr_8h_source.html#l00431">CVC3::Expr::isRational()</a>, <a class="el" href="theory__arith_8h_source.html#l00207">CVC3::multExpr()</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__arith__new_8cpp_source.html#l01330">findRationalBound()</a>.</p>

</div>
</div>
<a class="anchor" id="a8e6e4c763da5203506a4ccc89d884655"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool CVC3::TheoryArithNew::isInteger </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>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Check the term t for integrality (return bool) </p>

<p>Definition at line <a class="el" href="theory__arith__new_8h_source.html#l00189">189</a> of file <a class="el" href="theory__arith__new_8h_source.html">theory_arith_new.h</a>.</p>

<p>References <a class="el" href="theory__arith__new_8cpp_source.html#l00068">isIntegerThm()</a>, and <a class="el" href="theorem_8h_source.html#l00164">CVC3::Theorem::isNull()</a>.</p>

<p>Referenced by <a class="el" href="theory__arith__new_8cpp_source.html#l03138">assertFact()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l01399">assignVariables()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l02868">checkSatInteger()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l01936">computeType()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l02150">print()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l01168">processFiniteInterval()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l01226">processFiniteIntervals()</a>, and <a class="el" href="theory__arith__new_8cpp_source.html#l01805">solve()</a>.</p>

</div>
</div>
<a class="anchor" id="ad34845d9afc0b2091a4e07d6ee805066"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool TheoryArithNew::lessThanVar </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>isolatedVar</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>var2</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="theory__arith__new_8cpp_source.html#l00932">932</a> of file <a class="el" href="theory__arith__new_8cpp_source.html">theory_arith_new.cpp</a>.</p>

<p>References <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="theory__arith_8h_source.html#l00177">CVC3::isRational()</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

</div>
</div>
<a class="anchor" id="a2597ed8fe8f3cae03240a2064d516c88"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool CVC3::TheoryArithNew::isStale </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>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Check if the term expression is "stale". </p>

</div>
</div>
<a class="anchor" id="a6c182b83ba6d8d60557dfa19446fb9da"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool CVC3::TheoryArithNew::isStale </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1TheoryArithNew_1_1Ineq.html">Ineq</a> &amp;&#160;</td>
          <td class="paramname"><em>ineq</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Check if the inequality is "stale" or subsumed. </p>

</div>
</div>
<a class="anchor" id="ab4e8d03929cc1b660d29d94c3adf3fcc"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void CVC3::TheoryArithNew::projectInequalities </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>theInequality</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>isolatedVarOnRHS</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="ac327959d7f9b67467862643c33ff89c1"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void TheoryArithNew::assignVariables </td>
          <td>(</td>
          <td class="paramtype">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></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="theory__arith__new_8cpp_source.html#l01399">1399</a> of file <a class="el" href="theory__arith__new_8cpp_source.html">theory_arith_new.cpp</a>.</p>

<p>References <a class="el" href="theory_8cpp_source.html#l00162">CVC3::Theory::assignValue()</a>, <a class="el" href="theory__arith__new_8h_source.html#l00135">d_graph</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l01348">findBounds()</a>, <a class="el" href="theory_8h_source.html#l00503">CVC3::Theory::findExpr()</a>, <a class="el" href="theory_8cpp_source.html#l00097">CVC3::Theory::inconsistent()</a>, <a class="el" href="classCVC3_1_1Rational.html#a1366320f4de558bb964c67f8aecedb36">CVC3::Rational::isInteger()</a>, <a class="el" href="theory__arith__new_8h_source.html#l00189">isInteger()</a>, <a class="el" href="expr_8h_source.html#l00431">CVC3::Expr::isRational()</a>, <a class="el" href="theory__arith_8h_source.html#l00156">CVC3::TheoryArith::rat()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l00998">CVC3::TheoryArithNew::VarOrderGraph::selectSmallest()</a>, and <a class="el" href="kinds_8h_source.html#l00099">TRACE</a>.</p>

<p>Referenced by <a class="el" href="theory__arith__new_8cpp_source.html#l01433">computeModelBasic()</a>.</p>

</div>
</div>
<a class="anchor" id="abb05a7ed953b9b3ac71497c44826c743"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void TheoryArithNew::findRationalBound </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>varSide</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>ratSide</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>var</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1Rational.html">Rational</a> &amp;&#160;</td>
          <td class="paramname"><em>r</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="theory__arith__new_8cpp_source.html#l01330">1330</a> of file <a class="el" href="theory__arith__new_8cpp_source.html">theory_arith_new.cpp</a>.</p>

<p>References <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="theory_8h_source.html#l00503">CVC3::Theory::findExpr()</a>, <a class="el" href="expr_8h_source.html#l01135">CVC3::Expr::getRational()</a>, <a class="el" href="theory__arith_8h_source.html#l00177">CVC3::isRational()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l00944">separateMonomial()</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

<p>Referenced by <a class="el" href="theory__arith__new_8cpp_source.html#l01348">findBounds()</a>.</p>

</div>
</div>
<a class="anchor" id="ad2690ef89c8acd959a9238c4f0bc0a57"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool TheoryArithNew::findBounds </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_1Rational.html">Rational</a> &amp;&#160;</td>
          <td class="paramname"><em>lub</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1Rational.html">Rational</a> &amp;&#160;</td>
          <td class="paramname"><em>glb</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="theory__arith__new_8cpp_source.html#l01348">1348</a> of file <a class="el" href="theory__arith__new_8cpp_source.html">theory_arith_new.cpp</a>.</p>

<p>References <a class="el" href="expr__map_8h_source.html#l00173">CVC3::ExprMap&lt; Data &gt;::count()</a>, <a class="el" href="theory__arith__new_8h_source.html#l00091">d_inequalitiesLeftDB</a>, <a class="el" href="theory__arith__new_8h_source.html#l00089">d_inequalitiesRightDB</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l01330">findRationalBound()</a>, <a class="el" href="theory__arith_8h_source.html#l00186">CVC3::isLT()</a>, <a class="el" href="minisat__heap_8h_source.html#l00053">MiniSat::left()</a>, <a class="el" href="minisat__heap_8h_source.html#l00054">MiniSat::right()</a>, <a class="el" href="cdlist_8h_source.html#l00064">CVC3::CDList&lt; T &gt;::size()</a>, <a class="el" href="expr__map_8h_source.html#l00171">CVC3::ExprMap&lt; Data &gt;::size()</a>, <a class="el" href="classCVC3_1_1Rational.html#a195c125a76cb9a6c5731369e244a2de3">CVC3::Rational::toString()</a>, and <a class="el" href="kinds_8h_source.html#l00099">TRACE</a>.</p>

<p>Referenced by <a class="el" href="theory__arith__new_8cpp_source.html#l01399">assignVariables()</a>.</p>

</div>
</div>
<a class="anchor" id="a9c096e8707864d1a0ecde75bd58cf424"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> CVC3::TheoryArithNew::normalizeProjectIneqs </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>ineqThm1</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>ineqThm2</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="a6a01623e613f46e0d8f2de1a05262ec2"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> TheoryArithNew::solvedForm </td>
          <td>(</td>
          <td class="paramtype">const std::vector&lt; <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>solvedEqs</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Take a system of equations and turn it into a solved form. </p>
<p>Takes a vector of equations and for every equation x_i=t_i substitutes t_j for x_j in t_i for all j&gt;i. This turns the system of equations into a solved form.</p>
<p>Assumption: variables x_j may appear in the RHS terms t_i ONLY for i&lt;j, but not for i&gt;=j. </p>

<p>Definition at line <a class="el" href="theory__arith__new_8cpp_source.html#l00681">681</a> of file <a class="el" href="theory__arith__new_8cpp_source.html">theory_arith_new.cpp</a>.</p>

<p>References <a class="el" href="expr__map_8h_source.html#l00190">CVC3::ExprMap&lt; Data &gt;::begin()</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="expr__map_8h_source.html#l00191">CVC3::ExprMap&lt; Data &gt;::end()</a>, <a class="el" href="theorem_8cpp_source.html#l00230">CVC3::Theorem::getExpr()</a>, <a class="el" href="debug_8h_source.html#l00406">IF_DEBUG</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>

</div>
</div>
<a class="anchor" id="aeeb80a89d9eb5c4fc2515d2108e197d8"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> TheoryArithNew::substAndCanonize </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"><a class="el" href="classCVC3_1_1ExprMap.html">ExprMap</a>&lt; <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>subst</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Substitute all vars in term 't' according to the substitution 'subst' and canonize the result. </p>
<p>ASSUMPTION: 't' is a fully canonized arithmetic term, and every element of subst is a fully canonized equation of the form x=e, indexed by the LHS variable. </p>

<p>Definition at line <a class="el" href="theory__arith__new_8cpp_source.html#l00736">736</a> of file <a class="el" href="theory__arith__new_8cpp_source.html">theory_arith_new.cpp</a>.</p>

<p>References <a class="el" href="expr_8h_source.html#l01201">CVC3::Expr::arity()</a>, <a class="el" href="expr__map_8h_source.html#l00170">CVC3::ExprMap&lt; Data &gt;::empty()</a>, <a class="el" href="expr__map_8h_source.html#l00191">CVC3::ExprMap&lt; Data &gt;::end()</a>, <a class="el" href="expr__map_8h_source.html#l00194">CVC3::ExprMap&lt; Data &gt;::find()</a>, <a class="el" href="theorem_8cpp_source.html#l00246">CVC3::Theorem::getRHS()</a>, and <a class="el" href="kinds_8h_source.html#l00099">TRACE</a>.</p>

</div>
</div>
<a class="anchor" id="af2775def72b9055dc878963bcfb9b947"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> TheoryArithNew::substAndCanonize </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>eq</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_1Theorem.html">Theorem</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>subst</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Substitute all vars in the RHS of the equation 'eq' of the form (x = t) according to the substitution 'subst', and canonize the result. </p>
<p>ASSUMPTION: 't' is a fully canonized equation of the form x = t, and so is every element of subst, indexed by the LHS variable. </p>

<p>Definition at line <a class="el" href="theory__arith__new_8cpp_source.html#l00787">787</a> of file <a class="el" href="theory__arith__new_8cpp_source.html">theory_arith_new.cpp</a>.</p>

<p>References <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="expr__map_8h_source.html#l00170">CVC3::ExprMap&lt; Data &gt;::empty()</a>, <a class="el" href="theorem_8cpp_source.html#l00230">CVC3::Theorem::getExpr()</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="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

</div>
</div>
<a class="anchor" id="a437f70ccbf4e58ba40b4b9a067b224f1"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void TheoryArithNew::collectVars </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">std::vector&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>vars</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>cache</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Traverse 'e' and push all the i-leaves into 'vars' vector. </p>

<p>Definition at line <a class="el" href="theory__arith__new_8cpp_source.html#l01155">1155</a> of file <a class="el" href="theory__arith__new_8cpp_source.html">theory_arith_new.cpp</a>.</p>

<p>References <a class="el" href="expr_8h_source.html#l01211">CVC3::Expr::begin()</a>, <a class="el" href="expr_8h_source.html#l01217">CVC3::Expr::end()</a>, and <a class="el" href="theory_8h_source.html#l00556">CVC3::Theory::isLeaf()</a>.</p>

</div>
</div>
<a class="anchor" id="a2f6e83fb2d863d7625c94d90bf5db856"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void TheoryArithNew::processFiniteInterval </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>alphaLEax</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>bxLEbeta</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Check if alpha &lt;= ax &amp; bx &lt;= beta is a finite interval for integer var 'x', and assert the corresponding constraint. </p>

<p>Definition at line <a class="el" href="theory__arith__new_8cpp_source.html#l01168">1168</a> of file <a class="el" href="theory__arith__new_8cpp_source.html">theory_arith_new.cpp</a>.</p>

<p>References <a class="el" href="theory__arith__new_8h_source.html#l00609">beta</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l00123">canon()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l00279">canonPred()</a>, <a class="el" href="theory__arith__new_8h_source.html#l00047">d_rules</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="theory_8cpp_source.html#l00128">CVC3::Theory::enqueueFact()</a>, <a class="el" href="classCVC3_1_1ArithProofRules.html#a5d419e48b93820624e356ba33efef27c">CVC3::ArithProofRules::finiteInterval()</a>, <a class="el" href="theorem_8cpp_source.html#l00230">CVC3::Theorem::getExpr()</a>, <a class="el" href="expr_8h_source.html#l01135">CVC3::Expr::getRational()</a>, <a class="el" href="theorem_8cpp_source.html#l00246">CVC3::Theorem::getRHS()</a>, <a class="el" href="theory_8h_source.html#l00714">CVC3::Theory::iffMP()</a>, <a class="el" href="theory__arith__new_8h_source.html#l00189">isInteger()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l00068">isIntegerThm()</a>, <a class="el" href="theory__arith_8h_source.html#l00187">CVC3::isLE()</a>, <a class="el" href="theory__arith_8h_source.html#l00183">CVC3::isMult()</a>, <a class="el" href="theory__arith_8h_source.html#l00181">CVC3::isPlus()</a>, <a class="el" href="theory__arith_8h_source.html#l00177">CVC3::isRational()</a>, <a class="el" href="expr_8h_source.html#l00431">CVC3::Expr::isRational()</a>, <a class="el" href="classCVC3_1_1ArithProofRules.html#a70e83cfbc207a5d15fedd4adde7e9e76">CVC3::ArithProofRules::multIneqn()</a>, <a class="el" href="theory__arith_8h_source.html#l00156">CVC3::TheoryArith::rat()</a>, <a class="el" href="theory_8h_source.html#l00686">CVC3::Theory::substitutivityRule()</a>, <a class="el" href="theory_8h_source.html#l00677">CVC3::Theory::symmetryRule()</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

<p>Referenced by <a class="el" href="theory__arith__new_8cpp_source.html#l01226">processFiniteIntervals()</a>.</p>

</div>
</div>
<a class="anchor" id="aa2a249c2877aa16d3517a6cca9992216"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void TheoryArithNew::processFiniteIntervals </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>x</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>For an integer var 'x', find and process all constraints A &lt;= ax &lt;= A+c. </p>

<p>Definition at line <a class="el" href="theory__arith__new_8cpp_source.html#l01226">1226</a> of file <a class="el" href="theory__arith__new_8cpp_source.html">theory_arith_new.cpp</a>.</p>

<p>References <a class="el" href="theory__arith__new_8h_source.html#l00091">d_inequalitiesLeftDB</a>, <a class="el" href="theory__arith__new_8h_source.html#l00089">d_inequalitiesRightDB</a>, <a class="el" href="expr__map_8h_source.html#l00191">CVC3::ExprMap&lt; Data &gt;::end()</a>, <a class="el" href="expr__map_8h_source.html#l00194">CVC3::ExprMap&lt; Data &gt;::find()</a>, <a class="el" href="theory__arith__new_8h_source.html#l00189">isInteger()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l01168">processFiniteInterval()</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="a251086c30f2a7939e6d624d4a4cd8db4"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void TheoryArithNew::setupRec </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>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Recursive setup for isolated inequalities (and other new expressions) </p>
<p>This function recursively decends expression tree <b>without caching</b> until it hits a node that is already setup. Be careful on what expressions you are calling it. </p>

<p>Definition at line <a class="el" href="theory__arith__new_8cpp_source.html#l01252">1252</a> of file <a class="el" href="theory__arith__new_8cpp_source.html">theory_arith_new.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#l01232">CVC3::Expr::hasFind()</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>, and <a class="el" href="theory__arith__new_8cpp_source.html#l01734">setup()</a>.</p>

</div>
</div>
<a class="anchor" id="ac92f7d2a8db02ccf23fe15302dee278d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1ArithProofRules.html">ArithProofRules</a> * TheoryArithNew::createProofRules </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="arith__theorem__producer_8cpp_source.html#l00043">43</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.cpp</a>.</p>

<p>Referenced by <a class="el" href="theory__arith__new_8cpp_source.html#l01055">TheoryArithNew()</a>.</p>

</div>
</div>
<a class="anchor" id="a73bfa7842e5dfb1bbcf540b6a0ce49c8"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void TheoryArithNew::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></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Keep track of all finitely bounded integer variables in shared terms.</p>
<p>When a new shared term t is reported, all of its variables x1...xn are added to the set d_sharedVars.</p>
<p>For each newly added variable x, check all of its opposing inequalities, find out all the finite bounds and assert the corresponding GRAY_SHADOW constraints.</p>
<p>When projecting integer inequalities, the database d_sharedVars is consulted, and if the variable is in it, check the shadows for being a finite interval, and produce the additional GRAY_SHADOW constraints. </p>

<p>Implements <a class="el" href="classCVC3_1_1TheoryArith.html#ae3c23943703bddf1f6f642a4b3ff9503">CVC3::TheoryArith</a>.</p>

<p>Definition at line <a class="el" href="theory__arith__new_8cpp_source.html#l01282">1282</a> of file <a class="el" href="theory__arith__new_8cpp_source.html">theory_arith_new.cpp</a>.</p>

<p>References <a class="el" href="theory__arith__new_8h_source.html#l00113">d_sharedTerms</a>.</p>

</div>
</div>
<a class="anchor" id="ad083c5101196d8ea5aecf48dc00a9341"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void TheoryArithNew::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></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </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="classCVC3_1_1TheoryArith.html#aef5c0f3d486b56abdd8e488b5b6ede6e">CVC3::TheoryArith</a>.</p>

<p>Definition at line <a class="el" href="theory__arith__new_8cpp_source.html#l03138">3138</a> of file <a class="el" href="theory__arith__new_8cpp_source.html">theory_arith_new.cpp</a>.</p>

<p>References <a class="el" href="expr_8h_source.html#l01201">CVC3::Expr::arity()</a>, <a class="el" href="theory__arith__new_8h_source.html#l00631">assertedExpr</a>, <a class="el" href="theory__arith__new_8h_source.html#l00633">assertedExprCount</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l02814">assertEqual()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l02777">assertLower()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l02740">assertUpper()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l03388">boundsAsString()</a>, <a class="el" href="theory__arith__new_8h_source.html#l00527">consistent</a>, <a class="el" href="theory__arith__new_8h_source.html#l00047">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="theory__arith__new_8h_source.html#l00530">explanation</a>, <a class="el" href="debug_8h_source.html#l00037">FatalAssert</a>, <a class="el" href="theory__arith_8h_source.html#l00052">CVC3::GE</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="theory__arith__new_8cpp_source.html#l03082">getLowerBound()</a>, <a class="el" href="expr_8h_source.html#l01135">CVC3::Expr::getRational()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l03090">getUpperBound()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l03273">getVariableIntroThm()</a>, <a class="el" href="theory__arith_8h_source.html#l00051">CVC3::GT</a>, <a class="el" href="theory_8h_source.html#l00714">CVC3::Theory::iffMP()</a>, <a class="el" href="theory__arith__new_8h_source.html#l00502">intVariables</a>, <a class="el" href="theory__arith_8h_source.html#l00192">CVC3::isIneq()</a>, <a class="el" href="theory__arith__new_8h_source.html#l00189">isInteger()</a>, <a class="el" href="theory_8h_source.html#l00556">CVC3::Theory::isLeaf()</a>, <a class="el" href="theory__arith_8h_source.html#l00183">CVC3::isMult()</a>, <a class="el" href="theory__arith_8h_source.html#l00181">CVC3::isPlus()</a>, <a class="el" href="theory__arith_8h_source.html#l00177">CVC3::isRational()</a>, <a class="el" href="theory__arith_8h_source.html#l00050">CVC3::LE</a>, <a class="el" href="theory__arith_8h_source.html#l00049">CVC3::LT</a>, <a class="el" href="classCVC3_1_1ArithProofRules.html#a1ebae10d65430ab1a3a14c866af93de6">CVC3::ArithProofRules::oneElimination()</a>, <a class="el" href="theory__arith__new_8h_source.html#l00639">propagate</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l04000">propagateTheory()</a>, <a class="el" href="theory_8h_source.html#l00673">CVC3::Theory::reflexivityRule()</a>, <a class="el" href="theory_8cpp_source.html#l00103">CVC3::Theory::setInconsistent()</a>, <a class="el" href="theory_8h_source.html#l00686">CVC3::Theory::substitutivityRule()</a>, <a class="el" href="theory_8h_source.html#l00677">CVC3::Theory::symmetryRule()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l03343">tableauxAsString()</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="queryresult_8h_source.html#l00038">CVC3::UNKNOWN</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l03365">unsatAsString()</a>, <a class="el" href="queryresult_8h_source.html#l00036">CVC3::UNSATISFIABLE</a>, and <a class="el" href="theory__arith__new_8cpp_source.html#l03859">updateFreshVariables()</a>.</p>

</div>
</div>
<a class="anchor" id="a3dafcfa8f6451023a83ce69c53fac641"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void TheoryArithNew::refineCounterExample </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Process disequalities from the arrangement for model generation. </p>

<p>Implements <a class="el" href="classCVC3_1_1TheoryArith.html#aa438bb4c5ceaeca9b2bb692d725d6ce8">CVC3::TheoryArith</a>.</p>

<p>Definition at line <a class="el" href="theory__arith__new_8cpp_source.html#l01298">1298</a> of file <a class="el" href="theory__arith__new_8cpp_source.html">theory_arith_new.cpp</a>.</p>

<p>References <a class="el" href="theory_8cpp_source.html#l00148">CVC3::Theory::addSplitter()</a>, <a class="el" href="cdmap_8h_source.html#l00257">CVC3::CDMap&lt; Key, Data, HashFcn &gt;::begin()</a>, <a class="el" href="theory__arith__new_8h_source.html#l00048">d_inModelCreation</a>, <a class="el" href="theory__arith__new_8h_source.html#l00113">d_sharedTerms</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="cdmap_8h_source.html#l00258">CVC3::CDMap&lt; Key, Data, HashFcn &gt;::end()</a>, <a class="el" href="expr_8h_source.html#l00929">CVC3::Expr::eqExpr()</a>, <a class="el" href="theory_8h_source.html#l00503">CVC3::Theory::findExpr()</a>, <a class="el" href="theory_8cpp_source.html#l00383">CVC3::Theory::getBaseType()</a>, <a class="el" href="expr_8h_source.html#l01259">CVC3::Expr::getType()</a>, <a class="el" href="theory__arith_8h_source.html#l00173">CVC3::isReal()</a>, <a class="el" href="theory_8h_source.html#l00430">CVC3::Theory::simplifyExpr()</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#l00099">TRACE</a>.</p>

</div>
</div>
<a class="anchor" id="a7d73feef91b15cb086f6d1b7a7bd19c2"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void TheoryArithNew::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></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Assign concrete values to basic-type variables in v. </p>

<p>Implements <a class="el" href="classCVC3_1_1TheoryArith.html#abb0dc7f8453ab4327aca42a9bd394ca2">CVC3::TheoryArith</a>.</p>

<p>Definition at line <a class="el" href="theory__arith__new_8cpp_source.html#l01433">1433</a> of file <a class="el" href="theory__arith__new_8cpp_source.html">theory_arith_new.cpp</a>.</p>

<p>References <a class="el" href="theory__arith__new_8cpp_source.html#l01399">assignVariables()</a>, <a class="el" href="theory__arith__new_8h_source.html#l00048">d_inModelCreation</a>, <a class="el" href="theory_8h_source.html#l00503">CVC3::Theory::findExpr()</a>, and <a class="el" href="kinds_8h_source.html#l00099">TRACE</a>.</p>

</div>
</div>
<a class="anchor" id="a5c9f6212127845ff56f5c88aff72d49a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void TheoryArithNew::computeModel </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">std::vector&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>vars</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Compute the value of a compound variable from the more primitive ones. </p>
<p>The more primitive variables for e are already assigned concrete values, and are available through <a class="el" href="classCVC3_1_1Theory.html#a4867f332c809f6efe8f01ffa45c32db3" title="Fetch the concrete assignment to the variable during model generation.">getModelValue()</a>.</p>
<p>The new value for e must be assigned using <a class="el" href="classCVC3_1_1Theory.html#a917b117d28514f486b296568fcd1cfd1" title="Assigns t a concrete value val. Used in model generation.">assignValue()</a> method.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">e</td><td>is the compound type expression to assign a value;</td></tr>
    <tr><td class="paramname">vars</td><td>are the variables actually assigned. Normally, 'e' is the only element of vars. However, e.g. in the case of uninterpreted functions, assigning 'f' means assigning all relevant applications of 'f' to constant values (f(0), f(5), etc.). Such applications might not be known before the model is constructed (they may be of the form f(x), f(y+z), etc., where x,y,z are still unassigned).</td></tr>
  </table>
  </dd>
</dl>
<p>Populating 'vars' is an opportunity for a DP to change the set of top-level "variables" to assign, if needed. In particular, it may drop 'e' from the model entirely, if it is already a concrete value by itself. </p>

<p>Implements <a class="el" href="classCVC3_1_1TheoryArith.html#af775fc35d6a629ec19e2ffb67ff19dd4">CVC3::TheoryArith</a>.</p>

<p>Definition at line <a class="el" href="theory__arith__new_8cpp_source.html#l01456">1456</a> of file <a class="el" href="theory__arith__new_8cpp_source.html">theory_arith_new.cpp</a>.</p>

<p>References <a class="el" href="theory_8cpp_source.html#l00162">CVC3::Theory::assignValue()</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="theory_8h_source.html#l00503">CVC3::Theory::findExpr()</a>, <a class="el" href="theory__arith_8h_source.html#l00177">CVC3::isRational()</a>, <a class="el" href="theory_8cpp_source.html#l00119">CVC3::Theory::simplify()</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

</div>
</div>
<a class="anchor" id="af7b2bbb0c854bab9488a19b1d3072cb5"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void TheoryArithNew::checkSat </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>fullEffort</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Check for satisfiability in the theory. </p>
<dl class="params"><dt>Parameters</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="classCVC3_1_1TheoryArith.html#a1a93522e582d9381e461972125984ea4">CVC3::TheoryArith</a>.</p>

<p>Definition at line <a class="el" href="theory__arith__new_8cpp_source.html#l02830">2830</a> of file <a class="el" href="theory__arith__new_8cpp_source.html">theory_arith_new.cpp</a>.</p>

<p>References <a class="el" href="theory__arith__new_8h_source.html#l00631">assertedExpr</a>, <a class="el" href="theory__arith__new_8h_source.html#l00633">assertedExprCount</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l02916">checkSatSimplex()</a>, <a class="el" href="theory__arith__new_8h_source.html#l00527">consistent</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="theory__arith__new_8h_source.html#l00530">explanation</a>, <a class="el" href="queryresult_8h_source.html#l00033">CVC3::SATISFIABLE</a>, <a class="el" href="theory_8cpp_source.html#l00103">CVC3::Theory::setInconsistent()</a>, <a class="el" href="kinds_8h_source.html#l00099">TRACE</a>, <a class="el" href="queryresult_8h_source.html#l00036">CVC3::UNSATISFIABLE</a>, and <a class="el" href="theory__arith__new_8cpp_source.html#l03859">updateFreshVariables()</a>.</p>

</div>
</div>
<a class="anchor" id="adf76a677d3133da1fb3e8cf33ba26cc9"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> TheoryArithNew::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></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </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>Implements <a class="el" href="classCVC3_1_1TheoryArith.html#aaa06e89f76f2313953a35d867c33942f">CVC3::TheoryArith</a>.</p>

<p>Definition at line <a class="el" href="theory__arith__new_8cpp_source.html#l01570">1570</a> of file <a class="el" href="theory__arith__new_8cpp_source.html">theory_arith_new.cpp</a>.</p>

<p>References <a class="el" href="expr_8h_source.html#l00945">CVC3::andExpr()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l00123">canon()</a>, <a class="el" href="classCVC3_1_1ArithProofRules.html#a225fe511e6f654f313048e86c1550510">CVC3::ArithProofRules::canonPlus()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l00295">canonPredEquiv()</a>, <a class="el" href="classCVC3_1_1ArithProofRules.html#a8dd6bb6fed9a4745469b0cad5ed4a139">CVC3::ArithProofRules::constPredicate()</a>, <a class="el" href="theory__arith__new_8h_source.html#l00047">d_rules</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="classCVC3_1_1ArithProofRules.html#a24ea340651805e648d7180debad17225">CVC3::ArithProofRules::dummyTheorem()</a>, <a class="el" href="kinds_8h_source.html#l00061">EQ</a>, <a class="el" href="classCVC3_1_1ArithProofRules.html#a646e312e12d5d23dca0c4db39d2c9fb9">CVC3::ArithProofRules::eqToIneq()</a>, <a class="el" href="debug_8h_source.html#l00037">FatalAssert</a>, <a class="el" href="theory__arith_8h_source.html#l00052">CVC3::GE</a>, <a class="el" href="theory__arith_8h_source.html#l00227">CVC3::geExpr()</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__arith_8h_source.html#l00051">CVC3::GT</a>, <a class="el" href="theory__arith_8h_source.html#l00053">CVC3::IS_INTEGER</a>, <a class="el" href="expr_8h_source.html#l00406">CVC3::Expr::isAbsLiteral()</a>, <a class="el" href="expr_8cpp_source.html#l00550">CVC3::Expr::isAtomic()</a>, <a class="el" href="theory__arith_8h_source.html#l00181">CVC3::isPlus()</a>, <a class="el" href="theory__arith_8h_source.html#l00177">CVC3::isRational()</a>, <a class="el" href="expr_8h_source.html#l01021">CVC3::Expr::isTerm()</a>, <a class="el" href="theory__arith_8h_source.html#l00050">CVC3::LE</a>, <a class="el" href="theory__arith_8h_source.html#l00223">CVC3::leExpr()</a>, <a class="el" href="theory__arith_8h_source.html#l00049">CVC3::LT</a>, <a class="el" href="classCVC3_1_1ArithProofRules.html#aee47bda46999143ea29d7d4ff0be89d4">CVC3::ArithProofRules::negatedInequality()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l01468">normalize()</a>, <a class="el" href="theory__arith__new_8h_source.html#l00813">NORMALIZE_UNIT</a>, <a class="el" href="kinds_8h_source.html#l00066">NOT</a>, <a class="el" href="classCVC3_1_1ArithProofRules.html#a0fa920a2a5cfa4419dbde10b1d913687">CVC3::ArithProofRules::plusPredicate()</a>, <a class="el" href="theory__arith_8h_source.html#l00156">CVC3::TheoryArith::rat()</a>, <a class="el" href="theory_8h_source.html#l00673">CVC3::Theory::reflexivityRule()</a>, <a class="el" href="classCVC3_1_1ArithProofRules.html#acde77bf4aa73ff6b9a079b372ed7cc51">CVC3::ArithProofRules::rightMinusLeft()</a>, <a class="el" href="expr_8h_source.html#l01457">CVC3::Expr::setRewriteNormal()</a>, <a class="el" href="theory_8cpp_source.html#l00119">CVC3::Theory::simplify()</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="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__arith__new_8cpp_source.html#l01769">update()</a>.</p>

</div>
</div>
<a class="anchor" id="a36a8c831cfe356a9e779988cae3e101c"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void TheoryArithNew::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></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set up the term e for call-backs when e or its children change. </p>
<p>setup is called once for each expression associated with the theory. It is typically used to setup theory-specific data for an expression and to add call-back information for use with update. </p>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="classCVC3_1_1TheoryArithNew.html#a3790410296752fded1074ce1b808598b" title="Notify a theory of a new equality.">update</a> </dd></dl>

<p>Implements <a class="el" href="classCVC3_1_1TheoryArith.html#a76e011a1d78cac54d5bd87ad1b51ccb7">CVC3::TheoryArith</a>.</p>

<p>Definition at line <a class="el" href="theory__arith__new_8cpp_source.html#l01734">1734</a> of file <a class="el" href="theory__arith__new_8cpp_source.html">theory_arith_new.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="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="cvc__util_8h_source.html#l00046">CVC3::int2string()</a>, <a class="el" href="expr_8h_source.html#l00419">CVC3::Expr::isEq()</a>, <a class="el" href="theory__arith_8h_source.html#l00192">CVC3::isIneq()</a>, <a class="el" href="theory__arith_8h_source.html#l00194">CVC3::isIntPred()</a>, <a class="el" href="expr_8h_source.html#l00420">CVC3::Expr::isNot()</a>, <a class="el" href="theory__arith_8h_source.html#l00177">CVC3::isRational()</a>, <a class="el" href="expr_8h_source.html#l01021">CVC3::Expr::isTerm()</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__arith__new_8cpp_source.html#l01252">setupRec()</a>.</p>

</div>
</div>
<a class="anchor" id="a3790410296752fded1074ce1b808598b"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void TheoryArithNew::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></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Notify a theory of a new equality. </p>
<p>update is a call-back used by the notify mechanism of the core theory. It works as follows. When an equation t1 = t2 makes it into the core framework, the two find equivalence classes for t1 and t2 are merged. The result is that t2 is the new equivalence class representative and t1 is no longer an equivalence class representative. When this happens, the notify list of t1 is traversed. Notify list entries consist of a theory and an expression d. For each entry (i,d), i-&gt;update(e, d) is called, where e is the theorem corresponding to the equality t1=t2.</p>
<p>To add the entry (i,d) to a term t1's notify list, a call must be made to t1.addNotify(i,d). This is typically done in setup.</p>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="classCVC3_1_1TheoryArithNew.html#a36a8c831cfe356a9e779988cae3e101c" title="Set up the term e for call-backs when e or its children change.">setup</a> </dd></dl>

<p>Implements <a class="el" href="classCVC3_1_1TheoryArith.html#a065b02fa3e5ea7bf335b94ae42102cad">CVC3::TheoryArith</a>.</p>

<p>Definition at line <a class="el" href="theory__arith__new_8cpp_source.html#l01769">1769</a> of file <a class="el" href="theory__arith__new_8cpp_source.html">theory_arith_new.cpp</a>.</p>

<p>References <a class="el" href="theory_8cpp_source.html#l00142">CVC3::Theory::assertEqualities()</a>, <a class="el" href="theory__arith_8cpp_source.html#l00257">CVC3::TheoryArith::canonSimp()</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="theory_8cpp_source.html#l00128">CVC3::Theory::enqueueFact()</a>, <a class="el" href="theory_8cpp_source.html#l00310">CVC3::Theory::find()</a>, <a class="el" href="theory_8h_source.html#l00096">CVC3::Theory::getCommonRules()</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="theory_8h_source.html#l00714">CVC3::Theory::iffMP()</a>, <a class="el" href="theory_8cpp_source.html#l00097">CVC3::Theory::inconsistent()</a>, <a class="el" href="theory__arith_8h_source.html#l00192">CVC3::isIneq()</a>, <a class="el" href="theory_8cpp_source.html#l00557">CVC3::Theory::leavesAreSimp()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l01570">rewrite()</a>, <a class="el" href="theory_8h_source.html#l00686">CVC3::Theory::substitutivityRule()</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>, <a class="el" href="theory_8h_source.html#l00681">CVC3::Theory::transitivityRule()</a>, and <a class="el" href="theory_8h_source.html#l00582">CVC3::Theory::trueExpr()</a>.</p>

<p>Referenced by <a class="el" href="theory__arith__new_8cpp_source.html#l02777">assertLower()</a>, and <a class="el" href="theory__arith__new_8cpp_source.html#l02740">assertUpper()</a>.</p>

</div>
</div>
<a class="anchor" id="a35ee82710c965d845aecbe6320f2ae38"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> TheoryArithNew::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>e</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>An optional solver. </p>
<p>The solve method can be used to implement a Shostak-style solver. Since solvers do not in general combine, the following technique is used. One theory is designated as the primary solver (in our case, it is the theory of arithmetic). For each equation that enters the core framework, the primary solver is called to ensure that the equation is in solved form with respect to the primary theory.</p>
<p>After the primary solver, the solver for the theory associated with the equation is called. This solver can do whatever it likes, as long as the result is still in solved form with respect to the primary solver. This is a slight generalization of what is described in my (Clark)'s PhD thesis. </p>

<p>Implements <a class="el" href="classCVC3_1_1TheoryArith.html#a79b7f024bad6bbac7520517071957404">CVC3::TheoryArith</a>.</p>

<p>Definition at line <a class="el" href="theory__arith__new_8cpp_source.html#l01805">1805</a> of file <a class="el" href="theory__arith__new_8cpp_source.html">theory_arith_new.cpp</a>.</p>

<p>References <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l00331">doSolve()</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#l01259">CVC3::Expr::getType()</a>, <a class="el" href="theory__arith_8h_source.html#l00153">CVC3::TheoryArith::intType()</a>, <a class="el" href="theory__arith__new_8h_source.html#l00189">isInteger()</a>, <a class="el" href="theory_8h_source.html#l00556">CVC3::Theory::isLeaf()</a>, <a class="el" href="theory_8cpp_source.html#l00546">CVC3::Theory::isLeafIn()</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>, and <a class="el" href="theory_8h_source.html#l00677">CVC3::Theory::symmetryRule()</a>.</p>

</div>
</div>
<a class="anchor" id="ae4ed8b9b3074828d356a35192288b397"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void TheoryArithNew::checkAssertEqInvariant </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>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>A debug check used by the primary solver. </p>

<p>Implements <a class="el" href="classCVC3_1_1TheoryArith.html#ae84d7601b3361fe773127a73194160f9">CVC3::TheoryArith</a>.</p>

<p>Definition at line <a class="el" href="theory__arith__new_8cpp_source.html#l01878">1878</a> of file <a class="el" href="theory__arith__new_8cpp_source.html">theory_arith_new.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a272700cefa9c3f96bde0b61cc1d0b69e"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void TheoryArithNew::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></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </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>Implements <a class="el" href="classCVC3_1_1TheoryArith.html#afb944017844bcb9681fa4c223d7e7f8d">CVC3::TheoryArith</a>.</p>

<p>Definition at line <a class="el" href="theory__arith__new_8cpp_source.html#l01884">1884</a> of file <a class="el" href="theory__arith__new_8cpp_source.html">theory_arith_new.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="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#l01135">CVC3::Expr::getRational()</a>, <a class="el" href="theory__arith_8h_source.html#l00038">CVC3::INT</a>, <a class="el" href="theory__arith_8h_source.html#l00178">CVC3::isIntegerConst()</a>, <a class="el" href="theory__arith_8h_source.html#l00037">CVC3::REAL</a>, <a class="el" href="theory__arith_8h_source.html#l00039">CVC3::SUBRANGE</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

</div>
</div>
<a class="anchor" id="a1070c24b2f7c993390dc1e3f00282f94"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="namespaceCVC3.html#af969e724f8b7016909f5804e8cea3e54">Cardinality</a> TheoryArithNew::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></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </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 &ndash; 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>
<ol type="1">
<li>Returns Cardinality of the type (finite, infinite, or unknown)</li>
<li>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</li>
<li>If cardinality = finite and computeSize is true, sets n to the size of the type if it can sets n to 0 otherwise </li>
</ol>

<p>Implements <a class="el" href="classCVC3_1_1TheoryArith.html#a56b40e5b07a5f409415f343013fb478b">CVC3::TheoryArith</a>.</p>

<p>Definition at line <a class="el" href="theory__arith__new_8cpp_source.html#l01908">1908</a> of file <a class="el" href="theory__arith__new_8cpp_source.html">theory_arith_new.cpp</a>.</p>

<p>References <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#l01168">CVC3::Expr::getKind()</a>, <a class="el" href="expr_8h_source.html#l01135">CVC3::Expr::getRational()</a>, <a class="el" href="classCVC3_1_1Rational.html#ae6d4bedf76175b8f91283f610b3eb7d0">CVC3::Rational::getUnsigned()</a>, <a class="el" href="theory__arith_8h_source.html#l00156">CVC3::TheoryArith::rat()</a>, and <a class="el" href="theory__arith_8h_source.html#l00039">CVC3::SUBRANGE</a>.</p>

</div>
</div>
<a class="anchor" id="a86fdcfbc819885dac3640dcf68472554"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void TheoryArithNew::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></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Compute and store the type of e. </p>
<dl class="params"><dt>Parameters</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>Implements <a class="el" href="classCVC3_1_1TheoryArith.html#a6abf2a3ab02d2242d7ff0673df934405">CVC3::TheoryArith</a>.</p>

<p>Definition at line <a class="el" href="theory__arith__new_8cpp_source.html#l01936">1936</a> of file <a class="el" href="theory__arith__new_8cpp_source.html">theory_arith_new.cpp</a>.</p>

<p>References <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__arith_8h_source.html#l00073">CVC3::TheoryArith::d_intType</a>, <a class="el" href="theory__arith_8h_source.html#l00072">CVC3::TheoryArith::d_realType</a>, <a class="el" href="theory__arith_8h_source.html#l00054">CVC3::DARK_SHADOW</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="theory__arith_8h_source.html#l00045">CVC3::DIVIDE</a>, <a class="el" href="theory__arith_8h_source.html#l00052">CVC3::GE</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="expr_8h_source.html#l01168">CVC3::Expr::getKind()</a>, <a class="el" href="expr__manager_8cpp_source.html#l00405">CVC3::ExprManager::getKindName()</a>, <a class="el" href="expr_8h_source.html#l01135">CVC3::Expr::getRational()</a>, <a class="el" href="expr_8h_source.html#l01259">CVC3::Expr::getType()</a>, <a class="el" href="theory__arith_8h_source.html#l00055">CVC3::GRAY_SHADOW</a>, <a class="el" href="theory__arith_8h_source.html#l00051">CVC3::GT</a>, <a class="el" href="theory__arith_8h_source.html#l00053">CVC3::IS_INTEGER</a>, <a class="el" href="theory__arith_8h_source.html#l00174">CVC3::isInt()</a>, <a class="el" href="classCVC3_1_1Rational.html#a1366320f4de558bb964c67f8aecedb36">CVC3::Rational::isInteger()</a>, <a class="el" href="theory__arith__new_8h_source.html#l00189">isInteger()</a>, <a class="el" href="expr_8h_source.html#l00431">CVC3::Expr::isRational()</a>, <a class="el" href="theory__arith_8h_source.html#l00050">CVC3::LE</a>, <a class="el" href="theory__arith_8h_source.html#l00049">CVC3::LT</a>, <a class="el" href="theory__arith_8h_source.html#l00043">CVC3::MINUS</a>, <a class="el" href="theory__arith_8h_source.html#l00044">CVC3::MULT</a>, <a class="el" href="theory__arith_8h_source.html#l00042">CVC3::PLUS</a>, <a class="el" href="theory__arith_8h_source.html#l00046">CVC3::POW</a>, <a class="el" href="kinds_8h_source.html#l00037">RATIONAL_EXPR</a>, <a class="el" href="theory__arith_8h_source.html#l00033">CVC3::REAL_CONST</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="theory__arith_8h_source.html#l00041">CVC3::UMINUS</a>.</p>

</div>
</div>
<a class="anchor" id="a84a67c02055bd8d4e4eb3d7c60ddf495"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Type.html">Type</a> TheoryArithNew::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></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Compute the base type of the top-level operator of an arbitrary type. </p>

<p>Implements <a class="el" href="classCVC3_1_1TheoryArith.html#a1f99b1033faaf9b5911edcd667872ac7">CVC3::TheoryArith</a>.</p>

<p>Definition at line <a class="el" href="theory__arith__new_8cpp_source.html#l02018">2018</a> of file <a class="el" href="theory__arith__new_8cpp_source.html">theory_arith_new.cpp</a>.</p>

<p>References <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="expr_8h_source.html#l01168">CVC3::Expr::getKind()</a>, <a class="el" href="debug_8h_source.html#l00406">IF_DEBUG</a>, <a class="el" href="theory__arith_8h_source.html#l00038">CVC3::INT</a>, <a class="el" href="theory__arith_8h_source.html#l00037">CVC3::REAL</a>, <a class="el" href="theory__arith_8h_source.html#l00152">CVC3::TheoryArith::realType()</a>, <a class="el" href="theory__arith_8h_source.html#l00039">CVC3::SUBRANGE</a>, and <a class="el" href="type_8h_source.html#l00080">CVC3::Type::toString()</a>.</p>

</div>
</div>
<a class="anchor" id="adb72936111e69a1ab0e032cc017ee2db"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void TheoryArithNew::computeModelTerm </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">std::vector&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>v</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Add variables from 'e' to 'v' for constructing a concrete model. </p>
<p>If e is already of primitive type, do NOT add it to v. </p>

<p>Implements <a class="el" href="classCVC3_1_1TheoryArith.html#a73c222d70c5bbfc539041095df6a8321">CVC3::TheoryArith</a>.</p>

<p>Definition at line <a class="el" href="theory__arith__new_8cpp_source.html#l01833">1833</a> of file <a class="el" href="theory__arith__new_8cpp_source.html">theory_arith_new.cpp</a>.</p>

<p>References <a class="el" href="expr_8h_source.html#l01211">CVC3::Expr::begin()</a>, <a class="el" href="theory__arith_8h_source.html#l00045">CVC3::DIVIDE</a>, <a class="el" href="expr_8h_source.html#l01217">CVC3::Expr::end()</a>, <a class="el" href="theory_8h_source.html#l00503">CVC3::Theory::findExpr()</a>, <a class="el" href="expr_8h_source.html#l01168">CVC3::Expr::getKind()</a>, <a class="el" href="theory__arith_8h_source.html#l00044">CVC3::MULT</a>, <a class="el" href="theory__arith_8h_source.html#l00042">CVC3::PLUS</a>, <a class="el" href="theory__arith_8h_source.html#l00046">CVC3::POW</a>, <a class="el" href="kinds_8h_source.html#l00037">RATIONAL_EXPR</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="a46272039047747962cdfbb34d6e54476"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Expr.html">Expr</a> TheoryArithNew::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></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </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>Implements <a class="el" href="classCVC3_1_1TheoryArith.html#a3b37be00ae123493d74dfd6269bb587a">CVC3::TheoryArith</a>.</p>

<p>Definition at line <a class="el" href="theory__arith__new_8cpp_source.html#l01860">1860</a> of file <a class="el" href="theory__arith__new_8cpp_source.html">theory_arith_new.cpp</a>.</p>

<p>References <a class="el" href="expr_8h_source.html#l00945">CVC3::andExpr()</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__arith_8h_source.html#l00038">CVC3::INT</a>, <a class="el" href="theory__arith_8h_source.html#l00053">CVC3::IS_INTEGER</a>, <a class="el" href="theory__arith_8h_source.html#l00223">CVC3::leExpr()</a>, <a class="el" href="theory__arith_8h_source.html#l00039">CVC3::SUBRANGE</a>, and <a class="el" href="expr__manager_8h_source.html#l00280">CVC3::ExprManager::trueExpr()</a>.</p>

</div>
</div>
<a class="anchor" id="aa618dbba5196953efee6954efe321ef8"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Expr.html">Expr</a> TheoryArithNew::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></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Compute and cache the TCC of e. </p>
<dl class="params"><dt>Parameters</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>Implements <a class="el" href="classCVC3_1_1TheoryArith.html#a076c8333b4e8ce62955e1c0701975487">CVC3::TheoryArith</a>.</p>

<p>Definition at line <a class="el" href="theory__arith__new_8cpp_source.html#l02025">2025</a> of file <a class="el" href="theory__arith__new_8cpp_source.html">theory_arith_new.cpp</a>.</p>

<p>References <a class="el" href="expr_8h_source.html#l00941">CVC3::Expr::andExpr()</a>, <a class="el" href="expr_8h_source.html#l01201">CVC3::Expr::arity()</a>, <a class="el" href="theory_8cpp_source.html#l00081">CVC3::Theory::computeTCC()</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="theory__arith_8h_source.html#l00045">CVC3::DIVIDE</a>, <a class="el" href="expr_8h_source.html#l01168">CVC3::Expr::getKind()</a>, and <a class="el" href="theory__arith_8h_source.html#l00156">CVC3::TheoryArith::rat()</a>.</p>

</div>
</div>
<a class="anchor" id="a01afc8056a17c0412af99b3c33bace20"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1ExprStream.html">ExprStream</a> &amp; TheoryArithNew::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></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </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>Implements <a class="el" href="classCVC3_1_1TheoryArith.html#a879d4967986103b989d7003dd815783f">CVC3::TheoryArith</a>.</p>

<p>Definition at line <a class="el" href="theory__arith__new_8cpp_source.html#l02150">2150</a> of file <a class="el" href="theory__arith__new_8cpp_source.html">theory_arith_new.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="theory__arith_8h_source.html#l00054">CVC3::DARK_SHADOW</a>, <a class="el" href="theory__arith_8h_source.html#l00045">CVC3::DIVIDE</a>, <a class="el" href="expr_8h_source.html#l01217">CVC3::Expr::end()</a>, <a class="el" href="theory__arith_8h_source.html#l00052">CVC3::GE</a>, <a class="el" href="expr_8h_source.html#l01168">CVC3::Expr::getKind()</a>, <a class="el" href="expr_8h_source.html#l01135">CVC3::Expr::getRational()</a>, <a class="el" href="theory__arith_8h_source.html#l00055">CVC3::GRAY_SHADOW</a>, <a class="el" href="theory__arith_8h_source.html#l00051">CVC3::GT</a>, <a class="el" href="theory__arith_8h_source.html#l00038">CVC3::INT</a>, <a class="el" href="theory__arith_8h_source.html#l00053">CVC3::IS_INTEGER</a>, <a class="el" href="theory__arith_8h_source.html#l00174">CVC3::isInt()</a>, <a class="el" href="theory__arith__new_8h_source.html#l00189">isInteger()</a>, <a class="el" href="expr__stream_8h_source.html#l00165">CVC3::ExprStream::lang()</a>, <a class="el" href="theory__arith_8h_source.html#l00050">CVC3::LE</a>, <a class="el" href="lang_8h_source.html#l00036">CVC3::LISP_LANG</a>, <a class="el" href="theory__arith_8h_source.html#l00049">CVC3::LT</a>, <a class="el" href="theory__arith_8h_source.html#l00043">CVC3::MINUS</a>, <a class="el" href="theory__arith_8h_source.html#l00044">CVC3::MULT</a>, <a class="el" href="theory__arith_8h_source.html#l00034">CVC3::NEGINF</a>, <a class="el" href="theory__arith_8h_source.html#l00042">CVC3::PLUS</a>, <a class="el" href="theory__arith_8h_source.html#l00035">CVC3::POSINF</a>, <a class="el" href="theory__arith_8h_source.html#l00046">CVC3::POW</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__arith_8cpp_source.html#l00054">CVC3::TheoryArith::printRational()</a>, <a class="el" href="expr__stream_8cpp_source.html#l00298">CVC3::push()</a>, <a class="el" href="kinds_8h_source.html#l00037">RATIONAL_EXPR</a>, <a class="el" href="theory__arith_8h_source.html#l00037">CVC3::REAL</a>, <a class="el" href="theory__arith_8h_source.html#l00033">CVC3::REAL_CONST</a>, <a class="el" href="lang_8h_source.html#l00043">CVC3::SIMPLIFY_LANG</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="theory__arith_8h_source.html#l00039">CVC3::SUBRANGE</a>, <a class="el" href="lang_8h_source.html#l00046">CVC3::TPTP_LANG</a>, and <a class="el" href="theory__arith_8h_source.html#l00041">CVC3::UMINUS</a>.</p>

</div>
</div>
<a class="anchor" id="ae909a0b86693e59e95c69de37e6adf08"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Expr.html">Expr</a> TheoryArithNew::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></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Theory-specific parsing implemented by the DP. </p>

<p>Implements <a class="el" href="classCVC3_1_1TheoryArith.html#a900379e03f4f05409fa4a60e2db4e65d">CVC3::TheoryArith</a>.</p>

<p>Definition at line <a class="el" href="theory__arith__new_8cpp_source.html#l02040">2040</a> of file <a class="el" href="theory__arith__new_8cpp_source.html">theory_arith_new.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="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="theory__arith_8h_source.html#l00045">CVC3::DIVIDE</a>, <a class="el" href="theory__arith_8h_source.html#l00219">CVC3::divideExpr()</a>, <a class="el" href="expr_8h_source.html#l01217">CVC3::Expr::end()</a>, <a class="el" href="theory__arith_8h_source.html#l00052">CVC3::GE</a>, <a class="el" href="theory__arith_8h_source.html#l00227">CVC3::geExpr()</a>, <a class="el" href="theory_8h_source.html#l00090">CVC3::Theory::getEM()</a>, <a class="el" href="expr_8h_source.html#l01156">CVC3::Expr::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="theory__arith_8h_source.html#l00051">CVC3::GT</a>, <a class="el" href="theory__arith_8h_source.html#l00225">CVC3::gtExpr()</a>, <a class="el" href="kinds_8h_source.html#l00046">ID</a>, <a class="el" href="theory__arith_8h_source.html#l00038">CVC3::INT</a>, <a class="el" href="theory__arith_8h_source.html#l00047">CVC3::INTDIV</a>, <a class="el" href="theory__arith_8h_source.html#l00053">CVC3::IS_INTEGER</a>, <a class="el" href="theory__arith_8h_source.html#l00050">CVC3::LE</a>, <a class="el" href="theory__arith_8h_source.html#l00223">CVC3::leExpr()</a>, <a class="el" href="theory__arith_8h_source.html#l00049">CVC3::LT</a>, <a class="el" href="theory__arith_8h_source.html#l00221">CVC3::ltExpr()</a>, <a class="el" href="theory__arith_8h_source.html#l00043">CVC3::MINUS</a>, <a class="el" href="theory__arith_8h_source.html#l00205">CVC3::minusExpr()</a>, <a class="el" href="theory__arith_8h_source.html#l00048">CVC3::MOD</a>, <a class="el" href="theory__arith_8h_source.html#l00044">CVC3::MULT</a>, <a class="el" href="theory__arith_8h_source.html#l00207">CVC3::multExpr()</a>, <a class="el" href="theory__arith_8h_source.html#l00034">CVC3::NEGINF</a>, <a class="el" href="expr__manager_8h_source.html#l00454">CVC3::ExprManager::newLeafExpr()</a>, <a class="el" href="kinds_8h_source.html#l00032">NULL_KIND</a>, <a class="el" href="theory_8cpp_source.html#l00519">CVC3::Theory::parseExpr()</a>, <a class="el" href="theory__arith_8h_source.html#l00042">CVC3::PLUS</a>, <a class="el" href="theory__arith_8h_source.html#l00199">CVC3::plusExpr()</a>, <a class="el" href="theory__arith_8h_source.html#l00035">CVC3::POSINF</a>, <a class="el" href="theory__arith_8h_source.html#l00046">CVC3::POW</a>, <a class="el" href="theory__arith_8h_source.html#l00216">CVC3::powExpr()</a>, <a class="el" href="kinds_8h_source.html#l00044">RAW_LIST</a>, <a class="el" href="theory__arith_8h_source.html#l00037">CVC3::REAL</a>, <a class="el" href="theory__arith_8h_source.html#l00039">CVC3::SUBRANGE</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="theory__arith_8h_source.html#l00041">CVC3::UMINUS</a>, and <a class="el" href="theory__arith_8h_source.html#l00197">CVC3::uminusExpr()</a>.</p>

</div>
</div>
<a class="anchor" id="acf71ca1da6261f1fb8f14522613de497"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void TheoryArithNew::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><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Registers the atom given from the core. This atoms are stored so that they can be used for theory propagation.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">e</td><td>the expression (atom) that is part of the input formula </td></tr>
  </table>
  </dd>
</dl>

<p>Reimplemented from <a class="el" href="group__Theory__API.html#gaae6aca3030e9857d149b8ea26c44b535">CVC3::Theory</a>.</p>

<p>Definition at line <a class="el" href="theory__arith__new_8cpp_source.html#l03953">3953</a> of file <a class="el" href="theory__arith__new_8cpp_source.html">theory_arith_new.cpp</a>.</p>

<p>References <a class="el" href="theory__arith__new_8h_source.html#l00651">allBounds</a>, <a class="el" href="debug_8h_source.html#l00037">FatalAssert</a>, <a class="el" href="theory__arith_8h_source.html#l00052">CVC3::GE</a>, <a class="el" href="expr_8h_source.html#l01168">CVC3::Expr::getKind()</a>, <a class="el" href="expr_8h_source.html#l01135">CVC3::Expr::getRational()</a>, <a class="el" href="theory__arith_8h_source.html#l00051">CVC3::GT</a>, <a class="el" href="expr_8h_source.html#l00398">CVC3::Expr::isAbsAtomicFormula()</a>, <a class="el" href="theory__arith_8h_source.html#l00050">CVC3::LE</a>, <a class="el" href="theory__arith_8h_source.html#l00049">CVC3::LT</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="aeee481c90c90340e900a847fc0c8b82e"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> TheoryArithNew::deriveGomoryCut </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>x_i</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Return a Gomory cut plane derivation of the variable $x_i$. Mixed integer Gomory cut can be constructed if </p>
<ul>
<li>
<img class="formulaInl" alt="$x_i$" src="form_172.png"/> is a integer basic variable with a non-integer value </li>
<li>
all non-basic variables in the row of <img class="formulaInl" alt="$x_i$" src="form_172.png"/> are assigned to their upper or lower bounds </li>
<li>
all the values on the right side of the row have rational values (non eps-rational values) </li>
</ul>

<p>Definition at line <a class="el" href="theory__arith__new_8cpp_source.html#l04105">4105</a> of file <a class="el" href="theory__arith__new_8cpp_source.html">theory_arith_new.cpp</a>.</p>

<p>References <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l03117">getBeta()</a>, <a class="el" href="theory__arith__new_8h_source.html#l00340">CVC3::TheoryArithNew::EpsRational::getRational()</a>, <a class="el" href="theory__arith__new_8h_source.html#l00502">intVariables</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l02589">isBasic()</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

</div>
</div>
<a class="anchor" id="a68884e312bf69a858ed5a45979571d1a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> TheoryArithNew::rafineIntegerConstraints </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>thm</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Tries to rafine the integer constraint of the theorem. For example, x &lt; 1 is rewritten as x &lt;= 0, and x &lt;(=) 1.5 is rewritten as x &lt;= 1. The constraint should be in the normal form.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">thm</td><td>the derivation of the constraint </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="theory__arith__new_8cpp_source.html#l01541">1541</a> of file <a class="el" href="theory__arith__new_8cpp_source.html">theory_arith_new.cpp</a>.</p>

<p>References <a class="el" href="theory__arith__new_8h_source.html#l00047">d_rules</a>, <a class="el" href="expr_8h_source.html#l01168">CVC3::Expr::getKind()</a>, <a class="el" href="expr_8h_source.html#l01135">CVC3::Expr::getRational()</a>, <a class="el" href="theorem_8cpp_source.html#l00246">CVC3::Theorem::getRHS()</a>, <a class="el" href="theory__arith_8h_source.html#l00051">CVC3::GT</a>, <a class="el" href="classCVC3_1_1Rational.html#a1366320f4de558bb964c67f8aecedb36">CVC3::Rational::isInteger()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l00068">isIntegerThm()</a>, <a class="el" href="theorem_8h_source.html#l00164">CVC3::Theorem::isNull()</a>, <a class="el" href="theory__arith_8h_source.html#l00049">CVC3::LT</a>, <a class="el" href="classCVC3_1_1ArithProofRules.html#a4b61e3ea9d5ac911806de95241cf35de">CVC3::ArithProofRules::rafineStrictInteger()</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>

</div>
</div>
<a class="anchor" id="ac6fc7d06f3933010435be7f77b0022bc"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void TheoryArithNew::propagateTheory </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>assertExpr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1TheoryArithNew_1_1EpsRational.html">EpsRational</a> &amp;&#160;</td>
          <td class="paramname"><em>bound</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1TheoryArithNew_1_1EpsRational.html">EpsRational</a> &amp;&#160;</td>
          <td class="paramname"><em>oldBound</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Propagate all that is possible from given assertion and its bound </p>

<p>Definition at line <a class="el" href="theory__arith__new_8cpp_source.html#l04000">4000</a> of file <a class="el" href="theory__arith__new_8cpp_source.html">theory_arith_new.cpp</a>.</p>

<p>References <a class="el" href="theory__arith__new_8h_source.html#l00651">allBounds</a>, <a class="el" href="theory__arith__new_8h_source.html#l00047">d_rules</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="theory_8cpp_source.html#l00128">CVC3::Theory::enqueueFact()</a>, <a class="el" href="theory_8cpp_source.html#l00310">CVC3::Theory::find()</a>, <a class="el" href="theory_8h_source.html#l00503">CVC3::Theory::findExpr()</a>, <a class="el" href="theory__arith_8h_source.html#l00052">CVC3::GE</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="theory__arith_8h_source.html#l00051">CVC3::GT</a>, <a class="el" href="classCVC3_1_1ArithProofRules.html#a5eaf4d106f7ce86227ab1d96ffc66b55">CVC3::ArithProofRules::implyNegatedInequality()</a>, <a class="el" href="classCVC3_1_1ArithProofRules.html#a9abe85f95b61d94fa308a0b15f2b2ef8">CVC3::ArithProofRules::implyWeakerInequality()</a>, <a class="el" href="theory__arith_8h_source.html#l00050">CVC3::LE</a>, <a class="el" href="theory__arith_8h_source.html#l00049">CVC3::LT</a>, <a class="el" href="theorem_8h_source.html#l00404">CVC3::Theorem::toString()</a>, <a class="el" href="theory__arith__new_8h_source.html#l00476">CVC3::TheoryArithNew::EpsRational::toString()</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__arith__new_8cpp_source.html#l03138">assertFact()</a>.</p>

</div>
</div>
<a class="anchor" id="a59752d5aa73e48dd1a6c133a41a3c5d4"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void TheoryArithNew::updateDependenciesAdd </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>var</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>sum</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Adds var to the dependencies sets of all the variables in the sum.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">var</td><td>the variable on the left side </td></tr>
    <tr><td class="paramname">sum</td><td>the sum that defines the variable </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="theory__arith__new_8cpp_source.html#l03873">3873</a> of file <a class="el" href="theory__arith__new_8cpp_source.html">theory_arith_new.cpp</a>.</p>

<p>References <a class="el" href="expr_8h_source.html#l01211">CVC3::Expr::begin()</a>, <a class="el" href="theory__arith__new_8h_source.html#l00619">dependenciesMap</a>, <a class="el" href="expr_8h_source.html#l01217">CVC3::Expr::end()</a>, <a class="el" href="hash__map_8h_source.html#l00190">Hash::hash_map&lt; _Key, _Data, _HashFcn, _EqualKey &gt;::insert()</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__arith__new_8cpp_source.html#l03273">getVariableIntroThm()</a>, and <a class="el" href="theory__arith__new_8cpp_source.html#l02594">pivot()</a>.</p>

</div>
</div>
<a class="anchor" id="aa21dc626bcc3110d6f90cddfa66e7729"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void TheoryArithNew::updateDependenciesRemove </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>var</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>sum</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Remove var from the dependencies sets of all the variables in the sum.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">var</td><td>the variable on the left side </td></tr>
    <tr><td class="paramname">sum</td><td>the sum that defines the variable </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="theory__arith__new_8cpp_source.html#l03886">3886</a> of file <a class="el" href="theory__arith__new_8cpp_source.html">theory_arith_new.cpp</a>.</p>

<p>References <a class="el" href="expr_8h_source.html#l01211">CVC3::Expr::begin()</a>, <a class="el" href="theory__arith__new_8h_source.html#l00619">dependenciesMap</a>, <a class="el" href="expr_8h_source.html#l01217">CVC3::Expr::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="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__arith__new_8cpp_source.html#l02594">pivot()</a>.</p>

</div>
</div>
<a class="anchor" id="a85da313a2d543ca7343191a4cc20fa0d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void TheoryArithNew::updateDependencies </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>oldExpr</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>newExpr</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>var</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>skipVar</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Updates the dependencies if a right side of an expression in the tableaux is changed. For example, if oldExpr is x + y and newExpr is y + z, var will be added to the dependency list of z, and removed from the dependency list of x.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">oldExpr</td><td>the old right side of the tableaux </td></tr>
    <tr><td class="paramname">newExpr</td><td>the new right side of the tableaux </td></tr>
    <tr><td class="paramname">var</td><td>the variable that is defined by these two expressions </td></tr>
    <tr><td class="paramname">skipVar</td><td>a variable to skip when going through the expressions </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="theory__arith__new_8cpp_source.html#l03899">3899</a> of file <a class="el" href="theory__arith__new_8cpp_source.html">theory_arith_new.cpp</a>.</p>

<p>References <a class="el" href="expr_8h_source.html#l01201">CVC3::Expr::arity()</a>, <a class="el" href="theory__arith__new_8h_source.html#l00619">dependenciesMap</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="hash__map_8h_source.html#l00190">Hash::hash_map&lt; _Key, _Data, _HashFcn, _EqualKey &gt;::insert()</a>, <a class="el" href="theory_8cpp_source.html#l00569">CVC3::Theory::newVar()</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__arith__new_8cpp_source.html#l03524">substAndCanonizeTableaux()</a>.</p>

</div>
</div>
<a class="anchor" id="a16a43c368ec23e06c847ae9684a98381"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void TheoryArithNew::updateFreshVariables </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Update the values of variables that have appeared in the tableaux due to backtracking. </p>

<p>Definition at line <a class="el" href="theory__arith__new_8cpp_source.html#l03859">3859</a> of file <a class="el" href="theory__arith__new_8cpp_source.html">theory_arith_new.cpp</a>.</p>

<p>References <a class="el" href="theory__arith__new_8h_source.html#l00631">assertedExpr</a>, <a class="el" href="theory__arith__new_8h_source.html#l00633">assertedExprCount</a>, and <a class="el" href="theory__arith__new_8cpp_source.html#l03323">updateValue()</a>.</p>

<p>Referenced by <a class="el" href="theory__arith__new_8cpp_source.html#l03138">assertFact()</a>, and <a class="el" href="theory__arith__new_8cpp_source.html#l02830">checkSat()</a>.</p>

</div>
</div>
<a class="anchor" id="ad22fa5522add29991c72dab60da2e922"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void TheoryArithNew::updateValue </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>var</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></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Updates the value of variable var by computing the value of expression e.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">var</td><td>the variable to update </td></tr>
    <tr><td class="paramname">e</td><td>the expression to compute </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="theory__arith__new_8cpp_source.html#l03323">3323</a> of file <a class="el" href="theory__arith__new_8cpp_source.html">theory_arith_new.cpp</a>.</p>

<p>References <a class="el" href="expr_8h_source.html#l01201">CVC3::Expr::arity()</a>, <a class="el" href="theory__arith__new_8h_source.html#l00609">beta</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l03117">getBeta()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l03082">getLowerBound()</a>, <a class="el" href="expr_8h_source.html#l01135">CVC3::Expr::getRational()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l03090">getUpperBound()</a>, and <a class="el" href="theory__arith__new_8h_source.html#l00628">unsatBasicVariables</a>.</p>

<p>Referenced by <a class="el" href="theory__arith__new_8cpp_source.html#l03273">getVariableIntroThm()</a>, and <a class="el" href="theory__arith__new_8cpp_source.html#l03859">updateFreshVariables()</a>.</p>

</div>
</div>
<a class="anchor" id="af2a4bc0a133edf66fe040d72c4e7ea01"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">string TheoryArithNew::tableauxAsString </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Returns a string representation of the tableaux.</p>
<dl class="section return"><dt>Returns</dt><dd>tableaux as string </dd></dl>

<p>Definition at line <a class="el" href="theory__arith__new_8cpp_source.html#l03343">3343</a> of file <a class="el" href="theory__arith__new_8cpp_source.html">theory_arith_new.cpp</a>.</p>

<p>References <a class="el" href="hash__map_8h_source.html#l00246">Hash::hash_map&lt; _Key, _Data, _HashFcn, _EqualKey &gt;::begin()</a>, <a class="el" href="hash__map_8h_source.html#l00257">Hash::hash_map&lt; _Key, _Data, _HashFcn, _EqualKey &gt;::end()</a>, and <a class="el" href="theory__arith__new_8h_source.html#l00622">tableaux</a>.</p>

<p>Referenced by <a class="el" href="theory__arith__new_8cpp_source.html#l03138">assertFact()</a>, and <a class="el" href="theory__arith__new_8cpp_source.html#l02916">checkSatSimplex()</a>.</p>

</div>
</div>
<a class="anchor" id="afbbf8a22ba662eaea65afbbcb135ff83"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">string TheoryArithNew::unsatAsString </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Returns a string representation of the unsat variables.</p>
<dl class="section return"><dt>Returns</dt><dd>unsat as string </dd></dl>

<p>Definition at line <a class="el" href="theory__arith__new_8cpp_source.html#l03365">3365</a> of file <a class="el" href="theory__arith__new_8cpp_source.html">theory_arith_new.cpp</a>.</p>

<p>References <a class="el" href="theory__arith__new_8h_source.html#l00628">unsatBasicVariables</a>.</p>

<p>Referenced by <a class="el" href="theory__arith__new_8cpp_source.html#l03138">assertFact()</a>, and <a class="el" href="theory__arith__new_8cpp_source.html#l02916">checkSatSimplex()</a>.</p>

</div>
</div>
<a class="anchor" id="acbfcb4d92182bdf9e185661ec0fc61e0"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">string TheoryArithNew::boundsAsString </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Returns a string representation of the current bounds.</p>
<dl class="section return"><dt>Returns</dt><dd>tableaux as string </dd></dl>

<p>Definition at line <a class="el" href="theory__arith__new_8cpp_source.html#l03388">3388</a> of file <a class="el" href="theory__arith__new_8cpp_source.html">theory_arith_new.cpp</a>.</p>

<p>References <a class="el" href="expr_8h_source.html#l01201">CVC3::Expr::arity()</a>, <a class="el" href="hash__map_8h_source.html#l00246">Hash::hash_map&lt; _Key, _Data, _HashFcn, _EqualKey &gt;::begin()</a>, <a class="el" href="cdmap_8h_source.html#l00257">CVC3::CDMap&lt; Key, Data, HashFcn &gt;::begin()</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="cdmap_8h_source.html#l00258">CVC3::CDMap&lt; Key, Data, HashFcn &gt;::end()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l03117">getBeta()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l03082">getLowerBound()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l03090">getUpperBound()</a>, <a class="el" href="theory__arith__new_8h_source.html#l00605">lowerBound</a>, <a class="el" href="theory__arith__new_8h_source.html#l00622">tableaux</a>, <a class="el" href="theory__arith__new_8h_source.html#l00476">CVC3::TheoryArithNew::EpsRational::toString()</a>, <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>, and <a class="el" href="theory__arith__new_8h_source.html#l00607">upperBound</a>.</p>

<p>Referenced by <a class="el" href="theory__arith__new_8cpp_source.html#l03138">assertFact()</a>, and <a class="el" href="theory__arith__new_8cpp_source.html#l02916">checkSatSimplex()</a>.</p>

</div>
</div>
<a class="anchor" id="ad6fc5bdbe7ed6bcd4df8543e96b2b079"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> TheoryArithNew::getVariableIntroThm </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>leftSide</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Gets the equality of the fresh variable tableaux variable corresponding to this expression. If the expression has already been asserted, the coresponding variable is returned, othervise a fresh variable is created and the theorem is returned.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">leftSide</td><td>the left side of the asserted constraint </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the equality theorem s = leftSide </dd></dl>

<p>Definition at line <a class="el" href="theory__arith__new_8cpp_source.html#l03273">3273</a> of file <a class="el" href="theory__arith__new_8cpp_source.html">theory_arith_new.cpp</a>.</p>

<p>References <a class="el" href="theory__arith__new_8h_source.html#l00631">assertedExpr</a>, <a class="el" href="theory__arith__new_8h_source.html#l00633">assertedExprCount</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="kinds_8h_source.html#l00061">EQ</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="theory_8cpp_source.html#l00310">CVC3::Theory::find()</a>, <a class="el" href="theory__arith__new_8h_source.html#l00625">freshVariables</a>, <a class="el" href="theory_8h_source.html#l00096">CVC3::Theory::getCommonRules()</a>, <a class="el" href="theorem_8cpp_source.html#l00230">CVC3::Theorem::getExpr()</a>, <a class="el" href="classCVC3_1_1CommonProofRules.html#aebbcd4a194e4fdca0bcd16143fb03a75">CVC3::CommonProofRules::iffMP()</a>, <a class="el" href="classCVC3_1_1CommonProofRules.html#a8a2561e9e4763460c65dbebe10d2f281">CVC3::CommonProofRules::skolemizeRewrite()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l03447">substAndCanonizeModTableaux()</a>, <a class="el" href="theory_8h_source.html#l00677">CVC3::Theory::symmetryRule()</a>, <a class="el" href="theory__arith__new_8h_source.html#l00622">tableaux</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l03873">updateDependenciesAdd()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l03323">updateValue()</a>, and <a class="el" href="classCVC3_1_1CommonProofRules.html#aab746efc9d013643bccc065affa82992">CVC3::CommonProofRules::varIntroRule()</a>.</p>

<p>Referenced by <a class="el" href="theory__arith__new_8cpp_source.html#l03138">assertFact()</a>.</p>

</div>
</div>
<a class="anchor" id="a5fcebedad96665573ab5eafb7d70b2e0"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classCVC3_1_1Rational.html">Rational</a> &amp; TheoryArithNew::findCoefficient </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>var</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>expr</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Find the coefficient standing by the variable var in the expression expr. Expresion is expected to be in canonical form, i.e either a rational constant, an arithmetic leaf (i.e. variable or term from some other theory), (MULT rat leaf) where rat is a non-zero rational constant, leaf is an arithmetic leaf or (PLUS <img class="formulaInl" alt="$const term_0 term_1 ... term_n$" src="form_259.png"/>) where each <img class="formulaInl" alt="$term_i$" src="form_260.png"/> is either a leaf or (MULT <img class="formulaInl" alt="$rat leaf$" src="form_261.png"/>) and each leaf in <img class="formulaInl" alt="$term_i$" src="form_260.png"/> must be strictly greater than the leaf in <img class="formulaInl" alt="$term_{i+1}$" src="form_262.png"/>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">var</td><td>the variable </td></tr>
    <tr><td class="paramname">expr</td><td>the expression to search in </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="theory__arith__new_8cpp_source.html#l03043">3043</a> of file <a class="el" href="theory__arith__new_8cpp_source.html">theory_arith_new.cpp</a>.</p>

<p>References <a class="el" href="expr_8h_source.html#l01201">CVC3::Expr::arity()</a>, <a class="el" href="expr_8cpp_source.html#l00597">CVC3::compare()</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="expr_8h_source.html#l01135">CVC3::Expr::getRational()</a>, <a class="el" href="theory__arith_8h_source.html#l00183">CVC3::isMult()</a>, <a class="el" href="theory__arith_8h_source.html#l00181">CVC3::isPlus()</a>, <a class="el" href="theory__arith_8h_source.html#l00177">CVC3::isRational()</a>, <a class="el" href="minisat__heap_8h_source.html#l00053">MiniSat::left()</a>, <a class="el" href="minisat__heap_8h_source.html#l00054">MiniSat::right()</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

<p>Referenced by <a class="el" href="theory__arith__new_8cpp_source.html#l03038">getTableauxEntry()</a>.</p>

</div>
</div>
<a class="anchor" id="af4eaf347e86ee4616a52676801213711"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool TheoryArithNew::isBasic </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>x</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Return true iof the given variable is basic in the tableaux, i.e. it is on the left side, expressed in terms of the non-basic variables.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">x</td><td>the variable to be checked </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true if the variable is basic, false if the variable is non-basic </dd></dl>

<p>Definition at line <a class="el" href="theory__arith__new_8cpp_source.html#l02589">2589</a> of file <a class="el" href="theory__arith__new_8cpp_source.html">theory_arith_new.cpp</a>.</p>

<p>References <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="theory__arith__new_8h_source.html#l00622">tableaux</a>.</p>

<p>Referenced by <a class="el" href="theory__arith__new_8cpp_source.html#l02777">assertLower()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l02740">assertUpper()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l04105">deriveGomoryCut()</a>, and <a class="el" href="theory__arith__new_8cpp_source.html#l02594">pivot()</a>.</p>

</div>
</div>
<a class="anchor" id="a4ed9c0c6e1bfa32ead951cb6c1221f0e"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Rational.html">Rational</a> TheoryArithNew::getTableauxEntry </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>x_i</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>x_j</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Returns the coefficient at a_ij in the current tableaux, i.e. the coefficient at x_j in the row of x_i.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">x_i</td><td>a basic variable </td></tr>
    <tr><td class="paramname">x_j</td><td>a non-basic variable </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the reational coefficient </dd></dl>

<p>Definition at line <a class="el" href="theory__arith__new_8cpp_source.html#l03038">3038</a> of file <a class="el" href="theory__arith__new_8cpp_source.html">theory_arith_new.cpp</a>.</p>

<p>References <a class="el" href="theory__arith__new_8cpp_source.html#l03043">findCoefficient()</a>, and <a class="el" href="theory__arith__new_8h_source.html#l00622">tableaux</a>.</p>

<p>Referenced by <a class="el" href="theory__arith__new_8cpp_source.html#l02675">pivotAndUpdate()</a>, and <a class="el" href="theory__arith__new_8cpp_source.html#l02628">update()</a>.</p>

</div>
</div>
<a class="anchor" id="ab19840152f3116c50edb0b6c0cc673f7"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void TheoryArithNew::pivot </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>x_r</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>x_s</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Swaps a basic variable <img class="formulaInl" alt="$x_r$" src="form_263.png"/> and a non-basic variable <img class="formulaInl" alt="$x_s$" src="form_264.png"/> such that ars <img class="formulaInl" alt="$a_{rs} \neq 0$" src="form_265.png"/>. After pivoting, <img class="formulaInl" alt="$x_s$" src="form_264.png"/> becomes basic and <img class="formulaInl" alt="$x_r$" src="form_263.png"/> becomes non-basic. The tableau is updated by replacing equation </p>
<p class="formulaDsp">
<img class="formulaDsp" alt="\[x_r = \sum_{x_j \in N}{a_{rj}xj}\]" src="form_266.png"/>
</p>
<p> with </p>
<p class="formulaDsp">
<img class="formulaDsp" alt="\[x_s = \frac{x_r}{a_{rs}} - \sum_{x_j \in N }{\frac{a_{rj}}{a_rs}x_j}\]" src="form_267.png"/>
</p>
<p> and this equation is used to eliminate <img class="formulaInl" alt="$x_s$" src="form_264.png"/> from the rest of the tableau by substitution.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">x_r</td><td>a basic variable </td></tr>
    <tr><td class="paramname">x_s</td><td>a non-basic variable </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="theory__arith__new_8cpp_source.html#l02594">2594</a> of file <a class="el" href="theory__arith__new_8cpp_source.html">theory_arith_new.cpp</a>.</p>

<p>References <a class="el" href="debug_8h_source.html#l00408">DebugAssert</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="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#l00230">CVC3::Theorem::getExpr()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l02589">isBasic()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l03600">pivotRule()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l03524">substAndCanonizeTableaux()</a>, <a class="el" href="theory__arith__new_8h_source.html#l00622">tableaux</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="theory__arith__new_8cpp_source.html#l03873">updateDependenciesAdd()</a>, and <a class="el" href="theory__arith__new_8cpp_source.html#l03886">updateDependenciesRemove()</a>.</p>

<p>Referenced by <a class="el" href="theory__arith__new_8cpp_source.html#l02675">pivotAndUpdate()</a>.</p>

</div>
</div>
<a class="anchor" id="abd8ac3d26ddd910cc52da9bde210e50a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void TheoryArithNew::update </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>x_i</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1TheoryArithNew_1_1EpsRational.html">EpsRational</a> &amp;&#160;</td>
          <td class="paramname"><em>v</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Sets the value of a non-basic variable <img class="formulaInl" alt="$x_i$" src="form_172.png"/> to <img class="formulaInl" alt="$v$" src="form_94.png"/> and adjusts the value of all the basic variables so that all equations remain satisfied.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">x_i</td><td>a non-basic variable </td></tr>
    <tr><td class="paramname">v</td><td>the value to set the variable <img class="formulaInl" alt="$x_i$" src="form_172.png"/> to </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="theory__arith__new_8cpp_source.html#l02628">2628</a> of file <a class="el" href="theory__arith__new_8cpp_source.html">theory_arith_new.cpp</a>.</p>

<p>References <a class="el" href="theory__arith__new_8h_source.html#l00609">beta</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="theory__arith__new_8h_source.html#l00619">dependenciesMap</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="theory_8cpp_source.html#l00310">CVC3::Theory::find()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l03117">getBeta()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l03082">getLowerBound()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l03038">getTableauxEntry()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l03090">getUpperBound()</a>, <a class="el" href="theory__arith__new_8h_source.html#l00622">tableaux</a>, <a class="el" href="theory__arith__new_8h_source.html#l00476">CVC3::TheoryArithNew::EpsRational::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="theory__arith__new_8h_source.html#l00628">unsatBasicVariables</a>.</p>

</div>
</div>
<a class="anchor" id="ae9e0aad1b930137d011dbab8bf4b0874"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void TheoryArithNew::pivotAndUpdate </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>x_i</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>x_j</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1TheoryArithNew_1_1EpsRational.html">EpsRational</a> &amp;&#160;</td>
          <td class="paramname"><em>v</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Pivots the basic variable <img class="formulaInl" alt="$x_i$" src="form_172.png"/> and the non-basic variable <img class="formulaInl" alt="$x_j$" src="form_268.png"/>. It also sets <img class="formulaInl" alt="$x_i$" src="form_172.png"/> to <img class="formulaInl" alt="$v$" src="form_94.png"/> and adjusts all basic variables to keep the equations satisfied.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">x_i</td><td>a basic variable </td></tr>
    <tr><td class="paramname">x_j</td><td>a non-basic variable </td></tr>
    <tr><td class="paramname">v</td><td>the valie to assign to x_i </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="theory__arith__new_8cpp_source.html#l02675">2675</a> of file <a class="el" href="theory__arith__new_8cpp_source.html">theory_arith_new.cpp</a>.</p>

<p>References <a class="el" href="theory__arith__new_8h_source.html#l00609">beta</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="theory__arith__new_8h_source.html#l00619">dependenciesMap</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="theory__arith__new_8cpp_source.html#l03117">getBeta()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l03082">getLowerBound()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l03038">getTableauxEntry()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l03090">getUpperBound()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l02594">pivot()</a>, <a class="el" href="theory__arith__new_8h_source.html#l00622">tableaux</a>, <a class="el" href="theory__arith__new_8h_source.html#l00476">CVC3::TheoryArithNew::EpsRational::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="theory__arith__new_8h_source.html#l00628">unsatBasicVariables</a>.</p>

<p>Referenced by <a class="el" href="theory__arith__new_8cpp_source.html#l02916">checkSatSimplex()</a>.</p>

</div>
</div>
<a class="anchor" id="a344feb254ed4f336fc0dc41a66cf232c"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="namespaceCVC3.html#a060d21b3207cc3471e24f8dbcff3498b">QueryResult</a> TheoryArithNew::assertUpper </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>x_i</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1TheoryArithNew_1_1EpsRational.html">EpsRational</a> &amp;&#160;</td>
          <td class="paramname"><em>c</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>thm</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Asserts a new upper bound constraint on a variable and performs a simple check for consistency (not complete).</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">x_i</td><td>the variable to assert the bound on </td></tr>
    <tr><td class="paramname">c</td><td>the bound to assert </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="theory__arith__new_8cpp_source.html#l02740">2740</a> of file <a class="el" href="theory__arith__new_8cpp_source.html">theory_arith_new.cpp</a>.</p>

<p>References <a class="el" href="classCVC3_1_1ArithProofRules.html#ad0b23fb01a7adea349c8958059b9f7fd">CVC3::ArithProofRules::clashingBounds()</a>, <a class="el" href="theory__arith__new_8h_source.html#l00527">consistent</a>, <a class="el" href="theory__arith__new_8h_source.html#l00047">d_rules</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="theory__arith__new_8h_source.html#l00530">explanation</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l03117">getBeta()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l03082">getLowerBound()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l03098">getLowerBoundThm()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l03090">getUpperBound()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l02589">isBasic()</a>, <a class="el" href="theory_8h_source.html#l00556">CVC3::Theory::isLeaf()</a>, <a class="el" href="theory__arith__new_8h_source.html#l00639">propagate</a>, <a class="el" href="queryresult_8h_source.html#l00033">CVC3::SATISFIABLE</a>, <a class="el" href="theory__arith__new_8h_source.html#l00476">CVC3::TheoryArithNew::EpsRational::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>, <a class="el" href="queryresult_8h_source.html#l00038">CVC3::UNKNOWN</a>, <a class="el" href="theory__arith__new_8h_source.html#l00628">unsatBasicVariables</a>, <a class="el" href="queryresult_8h_source.html#l00036">CVC3::UNSATISFIABLE</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l01769">update()</a>, and <a class="el" href="theory__arith__new_8h_source.html#l00607">upperBound</a>.</p>

<p>Referenced by <a class="el" href="theory__arith__new_8cpp_source.html#l02814">assertEqual()</a>, and <a class="el" href="theory__arith__new_8cpp_source.html#l03138">assertFact()</a>.</p>

</div>
</div>
<a class="anchor" id="aa17423f3ce290e28544a356f0977f6f8"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="namespaceCVC3.html#a060d21b3207cc3471e24f8dbcff3498b">QueryResult</a> TheoryArithNew::assertLower </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>x_i</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1TheoryArithNew_1_1EpsRational.html">EpsRational</a> &amp;&#160;</td>
          <td class="paramname"><em>c</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>thm</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Asserts a new lower bound constraint on a variable and performs a simple check for consistency (not complete).</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">x_i</td><td>the variable to assert the bound on </td></tr>
    <tr><td class="paramname">c</td><td>the bound to assert </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="theory__arith__new_8cpp_source.html#l02777">2777</a> of file <a class="el" href="theory__arith__new_8cpp_source.html">theory_arith_new.cpp</a>.</p>

<p>References <a class="el" href="classCVC3_1_1ArithProofRules.html#ad0b23fb01a7adea349c8958059b9f7fd">CVC3::ArithProofRules::clashingBounds()</a>, <a class="el" href="theory__arith__new_8h_source.html#l00527">consistent</a>, <a class="el" href="theory__arith__new_8h_source.html#l00047">d_rules</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="theory__arith__new_8h_source.html#l00530">explanation</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l03117">getBeta()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l03082">getLowerBound()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l03090">getUpperBound()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l03107">getUpperBoundThm()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l02589">isBasic()</a>, <a class="el" href="theory_8h_source.html#l00556">CVC3::Theory::isLeaf()</a>, <a class="el" href="theory__arith__new_8h_source.html#l00605">lowerBound</a>, <a class="el" href="theory__arith__new_8h_source.html#l00639">propagate</a>, <a class="el" href="queryresult_8h_source.html#l00033">CVC3::SATISFIABLE</a>, <a class="el" href="theory__arith__new_8h_source.html#l00476">CVC3::TheoryArithNew::EpsRational::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>, <a class="el" href="queryresult_8h_source.html#l00038">CVC3::UNKNOWN</a>, <a class="el" href="theory__arith__new_8h_source.html#l00628">unsatBasicVariables</a>, <a class="el" href="queryresult_8h_source.html#l00036">CVC3::UNSATISFIABLE</a>, and <a class="el" href="theory__arith__new_8cpp_source.html#l01769">update()</a>.</p>

<p>Referenced by <a class="el" href="theory__arith__new_8cpp_source.html#l02814">assertEqual()</a>, and <a class="el" href="theory__arith__new_8cpp_source.html#l03138">assertFact()</a>.</p>

</div>
</div>
<a class="anchor" id="ace140a37ea260f769f4aa2756e5f22f0"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="namespaceCVC3.html#a060d21b3207cc3471e24f8dbcff3498b">QueryResult</a> TheoryArithNew::assertEqual </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>x_i</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1TheoryArithNew_1_1EpsRational.html">EpsRational</a> &amp;&#160;</td>
          <td class="paramname"><em>c</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>thm</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Asserts a new equality constraint on a variable by asserting both upper and lower bounds.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">x_i</td><td>the variable to assert the bound on </td></tr>
    <tr><td class="paramname">c</td><td>the bound to assert </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="theory__arith__new_8cpp_source.html#l02814">2814</a> of file <a class="el" href="theory__arith__new_8cpp_source.html">theory_arith_new.cpp</a>.</p>

<p>References <a class="el" href="theory__arith__new_8cpp_source.html#l02777">assertLower()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l02740">assertUpper()</a>, <a class="el" href="theory__arith__new_8h_source.html#l00527">consistent</a>, and <a class="el" href="queryresult_8h_source.html#l00036">CVC3::UNSATISFIABLE</a>.</p>

<p>Referenced by <a class="el" href="theory__arith__new_8cpp_source.html#l03138">assertFact()</a>.</p>

</div>
</div>
<a class="anchor" id="a48d4a6a488973f4fc79fc8d0c4d1470c"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Expr.html">Expr</a> TheoryArithNew::computeNormalFactor </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>rhs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1TheoryArithNew.html#a9707c04f2d2af4812b8c18029f0368f4">NormalizationType</a>&#160;</td>
          <td class="paramname"><em>type</em> = <code><a class="el" href="classCVC3_1_1TheoryArithNew.html#a9707c04f2d2af4812b8c18029f0368f4a5df10a1338d39c91f6886d5b09a2751d">NORMALIZE_GCD</a></code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Given a canonized term, compute a factor to make all coefficients integer and relatively prime </p>

<p>Definition at line <a class="el" href="theory__arith__new_8cpp_source.html#l00853">853</a> of file <a class="el" href="theory__arith__new_8cpp_source.html">theory_arith_new.cpp</a>.</p>

<p>References <a class="el" href="cvc__util_8h_source.html#l00053">CVC3::abs()</a>, <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="classCVC3_1_1Rational.html#a7c237dbba5d9f2b022d13bae3188a7e9">CVC3::Rational::getDenominator()</a>, <a class="el" href="classCVC3_1_1Rational.html#a953f2eb850fc3612097b5320dcda6047">CVC3::Rational::getNumerator()</a>, <a class="el" href="expr_8h_source.html#l01135">CVC3::Expr::getRational()</a>, <a class="el" href="theory__arith_8h_source.html#l00181">CVC3::isPlus()</a>, <a class="el" href="theory__arith_8h_source.html#l00177">CVC3::isRational()</a>, <a class="el" href="theory__arith_8h_source.html#l00044">CVC3::MULT</a>, <a class="el" href="kinds_8h_source.html#l00037">RATIONAL_EXPR</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

<p>Referenced by <a class="el" href="theory__arith__new_8cpp_source.html#l01468">normalize()</a>.</p>

</div>
</div>
<a class="anchor" id="a243f5665943792345df52be2a94eb648"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> TheoryArithNew::normalize </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_1TheoryArithNew.html#a9707c04f2d2af4812b8c18029f0368f4">NormalizationType</a>&#160;</td>
          <td class="paramname"><em>type</em> = <code><a class="el" href="classCVC3_1_1TheoryArithNew.html#a9707c04f2d2af4812b8c18029f0368f4a5df10a1338d39c91f6886d5b09a2751d">NORMALIZE_GCD</a></code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Normalize an equation (make all coefficients rel. prime integers)</p>
<p>accepts a rewrite theorem over eqn|ineqn and normalizes it and returns a theorem to that effect. assumes e is non-trivial i.e. e is not '0=const' or 'const=0' or '0 &lt;= const' etc. </p>

<p>Definition at line <a class="el" href="theory__arith__new_8cpp_source.html#l01468">1468</a> of file <a class="el" href="theory__arith__new_8cpp_source.html">theory_arith_new.cpp</a>.</p>

<p>References <a class="el" href="theory__arith__new_8cpp_source.html#l00295">canonPredEquiv()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l00853">computeNormalFactor()</a>, <a class="el" href="theory__arith__new_8h_source.html#l00047">d_rules</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="debug_8h_source.html#l00037">FatalAssert</a>, <a class="el" href="theory__arith_8h_source.html#l00052">CVC3::GE</a>, <a class="el" href="expr_8h_source.html#l01168">CVC3::Expr::getKind()</a>, <a class="el" href="theory__arith_8h_source.html#l00051">CVC3::GT</a>, <a class="el" href="theory__arith_8h_source.html#l00192">CVC3::isIneq()</a>, <a class="el" href="theory__arith_8h_source.html#l00183">CVC3::isMult()</a>, <a class="el" href="theory__arith_8h_source.html#l00181">CVC3::isPlus()</a>, <a class="el" href="theory__arith_8h_source.html#l00177">CVC3::isRational()</a>, <a class="el" href="theory__arith_8h_source.html#l00050">CVC3::LE</a>, <a class="el" href="theory__arith_8h_source.html#l00049">CVC3::LT</a>, <a class="el" href="classCVC3_1_1ArithProofRules.html#a70e83cfbc207a5d15fedd4adde7e9e76">CVC3::ArithProofRules::multIneqn()</a>, <a class="el" href="theory__arith_8h_source.html#l00156">CVC3::TheoryArith::rat()</a>, <a class="el" href="theory_8h_source.html#l00673">CVC3::Theory::reflexivityRule()</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__arith__new_8cpp_source.html#l01537">normalize()</a>, and <a class="el" href="theory__arith__new_8cpp_source.html#l01570">rewrite()</a>.</p>

</div>
</div>
<a class="anchor" id="a51f12b9264f77ec8a82f58cce68780c8"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> TheoryArithNew::normalize </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>thm</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1TheoryArithNew.html#a9707c04f2d2af4812b8c18029f0368f4">NormalizationType</a>&#160;</td>
          <td class="paramname"><em>type</em> = <code><a class="el" href="classCVC3_1_1TheoryArithNew.html#a9707c04f2d2af4812b8c18029f0368f4a5df10a1338d39c91f6886d5b09a2751d">NORMALIZE_GCD</a></code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Normalize an equation (make all coefficients rel. prime integers) accepts a rewrite theorem over eqn|ineqn and normalizes it and returns a theorem to that effect. </p>

<p>Definition at line <a class="el" href="theory__arith__new_8cpp_source.html#l01537">1537</a> of file <a class="el" href="theory__arith__new_8cpp_source.html">theory_arith_new.cpp</a>.</p>

<p>References <a class="el" href="theorem_8cpp_source.html#l00246">CVC3::Theorem::getRHS()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l01468">normalize()</a>, and <a class="el" href="theory_8h_source.html#l00681">CVC3::Theory::transitivityRule()</a>.</p>

</div>
</div>
<a class="anchor" id="a349c59e5b2eb5c2a9154f5bdeff43fde"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> TheoryArithNew::substAndCanonizeModTableaux </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>eq</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Canonise the equation using the tebleaux equations, i.e. replace all the tableaux right sides with the corresponding left sides and canonise the result.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">eq</td><td>the equation to canonise </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the explaining theorem </dd></dl>

<p>Definition at line <a class="el" href="theory__arith__new_8cpp_source.html#l03447">3447</a> of file <a class="el" href="theory__arith__new_8cpp_source.html">theory_arith_new.cpp</a>.</p>

<p>References <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="hash__map_8h_source.html#l00222">Hash::hash_map&lt; _Key, _Data, _HashFcn, _EqualKey &gt;::empty()</a>, <a class="el" href="kinds_8h_source.html#l00061">EQ</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="theorem_8cpp_source.html#l00246">CVC3::Theorem::getRHS()</a>, <a class="el" href="theory_8h_source.html#l00714">CVC3::Theory::iffMP()</a>, <a class="el" href="theory_8h_source.html#l00686">CVC3::Theory::substitutivityRule()</a>, <a class="el" href="theory__arith__new_8h_source.html#l00622">tableaux</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

<p>Referenced by <a class="el" href="theory__arith__new_8cpp_source.html#l03273">getVariableIntroThm()</a>.</p>

</div>
</div>
<a class="anchor" id="afc88d03ab0e42f2e4e53f8c5800313ad"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> TheoryArithNew::substAndCanonizeModTableaux </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>sum</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Canonise the sum using the tebleaux equations, i.e. replace all the tableaux right sides with the corresponding left sides and canonise the result.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">sum</td><td>the canonised sum to canonise </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the explaining theorem </dd></dl>

<p>Definition at line <a class="el" href="theory__arith__new_8cpp_source.html#l03471">3471</a> of file <a class="el" href="theory__arith__new_8cpp_source.html">theory_arith_new.cpp</a>.</p>

<p>References <a class="el" href="expr_8h_source.html#l01201">CVC3::Expr::arity()</a>, <a class="el" href="theory__arith_8h_source.html#l00120">CVC3::TheoryArith::canonThm()</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="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="expr_8h_source.html#l01168">CVC3::Expr::getKind()</a>, <a class="el" href="theory__arith_8h_source.html#l00042">CVC3::PLUS</a>, <a class="el" href="theory_8h_source.html#l00673">CVC3::Theory::reflexivityRule()</a>, <a class="el" href="theory_8h_source.html#l00686">CVC3::Theory::substitutivityRule()</a>, <a class="el" href="theory__arith__new_8h_source.html#l00622">tableaux</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="ad7d64d8e7110a9992654154b3e3613b0"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void TheoryArithNew::substAndCanonizeTableaux </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>eq</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Sustitute the given equation everywhere in the tableaux.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">eq</td><td>the equation to use for substitution </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="theory__arith__new_8cpp_source.html#l03524">3524</a> of file <a class="el" href="theory__arith__new_8cpp_source.html">theory_arith_new.cpp</a>.</p>

<p>References <a class="el" href="expr_8h_source.html#l01201">CVC3::Expr::arity()</a>, <a class="el" href="theory__arith_8h_source.html#l00120">CVC3::TheoryArith::canonThm()</a>, <a class="el" href="expr_8cpp_source.html#l00597">CVC3::compare()</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="theory__arith__new_8h_source.html#l00619">dependenciesMap</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="kinds_8h_source.html#l00061">EQ</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="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#l00246">CVC3::Theorem::getRHS()</a>, <a class="el" href="theory_8h_source.html#l00714">CVC3::Theory::iffMP()</a>, <a class="el" href="minisat__heap_8h_source.html#l00053">MiniSat::left()</a>, <a class="el" href="minisat__heap_8h_source.html#l00054">MiniSat::right()</a>, <a class="el" href="theory_8h_source.html#l00686">CVC3::Theory::substitutivityRule()</a>, <a class="el" href="theory__arith__new_8h_source.html#l00622">tableaux</a>, <a class="el" href="kinds_8h_source.html#l00099">TRACE</a>, and <a class="el" href="theory__arith__new_8cpp_source.html#l03899">updateDependencies()</a>.</p>

<p>Referenced by <a class="el" href="theory__arith__new_8cpp_source.html#l02594">pivot()</a>.</p>

</div>
</div>
<a class="anchor" id="abebb5cee14c85657ea68c873372b14d9"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> TheoryArithNew::pivotRule </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>eq</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>var</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Given an equality eq: <img class="formulaInl" alt="$\sum a_i x_i = y$" src="form_269.png"/> and a variable $var$ that appears in on the left hand side, pivots $y$ and $var$ so that $y$ comes to the right-hand side.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">eq</td><td>the proof of the equality </td></tr>
    <tr><td class="paramname">var</td><td>the variable to move to the right-hand side </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="theory__arith__new_8cpp_source.html#l03600">3600</a> of file <a class="el" href="theory__arith__new_8cpp_source.html">theory_arith_new.cpp</a>.</p>

<p>References <a class="el" href="expr_8h_source.html#l01201">CVC3::Expr::arity()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l00123">canon()</a>, <a class="el" href="theory__arith__new_8h_source.html#l00047">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="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#l01135">CVC3::Expr::getRational()</a>, <a class="el" href="theory_8h_source.html#l00714">CVC3::Theory::iffMP()</a>, <a class="el" href="theory_8h_source.html#l00556">CVC3::Theory::isLeaf()</a>, <a class="el" href="classCVC3_1_1ArithProofRules.html#ad62d795eb10e67c655c608774881bde3">CVC3::ArithProofRules::multEqn()</a>, <a class="el" href="theory__arith_8h_source.html#l00207">CVC3::multExpr()</a>, <a class="el" href="classCVC3_1_1ArithProofRules.html#a1ebae10d65430ab1a3a14c866af93de6">CVC3::ArithProofRules::oneElimination()</a>, <a class="el" href="theory__arith_8h_source.html#l00042">CVC3::PLUS</a>, <a class="el" href="theory__arith_8h_source.html#l00199">CVC3::plusExpr()</a>, <a class="el" href="classCVC3_1_1ArithProofRules.html#a0fa920a2a5cfa4419dbde10b1d913687">CVC3::ArithProofRules::plusPredicate()</a>, <a class="el" href="theory__arith_8h_source.html#l00156">CVC3::TheoryArith::rat()</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__arith__new_8cpp_source.html#l02594">pivot()</a>.</p>

</div>
</div>
<a class="anchor" id="a843498f8c1a569a296822e8f1f92d675"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> TheoryArithNew::getLowerBoundExplanation </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classHash_1_1hash__map.html#a0fae180472ddfd8822c881caf23c11a9">TebleauxMap::iterator</a> &amp;&#160;</td>
          <td class="paramname"><em>var_it</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Knowing that the tableaux row for <img class="formulaInl" alt="$x_i$" src="form_172.png"/> is the problematic one, generate the explanation clause. The variables in the row of <img class="formulaInl" alt="$x_i = \sum_{x_j \in \mathcal{N}}{a_ij x_j}$" src="form_270.png"/> are separated to </p>
<ul>
<li>
<img class="formulaInl" alt="$\mathcal{N}^+ = \left\lbrace x_j \in \mathcal{N} \; | \; a_{ij} > 0 \right\rbrace$" src="form_271.png"/> </li>
<li>
<img class="formulaInl" alt="$\mathcal{N}^- = \left\lbrace x_j \in \mathcal{N} \; | \; a_{ij} < 0\right\rbrace$" src="form_272.png"/> </li>
</ul>
<p>Then, the explanation clause to be returned is </p>
<p class="formulaDsp">
<img class="formulaDsp" alt="\[\Gamma = \left\lbrace x_j \leq u_j \; | \; x_j \in \mathcal{N}^+\right\rbrace \cup \left\lbrace l_j \leq x_j \; | \; x_j \in \mathcal{N}^-\right\rbrace \cup \left\lbrace l_i \leq x_i \right\rbrace\]" src="form_273.png"/>
</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">var_it</td><td>the variable that caused the clash </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the theorem explainang the clash </dd></dl>

<p>Definition at line <a class="el" href="theory__arith__new_8cpp_source.html#l03662">3662</a> of file <a class="el" href="theory__arith__new_8cpp_source.html">theory_arith_new.cpp</a>.</p>

<p>References <a class="el" href="classCVC3_1_1ArithProofRules.html#ac06dd83948d0f3e474f073ecac592343">CVC3::ArithProofRules::addInequalities()</a>, <a class="el" href="expr_8h_source.html#l01201">CVC3::Expr::arity()</a>, <a class="el" href="classCVC3_1_1ArithProofRules.html#a71be38a9fa2d89e147ac4fde35c49e21">CVC3::ArithProofRules::canonMultConstConst()</a>, <a class="el" href="classCVC3_1_1ArithProofRules.html#a11870b90dbfcc61d2b9a2820df7f6057">CVC3::ArithProofRules::canonMultTermConst()</a>, <a class="el" href="classCVC3_1_1ArithProofRules.html#a225fe511e6f654f313048e86c1550510">CVC3::ArithProofRules::canonPlus()</a>, <a class="el" href="classCVC3_1_1ArithProofRules.html#ad0b23fb01a7adea349c8958059b9f7fd">CVC3::ArithProofRules::clashingBounds()</a>, <a class="el" href="theory__arith__new_8h_source.html#l00047">d_rules</a>, <a class="el" href="theorem_8cpp_source.html#l00230">CVC3::Theorem::getExpr()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l03098">getLowerBoundThm()</a>, <a class="el" href="expr_8h_source.html#l01135">CVC3::Expr::getRational()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l03107">getUpperBoundThm()</a>, <a class="el" href="theory_8h_source.html#l00714">CVC3::Theory::iffMP()</a>, <a class="el" href="classCVC3_1_1ArithProofRules.html#a70e83cfbc207a5d15fedd4adde7e9e76">CVC3::ArithProofRules::multIneqn()</a>, <a class="el" href="theory_8h_source.html#l00686">CVC3::Theory::substitutivityRule()</a>, and <a class="el" href="theory_8h_source.html#l00677">CVC3::Theory::symmetryRule()</a>.</p>

<p>Referenced by <a class="el" href="theory__arith__new_8cpp_source.html#l02916">checkSatSimplex()</a>.</p>

</div>
</div>
<a class="anchor" id="a6bbd3291d090682e1c8a2cadb0d8380d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> TheoryArithNew::getUpperBoundExplanation </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classHash_1_1hash__map.html#a0fae180472ddfd8822c881caf23c11a9">TebleauxMap::iterator</a> &amp;&#160;</td>
          <td class="paramname"><em>var_it</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Knowing that the tableaux row for <img class="formulaInl" alt="$x_i$" src="form_172.png"/> is the problematic one, generate the explanation clause. The variables in the row of <img class="formulaInl" alt="$x_i = \sum_{x_j \in \mathcal{N}}{a_ij x_j}$" src="form_270.png"/> are separated to </p>
<ul>
<li>
<img class="formulaInl" alt="$\mathcal{N}^+ = \left\lbrace x_j \in \mathcal{N} \; | \; a_{ij} > 0 \right\rbrace$" src="form_271.png"/> </li>
<li>
<img class="formulaInl" alt="$\mathcal{N}^- = \left\lbrace x_j \in \mathcal{N} \; | \; a_{ij} < 0\right\rbrace$" src="form_272.png"/> </li>
</ul>
<p>Then, the explanation clause to be returned is </p>
<p class="formulaDsp">
<img class="formulaDsp" alt="\[\Gamma = \left\lbrace x_j \leq u_j \; | \; x_j \in \mathcal{N}^-\right\rbrace \cup \left\lbrace l_j \leq x_j \; | \; x_j \in \mathcal{N}^+\right\rbrace \cup \left\lbrace x_i \leq u_i \right\rbrace\]" src="form_274.png"/>
</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">var_it</td><td>the variable that caused the clash </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the theorem explainang the clash </dd></dl>

<p>Definition at line <a class="el" href="theory__arith__new_8cpp_source.html#l03749">3749</a> of file <a class="el" href="theory__arith__new_8cpp_source.html">theory_arith_new.cpp</a>.</p>

<p>References <a class="el" href="classCVC3_1_1ArithProofRules.html#ac06dd83948d0f3e474f073ecac592343">CVC3::ArithProofRules::addInequalities()</a>, <a class="el" href="expr_8h_source.html#l01201">CVC3::Expr::arity()</a>, <a class="el" href="classCVC3_1_1ArithProofRules.html#a71be38a9fa2d89e147ac4fde35c49e21">CVC3::ArithProofRules::canonMultConstConst()</a>, <a class="el" href="classCVC3_1_1ArithProofRules.html#a11870b90dbfcc61d2b9a2820df7f6057">CVC3::ArithProofRules::canonMultTermConst()</a>, <a class="el" href="classCVC3_1_1ArithProofRules.html#a225fe511e6f654f313048e86c1550510">CVC3::ArithProofRules::canonPlus()</a>, <a class="el" href="classCVC3_1_1ArithProofRules.html#ad0b23fb01a7adea349c8958059b9f7fd">CVC3::ArithProofRules::clashingBounds()</a>, <a class="el" href="theory__arith__new_8h_source.html#l00047">d_rules</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l03117">getBeta()</a>, <a class="el" href="theorem_8cpp_source.html#l00230">CVC3::Theorem::getExpr()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l03098">getLowerBoundThm()</a>, <a class="el" href="expr_8h_source.html#l01135">CVC3::Expr::getRational()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l03107">getUpperBoundThm()</a>, <a class="el" href="theory_8h_source.html#l00714">CVC3::Theory::iffMP()</a>, <a class="el" href="classCVC3_1_1ArithProofRules.html#a70e83cfbc207a5d15fedd4adde7e9e76">CVC3::ArithProofRules::multIneqn()</a>, <a class="el" href="theory_8h_source.html#l00686">CVC3::Theory::substitutivityRule()</a>, <a class="el" href="theory_8h_source.html#l00677">CVC3::Theory::symmetryRule()</a>, and <a class="el" href="kinds_8h_source.html#l00099">TRACE</a>.</p>

<p>Referenced by <a class="el" href="theory__arith__new_8cpp_source.html#l02916">checkSatSimplex()</a>.</p>

</div>
</div>
<a class="anchor" id="a5402887425b9a029f2ae0718c5012cb2"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> CVC3::TheoryArithNew::addInequalities </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>le_1</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>le_2</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="ab67b64c7fd085bd9881aa7cef33217de"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="namespaceCVC3.html#a060d21b3207cc3471e24f8dbcff3498b">QueryResult</a> TheoryArithNew::checkSatSimplex </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Check the satisfiability </p>

<p>Definition at line <a class="el" href="theory__arith__new_8cpp_source.html#l02916">2916</a> of file <a class="el" href="theory__arith__new_8cpp_source.html">theory_arith_new.cpp</a>.</p>

<p>References <a class="el" href="expr_8h_source.html#l01201">CVC3::Expr::arity()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l03388">boundsAsString()</a>, <a class="el" href="theory__arith__new_8h_source.html#l00530">explanation</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="theory__arith__new_8cpp_source.html#l03117">getBeta()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l03082">getLowerBound()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l03662">getLowerBoundExplanation()</a>, <a class="el" href="expr_8h_source.html#l01135">CVC3::Expr::getRational()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l03090">getUpperBound()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l03749">getUpperBoundExplanation()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l02675">pivotAndUpdate()</a>, <a class="el" href="queryresult_8h_source.html#l00033">CVC3::SATISFIABLE</a>, <a class="el" href="hash__map_8h_source.html#l00227">Hash::hash_map&lt; _Key, _Data, _HashFcn, _EqualKey &gt;::size()</a>, <a class="el" href="theory__arith__new_8h_source.html#l00622">tableaux</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l03343">tableauxAsString()</a>, <a class="el" href="kinds_8h_source.html#l00099">TRACE</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l03365">unsatAsString()</a>, <a class="el" href="theory__arith__new_8h_source.html#l00628">unsatBasicVariables</a>, and <a class="el" href="queryresult_8h_source.html#l00036">CVC3::UNSATISFIABLE</a>.</p>

<p>Referenced by <a class="el" href="theory__arith__new_8cpp_source.html#l02830">checkSat()</a>.</p>

</div>
</div>
<a class="anchor" id="a7b516a72d54789b1403b8854b83aeb29"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="namespaceCVC3.html#a060d21b3207cc3471e24f8dbcff3498b">QueryResult</a> TheoryArithNew::checkSatInteger </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Check the satisfiability of integer constraints </p>

<p>Definition at line <a class="el" href="theory__arith__new_8cpp_source.html#l02868">2868</a> of file <a class="el" href="theory__arith__new_8cpp_source.html">theory_arith_new.cpp</a>.</p>

<p>References <a class="el" href="theory__arith__new_8h_source.html#l00609">beta</a>, <a class="el" href="theory__arith__new_8h_source.html#l00047">d_rules</a>, <a class="el" href="theory_8cpp_source.html#l00128">CVC3::Theory::enqueueFact()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l03117">getBeta()</a>, <a class="el" href="theory__arith__new_8h_source.html#l00325">CVC3::TheoryArithNew::EpsRational::getFloor()</a>, <a class="el" href="theory__arith__new_8h_source.html#l00914">integer_lemma</a>, <a class="el" href="classCVC3_1_1ArithProofRules.html#a0090e0d4065efbf936ec92f0e99935e9">CVC3::ArithProofRules::integerSplit()</a>, <a class="el" href="theory__arith__new_8h_source.html#l00502">intVariables</a>, <a class="el" href="theory__arith__new_8h_source.html#l00189">isInteger()</a>, <a class="el" href="theory__arith__new_8h_source.html#l00312">CVC3::TheoryArithNew::EpsRational::isInteger()</a>, <a class="el" href="queryresult_8h_source.html#l00033">CVC3::SATISFIABLE</a>, <a class="el" href="kinds_8h_source.html#l00099">TRACE</a>, and <a class="el" href="queryresult_8h_source.html#l00038">CVC3::UNKNOWN</a>.</p>

</div>
</div>
<a class="anchor" id="ad4e8b908bccb2d534552f968bd27979c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1TheoryArithNew_1_1EpsRational.html">TheoryArithNew::EpsRational</a> TheoryArithNew::getLowerBound </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>x</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Gets the current lower bound on variable x.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">x</td><td>the variable </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the current lower bound on x </dd></dl>

<p>Definition at line <a class="el" href="theory__arith__new_8cpp_source.html#l03082">3082</a> of file <a class="el" href="theory__arith__new_8cpp_source.html">theory_arith_new.cpp</a>.</p>

<p>References <a class="el" href="cdmap_8h_source.html#l00258">CVC3::CDMap&lt; Key, Data, HashFcn &gt;::end()</a>, <a class="el" href="cdmap_8h_source.html#l00303">CVC3::CDMap&lt; Key, Data, HashFcn &gt;::find()</a>, <a class="el" href="theory_8cpp_source.html#l00310">CVC3::Theory::find()</a>, <a class="el" href="theory__arith__new_8h_source.html#l00605">lowerBound</a>, and <a class="el" href="theory__arith__new_8h_source.html#l00345">CVC3::TheoryArithNew::EpsRational::MinusInfinity</a>.</p>

<p>Referenced by <a class="el" href="theory__arith__new_8cpp_source.html#l03138">assertFact()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l02777">assertLower()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l02740">assertUpper()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l03388">boundsAsString()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l02916">checkSatSimplex()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l03117">getBeta()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l02675">pivotAndUpdate()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l02628">update()</a>, and <a class="el" href="theory__arith__new_8cpp_source.html#l03323">updateValue()</a>.</p>

</div>
</div>
<a class="anchor" id="a7fcc9a229fd6125188d69f4bc282cdfb"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1TheoryArithNew_1_1EpsRational.html">TheoryArithNew::EpsRational</a> TheoryArithNew::getUpperBound </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>x</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Get the current upper bound on variable x.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">x</td><td>the variable </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the current upper bound on x </dd></dl>

<p>Definition at line <a class="el" href="theory__arith__new_8cpp_source.html#l03090">3090</a> of file <a class="el" href="theory__arith__new_8cpp_source.html">theory_arith_new.cpp</a>.</p>

<p>References <a class="el" href="cdmap_8h_source.html#l00258">CVC3::CDMap&lt; Key, Data, HashFcn &gt;::end()</a>, <a class="el" href="cdmap_8h_source.html#l00303">CVC3::CDMap&lt; Key, Data, HashFcn &gt;::find()</a>, <a class="el" href="theory_8cpp_source.html#l00310">CVC3::Theory::find()</a>, <a class="el" href="theory__arith__new_8h_source.html#l00343">CVC3::TheoryArithNew::EpsRational::PlusInfinity</a>, and <a class="el" href="theory__arith__new_8h_source.html#l00607">upperBound</a>.</p>

<p>Referenced by <a class="el" href="theory__arith__new_8cpp_source.html#l03138">assertFact()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l02777">assertLower()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l02740">assertUpper()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l03388">boundsAsString()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l02916">checkSatSimplex()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l03117">getBeta()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l02675">pivotAndUpdate()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l02628">update()</a>, and <a class="el" href="theory__arith__new_8cpp_source.html#l03323">updateValue()</a>.</p>

</div>
</div>
<a class="anchor" id="ab27c747e527f4e6a9f0bc39692a706af"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> TheoryArithNew::getLowerBoundThm </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>x</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Gets the theorem of the current lower bound on variable x.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">x</td><td>the variable </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the current lower bound on x </dd></dl>

<p>Definition at line <a class="el" href="theory__arith__new_8cpp_source.html#l03098">3098</a> of file <a class="el" href="theory__arith__new_8cpp_source.html">theory_arith_new.cpp</a>.</p>

<p>References <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="cdmap_8h_source.html#l00258">CVC3::CDMap&lt; Key, Data, HashFcn &gt;::end()</a>, <a class="el" href="cdmap_8h_source.html#l00303">CVC3::CDMap&lt; Key, Data, HashFcn &gt;::find()</a>, <a class="el" href="theory_8cpp_source.html#l00310">CVC3::Theory::find()</a>, <a class="el" href="theory__arith__new_8h_source.html#l00605">lowerBound</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

<p>Referenced by <a class="el" href="theory__arith__new_8cpp_source.html#l02740">assertUpper()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l03662">getLowerBoundExplanation()</a>, and <a class="el" href="theory__arith__new_8cpp_source.html#l03749">getUpperBoundExplanation()</a>.</p>

</div>
</div>
<a class="anchor" id="ab41d31e40d053398a37f77a7a797c7a7"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> TheoryArithNew::getUpperBoundThm </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>x</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Get the theorem of the current upper bound on variable x.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">x</td><td>the variable </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the current upper bound on x </dd></dl>

<p>Definition at line <a class="el" href="theory__arith__new_8cpp_source.html#l03107">3107</a> of file <a class="el" href="theory__arith__new_8cpp_source.html">theory_arith_new.cpp</a>.</p>

<p>References <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="cdmap_8h_source.html#l00258">CVC3::CDMap&lt; Key, Data, HashFcn &gt;::end()</a>, <a class="el" href="cdmap_8h_source.html#l00303">CVC3::CDMap&lt; Key, Data, HashFcn &gt;::find()</a>, <a class="el" href="theory_8cpp_source.html#l00310">CVC3::Theory::find()</a>, <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>, and <a class="el" href="theory__arith__new_8h_source.html#l00607">upperBound</a>.</p>

<p>Referenced by <a class="el" href="theory__arith__new_8cpp_source.html#l02777">assertLower()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l03662">getLowerBoundExplanation()</a>, and <a class="el" href="theory__arith__new_8cpp_source.html#l03749">getUpperBoundExplanation()</a>.</p>

</div>
</div>
<a class="anchor" id="a41dbe160161458e73fa669fe891ec529"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1TheoryArithNew_1_1EpsRational.html">TheoryArithNew::EpsRational</a> TheoryArithNew::getBeta </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>x</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Gets the current valuation of variable x (beta).</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">x</td><td>the variable </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the current value of variable x </dd></dl>

<p>Definition at line <a class="el" href="theory__arith__new_8cpp_source.html#l03117">3117</a> of file <a class="el" href="theory__arith__new_8cpp_source.html">theory_arith_new.cpp</a>.</p>

<p>References <a class="el" href="theory__arith__new_8h_source.html#l00609">beta</a>, <a class="el" href="cdmap_8h_source.html#l00258">CVC3::CDMap&lt; Key, Data, HashFcn &gt;::end()</a>, <a class="el" href="cdmap_8h_source.html#l00303">CVC3::CDMap&lt; Key, Data, HashFcn &gt;::find()</a>, <a class="el" href="theory_8cpp_source.html#l00310">CVC3::Theory::find()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l03082">getLowerBound()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l03090">getUpperBound()</a>, <a class="el" href="theory__arith__new_8h_source.html#l00628">unsatBasicVariables</a>, and <a class="el" href="theory__arith__new_8h_source.html#l00347">CVC3::TheoryArithNew::EpsRational::Zero</a>.</p>

<p>Referenced by <a class="el" href="theory__arith__new_8cpp_source.html#l02777">assertLower()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l02740">assertUpper()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l03388">boundsAsString()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l02868">checkSatInteger()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l02916">checkSatSimplex()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l04105">deriveGomoryCut()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l03749">getUpperBoundExplanation()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l02675">pivotAndUpdate()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l02628">update()</a>, and <a class="el" href="theory__arith__new_8cpp_source.html#l03323">updateValue()</a>.</p>

</div>
</div>
<h2 class="groupheader">Friends And Related Function Documentation</h2>
<a class="anchor" id="a24b0687e8f0fa36a6d5bacc8155517e2"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::ostream&amp; operator&lt;&lt; </td>
          <td>(</td>
          <td class="paramtype">std::ostream &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_1TheoryArithNew_1_1FreeConst.html">FreeConst</a> &amp;&#160;</td>
          <td class="paramname"><em>fc</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">friend</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Printing. </p>

<p>Definition at line <a class="el" href="theory__arith__new_8cpp_source.html#l00044">44</a> of file <a class="el" href="theory__arith__new_8cpp_source.html">theory_arith_new.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a588ea1b8e9435f2a0fa0fbfe028fbd28"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::ostream&amp; operator&lt;&lt; </td>
          <td>(</td>
          <td class="paramtype">std::ostream &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_1TheoryArithNew_1_1Ineq.html">Ineq</a> &amp;&#160;</td>
          <td class="paramname"><em>ineq</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">friend</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Printing. </p>

<p>Definition at line <a class="el" href="theory__arith__new_8cpp_source.html#l00054">54</a> of file <a class="el" href="theory__arith__new_8cpp_source.html">theory_arith_new.cpp</a>.</p>

</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a class="anchor" id="a7f402d265d6f783bbc4139ba3dddd9db"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <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; CVC3::TheoryArithNew::d_diseq</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>For concrete model generation </p>

<p>Definition at line <a class="el" href="theory__arith__new_8h_source.html#l00044">44</a> of file <a class="el" href="theory__arith__new_8h_source.html">theory_arith_new.h</a>.</p>

<p>Referenced by <a class="el" href="theory__arith__new_8cpp_source.html#l01055">TheoryArithNew()</a>.</p>

</div>
</div>
<a class="anchor" id="a40a1d8f8e7d2faf4ddffe3ca14a90e88"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1CDO.html">CDO</a>&lt;size_t&gt; CVC3::TheoryArithNew::d_diseqIdx</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Index to the next unprocessed disequality </p>

<p>Definition at line <a class="el" href="theory__arith__new_8h_source.html#l00046">46</a> of file <a class="el" href="theory__arith__new_8h_source.html">theory_arith_new.h</a>.</p>

</div>
</div>
<a class="anchor" id="a1fb30358f2875620fef664227f0d3d5e"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1ArithProofRules.html">ArithProofRules</a>* CVC3::TheoryArithNew::d_rules</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="theory__arith__new_8h_source.html#l00047">47</a> of file <a class="el" href="theory__arith__new_8h_source.html">theory_arith_new.h</a>.</p>

<p>Referenced by <a class="el" href="theory__arith__new_8cpp_source.html#l03138">assertFact()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l02777">assertLower()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l02740">assertUpper()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l02868">checkSatInteger()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l03662">getLowerBoundExplanation()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l03749">getUpperBoundExplanation()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l01468">normalize()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l03600">pivotRule()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l01168">processFiniteInterval()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l04000">propagateTheory()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l01541">rafineIntegerConstraints()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l01570">rewrite()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l01055">TheoryArithNew()</a>, and <a class="el" href="theory__arith__new_8cpp_source.html#l01140">~TheoryArithNew()</a>.</p>

</div>
</div>
<a class="anchor" id="ae29425ad828a82acb991db1ab50e8dd7"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1CDO.html">CDO</a>&lt;bool&gt; CVC3::TheoryArithNew::d_inModelCreation</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="theory__arith__new_8h_source.html#l00048">48</a> of file <a class="el" href="theory__arith__new_8h_source.html">theory_arith_new.h</a>.</p>

<p>Referenced by <a class="el" href="theory__arith__new_8cpp_source.html#l01433">computeModelBasic()</a>, and <a class="el" href="theory__arith__new_8cpp_source.html#l01298">refineCounterExample()</a>.</p>

</div>
</div>
<a class="anchor" id="acb102f87cd4bcdba4d404a6951eac0aa"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1ExprMap.html">ExprMap</a>&lt;<a class="el" href="classCVC3_1_1CDList.html">CDList</a>&lt;<a class="el" href="classCVC3_1_1TheoryArithNew_1_1Ineq.html">Ineq</a>&gt; *&gt; CVC3::TheoryArithNew::d_inequalitiesRightDB</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Database of inequalities with a variable isolated on the right. </p>

<p>Definition at line <a class="el" href="theory__arith__new_8h_source.html#l00089">89</a> of file <a class="el" href="theory__arith__new_8h_source.html">theory_arith_new.h</a>.</p>

<p>Referenced by <a class="el" href="theory__arith__new_8cpp_source.html#l01348">findBounds()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l01226">processFiniteIntervals()</a>, and <a class="el" href="theory__arith__new_8cpp_source.html#l01140">~TheoryArithNew()</a>.</p>

</div>
</div>
<a class="anchor" id="a74167d750ba8d8cc8b0ec520e8a41894"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1ExprMap.html">ExprMap</a>&lt;<a class="el" href="classCVC3_1_1CDList.html">CDList</a>&lt;<a class="el" href="classCVC3_1_1TheoryArithNew_1_1Ineq.html">Ineq</a>&gt; *&gt; CVC3::TheoryArithNew::d_inequalitiesLeftDB</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Database of inequalities with a variable isolated on the left. </p>

<p>Definition at line <a class="el" href="theory__arith__new_8h_source.html#l00091">91</a> of file <a class="el" href="theory__arith__new_8h_source.html">theory_arith_new.h</a>.</p>

<p>Referenced by <a class="el" href="theory__arith__new_8cpp_source.html#l01348">findBounds()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l01226">processFiniteIntervals()</a>, and <a class="el" href="theory__arith__new_8cpp_source.html#l01140">~TheoryArithNew()</a>.</p>

</div>
</div>
<a class="anchor" id="ab5a2165c11bc6867c349627682291fcf"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1CDMap.html">CDMap</a>&lt;<a class="el" href="classCVC3_1_1Expr.html">Expr</a>, <a class="el" href="classCVC3_1_1TheoryArithNew_1_1FreeConst.html">FreeConst</a>&gt; CVC3::TheoryArithNew::d_freeConstDB</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Mapping of inequalities to the largest/smallest free constant. </p>
<p>The <a class="el" href="classCVC3_1_1Expr.html" title="Data structure of expressions in CVC3.">Expr</a> is the original inequality with the free constant removed and inequality converted to non-strict (for indexing purposes). I.e. ax&lt;c+t becomes ax&lt;=t. This inequality is mapped to a pair&lt;c,strict&gt;, the smallest (largest for c+t&lt;ax) constant among inequalities with the same 'a', 'x', and 't', and a boolean flag indicating whether the strongest inequality is strict. </p>

<p>Definition at line <a class="el" href="theory__arith__new_8h_source.html#l00100">100</a> of file <a class="el" href="theory__arith__new_8h_source.html">theory_arith_new.h</a>.</p>

</div>
</div>
<a class="anchor" id="a2f0dca2d2952728c2556f8d255cfb008"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <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; CVC3::TheoryArithNew::d_buffer</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Buffer of input inequalities. </p>

<p>Definition at line <a class="el" href="theory__arith__new_8h_source.html#l00102">102</a> of file <a class="el" href="theory__arith__new_8h_source.html">theory_arith_new.h</a>.</p>

<p>Referenced by <a class="el" href="theory__arith__new_8cpp_source.html#l01055">TheoryArithNew()</a>.</p>

</div>
</div>
<a class="anchor" id="a9a394c94c0607e645c355489631ed690"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1CDO.html">CDO</a>&lt;size_t&gt; CVC3::TheoryArithNew::d_bufferIdx</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Buffer index of the next unprocessed inequality. </p>

<p>Definition at line <a class="el" href="theory__arith__new_8h_source.html#l00103">103</a> of file <a class="el" href="theory__arith__new_8h_source.html">theory_arith_new.h</a>.</p>

<p>Referenced by <a class="el" href="theory__arith__new_8cpp_source.html#l01055">TheoryArithNew()</a>.</p>

</div>
</div>
<a class="anchor" id="a2f0bafe4d3eddd28d9d9484318c17e45"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const int* CVC3::TheoryArithNew::d_bufferThres</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Threshold when the buffer must be processed. </p>

<p>Definition at line <a class="el" href="theory__arith__new_8h_source.html#l00104">104</a> of file <a class="el" href="theory__arith__new_8h_source.html">theory_arith_new.h</a>.</p>

</div>
</div>
<a class="anchor" id="ad568a72b85a6bc0c70dfe14d279c9360"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1CDMap.html">CDMap</a>&lt;<a class="el" href="classCVC3_1_1Expr.html">Expr</a>, int&gt; CVC3::TheoryArithNew::d_countRight</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Mapping of a variable to the number of inequalities where the variable would be isolated on the right. </p>

<p>Definition at line <a class="el" href="theory__arith__new_8h_source.html#l00108">108</a> of file <a class="el" href="theory__arith__new_8h_source.html">theory_arith_new.h</a>.</p>

</div>
</div>
<a class="anchor" id="add35a93fae75084ae5b77f1995477c77"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1CDMap.html">CDMap</a>&lt;<a class="el" href="classCVC3_1_1Expr.html">Expr</a>, int&gt; CVC3::TheoryArithNew::d_countLeft</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Mapping of a variable to the number of inequalities where the variable would be isolated on the left. </p>

<p>Definition at line <a class="el" href="theory__arith__new_8h_source.html#l00111">111</a> of file <a class="el" href="theory__arith__new_8h_source.html">theory_arith_new.h</a>.</p>

</div>
</div>
<a class="anchor" id="a6d0b6ef62c9feb4df9c71f2c11912b54"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1CDMap.html">CDMap</a>&lt;<a class="el" href="classCVC3_1_1Expr.html">Expr</a>, bool&gt; CVC3::TheoryArithNew::d_sharedTerms</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set of shared terms (for counterexample generation) </p>

<p>Definition at line <a class="el" href="theory__arith__new_8h_source.html#l00113">113</a> of file <a class="el" href="theory__arith__new_8h_source.html">theory_arith_new.h</a>.</p>

<p>Referenced by <a class="el" href="theory__arith__new_8cpp_source.html#l01282">addSharedTerm()</a>, and <a class="el" href="theory__arith__new_8cpp_source.html#l01298">refineCounterExample()</a>.</p>

</div>
</div>
<a class="anchor" id="a7ae009f0e7ba96e071f45d9e1094c522"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1CDMap.html">CDMap</a>&lt;<a class="el" href="classCVC3_1_1Expr.html">Expr</a>, bool&gt; CVC3::TheoryArithNew::d_sharedVars</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set of shared integer variables (i-leaves) </p>

<p>Definition at line <a class="el" href="theory__arith__new_8h_source.html#l00115">115</a> of file <a class="el" href="theory__arith__new_8h_source.html">theory_arith_new.h</a>.</p>

</div>
</div>
<a class="anchor" id="aed79ec63593f899733e76790d28d4a62"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1TheoryArithNew_1_1VarOrderGraph.html">VarOrderGraph</a> CVC3::TheoryArithNew::d_graph</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="theory__arith__new_8h_source.html#l00135">135</a> of file <a class="el" href="theory__arith__new_8h_source.html">theory_arith_new.h</a>.</p>

<p>Referenced by <a class="el" href="theory__arith__new_8cpp_source.html#l01399">assignVariables()</a>.</p>

</div>
</div>
<a class="anchor" id="ae79693c72c0c7236d6d76cab2a4dcc0b"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::set&lt;<a class="el" href="classCVC3_1_1Expr.html">Expr</a>&gt; CVC3::TheoryArithNew::intVariables</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>A set of all integer variables </p>

<p>Definition at line <a class="el" href="theory__arith__new_8h_source.html#l00502">502</a> of file <a class="el" href="theory__arith__new_8h_source.html">theory_arith_new.h</a>.</p>

<p>Referenced by <a class="el" href="theory__arith__new_8cpp_source.html#l03138">assertFact()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l02868">checkSatInteger()</a>, and <a class="el" href="theory__arith__new_8cpp_source.html#l04105">deriveGomoryCut()</a>.</p>

</div>
</div>
<a class="anchor" id="a5d837dd76fd8ae099ace4c1e6492301d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1CDO.html">CDO</a>&lt;<a class="el" href="namespaceCVC3.html#a060d21b3207cc3471e24f8dbcff3498b">QueryResult</a>&gt; CVC3::TheoryArithNew::consistent</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Are we consistent or not </p>

<p>Definition at line <a class="el" href="theory__arith__new_8h_source.html#l00527">527</a> of file <a class="el" href="theory__arith__new_8h_source.html">theory_arith_new.h</a>.</p>

<p>Referenced by <a class="el" href="theory__arith__new_8cpp_source.html#l02814">assertEqual()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l03138">assertFact()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l02777">assertLower()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l02740">assertUpper()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l02830">checkSat()</a>, and <a class="el" href="theory__arith__new_8cpp_source.html#l01055">TheoryArithNew()</a>.</p>

</div>
</div>
<a class="anchor" id="a26d56a1b473c8e770caba9f3eb85f79a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> CVC3::TheoryArithNew::explanation</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>The theorem explaining the inconsistency </p>

<p>Definition at line <a class="el" href="theory__arith__new_8h_source.html#l00530">530</a> of file <a class="el" href="theory__arith__new_8h_source.html">theory_arith_new.h</a>.</p>

<p>Referenced by <a class="el" href="theory__arith__new_8cpp_source.html#l03138">assertFact()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l02777">assertLower()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l02740">assertUpper()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l02830">checkSat()</a>, and <a class="el" href="theory__arith__new_8cpp_source.html#l02916">checkSatSimplex()</a>.</p>

</div>
</div>
<a class="anchor" id="a9fd0d5eca20607172cb8260a02296e74"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1CDMap.html">CDMap</a>&lt;<a class="el" href="classCVC3_1_1Expr.html">Expr</a>, <a class="el" href="structCVC3_1_1TheoryArithNew_1_1BoundInfo.html">BoundInfo</a>&gt; CVC3::TheoryArithNew::lowerBound</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>The map from variables to lower bounds (these must be backtrackable) </p>

<p>Definition at line <a class="el" href="theory__arith__new_8h_source.html#l00605">605</a> of file <a class="el" href="theory__arith__new_8h_source.html">theory_arith_new.h</a>.</p>

<p>Referenced by <a class="el" href="theory__arith__new_8cpp_source.html#l02777">assertLower()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l03388">boundsAsString()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l03082">getLowerBound()</a>, and <a class="el" href="theory__arith__new_8cpp_source.html#l03098">getLowerBoundThm()</a>.</p>

</div>
</div>
<a class="anchor" id="a485637b86fce6c4a8d53d54e286d2eb8"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1CDMap.html">CDMap</a>&lt;<a class="el" href="classCVC3_1_1Expr.html">Expr</a>, <a class="el" href="structCVC3_1_1TheoryArithNew_1_1BoundInfo.html">BoundInfo</a>&gt; CVC3::TheoryArithNew::upperBound</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>The map from variables to upper bounds (these must be backtrackable) </p>

<p>Definition at line <a class="el" href="theory__arith__new_8h_source.html#l00607">607</a> of file <a class="el" href="theory__arith__new_8h_source.html">theory_arith_new.h</a>.</p>

<p>Referenced by <a class="el" href="theory__arith__new_8cpp_source.html#l02740">assertUpper()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l03388">boundsAsString()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l03090">getUpperBound()</a>, and <a class="el" href="theory__arith__new_8cpp_source.html#l03107">getUpperBoundThm()</a>.</p>

</div>
</div>
<a class="anchor" id="ab75b8a7b5960850c91a39c7713fb2477"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1CDMap.html">CDMap</a>&lt;<a class="el" href="classCVC3_1_1Expr.html">Expr</a>, <a class="el" href="classCVC3_1_1TheoryArithNew_1_1EpsRational.html">EpsRational</a>&gt; CVC3::TheoryArithNew::beta</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>The current real valuation of the variables (these must be backtrackable for the last succesefull checkSAT!!!) </p>

<p>Definition at line <a class="el" href="theory__arith__new_8h_source.html#l00609">609</a> of file <a class="el" href="theory__arith__new_8h_source.html">theory_arith_new.h</a>.</p>

<p>Referenced by <a class="el" href="theory__arith__new_8cpp_source.html#l02868">checkSatInteger()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l03117">getBeta()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l02675">pivotAndUpdate()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l01168">processFiniteInterval()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l02628">update()</a>, and <a class="el" href="theory__arith__new_8cpp_source.html#l03323">updateValue()</a>.</p>

</div>
</div>
<a class="anchor" id="a5fd6d2cc2d018a67da124ef194f178ab"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1TheoryArithNew.html#a3353b432dcd79f2168bfcefc072edb67">DependenciesMap</a> CVC3::TheoryArithNew::dependenciesMap</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Maps variables to sets of variables that depend on it in the tableaux </p>

<p>Definition at line <a class="el" href="theory__arith__new_8h_source.html#l00619">619</a> of file <a class="el" href="theory__arith__new_8h_source.html">theory_arith_new.h</a>.</p>

<p>Referenced by <a class="el" href="theory__arith__new_8cpp_source.html#l02675">pivotAndUpdate()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l03524">substAndCanonizeTableaux()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l02628">update()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l03899">updateDependencies()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l03873">updateDependenciesAdd()</a>, and <a class="el" href="theory__arith__new_8cpp_source.html#l03886">updateDependenciesRemove()</a>.</p>

</div>
</div>
<a class="anchor" id="ad96e0ca1cad09988822b88f82ebdc016"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1TheoryArithNew.html#a159af481e211c2e18dd9280a17ae17a3">TebleauxMap</a> CVC3::TheoryArithNew::tableaux</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>The tableaux, a map from basic variables to the expressions over the non-basic ones (theorems that explain them how we got there) </p>

<p>Definition at line <a class="el" href="theory__arith__new_8h_source.html#l00622">622</a> of file <a class="el" href="theory__arith__new_8h_source.html">theory_arith_new.h</a>.</p>

<p>Referenced by <a class="el" href="theory__arith__new_8cpp_source.html#l03388">boundsAsString()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l02916">checkSatSimplex()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l03038">getTableauxEntry()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l03273">getVariableIntroThm()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l02589">isBasic()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l02594">pivot()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l02675">pivotAndUpdate()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l03447">substAndCanonizeModTableaux()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l03524">substAndCanonizeTableaux()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l03343">tableauxAsString()</a>, and <a class="el" href="theory__arith__new_8cpp_source.html#l02628">update()</a>.</p>

</div>
</div>
<a class="anchor" id="ac7d4a8110239f9c2d6f17c7a46a69d6e"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1TheoryArithNew.html#a159af481e211c2e18dd9280a17ae17a3">TebleauxMap</a> CVC3::TheoryArithNew::freshVariables</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Additional tableaux map from expressions asserted to the corresponding theorems explaining the introduction of the new variables </p>

<p>Definition at line <a class="el" href="theory__arith__new_8h_source.html#l00625">625</a> of file <a class="el" href="theory__arith__new_8h_source.html">theory_arith_new.h</a>.</p>

<p>Referenced by <a class="el" href="theory__arith__new_8cpp_source.html#l03273">getVariableIntroThm()</a>.</p>

</div>
</div>
<a class="anchor" id="a3accb9cf21e2168036e7b365649820fa"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::set&lt;<a class="el" href="classCVC3_1_1Expr.html">Expr</a>&gt; CVC3::TheoryArithNew::unsatBasicVariables</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>A set containing all the unsatisfied basic variables </p>

<p>Definition at line <a class="el" href="theory__arith__new_8h_source.html#l00628">628</a> of file <a class="el" href="theory__arith__new_8h_source.html">theory_arith_new.h</a>.</p>

<p>Referenced by <a class="el" href="theory__arith__new_8cpp_source.html#l02777">assertLower()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l02740">assertUpper()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l02916">checkSatSimplex()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l03117">getBeta()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l02675">pivotAndUpdate()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l03365">unsatAsString()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l02628">update()</a>, and <a class="el" href="theory__arith__new_8cpp_source.html#l03323">updateValue()</a>.</p>

</div>
</div>
<a class="anchor" id="a7ff415cf3c90ddb60ff436d4b0b4c04b"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::vector&lt;<a class="el" href="classCVC3_1_1Expr.html">Expr</a>&gt; CVC3::TheoryArithNew::assertedExpr</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>The vector to keep the assignments from fresh variables to expressions they represent </p>

<p>Definition at line <a class="el" href="theory__arith__new_8h_source.html#l00631">631</a> of file <a class="el" href="theory__arith__new_8h_source.html">theory_arith_new.h</a>.</p>

<p>Referenced by <a class="el" href="theory__arith__new_8cpp_source.html#l03138">assertFact()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l02830">checkSat()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l03273">getVariableIntroThm()</a>, and <a class="el" href="theory__arith__new_8cpp_source.html#l03859">updateFreshVariables()</a>.</p>

</div>
</div>
<a class="anchor" id="a74dc050dee06beacca0e7e32b4585ec0"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1CDO.html">CDO</a>&lt;unsigned int&gt; CVC3::TheoryArithNew::assertedExprCount</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>The backtrackable number of fresh variables asserted so far </p>

<p>Definition at line <a class="el" href="theory__arith__new_8h_source.html#l00633">633</a> of file <a class="el" href="theory__arith__new_8h_source.html">theory_arith_new.h</a>.</p>

<p>Referenced by <a class="el" href="theory__arith__new_8cpp_source.html#l03138">assertFact()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l02830">checkSat()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l03273">getVariableIntroThm()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l01055">TheoryArithNew()</a>, and <a class="el" href="theory__arith__new_8cpp_source.html#l03859">updateFreshVariables()</a>.</p>

</div>
</div>
<a class="anchor" id="ace61ed893b9e6d4b5e8ff19f40e9152a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool CVC3::TheoryArithNew::propagate</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Internal variable to see wheather to propagate or not </p>

<p>Definition at line <a class="el" href="theory__arith__new_8h_source.html#l00639">639</a> of file <a class="el" href="theory__arith__new_8h_source.html">theory_arith_new.h</a>.</p>

<p>Referenced by <a class="el" href="theory__arith__new_8cpp_source.html#l03138">assertFact()</a>, <a class="el" href="theory__arith__new_8cpp_source.html#l02777">assertLower()</a>, and <a class="el" href="theory__arith__new_8cpp_source.html#l02740">assertUpper()</a>.</p>

</div>
</div>
<a class="anchor" id="ae72d6b44b420d4acb2935c00d0b01fec"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1TheoryArithNew.html#a2a34551a41e235972300cd849314c472">BoundInfoSet</a> CVC3::TheoryArithNew::allBounds</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Store all the atoms from the formula in this set. It is searchable by an expression and the bound. To get all the implied atoms, one just has to go up (down) and check if the atom or it's negation are implied. </p>

<p>Definition at line <a class="el" href="theory__arith__new_8h_source.html#l00651">651</a> of file <a class="el" href="theory__arith__new_8h_source.html">theory_arith_new.h</a>.</p>

<p>Referenced by <a class="el" href="theory__arith__new_8cpp_source.html#l04000">propagateTheory()</a>, and <a class="el" href="theory__arith__new_8cpp_source.html#l03953">registerAtom()</a>.</p>

</div>
</div>
<a class="anchor" id="a17aa12461bb0531b62670e37499b38a0"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <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; CVC3::TheoryArithNew::integer_lemma</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>The last lemma that we asserted to check the integer satisfiability. We don't do checksat until the lemma split has been asserted. </p>

<p>Definition at line <a class="el" href="theory__arith__new_8h_source.html#l00914">914</a> of file <a class="el" href="theory__arith__new_8h_source.html">theory_arith_new.h</a>.</p>

<p>Referenced by <a class="el" href="theory__arith__new_8cpp_source.html#l02868">checkSatInteger()</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="theory__arith__new_8h_source.html">theory_arith_new.h</a></li>
<li><a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.cpp</a></li>
<li><a class="el" href="theory__arith__new_8cpp_source.html">theory_arith_new.cpp</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Thu May 16 2013 13:25:18 for CVC3 by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.2
</small></address>
</body>
</html>