Sophie

Sophie

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

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::ArithTheoremProducer 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_1ArithTheoremProducer.html">ArithTheoremProducer</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_1ArithTheoremProducer-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">CVC3::ArithTheoremProducer Class Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p><code>#include &lt;<a class="el" href="arith__theorem__producer_8h_source.html">arith_theorem_producer.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::ArithTheoremProducer:</div>
<div class="dyncontent">
<div class="center"><img src="classCVC3_1_1ArithTheoremProducer__coll__graph.gif" border="0" usemap="#CVC3_1_1ArithTheoremProducer_coll__map" alt="Collaboration graph"/></div>
<map name="CVC3_1_1ArithTheoremProducer_coll__map" id="CVC3_1_1ArithTheoremProducer_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:a8216db52c44de1ba9a50ca6dfea24720"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1ArithTheoremProducer.html#a8216db52c44de1ba9a50ca6dfea24720">ArithTheoremProducer</a> (<a class="el" href="classCVC3_1_1TheoremManager.html">TheoremManager</a> *tm, <a class="el" href="classCVC3_1_1TheoryArithNew.html">TheoryArithNew</a> *theoryArith)</td></tr>
<tr class="memdesc:a8216db52c44de1ba9a50ca6dfea24720"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor.  <a href="#a8216db52c44de1ba9a50ca6dfea24720"></a><br/></td></tr>
<tr class="separator:a8216db52c44de1ba9a50ca6dfea24720"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae0d46b17ef012eabbbe62cac026bfab9"><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_1ArithTheoremProducer.html#ae0d46b17ef012eabbbe62cac026bfab9">rat</a> (<a class="el" href="classCVC3_1_1Rational.html">Rational</a> r)</td></tr>
<tr class="memdesc:ae0d46b17ef012eabbbe62cac026bfab9"><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="#ae0d46b17ef012eabbbe62cac026bfab9"></a><br/></td></tr>
<tr class="separator:ae0d46b17ef012eabbbe62cac026bfab9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4606a94098ae94cdae1b924dc7f7b4ae"><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_1ArithTheoremProducer.html#a4606a94098ae94cdae1b924dc7f7b4ae">realType</a> ()</td></tr>
<tr class="separator:a4606a94098ae94cdae1b924dc7f7b4ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8b33391347e9741339b674abd5c4fbf2"><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_1ArithTheoremProducer.html#a8b33391347e9741339b674abd5c4fbf2">intType</a> ()</td></tr>
<tr class="separator:a8b33391347e9741339b674abd5c4fbf2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9dfab0a471e7a705264be04007ac61e5"><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_1ArithTheoremProducer.html#a9dfab0a471e7a705264be04007ac61e5">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:a9dfab0a471e7a705264be04007ac61e5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Construct the dark shadow expression representing lhs &lt;= rhs.  <a href="#a9dfab0a471e7a705264be04007ac61e5"></a><br/></td></tr>
<tr class="separator:a9dfab0a471e7a705264be04007ac61e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1684298bef4bf1efdccb7078f5a6c96f"><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_1ArithTheoremProducer.html#a1684298bef4bf1efdccb7078f5a6c96f">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:a1684298bef4bf1efdccb7078f5a6c96f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Construct the gray shadow expression representing c1 &lt;= v - e &lt;= c2.  <a href="#a1684298bef4bf1efdccb7078f5a6c96f"></a><br/></td></tr>
<tr class="separator:a1684298bef4bf1efdccb7078f5a6c96f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7568925b6c26f1c7ba882893f596d214"><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_1ArithTheoremProducer.html#a7568925b6c26f1c7ba882893f596d214">varToMult</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="memdesc:a7568925b6c26f1c7ba882893f596d214"><td class="mdescLeft">&#160;</td><td class="mdescRight">==&gt; e = 1 * e  <a href="#a7568925b6c26f1c7ba882893f596d214"></a><br/></td></tr>
<tr class="separator:a7568925b6c26f1c7ba882893f596d214"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaafdbe9dcc49728cc2bf16b43045c193"><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_1ArithTheoremProducer.html#aaafdbe9dcc49728cc2bf16b43045c193">uMinusToMult</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="memdesc:aaafdbe9dcc49728cc2bf16b43045c193"><td class="mdescLeft">&#160;</td><td class="mdescRight">==&gt; -(e) = (-1) * e  <a href="#aaafdbe9dcc49728cc2bf16b43045c193"></a><br/></td></tr>
<tr class="separator:aaafdbe9dcc49728cc2bf16b43045c193"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab369e518fc2ee411503253fa0b1515d6"><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_1ArithTheoremProducer.html#ab369e518fc2ee411503253fa0b1515d6">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:ab369e518fc2ee411503253fa0b1515d6"><td class="mdescLeft">&#160;</td><td class="mdescRight">==&gt; x - y = x + (-1) * y  <a href="#ab369e518fc2ee411503253fa0b1515d6"></a><br/></td></tr>
<tr class="separator:ab369e518fc2ee411503253fa0b1515d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4671174ae8ff61c52f16ddd53a3cdd27"><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_1ArithTheoremProducer.html#a4671174ae8ff61c52f16ddd53a3cdd27">canonUMinusToDivide</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="memdesc:a4671174ae8ff61c52f16ddd53a3cdd27"><td class="mdescLeft">&#160;</td><td class="mdescRight">-(e) ==&gt; e / (-1); takes 'e'  <a href="#a4671174ae8ff61c52f16ddd53a3cdd27"></a><br/></td></tr>
<tr class="separator:a4671174ae8ff61c52f16ddd53a3cdd27"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a515e5d076ed135a6d943c2f5d5e34188"><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_1ArithTheoremProducer.html#a515e5d076ed135a6d943c2f5d5e34188">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:a515e5d076ed135a6d943c2f5d5e34188"><td class="mdescLeft">&#160;</td><td class="mdescRight">(c) / d ==&gt; (c/d), takes c and d  <a href="#a515e5d076ed135a6d943c2f5d5e34188"></a><br/></td></tr>
<tr class="separator:a515e5d076ed135a6d943c2f5d5e34188"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4d2d8da9de6d6faaa07758c01e3a9fe8"><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_1ArithTheoremProducer.html#a4d2d8da9de6d6faaa07758c01e3a9fe8">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:a4d2d8da9de6d6faaa07758c01e3a9fe8"><td class="mdescLeft">&#160;</td><td class="mdescRight">(c * x) / d ==&gt; (c/d) * x, takes (c*x) and d  <a href="#a4d2d8da9de6d6faaa07758c01e3a9fe8"></a><br/></td></tr>
<tr class="separator:a4d2d8da9de6d6faaa07758c01e3a9fe8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4338b85f1dd0fca0cc58e6b7259a20b4"><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_1ArithTheoremProducer.html#a4338b85f1dd0fca0cc58e6b7259a20b4">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:a4338b85f1dd0fca0cc58e6b7259a20b4"><td class="mdescLeft">&#160;</td><td class="mdescRight">(+ c ...)/d ==&gt; push division to all the coefficients.  <a href="#a4338b85f1dd0fca0cc58e6b7259a20b4"></a><br/></td></tr>
<tr class="separator:a4338b85f1dd0fca0cc58e6b7259a20b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa651eb7a4d20a77135efa2d3e984c355"><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_1ArithTheoremProducer.html#aa651eb7a4d20a77135efa2d3e984c355">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:aa651eb7a4d20a77135efa2d3e984c355"><td class="mdescLeft">&#160;</td><td class="mdescRight">x / d ==&gt; (1/d) * x, takes x and d  <a href="#aa651eb7a4d20a77135efa2d3e984c355"></a><br/></td></tr>
<tr class="separator:aa651eb7a4d20a77135efa2d3e984c355"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af24b2bc3bc03bc320707362f2460dd0e"><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_1ArithTheoremProducer.html#af24b2bc3bc03bc320707362f2460dd0e">simplifiedMultExpr</a> (std::vector&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;mulKids)</td></tr>
<tr class="separator:af24b2bc3bc03bc320707362f2460dd0e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a10ebfab26aa4ee1a147f08d8f6b94c45"><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_1ArithTheoremProducer.html#a10ebfab26aa4ee1a147f08d8f6b94c45">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:a10ebfab26aa4ee1a147f08d8f6b94c45"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a48b21552a97a3a75ae469fb48c155e51"><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_1ArithTheoremProducer.html#a48b21552a97a3a75ae469fb48c155e51">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:a48b21552a97a3a75ae469fb48c155e51"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aebf0a0b539104e2190b53351efc6116b"><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_1ArithTheoremProducer.html#aebf0a0b539104e2190b53351efc6116b">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:aebf0a0b539104e2190b53351efc6116b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aabc24cdaf5d3a390f9880937bac17311"><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_1ArithTheoremProducer.html#aabc24cdaf5d3a390f9880937bac17311">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:aabc24cdaf5d3a390f9880937bac17311"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aae1bc41d54f8b148ce5cf9425ac688af"><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_1ArithTheoremProducer.html#aae1bc41d54f8b148ce5cf9425ac688af">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:aae1bc41d54f8b148ce5cf9425ac688af"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a05b2608fd280890cb49bf4534a54e304"><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_1ArithTheoremProducer.html#a05b2608fd280890cb49bf4534a54e304">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:a05b2608fd280890cb49bf4534a54e304"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9548361051bb6febc314faa107d2c2f5"><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_1ArithTheoremProducer.html#a9548361051bb6febc314faa107d2c2f5">canonCombineLikeTerms</a> (const std::vector&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;sumExprs)</td></tr>
<tr class="separator:a9548361051bb6febc314faa107d2c2f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0b344f367f01d240d997df7edfe1a12c"><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_1ArithTheoremProducer.html#a0b344f367f01d240d997df7edfe1a12c">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:a0b344f367f01d240d997df7edfe1a12c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac0363ff2f51ad1173ed1e46046b0654a"><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_1ArithTheoremProducer.html#ac0363ff2f51ad1173ed1e46046b0654a">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:ac0363ff2f51ad1173ed1e46046b0654a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab5166b206f49897a6a49ba0014c0b808"><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_1ArithTheoremProducer.html#ab5166b206f49897a6a49ba0014c0b808">canonMultMtermMterm</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="separator:ab5166b206f49897a6a49ba0014c0b808"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a41f7000c783a82e9a86cad823b06bff4"><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_1ArithTheoremProducer.html#a41f7000c783a82e9a86cad823b06bff4">canonPlus</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="memdesc:a41f7000c783a82e9a86cad823b06bff4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Canonize (PLUS t1 ... tn)  <a href="#a41f7000c783a82e9a86cad823b06bff4"></a><br/></td></tr>
<tr class="separator:a41f7000c783a82e9a86cad823b06bff4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7b07ab799dbdf80254df3ec7fc35d36d"><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_1ArithTheoremProducer.html#a7b07ab799dbdf80254df3ec7fc35d36d">canonInvertConst</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="separator:a7b07ab799dbdf80254df3ec7fc35d36d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afb0c2a89f3373dcb26cd516714d0e49a"><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_1ArithTheoremProducer.html#afb0c2a89f3373dcb26cd516714d0e49a">canonInvertLeaf</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="separator:afb0c2a89f3373dcb26cd516714d0e49a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6a829cb16f960f9e7c2f25ea4906eaba"><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_1ArithTheoremProducer.html#a6a829cb16f960f9e7c2f25ea4906eaba">canonInvertPow</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="separator:a6a829cb16f960f9e7c2f25ea4906eaba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a70a381c22184655fb6d4f3b621bf216b"><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_1ArithTheoremProducer.html#a70a381c22184655fb6d4f3b621bf216b">canonInvertMult</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="separator:a70a381c22184655fb6d4f3b621bf216b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7c7c860b193ec63a776dd13613aeca25"><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_1ArithTheoremProducer.html#a7c7c860b193ec63a776dd13613aeca25">canonInvert</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="memdesc:a7c7c860b193ec63a776dd13613aeca25"><td class="mdescLeft">&#160;</td><td class="mdescRight">==&gt; 1/e = e' where e' is canonical; takes e.  <a href="#a7c7c860b193ec63a776dd13613aeca25"></a><br/></td></tr>
<tr class="separator:a7c7c860b193ec63a776dd13613aeca25"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a77b99e94956d407e5cd20701e6771120"><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_1ArithTheoremProducer.html#a77b99e94956d407e5cd20701e6771120">moveSumConstantRight</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="separator:a77b99e94956d407e5cd20701e6771120"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a92540cc58f6203c2904fc2bd197190da"><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_1ArithTheoremProducer.html#a92540cc58f6203c2904fc2bd197190da">canonDivide</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="separator:a92540cc58f6203c2904fc2bd197190da"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9bd77385dd0cbaac271aaab4b6c6ec09"><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_1ArithTheoremProducer.html#a9bd77385dd0cbaac271aaab4b6c6ec09">canonMult</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="separator:a9bd77385dd0cbaac271aaab4b6c6ec09"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af6ba91fa47c4c9139c4d93fe3de0112f"><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_1ArithTheoremProducer.html#af6ba91fa47c4c9139c4d93fe3de0112f">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:af6ba91fa47c4c9139c4d93fe3de0112f"><td class="mdescLeft">&#160;</td><td class="mdescRight">t*c ==&gt; c*t, takes constant c and term t  <a href="#af6ba91fa47c4c9139c4d93fe3de0112f"></a><br/></td></tr>
<tr class="separator:af6ba91fa47c4c9139c4d93fe3de0112f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a529fe89fea243d932879a1a74e9d36a7"><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_1ArithTheoremProducer.html#a529fe89fea243d932879a1a74e9d36a7">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:a529fe89fea243d932879a1a74e9d36a7"><td class="mdescLeft">&#160;</td><td class="mdescRight">t1*t2 ==&gt; Error, takes t1 and t2 where both are non-constants  <a href="#a529fe89fea243d932879a1a74e9d36a7"></a><br/></td></tr>
<tr class="separator:a529fe89fea243d932879a1a74e9d36a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a55ec89d6cf310694e9f4b1013a795ce2"><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_1ArithTheoremProducer.html#a55ec89d6cf310694e9f4b1013a795ce2">canonMultZero</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="memdesc:a55ec89d6cf310694e9f4b1013a795ce2"><td class="mdescLeft">&#160;</td><td class="mdescRight">0*t ==&gt; 0, takes 0*t  <a href="#a55ec89d6cf310694e9f4b1013a795ce2"></a><br/></td></tr>
<tr class="separator:a55ec89d6cf310694e9f4b1013a795ce2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae5a6e1b2c7b9239b7e53027c51a2dc7e"><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_1ArithTheoremProducer.html#ae5a6e1b2c7b9239b7e53027c51a2dc7e">canonMultOne</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="memdesc:ae5a6e1b2c7b9239b7e53027c51a2dc7e"><td class="mdescLeft">&#160;</td><td class="mdescRight">1*t ==&gt; t, takes 1*t  <a href="#ae5a6e1b2c7b9239b7e53027c51a2dc7e"></a><br/></td></tr>
<tr class="separator:ae5a6e1b2c7b9239b7e53027c51a2dc7e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:affbdf02016310d8cd6a9037fdd9eddc6"><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_1ArithTheoremProducer.html#affbdf02016310d8cd6a9037fdd9eddc6">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:affbdf02016310d8cd6a9037fdd9eddc6"><td class="mdescLeft">&#160;</td><td class="mdescRight">c1*c2 ==&gt; c', takes constant c1*c2  <a href="#affbdf02016310d8cd6a9037fdd9eddc6"></a><br/></td></tr>
<tr class="separator:affbdf02016310d8cd6a9037fdd9eddc6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad51f0d5c3232b6c247939a10e253f53d"><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_1ArithTheoremProducer.html#ad51f0d5c3232b6c247939a10e253f53d">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:ad51f0d5c3232b6c247939a10e253f53d"><td class="mdescLeft">&#160;</td><td class="mdescRight">c1*(c2*t) ==&gt; c'*t, takes c1 and c2 and t  <a href="#ad51f0d5c3232b6c247939a10e253f53d"></a><br/></td></tr>
<tr class="separator:ad51f0d5c3232b6c247939a10e253f53d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab0e0e14c71501a9f8208963c54010fe4"><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_1ArithTheoremProducer.html#ab0e0e14c71501a9f8208963c54010fe4">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:ab0e0e14c71501a9f8208963c54010fe4"><td class="mdescLeft">&#160;</td><td class="mdescRight">c1*(+ c2 v1 ...) ==&gt; (+ c' c1v1 ...), takes c1 and the sum  <a href="#ab0e0e14c71501a9f8208963c54010fe4"></a><br/></td></tr>
<tr class="separator:ab0e0e14c71501a9f8208963c54010fe4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af673275ae1c3dc606b29979b60df35c5"><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_1ArithTheoremProducer.html#af673275ae1c3dc606b29979b60df35c5">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:af673275ae1c3dc606b29979b60df35c5"><td class="mdescLeft">&#160;</td><td class="mdescRight">c^n = c' (compute the constant power expression)  <a href="#af673275ae1c3dc606b29979b60df35c5"></a><br/></td></tr>
<tr class="separator:af673275ae1c3dc606b29979b60df35c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a19964269c705bafbe69cb1052fe7bec8"><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_1ArithTheoremProducer.html#a19964269c705bafbe69cb1052fe7bec8">canonFlattenSum</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="memdesc:a19964269c705bafbe69cb1052fe7bec8"><td class="mdescLeft">&#160;</td><td class="mdescRight">flattens the input. accepts a PLUS expr  <a href="#a19964269c705bafbe69cb1052fe7bec8"></a><br/></td></tr>
<tr class="separator:a19964269c705bafbe69cb1052fe7bec8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac9ee451992ab00f200ee8aee26e99e0c"><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_1ArithTheoremProducer.html#ac9ee451992ab00f200ee8aee26e99e0c">canonComboLikeTerms</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="memdesc:ac9ee451992ab00f200ee8aee26e99e0c"><td class="mdescLeft">&#160;</td><td class="mdescRight">combine like terms. accepts a flattened PLUS expr  <a href="#ac9ee451992ab00f200ee8aee26e99e0c"></a><br/></td></tr>
<tr class="separator:ac9ee451992ab00f200ee8aee26e99e0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0040d5d848f7040df940b92d95a75930"><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_1ArithTheoremProducer.html#a0040d5d848f7040df940b92d95a75930">multEqZero</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;expr)</td></tr>
<tr class="separator:a0040d5d848f7040df940b92d95a75930"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9cd618abf322c0389f1fc40f274059c2"><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_1ArithTheoremProducer.html#a9cd618abf322c0389f1fc40f274059c2">powEqZero</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;expr)</td></tr>
<tr class="separator:a9cd618abf322c0389f1fc40f274059c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3c454b863142345e1093663fbb89d306"><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_1ArithTheoremProducer.html#a3c454b863142345e1093663fbb89d306">elimPower</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;expr)</td></tr>
<tr class="separator:a3c454b863142345e1093663fbb89d306"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a21456f49d3a6711f21e3c13fb3c0d34a"><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_1ArithTheoremProducer.html#a21456f49d3a6711f21e3c13fb3c0d34a">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:a21456f49d3a6711f21e3c13fb3c0d34a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afbf059903de8b1e87aef9a4a75340d6c"><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_1ArithTheoremProducer.html#afbf059903de8b1e87aef9a4a75340d6c">evenPowerEqNegConst</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;expr)</td></tr>
<tr class="separator:afbf059903de8b1e87aef9a4a75340d6c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa3838fe1c003a9f47f3ec8344d192dea"><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_1ArithTheoremProducer.html#aa3838fe1c003a9f47f3ec8344d192dea">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:aa3838fe1c003a9f47f3ec8344d192dea"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a621015d4894231ecd9ab465494e9c9c8"><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_1ArithTheoremProducer.html#a621015d4894231ecd9ab465494e9c9c8">constPredicate</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="memdesc:a621015d4894231ecd9ab465494e9c9c8"><td class="mdescLeft">&#160;</td><td class="mdescRight">e0 @ e1 &lt;==&gt; true | false, where @ is {=,&lt;,&lt;=,&gt;,&gt;=}  <a href="#a621015d4894231ecd9ab465494e9c9c8"></a><br/></td></tr>
<tr class="separator:a621015d4894231ecd9ab465494e9c9c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3eb1309c184247837239c098d9c9100a"><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_1ArithTheoremProducer.html#a3eb1309c184247837239c098d9c9100a">rightMinusLeft</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="memdesc:a3eb1309c184247837239c098d9c9100a"><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="#a3eb1309c184247837239c098d9c9100a"></a><br/></td></tr>
<tr class="separator:a3eb1309c184247837239c098d9c9100a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8196042ba713a7c782ee4b5eb4c69ccc"><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_1ArithTheoremProducer.html#a8196042ba713a7c782ee4b5eb4c69ccc">leftMinusRight</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="memdesc:a8196042ba713a7c782ee4b5eb4c69ccc"><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="#a8196042ba713a7c782ee4b5eb4c69ccc"></a><br/></td></tr>
<tr class="separator:a8196042ba713a7c782ee4b5eb4c69ccc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3c3041eb3b0144e21d72ffe6999953e2"><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_1ArithTheoremProducer.html#a3c3041eb3b0144e21d72ffe6999953e2">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:a3c3041eb3b0144e21d72ffe6999953e2"><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="#a3c3041eb3b0144e21d72ffe6999953e2"></a><br/></td></tr>
<tr class="separator:a3c3041eb3b0144e21d72ffe6999953e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae66ddbc1457e3c032ea9059625059992"><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_1ArithTheoremProducer.html#ae66ddbc1457e3c032ea9059625059992">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:ae66ddbc1457e3c032ea9059625059992"><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="#ae66ddbc1457e3c032ea9059625059992"></a><br/></td></tr>
<tr class="separator:ae66ddbc1457e3c032ea9059625059992"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa371616db9ac1a4a9c7a4b1ce0f2a05c"><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_1ArithTheoremProducer.html#aa371616db9ac1a4a9c7a4b1ce0f2a05c">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:aa371616db9ac1a4a9c7a4b1ce0f2a05c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3d245f36a2e42684ec2fd9356d89111f"><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_1ArithTheoremProducer.html#a3d245f36a2e42684ec2fd9356d89111f">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:a3d245f36a2e42684ec2fd9356d89111f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Multiplying inequation by a non-zero constant.  <a href="#a3d245f36a2e42684ec2fd9356d89111f"></a><br/></td></tr>
<tr class="separator:a3d245f36a2e42684ec2fd9356d89111f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a517d45514aefcab0dc6aabb400f149fd"><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_1ArithTheoremProducer.html#a517d45514aefcab0dc6aabb400f149fd">eqToIneq</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="memdesc:a517d45514aefcab0dc6aabb400f149fd"><td class="mdescLeft">&#160;</td><td class="mdescRight">x = y ==&gt; x &lt;= y and x &gt;= y  <a href="#a517d45514aefcab0dc6aabb400f149fd"></a><br/></td></tr>
<tr class="separator:a517d45514aefcab0dc6aabb400f149fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af069fc1b320c0455ec7cde192668884b"><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_1ArithTheoremProducer.html#af069fc1b320c0455ec7cde192668884b">flipInequality</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="memdesc:af069fc1b320c0455ec7cde192668884b"><td class="mdescLeft">&#160;</td><td class="mdescRight">"op1 GE|GT op2" &lt;==&gt; op2 LE|LT op1  <a href="#af069fc1b320c0455ec7cde192668884b"></a><br/></td></tr>
<tr class="separator:af069fc1b320c0455ec7cde192668884b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a07368f8a2e12b5c189645a99bc934102"><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_1ArithTheoremProducer.html#a07368f8a2e12b5c189645a99bc934102">negatedInequality</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="memdesc:a07368f8a2e12b5c189645a99bc934102"><td class="mdescLeft">&#160;</td><td class="mdescRight">Propagating negation over &lt;,&lt;=,&gt;,&gt;=.  <a href="#a07368f8a2e12b5c189645a99bc934102"></a><br/></td></tr>
<tr class="separator:a07368f8a2e12b5c189645a99bc934102"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8092c96a87d952fc1e572bb9237ff994"><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_1ArithTheoremProducer.html#a8092c96a87d952fc1e572bb9237ff994">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:a8092c96a87d952fc1e572bb9237ff994"><td class="mdescLeft">&#160;</td><td class="mdescRight">Real shadow: a &lt;(=) t, t &lt;(=) b ==&gt; a &lt;(=) b.  <a href="#a8092c96a87d952fc1e572bb9237ff994"></a><br/></td></tr>
<tr class="separator:a8092c96a87d952fc1e572bb9237ff994"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6e14251c516153e14539a34598daca04"><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_1ArithTheoremProducer.html#a6e14251c516153e14539a34598daca04">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:a6e14251c516153e14539a34598daca04"><td class="mdescLeft">&#160;</td><td class="mdescRight">alpha &lt;= t &lt;= alpha ==&gt; t = alpha  <a href="#a6e14251c516153e14539a34598daca04"></a><br/></td></tr>
<tr class="separator:a6e14251c516153e14539a34598daca04"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7f4c82e18e7a3ed3b5b22a6ce7d7cf27"><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_1ArithTheoremProducer.html#a7f4c82e18e7a3ed3b5b22a6ce7d7cf27">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:a7f4c82e18e7a3ed3b5b22a6ce7d7cf27"><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="#a7f4c82e18e7a3ed3b5b22a6ce7d7cf27"></a><br/></td></tr>
<tr class="separator:a7f4c82e18e7a3ed3b5b22a6ce7d7cf27"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aef6fd1261bea182d4554d0423803b05e"><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_1ArithTheoremProducer.html#aef6fd1261bea182d4554d0423803b05e">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:aef6fd1261bea182d4554d0423803b05e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dark &amp; Gray shadows when a &lt;= b.  <a href="#aef6fd1261bea182d4554d0423803b05e"></a><br/></td></tr>
<tr class="separator:aef6fd1261bea182d4554d0423803b05e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaf64935bb620ab79fd7383f1913bd8b8"><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_1ArithTheoremProducer.html#aaf64935bb620ab79fd7383f1913bd8b8">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:aaf64935bb620ab79fd7383f1913bd8b8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dark &amp; Gray shadows when b &lt;= a.  <a href="#aaf64935bb620ab79fd7383f1913bd8b8"></a><br/></td></tr>
<tr class="separator:aaf64935bb620ab79fd7383f1913bd8b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aafadfc6ae6013ab18a7b4ee570cce16a"><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_1ArithTheoremProducer.html#aafadfc6ae6013ab18a7b4ee570cce16a">expandDarkShadow</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;<a class="el" href="classCVC3_1_1ArithTheoremProducer.html#a9dfab0a471e7a705264be04007ac61e5">darkShadow</a>)</td></tr>
<tr class="separator:aafadfc6ae6013ab18a7b4ee570cce16a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac8a2c0a97ace8f17153ad784c87ba5a2"><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_1ArithTheoremProducer.html#ac8a2c0a97ace8f17153ad784c87ba5a2">expandGrayShadow0</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;<a class="el" href="classCVC3_1_1ArithTheoremProducer.html#a1684298bef4bf1efdccb7078f5a6c96f">grayShadow</a>)</td></tr>
<tr class="memdesc:ac8a2c0a97ace8f17153ad784c87ba5a2"><td class="mdescLeft">&#160;</td><td class="mdescRight">GRAY_SHADOW(v, e, c, c) ==&gt; v=e+c.  <a href="#ac8a2c0a97ace8f17153ad784c87ba5a2"></a><br/></td></tr>
<tr class="separator:ac8a2c0a97ace8f17153ad784c87ba5a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a14af8b5ecbfaaee4600453bd9d681838"><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_1ArithTheoremProducer.html#a14af8b5ecbfaaee4600453bd9d681838">splitGrayShadow</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;<a class="el" href="classCVC3_1_1ArithTheoremProducer.html#a1684298bef4bf1efdccb7078f5a6c96f">grayShadow</a>)</td></tr>
<tr class="memdesc:a14af8b5ecbfaaee4600453bd9d681838"><td class="mdescLeft">&#160;</td><td class="mdescRight">G(x, e, c1, c2) ==&gt; (G1 or G2) and (!G1 or !G2)  <a href="#a14af8b5ecbfaaee4600453bd9d681838"></a><br/></td></tr>
<tr class="separator:a14af8b5ecbfaaee4600453bd9d681838"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acaa835c8569f6667fa26bfedb0502cf1"><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_1ArithTheoremProducer.html#acaa835c8569f6667fa26bfedb0502cf1">splitGrayShadowSmall</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;<a class="el" href="classCVC3_1_1ArithTheoremProducer.html#a1684298bef4bf1efdccb7078f5a6c96f">grayShadow</a>)</td></tr>
<tr class="separator:acaa835c8569f6667fa26bfedb0502cf1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac6714d4922aea3413f9aeed742bc645e"><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_1ArithTheoremProducer.html#ac6714d4922aea3413f9aeed742bc645e">expandGrayShadow</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;<a class="el" href="classCVC3_1_1ArithTheoremProducer.html#a1684298bef4bf1efdccb7078f5a6c96f">grayShadow</a>)</td></tr>
<tr class="memdesc:ac6714d4922aea3413f9aeed742bc645e"><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="#ac6714d4922aea3413f9aeed742bc645e"></a><br/></td></tr>
<tr class="separator:ac6714d4922aea3413f9aeed742bc645e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af091e13254c983370c46707a03b1ad30"><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_1ArithTheoremProducer.html#af091e13254c983370c46707a03b1ad30">expandGrayShadowConst</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;<a class="el" href="classCVC3_1_1ArithTheoremProducer.html#a1684298bef4bf1efdccb7078f5a6c96f">grayShadow</a>)</td></tr>
<tr class="memdesc:af091e13254c983370c46707a03b1ad30"><td class="mdescLeft">&#160;</td><td class="mdescRight">Optimized rules: GRAY_SHADOW(a*x, c, c1, c2) ==&gt; [expansion].  <a href="#af091e13254c983370c46707a03b1ad30"></a><br/></td></tr>
<tr class="separator:af091e13254c983370c46707a03b1ad30"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af0070c5da95d33029e54b1d669d5b1f0"><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_1ArithTheoremProducer.html#af0070c5da95d33029e54b1d669d5b1f0">grayShadowConst</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;g)</td></tr>
<tr class="memdesc:af0070c5da95d33029e54b1d669d5b1f0"><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="#af0070c5da95d33029e54b1d669d5b1f0"></a><br/></td></tr>
<tr class="separator:af0070c5da95d33029e54b1d669d5b1f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a529e92e59e9009e3330a8592c9cb56fe"><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_1ArithTheoremProducer.html#a529e92e59e9009e3330a8592c9cb56fe">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:a529e92e59e9009e3330a8592c9cb56fe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements j(c,b,a)  <a href="#a529e92e59e9009e3330a8592c9cb56fe"></a><br/></td></tr>
<tr class="separator:a529e92e59e9009e3330a8592c9cb56fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac5d4056f00cee80d73b5b46f63bd5b3d"><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_1ArithTheoremProducer.html#ac5d4056f00cee80d73b5b46f63bd5b3d">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:ac5d4056f00cee80d73b5b46f63bd5b3d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af55c5d0a2626f955b0843381ca8b50f3"><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_1ArithTheoremProducer.html#af55c5d0a2626f955b0843381ca8b50f3">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:af55c5d0a2626f955b0843381ca8b50f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a92936e3de514c430659486b00e84b0a9"><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_1ArithTheoremProducer.html#a92936e3de514c430659486b00e84b0a9">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:a92936e3de514c430659486b00e84b0a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a85e9c7d93d6d1433fea606b0c3878e25"><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_1ArithTheoremProducer.html#a85e9c7d93d6d1433fea606b0c3878e25">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:a85e9c7d93d6d1433fea606b0c3878e25"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a49d6559f50d51cde3c2e723c2a254cff"><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_1ArithTheoremProducer.html#a49d6559f50d51cde3c2e723c2a254cff">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:a49d6559f50d51cde3c2e723c2a254cff"><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="#a49d6559f50d51cde3c2e723c2a254cff"></a><br/></td></tr>
<tr class="separator:a49d6559f50d51cde3c2e723c2a254cff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af1baf70d6108dc52cbb9704e2a8889ec"><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_1ArithTheoremProducer.html#af1baf70d6108dc52cbb9704e2a8889ec">isIntConst</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="memdesc:af1baf70d6108dc52cbb9704e2a8889ec"><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="#af1baf70d6108dc52cbb9704e2a8889ec"></a><br/></td></tr>
<tr class="separator:af1baf70d6108dc52cbb9704e2a8889ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a512f22a4a025477ced8c27f3d62809d7"><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_1ArithTheoremProducer.html#a512f22a4a025477ced8c27f3d62809d7">equalLeaves1</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;e)</td></tr>
<tr class="separator:a512f22a4a025477ced8c27f3d62809d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a77ae567431bf98e20cc08903deb2ec99"><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_1ArithTheoremProducer.html#a77ae567431bf98e20cc08903deb2ec99">equalLeaves2</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;e)</td></tr>
<tr class="separator:a77ae567431bf98e20cc08903deb2ec99"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8de6b6b44c60cf495b455b980a7c681b"><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_1ArithTheoremProducer.html#a8de6b6b44c60cf495b455b980a7c681b">equalLeaves3</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;e)</td></tr>
<tr class="separator:a8de6b6b44c60cf495b455b980a7c681b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a97768870957319cdc68eb94694a37dc5"><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_1ArithTheoremProducer.html#a97768870957319cdc68eb94694a37dc5">equalLeaves4</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;e)</td></tr>
<tr class="separator:a97768870957319cdc68eb94694a37dc5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3d6e1d8668360c20b5a6a47e3fcc4612"><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_1ArithTheoremProducer.html#a3d6e1d8668360c20b5a6a47e3fcc4612">diseqToIneq</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;diseq)</td></tr>
<tr class="memdesc:a3d6e1d8668360c20b5a6a47e3fcc4612"><td class="mdescLeft">&#160;</td><td class="mdescRight">x /= y ==&gt; (x &lt; y) OR (x &gt; y)  <a href="#a3d6e1d8668360c20b5a6a47e3fcc4612"></a><br/></td></tr>
<tr class="separator:a3d6e1d8668360c20b5a6a47e3fcc4612"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a753c339b31e38915ae6f06e0fe6e48da"><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_1ArithTheoremProducer.html#a753c339b31e38915ae6f06e0fe6e48da">dummyTheorem</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="separator:a753c339b31e38915ae6f06e0fe6e48da"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a23051d23d509f9cda35c64d4a5ff1dbf"><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_1ArithTheoremProducer.html#a23051d23d509f9cda35c64d4a5ff1dbf">oneElimination</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;x)</td></tr>
<tr class="separator:a23051d23d509f9cda35c64d4a5ff1dbf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad4513630a9eec6c841b527222a79ea1d"><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_1ArithTheoremProducer.html#ad4513630a9eec6c841b527222a79ea1d">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:ad4513630a9eec6c841b527222a79ea1d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3b2bea72cd9163daa7c41388037bca29"><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_1ArithTheoremProducer.html#a3b2bea72cd9163daa7c41388037bca29">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:a3b2bea72cd9163daa7c41388037bca29"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0eb949bb19e618a8318f236b249fadd5"><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_1ArithTheoremProducer.html#a0eb949bb19e618a8318f236b249fadd5">addInequalities</a> (const std::vector&lt; <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &gt; &amp;thms)</td></tr>
<tr class="separator:a0eb949bb19e618a8318f236b249fadd5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a364ef37224bae3afb4f62a5c0f75d02c"><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_1ArithTheoremProducer.html#a364ef37224bae3afb4f62a5c0f75d02c">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:a364ef37224bae3afb4f62a5c0f75d02c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1bf4d45330b587882e726daa9117cdfb"><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_1ArithTheoremProducer.html#a1bf4d45330b587882e726daa9117cdfb">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:a1bf4d45330b587882e726daa9117cdfb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab9395a2ee958d70c780df2514e517320"><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_1ArithTheoremProducer.html#ab9395a2ee958d70c780df2514e517320">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:ab9395a2ee958d70c780df2514e517320"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a43fa5f7c8c3ad3915de7f068ac8cefbd"><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_1ArithTheoremProducer.html#a43fa5f7c8c3ad3915de7f068ac8cefbd">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:a43fa5f7c8c3ad3915de7f068ac8cefbd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4b28aa17702ca3f9703e61ca012ca236"><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_1ArithTheoremProducer.html#a4b28aa17702ca3f9703e61ca012ca236">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:a4b28aa17702ca3f9703e61ca012ca236"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afd5bca9b136254b904b931680180ac83"><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_1ArithTheoremProducer.html#afd5bca9b136254b904b931680180ac83">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:afd5bca9b136254b904b931680180ac83"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad5f121b6b7d6b8ae951dfb4cce064575"><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_1ArithTheoremProducer.html#ad5f121b6b7d6b8ae951dfb4cce064575">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:ad5f121b6b7d6b8ae951dfb4cce064575"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0111aa5645658dbd6a4bc030178edb94"><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_1ArithTheoremProducer.html#a0111aa5645658dbd6a4bc030178edb94">cycleConflict</a> (const std::vector&lt; <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &gt; &amp;inequalitites)</td></tr>
<tr class="separator:a0111aa5645658dbd6a4bc030178edb94"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abb8aff055ea56ad8de2b66fd9a7aeba9"><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_1ArithTheoremProducer.html#abb8aff055ea56ad8de2b66fd9a7aeba9">implyEqualities</a> (const std::vector&lt; <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &gt; &amp;inequalities)</td></tr>
<tr class="separator:abb8aff055ea56ad8de2b66fd9a7aeba9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae3a7aa0ebe8e84b806efaa59278ea75e"><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_1ArithTheoremProducer.html#ae3a7aa0ebe8e84b806efaa59278ea75e">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:ae3a7aa0ebe8e84b806efaa59278ea75e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab794c1f9d6e971ac56e0063f409b4774"><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_1ArithTheoremProducer.html#ab794c1f9d6e971ac56e0063f409b4774">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:ab794c1f9d6e971ac56e0063f409b4774"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a84a9652acc5908e5d1ead5c54c1f2d90"><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_1ArithTheoremProducer.html#a84a9652acc5908e5d1ead5c54c1f2d90">expandGrayShadowRewrite</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;theShadow)</td></tr>
<tr class="separator:a84a9652acc5908e5d1ead5c54c1f2d90"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae43400e7e4c9e3695a75da3bd5718eda"><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_1ArithTheoremProducer.html#ae43400e7e4c9e3695a75da3bd5718eda">compactNonLinearTerm</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;nonLinear)</td></tr>
<tr class="separator:ae43400e7e4c9e3695a75da3bd5718eda"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9edd8b9ee6a8b4d14e9a2f967b78d52f"><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_1ArithTheoremProducer.html#a9edd8b9ee6a8b4d14e9a2f967b78d52f">nonLinearIneqSignSplit</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;ineqThm)</td></tr>
<tr class="separator:a9edd8b9ee6a8b4d14e9a2f967b78d52f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a45d8f89bdb0e57ddbaec273a24bf34b4"><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_1ArithTheoremProducer.html#a45d8f89bdb0e57ddbaec273a24bf34b4">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:a45d8f89bdb0e57ddbaec273a24bf34b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0433b1ba53a33275015c26450acb09d0"><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_1ArithTheoremProducer.html#a0433b1ba53a33275015c26450acb09d0">powerOfOne</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)</td></tr>
<tr class="separator:a0433b1ba53a33275015c26450acb09d0"><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:a23faa6b30e4b01d7540ac1e22e6e06ce"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1ArithTheoremProducer.html#a23faa6b30e4b01d7540ac1e22e6e06ce">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:a23faa6b30e4b01d7540ac1e22e6e06ce"><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_1ArithTheoremProducer.html#a49d6559f50d51cde3c2e723c2a254cff" title="Equality elimination rule for integers:  See the detailed description for explanations.">eqElimIntRule()</a> </p>
</div></td></tr>
<tr class="memitem:a3cb8580c7627250ffe999de9a1b2c8c3"><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_1ArithTheoremProducer.html#a3cb8580c7627250ffe999de9a1b2c8c3">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:a3cb8580c7627250ffe999de9a1b2c8c3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute the special modulus: i - m*floor(i/m+1/2)  <a href="#a3cb8580c7627250ffe999de9a1b2c8c3"></a><br/></td></tr>
<tr class="separator:a3cb8580c7627250ffe999de9a1b2c8c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a47a517c15b57ba19b7759a4ba925e306"><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_1ArithTheoremProducer.html#a47a517c15b57ba19b7759a4ba925e306">create_t</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;eqn)</td></tr>
<tr class="memdesc:a47a517c15b57ba19b7759a4ba925e306"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create the term 't'. See <a class="el" href="classCVC3_1_1ArithTheoremProducer.html#a49d6559f50d51cde3c2e723c2a254cff" title="Equality elimination rule for integers:  See the detailed description for explanations.">eqElimIntRule()</a>.  <a href="#a47a517c15b57ba19b7759a4ba925e306"></a><br/></td></tr>
<tr class="separator:a47a517c15b57ba19b7759a4ba925e306"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab20380e74e431d9956c588d45d5121a4"><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_1ArithTheoremProducer.html#ab20380e74e431d9956c588d45d5121a4">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:ab20380e74e431d9956c588d45d5121a4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create the term 't2'. See <a class="el" href="classCVC3_1_1ArithTheoremProducer.html#a49d6559f50d51cde3c2e723c2a254cff" title="Equality elimination rule for integers:  See the detailed description for explanations.">eqElimIntRule()</a>.  <a href="#ab20380e74e431d9956c588d45d5121a4"></a><br/></td></tr>
<tr class="separator:ab20380e74e431d9956c588d45d5121a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a77e9c5681a02ab61f1311628e843d3db"><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_1ArithTheoremProducer.html#a77e9c5681a02ab61f1311628e843d3db">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:a77e9c5681a02ab61f1311628e843d3db"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create the term 't3'. See <a class="el" href="classCVC3_1_1ArithTheoremProducer.html#a49d6559f50d51cde3c2e723c2a254cff" title="Equality elimination rule for integers:  See the detailed description for explanations.">eqElimIntRule()</a>.  <a href="#a77e9c5681a02ab61f1311628e843d3db"></a><br/></td></tr>
<tr class="separator:a77e9c5681a02ab61f1311628e843d3db"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a10c569edc893a67b42af659633b3f20d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1ArithTheoremProducer.html#a10c569edc893a67b42af659633b3f20d">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:a10c569edc893a67b42af659633b3f20d"><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="#a10c569edc893a67b42af659633b3f20d"></a><br/></td></tr>
<tr class="separator:a10c569edc893a67b42af659633b3f20d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a69adf7d70a6a71e5c0e3489535a18108"><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_1ArithTheoremProducer.html#a69adf7d70a6a71e5c0e3489535a18108">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:a69adf7d70a6a71e5c0e3489535a18108"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute the special modulus: i - m*floor(i/m+1/2)  <a href="#a69adf7d70a6a71e5c0e3489535a18108"></a><br/></td></tr>
<tr class="separator:a69adf7d70a6a71e5c0e3489535a18108"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a32e61136df79a76fe1ed853ee6b8dc2e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1ArithTheoremProducer.html#a32e61136df79a76fe1ed853ee6b8dc2e">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:a32e61136df79a76fe1ed853ee6b8dc2e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute the special modulus: i - m*floor(i/m+1/2)  <a href="#a32e61136df79a76fe1ed853ee6b8dc2e"></a><br/></td></tr>
<tr class="separator:a32e61136df79a76fe1ed853ee6b8dc2e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a41da83b4624daa43a84bc049b5b7d836"><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_1ArithTheoremProducer.html#a41da83b4624daa43a84bc049b5b7d836">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:a41da83b4624daa43a84bc049b5b7d836"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute the special modulus: i - m*floor(i/m+1/2)  <a href="#a41da83b4624daa43a84bc049b5b7d836"></a><br/></td></tr>
<tr class="separator:a41da83b4624daa43a84bc049b5b7d836"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad727620082aea32b487863ac5888eb1b"><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_1ArithTheoremProducer.html#ad727620082aea32b487863ac5888eb1b">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:ad727620082aea32b487863ac5888eb1b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute floor(i/m+1/2) + mod(i,m)  <a href="#ad727620082aea32b487863ac5888eb1b"></a><br/></td></tr>
<tr class="separator:ad727620082aea32b487863ac5888eb1b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a073ec1476668043be44ae96519eae36d"><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_1ArithTheoremProducer.html#a073ec1476668043be44ae96519eae36d">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:a073ec1476668043be44ae96519eae36d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute the special modulus: i - m*floor(i/m+1/2)  <a href="#a073ec1476668043be44ae96519eae36d"></a><br/></td></tr>
<tr class="separator:a073ec1476668043be44ae96519eae36d"><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:ad2c70acba668e2582f0ebd9533646338"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1TheoryArithNew.html">TheoryArithNew</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCVC3_1_1ArithTheoremProducer.html#ad2c70acba668e2582f0ebd9533646338">d_theoryArith</a></td></tr>
<tr class="separator:ad2c70acba668e2582f0ebd9533646338"><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__producer_8h_source.html#l00032">32</a> of file <a class="el" href="arith__theorem__producer_8h_source.html">arith_theorem_producer.h</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a8216db52c44de1ba9a50ca6dfea24720"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">CVC3::ArithTheoremProducer::ArithTheoremProducer </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_1TheoryArithNew.html">TheoryArithNew</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__producer_8h_source.html#l00067">67</a> of file <a class="el" href="arith__theorem__producer_8h_source.html">arith_theorem_producer.h</a>.</p>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a3cb8580c7627250ffe999de9a1b2c8c3"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l02252">2252</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.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="a47a517c15b57ba19b7759a4ba925e306"></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> ArithTheoremProducer::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_1ArithTheoremProducer.html#a49d6559f50d51cde3c2e723c2a254cff" 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__producer_8cpp_source.html#l02192">2192</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.cpp</a>.</p>

<p>References <a class="el" href="arith__theorem__producer_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="ab20380e74e431d9956c588d45d5121a4"></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> ArithTheoremProducer::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_1ArithTheoremProducer.html#a49d6559f50d51cde3c2e723c2a254cff" 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__producer_8cpp_source.html#l02211">2211</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.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="a77e9c5681a02ab61f1311628e843d3db"></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> ArithTheoremProducer::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_1ArithTheoremProducer.html#a49d6559f50d51cde3c2e723c2a254cff" 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__producer_8cpp_source.html#l02231">2231</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.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="a10c569edc893a67b42af659633b3f20d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void ArithTheoremProducer::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__producer_8cpp_source.html#l02268">2268</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.cpp</a>.</p>

<p>References <a class="el" href="expr_8h_source.html#l01211">CVC3::Expr::begin()</a>, <a class="el" href="arith__theorem__producer_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="a69adf7d70a6a71e5c0e3489535a18108"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l02288">2288</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.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="a32e61136df79a76fe1ed853ee6b8dc2e"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void ArithTheoremProducer::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__producer_8cpp_source.html#l02316">2316</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.cpp</a>.</p>

<p>References <a class="el" href="expr_8h_source.html#l01211">CVC3::Expr::begin()</a>, <a class="el" href="arith__theorem__producer_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="a41da83b4624daa43a84bc049b5b7d836"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l02336">2336</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.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="ad727620082aea32b487863ac5888eb1b"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l02261">2261</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.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="a073ec1476668043be44ae96519eae36d"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l02353">2353</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.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="ae0d46b17ef012eabbbe62cac026bfab9"></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::ArithTheoremProducer::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__producer_8h_source.html#l00071">71</a> of file <a class="el" href="arith__theorem__producer_8h_source.html">arith_theorem_producer.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="a4606a94098ae94cdae1b924dc7f7b4ae"></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::ArithTheoremProducer::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__producer_8h_source.html#l00072">72</a> of file <a class="el" href="arith__theorem__producer_8h_source.html">arith_theorem_producer.h</a>.</p>

<p>References <a class="el" href="arith__theorem__producer_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="a8b33391347e9741339b674abd5c4fbf2"></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::ArithTheoremProducer::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__producer_8h_source.html#l00073">73</a> of file <a class="el" href="arith__theorem__producer_8h_source.html">arith_theorem_producer.h</a>.</p>

<p>References <a class="el" href="arith__theorem__producer_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="a9dfab0a471e7a705264be04007ac61e5"></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::ArithTheoremProducer::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__producer_8h_source.html#l00075">75</a> of file <a class="el" href="arith__theorem__producer_8h_source.html">arith_theorem_producer.h</a>.</p>

<p>References <a class="el" href="arith__theorem__producer_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="a1684298bef4bf1efdccb7078f5a6c96f"></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::ArithTheoremProducer::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__producer_8h_source.html#l00081">81</a> of file <a class="el" href="arith__theorem__producer_8h_source.html">arith_theorem_producer.h</a>.</p>

<p>References <a class="el" href="arith__theorem__producer_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="a7568925b6c26f1c7ba882893f596d214"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l00055">55</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="aaafdbe9dcc49728cc2bf16b43045c193"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l00062">62</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="ab369e518fc2ee411503253fa0b1515d6"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l00075">75</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a4671174ae8ff61c52f16ddd53a3cdd27"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l00089">89</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a515e5d076ed135a6d943c2f5d5e34188"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l00098">98</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.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__producer_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="a4d2d8da9de6d6faaa07758c01e3a9fe8"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l00117">117</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.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__producer_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="a4338b85f1dd0fca0cc58e6b7259a20b4"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l00145">145</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.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__producer_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="aa651eb7a4d20a77135efa2d3e984c355"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l00168">168</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.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__producer_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="a23faa6b30e4b01d7540ac1e22e6e06ce"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool ArithTheoremProducer::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__producer_8cpp_source.html#l02379">2379</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.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="af24b2bc3bc03bc320707362f2460dd0e"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l00203">203</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.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="a10ebfab26aa4ee1a147f08d8f6b94c45"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l00214">214</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.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="a48b21552a97a3a75ae469fb48c155e51"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l00237">237</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.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="aebf0a0b539104e2190b53351efc6116b"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l00256">256</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.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="aabc24cdaf5d3a390f9880937bac17311"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l00296">296</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.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="aae1bc41d54f8b148ce5cf9425ac688af"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l00335">335</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.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="a05b2608fd280890cb49bf4534a54e304"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l00363">363</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.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="a9548361051bb6febc314faa107d2c2f5"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l00434">434</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.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="a0b344f367f01d240d997df7edfe1a12c"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l00532">532</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.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="ac0363ff2f51ad1173ed1e46046b0654a"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l00551">551</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.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="ab5166b206f49897a6a49ba0014c0b808"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l00574">574</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.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="a41f7000c783a82e9a86cad823b06bff4"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l00746">746</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.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="a7b07ab799dbdf80254df3ec7fc35d36d"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l00815">815</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.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="afb0c2a89f3373dcb26cd516714d0e49a"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l00831">831</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.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="a6a829cb16f960f9e7c2f25ea4906eaba"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l00843">843</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.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="a70a381c22184655fb6d4f3b621bf216b"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l00862">862</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.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="a7c7c860b193ec63a776dd13613aeca25"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l00885">885</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.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="a77b99e94956d407e5cd20701e6771120"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l02773">2773</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.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="a92540cc58f6203c2904fc2bd197190da"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l00907">907</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.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="a9bd77385dd0cbaac271aaab4b6c6ec09"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l00781">781</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.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="af6ba91fa47c4c9139c4d93fe3de0112f"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l00931">931</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.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__producer_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="a529fe89fea243d932879a1a74e9d36a7"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l00945">945</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.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="a55ec89d6cf310694e9f4b1013a795ce2"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l00958">958</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="ae5a6e1b2c7b9239b7e53027c51a2dc7e"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l00967">967</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="affbdf02016310d8cd6a9037fdd9eddc6"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l00983">983</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.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__producer_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="ad51f0d5c3232b6c247939a10e253f53d"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l01001">1001</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.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__producer_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="ab0e0e14c71501a9f8208963c54010fe4"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l01021">1021</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.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__producer_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="af673275ae1c3dc606b29979b60df35c5"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l01043">1043</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.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="a19964269c705bafbe69cb1052fe7bec8"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l01070">1070</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.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__producer_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="ac9ee451992ab00f200ee8aee26e99e0c"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l01097">1097</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.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__producer_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="a0040d5d848f7040df940b92d95a75930"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l01155">1155</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.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="a9cd618abf322c0389f1fc40f274059c2"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l01178">1178</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.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="a3c454b863142345e1093663fbb89d306"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l01205">1205</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.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="a21456f49d3a6711f21e3c13fb3c0d34a"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l01230">1230</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.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="afbf059903de8b1e87aef9a4a75340d6c"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l01254">1254</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.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="aa3838fe1c003a9f47f3ec8344d192dea"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l01273">1273</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.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="a621015d4894231ecd9ab465494e9c9c8"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l01300">1300</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.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__producer_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="a3eb1309c184247837239c098d9c9100a"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l01340">1340</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.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="a8196042ba713a7c782ee4b5eb4c69ccc"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l01357">1357</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.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="a3c3041eb3b0144e21d72ffe6999953e2"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l01376">1376</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.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="ae66ddbc1457e3c032ea9059625059992"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l01395">1395</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.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="aa371616db9ac1a4a9c7a4b1ce0f2a05c"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l01408">1408</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.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="a3d245f36a2e42684ec2fd9356d89111f"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l01420">1420</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.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#l00227">CVC3::geExpr()</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="theory__arith_8h_source.html#l00225">CVC3::gtExpr()</a>, <a class="el" href="theory__arith_8h_source.html#l00192">CVC3::isIneq()</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#l00223">CVC3::leExpr()</a>, <a class="el" href="theory__arith_8h_source.html#l00049">CVC3::LT</a>, <a class="el" href="theory__arith_8h_source.html#l00221">CVC3::ltExpr()</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

</div>
</div>
<a class="anchor" id="a517d45514aefcab0dc6aabb400f149fd"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l02818">2818</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.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="af069fc1b320c0455ec7cde192668884b"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l01498">1498</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.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="a07368f8a2e12b5c189645a99bc934102"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l01518">1518</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.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="a8092c96a87d952fc1e572bb9237ff994"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l01547">1547</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.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="a6e14251c516153e14539a34598daca04"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l01582">1582</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.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="a7f4c82e18e7a3ed3b5b22a6ce7d7cf27"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l01614">1614</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.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="aef6fd1261bea182d4554d0423803b05e"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l01678">1678</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.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="aaf64935bb620ab79fd7383f1913bd8b8"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l01769">1769</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.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="aafadfc6ae6013ab18a7b4ee570cce16a"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l01854">1854</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.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="ac8a2c0a97ace8f17153ad784c87ba5a2"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l01869">1869</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.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="a14af8b5ecbfaaee4600453bd9d681838"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l01894">1894</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.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="acaa835c8569f6667fa26bfedb0502cf1"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l03190">3190</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.cpp</a>.</p>

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

</div>
</div>
<a class="anchor" id="ac6714d4922aea3413f9aeed742bc645e"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l01931">1931</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.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="af091e13254c983370c46707a03b1ad30"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l01962">1962</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.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="af0070c5da95d33029e54b1d669d5b1f0"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l02027">2027</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.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="a529e92e59e9009e3330a8592c9cb56fe"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Rational.html">Rational</a> ArithTheoremProducer::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__producer_8cpp_source.html#l02067">2067</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.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="ac5d4056f00cee80d73b5b46f63bd5b3d"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l02085">2085</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.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="af55c5d0a2626f955b0843381ca8b50f3"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l03152">3152</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.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="a92936e3de514c430659486b00e84b0a9"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l02138">2138</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.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="a85e9c7d93d6d1433fea606b0c3878e25"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l02505">2505</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.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="a49d6559f50d51cde3c2e723c2a254cff"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l02531">2531</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.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="af1baf70d6108dc52cbb9704e2a8889ec"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l02623">2623</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.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="a512f22a4a025477ced8c27f3d62809d7"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l02639">2639</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.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="a77ae567431bf98e20cc08903deb2ec99"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l02668">2668</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.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="a8de6b6b44c60cf495b455b980a7c681b"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l02697">2697</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.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="a97768870957319cdc68eb94694a37dc5"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l02726">2726</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.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="a3d6e1d8668360c20b5a6a47e3fcc4612"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l02754">2754</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.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="a753c339b31e38915ae6f06e0fe6e48da"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l02839">2839</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a23051d23d509f9cda35c64d4a5ff1dbf"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l02844">2844</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.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="ad4513630a9eec6c841b527222a79ea1d"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l02865">2865</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.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="a3b2bea72cd9163daa7c41388037bca29"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l02905">2905</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.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="a0eb949bb19e618a8318f236b249fadd5"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l03227">3227</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.cpp</a>.</p>

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

</div>
</div>
<a class="anchor" id="a364ef37224bae3afb4f62a5c0f75d02c"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l02950">2950</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.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="a1bf4d45330b587882e726daa9117cdfb"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l03004">3004</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.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="ab9395a2ee958d70c780df2514e517320"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l03049">3049</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.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="a43fa5f7c8c3ad3915de7f068ac8cefbd"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l03036">3036</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a4b28aa17702ca3f9703e61ca012ca236"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l03068">3068</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.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="afd5bca9b136254b904b931680180ac83"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l03123">3123</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.cpp</a>.</p>

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

</div>
</div>
<a class="anchor" id="ad5f121b6b7d6b8ae951dfb4cce064575"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l03133">3133</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.cpp</a>.</p>

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

</div>
</div>
<a class="anchor" id="a0111aa5645658dbd6a4bc030178edb94"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l03138">3138</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.cpp</a>.</p>

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

</div>
</div>
<a class="anchor" id="abb8aff055ea56ad8de2b66fd9a7aeba9"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l03143">3143</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.cpp</a>.</p>

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

</div>
</div>
<a class="anchor" id="ae3a7aa0ebe8e84b806efaa59278ea75e"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l03195">3195</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.cpp</a>.</p>

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

</div>
</div>
<a class="anchor" id="ab794c1f9d6e971ac56e0063f409b4774"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l03200">3200</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.cpp</a>.</p>

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

</div>
</div>
<a class="anchor" id="a84a9652acc5908e5d1ead5c54c1f2d90"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l03205">3205</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.cpp</a>.</p>

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

</div>
</div>
<a class="anchor" id="ae43400e7e4c9e3695a75da3bd5718eda"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l03210">3210</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.cpp</a>.</p>

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

</div>
</div>
<a class="anchor" id="a9edd8b9ee6a8b4d14e9a2f967b78d52f"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l03215">3215</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.cpp</a>.</p>

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

</div>
</div>
<a class="anchor" id="a45d8f89bdb0e57ddbaec273a24bf34b4"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l03220">3220</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.cpp</a>.</p>

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

</div>
</div>
<a class="anchor" id="a0433b1ba53a33275015c26450acb09d0"></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> ArithTheoremProducer::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__producer_8cpp_source.html#l03232">3232</a> of file <a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.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="ad2c70acba668e2582f0ebd9533646338"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1TheoryArithNew.html">TheoryArithNew</a>* CVC3::ArithTheoremProducer::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__producer_8h_source.html#l00033">33</a> of file <a class="el" href="arith__theorem__producer_8h_source.html">arith_theorem_producer.h</a>.</p>

<p>Referenced by <a class="el" href="arith__theorem__producer_8h_source.html#l00075">darkShadow()</a>, <a class="el" href="arith__theorem__producer_8h_source.html#l00081">grayShadow()</a>, <a class="el" href="arith__theorem__producer_8h_source.html#l00073">intType()</a>, and <a class="el" href="arith__theorem__producer_8h_source.html#l00072">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__producer_8h_source.html">arith_theorem_producer.h</a></li>
<li><a class="el" href="arith__theorem__producer_8cpp_source.html">arith_theorem_producer.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>