Sophie

Sophie

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

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::ArithTheoremProducer3 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_1ArithTheoremProducer3.html">ArithTheoremProducer3</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="#pri-attribs">Private Attributes</a> &#124;
<a href="classCVC3_1_1ArithTheoremProducer3-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">CVC3::ArithTheoremProducer3 Class Reference</div>  </div>
</div><!--header-->
<div class="contents">

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

<p>Inherits <a class="el" href="classCVC3_1_1ArithProofRules.html">CVC3::ArithProofRules</a>, and <a class="el" href="classCVC3_1_1TheoremProducer.html">CVC3::TheoremProducer</a>.</p>
<div class="dynheader">
Collaboration diagram for CVC3::ArithTheoremProducer3:</div>
<div class="dyncontent">
<div class="center"><img src="classCVC3_1_1ArithTheoremProducer3__coll__graph.gif" border="0" usemap="#CVC3_1_1ArithTheoremProducer3_coll__map" alt="Collaboration graph"/></div>
<map name="CVC3_1_1ArithTheoremProducer3_coll__map" id="CVC3_1_1ArithTheoremProducer3_coll__map">
</map>
</div>
<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:a56fb5871062ffe12510c4cd4ba65b745"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1ArithTheoremProducer3.html#a56fb5871062ffe12510c4cd4ba65b745">ArithTheoremProducer3</a> (<a class="el" href="classCVC3_1_1TheoremManager.html">TheoremManager</a> *tm, <a class="el" href="classCVC3_1_1TheoryArith3.html">TheoryArith3</a> *theoryArith)</td></tr>
<tr class="memdesc:a56fb5871062ffe12510c4cd4ba65b745"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor.  <a href="#a56fb5871062ffe12510c4cd4ba65b745"></a><br/></td></tr>
<tr class="separator:a56fb5871062ffe12510c4cd4ba65b745"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4440979f29e7ec3519212ff1e23d758f"><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_1ArithTheoremProducer3.html#a4440979f29e7ec3519212ff1e23d758f">rat</a> (<a class="el" href="classCVC3_1_1Rational.html">Rational</a> r)</td></tr>
<tr class="memdesc:a4440979f29e7ec3519212ff1e23d758f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create <a class="el" href="classCVC3_1_1Expr.html" title="Data structure of expressions in CVC3.">Expr</a> from <a class="el" href="classCVC3_1_1Rational.html">Rational</a> (for convenience)  <a href="#a4440979f29e7ec3519212ff1e23d758f"></a><br/></td></tr>
<tr class="separator:a4440979f29e7ec3519212ff1e23d758f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad010c33575ebd1dc229c2a1526c229c5"><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_1ArithTheoremProducer3.html#ad010c33575ebd1dc229c2a1526c229c5">realType</a> ()</td></tr>
<tr class="separator:ad010c33575ebd1dc229c2a1526c229c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a04f5df44759216fd1182bd745cfc6a82"><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_1ArithTheoremProducer3.html#a04f5df44759216fd1182bd745cfc6a82">intType</a> ()</td></tr>
<tr class="separator:a04f5df44759216fd1182bd745cfc6a82"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afe495b6c58dd0c89c84b64c5194eeeaa"><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_1ArithTheoremProducer3.html#afe495b6c58dd0c89c84b64c5194eeeaa">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:afe495b6c58dd0c89c84b64c5194eeeaa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Construct the dark shadow expression representing lhs &lt;= rhs.  <a href="#afe495b6c58dd0c89c84b64c5194eeeaa"></a><br/></td></tr>
<tr class="separator:afe495b6c58dd0c89c84b64c5194eeeaa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab34039c1fcdbf7701cd0541dce2575c8"><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_1ArithTheoremProducer3.html#ab34039c1fcdbf7701cd0541dce2575c8">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:ab34039c1fcdbf7701cd0541dce2575c8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Construct the gray shadow expression representing c1 &lt;= v - e &lt;= c2.  <a href="#ab34039c1fcdbf7701cd0541dce2575c8"></a><br/></td></tr>
<tr class="separator:ab34039c1fcdbf7701cd0541dce2575c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a23340f90880cb869fdcfe6e69a7a2631"><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_1ArithTheoremProducer3.html#a23340f90880cb869fdcfe6e69a7a2631">varToMult</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="memdesc:a23340f90880cb869fdcfe6e69a7a2631"><td class="mdescLeft">&#160;</td><td class="mdescRight">==&gt; e = 1 * e  <a href="#a23340f90880cb869fdcfe6e69a7a2631"></a><br/></td></tr>
<tr class="separator:a23340f90880cb869fdcfe6e69a7a2631"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a878e091ad5cfd2877ddce73d6f664e16"><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_1ArithTheoremProducer3.html#a878e091ad5cfd2877ddce73d6f664e16">uMinusToMult</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="memdesc:a878e091ad5cfd2877ddce73d6f664e16"><td class="mdescLeft">&#160;</td><td class="mdescRight">==&gt; -(e) = (-1) * e  <a href="#a878e091ad5cfd2877ddce73d6f664e16"></a><br/></td></tr>
<tr class="separator:a878e091ad5cfd2877ddce73d6f664e16"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab0d610d377cc20e3ce16823713d25403"><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_1ArithTheoremProducer3.html#ab0d610d377cc20e3ce16823713d25403">minusToPlus</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;x, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;y)</td></tr>
<tr class="memdesc:ab0d610d377cc20e3ce16823713d25403"><td class="mdescLeft">&#160;</td><td class="mdescRight">==&gt; x - y = x + (-1) * y  <a href="#ab0d610d377cc20e3ce16823713d25403"></a><br/></td></tr>
<tr class="separator:ab0d610d377cc20e3ce16823713d25403"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9bf439248afb24bb63ea435193b68524"><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_1ArithTheoremProducer3.html#a9bf439248afb24bb63ea435193b68524">canonUMinusToDivide</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="memdesc:a9bf439248afb24bb63ea435193b68524"><td class="mdescLeft">&#160;</td><td class="mdescRight">-(e) ==&gt; e / (-1); takes 'e'  <a href="#a9bf439248afb24bb63ea435193b68524"></a><br/></td></tr>
<tr class="separator:a9bf439248afb24bb63ea435193b68524"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3a2bf5e3b8c71543b1512f1606825a02"><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_1ArithTheoremProducer3.html#a3a2bf5e3b8c71543b1512f1606825a02">canonDivideConst</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;c, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;d)</td></tr>
<tr class="memdesc:a3a2bf5e3b8c71543b1512f1606825a02"><td class="mdescLeft">&#160;</td><td class="mdescRight">(c) / d ==&gt; (c/d), takes c and d  <a href="#a3a2bf5e3b8c71543b1512f1606825a02"></a><br/></td></tr>
<tr class="separator:a3a2bf5e3b8c71543b1512f1606825a02"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a39a2efadcc13383fd860340c6d76db54"><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_1ArithTheoremProducer3.html#a39a2efadcc13383fd860340c6d76db54">canonDivideMult</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;cx, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;d)</td></tr>
<tr class="memdesc:a39a2efadcc13383fd860340c6d76db54"><td class="mdescLeft">&#160;</td><td class="mdescRight">(c * x) / d ==&gt; (c/d) * x, takes (c*x) and d  <a href="#a39a2efadcc13383fd860340c6d76db54"></a><br/></td></tr>
<tr class="separator:a39a2efadcc13383fd860340c6d76db54"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a897c950b6bb741189f1c33752159b587"><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_1ArithTheoremProducer3.html#a897c950b6bb741189f1c33752159b587">canonDividePlus</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;d)</td></tr>
<tr class="memdesc:a897c950b6bb741189f1c33752159b587"><td class="mdescLeft">&#160;</td><td class="mdescRight">(+ c ...)/d ==&gt; push division to all the coefficients.  <a href="#a897c950b6bb741189f1c33752159b587"></a><br/></td></tr>
<tr class="separator:a897c950b6bb741189f1c33752159b587"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9fddb49ed54796e6a5487be554eb14f4"><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_1ArithTheoremProducer3.html#a9fddb49ed54796e6a5487be554eb14f4">canonDivideVar</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:a9fddb49ed54796e6a5487be554eb14f4"><td class="mdescLeft">&#160;</td><td class="mdescRight">x / d ==&gt; (1/d) * x, takes x and d  <a href="#a9fddb49ed54796e6a5487be554eb14f4"></a><br/></td></tr>
<tr class="separator:a9fddb49ed54796e6a5487be554eb14f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aea589889127864f327d4d71800f096b7"><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_1ArithTheoremProducer3.html#aea589889127864f327d4d71800f096b7">simplifiedMultExpr</a> (std::vector&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;mulKids)</td></tr>
<tr class="separator:aea589889127864f327d4d71800f096b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad49508debdf58df9d8333cd140c850a3"><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_1ArithTheoremProducer3.html#ad49508debdf58df9d8333cd140c850a3">canonMultConstMult</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;c, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="separator:ad49508debdf58df9d8333cd140c850a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a747b71c44a0bad76328039a2fc123363"><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_1ArithTheoremProducer3.html#a747b71c44a0bad76328039a2fc123363">canonMultConstPlus</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="separator:a747b71c44a0bad76328039a2fc123363"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae709408bffa6ff2016619a05febe63f5"><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_1ArithTheoremProducer3.html#ae709408bffa6ff2016619a05febe63f5">canonMultPowPow</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="separator:ae709408bffa6ff2016619a05febe63f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1765748e34d12d99b3bdf57f3ba49d49"><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_1ArithTheoremProducer3.html#a1765748e34d12d99b3bdf57f3ba49d49">canonMultPowLeaf</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="separator:a1765748e34d12d99b3bdf57f3ba49d49"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad9ff33794685a95c453d41bf1fd9d0aa"><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_1ArithTheoremProducer3.html#ad9ff33794685a95c453d41bf1fd9d0aa">canonMultLeafLeaf</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="separator:ad9ff33794685a95c453d41bf1fd9d0aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9bf1d7c7d567deab2e5decc8c4e82fdc"><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_1ArithTheoremProducer3.html#a9bf1d7c7d567deab2e5decc8c4e82fdc">canonMultLeafOrPowMult</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="separator:a9bf1d7c7d567deab2e5decc8c4e82fdc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af61545eb36910fba4fa1b69e6febb354"><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_1ArithTheoremProducer3.html#af61545eb36910fba4fa1b69e6febb354">canonCombineLikeTerms</a> (const std::vector&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;sumExprs)</td></tr>
<tr class="separator:af61545eb36910fba4fa1b69e6febb354"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad5dec14920bc52be7b9fdfb458ba2e1b"><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_1ArithTheoremProducer3.html#ad5dec14920bc52be7b9fdfb458ba2e1b">canonMultLeafOrPowOrMultPlus</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="separator:ad5dec14920bc52be7b9fdfb458ba2e1b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab327e6f313e952c0380fe7460bd7d36c"><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_1ArithTheoremProducer3.html#ab327e6f313e952c0380fe7460bd7d36c">canonMultPlusPlus</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="separator:ab327e6f313e952c0380fe7460bd7d36c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa1ab000ca8a6a2605b2cb57f8b881d91"><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_1ArithTheoremProducer3.html#aa1ab000ca8a6a2605b2cb57f8b881d91">canonMultMtermMterm</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="separator:aa1ab000ca8a6a2605b2cb57f8b881d91"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acbd2c2b8d5a0728aa00dcf55c7c646f2"><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_1ArithTheoremProducer3.html#acbd2c2b8d5a0728aa00dcf55c7c646f2">canonPlus</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="memdesc:acbd2c2b8d5a0728aa00dcf55c7c646f2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Canonize (PLUS t1 ... tn)  <a href="#acbd2c2b8d5a0728aa00dcf55c7c646f2"></a><br/></td></tr>
<tr class="separator:acbd2c2b8d5a0728aa00dcf55c7c646f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:addd3884d42a6e4637e9bda79d4af6574"><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_1ArithTheoremProducer3.html#addd3884d42a6e4637e9bda79d4af6574">canonInvertConst</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="separator:addd3884d42a6e4637e9bda79d4af6574"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a84b1ec96629fa2ae52792a582ba7a63a"><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_1ArithTheoremProducer3.html#a84b1ec96629fa2ae52792a582ba7a63a">canonInvertLeaf</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="separator:a84b1ec96629fa2ae52792a582ba7a63a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a02b89064723281b69105ce11ecaf80c7"><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_1ArithTheoremProducer3.html#a02b89064723281b69105ce11ecaf80c7">canonInvertPow</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="separator:a02b89064723281b69105ce11ecaf80c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a94090722e5ab797e97cdb14458c40742"><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_1ArithTheoremProducer3.html#a94090722e5ab797e97cdb14458c40742">canonInvertMult</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="separator:a94090722e5ab797e97cdb14458c40742"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1a4b78b01763b1ca5a80c0211bc3ba4b"><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_1ArithTheoremProducer3.html#a1a4b78b01763b1ca5a80c0211bc3ba4b">canonInvert</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="memdesc:a1a4b78b01763b1ca5a80c0211bc3ba4b"><td class="mdescLeft">&#160;</td><td class="mdescRight">==&gt; 1/e = e' where e' is canonical; takes e.  <a href="#a1a4b78b01763b1ca5a80c0211bc3ba4b"></a><br/></td></tr>
<tr class="separator:a1a4b78b01763b1ca5a80c0211bc3ba4b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aad289f36b55fe8be7f7af0f62aedaae8"><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_1ArithTheoremProducer3.html#aad289f36b55fe8be7f7af0f62aedaae8">moveSumConstantRight</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="separator:aad289f36b55fe8be7f7af0f62aedaae8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acfe4060947cb28e9fc9c4ea859df565c"><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_1ArithTheoremProducer3.html#acfe4060947cb28e9fc9c4ea859df565c">canonDivide</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="separator:acfe4060947cb28e9fc9c4ea859df565c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a627a219305f83b200e36b28b1865729a"><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_1ArithTheoremProducer3.html#a627a219305f83b200e36b28b1865729a">canonMult</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="separator:a627a219305f83b200e36b28b1865729a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a401fca0c453a94c8c0053eb77e014af0"><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_1ArithTheoremProducer3.html#a401fca0c453a94c8c0053eb77e014af0">canonMultTermConst</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;c, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;t)</td></tr>
<tr class="memdesc:a401fca0c453a94c8c0053eb77e014af0"><td class="mdescLeft">&#160;</td><td class="mdescRight">t*c ==&gt; c*t, takes constant c and term t  <a href="#a401fca0c453a94c8c0053eb77e014af0"></a><br/></td></tr>
<tr class="separator:a401fca0c453a94c8c0053eb77e014af0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a294916be1e9ac30e3c824b0b8e4ff093"><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_1ArithTheoremProducer3.html#a294916be1e9ac30e3c824b0b8e4ff093">canonMultTerm1Term2</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;t1, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;t2)</td></tr>
<tr class="memdesc:a294916be1e9ac30e3c824b0b8e4ff093"><td class="mdescLeft">&#160;</td><td class="mdescRight">t1*t2 ==&gt; Error, takes t1 and t2 where both are non-constants  <a href="#a294916be1e9ac30e3c824b0b8e4ff093"></a><br/></td></tr>
<tr class="separator:a294916be1e9ac30e3c824b0b8e4ff093"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a55fb07d5df2b4068bf5df327ae0d89d4"><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_1ArithTheoremProducer3.html#a55fb07d5df2b4068bf5df327ae0d89d4">canonMultZero</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="memdesc:a55fb07d5df2b4068bf5df327ae0d89d4"><td class="mdescLeft">&#160;</td><td class="mdescRight">0*t ==&gt; 0, takes 0*t  <a href="#a55fb07d5df2b4068bf5df327ae0d89d4"></a><br/></td></tr>
<tr class="separator:a55fb07d5df2b4068bf5df327ae0d89d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aed0a2d1337910f3027ac867e0f18b8de"><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_1ArithTheoremProducer3.html#aed0a2d1337910f3027ac867e0f18b8de">canonMultOne</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="memdesc:aed0a2d1337910f3027ac867e0f18b8de"><td class="mdescLeft">&#160;</td><td class="mdescRight">1*t ==&gt; t, takes 1*t  <a href="#aed0a2d1337910f3027ac867e0f18b8de"></a><br/></td></tr>
<tr class="separator:aed0a2d1337910f3027ac867e0f18b8de"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4ea3884dff8c1606fd05e61eb78e379d"><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_1ArithTheoremProducer3.html#a4ea3884dff8c1606fd05e61eb78e379d">canonMultConstConst</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;c1, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;c2)</td></tr>
<tr class="memdesc:a4ea3884dff8c1606fd05e61eb78e379d"><td class="mdescLeft">&#160;</td><td class="mdescRight">c1*c2 ==&gt; c', takes constant c1*c2  <a href="#a4ea3884dff8c1606fd05e61eb78e379d"></a><br/></td></tr>
<tr class="separator:a4ea3884dff8c1606fd05e61eb78e379d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9e5b7c75f1f662071942150df1a4d69e"><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_1ArithTheoremProducer3.html#a9e5b7c75f1f662071942150df1a4d69e">canonMultConstTerm</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;c1, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;c2, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;t)</td></tr>
<tr class="memdesc:a9e5b7c75f1f662071942150df1a4d69e"><td class="mdescLeft">&#160;</td><td class="mdescRight">c1*(c2*t) ==&gt; c'*t, takes c1 and c2 and t  <a href="#a9e5b7c75f1f662071942150df1a4d69e"></a><br/></td></tr>
<tr class="separator:a9e5b7c75f1f662071942150df1a4d69e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2765c1485aac81cc42ed3186f7a1f244"><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_1ArithTheoremProducer3.html#a2765c1485aac81cc42ed3186f7a1f244">canonMultConstSum</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;c1, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;sum)</td></tr>
<tr class="memdesc:a2765c1485aac81cc42ed3186f7a1f244"><td class="mdescLeft">&#160;</td><td class="mdescRight">c1*(+ c2 v1 ...) ==&gt; (+ c' c1v1 ...), takes c1 and the sum  <a href="#a2765c1485aac81cc42ed3186f7a1f244"></a><br/></td></tr>
<tr class="separator:a2765c1485aac81cc42ed3186f7a1f244"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5347a8208d4d7aa05fad463bd6da8c41"><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_1ArithTheoremProducer3.html#a5347a8208d4d7aa05fad463bd6da8c41">canonPowConst</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;<a class="el" href="namespaceCVC3.html#a28fc84bed3f9bc91ca9967de0f9cfa00">pow</a>)</td></tr>
<tr class="memdesc:a5347a8208d4d7aa05fad463bd6da8c41"><td class="mdescLeft">&#160;</td><td class="mdescRight">c^n = c' (compute the constant power expression)  <a href="#a5347a8208d4d7aa05fad463bd6da8c41"></a><br/></td></tr>
<tr class="separator:a5347a8208d4d7aa05fad463bd6da8c41"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5ec4889e730c0b1d4fb584d16af08a9d"><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_1ArithTheoremProducer3.html#a5ec4889e730c0b1d4fb584d16af08a9d">canonFlattenSum</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="memdesc:a5ec4889e730c0b1d4fb584d16af08a9d"><td class="mdescLeft">&#160;</td><td class="mdescRight">flattens the input. accepts a PLUS expr  <a href="#a5ec4889e730c0b1d4fb584d16af08a9d"></a><br/></td></tr>
<tr class="separator:a5ec4889e730c0b1d4fb584d16af08a9d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a245f64776d0b1fbd14d18bb145f717e4"><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_1ArithTheoremProducer3.html#a245f64776d0b1fbd14d18bb145f717e4">canonComboLikeTerms</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="memdesc:a245f64776d0b1fbd14d18bb145f717e4"><td class="mdescLeft">&#160;</td><td class="mdescRight">combine like terms. accepts a flattened PLUS expr  <a href="#a245f64776d0b1fbd14d18bb145f717e4"></a><br/></td></tr>
<tr class="separator:a245f64776d0b1fbd14d18bb145f717e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a57eafe7c2a127ca4b4706437b777d610"><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_1ArithTheoremProducer3.html#a57eafe7c2a127ca4b4706437b777d610">multEqZero</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;expr)</td></tr>
<tr class="separator:a57eafe7c2a127ca4b4706437b777d610"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acbea7826fe54b91e8d4bc2c21f7137ae"><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_1ArithTheoremProducer3.html#acbea7826fe54b91e8d4bc2c21f7137ae">powEqZero</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;expr)</td></tr>
<tr class="separator:acbea7826fe54b91e8d4bc2c21f7137ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab29b63e40b7f2c624e6e4f11c4eff27e"><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_1ArithTheoremProducer3.html#ab29b63e40b7f2c624e6e4f11c4eff27e">elimPower</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;expr)</td></tr>
<tr class="separator:ab29b63e40b7f2c624e6e4f11c4eff27e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a942f9f0fc0ceff798b607e9fe032175a"><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_1ArithTheoremProducer3.html#a942f9f0fc0ceff798b607e9fe032175a">elimPowerConst</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;expr, const <a class="el" href="classCVC3_1_1Rational.html">Rational</a> &amp;root)</td></tr>
<tr class="separator:a942f9f0fc0ceff798b607e9fe032175a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abe913a6cc9430faf8f0ac50ec51aa36c"><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_1ArithTheoremProducer3.html#abe913a6cc9430faf8f0ac50ec51aa36c">evenPowerEqNegConst</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;expr)</td></tr>
<tr class="separator:abe913a6cc9430faf8f0ac50ec51aa36c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a946832931094bb746277d8b95c471690"><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_1ArithTheoremProducer3.html#a946832931094bb746277d8b95c471690">intEqIrrational</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;expr, const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;<a class="el" href="namespaceCVC3.html#a8b193cc1fee34cb43707171b2ae6471e">isInt</a>)</td></tr>
<tr class="separator:a946832931094bb746277d8b95c471690"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7a2a8059fa49da5a8877b28b1cfa445a"><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_1ArithTheoremProducer3.html#a7a2a8059fa49da5a8877b28b1cfa445a">constPredicate</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="memdesc:a7a2a8059fa49da5a8877b28b1cfa445a"><td class="mdescLeft">&#160;</td><td class="mdescRight">e0 @ e1 &lt;==&gt; true | false, where @ is {=,&lt;,&lt;=,&gt;,&gt;=}  <a href="#a7a2a8059fa49da5a8877b28b1cfa445a"></a><br/></td></tr>
<tr class="separator:a7a2a8059fa49da5a8877b28b1cfa445a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aca76a2dbee73d7ad9e2529ac8ce142a4"><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_1ArithTheoremProducer3.html#aca76a2dbee73d7ad9e2529ac8ce142a4">rightMinusLeft</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="memdesc:aca76a2dbee73d7ad9e2529ac8ce142a4"><td class="mdescLeft">&#160;</td><td class="mdescRight">e[0] @ e[1] &lt;==&gt; 0 @ e[1] - e[0], where @ is {=,&lt;,&lt;=,&gt;,&gt;=}  <a href="#aca76a2dbee73d7ad9e2529ac8ce142a4"></a><br/></td></tr>
<tr class="separator:aca76a2dbee73d7ad9e2529ac8ce142a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aedad2be1c60515921f8c3761581afca5"><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_1ArithTheoremProducer3.html#aedad2be1c60515921f8c3761581afca5">leftMinusRight</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="memdesc:aedad2be1c60515921f8c3761581afca5"><td class="mdescLeft">&#160;</td><td class="mdescRight">e[0] @ e[1] &lt;==&gt; e[0] - e[1] @ 0, where @ is {=,&lt;,&lt;=,&gt;,&gt;=}  <a href="#aedad2be1c60515921f8c3761581afca5"></a><br/></td></tr>
<tr class="separator:aedad2be1c60515921f8c3761581afca5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab190e4d8fefb74f2a8117ca17ae49b48"><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_1ArithTheoremProducer3.html#ab190e4d8fefb74f2a8117ca17ae49b48">plusPredicate</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;x, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;y, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;z, int kind)</td></tr>
<tr class="memdesc:ab190e4d8fefb74f2a8117ca17ae49b48"><td class="mdescLeft">&#160;</td><td class="mdescRight">x @ y &lt;==&gt; x + z @ y + z, where @ is {=,&lt;,&lt;=,&gt;,&gt;=} (given as 'kind')  <a href="#ab190e4d8fefb74f2a8117ca17ae49b48"></a><br/></td></tr>
<tr class="separator:ab190e4d8fefb74f2a8117ca17ae49b48"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afd7a6da45999fb3237cdbbbf9c5f19e8"><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_1ArithTheoremProducer3.html#afd7a6da45999fb3237cdbbbf9c5f19e8">multEqn</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;x, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;y, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;z)</td></tr>
<tr class="memdesc:afd7a6da45999fb3237cdbbbf9c5f19e8"><td class="mdescLeft">&#160;</td><td class="mdescRight">x = y &lt;==&gt; x * z = y * z, where z is a non-zero constant  <a href="#afd7a6da45999fb3237cdbbbf9c5f19e8"></a><br/></td></tr>
<tr class="separator:afd7a6da45999fb3237cdbbbf9c5f19e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7bf31f4d4bd6e3f7ff7e37dd5236a792"><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_1ArithTheoremProducer3.html#a7bf31f4d4bd6e3f7ff7e37dd5236a792">divideEqnNonConst</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;x, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;y, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;z)</td></tr>
<tr class="separator:a7bf31f4d4bd6e3f7ff7e37dd5236a792"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8af6455fe4a8889cfb7b0b8c865b847c"><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_1ArithTheoremProducer3.html#a8af6455fe4a8889cfb7b0b8c865b847c">multIneqn</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;z)</td></tr>
<tr class="memdesc:a8af6455fe4a8889cfb7b0b8c865b847c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Multiplying inequation by a non-zero constant.  <a href="#a8af6455fe4a8889cfb7b0b8c865b847c"></a><br/></td></tr>
<tr class="separator:a8af6455fe4a8889cfb7b0b8c865b847c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad2f144d3a2ffe108e0d8e7df8e263832"><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_1ArithTheoremProducer3.html#ad2f144d3a2ffe108e0d8e7df8e263832">eqToIneq</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="memdesc:ad2f144d3a2ffe108e0d8e7df8e263832"><td class="mdescLeft">&#160;</td><td class="mdescRight">x = y ==&gt; x &lt;= y and x &gt;= y  <a href="#ad2f144d3a2ffe108e0d8e7df8e263832"></a><br/></td></tr>
<tr class="separator:ad2f144d3a2ffe108e0d8e7df8e263832"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a216a950228aad3cdef0c5dd5213be4fb"><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_1ArithTheoremProducer3.html#a216a950228aad3cdef0c5dd5213be4fb">flipInequality</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="memdesc:a216a950228aad3cdef0c5dd5213be4fb"><td class="mdescLeft">&#160;</td><td class="mdescRight">"op1 GE|GT op2" &lt;==&gt; op2 LE|LT op1  <a href="#a216a950228aad3cdef0c5dd5213be4fb"></a><br/></td></tr>
<tr class="separator:a216a950228aad3cdef0c5dd5213be4fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a27bb939c33616b21a83aabdb5d47a660"><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_1ArithTheoremProducer3.html#a27bb939c33616b21a83aabdb5d47a660">negatedInequality</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="memdesc:a27bb939c33616b21a83aabdb5d47a660"><td class="mdescLeft">&#160;</td><td class="mdescRight">Propagating negation over &lt;,&lt;=,&gt;,&gt;=.  <a href="#a27bb939c33616b21a83aabdb5d47a660"></a><br/></td></tr>
<tr class="separator:a27bb939c33616b21a83aabdb5d47a660"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6f08ce700f85f9ba2967ecee42e7a550"><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_1ArithTheoremProducer3.html#a6f08ce700f85f9ba2967ecee42e7a550">realShadow</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;alphaLTt, const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;tLTbeta)</td></tr>
<tr class="memdesc:a6f08ce700f85f9ba2967ecee42e7a550"><td class="mdescLeft">&#160;</td><td class="mdescRight">Real shadow: a &lt;(=) t, t &lt;(=) b ==&gt; a &lt;(=) b.  <a href="#a6f08ce700f85f9ba2967ecee42e7a550"></a><br/></td></tr>
<tr class="separator:a6f08ce700f85f9ba2967ecee42e7a550"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a955e74558aee9ebc9de4c084819e93ac"><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_1ArithTheoremProducer3.html#a955e74558aee9ebc9de4c084819e93ac">realShadowEq</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;alphaLEt, const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;tLEalpha)</td></tr>
<tr class="memdesc:a955e74558aee9ebc9de4c084819e93ac"><td class="mdescLeft">&#160;</td><td class="mdescRight">alpha &lt;= t &lt;= alpha ==&gt; t = alpha  <a href="#a955e74558aee9ebc9de4c084819e93ac"></a><br/></td></tr>
<tr class="separator:a955e74558aee9ebc9de4c084819e93ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaba7798eb77a93ac0de8978507dca731"><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_1ArithTheoremProducer3.html#aaba7798eb77a93ac0de8978507dca731">finiteInterval</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;aLEt, const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;tLEac, const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;isInta, const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;isIntt)</td></tr>
<tr class="memdesc:aaba7798eb77a93ac0de8978507dca731"><td class="mdescLeft">&#160;</td><td class="mdescRight">Finite interval for integers: a &lt;= t &lt;= a + c ==&gt; G(t, a, 0, c)  <a href="#aaba7798eb77a93ac0de8978507dca731"></a><br/></td></tr>
<tr class="separator:aaba7798eb77a93ac0de8978507dca731"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2ad479414c401fb8a4ea9631cbdd95c0"><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_1ArithTheoremProducer3.html#a2ad479414c401fb8a4ea9631cbdd95c0">darkGrayShadow2ab</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;betaLEbx, const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;axLEalpha, const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;isIntAlpha, const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;isIntBeta, const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;<a class="el" href="theory__quant_8cpp.html#ac9940420b1f3427ebe821902adbb578d">isIntx</a>)</td></tr>
<tr class="memdesc:a2ad479414c401fb8a4ea9631cbdd95c0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dark &amp; Gray shadows when a &lt;= b.  <a href="#a2ad479414c401fb8a4ea9631cbdd95c0"></a><br/></td></tr>
<tr class="separator:a2ad479414c401fb8a4ea9631cbdd95c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8b2e8589d24fc69616ba431588c50b3e"><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_1ArithTheoremProducer3.html#a8b2e8589d24fc69616ba431588c50b3e">darkGrayShadow2ba</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;betaLEbx, const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;axLEalpha, const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;isIntAlpha, const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;isIntBeta, const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;<a class="el" href="theory__quant_8cpp.html#ac9940420b1f3427ebe821902adbb578d">isIntx</a>)</td></tr>
<tr class="memdesc:a8b2e8589d24fc69616ba431588c50b3e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dark &amp; Gray shadows when b &lt;= a.  <a href="#a8b2e8589d24fc69616ba431588c50b3e"></a><br/></td></tr>
<tr class="separator:a8b2e8589d24fc69616ba431588c50b3e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a372efa694fb08c901deff55f5f108ffb"><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_1ArithTheoremProducer3.html#a372efa694fb08c901deff55f5f108ffb">expandDarkShadow</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;<a class="el" href="classCVC3_1_1ArithTheoremProducer3.html#afe495b6c58dd0c89c84b64c5194eeeaa">darkShadow</a>)</td></tr>
<tr class="separator:a372efa694fb08c901deff55f5f108ffb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aacc831490c52da277133fe625522216f"><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_1ArithTheoremProducer3.html#aacc831490c52da277133fe625522216f">expandGrayShadow0</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;<a class="el" href="classCVC3_1_1ArithTheoremProducer3.html#ab34039c1fcdbf7701cd0541dce2575c8">grayShadow</a>)</td></tr>
<tr class="memdesc:aacc831490c52da277133fe625522216f"><td class="mdescLeft">&#160;</td><td class="mdescRight">GRAY_SHADOW(v, e, c, c) ==&gt; v=e+c.  <a href="#aacc831490c52da277133fe625522216f"></a><br/></td></tr>
<tr class="separator:aacc831490c52da277133fe625522216f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae609e58a7bee454d0f18dc1465cd2167"><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_1ArithTheoremProducer3.html#ae609e58a7bee454d0f18dc1465cd2167">splitGrayShadow</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;<a class="el" href="classCVC3_1_1ArithTheoremProducer3.html#ab34039c1fcdbf7701cd0541dce2575c8">grayShadow</a>)</td></tr>
<tr class="memdesc:ae609e58a7bee454d0f18dc1465cd2167"><td class="mdescLeft">&#160;</td><td class="mdescRight">G(x, e, c1, c2) ==&gt; (G1 or G2) and (!G1 or !G2)  <a href="#ae609e58a7bee454d0f18dc1465cd2167"></a><br/></td></tr>
<tr class="separator:ae609e58a7bee454d0f18dc1465cd2167"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aab0ccd490624628fa990b1dd473e7e8a"><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_1ArithTheoremProducer3.html#aab0ccd490624628fa990b1dd473e7e8a">splitGrayShadowSmall</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;<a class="el" href="classCVC3_1_1ArithTheoremProducer3.html#ab34039c1fcdbf7701cd0541dce2575c8">grayShadow</a>)</td></tr>
<tr class="separator:aab0ccd490624628fa990b1dd473e7e8a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab9dd38464b6e02af6d7c570119c6aec3"><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_1ArithTheoremProducer3.html#ab9dd38464b6e02af6d7c570119c6aec3">expandGrayShadow</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;<a class="el" href="classCVC3_1_1ArithTheoremProducer3.html#ab34039c1fcdbf7701cd0541dce2575c8">grayShadow</a>)</td></tr>
<tr class="memdesc:ab9dd38464b6e02af6d7c570119c6aec3"><td class="mdescLeft">&#160;</td><td class="mdescRight">G(x, e, c1, c2) ==&gt; e+c1 &lt;= x AND x &lt;= e+c2.  <a href="#ab9dd38464b6e02af6d7c570119c6aec3"></a><br/></td></tr>
<tr class="separator:ab9dd38464b6e02af6d7c570119c6aec3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a43d1cf15faefe439c344508bf60e5e96"><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_1ArithTheoremProducer3.html#a43d1cf15faefe439c344508bf60e5e96">expandGrayShadowConst</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;<a class="el" href="classCVC3_1_1ArithTheoremProducer3.html#ab34039c1fcdbf7701cd0541dce2575c8">grayShadow</a>)</td></tr>
<tr class="memdesc:a43d1cf15faefe439c344508bf60e5e96"><td class="mdescLeft">&#160;</td><td class="mdescRight">Optimized rules: GRAY_SHADOW(a*x, c, c1, c2) ==&gt; [expansion].  <a href="#a43d1cf15faefe439c344508bf60e5e96"></a><br/></td></tr>
<tr class="separator:a43d1cf15faefe439c344508bf60e5e96"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0a5eb9028805dd1ee141713b7c70be77"><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_1ArithTheoremProducer3.html#a0a5eb9028805dd1ee141713b7c70be77">grayShadowConst</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;g)</td></tr>
<tr class="memdesc:a0a5eb9028805dd1ee141713b7c70be77"><td class="mdescLeft">&#160;</td><td class="mdescRight">|- G(ax, c, c1, c2) ==&gt; |- G(x, 0, ceil((c1+c)/a), floor((c2+c)/a))  <a href="#a0a5eb9028805dd1ee141713b7c70be77"></a><br/></td></tr>
<tr class="separator:a0a5eb9028805dd1ee141713b7c70be77"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afa3e14a6cb004a107d915df0088ed16c"><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_1ArithTheoremProducer3.html#afa3e14a6cb004a107d915df0088ed16c">constRHSGrayShadow</a> (const <a class="el" href="classCVC3_1_1Rational.html">Rational</a> &amp;c, const <a class="el" href="classCVC3_1_1Rational.html">Rational</a> &amp;b, const <a class="el" href="classCVC3_1_1Rational.html">Rational</a> &amp;a)</td></tr>
<tr class="memdesc:afa3e14a6cb004a107d915df0088ed16c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements j(c,b,a)  <a href="#afa3e14a6cb004a107d915df0088ed16c"></a><br/></td></tr>
<tr class="separator:afa3e14a6cb004a107d915df0088ed16c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a91447c7423622c037a2956114fd549f4"><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_1ArithTheoremProducer3.html#a91447c7423622c037a2956114fd549f4">lessThanToLE</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;less, const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;isIntLHS, const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;isIntRHS, bool changeRight)</td></tr>
<tr class="separator:a91447c7423622c037a2956114fd549f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a55c056040dc960b598706a94650acccb"><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_1ArithTheoremProducer3.html#a55c056040dc960b598706a94650acccb">lessThanToLERewrite</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;ineq, const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;isIntLHS, const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;isIntRHS, bool changeRight)</td></tr>
<tr class="separator:a55c056040dc960b598706a94650acccb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a608b3a7da8f2824d3cc8188d7606396e"><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_1ArithTheoremProducer3.html#a608b3a7da8f2824d3cc8188d7606396e">intVarEqnConst</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;eqn, const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;<a class="el" href="theory__quant_8cpp.html#ac9940420b1f3427ebe821902adbb578d">isIntx</a>)</td></tr>
<tr class="separator:a608b3a7da8f2824d3cc8188d7606396e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad2438a34ff1edb7268495d4105cb6c9c"><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_1ArithTheoremProducer3.html#ad2438a34ff1edb7268495d4105cb6c9c">IsIntegerElim</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;<a class="el" href="theory__quant_8cpp.html#ac9940420b1f3427ebe821902adbb578d">isIntx</a>)</td></tr>
<tr class="separator:ad2438a34ff1edb7268495d4105cb6c9c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1f5430f425efc533ca5881aaaeb42554"><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_1ArithTheoremProducer3.html#a1f5430f425efc533ca5881aaaeb42554">eqElimIntRule</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;eqn, const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;<a class="el" href="theory__quant_8cpp.html#ac9940420b1f3427ebe821902adbb578d">isIntx</a>, const std::vector&lt; <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &gt; &amp;isIntVars)</td></tr>
<tr class="memdesc:a1f5430f425efc533ca5881aaaeb42554"><td class="mdescLeft">&#160;</td><td class="mdescRight">Equality elimination rule for integers: </p>
<p class="formulaDsp">
<img class="formulaDsp" alt="\[\frac{\mathsf{int}(a\cdot x)\quad \mathsf{int}(C+\sum_{i=1}^{n}a_{i}\cdot x_{i})} {a\cdot x=C+\sum_{i=1}^{n}a_{i}\cdot x_{i} \quad\equiv\quad x=t_{2}\wedge 0=t_{3}} \]" src="form_303.png"/>
</p>
<p> See the detailed description for explanations.  <a href="#a1f5430f425efc533ca5881aaaeb42554"></a><br/></td></tr>
<tr class="separator:a1f5430f425efc533ca5881aaaeb42554"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a24216d1be10b57272b918ba416783b76"><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_1ArithTheoremProducer3.html#a24216d1be10b57272b918ba416783b76">isIntConst</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="memdesc:a24216d1be10b57272b918ba416783b76"><td class="mdescLeft">&#160;</td><td class="mdescRight">return e &lt;=&gt; TRUE/FALSE for e == IS_INTEGER(c), where c is a constant  <a href="#a24216d1be10b57272b918ba416783b76"></a><br/></td></tr>
<tr class="separator:a24216d1be10b57272b918ba416783b76"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acb64cdcb59f042dd38a9bf9b70f043ad"><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_1ArithTheoremProducer3.html#acb64cdcb59f042dd38a9bf9b70f043ad">equalLeaves1</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;e)</td></tr>
<tr class="separator:acb64cdcb59f042dd38a9bf9b70f043ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae97e571a8d541a31aef5c1c703190437"><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_1ArithTheoremProducer3.html#ae97e571a8d541a31aef5c1c703190437">equalLeaves2</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;e)</td></tr>
<tr class="separator:ae97e571a8d541a31aef5c1c703190437"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aba1a7d51f8b8291c30cc32c0f3ff5a4d"><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_1ArithTheoremProducer3.html#aba1a7d51f8b8291c30cc32c0f3ff5a4d">equalLeaves3</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;e)</td></tr>
<tr class="separator:aba1a7d51f8b8291c30cc32c0f3ff5a4d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5876760c9171eca18490c779cc2bbc73"><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_1ArithTheoremProducer3.html#a5876760c9171eca18490c779cc2bbc73">equalLeaves4</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;e)</td></tr>
<tr class="separator:a5876760c9171eca18490c779cc2bbc73"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a20fdbcbe80fa06a175aae548af7d2519"><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_1ArithTheoremProducer3.html#a20fdbcbe80fa06a175aae548af7d2519">diseqToIneq</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;diseq)</td></tr>
<tr class="memdesc:a20fdbcbe80fa06a175aae548af7d2519"><td class="mdescLeft">&#160;</td><td class="mdescRight">x /= y ==&gt; (x &lt; y) OR (x &gt; y)  <a href="#a20fdbcbe80fa06a175aae548af7d2519"></a><br/></td></tr>
<tr class="separator:a20fdbcbe80fa06a175aae548af7d2519"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae1e994559a2318ec45a758042371a71d"><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_1ArithTheoremProducer3.html#ae1e994559a2318ec45a758042371a71d">dummyTheorem</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="separator:ae1e994559a2318ec45a758042371a71d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2caebbed8d00af9c80195413ed2cc568"><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_1ArithTheoremProducer3.html#a2caebbed8d00af9c80195413ed2cc568">oneElimination</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;x)</td></tr>
<tr class="separator:a2caebbed8d00af9c80195413ed2cc568"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af05299dbe2defe9679365201cd60c516"><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_1ArithTheoremProducer3.html#af05299dbe2defe9679365201cd60c516">clashingBounds</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;lowerBound, const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;upperBound)</td></tr>
<tr class="separator:af05299dbe2defe9679365201cd60c516"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a301d62f207b9cfd50096417d1f5852df"><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_1ArithTheoremProducer3.html#a301d62f207b9cfd50096417d1f5852df">addInequalities</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;thm1, const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;thm2)</td></tr>
<tr class="separator:a301d62f207b9cfd50096417d1f5852df"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa2d099917106ead1062c72dde26a17a5"><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_1ArithTheoremProducer3.html#aa2d099917106ead1062c72dde26a17a5">addInequalities</a> (const std::vector&lt; <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &gt; &amp;thms)</td></tr>
<tr class="separator:aa2d099917106ead1062c72dde26a17a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae856ca9fab9699b655d7fd76cdf778d4"><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_1ArithTheoremProducer3.html#ae856ca9fab9699b655d7fd76cdf778d4">implyWeakerInequality</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;expr1, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;expr2)</td></tr>
<tr class="separator:ae856ca9fab9699b655d7fd76cdf778d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1797b422d1100edc2464666121d7017b"><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_1ArithTheoremProducer3.html#a1797b422d1100edc2464666121d7017b">implyNegatedInequality</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;expr1, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;expr2)</td></tr>
<tr class="separator:a1797b422d1100edc2464666121d7017b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae25218af53e642382f30948adc991313"><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_1ArithTheoremProducer3.html#ae25218af53e642382f30948adc991313">integerSplit</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;intVar, const <a class="el" href="classCVC3_1_1Rational.html">Rational</a> &amp;intPoint)</td></tr>
<tr class="separator:ae25218af53e642382f30948adc991313"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad58ee7b299de278620860c9d67a2662b"><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_1ArithTheoremProducer3.html#ad58ee7b299de278620860c9d67a2662b">trustedRewrite</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;expr1, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;expr2)</td></tr>
<tr class="separator:ad58ee7b299de278620860c9d67a2662b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7638b18d73c05e7bedad7c4cdfeca809"><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_1ArithTheoremProducer3.html#a7638b18d73c05e7bedad7c4cdfeca809">rafineStrictInteger</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;isIntConstrThm, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;constr)</td></tr>
<tr class="separator:a7638b18d73c05e7bedad7c4cdfeca809"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6fe0e5ebaf81278f55759fff05c275c1"><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_1ArithTheoremProducer3.html#a6fe0e5ebaf81278f55759fff05c275c1">simpleIneqInt</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;ineq, const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;isIntRHS)</td></tr>
<tr class="separator:a6fe0e5ebaf81278f55759fff05c275c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a84ec7197bec26c33753e98b6adf55dce"><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_1ArithTheoremProducer3.html#a84ec7197bec26c33753e98b6adf55dce">intEqualityRationalConstant</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;isIntConstrThm, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;constr)</td></tr>
<tr class="separator:a84ec7197bec26c33753e98b6adf55dce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5411413ef39cb6029a8e85fc03908de3"><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_1ArithTheoremProducer3.html#a5411413ef39cb6029a8e85fc03908de3">cycleConflict</a> (const std::vector&lt; <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &gt; &amp;inequalitites)</td></tr>
<tr class="separator:a5411413ef39cb6029a8e85fc03908de3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1efa679a45d71f60bf2be6f4f7a4430d"><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_1ArithTheoremProducer3.html#a1efa679a45d71f60bf2be6f4f7a4430d">implyEqualities</a> (const std::vector&lt; <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &gt; &amp;inequalities)</td></tr>
<tr class="separator:a1efa679a45d71f60bf2be6f4f7a4430d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8e90a0d0e2050a7f0eb1dde6df7f6842"><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_1ArithTheoremProducer3.html#a8e90a0d0e2050a7f0eb1dde6df7f6842">implyWeakerInequalityDiffLogic</a> (const std::vector&lt; <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &gt; &amp;antecedentThms, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;implied)</td></tr>
<tr class="separator:a8e90a0d0e2050a7f0eb1dde6df7f6842"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6ef98983cca8d3723f50fbea60c37cef"><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_1ArithTheoremProducer3.html#a6ef98983cca8d3723f50fbea60c37cef">implyNegatedInequalityDiffLogic</a> (const std::vector&lt; <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &gt; &amp;antecedentThms, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;implied)</td></tr>
<tr class="separator:a6ef98983cca8d3723f50fbea60c37cef"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa9b6fa1339b7e68cb730bdf2f63c0914"><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_1ArithTheoremProducer3.html#aa9b6fa1339b7e68cb730bdf2f63c0914">expandGrayShadowRewrite</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;theShadow)</td></tr>
<tr class="separator:aa9b6fa1339b7e68cb730bdf2f63c0914"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aac90a712f81d969d8aa0322b4d31de0b"><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_1ArithTheoremProducer3.html#aac90a712f81d969d8aa0322b4d31de0b">compactNonLinearTerm</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;nonLinear)</td></tr>
<tr class="separator:aac90a712f81d969d8aa0322b4d31de0b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaa91789edbf7fb936789379dd15a3a4f"><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_1ArithTheoremProducer3.html#aaa91789edbf7fb936789379dd15a3a4f">nonLinearIneqSignSplit</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;ineqThm)</td></tr>
<tr class="separator:aaa91789edbf7fb936789379dd15a3a4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9edd45196fbd8e61a4927134fde15e97"><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_1ArithTheoremProducer3.html#a9edd45196fbd8e61a4927134fde15e97">implyDiffLogicBothBounds</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;x, std::vector&lt; <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &gt; &amp;c1_le_x, <a class="el" href="classCVC3_1_1Rational.html">Rational</a> c1, std::vector&lt; <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &gt; &amp;x_le_c2, <a class="el" href="classCVC3_1_1Rational.html">Rational</a> c2)</td></tr>
<tr class="separator:a9edd45196fbd8e61a4927134fde15e97"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abf49b0eeb6087702dd1a8e9c03f7379a"><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_1ArithTheoremProducer3.html#abf49b0eeb6087702dd1a8e9c03f7379a">powerOfOne</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="separator:abf49b0eeb6087702dd1a8e9c03f7379a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classCVC3_1_1ArithProofRules"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classCVC3_1_1ArithProofRules')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classCVC3_1_1ArithProofRules.html">CVC3::ArithProofRules</a></td></tr>
<tr class="memitem:a410c697fc050feca9680a388397b0968 inherit pub_methods_classCVC3_1_1ArithProofRules"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1ArithProofRules.html#a410c697fc050feca9680a388397b0968">~ArithProofRules</a> ()</td></tr>
<tr class="separator:a410c697fc050feca9680a388397b0968 inherit pub_methods_classCVC3_1_1ArithProofRules"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a81d9ea1e5c2d42c2b60a893c879145bd inherit pub_methods_classCVC3_1_1ArithProofRules"><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_1ArithProofRules.html#a81d9ea1e5c2d42c2b60a893c879145bd">rewriteLeavesConst</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="separator:a81d9ea1e5c2d42c2b60a893c879145bd inherit pub_methods_classCVC3_1_1ArithProofRules"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classCVC3_1_1TheoremProducer"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classCVC3_1_1TheoremProducer')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classCVC3_1_1TheoremProducer.html">CVC3::TheoremProducer</a></td></tr>
<tr class="memitem:a5b69feb3bf1ce90107295b5731f847d7 inherit pub_methods_classCVC3_1_1TheoremProducer"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoremProducer.html#a5b69feb3bf1ce90107295b5731f847d7">TheoremProducer</a> (<a class="el" href="classCVC3_1_1TheoremManager.html">TheoremManager</a> *tm)</td></tr>
<tr class="separator:a5b69feb3bf1ce90107295b5731f847d7 inherit pub_methods_classCVC3_1_1TheoremProducer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae21722ca8449f4480e01566982cd4d61 inherit pub_methods_classCVC3_1_1TheoremProducer"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoremProducer.html#ae21722ca8449f4480e01566982cd4d61">~TheoremProducer</a> ()</td></tr>
<tr class="separator:ae21722ca8449f4480e01566982cd4d61 inherit pub_methods_classCVC3_1_1TheoremProducer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aceb1eeebc6b491b3241f463488471f3a inherit pub_methods_classCVC3_1_1TheoremProducer"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoremProducer.html#aceb1eeebc6b491b3241f463488471f3a">withProof</a> ()</td></tr>
<tr class="memdesc:aceb1eeebc6b491b3241f463488471f3a inherit pub_methods_classCVC3_1_1TheoremProducer"><td class="mdescLeft">&#160;</td><td class="mdescRight">Testing whether to generate proofs.  <a href="#aceb1eeebc6b491b3241f463488471f3a"></a><br/></td></tr>
<tr class="separator:aceb1eeebc6b491b3241f463488471f3a inherit pub_methods_classCVC3_1_1TheoremProducer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a32afe6d99e661b5c70082036e40d48bc inherit pub_methods_classCVC3_1_1TheoremProducer"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoremProducer.html#a32afe6d99e661b5c70082036e40d48bc">withAssumptions</a> ()</td></tr>
<tr class="memdesc:a32afe6d99e661b5c70082036e40d48bc inherit pub_methods_classCVC3_1_1TheoremProducer"><td class="mdescLeft">&#160;</td><td class="mdescRight">Testing whether to generate assumptions.  <a href="#a32afe6d99e661b5c70082036e40d48bc"></a><br/></td></tr>
<tr class="separator:a32afe6d99e661b5c70082036e40d48bc inherit pub_methods_classCVC3_1_1TheoremProducer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af4bdd16428b49f295b3d21208dffc0cd inherit pub_methods_classCVC3_1_1TheoremProducer"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Proof.html">Proof</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoremProducer.html#af4bdd16428b49f295b3d21208dffc0cd">newLabel</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="memdesc:af4bdd16428b49f295b3d21208dffc0cd inherit pub_methods_classCVC3_1_1TheoremProducer"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a new proof label (bound variable) for an assumption (formula)  <a href="#af4bdd16428b49f295b3d21208dffc0cd"></a><br/></td></tr>
<tr class="separator:af4bdd16428b49f295b3d21208dffc0cd inherit pub_methods_classCVC3_1_1TheoremProducer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9a8e67b1fb33d5dfe428a659d8c66651 inherit pub_methods_classCVC3_1_1TheoremProducer"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Proof.html">Proof</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoremProducer.html#a9a8e67b1fb33d5dfe428a659d8c66651">newPf</a> (const std::string &amp;name)</td></tr>
<tr class="separator:a9a8e67b1fb33d5dfe428a659d8c66651 inherit pub_methods_classCVC3_1_1TheoremProducer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4dc7589f2361108f86ba9a39584225c8 inherit pub_methods_classCVC3_1_1TheoremProducer"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Proof.html">Proof</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoremProducer.html#a4dc7589f2361108f86ba9a39584225c8">newPf</a> (const std::string &amp;name, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="separator:a4dc7589f2361108f86ba9a39584225c8 inherit pub_methods_classCVC3_1_1TheoremProducer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4318ccfdb9a7476428b6bec10218b704 inherit pub_methods_classCVC3_1_1TheoremProducer"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Proof.html">Proof</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoremProducer.html#a4318ccfdb9a7476428b6bec10218b704">newPf</a> (const std::string &amp;name, const <a class="el" href="classCVC3_1_1Proof.html">Proof</a> &amp;pf)</td></tr>
<tr class="separator:a4318ccfdb9a7476428b6bec10218b704 inherit pub_methods_classCVC3_1_1TheoremProducer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afde487055921fadaa010a98fcfec3efc inherit pub_methods_classCVC3_1_1TheoremProducer"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Proof.html">Proof</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoremProducer.html#afde487055921fadaa010a98fcfec3efc">newPf</a> (const std::string &amp;name, 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="separator:afde487055921fadaa010a98fcfec3efc inherit pub_methods_classCVC3_1_1TheoremProducer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac8fe1de247e929400cdcf8abb05f51d8 inherit pub_methods_classCVC3_1_1TheoremProducer"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Proof.html">Proof</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoremProducer.html#ac8fe1de247e929400cdcf8abb05f51d8">newPf</a> (const std::string &amp;name, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e, const <a class="el" href="classCVC3_1_1Proof.html">Proof</a> &amp;pf)</td></tr>
<tr class="separator:ac8fe1de247e929400cdcf8abb05f51d8 inherit pub_methods_classCVC3_1_1TheoremProducer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4442d3e5b304a0d0c26a70f398605c2f inherit pub_methods_classCVC3_1_1TheoremProducer"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Proof.html">Proof</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoremProducer.html#a4442d3e5b304a0d0c26a70f398605c2f">newPf</a> (const std::string &amp;name, 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, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e3)</td></tr>
<tr class="separator:a4442d3e5b304a0d0c26a70f398605c2f inherit pub_methods_classCVC3_1_1TheoremProducer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9635508015efe3b1eee16c42c095d664 inherit pub_methods_classCVC3_1_1TheoremProducer"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Proof.html">Proof</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoremProducer.html#a9635508015efe3b1eee16c42c095d664">newPf</a> (const std::string &amp;name, 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, const <a class="el" href="classCVC3_1_1Proof.html">Proof</a> &amp;pf)</td></tr>
<tr class="separator:a9635508015efe3b1eee16c42c095d664 inherit pub_methods_classCVC3_1_1TheoremProducer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aea760a51b9c828ba13daabb8bb85a059 inherit pub_methods_classCVC3_1_1TheoremProducer"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Proof.html">Proof</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoremProducer.html#aea760a51b9c828ba13daabb8bb85a059">newPf</a> (const std::string &amp;name, <a class="el" href="classCVC3_1_1Expr_1_1iterator.html">Expr::iterator</a> begin, const <a class="el" href="classCVC3_1_1Expr_1_1iterator.html">Expr::iterator</a> &amp;end)</td></tr>
<tr class="separator:aea760a51b9c828ba13daabb8bb85a059 inherit pub_methods_classCVC3_1_1TheoremProducer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a64af41f02b0a09e641ddfee381dec928 inherit pub_methods_classCVC3_1_1TheoremProducer"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Proof.html">Proof</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoremProducer.html#a64af41f02b0a09e641ddfee381dec928">newPf</a> (const std::string &amp;name, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e, <a class="el" href="classCVC3_1_1Expr_1_1iterator.html">Expr::iterator</a> begin, const <a class="el" href="classCVC3_1_1Expr_1_1iterator.html">Expr::iterator</a> &amp;end)</td></tr>
<tr class="separator:a64af41f02b0a09e641ddfee381dec928 inherit pub_methods_classCVC3_1_1TheoremProducer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a19abffed968792730fc45001a78e2f29 inherit pub_methods_classCVC3_1_1TheoremProducer"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Proof.html">Proof</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoremProducer.html#a19abffed968792730fc45001a78e2f29">newPf</a> (const std::string &amp;name, <a class="el" href="classCVC3_1_1Expr_1_1iterator.html">Expr::iterator</a> begin, const <a class="el" href="classCVC3_1_1Expr_1_1iterator.html">Expr::iterator</a> &amp;end, const std::vector&lt; <a class="el" href="classCVC3_1_1Proof.html">Proof</a> &gt; &amp;pfs)</td></tr>
<tr class="separator:a19abffed968792730fc45001a78e2f29 inherit pub_methods_classCVC3_1_1TheoremProducer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afbc79087033fcd7a9c14faca4fee9d34 inherit pub_methods_classCVC3_1_1TheoremProducer"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Proof.html">Proof</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoremProducer.html#afbc79087033fcd7a9c14faca4fee9d34">newPf</a> (const std::string &amp;name, const std::vector&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;args)</td></tr>
<tr class="separator:afbc79087033fcd7a9c14faca4fee9d34 inherit pub_methods_classCVC3_1_1TheoremProducer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8748ea26e91b5d0046ba28ffaa085935 inherit pub_methods_classCVC3_1_1TheoremProducer"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Proof.html">Proof</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoremProducer.html#a8748ea26e91b5d0046ba28ffaa085935">newPf</a> (const std::string &amp;name, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e, const std::vector&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;args)</td></tr>
<tr class="separator:a8748ea26e91b5d0046ba28ffaa085935 inherit pub_methods_classCVC3_1_1TheoremProducer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9620645731b7d636c5988319d2b02513 inherit pub_methods_classCVC3_1_1TheoremProducer"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Proof.html">Proof</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoremProducer.html#a9620645731b7d636c5988319d2b02513">newPf</a> (const std::string &amp;name, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e, const std::vector&lt; <a class="el" href="classCVC3_1_1Proof.html">Proof</a> &gt; &amp;pfs)</td></tr>
<tr class="separator:a9620645731b7d636c5988319d2b02513 inherit pub_methods_classCVC3_1_1TheoremProducer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9dd3b2ab2d8230f47795e65d2c48fb04 inherit pub_methods_classCVC3_1_1TheoremProducer"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Proof.html">Proof</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoremProducer.html#a9dd3b2ab2d8230f47795e65d2c48fb04">newPf</a> (const std::string &amp;name, 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, const std::vector&lt; <a class="el" href="classCVC3_1_1Proof.html">Proof</a> &gt; &amp;pfs)</td></tr>
<tr class="separator:a9dd3b2ab2d8230f47795e65d2c48fb04 inherit pub_methods_classCVC3_1_1TheoremProducer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac8ad8684a67b13b361a8569d825b2098 inherit pub_methods_classCVC3_1_1TheoremProducer"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Proof.html">Proof</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoremProducer.html#ac8ad8684a67b13b361a8569d825b2098">newPf</a> (const std::string &amp;name, const std::vector&lt; <a class="el" href="classCVC3_1_1Proof.html">Proof</a> &gt; &amp;pfs)</td></tr>
<tr class="separator:ac8ad8684a67b13b361a8569d825b2098 inherit pub_methods_classCVC3_1_1TheoremProducer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a241ecbd26413d976be8cc1d34f7f93e2 inherit pub_methods_classCVC3_1_1TheoremProducer"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Proof.html">Proof</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoremProducer.html#a241ecbd26413d976be8cc1d34f7f93e2">newPf</a> (const std::string &amp;name, const std::vector&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;args, const <a class="el" href="classCVC3_1_1Proof.html">Proof</a> &amp;pf)</td></tr>
<tr class="separator:a241ecbd26413d976be8cc1d34f7f93e2 inherit pub_methods_classCVC3_1_1TheoremProducer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac903fe293131f805c477a7830956de9a inherit pub_methods_classCVC3_1_1TheoremProducer"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Proof.html">Proof</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoremProducer.html#ac903fe293131f805c477a7830956de9a">newPf</a> (const std::string &amp;name, const std::vector&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;args, const std::vector&lt; <a class="el" href="classCVC3_1_1Proof.html">Proof</a> &gt; &amp;pfs)</td></tr>
<tr class="separator:ac903fe293131f805c477a7830956de9a inherit pub_methods_classCVC3_1_1TheoremProducer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5703a2ebdbed3225aa886e4476c683ec inherit pub_methods_classCVC3_1_1TheoremProducer"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Proof.html">Proof</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoremProducer.html#a5703a2ebdbed3225aa886e4476c683ec">newPf</a> (const <a class="el" href="classCVC3_1_1Proof.html">Proof</a> &amp;label, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;frm, const <a class="el" href="classCVC3_1_1Proof.html">Proof</a> &amp;pf)</td></tr>
<tr class="memdesc:a5703a2ebdbed3225aa886e4476c683ec inherit pub_methods_classCVC3_1_1TheoremProducer"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creating LAMBDA-abstraction (LAMBDA label formula proof)  <a href="#a5703a2ebdbed3225aa886e4476c683ec"></a><br/></td></tr>
<tr class="separator:a5703a2ebdbed3225aa886e4476c683ec inherit pub_methods_classCVC3_1_1TheoremProducer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab928d4883eab42df337ce09447c49702 inherit pub_methods_classCVC3_1_1TheoremProducer"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Proof.html">Proof</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoremProducer.html#ab928d4883eab42df337ce09447c49702">newPf</a> (const <a class="el" href="classCVC3_1_1Proof.html">Proof</a> &amp;label, const <a class="el" href="classCVC3_1_1Proof.html">Proof</a> &amp;pf)</td></tr>
<tr class="memdesc:ab928d4883eab42df337ce09447c49702 inherit pub_methods_classCVC3_1_1TheoremProducer"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creating LAMBDA-abstraction (LAMBDA label proof).  <a href="#ab928d4883eab42df337ce09447c49702"></a><br/></td></tr>
<tr class="separator:ab928d4883eab42df337ce09447c49702 inherit pub_methods_classCVC3_1_1TheoremProducer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aad2d702b1e1a7e024d1068cbde1b8d77 inherit pub_methods_classCVC3_1_1TheoremProducer"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Proof.html">Proof</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoremProducer.html#aad2d702b1e1a7e024d1068cbde1b8d77">newPf</a> (const std::vector&lt; <a class="el" href="classCVC3_1_1Proof.html">Proof</a> &gt; &amp;labels, const std::vector&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;frms, const <a class="el" href="classCVC3_1_1Proof.html">Proof</a> &amp;pf)</td></tr>
<tr class="memdesc:aad2d702b1e1a7e024d1068cbde1b8d77 inherit pub_methods_classCVC3_1_1TheoremProducer"><td class="mdescLeft">&#160;</td><td class="mdescRight">Similarly, multi-argument lambda-abstractions: (LAMBDA (u1,...,un): (f1,...,fn). pf)  <a href="#aad2d702b1e1a7e024d1068cbde1b8d77"></a><br/></td></tr>
<tr class="separator:aad2d702b1e1a7e024d1068cbde1b8d77 inherit pub_methods_classCVC3_1_1TheoremProducer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abe7fac97b88de3346898e955456adc75 inherit pub_methods_classCVC3_1_1TheoremProducer"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Proof.html">Proof</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoremProducer.html#abe7fac97b88de3346898e955456adc75">newPf</a> (const std::vector&lt; <a class="el" href="classCVC3_1_1Proof.html">Proof</a> &gt; &amp;labels, const <a class="el" href="classCVC3_1_1Proof.html">Proof</a> &amp;pf)</td></tr>
<tr class="separator:abe7fac97b88de3346898e955456adc75 inherit pub_methods_classCVC3_1_1TheoremProducer"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:a1923e590a205cefe9ef50d336e99c9e5"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1ArithTheoremProducer3.html#a1923e590a205cefe9ef50d336e99c9e5">greaterthan</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;)</td></tr>
<tr class="separator:a1923e590a205cefe9ef50d336e99c9e5"><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><td colspan="2"><div class="groupHeader">Auxiliary functions for eqElimIntRule()</div></td></tr>
<tr><td colspan="2"><div class="groupText"><p>Methods that compute the subterms used in <a class="el" href="classCVC3_1_1ArithTheoremProducer3.html#a1f5430f425efc533ca5881aaaeb42554" title="Equality elimination rule for integers:  See the detailed description for explanations.">eqElimIntRule()</a> </p>
</div></td></tr>
<tr class="memitem:ada3b48ce9720177b4a427237efe0453f"><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_1ArithTheoremProducer3.html#ada3b48ce9720177b4a427237efe0453f">modEq</a> (const <a class="el" href="classCVC3_1_1Rational.html">Rational</a> &amp;i, const <a class="el" href="classCVC3_1_1Rational.html">Rational</a> &amp;m)</td></tr>
<tr class="memdesc:ada3b48ce9720177b4a427237efe0453f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute the special modulus: i - m*floor(i/m+1/2)  <a href="#ada3b48ce9720177b4a427237efe0453f"></a><br/></td></tr>
<tr class="separator:ada3b48ce9720177b4a427237efe0453f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab70323686fd8775952a2709a6c8c754b"><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_1ArithTheoremProducer3.html#ab70323686fd8775952a2709a6c8c754b">create_t</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;eqn)</td></tr>
<tr class="memdesc:ab70323686fd8775952a2709a6c8c754b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create the term 't'. See <a class="el" href="classCVC3_1_1ArithTheoremProducer3.html#a1f5430f425efc533ca5881aaaeb42554" title="Equality elimination rule for integers:  See the detailed description for explanations.">eqElimIntRule()</a>.  <a href="#ab70323686fd8775952a2709a6c8c754b"></a><br/></td></tr>
<tr class="separator:ab70323686fd8775952a2709a6c8c754b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adf974179ea62c2196a87fb9c2199f6cd"><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_1ArithTheoremProducer3.html#adf974179ea62c2196a87fb9c2199f6cd">create_t2</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, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;t)</td></tr>
<tr class="memdesc:adf974179ea62c2196a87fb9c2199f6cd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create the term 't2'. See <a class="el" href="classCVC3_1_1ArithTheoremProducer3.html#a1f5430f425efc533ca5881aaaeb42554" title="Equality elimination rule for integers:  See the detailed description for explanations.">eqElimIntRule()</a>.  <a href="#adf974179ea62c2196a87fb9c2199f6cd"></a><br/></td></tr>
<tr class="separator:adf974179ea62c2196a87fb9c2199f6cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6bad08f3833720448803251dfa234e36"><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_1ArithTheoremProducer3.html#a6bad08f3833720448803251dfa234e36">create_t3</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, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;t)</td></tr>
<tr class="memdesc:a6bad08f3833720448803251dfa234e36"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create the term 't3'. See <a class="el" href="classCVC3_1_1ArithTheoremProducer3.html#a1f5430f425efc533ca5881aaaeb42554" title="Equality elimination rule for integers:  See the detailed description for explanations.">eqElimIntRule()</a>.  <a href="#a6bad08f3833720448803251dfa234e36"></a><br/></td></tr>
<tr class="separator:a6bad08f3833720448803251dfa234e36"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa21c4aa75f54e05bdc772b0e2d37b669"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1ArithTheoremProducer3.html#aa21c4aa75f54e05bdc772b0e2d37b669">sumModM</a> (std::vector&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;summands, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;sum, const <a class="el" href="classCVC3_1_1Rational.html">Rational</a> &amp;m, const <a class="el" href="classCVC3_1_1Rational.html">Rational</a> &amp;divisor)</td></tr>
<tr class="memdesc:aa21c4aa75f54e05bdc772b0e2d37b669"><td class="mdescLeft">&#160;</td><td class="mdescRight">Takes sum = a_0 + a_1*x_1+...+a_n*x_n and returns the vector of similar monomials (in 'summands') with coefficients mod(a_i, m). If divide flag is true, the coefficients will be mod(a_i,m)/m.  <a href="#aa21c4aa75f54e05bdc772b0e2d37b669"></a><br/></td></tr>
<tr class="separator:aa21c4aa75f54e05bdc772b0e2d37b669"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5245a34c6f9e903db87e17df1d33c09d"><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_1ArithTheoremProducer3.html#a5245a34c6f9e903db87e17df1d33c09d">monomialModM</a> (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;m, const <a class="el" href="classCVC3_1_1Rational.html">Rational</a> &amp;divisor)</td></tr>
<tr class="memdesc:a5245a34c6f9e903db87e17df1d33c09d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute the special modulus: i - m*floor(i/m+1/2)  <a href="#a5245a34c6f9e903db87e17df1d33c09d"></a><br/></td></tr>
<tr class="separator:a5245a34c6f9e903db87e17df1d33c09d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a36838065b24c16503ef6cf8164de44a8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1ArithTheoremProducer3.html#a36838065b24c16503ef6cf8164de44a8">sumMulF</a> (std::vector&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;summands, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;sum, const <a class="el" href="classCVC3_1_1Rational.html">Rational</a> &amp;m, const <a class="el" href="classCVC3_1_1Rational.html">Rational</a> &amp;divisor)</td></tr>
<tr class="memdesc:a36838065b24c16503ef6cf8164de44a8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute the special modulus: i - m*floor(i/m+1/2)  <a href="#a36838065b24c16503ef6cf8164de44a8"></a><br/></td></tr>
<tr class="separator:a36838065b24c16503ef6cf8164de44a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aea07da55e987ccd27d0f57e08558af01"><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_1ArithTheoremProducer3.html#aea07da55e987ccd27d0f57e08558af01">monomialMulF</a> (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;m, const <a class="el" href="classCVC3_1_1Rational.html">Rational</a> &amp;divisor)</td></tr>
<tr class="memdesc:aea07da55e987ccd27d0f57e08558af01"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute the special modulus: i - m*floor(i/m+1/2)  <a href="#aea07da55e987ccd27d0f57e08558af01"></a><br/></td></tr>
<tr class="separator:aea07da55e987ccd27d0f57e08558af01"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a077f8d0dab986b01d390668f6af1afa2"><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_1ArithTheoremProducer3.html#a077f8d0dab986b01d390668f6af1afa2">f</a> (const <a class="el" href="classCVC3_1_1Rational.html">Rational</a> &amp;i, const <a class="el" href="classCVC3_1_1Rational.html">Rational</a> &amp;m)</td></tr>
<tr class="memdesc:a077f8d0dab986b01d390668f6af1afa2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute floor(i/m+1/2) + mod(i,m)  <a href="#a077f8d0dab986b01d390668f6af1afa2"></a><br/></td></tr>
<tr class="separator:a077f8d0dab986b01d390668f6af1afa2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3d0129d121975b0141d77ba6f458c182"><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_1ArithTheoremProducer3.html#a3d0129d121975b0141d77ba6f458c182">substitute</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;term, <a class="el" href="classCVC3_1_1ExprMap.html">ExprMap</a>&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;eMap)</td></tr>
<tr class="memdesc:a3d0129d121975b0141d77ba6f458c182"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute the special modulus: i - m*floor(i/m+1/2)  <a href="#a3d0129d121975b0141d77ba6f458c182"></a><br/></td></tr>
<tr class="separator:a3d0129d121975b0141d77ba6f458c182"><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:a75321b2dd304a716364b64d21ebf3d07"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1TheoryArith3.html">TheoryArith3</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1ArithTheoremProducer3.html#a75321b2dd304a716364b64d21ebf3d07">d_theoryArith</a></td></tr>
<tr class="separator:a75321b2dd304a716364b64d21ebf3d07"><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_1TheoremProducer"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classCVC3_1_1TheoremProducer')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classCVC3_1_1TheoremProducer.html">CVC3::TheoremProducer</a></td></tr>
<tr class="memitem:ab3afa2471d244b129865548afe06ca89 inherit pro_methods_classCVC3_1_1TheoremProducer"><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_1TheoremProducer.html#ab3afa2471d244b129865548afe06ca89">newTheorem</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;thm, const <a class="el" href="classCVC3_1_1Assumptions.html">Assumptions</a> &amp;assump, const <a class="el" href="classCVC3_1_1Proof.html">Proof</a> &amp;pf)</td></tr>
<tr class="memdesc:ab3afa2471d244b129865548afe06ca89 inherit pro_methods_classCVC3_1_1TheoremProducer"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a new theorem. See also <a class="el" href="classCVC3_1_1TheoremProducer.html#a1b12639479f7d06736c643d43d714e90" title="Create a rewrite theorem: lhs = rhs.">newRWTheorem()</a> and <a class="el" href="classCVC3_1_1TheoremProducer.html#a0670b7f9cfb6e1420227b5df652d6e79" title="Create a reflexivity theorem.">newReflTheorem()</a>  <a href="#ab3afa2471d244b129865548afe06ca89"></a><br/></td></tr>
<tr class="separator:ab3afa2471d244b129865548afe06ca89 inherit pro_methods_classCVC3_1_1TheoremProducer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1b12639479f7d06736c643d43d714e90 inherit pro_methods_classCVC3_1_1TheoremProducer"><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_1TheoremProducer.html#a1b12639479f7d06736c643d43d714e90">newRWTheorem</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, const <a class="el" href="classCVC3_1_1Assumptions.html">Assumptions</a> &amp;assump, const <a class="el" href="classCVC3_1_1Proof.html">Proof</a> &amp;pf)</td></tr>
<tr class="memdesc:a1b12639479f7d06736c643d43d714e90 inherit pro_methods_classCVC3_1_1TheoremProducer"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a rewrite theorem: lhs = rhs.  <a href="#a1b12639479f7d06736c643d43d714e90"></a><br/></td></tr>
<tr class="separator:a1b12639479f7d06736c643d43d714e90 inherit pro_methods_classCVC3_1_1TheoremProducer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0670b7f9cfb6e1420227b5df652d6e79 inherit pro_methods_classCVC3_1_1TheoremProducer"><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_1TheoremProducer.html#a0670b7f9cfb6e1420227b5df652d6e79">newReflTheorem</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="memdesc:a0670b7f9cfb6e1420227b5df652d6e79 inherit pro_methods_classCVC3_1_1TheoremProducer"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a reflexivity theorem.  <a href="#a0670b7f9cfb6e1420227b5df652d6e79"></a><br/></td></tr>
<tr class="separator:a0670b7f9cfb6e1420227b5df652d6e79 inherit pro_methods_classCVC3_1_1TheoremProducer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae6f0d46a632906b24cca2d5f648ae329 inherit pro_methods_classCVC3_1_1TheoremProducer"><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_1TheoremProducer.html#ae6f0d46a632906b24cca2d5f648ae329">newAssumption</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;thm, const <a class="el" href="classCVC3_1_1Proof.html">Proof</a> &amp;pf, int scope=-1)</td></tr>
<tr class="separator:ae6f0d46a632906b24cca2d5f648ae329 inherit pro_methods_classCVC3_1_1TheoremProducer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aec0760db9fcf381bf3886dbb1801662d inherit pro_methods_classCVC3_1_1TheoremProducer"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Theorem3.html">Theorem3</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoremProducer.html#aec0760db9fcf381bf3886dbb1801662d">newTheorem3</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;thm, const <a class="el" href="classCVC3_1_1Assumptions.html">Assumptions</a> &amp;assump, const <a class="el" href="classCVC3_1_1Proof.html">Proof</a> &amp;pf)</td></tr>
<tr class="separator:aec0760db9fcf381bf3886dbb1801662d inherit pro_methods_classCVC3_1_1TheoremProducer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaaca425811ff3137c21a040a8ce1b69e inherit pro_methods_classCVC3_1_1TheoremProducer"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Theorem3.html">Theorem3</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoremProducer.html#aaaca425811ff3137c21a040a8ce1b69e">newRWTheorem3</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, const <a class="el" href="classCVC3_1_1Assumptions.html">Assumptions</a> &amp;assump, const <a class="el" href="classCVC3_1_1Proof.html">Proof</a> &amp;pf)</td></tr>
<tr class="separator:aaaca425811ff3137c21a040a8ce1b69e inherit pro_methods_classCVC3_1_1TheoremProducer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8f74c8badd61cf70ebeb05183c00d608 inherit pro_methods_classCVC3_1_1TheoremProducer"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoremProducer.html#a8f74c8badd61cf70ebeb05183c00d608">soundError</a> (const std::string &amp;file, int line, const std::string &amp;cond, const std::string &amp;msg)</td></tr>
<tr class="separator:a8f74c8badd61cf70ebeb05183c00d608 inherit pro_methods_classCVC3_1_1TheoremProducer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_attribs_classCVC3_1_1TheoremProducer"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classCVC3_1_1TheoremProducer')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classCVC3_1_1TheoremProducer.html">CVC3::TheoremProducer</a></td></tr>
<tr class="memitem:a27015759e6bdfced928fc5a2d9877b7d inherit pro_attribs_classCVC3_1_1TheoremProducer"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1TheoremManager.html">TheoremManager</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoremProducer.html#a27015759e6bdfced928fc5a2d9877b7d">d_tm</a></td></tr>
<tr class="separator:a27015759e6bdfced928fc5a2d9877b7d inherit pro_attribs_classCVC3_1_1TheoremProducer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1b706238281ad141a57363a6890f14a5 inherit pro_attribs_classCVC3_1_1TheoremProducer"><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_1TheoremProducer.html#a1b706238281ad141a57363a6890f14a5">d_em</a></td></tr>
<tr class="separator:a1b706238281ad141a57363a6890f14a5 inherit pro_attribs_classCVC3_1_1TheoremProducer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8b023af23ac984c27c8eae1f79fb1e2d inherit pro_attribs_classCVC3_1_1TheoremProducer"><td class="memItemLeft" align="right" valign="top">const bool *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1TheoremProducer.html#a8b023af23ac984c27c8eae1f79fb1e2d">d_checkProofs</a></td></tr>
<tr class="separator:a8b023af23ac984c27c8eae1f79fb1e2d inherit pro_attribs_classCVC3_1_1TheoremProducer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adcb2b6244c679d22b4a684fb39fd3558 inherit pro_attribs_classCVC3_1_1TheoremProducer"><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_1TheoremProducer.html#adcb2b6244c679d22b4a684fb39fd3558">d_pfOp</a></td></tr>
<tr class="separator:adcb2b6244c679d22b4a684fb39fd3558 inherit pro_attribs_classCVC3_1_1TheoremProducer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aee4a05e25306885dbaa6f67fc92f119d inherit pro_attribs_classCVC3_1_1TheoremProducer"><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_1TheoremProducer.html#aee4a05e25306885dbaa6f67fc92f119d">d_hole</a></td></tr>
<tr class="separator:aee4a05e25306885dbaa6f67fc92f119d inherit pro_attribs_classCVC3_1_1TheoremProducer"><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>Definition at line <a class="el" href="arith__theorem__producer3_8h_source.html#l00032">32</a> of file <a class="el" href="arith__theorem__producer3_8h_source.html">arith_theorem_producer3.h</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a56fb5871062ffe12510c4cd4ba65b745"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">CVC3::ArithTheoremProducer3::ArithTheoremProducer3 </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1TheoremManager.html">TheoremManager</a> *&#160;</td>
          <td class="paramname"><em>tm</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1TheoryArith3.html">TheoryArith3</a> *&#160;</td>
          <td class="paramname"><em>theoryArith</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">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Constructor. </p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8h_source.html#l00066">66</a> of file <a class="el" href="arith__theorem__producer3_8h_source.html">arith_theorem_producer3.h</a>.</p>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="ada3b48ce9720177b4a427237efe0453f"></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> ArithTheoremProducer3::modEq </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Rational.html">Rational</a> &amp;&#160;</td>
          <td class="paramname"><em>i</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Rational.html">Rational</a> &amp;&#160;</td>
          <td class="paramname"><em>m</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>Compute the special modulus: i - m*floor(i/m+1/2) </p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l02227">2227</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

<p>References <a class="el" href="debug_8h_source.html#l00408">DebugAssert</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>

</div>
</div>
<a class="anchor" id="ab70323686fd8775952a2709a6c8c754b"></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> ArithTheoremProducer3::create_t </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</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>Create the term 't'. See <a class="el" href="classCVC3_1_1ArithTheoremProducer3.html#a1f5430f425efc533ca5881aaaeb42554" title="Equality elimination rule for integers:  See the detailed description for explanations.">eqElimIntRule()</a>. </p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l02167">2167</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

<p>References <a class="el" href="arith__theorem__producer3_8cpp_source.html#l00052">CLASS_NAME</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#l00207">CVC3::multExpr()</a>, <a class="el" href="theory__arith_8h_source.html#l00199">CVC3::plusExpr()</a>, <a class="el" href="classCVC3_1_1Rational.html#a195c125a76cb9a6c5731369e244a2de3">CVC3::Rational::toString()</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

</div>
</div>
<a class="anchor" id="adf974179ea62c2196a87fb9c2199f6cd"></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> ArithTheoremProducer3::create_t2 </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>lhs</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>rhs</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>t</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>Create the term 't2'. See <a class="el" href="classCVC3_1_1ArithTheoremProducer3.html#a1f5430f425efc533ca5881aaaeb42554" title="Equality elimination rule for integers:  See the detailed description for explanations.">eqElimIntRule()</a>. </p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l02186">2186</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

<p>References <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#l00181">CVC3::isPlus()</a>, <a class="el" href="expr_8h_source.html#l00431">CVC3::Expr::isRational()</a>, <a class="el" href="theory__arith_8h_source.html#l00199">CVC3::plusExpr()</a>, and <a class="el" href="classCVC3_1_1Rational.html#a195c125a76cb9a6c5731369e244a2de3">CVC3::Rational::toString()</a>.</p>

</div>
</div>
<a class="anchor" id="a6bad08f3833720448803251dfa234e36"></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> ArithTheoremProducer3::create_t3 </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>lhs</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>rhs</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>t</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>Create the term 't3'. See <a class="el" href="classCVC3_1_1ArithTheoremProducer3.html#a1f5430f425efc533ca5881aaaeb42554" title="Equality elimination rule for integers:  See the detailed description for explanations.">eqElimIntRule()</a>. </p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l02206">2206</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

<p>References <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#l00181">CVC3::isPlus()</a>, <a class="el" href="expr_8h_source.html#l00431">CVC3::Expr::isRational()</a>, <a class="el" href="theory__arith_8h_source.html#l00199">CVC3::plusExpr()</a>, and <a class="el" href="classCVC3_1_1Rational.html#a195c125a76cb9a6c5731369e244a2de3">CVC3::Rational::toString()</a>.</p>

</div>
</div>
<a class="anchor" id="aa21c4aa75f54e05bdc772b0e2d37b669"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void ArithTheoremProducer3::sumModM </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>summands</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>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Rational.html">Rational</a> &amp;&#160;</td>
          <td class="paramname"><em>m</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Rational.html">Rational</a> &amp;&#160;</td>
          <td class="paramname"><em>divisor</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>Takes sum = a_0 + a_1*x_1+...+a_n*x_n and returns the vector of similar monomials (in 'summands') with coefficients mod(a_i, m). If divide flag is true, the coefficients will be mod(a_i,m)/m. </p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l02243">2243</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

<p>References <a class="el" href="expr_8h_source.html#l01211">CVC3::Expr::begin()</a>, <a class="el" href="arith__theorem__producer3_8cpp_source.html#l00052">CLASS_NAME</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="expr_8h_source.html#l01217">CVC3::Expr::end()</a>, <a class="el" href="expr_8h_source.html#l01135">CVC3::Expr::getRational()</a>, <a class="el" href="expr_8h_source.html#l00431">CVC3::Expr::isRational()</a>, and <a class="el" href="classCVC3_1_1Rational.html#a195c125a76cb9a6c5731369e244a2de3">CVC3::Rational::toString()</a>.</p>

</div>
</div>
<a class="anchor" id="a5245a34c6f9e903db87e17df1d33c09d"></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> ArithTheoremProducer3::monomialModM </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>e</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Rational.html">Rational</a> &amp;&#160;</td>
          <td class="paramname"><em>m</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Rational.html">Rational</a> &amp;&#160;</td>
          <td class="paramname"><em>divisor</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>Compute the special modulus: i - m*floor(i/m+1/2) </p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l02263">2263</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.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="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#l00207">CVC3::multExpr()</a>, <a class="el" href="classCVC3_1_1Rational.html#a195c125a76cb9a6c5731369e244a2de3">CVC3::Rational::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="a36838065b24c16503ef6cf8164de44a8"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void ArithTheoremProducer3::sumMulF </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>summands</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>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Rational.html">Rational</a> &amp;&#160;</td>
          <td class="paramname"><em>m</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Rational.html">Rational</a> &amp;&#160;</td>
          <td class="paramname"><em>divisor</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>Compute the special modulus: i - m*floor(i/m+1/2) </p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l02291">2291</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

<p>References <a class="el" href="expr_8h_source.html#l01211">CVC3::Expr::begin()</a>, <a class="el" href="arith__theorem__producer3_8cpp_source.html#l00052">CLASS_NAME</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="expr_8h_source.html#l01217">CVC3::Expr::end()</a>, <a class="el" href="expr_8h_source.html#l01135">CVC3::Expr::getRational()</a>, <a class="el" href="expr_8h_source.html#l00431">CVC3::Expr::isRational()</a>, and <a class="el" href="classCVC3_1_1Rational.html#a195c125a76cb9a6c5731369e244a2de3">CVC3::Rational::toString()</a>.</p>

</div>
</div>
<a class="anchor" id="aea07da55e987ccd27d0f57e08558af01"></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> ArithTheoremProducer3::monomialMulF </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>e</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Rational.html">Rational</a> &amp;&#160;</td>
          <td class="paramname"><em>m</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Rational.html">Rational</a> &amp;&#160;</td>
          <td class="paramname"><em>divisor</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>Compute the special modulus: i - m*floor(i/m+1/2) </p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l02311">2311</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.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#l00183">CVC3::isMult()</a>, <a class="el" href="theory__arith_8h_source.html#l00207">CVC3::multExpr()</a>, and <a class="el" href="classCVC3_1_1Rational.html#a195c125a76cb9a6c5731369e244a2de3">CVC3::Rational::toString()</a>.</p>

</div>
</div>
<a class="anchor" id="a077f8d0dab986b01d390668f6af1afa2"></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> ArithTheoremProducer3::f </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Rational.html">Rational</a> &amp;&#160;</td>
          <td class="paramname"><em>i</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Rational.html">Rational</a> &amp;&#160;</td>
          <td class="paramname"><em>m</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>Compute floor(i/m+1/2) + mod(i,m) </p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l02236">2236</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

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

</div>
</div>
<a class="anchor" id="a3d0129d121975b0141d77ba6f458c182"></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> ArithTheoremProducer3::substitute </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>term</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1ExprMap.html">ExprMap</a>&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>eMap</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>Compute the special modulus: i - m*floor(i/m+1/2) </p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l02328">2328</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

<p>References <a class="el" href="expr_8h_source.html#l01211">CVC3::Expr::begin()</a>, <a class="el" href="expr__map_8h_source.html#l00191">CVC3::ExprMap&lt; Data &gt;::end()</a>, <a class="el" href="expr_8h_source.html#l01217">CVC3::Expr::end()</a>, <a class="el" href="expr__map_8h_source.html#l00194">CVC3::ExprMap&lt; Data &gt;::find()</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>, and <a class="el" href="theory__arith_8h_source.html#l00199">CVC3::plusExpr()</a>.</p>

</div>
</div>
<a class="anchor" id="a4440979f29e7ec3519212ff1e23d758f"></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::ArithTheoremProducer3::rat </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1Rational.html">Rational</a>&#160;</td>
          <td class="paramname"><em>r</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>Create <a class="el" href="classCVC3_1_1Expr.html" title="Data structure of expressions in CVC3.">Expr</a> from <a class="el" href="classCVC3_1_1Rational.html">Rational</a> (for convenience) </p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8h_source.html#l00070">70</a> of file <a class="el" href="arith__theorem__producer3_8h_source.html">arith_theorem_producer3.h</a>.</p>

<p>References <a class="el" href="theorem__producer_8h_source.html#l00095">CVC3::TheoremProducer::d_em</a>, and <a class="el" href="expr__manager_8h_source.html#l00471">CVC3::ExprManager::newRatExpr()</a>.</p>

</div>
</div>
<a class="anchor" id="ad010c33575ebd1dc229c2a1526c229c5"></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> CVC3::ArithTheoremProducer3::realType </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="arith__theorem__producer3_8h_source.html#l00071">71</a> of file <a class="el" href="arith__theorem__producer3_8h_source.html">arith_theorem_producer3.h</a>.</p>

<p>References <a class="el" href="arith__theorem__producer3_8h_source.html#l00033">d_theoryArith</a>, and <a class="el" href="theory__arith_8h_source.html#l00152">CVC3::TheoryArith::realType()</a>.</p>

</div>
</div>
<a class="anchor" id="a04f5df44759216fd1182bd745cfc6a82"></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> CVC3::ArithTheoremProducer3::intType </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="arith__theorem__producer3_8h_source.html#l00072">72</a> of file <a class="el" href="arith__theorem__producer3_8h_source.html">arith_theorem_producer3.h</a>.</p>

<p>References <a class="el" href="arith__theorem__producer3_8h_source.html#l00033">d_theoryArith</a>, and <a class="el" href="theory__arith_8h_source.html#l00153">CVC3::TheoryArith::intType()</a>.</p>

</div>
</div>
<a class="anchor" id="afe495b6c58dd0c89c84b64c5194eeeaa"></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::ArithTheoremProducer3::darkShadow </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>lhs</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>rhs</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">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Construct the dark shadow expression representing lhs &lt;= rhs. </p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8h_source.html#l00074">74</a> of file <a class="el" href="arith__theorem__producer3_8h_source.html">arith_theorem_producer3.h</a>.</p>

<p>References <a class="el" href="arith__theorem__producer3_8h_source.html#l00033">d_theoryArith</a>, and <a class="el" href="theory__arith_8h_source.html#l00159">CVC3::TheoryArith::darkShadow()</a>.</p>

</div>
</div>
<a class="anchor" id="ab34039c1fcdbf7701cd0541dce2575c8"></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::ArithTheoremProducer3::grayShadow </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>v</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>e</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Rational.html">Rational</a> &amp;&#160;</td>
          <td class="paramname"><em>c1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Rational.html">Rational</a> &amp;&#160;</td>
          <td class="paramname"><em>c2</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">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Construct the gray shadow expression representing c1 &lt;= v - e &lt;= c2. </p>
<p>Alternatively, v = e + i for some i s.t. c1 &lt;= i &lt;= c2 </p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8h_source.html#l00080">80</a> of file <a class="el" href="arith__theorem__producer3_8h_source.html">arith_theorem_producer3.h</a>.</p>

<p>References <a class="el" href="arith__theorem__producer3_8h_source.html#l00033">d_theoryArith</a>, and <a class="el" href="theory__arith_8h_source.html#l00165">CVC3::TheoryArith::grayShadow()</a>.</p>

</div>
</div>
<a class="anchor" id="a23340f90880cb869fdcfe6e69a7a2631"></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> ArithTheoremProducer3::varToMult </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>==&gt; e = 1 * e </p>

<p>Implements <a class="el" href="classCVC3_1_1ArithProofRules.html#a8b8db5ad0a8d4968f429e98964db93c1">CVC3::ArithProofRules</a>.</p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l00056">56</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a878e091ad5cfd2877ddce73d6f664e16"></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> ArithTheoremProducer3::uMinusToMult </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>==&gt; -(e) = (-1) * e </p>

<p>Implements <a class="el" href="classCVC3_1_1ArithProofRules.html#aa95faca93e7b4a1cf21667ff88d390e4">CVC3::ArithProofRules</a>.</p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l00064">64</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="ab0d610d377cc20e3ce16823713d25403"></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> ArithTheoremProducer3::minusToPlus </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>
        </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>y</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>==&gt; x - y = x + (-1) * y </p>

<p>Implements <a class="el" href="classCVC3_1_1ArithProofRules.html#a4319c532082c0f43794b34a2fb9df73f">CVC3::ArithProofRules</a>.</p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l00072">72</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a9bf439248afb24bb63ea435193b68524"></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> ArithTheoremProducer3::canonUMinusToDivide </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>-(e) ==&gt; e / (-1); takes 'e' </p>
<p>Canon Rule for unary minus: it just converts it to division by -1, the result is not yet canonical: </p>

<p>Implements <a class="el" href="classCVC3_1_1ArithProofRules.html#a0053398d4a8fc49d9a2f8ede6949fc70">CVC3::ArithProofRules</a>.</p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l00082">82</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a3a2bf5e3b8c71543b1512f1606825a02"></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> ArithTheoremProducer3::canonDivideConst </td>
          <td>(</td>
          <td class="paramtype">const <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">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>(c) / d ==&gt; (c/d), takes c and d </p>
<p>Canon Rules for division by constant 'd' </p>

<p>Implements <a class="el" href="classCVC3_1_1ArithProofRules.html#a79c759f2bb7dc41ed98c5962febef804">CVC3::ArithProofRules</a>.</p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l00091">91</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

<p>References <a class="el" href="theorem__producer_8h_source.html#l00087">CHECK_PROOFS</a>, <a class="el" href="theorem__producer_8h_source.html#l00083">CHECK_SOUND</a>, <a class="el" href="arith__theorem__producer3_8cpp_source.html#l00052">CLASS_NAME</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>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

</div>
</div>
<a class="anchor" id="a39a2efadcc13383fd860340c6d76db54"></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> ArithTheoremProducer3::canonDivideMult </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>cx</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>(c * x) / d ==&gt; (c/d) * x, takes (c*x) and d </p>

<p>Implements <a class="el" href="classCVC3_1_1ArithProofRules.html#aee487a2a1e8ce4c34075568eb70ea874">CVC3::ArithProofRules</a>.</p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l00110">110</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

<p>References <a class="el" href="theorem__producer_8h_source.html#l00087">CHECK_PROOFS</a>, <a class="el" href="theorem__producer_8h_source.html#l00083">CHECK_SOUND</a>, <a class="el" href="arith__theorem__producer3_8cpp_source.html#l00052">CLASS_NAME</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#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="a897c950b6bb741189f1c33752159b587"></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> ArithTheoremProducer3::canonDividePlus </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>e</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_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>(+ c ...)/d ==&gt; push division to all the coefficients. </p>
<p>The result is not canonical, but canonizing the summands will make it canonical. Takes (+ c ...) and d </p>

<p>Implements <a class="el" href="classCVC3_1_1ArithProofRules.html#a92846ee0cdab98d1759a13ff7e8d710d">CVC3::ArithProofRules</a>.</p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l00138">138</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.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="theorem__producer_8h_source.html#l00087">CHECK_PROOFS</a>, <a class="el" href="theorem__producer_8h_source.html#l00083">CHECK_SOUND</a>, <a class="el" href="arith__theorem__producer3_8cpp_source.html#l00052">CLASS_NAME</a>, <a class="el" href="expr_8h_source.html#l01217">CVC3::Expr::end()</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#l00199">CVC3::plusExpr()</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

</div>
</div>
<a class="anchor" id="a9fddb49ed54796e6a5487be554eb14f4"></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> ArithTheoremProducer3::canonDivideVar </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>e</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_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>x / d ==&gt; (1/d) * x, takes x and d </p>

<p>Implements <a class="el" href="classCVC3_1_1ArithProofRules.html#a4ab0351b340ecb82d6ced530e4f30510">CVC3::ArithProofRules</a>.</p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l00161">161</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

<p>References <a class="el" href="theorem__producer_8h_source.html#l00087">CHECK_PROOFS</a>, <a class="el" href="theorem__producer_8h_source.html#l00083">CHECK_SOUND</a>, <a class="el" href="arith__theorem__producer3_8cpp_source.html#l00052">CLASS_NAME</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>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

</div>
</div>
<a class="anchor" id="a1923e590a205cefe9ef50d336e99c9e5"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool ArithTheoremProducer3::greaterthan </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>l</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>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">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l02354">2354</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.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="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="expr_8h_source.html#l00431">CVC3::Expr::isRational()</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>, and <a class="el" href="kinds_8h_source.html#l00037">RATIONAL_EXPR</a>.</p>

</div>
</div>
<a class="anchor" id="aea589889127864f327d4d71800f096b7"></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> ArithTheoremProducer3::simplifiedMultExpr </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>mulKids</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>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l00196">196</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

<p>References <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, and <a class="el" href="theory__arith_8h_source.html#l00207">CVC3::multExpr()</a>.</p>

</div>
</div>
<a class="anchor" id="ad49508debdf58df9d8333cd140c850a3"></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> ArithTheoremProducer3::canonMultConstMult </td>
          <td>(</td>
          <td class="paramtype">const <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">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>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l00209">209</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.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="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#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#l00044">CVC3::MULT</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

</div>
</div>
<a class="anchor" id="a747b71c44a0bad76328039a2fc123363"></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> ArithTheoremProducer3::canonMultConstPlus </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>e1</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>e2</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>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l00231">231</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.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="expr_8h_source.html#l01168">CVC3::Expr::getKind()</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>, <a class="el" href="expr_8h_source.html#l00431">CVC3::Expr::isRational()</a>, and <a class="el" href="theory__arith_8h_source.html#l00042">CVC3::PLUS</a>.</p>

</div>
</div>
<a class="anchor" id="ae709408bffa6ff2016619a05febe63f5"></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> ArithTheoremProducer3::canonMultPowPow </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>e1</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>e2</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>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l00250">250</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

<p>References <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="expr_8h_source.html#l01168">CVC3::Expr::getKind()</a>, <a class="el" href="expr_8h_source.html#l01135">CVC3::Expr::getRational()</a>, <a class="el" href="theory__arith_8h_source.html#l00046">CVC3::POW</a>, and <a class="el" href="theory__arith_8h_source.html#l00216">CVC3::powExpr()</a>.</p>

</div>
</div>
<a class="anchor" id="a1765748e34d12d99b3bdf57f3ba49d49"></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> ArithTheoremProducer3::canonMultPowLeaf </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>e1</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>e2</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>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l00290">290</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

<p>References <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="expr_8h_source.html#l01168">CVC3::Expr::getKind()</a>, <a class="el" href="expr_8h_source.html#l01135">CVC3::Expr::getRational()</a>, <a class="el" href="theory__arith_8h_source.html#l00046">CVC3::POW</a>, and <a class="el" href="theory__arith_8h_source.html#l00216">CVC3::powExpr()</a>.</p>

</div>
</div>
<a class="anchor" id="ad9ff33794685a95c453d41bf1fd9d0aa"></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> ArithTheoremProducer3::canonMultLeafLeaf </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>e1</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>e2</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>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l00329">329</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

<p>References <a class="el" href="theory__arith_8h_source.html#l00216">CVC3::powExpr()</a>.</p>

</div>
</div>
<a class="anchor" id="a9bf1d7c7d567deab2e5decc8c4e82fdc"></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> ArithTheoremProducer3::canonMultLeafOrPowMult </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>e1</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>e2</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>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l00357">357</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.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="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#l00044">CVC3::MULT</a>, <a class="el" href="theory__arith_8h_source.html#l00046">CVC3::POW</a>, and <a class="el" href="theory__arith_8h_source.html#l00216">CVC3::powExpr()</a>.</p>

</div>
</div>
<a class="anchor" id="af61545eb36910fba4fa1b69e6febb354"></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> ArithTheoremProducer3::canonCombineLikeTerms </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>sumExprs</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>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l00429">429</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.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="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="expr_8h_source.html#l00431">CVC3::Expr::isRational()</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>, and <a class="el" href="theory__arith_8h_source.html#l00199">CVC3::plusExpr()</a>.</p>

</div>
</div>
<a class="anchor" id="ad5dec14920bc52be7b9fdfb458ba2e1b"></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> ArithTheoremProducer3::canonMultLeafOrPowOrMultPlus </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>e1</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>e2</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>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l00510">510</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

<p>References <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="expr_8h_source.html#l01168">CVC3::Expr::getKind()</a>, and <a class="el" href="theory__arith_8h_source.html#l00042">CVC3::PLUS</a>.</p>

</div>
</div>
<a class="anchor" id="ab327e6f313e952c0380fe7460bd7d36c"></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> ArithTheoremProducer3::canonMultPlusPlus </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>e1</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>e2</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>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l00529">529</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

<p>References <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="expr_8h_source.html#l01168">CVC3::Expr::getKind()</a>, and <a class="el" href="theory__arith_8h_source.html#l00042">CVC3::PLUS</a>.</p>

</div>
</div>
<a class="anchor" id="aa1ab000ca8a6a2605b2cb57f8b881d91"></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> ArithTheoremProducer3::canonMultMtermMterm </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>Implements <a class="el" href="classCVC3_1_1ArithProofRules.html#aa38d5c06ebe0b672570641fe933cfedb">CVC3::ArithProofRules</a>.</p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l00553">553</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

<p>References <a class="el" href="expr_8h_source.html#l01201">CVC3::Expr::arity()</a>, <a class="el" href="theorem__producer_8h_source.html#l00087">CHECK_PROOFS</a>, <a class="el" href="theorem__producer_8h_source.html#l00083">CHECK_SOUND</a>, <a class="el" href="debug_8h_source.html#l00037">FatalAssert</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#l00183">CVC3::isMult()</a>, <a class="el" href="expr_8h_source.html#l00431">CVC3::Expr::isRational()</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>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

</div>
</div>
<a class="anchor" id="acbd2c2b8d5a0728aa00dcf55c7c646f2"></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> ArithTheoremProducer3::canonPlus </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>Canonize (PLUS t1 ... tn) </p>

<p>Implements <a class="el" href="classCVC3_1_1ArithProofRules.html#a225fe511e6f654f313048e86c1550510">CVC3::ArithProofRules</a>.</p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l00718">718</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

<p>References <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="expr_8h_source.html#l01168">CVC3::Expr::getKind()</a>, and <a class="el" href="theory__arith_8h_source.html#l00042">CVC3::PLUS</a>.</p>

</div>
</div>
<a class="anchor" id="addd3884d42a6e4637e9bda79d4af6574"></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> ArithTheoremProducer3::canonInvertConst </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>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l00769">769</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

<p>References <a class="el" href="theorem__producer_8h_source.html#l00087">CHECK_PROOFS</a>, <a class="el" href="theorem__producer_8h_source.html#l00083">CHECK_SOUND</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>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

</div>
</div>
<a class="anchor" id="a84b1ec96629fa2ae52792a582ba7a63a"></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> ArithTheoremProducer3::canonInvertLeaf </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>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l00785">785</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

<p>References <a class="el" href="theory__arith_8h_source.html#l00216">CVC3::powExpr()</a>.</p>

</div>
</div>
<a class="anchor" id="a02b89064723281b69105ce11ecaf80c7"></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> ArithTheoremProducer3::canonInvertPow </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>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l00797">797</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

<p>References <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="expr_8h_source.html#l01168">CVC3::Expr::getKind()</a>, <a class="el" href="theory__arith_8h_source.html#l00046">CVC3::POW</a>, <a class="el" href="theory__arith_8h_source.html#l00216">CVC3::powExpr()</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

</div>
</div>
<a class="anchor" id="a94090722e5ab797e97cdb14458c40742"></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> ArithTheoremProducer3::canonInvertMult </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>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l00816">816</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

<p>References <a class="el" href="expr_8h_source.html#l01201">CVC3::Expr::arity()</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="expr_8h_source.html#l01168">CVC3::Expr::getKind()</a>, <a class="el" href="theory__arith_8h_source.html#l00044">CVC3::MULT</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

</div>
</div>
<a class="anchor" id="a1a4b78b01763b1ca5a80c0211bc3ba4b"></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> ArithTheoremProducer3::canonInvert </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>==&gt; 1/e = e' where e' is canonical; takes e. </p>

<p>Implements <a class="el" href="classCVC3_1_1ArithProofRules.html#a9a806d487932bbfa9a019d4d1eed1cea">CVC3::ArithProofRules</a>.</p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l00839">839</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

<p>References <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="expr_8h_source.html#l01168">CVC3::Expr::getKind()</a>, <a class="el" href="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>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

</div>
</div>
<a class="anchor" id="aad289f36b55fe8be7f7af0f62aedaae8"></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> ArithTheoremProducer3::moveSumConstantRight </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>Transform e = (SUM r t1 ... tn) @ 0 into (SUM t1 ... tn) @ -r. The first sum term (r) must be a rational and t1 ... tn terms must be canonised.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">e</td><td>the expression to transform </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>rewrite theorem representing the transformation </dd></dl>

<p>Implements <a class="el" href="classCVC3_1_1ArithProofRules.html#a18e5970bc4f670a63ca5775750f099ab">CVC3::ArithProofRules</a>.</p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l00861">861</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

<p>References <a class="el" href="expr_8h_source.html#l01211">CVC3::Expr::begin()</a>, <a class="el" href="theorem__producer_8h_source.html#l00087">CHECK_PROOFS</a>, <a class="el" href="theorem__producer_8h_source.html#l00083">CHECK_SOUND</a>, <a class="el" href="expr_8h_source.html#l01217">CVC3::Expr::end()</a>, <a class="el" href="expr_8h_source.html#l01168">CVC3::Expr::getKind()</a>, <a class="el" href="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#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#l00199">CVC3::plusExpr()</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>

</div>
</div>
<a class="anchor" id="acfe4060947cb28e9fc9c4ea859df565c"></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> ArithTheoremProducer3::canonDivide </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>e[0]/e[1] ==&gt; e[0]*(e[1])^-1 </p>

<p>Implements <a class="el" href="classCVC3_1_1ArithProofRules.html#a198b0b44145b8e33555ffd212f43b7b3">CVC3::ArithProofRules</a>.</p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l00907">907</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.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#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>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

</div>
</div>
<a class="anchor" id="a627a219305f83b200e36b28b1865729a"></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> ArithTheoremProducer3::canonMult </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>Multiply out the operands of the multiplication (each of them is expected to be canonised </p>

<p>Implements <a class="el" href="classCVC3_1_1ArithProofRules.html#aca910e6ff44389aac100b14b486c1942">CVC3::ArithProofRules</a>.</p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l00751">751</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.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="expr_8h_source.html#l01168">CVC3::Expr::getKind()</a>, and <a class="el" href="theory__arith_8h_source.html#l00044">CVC3::MULT</a>.</p>

</div>
</div>
<a class="anchor" id="a401fca0c453a94c8c0053eb77e014af0"></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> ArithTheoremProducer3::canonMultTermConst </td>
          <td>(</td>
          <td class="paramtype">const <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">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>t</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>t*c ==&gt; c*t, takes constant c and term t </p>

<p>Implements <a class="el" href="classCVC3_1_1ArithProofRules.html#a11870b90dbfcc61d2b9a2820df7f6057">CVC3::ArithProofRules</a>.</p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l00925">925</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

<p>References <a class="el" href="theorem__producer_8h_source.html#l00087">CHECK_PROOFS</a>, <a class="el" href="theorem__producer_8h_source.html#l00083">CHECK_SOUND</a>, <a class="el" href="arith__theorem__producer3_8cpp_source.html#l00052">CLASS_NAME</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="a294916be1e9ac30e3c824b0b8e4ff093"></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> ArithTheoremProducer3::canonMultTerm1Term2 </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>t1</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>t2</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>t1*t2 ==&gt; Error, takes t1 and t2 where both are non-constants </p>

<p>Implements <a class="el" href="classCVC3_1_1ArithProofRules.html#a8b9abf99f0b013714eaaa49e81a618b9">CVC3::ArithProofRules</a>.</p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l00939">939</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

<p>References <a class="el" href="theorem__producer_8h_source.html#l00087">CHECK_PROOFS</a>, <a class="el" href="theorem__producer_8h_source.html#l00083">CHECK_SOUND</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

</div>
</div>
<a class="anchor" id="a55fb07d5df2b4068bf5df327ae0d89d4"></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> ArithTheoremProducer3::canonMultZero </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>0*t ==&gt; 0, takes 0*t </p>

<p>Implements <a class="el" href="classCVC3_1_1ArithProofRules.html#aae559b4d1558fecba5621c9ba27daa88">CVC3::ArithProofRules</a>.</p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l00952">952</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="aed0a2d1337910f3027ac867e0f18b8de"></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> ArithTheoremProducer3::canonMultOne </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>1*t ==&gt; t, takes 1*t </p>

<p>Implements <a class="el" href="classCVC3_1_1ArithProofRules.html#a87f9a39ecb1bec46adff5187bc899726">CVC3::ArithProofRules</a>.</p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l00960">960</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a4ea3884dff8c1606fd05e61eb78e379d"></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> ArithTheoremProducer3::canonMultConstConst </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>c1</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>c2</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>c1*c2 ==&gt; c', takes constant c1*c2 </p>

<p>Implements <a class="el" href="classCVC3_1_1ArithProofRules.html#a71be38a9fa2d89e147ac4fde35c49e21">CVC3::ArithProofRules</a>.</p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l00969">969</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

<p>References <a class="el" href="theorem__producer_8h_source.html#l00087">CHECK_PROOFS</a>, <a class="el" href="theorem__producer_8h_source.html#l00083">CHECK_SOUND</a>, <a class="el" href="arith__theorem__producer3_8cpp_source.html#l00052">CLASS_NAME</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>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

</div>
</div>
<a class="anchor" id="a9e5b7c75f1f662071942150df1a4d69e"></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> ArithTheoremProducer3::canonMultConstTerm </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>c1</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>c2</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>t</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>c1*(c2*t) ==&gt; c'*t, takes c1 and c2 and t </p>

<p>Implements <a class="el" href="classCVC3_1_1ArithProofRules.html#a96b1cb83272cf80c2de663de429e6a15">CVC3::ArithProofRules</a>.</p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l00987">987</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

<p>References <a class="el" href="theorem__producer_8h_source.html#l00087">CHECK_PROOFS</a>, <a class="el" href="theorem__producer_8h_source.html#l00083">CHECK_SOUND</a>, <a class="el" href="arith__theorem__producer3_8cpp_source.html#l00052">CLASS_NAME</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>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

</div>
</div>
<a class="anchor" id="a2765c1485aac81cc42ed3186f7a1f244"></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> ArithTheoremProducer3::canonMultConstSum </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>c1</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">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>c1*(+ c2 v1 ...) ==&gt; (+ c' c1v1 ...), takes c1 and the sum </p>

<p>Implements <a class="el" href="classCVC3_1_1ArithProofRules.html#a978068749de266dbbba2000d9e0c3d39">CVC3::ArithProofRules</a>.</p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l01007">1007</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

<p>References <a class="el" href="expr_8h_source.html#l01211">CVC3::Expr::begin()</a>, <a class="el" href="theorem__producer_8h_source.html#l00087">CHECK_PROOFS</a>, <a class="el" href="theorem__producer_8h_source.html#l00083">CHECK_SOUND</a>, <a class="el" href="arith__theorem__producer3_8cpp_source.html#l00052">CLASS_NAME</a>, <a class="el" href="expr_8h_source.html#l01217">CVC3::Expr::end()</a>, <a class="el" href="expr_8h_source.html#l01168">CVC3::Expr::getKind()</a>, <a class="el" href="theory__arith_8h_source.html#l00177">CVC3::isRational()</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>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

</div>
</div>
<a class="anchor" id="a5347a8208d4d7aa05fad463bd6da8c41"></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> ArithTheoremProducer3::canonPowConst </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>pow</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>c^n = c' (compute the constant power expression) </p>

<p>Implements <a class="el" href="classCVC3_1_1ArithProofRules.html#a999f13a6fa4a6d8cbe97f02f93fc9ed3">CVC3::ArithProofRules</a>.</p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l01030">1030</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

<p>References <a class="el" href="expr_8h_source.html#l01201">CVC3::Expr::arity()</a>, <a class="el" href="theorem__producer_8h_source.html#l00087">CHECK_PROOFS</a>, <a class="el" href="theorem__producer_8h_source.html#l00083">CHECK_SOUND</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#a1366320f4de558bb964c67f8aecedb36">CVC3::Rational::isInteger()</a>, <a class="el" href="expr_8h_source.html#l00431">CVC3::Expr::isRational()</a>, <a class="el" href="theory__arith_8h_source.html#l00046">CVC3::POW</a>, <a class="el" href="rational_8h_source.html#l00159">CVC3::pow()</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

</div>
</div>
<a class="anchor" id="a5ec4889e730c0b1d4fb584d16af08a9d"></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> ArithTheoremProducer3::canonFlattenSum </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>flattens the input. accepts a PLUS expr </p>

<p>Implements <a class="el" href="classCVC3_1_1ArithProofRules.html#af0f4877d7326a53faec76bef54a3d400">CVC3::ArithProofRules</a>.</p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l01057">1057</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

<p>References <a class="el" href="expr_8h_source.html#l01211">CVC3::Expr::begin()</a>, <a class="el" href="theorem__producer_8h_source.html#l00087">CHECK_PROOFS</a>, <a class="el" href="theorem__producer_8h_source.html#l00083">CHECK_SOUND</a>, <a class="el" href="arith__theorem__producer3_8cpp_source.html#l00052">CLASS_NAME</a>, <a class="el" href="expr_8h_source.html#l01217">CVC3::Expr::end()</a>, <a class="el" href="expr_8h_source.html#l01168">CVC3::Expr::getKind()</a>, <a class="el" href="theory__arith_8h_source.html#l00042">CVC3::PLUS</a>, <a class="el" href="theory__arith_8h_source.html#l00199">CVC3::plusExpr()</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

</div>
</div>
<a class="anchor" id="a245f64776d0b1fbd14d18bb145f717e4"></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> ArithTheoremProducer3::canonComboLikeTerms </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>combine like terms. accepts a flattened PLUS expr </p>

<p>Implements <a class="el" href="classCVC3_1_1ArithProofRules.html#a1da0c47c02ff2392ca3e0b6493ac4823">CVC3::ArithProofRules</a>.</p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l01084">1084</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.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="expr_8h_source.html#l01211">CVC3::Expr::begin()</a>, <a class="el" href="theorem__producer_8h_source.html#l00087">CHECK_PROOFS</a>, <a class="el" href="theorem__producer_8h_source.html#l00083">CHECK_SOUND</a>, <a class="el" href="arith__theorem__producer3_8cpp_source.html#l00052">CLASS_NAME</a>, <a class="el" href="expr__map_8h_source.html#l00173">CVC3::ExprMap&lt; Data &gt;::count()</a>, <a class="el" href="expr__map_8h_source.html#l00191">CVC3::ExprMap&lt; Data &gt;::end()</a>, <a class="el" href="expr_8h_source.html#l01217">CVC3::Expr::end()</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="expr_8h_source.html#l00431">CVC3::Expr::isRational()</a>, <a class="el" href="theory__arith_8h_source.html#l00199">CVC3::plusExpr()</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

</div>
</div>
<a class="anchor" id="a57eafe7c2a127ca4b4706437b777d610"></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> ArithTheoremProducer3::multEqZero </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></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>Implements <a class="el" href="classCVC3_1_1ArithProofRules.html#af8f4f59bd12fdd8f93d1fd49ae41279e">CVC3::ArithProofRules</a>.</p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l01142">1142</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.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="theorem__producer_8h_source.html#l00087">CHECK_PROOFS</a>, <a class="el" href="theorem__producer_8h_source.html#l00083">CHECK_SOUND</a>, <a class="el" href="expr_8h_source.html#l01217">CVC3::Expr::end()</a>, <a class="el" href="expr_8h_source.html#l01135">CVC3::Expr::getRational()</a>, <a class="el" href="expr_8h_source.html#l00419">CVC3::Expr::isEq()</a>, <a class="el" href="theory__arith_8h_source.html#l00183">CVC3::isMult()</a>, <a class="el" href="expr_8h_source.html#l00431">CVC3::Expr::isRational()</a>, <a class="el" href="kinds_8h_source.html#l00068">OR</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

</div>
</div>
<a class="anchor" id="acbea7826fe54b91e8d4bc2c21f7137ae"></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> ArithTheoremProducer3::powEqZero </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></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>Implements <a class="el" href="classCVC3_1_1ArithProofRules.html#af17a5dbf4ebbe9d7e46d63ad1284ddaf">CVC3::ArithProofRules</a>.</p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l01165">1165</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

<p>References <a class="el" href="expr_8h_source.html#l01201">CVC3::Expr::arity()</a>, <a class="el" href="theorem__producer_8h_source.html#l00087">CHECK_PROOFS</a>, <a class="el" href="theorem__producer_8h_source.html#l00083">CHECK_SOUND</a>, <a class="el" href="expr_8h_source.html#l00929">CVC3::Expr::eqExpr()</a>, <a class="el" href="expr_8h_source.html#l01135">CVC3::Expr::getRational()</a>, <a class="el" href="expr_8h_source.html#l00419">CVC3::Expr::isEq()</a>, <a class="el" href="theory__arith_8h_source.html#l00185">CVC3::isPow()</a>, <a class="el" href="expr_8h_source.html#l00431">CVC3::Expr::isRational()</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

</div>
</div>
<a class="anchor" id="ab29b63e40b7f2c624e6e4f11c4eff27e"></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> ArithTheoremProducer3::elimPower </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></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>Implements <a class="el" href="classCVC3_1_1ArithProofRules.html#a0e6f19ba5333f667efa3a0e3d8787775">CVC3::ArithProofRules</a>.</p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l01192">1192</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

<p>References <a class="el" href="theorem__producer_8h_source.html#l00087">CHECK_PROOFS</a>, <a class="el" href="theorem__producer_8h_source.html#l00083">CHECK_SOUND</a>, <a class="el" href="expr_8h_source.html#l00929">CVC3::Expr::eqExpr()</a>, <a class="el" href="expr_8h_source.html#l01135">CVC3::Expr::getRational()</a>, <a class="el" href="expr_8h_source.html#l00419">CVC3::Expr::isEq()</a>, <a class="el" href="theory__arith_8h_source.html#l00178">CVC3::isIntegerConst()</a>, <a class="el" href="theory__arith_8h_source.html#l00185">CVC3::isPow()</a>, <a class="el" href="expr_8h_source.html#l00951">CVC3::Expr::orExpr()</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

</div>
</div>
<a class="anchor" id="a942f9f0fc0ceff798b607e9fe032175a"></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> ArithTheoremProducer3::elimPowerConst </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>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Rational.html">Rational</a> &amp;&#160;</td>
          <td class="paramname"><em>root</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>Implements <a class="el" href="classCVC3_1_1ArithProofRules.html#a0e240fba4eac33522b24be6581d98346">CVC3::ArithProofRules</a>.</p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l01217">1217</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

<p>References <a class="el" href="theorem__producer_8h_source.html#l00087">CHECK_PROOFS</a>, <a class="el" href="theorem__producer_8h_source.html#l00083">CHECK_SOUND</a>, <a class="el" href="expr_8h_source.html#l00929">CVC3::Expr::eqExpr()</a>, <a class="el" href="expr_8h_source.html#l01135">CVC3::Expr::getRational()</a>, <a class="el" href="expr_8h_source.html#l00419">CVC3::Expr::isEq()</a>, <a class="el" href="theory__arith_8h_source.html#l00178">CVC3::isIntegerConst()</a>, <a class="el" href="theory__arith_8h_source.html#l00185">CVC3::isPow()</a>, <a class="el" href="expr_8h_source.html#l00431">CVC3::Expr::isRational()</a>, <a class="el" href="expr_8h_source.html#l00951">CVC3::Expr::orExpr()</a>, <a class="el" href="rational_8h_source.html#l00159">CVC3::pow()</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

</div>
</div>
<a class="anchor" id="abe913a6cc9430faf8f0ac50ec51aa36c"></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> ArithTheoremProducer3::evenPowerEqNegConst </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></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>Implements <a class="el" href="classCVC3_1_1ArithProofRules.html#a80f948f405f0b1a88283c97b70aab43e">CVC3::ArithProofRules</a>.</p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l01241">1241</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

<p>References <a class="el" href="theorem__producer_8h_source.html#l00087">CHECK_PROOFS</a>, <a class="el" href="theorem__producer_8h_source.html#l00083">CHECK_SOUND</a>, <a class="el" href="expr_8h_source.html#l01135">CVC3::Expr::getRational()</a>, <a class="el" href="expr_8h_source.html#l00419">CVC3::Expr::isEq()</a>, <a class="el" href="theory__arith_8h_source.html#l00178">CVC3::isIntegerConst()</a>, <a class="el" href="theory__arith_8h_source.html#l00185">CVC3::isPow()</a>, <a class="el" href="expr_8h_source.html#l00431">CVC3::Expr::isRational()</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

</div>
</div>
<a class="anchor" id="a946832931094bb746277d8b95c471690"></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> ArithTheoremProducer3::intEqIrrational </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>, </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>isInt</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>Implements <a class="el" href="classCVC3_1_1ArithProofRules.html#aff57d78a7d743fffd21de7d4415df3e4">CVC3::ArithProofRules</a>.</p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l01260">1260</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

<p>References <a class="el" href="theorem__producer_8h_source.html#l00087">CHECK_PROOFS</a>, <a class="el" href="theorem__producer_8h_source.html#l00083">CHECK_SOUND</a>, <a class="el" href="theorem_8cpp_source.html#l00385">CVC3::Theorem::getAssumptionsRef()</a>, <a class="el" href="theorem_8cpp_source.html#l00230">CVC3::Theorem::getExpr()</a>, <a class="el" href="theorem_8cpp_source.html#l00402">CVC3::Theorem::getProof()</a>, <a class="el" href="expr_8h_source.html#l01135">CVC3::Expr::getRational()</a>, <a class="el" href="expr_8h_source.html#l00419">CVC3::Expr::isEq()</a>, <a class="el" href="theory__arith_8h_source.html#l00178">CVC3::isIntegerConst()</a>, <a class="el" href="theory__arith_8h_source.html#l00194">CVC3::isIntPred()</a>, <a class="el" href="theory__arith_8h_source.html#l00185">CVC3::isPow()</a>, <a class="el" href="expr_8h_source.html#l00431">CVC3::Expr::isRational()</a>, <a class="el" href="rational_8h_source.html#l00172">CVC3::ratRoot()</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

</div>
</div>
<a class="anchor" id="a7a2a8059fa49da5a8877b28b1cfa445a"></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> ArithTheoremProducer3::constPredicate </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>e0 @ e1 &lt;==&gt; true | false, where @ is {=,&lt;,&lt;=,&gt;,&gt;=} </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">e</td><td>takes e is (e0@e1) where e0 and e1 are constants </td></tr>
  </table>
  </dd>
</dl>

<p>Implements <a class="el" href="classCVC3_1_1ArithProofRules.html#a8dd6bb6fed9a4745469b0cad5ed4a139">CVC3::ArithProofRules</a>.</p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l01287">1287</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

<p>References <a class="el" href="expr_8h_source.html#l01201">CVC3::Expr::arity()</a>, <a class="el" href="theorem__producer_8h_source.html#l00087">CHECK_PROOFS</a>, <a class="el" href="theorem__producer_8h_source.html#l00083">CHECK_SOUND</a>, <a class="el" href="arith__theorem__producer3_8cpp_source.html#l00052">CLASS_NAME</a>, <a class="el" href="kinds_8h_source.html#l00061">EQ</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="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>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

</div>
</div>
<a class="anchor" id="aca76a2dbee73d7ad9e2529ac8ce142a4"></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> ArithTheoremProducer3::rightMinusLeft </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>e[0] @ e[1] &lt;==&gt; 0 @ e[1] - e[0], where @ is {=,&lt;,&lt;=,&gt;,&gt;=} </p>

<p>Implements <a class="el" href="classCVC3_1_1ArithProofRules.html#acde77bf4aa73ff6b9a079b372ed7cc51">CVC3::ArithProofRules</a>.</p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l01326">1326</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

<p>References <a class="el" href="theorem__producer_8h_source.html#l00087">CHECK_PROOFS</a>, <a class="el" href="theorem__producer_8h_source.html#l00083">CHECK_SOUND</a>, <a class="el" href="kinds_8h_source.html#l00061">EQ</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#l01183">CVC3::Expr::getOp()</a>, <a class="el" href="theory__arith_8h_source.html#l00051">CVC3::GT</a>, <a class="el" href="theory__arith_8h_source.html#l00050">CVC3::LE</a>, and <a class="el" href="theory__arith_8h_source.html#l00049">CVC3::LT</a>.</p>

</div>
</div>
<a class="anchor" id="aedad2be1c60515921f8c3761581afca5"></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> ArithTheoremProducer3::leftMinusRight </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>e[0] @ e[1] &lt;==&gt; e[0] - e[1] @ 0, where @ is {=,&lt;,&lt;=,&gt;,&gt;=} </p>

<p>Implements <a class="el" href="classCVC3_1_1ArithProofRules.html#a0201544f06baaba23df9946f5da47978">CVC3::ArithProofRules</a>.</p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l01344">1344</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

<p>References <a class="el" href="theorem__producer_8h_source.html#l00087">CHECK_PROOFS</a>, <a class="el" href="theorem__producer_8h_source.html#l00083">CHECK_SOUND</a>, <a class="el" href="kinds_8h_source.html#l00061">EQ</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#l01183">CVC3::Expr::getOp()</a>, <a class="el" href="theory__arith_8h_source.html#l00051">CVC3::GT</a>, <a class="el" href="theory__arith_8h_source.html#l00050">CVC3::LE</a>, and <a class="el" href="theory__arith_8h_source.html#l00049">CVC3::LT</a>.</p>

</div>
</div>
<a class="anchor" id="ab190e4d8fefb74f2a8117ca17ae49b48"></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> ArithTheoremProducer3::plusPredicate </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>
        </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>y</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>z</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>kind</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>x @ y &lt;==&gt; x + z @ y + z, where @ is {=,&lt;,&lt;=,&gt;,&gt;=} (given as 'kind') </p>

<p>Implements <a class="el" href="classCVC3_1_1ArithProofRules.html#a0fa920a2a5cfa4419dbde10b1d913687">CVC3::ArithProofRules</a>.</p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l01362">1362</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

<p>References <a class="el" href="theorem__producer_8h_source.html#l00087">CHECK_PROOFS</a>, <a class="el" href="theorem__producer_8h_source.html#l00083">CHECK_SOUND</a>, <a class="el" href="kinds_8h_source.html#l00061">EQ</a>, <a class="el" href="theory__arith_8h_source.html#l00052">CVC3::GE</a>, <a class="el" href="theory__arith_8h_source.html#l00051">CVC3::GT</a>, <a class="el" href="theory__arith_8h_source.html#l00050">CVC3::LE</a>, <a class="el" href="minisat__heap_8h_source.html#l00053">MiniSat::left()</a>, <a class="el" href="theory__arith_8h_source.html#l00049">CVC3::LT</a>, and <a class="el" href="minisat__heap_8h_source.html#l00054">MiniSat::right()</a>.</p>

</div>
</div>
<a class="anchor" id="afd7a6da45999fb3237cdbbbf9c5f19e8"></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> ArithTheoremProducer3::multEqn </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>
        </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>y</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>z</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>x = y &lt;==&gt; x * z = y * z, where z is a non-zero constant </p>

<p>Implements <a class="el" href="classCVC3_1_1ArithProofRules.html#ad62d795eb10e67c655c608774881bde3">CVC3::ArithProofRules</a>.</p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l01381">1381</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

<p>References <a class="el" href="theorem__producer_8h_source.html#l00087">CHECK_PROOFS</a>, <a class="el" href="theorem__producer_8h_source.html#l00083">CHECK_SOUND</a>, <a class="el" href="expr_8h_source.html#l00929">CVC3::Expr::eqExpr()</a>, <a class="el" href="expr_8h_source.html#l01135">CVC3::Expr::getRational()</a>, and <a class="el" href="expr_8h_source.html#l00431">CVC3::Expr::isRational()</a>.</p>

</div>
</div>
<a class="anchor" id="a7bf31f4d4bd6e3f7ff7e37dd5236a792"></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> ArithTheoremProducer3::divideEqnNonConst </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>
        </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>y</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>z</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>Implements <a class="el" href="classCVC3_1_1ArithProofRules.html#a419dd84177b5ca1fda7a23f3052b6132">CVC3::ArithProofRules</a>.</p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l01394">1394</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

<p>References <a class="el" href="expr_8h_source.html#l00929">CVC3::Expr::eqExpr()</a>, and <a class="el" href="expr_8h_source.html#l00955">CVC3::orExpr()</a>.</p>

</div>
</div>
<a class="anchor" id="a8af6455fe4a8889cfb7b0b8c865b847c"></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> ArithTheoremProducer3::multIneqn </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>e</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>z</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>Multiplying inequation by a non-zero constant. </p>
<p>z&gt;0 ==&gt; e[0] @ e[1] &lt;==&gt; e[0]*z @ e[1]*z</p>
<p>z&lt;0 ==&gt; e[0] @ e[1] &lt;==&gt; e[1]*z @ e[0]*z</p>
<p>for @ in {&lt;,&lt;=,&gt;,&gt;=}: </p>

<p>Implements <a class="el" href="classCVC3_1_1ArithProofRules.html#a70e83cfbc207a5d15fedd4adde7e9e76">CVC3::ArithProofRules</a>.</p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l01406">1406</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

<p>References <a class="el" href="theorem__producer_8h_source.html#l00087">CHECK_PROOFS</a>, <a class="el" href="theorem__producer_8h_source.html#l00083">CHECK_SOUND</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#l01183">CVC3::Expr::getOp()</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#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>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

</div>
</div>
<a class="anchor" id="ad2f144d3a2ffe108e0d8e7df8e263832"></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> ArithTheoremProducer3::eqToIneq </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>x = y ==&gt; x &lt;= y and x &gt;= y </p>

<p>Implements <a class="el" href="classCVC3_1_1ArithProofRules.html#a646e312e12d5d23dca0c4db39d2c9fb9">CVC3::ArithProofRules</a>.</p>

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

<p>References <a class="el" href="expr_8h_source.html#l00945">CVC3::andExpr()</a>, <a class="el" href="theorem__producer_8h_source.html#l00087">CHECK_PROOFS</a>, <a class="el" href="theorem__producer_8h_source.html#l00083">CHECK_SOUND</a>, <a class="el" href="theory__arith_8h_source.html#l00227">CVC3::geExpr()</a>, <a class="el" href="expr_8h_source.html#l00419">CVC3::Expr::isEq()</a>, <a class="el" href="theory__arith_8h_source.html#l00223">CVC3::leExpr()</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

</div>
</div>
<a class="anchor" id="a216a950228aad3cdef0c5dd5213be4fb"></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> ArithTheoremProducer3::flipInequality </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>"op1 GE|GT op2" &lt;==&gt; op2 LE|LT op1 </p>

<p>Implements <a class="el" href="classCVC3_1_1ArithProofRules.html#aff4a01da77770b0b60089444c83c9cef">CVC3::ArithProofRules</a>.</p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l01455">1455</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

<p>References <a class="el" href="theorem__producer_8h_source.html#l00087">CHECK_PROOFS</a>, <a class="el" href="theorem__producer_8h_source.html#l00083">CHECK_SOUND</a>, <a class="el" href="theory__arith_8h_source.html#l00189">CVC3::isGE()</a>, <a class="el" href="theory__arith_8h_source.html#l00188">CVC3::isGT()</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>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

</div>
</div>
<a class="anchor" id="a27bb939c33616b21a83aabdb5d47a660"></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> ArithTheoremProducer3::negatedInequality </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>Propagating negation over &lt;,&lt;=,&gt;,&gt;=. </p>
<p>NOT (op1 &lt; op2) &lt;==&gt; (op1 &gt;= op2) </p>
<pre class="fragment">  NOT (op1 &lt;= op2)  &lt;==&gt; (op1 &gt; op2)

  NOT (op1 &gt; op2)  &lt;==&gt; (op1 &lt;= op2)

  NOT (op1 &gt;= op2)  &lt;==&gt; (op1 &lt; op2)</pre> 
<p>Implements <a class="el" href="classCVC3_1_1ArithProofRules.html#aee47bda46999143ea29d7d4ff0be89d4">CVC3::ArithProofRules</a>.</p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l01475">1475</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

<p>References <a class="el" href="theorem__producer_8h_source.html#l00087">CHECK_PROOFS</a>, <a class="el" href="theorem__producer_8h_source.html#l00083">CHECK_SOUND</a>, <a class="el" href="theory__arith_8h_source.html#l00052">CVC3::GE</a>, <a class="el" href="theory__arith_8h_source.html#l00051">CVC3::GT</a>, <a class="el" href="theory__arith_8h_source.html#l00188">CVC3::isGT()</a>, <a class="el" href="theory__arith_8h_source.html#l00192">CVC3::isIneq()</a>, <a class="el" href="theory__arith_8h_source.html#l00187">CVC3::isLE()</a>, <a class="el" href="theory__arith_8h_source.html#l00186">CVC3::isLT()</a>, <a class="el" href="expr_8h_source.html#l00420">CVC3::Expr::isNot()</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>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

</div>
</div>
<a class="anchor" id="a6f08ce700f85f9ba2967ecee42e7a550"></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> ArithTheoremProducer3::realShadow </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>alphaLTt</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>tLTbeta</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>Real shadow: a &lt;(=) t, t &lt;(=) b ==&gt; a &lt;(=) b. </p>

<p>Implements <a class="el" href="classCVC3_1_1ArithProofRules.html#a203c7079289189cd4bf4f604c10645e5">CVC3::ArithProofRules</a>.</p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l01504">1504</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

<p>References <a class="el" href="theorem__producer_8h_source.html#l00087">CHECK_PROOFS</a>, <a class="el" href="theorem__producer_8h_source.html#l00083">CHECK_SOUND</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#l00402">CVC3::Theorem::getProof()</a>, <a class="el" href="theory__arith_8h_source.html#l00187">CVC3::isLE()</a>, <a class="el" href="theory__arith_8h_source.html#l00186">CVC3::isLT()</a>, <a class="el" href="theory__arith_8h_source.html#l00049">CVC3::LT</a>, and <a class="el" href="theorem_8h_source.html#l00404">CVC3::Theorem::toString()</a>.</p>

</div>
</div>
<a class="anchor" id="a955e74558aee9ebc9de4c084819e93ac"></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> ArithTheoremProducer3::realShadowEq </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>alphaLEt</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>tLEalpha</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>alpha &lt;= t &lt;= alpha ==&gt; t = alpha </p>
<p>takes two ineqs "|- alpha LE t" and "|- t LE alpha" and returns "|- t = alpha" </p>

<p>Implements <a class="el" href="classCVC3_1_1ArithProofRules.html#a08dfccc28787af2a4141ed0f5a66bc9d">CVC3::ArithProofRules</a>.</p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l01539">1539</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

<p>References <a class="el" href="theorem__producer_8h_source.html#l00087">CHECK_PROOFS</a>, <a class="el" href="theorem__producer_8h_source.html#l00083">CHECK_SOUND</a>, <a class="el" href="theorem_8cpp_source.html#l00230">CVC3::Theorem::getExpr()</a>, <a class="el" href="theorem_8cpp_source.html#l00402">CVC3::Theorem::getProof()</a>, <a class="el" href="theory__arith_8h_source.html#l00187">CVC3::isLE()</a>, and <a class="el" href="theorem_8h_source.html#l00404">CVC3::Theorem::toString()</a>.</p>

</div>
</div>
<a class="anchor" id="aaba7798eb77a93ac0de8978507dca731"></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> ArithTheoremProducer3::finiteInterval </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>aLEt</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>tLEac</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>isInta</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>isIntt</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>Finite interval for integers: a &lt;= t &lt;= a + c ==&gt; G(t, a, 0, c) </p>

<p>Implements <a class="el" href="classCVC3_1_1ArithProofRules.html#a5d419e48b93820624e356ba33efef27c">CVC3::ArithProofRules</a>.</p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l01571">1571</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

<p>References <a class="el" href="theorem__producer_8h_source.html#l00087">CHECK_PROOFS</a>, <a class="el" href="theorem__producer_8h_source.html#l00083">CHECK_SOUND</a>, <a class="el" href="theorem_8cpp_source.html#l00230">CVC3::Theorem::getExpr()</a>, <a class="el" href="theorem_8cpp_source.html#l00402">CVC3::Theorem::getProof()</a>, <a class="el" href="theory__arith_8h_source.html#l00194">CVC3::isIntPred()</a>, <a class="el" href="theory__arith_8h_source.html#l00187">CVC3::isLE()</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="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

</div>
</div>
<a class="anchor" id="a2ad479414c401fb8a4ea9631cbdd95c0"></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> ArithTheoremProducer3::darkGrayShadow2ab </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>betaLEbx</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>axLEalpha</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>isIntAlpha</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>isIntBeta</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>isIntx</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>Dark &amp; Gray shadows when a &lt;= b. </p>
<p>takes two integer ineqs (i.e. all vars are ints) "|- beta &lt;= b.x" and "|- a.x &lt;= alpha" and checks if "1 &lt;= a &lt;= b" and returns (D or G) and (!D or !G), where D = Dark_Shadow(ab-1, b.alpha - a.beta), G = Gray_Shadow(a.x, alpha, -(a-1), 0). </p>

<p>Implements <a class="el" href="classCVC3_1_1ArithProofRules.html#a37835b10dd0f73b5c4cf36c1eebf0d1f">CVC3::ArithProofRules</a>.</p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l01635">1635</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

<p>References <a class="el" href="expr_8h_source.html#l01201">CVC3::Expr::arity()</a>, <a class="el" href="theorem__producer_8h_source.html#l00087">CHECK_PROOFS</a>, <a class="el" href="theorem__producer_8h_source.html#l00083">CHECK_SOUND</a>, <a class="el" href="theorem_8cpp_source.html#l00230">CVC3::Theorem::getExpr()</a>, <a class="el" href="theorem_8cpp_source.html#l00402">CVC3::Theorem::getProof()</a>, <a class="el" href="expr_8h_source.html#l01135">CVC3::Expr::getRational()</a>, <a class="el" href="theory__arith_8h_source.html#l00194">CVC3::isIntPred()</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#l00205">CVC3::minusExpr()</a>, <a class="el" href="theory__arith_8h_source.html#l00207">CVC3::multExpr()</a>, <a class="el" href="theorem_8h_source.html#l00404">CVC3::Theorem::toString()</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

</div>
</div>
<a class="anchor" id="a8b2e8589d24fc69616ba431588c50b3e"></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> ArithTheoremProducer3::darkGrayShadow2ba </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>betaLEbx</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>axLEalpha</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>isIntAlpha</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>isIntBeta</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>isIntx</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>Dark &amp; Gray shadows when b &lt;= a. </p>
<p>takes two integer ineqs (i.e. all vars are ints) "|- beta &lt;= b.x" and "|- a.x &lt;= alpha" and checks if "1 &lt;= b &lt; a" and returns (D or G) and (!D or !G), where D = Dark_Shadow(ab-1, b.alpha - a.beta), G = Gray_Shadow(b.x, beta, 0, b-1). </p>

<p>Implements <a class="el" href="classCVC3_1_1ArithProofRules.html#ab17282c2e4de9965586f4821f17bf60d">CVC3::ArithProofRules</a>.</p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l01726">1726</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

<p>References <a class="el" href="expr_8h_source.html#l01201">CVC3::Expr::arity()</a>, <a class="el" href="theorem__producer_8h_source.html#l00087">CHECK_PROOFS</a>, <a class="el" href="theorem__producer_8h_source.html#l00083">CHECK_SOUND</a>, <a class="el" href="theorem_8cpp_source.html#l00230">CVC3::Theorem::getExpr()</a>, <a class="el" href="theorem_8cpp_source.html#l00402">CVC3::Theorem::getProof()</a>, <a class="el" href="expr_8h_source.html#l01135">CVC3::Expr::getRational()</a>, <a class="el" href="theory__arith_8h_source.html#l00194">CVC3::isIntPred()</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#l00205">CVC3::minusExpr()</a>, <a class="el" href="theory__arith_8h_source.html#l00207">CVC3::multExpr()</a>, <a class="el" href="theorem_8h_source.html#l00404">CVC3::Theorem::toString()</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

</div>
</div>
<a class="anchor" id="a372efa694fb08c901deff55f5f108ffb"></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> ArithTheoremProducer3::expandDarkShadow </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>darkShadow</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>takes a dark shadow and expands it into an inequality. </p>

<p>Implements <a class="el" href="classCVC3_1_1ArithProofRules.html#a94ffe313b29aa63c32d5c3facb3bc917">CVC3::ArithProofRules</a>.</p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l01811">1811</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

<p>References <a class="el" href="theorem__producer_8h_source.html#l00087">CHECK_PROOFS</a>, <a class="el" href="theorem__producer_8h_source.html#l00083">CHECK_SOUND</a>, <a class="el" href="theorem_8cpp_source.html#l00385">CVC3::Theorem::getAssumptionsRef()</a>, <a class="el" href="theorem_8cpp_source.html#l00230">CVC3::Theorem::getExpr()</a>, <a class="el" href="theorem_8cpp_source.html#l00402">CVC3::Theorem::getProof()</a>, <a class="el" href="theory__arith_8h_source.html#l00190">CVC3::isDarkShadow()</a>, <a class="el" href="theory__arith_8h_source.html#l00223">CVC3::leExpr()</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

</div>
</div>
<a class="anchor" id="aacc831490c52da277133fe625522216f"></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> ArithTheoremProducer3::expandGrayShadow0 </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>g</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>GRAY_SHADOW(v, e, c, c) ==&gt; v=e+c. </p>

<p>Implements <a class="el" href="classCVC3_1_1ArithProofRules.html#a32df170ed2ec7fb3d1c7541e6f3dda77">CVC3::ArithProofRules</a>.</p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l01826">1826</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

<p>References <a class="el" href="theorem__producer_8h_source.html#l00087">CHECK_PROOFS</a>, <a class="el" href="theorem__producer_8h_source.html#l00083">CHECK_SOUND</a>, <a class="el" href="theorem_8cpp_source.html#l00385">CVC3::Theorem::getAssumptionsRef()</a>, <a class="el" href="theorem_8cpp_source.html#l00230">CVC3::Theorem::getExpr()</a>, <a class="el" href="theorem_8cpp_source.html#l00402">CVC3::Theorem::getProof()</a>, <a class="el" href="theory__arith_8h_source.html#l00191">CVC3::isGrayShadow()</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

</div>
</div>
<a class="anchor" id="ae609e58a7bee454d0f18dc1465cd2167"></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> ArithTheoremProducer3::splitGrayShadow </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>g</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>G(x, e, c1, c2) ==&gt; (G1 or G2) and (!G1 or !G2) </p>
<p>Here G1 = G(x,e,c1,c), G2 = G(x,e,c+1,c2), and c = floor((c1+c2)/2). </p>

<p>Implements <a class="el" href="classCVC3_1_1ArithProofRules.html#a4b6ef5b29b05bada6ea2df72873abea6">CVC3::ArithProofRules</a>.</p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l01852">1852</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

<p>References <a class="el" href="theorem__producer_8h_source.html#l00087">CHECK_PROOFS</a>, <a class="el" href="theorem__producer_8h_source.html#l00083">CHECK_SOUND</a>, <a class="el" href="theorem_8cpp_source.html#l00385">CVC3::Theorem::getAssumptionsRef()</a>, <a class="el" href="theorem_8cpp_source.html#l00230">CVC3::Theorem::getExpr()</a>, <a class="el" href="theorem_8cpp_source.html#l00402">CVC3::Theorem::getProof()</a>, <a class="el" href="expr_8h_source.html#l01135">CVC3::Expr::getRational()</a>, <a class="el" href="theory__arith_8h_source.html#l00191">CVC3::isGrayShadow()</a>, <a class="el" href="classCVC3_1_1Rational.html#a1366320f4de558bb964c67f8aecedb36">CVC3::Rational::isInteger()</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

</div>
</div>
<a class="anchor" id="aab0ccd490624628fa990b1dd473e7e8a"></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> ArithTheoremProducer3::splitGrayShadowSmall </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>grayShadow</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>Implements <a class="el" href="classCVC3_1_1ArithProofRules.html#aa33975feef2a9cdd513e5d641f14dc7a">CVC3::ArithProofRules</a>.</p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l03024">3024</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

<p>References <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>.</p>

</div>
</div>
<a class="anchor" id="ab9dd38464b6e02af6d7c570119c6aec3"></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> ArithTheoremProducer3::expandGrayShadow </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>g</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>G(x, e, c1, c2) ==&gt; e+c1 &lt;= x AND x &lt;= e+c2. </p>

<p>Implements <a class="el" href="classCVC3_1_1ArithProofRules.html#af936b764ef75b0a6f63043d01a819044">CVC3::ArithProofRules</a>.</p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l01889">1889</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

<p>References <a class="el" href="theorem__producer_8h_source.html#l00087">CHECK_PROOFS</a>, <a class="el" href="theorem__producer_8h_source.html#l00083">CHECK_SOUND</a>, <a class="el" href="theorem_8cpp_source.html#l00385">CVC3::Theorem::getAssumptionsRef()</a>, <a class="el" href="theorem_8cpp_source.html#l00230">CVC3::Theorem::getExpr()</a>, <a class="el" href="theorem_8cpp_source.html#l00402">CVC3::Theorem::getProof()</a>, <a class="el" href="expr_8h_source.html#l01135">CVC3::Expr::getRational()</a>, <a class="el" href="theory__arith_8h_source.html#l00191">CVC3::isGrayShadow()</a>, <a class="el" href="classCVC3_1_1Rational.html#a1366320f4de558bb964c67f8aecedb36">CVC3::Rational::isInteger()</a>, <a class="el" href="theory__arith_8h_source.html#l00223">CVC3::leExpr()</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

</div>
</div>
<a class="anchor" id="a43d1cf15faefe439c344508bf60e5e96"></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> ArithTheoremProducer3::expandGrayShadowConst </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>g</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>Optimized rules: GRAY_SHADOW(a*x, c, c1, c2) ==&gt; [expansion]. </p>
<p>Implements three versions of the rule:</p>
<p class="formulaDsp">
<img class="formulaDsp" alt="\[\frac{\mathrm{GRAY\_SHADOW}(ax,c,c1,c2)} {ax = c + i - \mathrm{sign}(i)\cdot j(c,i,a) \lor GRAY\_SHADOW(ax, c, i-\mathrm{sign}(i)\cdot (a+j(c,i,a)))}\]" src="form_302.png"/>
</p>
 <pre class="fragment"> where the conclusion may become FALSE or without the
 GRAY_SHADOW part, depending on the values of a, c and i.</pre> 
<p>Implements <a class="el" href="classCVC3_1_1ArithProofRules.html#a3083a3c5893123f2a3ec54ce31718e09">CVC3::ArithProofRules</a>.</p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l01920">1920</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

<p>References <a class="el" href="cvc__util_8h_source.html#l00053">CVC3::abs()</a>, <a class="el" href="theorem__producer_8h_source.html#l00087">CHECK_PROOFS</a>, <a class="el" href="theorem__producer_8h_source.html#l00083">CHECK_SOUND</a>, <a class="el" href="expr_8h_source.html#l00929">CVC3::Expr::eqExpr()</a>, <a class="el" href="theorem_8cpp_source.html#l00385">CVC3::Theorem::getAssumptionsRef()</a>, <a class="el" href="theorem_8cpp_source.html#l00230">CVC3::Theorem::getExpr()</a>, <a class="el" href="theorem_8cpp_source.html#l00402">CVC3::Theorem::getProof()</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#l00191">CVC3::isGrayShadow()</a>, <a class="el" href="classCVC3_1_1Rational.html#a1366320f4de558bb964c67f8aecedb36">CVC3::Rational::isInteger()</a>, <a class="el" href="theory__arith_8h_source.html#l00183">CVC3::isMult()</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="expr_8h_source.html#l00951">CVC3::Expr::orExpr()</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

</div>
</div>
<a class="anchor" id="a0a5eb9028805dd1ee141713b7c70be77"></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> ArithTheoremProducer3::grayShadowConst </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>g</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>|- G(ax, c, c1, c2) ==&gt; |- G(x, 0, ceil((c1+c)/a), floor((c2+c)/a)) </p>
<p>In the case the new c1 &gt; c2, return |- FALSE </p>

<p>Implements <a class="el" href="classCVC3_1_1ArithProofRules.html#a597adbe8879c33bffefae537a5bca7c0">CVC3::ArithProofRules</a>.</p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l01985">1985</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

<p>References <a class="el" href="theorem__producer_8h_source.html#l00087">CHECK_PROOFS</a>, <a class="el" href="theorem__producer_8h_source.html#l00083">CHECK_SOUND</a>, <a class="el" href="theorem_8cpp_source.html#l00385">CVC3::Theorem::getAssumptionsRef()</a>, <a class="el" href="theorem_8cpp_source.html#l00230">CVC3::Theorem::getExpr()</a>, <a class="el" href="theorem_8cpp_source.html#l00402">CVC3::Theorem::getProof()</a>, <a class="el" href="expr_8h_source.html#l01135">CVC3::Expr::getRational()</a>, <a class="el" href="theory__arith_8h_source.html#l00191">CVC3::isGrayShadow()</a>, <a class="el" href="classCVC3_1_1Rational.html#a1366320f4de558bb964c67f8aecedb36">CVC3::Rational::isInteger()</a>, <a class="el" href="expr_8h_source.html#l00431">CVC3::Expr::isRational()</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

</div>
</div>
<a class="anchor" id="afa3e14a6cb004a107d915df0088ed16c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Rational.html">Rational</a> ArithTheoremProducer3::constRHSGrayShadow </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_1Rational.html">Rational</a> &amp;&#160;</td>
          <td class="paramname"><em>b</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Rational.html">Rational</a> &amp;&#160;</td>
          <td class="paramname"><em>a</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Implements j(c,b,a) </p>
<p>accepts 3 integers a,b,c and returns (b &gt; 0)? (c+b) mod a : (a - (c+b)) mod a </p>

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

<p>References <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, and <a class="el" href="classCVC3_1_1Rational.html#a1366320f4de558bb964c67f8aecedb36">CVC3::Rational::isInteger()</a>.</p>

</div>
</div>
<a class="anchor" id="a91447c7423622c037a2956114fd549f4"></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> ArithTheoremProducer3::lessThanToLE </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>less</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>isIntLHS</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>isIntRHS</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>changeRight</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>Takes a <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>(\alpha &lt; \beta) and returns <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>(\alpha &lt; \beta &lt;==&gt; \alpha &lt;= \beta -1) where \alpha and \beta are integer expressions </p>

<p>Implements <a class="el" href="classCVC3_1_1ArithProofRules.html#a7a0dad5cb9c2815421457dabc25bc537">CVC3::ArithProofRules</a>.</p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l02043">2043</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

<p>References <a class="el" href="theorem__producer_8h_source.html#l00087">CHECK_PROOFS</a>, <a class="el" href="theorem__producer_8h_source.html#l00083">CHECK_SOUND</a>, <a class="el" href="theorem_8cpp_source.html#l00230">CVC3::Theorem::getExpr()</a>, <a class="el" href="theorem_8cpp_source.html#l00402">CVC3::Theorem::getProof()</a>, <a class="el" href="theory__arith_8h_source.html#l00194">CVC3::isIntPred()</a>, <a class="el" href="theory__arith_8h_source.html#l00186">CVC3::isLT()</a>, <a class="el" href="theory__arith_8h_source.html#l00223">CVC3::leExpr()</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

</div>
</div>
<a class="anchor" id="a55c056040dc960b598706a94650acccb"></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> ArithTheoremProducer3::lessThanToLERewrite </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>ineq</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>isIntLHS</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>isIntRHS</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>changeRight</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>Takes a <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>(\alpha &lt; \beta) and returns <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>(\alpha &lt; \beta &lt;==&gt; \alpha &lt;= \beta -1) where \alpha and \beta are integer expressions </p>

<p>Implements <a class="el" href="classCVC3_1_1ArithProofRules.html#af5cfb693ee5ee6f3463e83f01196b31e">CVC3::ArithProofRules</a>.</p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l03103">3103</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

<p>References <a class="el" href="theorem__producer_8h_source.html#l00087">CHECK_PROOFS</a>, <a class="el" href="theorem__producer_8h_source.html#l00083">CHECK_SOUND</a>, <a class="el" href="theorem_8cpp_source.html#l00230">CVC3::Theorem::getExpr()</a>, <a class="el" href="theorem_8cpp_source.html#l00402">CVC3::Theorem::getProof()</a>, <a class="el" href="theory__arith_8h_source.html#l00194">CVC3::isIntPred()</a>, <a class="el" href="theory__arith_8h_source.html#l00186">CVC3::isLT()</a>, <a class="el" href="theory__arith_8h_source.html#l00223">CVC3::leExpr()</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

</div>
</div>
<a class="anchor" id="a608b3a7da8f2824d3cc8188d7606396e"></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> ArithTheoremProducer3::intVarEqnConst </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>eqn</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>isIntx</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">
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">eqn</td><td>is an equation 0 = a.x or 0 = c + a.x </td></tr>
    <tr><td class="paramname">isIntx</td><td>is a proof of IS_INTEGER(x)</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the theorem 0 = c + a.x &lt;==&gt; x=-c/a if -c/a is int else return the theorem 0 = c + a.x &lt;==&gt; false.</dd></dl>
<p>It also handles the special case of 0 = a.x &lt;==&gt; x = 0 </p>

<p>Implements <a class="el" href="classCVC3_1_1ArithProofRules.html#a62d76b2ccca8af5e1f28c5104ea2e313">CVC3::ArithProofRules</a>.</p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l02095">2095</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

<p>References <a class="el" href="expr_8h_source.html#l01201">CVC3::Expr::arity()</a>, <a class="el" href="theorem__producer_8h_source.html#l00087">CHECK_PROOFS</a>, <a class="el" href="theorem__producer_8h_source.html#l00083">CHECK_SOUND</a>, <a class="el" href="expr_8h_source.html#l00929">CVC3::Expr::eqExpr()</a>, <a class="el" href="theorem_8cpp_source.html#l00385">CVC3::Theorem::getAssumptionsRef()</a>, <a class="el" href="theorem_8cpp_source.html#l00230">CVC3::Theorem::getExpr()</a>, <a class="el" href="theorem_8cpp_source.html#l00402">CVC3::Theorem::getProof()</a>, <a class="el" href="expr_8h_source.html#l01135">CVC3::Expr::getRational()</a>, <a class="el" href="classCVC3_1_1Rational.html#a1366320f4de558bb964c67f8aecedb36">CVC3::Rational::isInteger()</a>, <a class="el" href="theory__arith_8h_source.html#l00194">CVC3::isIntPred()</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="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>

</div>
</div>
<a class="anchor" id="ad2438a34ff1edb7268495d4105cb6c9c"></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> ArithTheoremProducer3::IsIntegerElim </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>isIntx</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>IS_INTEGER(x) |= EXISTS (y : INT) y = x where x is not already known to be an integer. </p>

<p>Implements <a class="el" href="classCVC3_1_1ArithProofRules.html#a8c3d5fdc2b0c9c11291d41c3c20067e4">CVC3::ArithProofRules</a>.</p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l02480">2480</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

<p>References <a class="el" href="theorem__producer_8h_source.html#l00087">CHECK_PROOFS</a>, <a class="el" href="theorem__producer_8h_source.html#l00083">CHECK_SOUND</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="expr_8h_source.html#l00929">CVC3::Expr::eqExpr()</a>, <a class="el" href="kinds_8h_source.html#l00085">EXISTS</a>, <a class="el" href="theorem_8cpp_source.html#l00230">CVC3::Theorem::getExpr()</a>, <a class="el" href="expr_8h_source.html#l01168">CVC3::Expr::getKind()</a>, <a class="el" href="theorem_8cpp_source.html#l00402">CVC3::Theorem::getProof()</a>, and <a class="el" href="theory__arith_8h_source.html#l00053">CVC3::IS_INTEGER</a>.</p>

</div>
</div>
<a class="anchor" id="a1f5430f425efc533ca5881aaaeb42554"></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> ArithTheoremProducer3::eqElimIntRule </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>
        </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>isIntx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></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>isIntVars</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>Equality elimination rule for integers: </p>
<p class="formulaDsp">
<img class="formulaDsp" alt="\[\frac{\mathsf{int}(a\cdot x)\quad \mathsf{int}(C+\sum_{i=1}^{n}a_{i}\cdot x_{i})} {a\cdot x=C+\sum_{i=1}^{n}a_{i}\cdot x_{i} \quad\equiv\quad x=t_{2}\wedge 0=t_{3}} \]" src="form_303.png"/>
</p>
<p> See the detailed description for explanations. </p>
<pre class="fragment"> This rule implements a step in the iterative algorithm for
 eliminating integer equality.  The terms in the rule are
 defined as follows:
</pre><p class="formulaDsp">
<img class="formulaDsp" alt="\[\begin{array}{rcl} t_{2} &amp; = &amp; -(C\ \mathbf{mod}\ m+\sum_{i=1}^{n}(a_{i}\ \mathbf{mod}\ m) \cdot x_{i}-m\cdot\sigma(t))\\ &amp; &amp; \\ t_{3} &amp; = &amp; \mathbf{f}(C,m)+\sum_{i=1}^{n}\mathbf{f}(a_{i},m)\cdot x_{i} -a\cdot\sigma(t)\\ &amp; &amp; \\ t &amp; = &amp; (C\ \mathbf{mod}\ m+\sum_{i=1}^{n}(a_{i}\ \mathbf{mod}\ m) \cdot x_{i}+x)/m\\ &amp; &amp; \\ m &amp; = &amp; a+1\\ &amp; &amp; \\ \mathbf{f}(i,m) &amp; = &amp; \left\lfloor \frac{i}{m} +\frac{1}{2}\right\rfloor +i\ \mathbf{mod}\ m\\ &amp; &amp; \\ i\ \mathbf{mod}\ m &amp; = &amp; i-m\left\lfloor\frac{i}{m} +\frac{1}{2}\right\rfloor \end{array} \]" src="form_304.png"/>
</p>
 <pre class="fragment"> All the variables and coefficients are integer, and a &gt;= 2.

 \param eqn is the equation
</pre> <p class="formulaDsp">
<img class="formulaDsp" alt="\[a\cdot x = C + \sum_{i=1}^n a_i\cdot x_i.\]" src="form_305.png"/>
</p>
<p class="formulaDsp">
<img class="formulaDsp" alt="\[\frac{\Gamma\models ax=t\quad \Gamma'\models\mathsf{int}(x)\quad \{\Gamma_i\models\mathsf{int}(x_i) | x_i\mbox{ is var in }t\}} {\Gamma,\Gamma',\bigcup_i\Gamma_i\models \exists (y:\mathrm{int}).\ x=t_2(y)\wedge 0=t_3(y)} \]" src="form_306.png"/>
</p>
<p> See detailed docs for more information.</p>
<p>This rule implements a step in the iterative algorithm for eliminating integer equality. The terms in the rule are defined as follows:</p>
<p class="formulaDsp">
<img class="formulaDsp" alt="\[\begin{array}{rcl} t &amp; = &amp; C+\sum_{i=1}^na_{i}\cdot x_{i}\\ t_{2}(y) &amp; = &amp; -(C\ \mathbf{mod}\ m+\sum_{i=1}^{n}(a_{i}\ \mathbf{mod}\ m) \cdot x_{i}-m\cdot y)\\ &amp; &amp; \\ t_{3}(y) &amp; = &amp; \mathbf{f}(C,m)+\sum_{i=1}^{n}\mathbf{f}(a_{i},m)\cdot x_{i} -a\cdot y\\ &amp; &amp; \\ m &amp; = &amp; a+1\\ &amp; &amp; \\ \mathbf{f}(i,m) &amp; = &amp; \left\lfloor \frac{i}{m} +\frac{1}{2}\right\rfloor +i\ \mathbf{mod}\ m\\ &amp; &amp; \\ i\ \mathbf{mod}\ m &amp; = &amp; i-m\left\lfloor\frac{i}{m} +\frac{1}{2}\right\rfloor \end{array} \]" src="form_307.png"/>
</p>
 <pre class="fragment"> All the variables and coefficients are integer, and a &gt;= 2.

 \param eqn is the equation ax=t:
</pre> <p class="formulaDsp">
<img class="formulaDsp" alt="\[a\cdot x = C + \sum_{i=1}^n a_i\cdot x_i.\]" src="form_305.png"/>
</p>
 <pre class="fragment"> \param isIntx is a Theorem deriving the integrality of the
 LHS variable: IS_INTEGER(x)

 \param isIntVars is a vector of Theorems deriving the
 integrality of all variables on the RHS</pre> 
<p>Implements <a class="el" href="classCVC3_1_1ArithProofRules.html#a08b14a730bbc6b4ca28bb808e6f6dc85">CVC3::ArithProofRules</a>.</p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l02506">2506</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

<p>References <a class="el" href="expr_8h_source.html#l01201">CVC3::Expr::arity()</a>, <a class="el" href="theorem__producer_8h_source.html#l00087">CHECK_PROOFS</a>, <a class="el" href="theorem__producer_8h_source.html#l00083">CHECK_SOUND</a>, <a class="el" href="expr_8h_source.html#l00929">CVC3::Expr::eqExpr()</a>, <a class="el" href="kinds_8h_source.html#l00085">EXISTS</a>, <a class="el" href="theorem_8cpp_source.html#l00230">CVC3::Theorem::getExpr()</a>, <a class="el" href="theorem_8cpp_source.html#l00240">CVC3::Theorem::getLHS()</a>, <a class="el" href="theorem_8cpp_source.html#l00402">CVC3::Theorem::getProof()</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="cvc__util_8h_source.html#l00046">CVC3::int2string()</a>, <a class="el" href="theory__arith_8h_source.html#l00184">CVC3::isDivide()</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_8h_source.html#l00194">CVC3::isIntPred()</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="theorem_8cpp_source.html#l00224">CVC3::Theorem::isRewrite()</a>, <a class="el" href="expr_8h_source.html#l01427">CVC3::Expr::setType()</a>, <a class="el" href="classCVC3_1_1Rational.html#a195c125a76cb9a6c5731369e244a2de3">CVC3::Rational::toString()</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="a24216d1be10b57272b918ba416783b76"></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> ArithTheoremProducer3::isIntConst </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>return e &lt;=&gt; TRUE/FALSE for e == IS_INTEGER(c), where c is a constant </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">e</td><td>is a predicate IS_INTEGER(c) where c is a rational constant </td></tr>
  </table>
  </dd>
</dl>

<p>Implements <a class="el" href="classCVC3_1_1ArithProofRules.html#a5e9bccd77000156ab34b0b42d3e3bb18">CVC3::ArithProofRules</a>.</p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l02598">2598</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

<p>References <a class="el" href="theorem__producer_8h_source.html#l00087">CHECK_PROOFS</a>, <a class="el" href="theorem__producer_8h_source.html#l00083">CHECK_SOUND</a>, <a class="el" href="expr_8h_source.html#l01135">CVC3::Expr::getRational()</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_8h_source.html#l00194">CVC3::isIntPred()</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="acb64cdcb59f042dd38a9bf9b70f043ad"></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> ArithTheoremProducer3::equalLeaves1 </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>Implements <a class="el" href="classCVC3_1_1ArithProofRules.html#ac05fd3606540a5222ebaa68f9091345b">CVC3::ArithProofRules</a>.</p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l02614">2614</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

<p>References <a class="el" href="theorem__producer_8h_source.html#l00087">CHECK_PROOFS</a>, <a class="el" href="theorem__producer_8h_source.html#l00083">CHECK_SOUND</a>, <a class="el" href="theorem_8cpp_source.html#l00385">CVC3::Theorem::getAssumptionsRef()</a>, <a class="el" href="theorem_8cpp_source.html#l00402">CVC3::Theorem::getProof()</a>, <a class="el" href="theorem_8cpp_source.html#l00246">CVC3::Theorem::getRHS()</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>, and <a class="el" href="kinds_8h_source.html#l00037">RATIONAL_EXPR</a>.</p>

</div>
</div>
<a class="anchor" id="ae97e571a8d541a31aef5c1c703190437"></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> ArithTheoremProducer3::equalLeaves2 </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>Implements <a class="el" href="classCVC3_1_1ArithProofRules.html#a5052c783af25243987424ef66e2bf5fc">CVC3::ArithProofRules</a>.</p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l02643">2643</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

<p>References <a class="el" href="theorem__producer_8h_source.html#l00087">CHECK_PROOFS</a>, <a class="el" href="theorem__producer_8h_source.html#l00083">CHECK_SOUND</a>, <a class="el" href="theorem_8cpp_source.html#l00385">CVC3::Theorem::getAssumptionsRef()</a>, <a class="el" href="theorem_8cpp_source.html#l00402">CVC3::Theorem::getProof()</a>, <a class="el" href="theorem_8cpp_source.html#l00246">CVC3::Theorem::getRHS()</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>, and <a class="el" href="kinds_8h_source.html#l00037">RATIONAL_EXPR</a>.</p>

</div>
</div>
<a class="anchor" id="aba1a7d51f8b8291c30cc32c0f3ff5a4d"></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> ArithTheoremProducer3::equalLeaves3 </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>Implements <a class="el" href="classCVC3_1_1ArithProofRules.html#a893c86f0404789d229540f7a0a00df89">CVC3::ArithProofRules</a>.</p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l02672">2672</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

<p>References <a class="el" href="theorem__producer_8h_source.html#l00087">CHECK_PROOFS</a>, <a class="el" href="theorem__producer_8h_source.html#l00083">CHECK_SOUND</a>, <a class="el" href="theorem_8cpp_source.html#l00385">CVC3::Theorem::getAssumptionsRef()</a>, <a class="el" href="theorem_8cpp_source.html#l00402">CVC3::Theorem::getProof()</a>, <a class="el" href="theorem_8cpp_source.html#l00246">CVC3::Theorem::getRHS()</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>, and <a class="el" href="kinds_8h_source.html#l00037">RATIONAL_EXPR</a>.</p>

</div>
</div>
<a class="anchor" id="a5876760c9171eca18490c779cc2bbc73"></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> ArithTheoremProducer3::equalLeaves4 </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>Implements <a class="el" href="classCVC3_1_1ArithProofRules.html#aa9018c4d16d3d0a2d8f1614f8e7cae23">CVC3::ArithProofRules</a>.</p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l02701">2701</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

<p>References <a class="el" href="theorem__producer_8h_source.html#l00087">CHECK_PROOFS</a>, <a class="el" href="theorem__producer_8h_source.html#l00083">CHECK_SOUND</a>, <a class="el" href="theorem_8cpp_source.html#l00385">CVC3::Theorem::getAssumptionsRef()</a>, <a class="el" href="theorem_8cpp_source.html#l00402">CVC3::Theorem::getProof()</a>, <a class="el" href="theorem_8cpp_source.html#l00246">CVC3::Theorem::getRHS()</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>, and <a class="el" href="kinds_8h_source.html#l00037">RATIONAL_EXPR</a>.</p>

</div>
</div>
<a class="anchor" id="a20fdbcbe80fa06a175aae548af7d2519"></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> ArithTheoremProducer3::diseqToIneq </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>diseq</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>x /= y ==&gt; (x &lt; y) OR (x &gt; y) </p>
<p>Used in concrete model generation </p>

<p>Implements <a class="el" href="classCVC3_1_1ArithProofRules.html#af180898d9f1d255ef3a2f528ecd8ac65">CVC3::ArithProofRules</a>.</p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l02729">2729</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

<p>References <a class="el" href="theorem__producer_8h_source.html#l00087">CHECK_PROOFS</a>, <a class="el" href="theorem__producer_8h_source.html#l00083">CHECK_SOUND</a>, <a class="el" href="theorem_8cpp_source.html#l00385">CVC3::Theorem::getAssumptionsRef()</a>, <a class="el" href="theorem_8cpp_source.html#l00230">CVC3::Theorem::getExpr()</a>, <a class="el" href="theorem_8cpp_source.html#l00402">CVC3::Theorem::getProof()</a>, <a class="el" href="theory__arith_8h_source.html#l00225">CVC3::gtExpr()</a>, <a class="el" href="expr_8h_source.html#l00419">CVC3::Expr::isEq()</a>, <a class="el" href="expr_8h_source.html#l00420">CVC3::Expr::isNot()</a>, <a class="el" href="theory__arith_8h_source.html#l00221">CVC3::ltExpr()</a>, <a class="el" href="expr_8h_source.html#l00955">CVC3::orExpr()</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

</div>
</div>
<a class="anchor" id="ae1e994559a2318ec45a758042371a71d"></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> ArithTheoremProducer3::dummyTheorem </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>Implements <a class="el" href="classCVC3_1_1ArithProofRules.html#a24ea340651805e648d7180debad17225">CVC3::ArithProofRules</a>.</p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l02748">2748</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a2caebbed8d00af9c80195413ed2cc568"></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> ArithTheoremProducer3::oneElimination </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">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Implements <a class="el" href="classCVC3_1_1ArithProofRules.html#a1ebae10d65430ab1a3a14c866af93de6">CVC3::ArithProofRules</a>.</p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l02753">2753</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

<p>References <a class="el" href="expr_8h_source.html#l01201">CVC3::Expr::arity()</a>, <a class="el" href="theorem__producer_8h_source.html#l00087">CHECK_PROOFS</a>, <a class="el" href="theorem__producer_8h_source.html#l00083">CHECK_SOUND</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="expr_8h_source.html#l00431">CVC3::Expr::isRational()</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

</div>
</div>
<a class="anchor" id="af05299dbe2defe9679365201cd60c516"></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> ArithTheoremProducer3::clashingBounds </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>lowerBound</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>upperBound</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>Implements <a class="el" href="classCVC3_1_1ArithProofRules.html#ad0b23fb01a7adea349c8958059b9f7fd">CVC3::ArithProofRules</a>.</p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l02774">2774</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

<p>References <a class="el" href="assumptions_8cpp_source.html#l00200">CVC3::Assumptions::add()</a>, <a class="el" href="theorem__producer_8h_source.html#l00087">CHECK_PROOFS</a>, <a class="el" href="theorem__producer_8h_source.html#l00083">CHECK_SOUND</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="theory__arith_8h_source.html#l00189">CVC3::isGE()</a>, <a class="el" href="theory__arith_8h_source.html#l00188">CVC3::isGT()</a>, <a class="el" href="theory__arith_8h_source.html#l00187">CVC3::isLE()</a>, <a class="el" href="theory__arith_8h_source.html#l00186">CVC3::isLT()</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="a301d62f207b9cfd50096417d1f5852df"></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> ArithTheoremProducer3::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>thm1</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>thm2</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>Implements <a class="el" href="classCVC3_1_1ArithProofRules.html#ac06dd83948d0f3e474f073ecac592343">CVC3::ArithProofRules</a>.</p>

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

<p>References <a class="el" href="theorem__producer_8h_source.html#l00087">CHECK_PROOFS</a>, <a class="el" href="theorem__producer_8h_source.html#l00083">CHECK_SOUND</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#l00402">CVC3::Theorem::getProof()</a>, <a class="el" href="theory__arith_8h_source.html#l00051">CVC3::GT</a>, <a class="el" href="theory__arith_8h_source.html#l00189">CVC3::isGE()</a>, <a class="el" href="theory__arith_8h_source.html#l00188">CVC3::isGT()</a>, <a class="el" href="theory__arith_8h_source.html#l00192">CVC3::isIneq()</a>, <a class="el" href="theory__arith_8h_source.html#l00187">CVC3::isLE()</a>, <a class="el" href="theory__arith_8h_source.html#l00186">CVC3::isLT()</a>, <a class="el" href="theory__arith_8h_source.html#l00049">CVC3::LT</a>, <a class="el" href="theory__arith_8h_source.html#l00199">CVC3::plusExpr()</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

</div>
</div>
<a class="anchor" id="aa2d099917106ead1062c72dde26a17a5"></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> ArithTheoremProducer3::addInequalities </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>thms</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>Implements <a class="el" href="classCVC3_1_1ArithProofRules.html#ab87b1e3a09aa830063d51c24a2147095">CVC3::ArithProofRules</a>.</p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l03061">3061</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

<p>References <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>.</p>

</div>
</div>
<a class="anchor" id="ae856ca9fab9699b655d7fd76cdf778d4"></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> ArithTheoremProducer3::implyWeakerInequality </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>expr1</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>expr2</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>Implements <a class="el" href="classCVC3_1_1ArithProofRules.html#a9abe85f95b61d94fa308a0b15f2b2ef8">CVC3::ArithProofRules</a>.</p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l02859">2859</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

<p>References <a class="el" href="theorem__producer_8h_source.html#l00087">CHECK_PROOFS</a>, <a class="el" href="theorem__producer_8h_source.html#l00083">CHECK_SOUND</a>, <a class="el" href="expr_8h_source.html#l01135">CVC3::Expr::getRational()</a>, <a class="el" href="expr_8h_source.html#l00969">CVC3::Expr::impExpr()</a>, <a class="el" href="theory__arith_8h_source.html#l00189">CVC3::isGE()</a>, <a class="el" href="theory__arith_8h_source.html#l00188">CVC3::isGT()</a>, <a class="el" href="theory__arith_8h_source.html#l00192">CVC3::isIneq()</a>, <a class="el" href="theory__arith_8h_source.html#l00187">CVC3::isLE()</a>, <a class="el" href="theory__arith_8h_source.html#l00186">CVC3::isLT()</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="a1797b422d1100edc2464666121d7017b"></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> ArithTheoremProducer3::implyNegatedInequality </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>expr1</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>expr2</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>Implements <a class="el" href="classCVC3_1_1ArithProofRules.html#a5eaf4d106f7ce86227ab1d96ffc66b55">CVC3::ArithProofRules</a>.</p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l02906">2906</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

<p>References <a class="el" href="theorem__producer_8h_source.html#l00087">CHECK_PROOFS</a>, <a class="el" href="theorem__producer_8h_source.html#l00083">CHECK_SOUND</a>, <a class="el" href="expr_8h_source.html#l01135">CVC3::Expr::getRational()</a>, <a class="el" href="expr_8h_source.html#l00969">CVC3::Expr::impExpr()</a>, <a class="el" href="theory__arith_8h_source.html#l00189">CVC3::isGE()</a>, <a class="el" href="theory__arith_8h_source.html#l00188">CVC3::isGT()</a>, <a class="el" href="theory__arith_8h_source.html#l00192">CVC3::isIneq()</a>, <a class="el" href="theory__arith_8h_source.html#l00187">CVC3::isLE()</a>, <a class="el" href="theory__arith_8h_source.html#l00186">CVC3::isLT()</a>, <a class="el" href="theory__arith_8h_source.html#l00177">CVC3::isRational()</a>, <a class="el" href="expr_8h_source.html#l00937">CVC3::Expr::negate()</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

</div>
</div>
<a class="anchor" id="ae25218af53e642382f30948adc991313"></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> ArithTheoremProducer3::integerSplit </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>intVar</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Rational.html">Rational</a> &amp;&#160;</td>
          <td class="paramname"><em>intPoint</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>Implements <a class="el" href="classCVC3_1_1ArithProofRules.html#a0090e0d4065efbf936ec92f0e99935e9">CVC3::ArithProofRules</a>.</p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l02951">2951</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

<p>References <a class="el" href="theorem__producer_8h_source.html#l00087">CHECK_PROOFS</a>, <a class="el" href="theorem__producer_8h_source.html#l00083">CHECK_SOUND</a>, <a class="el" href="theory__arith_8h_source.html#l00227">CVC3::geExpr()</a>, <a class="el" href="expr_8h_source.html#l00969">CVC3::Expr::impExpr()</a>, <a class="el" href="theory__arith_8h_source.html#l00053">CVC3::IS_INTEGER</a>, <a class="el" href="classCVC3_1_1Rational.html#a1366320f4de558bb964c67f8aecedb36">CVC3::Rational::isInteger()</a>, <a class="el" href="theory__arith_8h_source.html#l00223">CVC3::leExpr()</a>, <a class="el" href="expr_8h_source.html#l00955">CVC3::orExpr()</a>, and <a class="el" href="classCVC3_1_1Rational.html#a195c125a76cb9a6c5731369e244a2de3">CVC3::Rational::toString()</a>.</p>

</div>
</div>
<a class="anchor" id="ad58ee7b299de278620860c9d67a2662b"></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> ArithTheoremProducer3::trustedRewrite </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>expr1</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>expr2</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>Implements <a class="el" href="classCVC3_1_1ArithProofRules.html#a11976de555ee2e88236575893f2ed766">CVC3::ArithProofRules</a>.</p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l02938">2938</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a7638b18d73c05e7bedad7c4cdfeca809"></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> ArithTheoremProducer3::rafineStrictInteger </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>isIntConstrThm</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>constr</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>Implements <a class="el" href="classCVC3_1_1ArithProofRules.html#a4b61e3ea9d5ac911806de95241cf35de">CVC3::ArithProofRules</a>.</p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l02970">2970</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

<p>References <a class="el" href="theorem__producer_8h_source.html#l00087">CHECK_PROOFS</a>, <a class="el" href="theorem__producer_8h_source.html#l00083">CHECK_SOUND</a>, <a class="el" href="theory__arith_8h_source.html#l00052">CVC3::GE</a>, <a class="el" href="theorem_8cpp_source.html#l00385">CVC3::Theorem::getAssumptionsRef()</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#l00402">CVC3::Theorem::getProof()</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="theory__arith_8h_source.html#l00192">CVC3::isIneq()</a>, <a class="el" href="classCVC3_1_1Rational.html#a1366320f4de558bb964c67f8aecedb36">CVC3::Rational::isInteger()</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>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

</div>
</div>
<a class="anchor" id="a6fe0e5ebaf81278f55759fff05c275c1"></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> ArithTheoremProducer3::simpleIneqInt </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>ineq</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>isIntRHS</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>Implements <a class="el" href="classCVC3_1_1ArithProofRules.html#a95bc88d9e126e6b9c938691ce92985aa">CVC3::ArithProofRules</a>.</p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l03073">3073</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

<p>References <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>.</p>

</div>
</div>
<a class="anchor" id="a84ec7197bec26c33753e98b6adf55dce"></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> ArithTheoremProducer3::intEqualityRationalConstant </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>isIntConstrThm</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>constr</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>Implements <a class="el" href="classCVC3_1_1ArithProofRules.html#a93489420e882a93eb308c7d99c27dc1e">CVC3::ArithProofRules</a>.</p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l03083">3083</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

<p>References <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>.</p>

</div>
</div>
<a class="anchor" id="a5411413ef39cb6029a8e85fc03908de3"></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> ArithTheoremProducer3::cycleConflict </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>inequalitites</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>Implements <a class="el" href="classCVC3_1_1ArithProofRules.html#a5a544980652c3f6793057b16cbc43cf9">CVC3::ArithProofRules</a>.</p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l03088">3088</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

<p>References <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>.</p>

</div>
</div>
<a class="anchor" id="a1efa679a45d71f60bf2be6f4f7a4430d"></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> ArithTheoremProducer3::implyEqualities </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>inequalities</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>Implements <a class="el" href="classCVC3_1_1ArithProofRules.html#a5b475214a53d70298e55f4ac5f3db71f">CVC3::ArithProofRules</a>.</p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l03093">3093</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

<p>References <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>.</p>

</div>
</div>
<a class="anchor" id="a8e90a0d0e2050a7f0eb1dde6df7f6842"></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> ArithTheoremProducer3::implyWeakerInequalityDiffLogic </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>antecedentThms</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>implied</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>Implements <a class="el" href="classCVC3_1_1ArithProofRules.html#aafc12b4bdf180f3475ecf4eaa40648d9">CVC3::ArithProofRules</a>.</p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l03029">3029</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

<p>References <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>.</p>

</div>
</div>
<a class="anchor" id="a6ef98983cca8d3723f50fbea60c37cef"></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> ArithTheoremProducer3::implyNegatedInequalityDiffLogic </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>antecedentThms</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>implied</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>Implements <a class="el" href="classCVC3_1_1ArithProofRules.html#a61ecf1cfc7219c010519cd90cb31d465">CVC3::ArithProofRules</a>.</p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l03034">3034</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

<p>References <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>.</p>

</div>
</div>
<a class="anchor" id="aa9b6fa1339b7e68cb730bdf2f63c0914"></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> ArithTheoremProducer3::expandGrayShadowRewrite </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>theShadow</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>Implements <a class="el" href="classCVC3_1_1ArithProofRules.html#ac48d6f8b2ad8e8f8fefac775d33825b5">CVC3::ArithProofRules</a>.</p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l03039">3039</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

<p>References <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>.</p>

</div>
</div>
<a class="anchor" id="aac90a712f81d969d8aa0322b4d31de0b"></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> ArithTheoremProducer3::compactNonLinearTerm </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>nonLinear</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>Implements <a class="el" href="classCVC3_1_1ArithProofRules.html#a98020e790bcb60c9c2cc5a7e406f500f">CVC3::ArithProofRules</a>.</p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l03044">3044</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

<p>References <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>.</p>

</div>
</div>
<a class="anchor" id="aaa91789edbf7fb936789379dd15a3a4f"></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> ArithTheoremProducer3::nonLinearIneqSignSplit </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>ineqThm</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>Implements <a class="el" href="classCVC3_1_1ArithProofRules.html#aa6874fa9f5b02db0adb8149af9664b05">CVC3::ArithProofRules</a>.</p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l03049">3049</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

<p>References <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>.</p>

</div>
</div>
<a class="anchor" id="a9edd45196fbd8e61a4927134fde15e97"></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> ArithTheoremProducer3::implyDiffLogicBothBounds </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>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::vector&lt; <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>c1_le_x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1Rational.html">Rational</a>&#160;</td>
          <td class="paramname"><em>c1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::vector&lt; <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>x_le_c2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1Rational.html">Rational</a>&#160;</td>
          <td class="paramname"><em>c2</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>Implements <a class="el" href="classCVC3_1_1ArithProofRules.html#af80ad28bb01d8a37e32f29c746d22dbc">CVC3::ArithProofRules</a>.</p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l03054">3054</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

<p>References <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>.</p>

</div>
</div>
<a class="anchor" id="abf49b0eeb6087702dd1a8e9c03f7379a"></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> ArithTheoremProducer3::powerOfOne </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>Implements <a class="el" href="classCVC3_1_1ArithProofRules.html#ad3dee93f4078a4fc79ccacef33f05119">CVC3::ArithProofRules</a>.</p>

<p>Definition at line <a class="el" href="arith__theorem__producer3_8cpp_source.html#l03066">3066</a> of file <a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a>.</p>

<p>References <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>.</p>

</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a class="anchor" id="a75321b2dd304a716364b64d21ebf3d07"></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_1TheoryArith3.html">TheoryArith3</a>* CVC3::ArithTheoremProducer3::d_theoryArith</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="arith__theorem__producer3_8h_source.html#l00033">33</a> of file <a class="el" href="arith__theorem__producer3_8h_source.html">arith_theorem_producer3.h</a>.</p>

<p>Referenced by <a class="el" href="arith__theorem__producer3_8h_source.html#l00074">darkShadow()</a>, <a class="el" href="arith__theorem__producer3_8h_source.html#l00080">grayShadow()</a>, <a class="el" href="arith__theorem__producer3_8h_source.html#l00072">intType()</a>, and <a class="el" href="arith__theorem__producer3_8h_source.html#l00071">realType()</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="arith__theorem__producer3_8h_source.html">arith_theorem_producer3.h</a></li>
<li><a class="el" href="arith__theorem__producer3_8cpp_source.html">arith_theorem_producer3.cpp</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Thu May 16 2013 13:25:19 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>