Sophie

Sophie

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

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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>CVC3: CVC3::TheoryBitvector Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.7.4 -->
<div id="top">
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">CVC3&#160;<span id="projectnumber">2.4.1</span></div>
  </td>
 </tr>
 </tbody>
</table>
</div>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
  <div id="nav-path" class="navpath">
    <ul>
      <li class="navelem"><a class="el" href="namespaceCVC3.html">CVC3</a>      </li>
      <li class="navelem"><a class="el" href="classCVC3_1_1TheoryBitvector.html">TheoryBitvector</a>      </li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-attribs">Public Attributes</a> &#124;
<a href="#pri-methods">Private Member Functions</a> &#124;
<a href="#pri-attribs">Private Attributes</a>  </div>
  <div class="headertitle">
<div class="title">CVC3::TheoryBitvector Class Reference<div class="ingroups"><a class="el" href="group__Theories.html">Theories</a></div></div>  </div>
</div>
<div class="contents">
<!-- doxytag: class="CVC3::TheoryBitvector" --><!-- doxytag: inherits="CVC3::Theory" -->
<p><a class="el" href="classCVC3_1_1Theory.html" title="Base class for theories.">Theory</a> of bitvectors of known length \ (operations include: @,[i:j],[i],+,.,BVAND,BVNEG)  
 <a href="classCVC3_1_1TheoryBitvector.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="theory__bitvector_8h_source.html">theory_bitvector.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for CVC3::TheoryBitvector:</div>
<div class="dyncontent">
 <div class="center">
  <img src="classCVC3_1_1TheoryBitvector.png" usemap="#CVC3::TheoryBitvector_map" alt=""/>
  <map id="CVC3::TheoryBitvector_map" name="CVC3::TheoryBitvector_map">
<area href="classCVC3_1_1Theory.html" title="Base class for theories." alt="CVC3::Theory" shape="rect" coords="0,0,142,24"/>
</map>
 </div></div>

<p><a href="classCVC3_1_1TheoryBitvector-members.html">List of all members.</a></p>
<h2><a name="pub-methods"></a>
Public Member Functions</h2>
<ul>
<li><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#a3f1ecbd3cea6637fe571cc8b614d3dd6">pushNegationRec</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)
<li><a class="el" href="classCVC3_1_1TheoryBitvector.html#ac45c989f0c26d78a8de812f2123cd262">TheoryBitvector</a> (<a class="el" href="classCVC3_1_1TheoryCore.html">TheoryCore</a> *core)
<li><a class="el" href="classCVC3_1_1TheoryBitvector.html#a665042c64606705b935ac0ab15119266">~TheoryBitvector</a> ()
<li><a class="el" href="classCVC3_1_1BitvectorProofRules.html">BitvectorProofRules</a> * <a class="el" href="classCVC3_1_1TheoryBitvector.html#ae3141bc37e39e3379fa71d966c887426">createProofRules</a> ()
<li>void <a class="el" href="classCVC3_1_1TheoryBitvector.html#a3798dbe1339c1c376b35172fbbc6434b">addSharedTerm</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)
<dl class="el"><dd class="mdescRight">Notify theory of a new shared term.  <a href="#a3798dbe1339c1c376b35172fbbc6434b"></a><br/></dl><li>void <a class="el" href="classCVC3_1_1TheoryBitvector.html#a70eefd32e475f3c04e195530145ae87f">assertFact</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;e)
<dl class="el"><dd class="mdescRight">Assert a new fact to the decision procedure.  <a href="#a70eefd32e475f3c04e195530145ae87f"></a><br/></dl><li>void <a class="el" href="classCVC3_1_1TheoryBitvector.html#ac59b9ef8d3c7f68eee6a06ea17e3d104">assertTypePred</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e, const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;pred)
<dl class="el"><dd class="mdescRight">Receives all the type predicates for the types of the given theory.  <a href="#ac59b9ef8d3c7f68eee6a06ea17e3d104"></a><br/></dl><li>void <a class="el" href="classCVC3_1_1TheoryBitvector.html#a31df7eb073302681dd7aeedc57251d09">checkSat</a> (bool fullEffort)
<dl class="el"><dd class="mdescRight">Check for satisfiability in the theory.  <a href="#a31df7eb073302681dd7aeedc57251d09"></a><br/></dl><li><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#a82d63a41524830f12abe05b948eab4ca">rewrite</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)
<dl class="el"><dd class="mdescRight">Theory-specific rewrite rules.  <a href="#a82d63a41524830f12abe05b948eab4ca"></a><br/></dl><li><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#a55e7711ed3e5be41dd7aca955a9ecc7a">rewriteAtomic</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)
<dl class="el"><dd class="mdescRight">Theory-specific rewrites for atomic formulas.  <a href="#a55e7711ed3e5be41dd7aca955a9ecc7a"></a><br/></dl><li>void <a class="el" href="classCVC3_1_1TheoryBitvector.html#a1e7b1123d64a52db1e306942ff4576a3">setup</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)
<dl class="el"><dd class="mdescRight">Set up the term e for call-backs when e or its children change.  <a href="#a1e7b1123d64a52db1e306942ff4576a3"></a><br/></dl><li>void <a class="el" href="classCVC3_1_1TheoryBitvector.html#a57edac7a7e4ffd04e778f3858a000457">update</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;e, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;d)
<dl class="el"><dd class="mdescRight">Notify a theory of a new equality.  <a href="#a57edac7a7e4ffd04e778f3858a000457"></a><br/></dl><li><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#a2a6ec855d488ee1d662ac0d1268d2392">solve</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;e)
<dl class="el"><dd class="mdescRight">An optional solver.  <a href="#a2a6ec855d488ee1d662ac0d1268d2392"></a><br/></dl><li>void <a class="el" href="classCVC3_1_1TheoryBitvector.html#a978cfa4add608e7f78c4e8b1d92e093f">checkType</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)
<dl class="el"><dd class="mdescRight">Check that e is a valid <a class="el" href="classCVC3_1_1Type.html" title="MS C++ specific settings.">Type</a> expr.  <a href="#a978cfa4add608e7f78c4e8b1d92e093f"></a><br/></dl><li><a class="el" href="namespaceCVC3.html#af969e724f8b7016909f5804e8cea3e54">Cardinality</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#acc1ac9f10d2c91f9831057937fcba829">finiteTypeInfo</a> (<a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e, <a class="el" href="classCVC3_1_1Unsigned.html">Unsigned</a> &amp;n, bool enumerate, bool computeSize)
<dl class="el"><dd class="mdescRight">Compute information related to finiteness of types.  <a href="#acc1ac9f10d2c91f9831057937fcba829"></a><br/></dl><li>void <a class="el" href="classCVC3_1_1TheoryBitvector.html#aad271001191bdd48d1b77d92d9558136">computeType</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)
<dl class="el"><dd class="mdescRight">Compute and store the type of e.  <a href="#aad271001191bdd48d1b77d92d9558136"></a><br/></dl><li>void <a class="el" href="classCVC3_1_1TheoryBitvector.html#a38b5fc9c8e39309a86634cc55ee116a0">computeModelTerm</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e, std::vector&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;v)
<dl class="el"><dd class="mdescRight">Add variables from 'e' to 'v' for constructing a concrete model.  <a href="#a38b5fc9c8e39309a86634cc55ee116a0"></a><br/></dl><li>void <a class="el" href="classCVC3_1_1TheoryBitvector.html#a00182685c0c766dfdc560e3c5f00001b">computeModel</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e, std::vector&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;vars)
<dl class="el"><dd class="mdescRight">Compute the value of a compound variable from the more primitive ones.  <a href="#a00182685c0c766dfdc560e3c5f00001b"></a><br/></dl><li><a class="el" href="classCVC3_1_1Expr.html">Expr</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#a60d5dc6f4f252bbf62e9333134863da0">computeTypePred</a> (const <a class="el" href="classCVC3_1_1Type.html">Type</a> &amp;t, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)
<dl class="el"><dd class="mdescRight"><a class="el" href="classCVC3_1_1Theory.html" title="Base class for theories.">Theory</a> specific computation of the subtyping predicate for type t applied to the expression e.  <a href="#a60d5dc6f4f252bbf62e9333134863da0"></a><br/></dl><li><a class="el" href="classCVC3_1_1Expr.html">Expr</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#a94d82875db6689ca7c986e24abf63a46">computeTCC</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)
<dl class="el"><dd class="mdescRight">Compute and cache the TCC of e.  <a href="#a94d82875db6689ca7c986e24abf63a46"></a><br/></dl><li><a class="el" href="classCVC3_1_1ExprStream.html">ExprStream</a> &amp; <a class="el" href="classCVC3_1_1TheoryBitvector.html#aaa3c5b6fc08db3e297e811f4c9c18a17">print</a> (<a class="el" href="classCVC3_1_1ExprStream.html">ExprStream</a> &amp;os, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)
<dl class="el"><dd class="mdescRight">Theory-specific pretty-printing.  <a href="#aaa3c5b6fc08db3e297e811f4c9c18a17"></a><br/></dl><li><a class="el" href="classCVC3_1_1Expr.html">Expr</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#a8bf0677921ceebd416aa6208b56467eb">parseExprOp</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)
<dl class="el"><dd class="mdescRight">Theory-specific parsing implemented by the DP.  <a href="#a8bf0677921ceebd416aa6208b56467eb"></a><br/></dl><li>int <a class="el" href="classCVC3_1_1TheoryBitvector.html#adce40eaced94554fd76d2f660f5ba385">BVSize</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)
<dl class="el"><dd class="mdescRight">Return the number of bits in the bitvector expression.  <a href="#adce40eaced94554fd76d2f660f5ba385"></a><br/></dl><li><a class="el" href="classCVC3_1_1Expr.html">Expr</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#ac88ba0954e217df731ebb362135ea107">rat</a> (const <a class="el" href="classCVC3_1_1Rational.html">Rational</a> &amp;r)
<li><a class="el" href="classCVC3_1_1Expr.html">Expr</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#aaa3c1d517c610706a066e7adfee9a6f6">pad</a> (int len, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)
<dl class="el"><dd class="mdescRight">pads e to be of length len  <a href="#aaa3c1d517c610706a066e7adfee9a6f6"></a><br/></dl><li>bool <a class="el" href="classCVC3_1_1TheoryBitvector.html#a1bf151ceda29668de133a3b005b9298b">comparebv</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)
<li><a class="el" href="classCVC3_1_1Type.html">Type</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#a3d98cac1ae52614ee2adc3fbc407516e">newBitvectorType</a> (int i)
<li><a class="el" href="classCVC3_1_1Expr.html">Expr</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#ad2f823cf9921323e80c510076dd20fa2">newBitvectorTypePred</a> (const <a class="el" href="classCVC3_1_1Type.html">Type</a> &amp;t, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)
<li><a class="el" href="classCVC3_1_1Expr.html">Expr</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#aef4eb029a55a6822baa7c381262154e5">newBitvectorTypeExpr</a> (int i)
<li><a class="el" href="classCVC3_1_1Expr.html">Expr</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#ab22dd0ad8596f8fefce18f99b1791499">newBVAndExpr</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)
<li><a class="el" href="classCVC3_1_1Expr.html">Expr</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#ac7cd7c2e0a03c30f3cec5ac5787d8d48">newBVAndExpr</a> (const std::vector&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;kids)
<li><a class="el" href="classCVC3_1_1Expr.html">Expr</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#a7b93b348dffe055b771db6061446e9ea">newBVOrExpr</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)
<li><a class="el" href="classCVC3_1_1Expr.html">Expr</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#a9efd00a5226558d90c2617f067c6a99a">newBVOrExpr</a> (const std::vector&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;kids)
<li><a class="el" href="classCVC3_1_1Expr.html">Expr</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#a003f69e1199d0a57102dadc83643fb18">newBVXorExpr</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)
<li><a class="el" href="classCVC3_1_1Expr.html">Expr</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#a00b711043737f676675a99de32e93492">newBVXorExpr</a> (const std::vector&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;kids)
<li><a class="el" href="classCVC3_1_1Expr.html">Expr</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#ad25d43520383b198f379d573cf72d784">newBVXnorExpr</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)
<li><a class="el" href="classCVC3_1_1Expr.html">Expr</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#ad5699f06db56401ba2e77bfc37f8344d">newBVXnorExpr</a> (const std::vector&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;kids)
<li><a class="el" href="classCVC3_1_1Expr.html">Expr</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#a9a3678f2c6007c5b492017b0d9161a37">newBVNandExpr</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)
<li><a class="el" href="classCVC3_1_1Expr.html">Expr</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#ac7a7ef0271a8aa043ec09684e6a16e9b">newBVNorExpr</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)
<li><a class="el" href="classCVC3_1_1Expr.html">Expr</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#a70d9bf0184ba1308434780a25439b402">newBVCompExpr</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)
<li><a class="el" href="classCVC3_1_1Expr.html">Expr</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#aa849a2fd56e8a1e3a7742b00d043869a">newBVLTExpr</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)
<li><a class="el" href="classCVC3_1_1Expr.html">Expr</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#ac6430938332eb644c11106ce5047825c">newBVLEExpr</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)
<li><a class="el" href="classCVC3_1_1Expr.html">Expr</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#aed210d6f5ea81db87debb15b422ded2c">newSXExpr</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;t1, int len)
<li><a class="el" href="classCVC3_1_1Expr.html">Expr</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#a48a5a14c9e1efc9bc1d463d1be67fb1a">newBVIndexExpr</a> (int kind, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;t1, int len)
<li><a class="el" href="classCVC3_1_1Expr.html">Expr</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#a2639e4a3d2b13f9e370daf41a833267c">newBVSLTExpr</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)
<li><a class="el" href="classCVC3_1_1Expr.html">Expr</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#a9b32f54063dda6c3424a63e1702cd277">newBVSLEExpr</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)
<li><a class="el" href="classCVC3_1_1Expr.html">Expr</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#a4bc6d752b2ba293481468dcaaa821d3f">newBVNegExpr</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;t1)
<li><a class="el" href="classCVC3_1_1Expr.html">Expr</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#a7113c95ecf45006003eed0d8d7dccda7">newBVUminusExpr</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;t1)
<li><a class="el" href="classCVC3_1_1Expr.html">Expr</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#aec57b42edc8ea39452039be2d93a26e7">newBoolExtractExpr</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;t1, int r)
<li><a class="el" href="classCVC3_1_1Expr.html">Expr</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#ae1559a54104ab7befb00c9a14b5ea95e">newFixedLeftShiftExpr</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;t1, int r)
<li><a class="el" href="classCVC3_1_1Expr.html">Expr</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#a082d2161d7c59fcbac262e3d3ddc93a3">newFixedConstWidthLeftShiftExpr</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;t1, int r)
<li><a class="el" href="classCVC3_1_1Expr.html">Expr</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#a4cb4f4e7d854ca0c7d5883208de4355c">newFixedRightShiftExpr</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;t1, int r)
<li><a class="el" href="classCVC3_1_1Expr.html">Expr</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#aa34c7ab071175e4375822e6f1d47fe0d">newConcatExpr</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)
<li><a class="el" href="classCVC3_1_1Expr.html">Expr</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#ad7d5b3725d0cae0109eaf01c7b45e2d6">newConcatExpr</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, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;t3)
<li><a class="el" href="classCVC3_1_1Expr.html">Expr</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#a572efe0038efbeba9566895c58401fcb">newConcatExpr</a> (const std::vector&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;kids)
<li><a class="el" href="classCVC3_1_1Expr.html">Expr</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#a352c6547a3a7fba398cdd2b2ea391b22">newBVConstExpr</a> (const std::string &amp;s, int base=2)
<li><a class="el" href="classCVC3_1_1Expr.html">Expr</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#a1aa46633fe05da5f22d43ee651229c93">newBVConstExpr</a> (const std::vector&lt; bool &gt; &amp;bits)
<li><a class="el" href="classCVC3_1_1Expr.html">Expr</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#ae2a5085da47f7b62ed4cb5a312bd9fb3">signed_newBVConstExpr</a> (<a class="el" href="classCVC3_1_1Rational.html">Rational</a> c, int bv_size)
<li><a class="el" href="classCVC3_1_1Expr.html">Expr</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#ab5b4018be164d7f81fb9cdb1a3a1ca07">newBVConstExpr</a> (const <a class="el" href="classCVC3_1_1Rational.html">Rational</a> &amp;r, int len=0)
<li><a class="el" href="classCVC3_1_1Expr.html">Expr</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#aedd220a3f14097d52b80576cdc7b73ec">newBVZeroString</a> (int r)
<dl class="el"><dd class="mdescRight">produces a string of 0's of length bvLength  <a href="#aedd220a3f14097d52b80576cdc7b73ec"></a><br/></dl><li><a class="el" href="classCVC3_1_1Expr.html">Expr</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#a7e33736866d0752cdd551dd0059ca1bd">newBVOneString</a> (int r)
<dl class="el"><dd class="mdescRight">produces a string of 1's of length bvLength  <a href="#a7e33736866d0752cdd551dd0059ca1bd"></a><br/></dl><li><a class="el" href="classCVC3_1_1Expr.html">Expr</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#a17a104b42804d41d9a11d15faf727166">newBVExtractExpr</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e, int hi, int low)
<dl class="el"><dd class="mdescRight">hi and low are bit indices  <a href="#a17a104b42804d41d9a11d15faf727166"></a><br/></dl><li><a class="el" href="classCVC3_1_1Expr.html">Expr</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#af77dddbf974d441cf61294922be53739">newBVSubExpr</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)
<li><a class="el" href="classCVC3_1_1Expr.html">Expr</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#ac8e00bf8c66a041e12326e09c4d369ad">newBVPlusExpr</a> (int numbits, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;k1, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;k2)
<dl class="el"><dd class="mdescRight">'numbits' is the number of bits in the result  <a href="#ac8e00bf8c66a041e12326e09c4d369ad"></a><br/></dl><li><a class="el" href="classCVC3_1_1Expr.html">Expr</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#a7de12d92b8235b6b0675c65dd2b5f2dd">newBVPlusExpr</a> (int numbits, const std::vector&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;k)
<dl class="el"><dd class="mdescRight">'numbits' is the number of bits in the result  <a href="#a7de12d92b8235b6b0675c65dd2b5f2dd"></a><br/></dl><li><a class="el" href="classCVC3_1_1Expr.html">Expr</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#a284ff4a222be9ceaa97387661c76b147">newBVPlusPadExpr</a> (int bvLength, const std::vector&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;k)
<dl class="el"><dd class="mdescRight">pads children and then builds plus expr  <a href="#a284ff4a222be9ceaa97387661c76b147"></a><br/></dl><li><a class="el" href="classCVC3_1_1Expr.html">Expr</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#ae601c7122d288358c50df9e27bd5a9df">newBVMultExpr</a> (int bvLength, 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)
<li><a class="el" href="classCVC3_1_1Expr.html">Expr</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#ae53123881dda650f5722e10fdceb11d7">newBVMultExpr</a> (int bvLength, const std::vector&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;kids)
<li><a class="el" href="classCVC3_1_1Expr.html">Expr</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#ad27eceadd690e39ef8ad88881925ac0c">newBVMultPadExpr</a> (int bvLength, 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)
<li><a class="el" href="classCVC3_1_1Expr.html">Expr</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#ac4a3e23b2c1039759f22316b4dc00df9">newBVMultPadExpr</a> (int bvLength, const std::vector&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;kids)
<li><a class="el" href="classCVC3_1_1Expr.html">Expr</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#a43b7fde20faf94ca0691c9c78f49983e">newBVUDivExpr</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)
<li><a class="el" href="classCVC3_1_1Expr.html">Expr</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#a32e681fc6dc959306710c880f83c95ba">newBVURemExpr</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)
<li><a class="el" href="classCVC3_1_1Expr.html">Expr</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#aa17d7de309b676bac0454ae3dcecb38f">newBVSDivExpr</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)
<li><a class="el" href="classCVC3_1_1Expr.html">Expr</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#a751ed4d2b46020c65ace988d96633142">newBVSRemExpr</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)
<li><a class="el" href="classCVC3_1_1Expr.html">Expr</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#ac520790da34aa971a9ee4044b112ae82">newBVSModExpr</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)
<li>int <a class="el" href="classCVC3_1_1TheoryBitvector.html#a8e2bf7866c94979dfed7031a81c2e002">getBitvectorTypeParam</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)
<li>int <a class="el" href="classCVC3_1_1TheoryBitvector.html#a0d6c5357741846c314acfda3f93094a9">getBitvectorTypeParam</a> (const <a class="el" href="classCVC3_1_1Type.html">Type</a> &amp;t)
<li><a class="el" href="classCVC3_1_1Type.html">Type</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#a697bd2ebc3d61f913039bf77bbdc3c51">getTypePredType</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;tp)
<li>const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp; <a class="el" href="classCVC3_1_1TheoryBitvector.html#a96385e1a741679ebbabe669b8ed4c5bf">getTypePredExpr</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;tp)
<li>int <a class="el" href="classCVC3_1_1TheoryBitvector.html#a7737e8531a34515a5d27afcb23bb314e">getSXIndex</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)
<li>int <a class="el" href="classCVC3_1_1TheoryBitvector.html#a2b61f3705b8789f652ea688ef331344f">getBVIndex</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)
<li>int <a class="el" href="classCVC3_1_1TheoryBitvector.html#aedf18fc1e6f9998ddaef98ab9273c2fb">getBoolExtractIndex</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)
<li>int <a class="el" href="classCVC3_1_1TheoryBitvector.html#aafcc248e3361c69777cb1377a157db49">getFixedLeftShiftParam</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)
<li>int <a class="el" href="classCVC3_1_1TheoryBitvector.html#a801f0c6dd21ecfea0769abfcd7fd4b4e">getFixedRightShiftParam</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)
<li>int <a class="el" href="classCVC3_1_1TheoryBitvector.html#ad714ab7be58b17f2c120afa117abd1fb">getExtractHi</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)
<li>int <a class="el" href="classCVC3_1_1TheoryBitvector.html#acbb820488811e04eed17d85199498ae9">getExtractLow</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)
<li>int <a class="el" href="classCVC3_1_1TheoryBitvector.html#a67259e3d5f08972e6a157f167aab7023">getBVPlusParam</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)
<li>int <a class="el" href="classCVC3_1_1TheoryBitvector.html#a540b9b39838cb3c1b71925be3f5696fa">getBVMultParam</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)
<li>unsigned <a class="el" href="classCVC3_1_1TheoryBitvector.html#a6d1c5d8e029a455d9bd058eb66c5cdc8">getBVConstSize</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)
<li>bool <a class="el" href="classCVC3_1_1TheoryBitvector.html#a242600edbc48857be8abbab8e74ed3be">getBVConstValue</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e, int i)
<li><a class="el" href="classCVC3_1_1Rational.html">Rational</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#a08653884cd51197647ed006e5ae64332">computeBVConst</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)
<dl class="el"><dd class="mdescRight">computes the integer value of a bitvector constant  <a href="#a08653884cd51197647ed006e5ae64332"></a><br/></dl><li><a class="el" href="classCVC3_1_1Rational.html">Rational</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#a9e49b77a0e80b7ba83bc77bb3a301c6b">computeNegBVConst</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)
<dl class="el"><dd class="mdescRight">computes the integer value of ~c+1 or BVUMINUS(c)  <a href="#a9e49b77a0e80b7ba83bc77bb3a301c6b"></a><br/></dl><li>int <a class="el" href="classCVC3_1_1TheoryBitvector.html#af9b48795b632ce717e9f2149c99689fb">getMaxSize</a> ()
<li>bool <a class="el" href="classCVC3_1_1TheoryBitvector.html#afe606418dd434c720ec6cbec5dab3c1c">isLinearTerm</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)
<li>void <a class="el" href="classCVC3_1_1TheoryBitvector.html#a670ab645c15606c0653cd265c5378b52">extract_vars</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e, std::vector&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;vars)
<li>bool <a class="el" href="classCVC3_1_1TheoryBitvector.html#a7d9bd17c1b561963bb05712071747090">canSolveFor</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;term, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)
<li><a class="el" href="classCVC3_1_1Rational.html">Rational</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#a425367b8c2d69e637c93742ab1ed2134">multiplicative_inverse</a> (<a class="el" href="classCVC3_1_1Rational.html">Rational</a> r, int n_bits)
</ul>
<h2><a name="pub-attribs"></a>
Public Attributes</h2>
<ul>
<li><a class="el" href="classCVC3_1_1ExprMap.html">ExprMap</a>&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; <a class="el" href="classCVC3_1_1TheoryBitvector.html#a2508ac260570adfa5584847830806cb0">d_bvPlusCarryCacheLeftBV</a>
<li><a class="el" href="classCVC3_1_1ExprMap.html">ExprMap</a>&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; <a class="el" href="classCVC3_1_1TheoryBitvector.html#a9fcf8c7246955aa2a8aa6be2fd3d4f64">d_bvPlusCarryCacheRightBV</a>
<li>std::vector&lt; <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &gt; <a class="el" href="classCVC3_1_1TheoryBitvector.html#aa17e44a8047fc0f5220565f6cd5a203f">additionalRewriteConstraints</a>
</ul>
<h2><a name="pri-methods"></a>
Private Member Functions</h2>
<ul>
<li>const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp; <a class="el" href="classCVC3_1_1TheoryBitvector.html#a2a6471d4278e92ffcaa981b39001fc8a">bvZero</a> () const 
<dl class="el"><dd class="mdescRight">Return cached constant 0bin0.  <a href="#a2a6471d4278e92ffcaa981b39001fc8a"></a><br/></dl><li>const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp; <a class="el" href="classCVC3_1_1TheoryBitvector.html#a3de9924e52bf35f61049f07f0d34529f">bvOne</a> () const 
<dl class="el"><dd class="mdescRight">Return cached constant 0bin1.  <a href="#a3de9924e52bf35f61049f07f0d34529f"></a><br/></dl><li><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#a85512d4fcaee0050ee2b41dedd71c61c">bitBlastEqn</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)
<dl class="el"><dd class="mdescRight">functions which implement the DP strategy for bitblasting  <a href="#a85512d4fcaee0050ee2b41dedd71c61c"></a><br/></dl><li><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#aa3c9c45c9989d45202d31dda4beb4386">bitBlastDisEqn</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;notE)
<dl class="el"><dd class="mdescRight">bitblast disequation  <a href="#aa3c9c45c9989d45202d31dda4beb4386"></a><br/></dl><li><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#a1381dbfdc07d3bdebe3a4b8f0172bb94">bitBlastIneqn</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)
<dl class="el"><dd class="mdescRight">function which implements the DP strtagey to bitblast Inequations  <a href="#a1381dbfdc07d3bdebe3a4b8f0172bb94"></a><br/></dl><li><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#a981e964dd8c6118cbcac5e0c2b307730">bitBlastTerm</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;t, int bitPosition)
<dl class="el"><dd class="mdescRight">functions which implement the DP strategy for bitblasting  <a href="#a981e964dd8c6118cbcac5e0c2b307730"></a><br/></dl><li><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#aa7cb7ed38abf46e12d63c019b694c793">pushNegation</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)
<li>virtual <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#a5bd75507801c5b8b2595784ce53069aa">simplifyOp</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)
<dl class="el"><dd class="mdescRight">Top down simplifier.  <a href="#a5bd75507801c5b8b2595784ce53069aa"></a><br/></dl><li><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#a214442814e895d26ac43c42663741fbd">rewriteBV</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e, <a class="el" href="classCVC3_1_1ExprMap.html">ExprMap</a>&lt; <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &gt; &amp;cache, int n=1)
<dl class="el"><dd class="mdescRight">Internal rewrite method for constants.  <a href="#a214442814e895d26ac43c42663741fbd"></a><br/></dl><li><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#a9d96414ef3ff2c522e621ced84492f8f">rewriteBV</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e, int n=1)
<dl class="el"><dd class="mdescRight">Rewrite children 'n' levels down (n==1 means "only the top level")  <a href="#a9d96414ef3ff2c522e621ced84492f8f"></a><br/></dl><li><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#ad9b702d3659fbaab47960bce473608c8">rewriteBV</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;t, <a class="el" href="classCVC3_1_1ExprMap.html">ExprMap</a>&lt; <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &gt; &amp;cache, int n=1)
<li><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#a84f5fc78f3f36e213ea70ff307db9db8">rewriteBV</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;t, int n=1)
<li><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#ac2ed14005bb197aaad28ead0cb537a72">rewriteBoolean</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)
<dl class="el"><dd class="mdescRight">rewrite input boolean expression e to a simpler form  <a href="#ac2ed14005bb197aaad28ead0cb537a72"></a><br/></dl><li><a class="el" href="classCVC3_1_1Expr.html">Expr</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#a265761c739bb7084fa9016e527499da5">multiply_coeff</a> (<a class="el" href="classCVC3_1_1Rational.html">Rational</a> mult_inv, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)
<li>int <a class="el" href="classCVC3_1_1TheoryBitvector.html#ab4f87aca710aa31e6d438e91301beffc">min</a> (std::vector&lt; <a class="el" href="classCVC3_1_1Rational.html">Rational</a> &gt; list)
<li><a class="el" href="classCVC3_1_1Rational.html">Rational</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#a2e23b49398256989b0dea88a63717dee">Odd_coeff</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)
<li>int <a class="el" href="classCVC3_1_1TheoryBitvector.html#aa1e382d50ad48fb6d222450d74dd9574">check_linear</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)
<li>bool <a class="el" href="classCVC3_1_1TheoryBitvector.html#a6739a946f5cdf86bd6597845b6f6df43">isTermIn</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)
<li><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#aa12fe04ae2312b60f15f5fc594d533f4">updateSubterms</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;d)
<li>int <a class="el" href="classCVC3_1_1TheoryBitvector.html#a79967704ae23c653a04a1ee3416a4d22">countTermIn</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;term, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)
<li><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#a324d4171cfb81ff5e774cbc326aaa1d9">simplifyPendingEq</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;thm, int maxEffort)
<li><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#a0dedc2d6930e49cdf4d73c40da7a7bd8">generalBitBlast</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;thm)
<li><a class="el" href="classCVC3_1_1ExprStream.html">ExprStream</a> &amp; <a class="el" href="classCVC3_1_1TheoryBitvector.html#abd70b8a3ad35dcf7299c87ab36a6f848">printSmtLibShared</a> (<a class="el" href="classCVC3_1_1ExprStream.html">ExprStream</a> &amp;os, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)
</ul>
<h2><a name="pri-attribs"></a>
Private Attributes</h2>
<ul>
<li><a class="el" href="classCVC3_1_1BitvectorProofRules.html">BitvectorProofRules</a> * <a class="el" href="classCVC3_1_1TheoryBitvector.html#a36ce76cce9f4da02fe837fa6d99d6202">d_rules</a>
<li>size_t <a class="el" href="classCVC3_1_1TheoryBitvector.html#aca1d99fa896f29efa540d8b83a4de848">d_bvConstExprIndex</a>
<dl class="el"><dd class="mdescRight"><a class="el" href="classCVC3_1_1MemoryManager.html">MemoryManager</a> index for <a class="el" href="classCVC3_1_1BVConstExpr.html">BVConstExpr</a> subclass.  <a href="#aca1d99fa896f29efa540d8b83a4de848"></a><br/></dl><li>size_t <a class="el" href="classCVC3_1_1TheoryBitvector.html#a96840bd0a2349e2cd33345a709e84907">d_bvPlusExprIndex</a>
<li>size_t <a class="el" href="classCVC3_1_1TheoryBitvector.html#a6d5488901e86cf3db3fc473fc3770766">d_bvParameterExprIndex</a>
<li>size_t <a class="el" href="classCVC3_1_1TheoryBitvector.html#ae58b98a947a495b8754413e336753518">d_bvTypePredExprIndex</a>
<li><a class="el" href="classCVC3_1_1StatCounter.html">StatCounter</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#af183050f385d720871a298207a7790b1">d_bvDelayEq</a>
<dl class="el"><dd class="mdescRight">counts delayed asserted equalities  <a href="#af183050f385d720871a298207a7790b1"></a><br/></dl><li><a class="el" href="classCVC3_1_1StatCounter.html">StatCounter</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#ae855792c718e64c8a46dab88ddd8b1b4">d_bvAssertEq</a>
<dl class="el"><dd class="mdescRight">counts asserted equalities  <a href="#ae855792c718e64c8a46dab88ddd8b1b4"></a><br/></dl><li><a class="el" href="classCVC3_1_1StatCounter.html">StatCounter</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#a563bcc4483ffa3aee6a8e44e5ab07bcd">d_bvDelayDiseq</a>
<dl class="el"><dd class="mdescRight">counts delayed asserted disequalities  <a href="#a563bcc4483ffa3aee6a8e44e5ab07bcd"></a><br/></dl><li><a class="el" href="classCVC3_1_1StatCounter.html">StatCounter</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#a071fce068ccf6223f20ba8a8d5b90b00">d_bvAssertDiseq</a>
<dl class="el"><dd class="mdescRight">counts asserted disequalities  <a href="#a071fce068ccf6223f20ba8a8d5b90b00"></a><br/></dl><li><a class="el" href="classCVC3_1_1StatCounter.html">StatCounter</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#aac1428f779c77033eb5c59b599629cb8">d_bvTypePreds</a>
<dl class="el"><dd class="mdescRight">counts type predicates  <a href="#aac1428f779c77033eb5c59b599629cb8"></a><br/></dl><li><a class="el" href="classCVC3_1_1StatCounter.html">StatCounter</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#aefadf1146b79ded24d7f5a66adba069d">d_bvDelayTypePreds</a>
<dl class="el"><dd class="mdescRight">counts delayed type predicates  <a href="#aefadf1146b79ded24d7f5a66adba069d"></a><br/></dl><li><a class="el" href="classCVC3_1_1StatCounter.html">StatCounter</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#aab7d49f889a88fd2373b722d33e21c31">d_bvBitBlastEq</a>
<dl class="el"><dd class="mdescRight">counts bitblasted equalities  <a href="#aab7d49f889a88fd2373b722d33e21c31"></a><br/></dl><li><a class="el" href="classCVC3_1_1StatCounter.html">StatCounter</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#a2f2ac7c248fe89fc483c3a1a43c459db">d_bvBitBlastDiseq</a>
<dl class="el"><dd class="mdescRight">counts bitblasted disequalities  <a href="#a2f2ac7c248fe89fc483c3a1a43c459db"></a><br/></dl><li>const bool * <a class="el" href="classCVC3_1_1TheoryBitvector.html#a20f9ef1d8f1666eeb16e9f2712320132">d_booleanRWFlag</a>
<dl class="el"><dd class="mdescRight">boolean on the fly rewrite flag  <a href="#a20f9ef1d8f1666eeb16e9f2712320132"></a><br/></dl><li>const bool * <a class="el" href="classCVC3_1_1TheoryBitvector.html#aa96498fb323044a4ab77c9657ac8e614">d_boolExtractCacheFlag</a>
<dl class="el"><dd class="mdescRight">bool extract cache flag  <a href="#aa96498fb323044a4ab77c9657ac8e614"></a><br/></dl><li>const bool * <a class="el" href="classCVC3_1_1TheoryBitvector.html#ac219e3d5a18642506f3def182a023989">d_bv32Flag</a>
<dl class="el"><dd class="mdescRight">flag which indicates that all arithmetic is 32 bit with no overflow  <a href="#ac219e3d5a18642506f3def182a023989"></a><br/></dl><li><a class="el" href="classCVC3_1_1CDMap.html">CDMap</a>&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a>, <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &gt; <a class="el" href="classCVC3_1_1TheoryBitvector.html#a0f583ba86ce3c379097255ee97620652">d_bitvecCache</a>
<dl class="el"><dd class="mdescRight">Cache for storing the results of the bitBlastTerm function.  <a href="#a0f583ba86ce3c379097255ee97620652"></a><br/></dl><li><a class="el" href="classCVC3_1_1ExprMap.html">ExprMap</a>&lt; <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &gt; <a class="el" href="classCVC3_1_1TheoryBitvector.html#a2134631ced4e2db4bafac7755a4774f4">d_pushNegCache</a>
<dl class="el"><dd class="mdescRight">Cache for <a class="el" href="classCVC3_1_1TheoryBitvector.html#aa7cb7ed38abf46e12d63c019b694c793">pushNegation()</a>. it is ok that this is cache is.  <a href="#a2134631ced4e2db4bafac7755a4774f4"></a><br/></dl><li><a class="el" href="classCVC3_1_1CDList.html">CDList</a>&lt; <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &gt; <a class="el" href="classCVC3_1_1TheoryBitvector.html#af8bcfa021f89dfbc8111eff923e48eab">d_eq</a>
<dl class="el"><dd class="mdescRight">Backtracking queue for equalities.  <a href="#af8bcfa021f89dfbc8111eff923e48eab"></a><br/></dl><li><a class="el" href="classCVC3_1_1CDList.html">CDList</a>&lt; <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &gt; <a class="el" href="classCVC3_1_1TheoryBitvector.html#a7c8dcbb9ba2c1c307c403966cd0b0c6d">d_eqPending</a>
<dl class="el"><dd class="mdescRight">Backtracking queue for unsolved equalities.  <a href="#a7c8dcbb9ba2c1c307c403966cd0b0c6d"></a><br/></dl><li><a class="el" href="classCVC3_1_1CDO.html">CDO</a>&lt; unsigned int &gt; <a class="el" href="classCVC3_1_1TheoryBitvector.html#ac017443fdd0f931d9283bc9e2b52d831">d_eq_index</a>
<dl class="el"><dd class="mdescRight">Index to current position in d_eqPending.  <a href="#ac017443fdd0f931d9283bc9e2b52d831"></a><br/></dl><li><a class="el" href="classCVC3_1_1CDList.html">CDList</a>&lt; <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &gt; <a class="el" href="classCVC3_1_1TheoryBitvector.html#ad133cd123c7cc462dbeca98a1d10f8e4">d_bitblast</a>
<dl class="el"><dd class="mdescRight">Backtracking queue for all other assertions.  <a href="#ad133cd123c7cc462dbeca98a1d10f8e4"></a><br/></dl><li><a class="el" href="classCVC3_1_1CDO.html">CDO</a>&lt; unsigned int &gt; <a class="el" href="classCVC3_1_1TheoryBitvector.html#ad9f83106573a125c219c3900a9aeceb3">d_bb_index</a>
<dl class="el"><dd class="mdescRight">Index to current position in d_bitblast.  <a href="#ad9f83106573a125c219c3900a9aeceb3"></a><br/></dl><li><a class="el" href="classCVC3_1_1CDMap.html">CDMap</a>&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a>, <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; <a class="el" href="classCVC3_1_1TheoryBitvector.html#aa899ef9e64b78453d199a84160f15444">d_sharedSubterms</a>
<dl class="el"><dd class="mdescRight">Backtracking database of subterms of shared terms.  <a href="#aa899ef9e64b78453d199a84160f15444"></a><br/></dl><li><a class="el" href="classCVC3_1_1CDList.html">CDList</a>&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; <a class="el" href="classCVC3_1_1TheoryBitvector.html#a59850cd32a8031dff8e8918c1e9d31c7">d_sharedSubtermsList</a>
<dl class="el"><dd class="mdescRight">Backtracking database of subterms of shared terms.  <a href="#a59850cd32a8031dff8e8918c1e9d31c7"></a><br/></dl><li><a class="el" href="classCVC3_1_1Expr.html">Expr</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#a8be187368c2a0f4e0b401bc1c7968d19">d_bvZero</a>
<dl class="el"><dd class="mdescRight">Constant 1-bit bit-vector 0bin0.  <a href="#a8be187368c2a0f4e0b401bc1c7968d19"></a><br/></dl><li><a class="el" href="classCVC3_1_1Expr.html">Expr</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#aa4228ded9a53f6edcc7d06406f9c98c7">d_bvOne</a>
<dl class="el"><dd class="mdescRight">Constant 1-bit bit-vector 0bin0.  <a href="#aa4228ded9a53f6edcc7d06406f9c98c7"></a><br/></dl><li>int <a class="el" href="classCVC3_1_1TheoryBitvector.html#a1559e63e86e26b348ad8bb618f29f202">d_maxLength</a>
<dl class="el"><dd class="mdescRight">Max size of any bitvector we've seen.  <a href="#a1559e63e86e26b348ad8bb618f29f202"></a><br/></dl><li><a class="el" href="classCVC3_1_1CDO.html">CDO</a>&lt; unsigned &gt; <a class="el" href="classCVC3_1_1TheoryBitvector.html#a8990b759675928a62a4d75cf69fe8d72">d_index1</a>
<dl class="el"><dd class="mdescRight">Used in checkSat.  <a href="#a8990b759675928a62a4d75cf69fe8d72"></a><br/></dl><li><a class="el" href="classCVC3_1_1CDO.html">CDO</a>&lt; unsigned &gt; <a class="el" href="classCVC3_1_1TheoryBitvector.html#a2316b51cfa9b54740298ec7d5e6630cb">d_index2</a>
</ul>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p><a class="el" href="classCVC3_1_1Theory.html" title="Base class for theories.">Theory</a> of bitvectors of known length \ (operations include: @,[i:j],[i],+,.,BVAND,BVNEG) </p>
<p>Author: Vijay Ganesh</p>
<p>Created:Wed May 5 15:35:07 PDT 2004 </p>

<p>Definition at line <a class="el" href="theory__bitvector_8h_source.html#l00100">100</a> of file <a class="el" href="theory__bitvector_8h_source.html">theory_bitvector.h</a>.</p>
</div><hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="ac45c989f0c26d78a8de812f2123cd262"></a><!-- doxytag: member="CVC3::TheoryBitvector::TheoryBitvector" ref="ac45c989f0c26d78a8de812f2123cd262" args="(TheoryCore *core)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">TheoryBitvector::TheoryBitvector </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1TheoryCore.html">TheoryCore</a> *&#160;</td>
          <td class="paramname"><em>core</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l01708">1708</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="theory__bitvector_8h_source.html#l00036">CVC3::BITVECTOR</a>, <a class="el" href="theory__bitvector_8h_source.html#l00040">CVC3::BOOLEXTRACT</a>, <a class="el" href="theory__bitvector_8h_source.html#l00054">CVC3::BVAND</a>, <a class="el" href="theory__bitvector_8h_source.html#l00047">CVC3::BVASHR</a>, <a class="el" href="theory__bitvector_8h_source.html#l00061">CVC3::BVCOMP</a>, <a class="el" href="theory__bitvector_8h_source.html#l00034">CVC3::BVCONST</a>, <a class="el" href="theory__bitvector_8h_source.html#l00076">CVC3::BVGE</a>, <a class="el" href="theory__bitvector_8h_source.html#l00075">CVC3::BVGT</a>, <a class="el" href="theory__bitvector_8h_source.html#l00074">CVC3::BVLE</a>, <a class="el" href="theory__bitvector_8h_source.html#l00046">CVC3::BVLSHR</a>, <a class="el" href="theory__bitvector_8h_source.html#l00073">CVC3::BVLT</a>, <a class="el" href="theory__bitvector_8h_source.html#l00066">CVC3::BVMULT</a>, <a class="el" href="theory__bitvector_8h_source.html#l00059">CVC3::BVNAND</a>, <a class="el" href="theory__bitvector_8h_source.html#l00058">CVC3::BVNEG</a>, <a class="el" href="theory__bitvector_8h_source.html#l00060">CVC3::BVNOR</a>, <a class="el" href="theory__bitvector_8h_source.html#l00055">CVC3::BVOR</a>, <a class="el" href="theory__bitvector_8h_source.html#l00064">CVC3::BVPLUS</a>, <a class="el" href="theory__bitvector_8h_source.html#l00049">CVC3::BVREPEAT</a>, <a class="el" href="theory__bitvector_8h_source.html#l00051">CVC3::BVROTL</a>, <a class="el" href="theory__bitvector_8h_source.html#l00052">CVC3::BVROTR</a>, <a class="el" href="theory__bitvector_8h_source.html#l00068">CVC3::BVSDIV</a>, <a class="el" href="theory__bitvector_8h_source.html#l00080">CVC3::BVSGE</a>, <a class="el" href="theory__bitvector_8h_source.html#l00079">CVC3::BVSGT</a>, <a class="el" href="theory__bitvector_8h_source.html#l00045">CVC3::BVSHL</a>, <a class="el" href="theory__bitvector_8h_source.html#l00078">CVC3::BVSLE</a>, <a class="el" href="theory__bitvector_8h_source.html#l00077">CVC3::BVSLT</a>, <a class="el" href="theory__bitvector_8h_source.html#l00071">CVC3::BVSMOD</a>, <a class="el" href="theory__bitvector_8h_source.html#l00070">CVC3::BVSREM</a>, <a class="el" href="theory__bitvector_8h_source.html#l00065">CVC3::BVSUB</a>, <a class="el" href="theory__bitvector_8h_source.html#l00083">CVC3::BVTOINT</a>, <a class="el" href="theory__bitvector_8h_source.html#l00085">CVC3::BVTYPEPRED</a>, <a class="el" href="theory__bitvector_8h_source.html#l00067">CVC3::BVUDIV</a>, <a class="el" href="theory__bitvector_8h_source.html#l00063">CVC3::BVUMINUS</a>, <a class="el" href="theory__bitvector_8h_source.html#l00069">CVC3::BVUREM</a>, <a class="el" href="theory__bitvector_8h_source.html#l00057">CVC3::BVXNOR</a>, <a class="el" href="theory__bitvector_8h_source.html#l00056">CVC3::BVXOR</a>, <a class="el" href="theory__bitvector_8h_source.html#l00050">CVC3::BVZEROEXTEND</a>, <a class="el" href="theory__bitvector_8h_source.html#l00038">CVC3::CONCAT</a>, <a class="el" href="theory__bitvector_8h_source.html#l00043">CVC3::CONST_WIDTH_LEFTSHIFT</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l00045">createProofRules()</a>, <a class="el" href="theory__bitvector_8h_source.html#l00103">d_bvConstExprIndex</a>, <a class="el" href="theory__bitvector_8h_source.html#l00158">d_bvOne</a>, <a class="el" href="theory__bitvector_8h_source.html#l00156">d_bvZero</a>, <a class="el" href="theory__bitvector_8h_source.html#l00101">d_rules</a>, <a class="el" href="theory__bitvector_8h_source.html#l00039">CVC3::EXTRACT</a>, <a class="el" href="theory_8h_source.html#l00090">CVC3::Theory::getEM()</a>, <a class="el" href="theory__bitvector_8h_source.html#l00082">CVC3::INTTOBV</a>, <a class="el" href="theory__bitvector_8h_source.html#l00042">CVC3::LEFTSHIFT</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l05214">newBVConstExpr()</a>, <a class="el" href="expr__manager_8cpp_source.html#l00367">CVC3::ExprManager::newKind()</a>, <a class="el" href="expr__manager_8cpp_source.html#l00421">CVC3::ExprManager::registerSubclass()</a>, <a class="el" href="theory_8cpp_source.html#l00203">CVC3::Theory::registerTheory()</a>, <a class="el" href="theory__bitvector_8h_source.html#l00044">CVC3::RIGHTSHIFT</a>, and <a class="el" href="theory__bitvector_8h_source.html#l00048">CVC3::SX</a>.</p>

</div>
</div>
<a class="anchor" id="a665042c64606705b935ac0ab15119266"></a><!-- doxytag: member="CVC3::TheoryBitvector::~TheoryBitvector" ref="a665042c64606705b935ac0ab15119266" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">TheoryBitvector::~TheoryBitvector </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l01842">1842</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="theory__bitvector_8h_source.html#l00101">d_rules</a>.</p>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="a2a6471d4278e92ffcaa981b39001fc8a"></a><!-- doxytag: member="CVC3::TheoryBitvector::bvZero" ref="a2a6471d4278e92ffcaa981b39001fc8a" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a>&amp; CVC3::TheoryBitvector::bvZero </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline, private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Return cached constant 0bin0. </p>

<p>Definition at line <a class="el" href="theory__bitvector_8h_source.html#l00160">160</a> of file <a class="el" href="theory__bitvector_8h_source.html">theory_bitvector.h</a>.</p>

<p>References <a class="el" href="theory__bitvector_8h_source.html#l00156">d_bvZero</a>.</p>

</div>
</div>
<a class="anchor" id="a3de9924e52bf35f61049f07f0d34529f"></a><!-- doxytag: member="CVC3::TheoryBitvector::bvOne" ref="a3de9924e52bf35f61049f07f0d34529f" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a>&amp; CVC3::TheoryBitvector::bvOne </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline, private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Return cached constant 0bin1. </p>

<p>Definition at line <a class="el" href="theory__bitvector_8h_source.html#l00162">162</a> of file <a class="el" href="theory__bitvector_8h_source.html">theory_bitvector.h</a>.</p>

<p>References <a class="el" href="theory__bitvector_8h_source.html#l00158">d_bvOne</a>.</p>

</div>
</div>
<a class="anchor" id="a85512d4fcaee0050ee2b41dedd71c61c"></a><!-- doxytag: member="CVC3::TheoryBitvector::bitBlastEqn" ref="a85512d4fcaee0050ee2b41dedd71c61c" args="(const Expr &amp;e)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> TheoryBitvector::bitBlastEqn </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>e</em></td><td>)</td>
          <td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>functions which implement the DP strategy for bitblasting </p>
<p>accepts a bitvector equation t1 = t2.</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>a rewrite theorem which is a conjunction of equivalences over the bits of t1,t2 respectively. </dd></dl>

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

<p>References <a class="el" href="kinds_8h_source.html#l00067">AND</a>, <a class="el" href="theory__bitvector_8h_source.html#l00036">CVC3::BITVECTOR</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="theorem_8cpp_source.html#l00240">CVC3::Theorem::getLHS()</a>, <a class="el" href="theorem_8cpp_source.html#l00246">CVC3::Theorem::getRHS()</a>, <a class="el" href="debug_8h_source.html#l00406">IF_DEBUG</a>, <a class="el" href="kinds_8h_source.html#l00070">IFF</a>, <a class="el" href="expr_8h_source.html#l00419">CVC3::Expr::isEq()</a>, <a class="el" href="expr_8h_source.html#l00355">CVC3::Expr::isFalse()</a>, <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>, and <a class="el" href="kinds_8h_source.html#l00099">TRACE</a>.</p>

<p>Referenced by <a class="el" href="theory__bitvector_8cpp_source.html#l02512">comparebv()</a>, and <a class="el" href="theory__bitvector_8cpp_source.html#l02409">generalBitBlast()</a>.</p>

</div>
</div>
<a class="anchor" id="aa3c9c45c9989d45202d31dda4beb4386"></a><!-- doxytag: member="CVC3::TheoryBitvector::bitBlastDisEqn" ref="aa3c9c45c9989d45202d31dda4beb4386" args="(const Theorem &amp;notE)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> TheoryBitvector::bitBlastDisEqn </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>notE</em></td><td>)</td>
          <td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>bitblast disequation </p>
<p>accepts a bitvector equation t1 != t2.</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>a rewrite theorem which is a conjunction of (dis)-equivalences over the bits of t1,t2 respectively.</dd></dl>
<p>A separate rule for disequations for efficiency sake. Obvious implementation using rule for equations and rule for NOT, is not efficient. </p>

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l00164">164</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="theory__bitvector_8h_source.html#l00036">CVC3::BITVECTOR</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="theorem_8cpp_source.html#l00230">CVC3::Theorem::getExpr()</a>, <a class="el" href="theorem_8cpp_source.html#l00240">CVC3::Theorem::getLHS()</a>, <a class="el" href="theorem_8cpp_source.html#l00246">CVC3::Theorem::getRHS()</a>, <a class="el" href="expr_8h_source.html#l01259">CVC3::Expr::getType()</a>, <a class="el" href="debug_8h_source.html#l00406">IF_DEBUG</a>, <a class="el" href="kinds_8h_source.html#l00070">IFF</a>, <a class="el" href="expr_8h_source.html#l00420">CVC3::Expr::isNot()</a>, <a class="el" href="expr_8h_source.html#l00356">CVC3::Expr::isTrue()</a>, <a class="el" href="kinds_8h_source.html#l00068">OR</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>

<p>Referenced by <a class="el" href="theory__bitvector_8cpp_source.html#l02409">generalBitBlast()</a>.</p>

</div>
</div>
<a class="anchor" id="a1381dbfdc07d3bdebe3a4b8f0172bb94"></a><!-- doxytag: member="CVC3::TheoryBitvector::bitBlastIneqn" ref="a1381dbfdc07d3bdebe3a4b8f0172bb94" args="(const Expr &amp;e)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> TheoryBitvector::bitBlastIneqn </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>e</em></td><td>)</td>
          <td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>function which implements the DP strtagey to bitblast Inequations </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">e</td><td>has the form e1 pred e2, where pred is &lt; or &lt;=.</td></tr>
  </table>
  </dd>
</dl>
<p>if e1,e2 are constants, determine bv2int(e1) pred bv2int(e2).</p>
<p>most significant bit of ei is denoted by msb(ei)</p>
<dl class="return"><dt><b>Returns:</b></dt><dd><img class="formulaInl" alt="$(msb(e1)\ pred\ msb(e2)) \vee (msb(e1)=msb(e2) \wedge e1[n-2:0]\ pred\ e2[n-2:0])$" src="form_342.png"/> </dd></dl>

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l00240">240</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="kinds_8h_source.html#l00067">AND</a>, <a class="el" href="expr_8h_source.html#l01201">CVC3::Expr::arity()</a>, <a class="el" href="theory__bitvector_8h_source.html#l00034">CVC3::BVCONST</a>, <a class="el" href="theory__bitvector_8h_source.html#l00074">CVC3::BVLE</a>, <a class="el" href="theory__bitvector_8h_source.html#l00073">CVC3::BVLT</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="expr_8h_source.html#l01168">CVC3::Expr::getKind()</a>, <a class="el" href="expr_8h_source.html#l01196">CVC3::Expr::getOpKind()</a>, <a class="el" href="theorem_8cpp_source.html#l00246">CVC3::Theorem::getRHS()</a>, <a class="el" href="expr_8h_source.html#l00357">CVC3::Expr::isBoolConst()</a>, <a class="el" href="kinds_8h_source.html#l00068">OR</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>

<p>Referenced by <a class="el" href="theory__bitvector_8cpp_source.html#l02409">generalBitBlast()</a>.</p>

</div>
</div>
<a class="anchor" id="a981e964dd8c6118cbcac5e0c2b307730"></a><!-- doxytag: member="CVC3::TheoryBitvector::bitBlastTerm" ref="a981e964dd8c6118cbcac5e0c2b307730" args="(const Expr &amp;t, int bitPosition)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> TheoryBitvector::bitBlastTerm </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>t</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>bitPosition</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>functions which implement the DP strategy for bitblasting </p>
<p>The invariant maintained by this function is: accepts a bitvector term, t,and a bitPosition, i. returns a formula over the set of propositional variables defined using BOOLEXTRACT of bitvector variables in t at the position i.</p>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>(BOOLEXTRACT(t, bitPosition) &lt;=&gt; phi), where phi is a Boolean formula over the individual bits of bit-vector variables. </dd></dl>

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l00359">359</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="kinds_8h_source.html#l00067">AND</a>, <a class="el" href="expr_8h_source.html#l01201">CVC3::Expr::arity()</a>, <a class="el" href="expr_8h_source.html#l01211">CVC3::Expr::begin()</a>, <a class="el" href="theory__bitvector_8h_source.html#l00036">CVC3::BITVECTOR</a>, <a class="el" href="theory__bitvector_8h_source.html#l00040">CVC3::BOOLEXTRACT</a>, <a class="el" href="theory__bitvector_8h_source.html#l00054">CVC3::BVAND</a>, <a class="el" href="theory__bitvector_8h_source.html#l00047">CVC3::BVASHR</a>, <a class="el" href="theory__bitvector_8h_source.html#l00034">CVC3::BVCONST</a>, <a class="el" href="theory__bitvector_8h_source.html#l00046">CVC3::BVLSHR</a>, <a class="el" href="theory__bitvector_8h_source.html#l00066">CVC3::BVMULT</a>, <a class="el" href="theory__bitvector_8h_source.html#l00058">CVC3::BVNEG</a>, <a class="el" href="theory__bitvector_8h_source.html#l00055">CVC3::BVOR</a>, <a class="el" href="theory__bitvector_8h_source.html#l00064">CVC3::BVPLUS</a>, <a class="el" href="theory__bitvector_8h_source.html#l00045">CVC3::BVSHL</a>, <a class="el" href="theory__bitvector_8h_source.html#l00056">CVC3::BVXOR</a>, <a class="el" href="theory__bitvector_8h_source.html#l00038">CVC3::CONCAT</a>, <a class="el" href="theory__bitvector_8h_source.html#l00043">CVC3::CONST_WIDTH_LEFTSHIFT</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="cdmap_8h_source.html#l00258">CVC3::CDMap&lt; Key, Data, HashFcn &gt;::end()</a>, <a class="el" href="theory__bitvector_8h_source.html#l00039">CVC3::EXTRACT</a>, <a class="el" href="debug_8h_source.html#l00037">FatalAssert</a>, <a class="el" href="cdmap_8h_source.html#l00303">CVC3::CDMap&lt; Key, Data, HashFcn &gt;::find()</a>, <a class="el" href="expr_8h_source.html#l01168">CVC3::Expr::getKind()</a>, <a class="el" href="theorem_8cpp_source.html#l00240">CVC3::Theorem::getLHS()</a>, <a class="el" href="expr_8h_source.html#l01196">CVC3::Expr::getOpKind()</a>, <a class="el" href="theorem_8cpp_source.html#l00246">CVC3::Theorem::getRHS()</a>, <a class="el" href="expr_8h_source.html#l01259">CVC3::Expr::getType()</a>, <a class="el" href="debug_8h_source.html#l00406">IF_DEBUG</a>, <a class="el" href="cvc__util_8h_source.html#l00046">CVC3::int2string()</a>, <a class="el" href="theorem_8h_source.html#l00164">CVC3::Theorem::isNull()</a>, <a class="el" href="theory__arith_8h_source.html#l00223">CVC3::leExpr()</a>, <a class="el" href="kinds_8h_source.html#l00066">NOT</a>, <a class="el" href="kinds_8h_source.html#l00068">OR</a>, <a class="el" href="theorem_8h_source.html#l00404">CVC3::Theorem::toString()</a>, <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>, <a class="el" href="kinds_8h_source.html#l00099">TRACE</a>, and <a class="el" href="kinds_8h_source.html#l00069">XOR</a>.</p>

<p>Referenced by <a class="el" href="theory__bitvector_8cpp_source.html#l02512">comparebv()</a>.</p>

</div>
</div>
<a class="anchor" id="a3f1ecbd3cea6637fe571cc8b614d3dd6"></a><!-- doxytag: member="CVC3::TheoryBitvector::pushNegationRec" ref="a3f1ecbd3cea6637fe571cc8b614d3dd6" args="(const Expr &amp;e)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> TheoryBitvector::pushNegationRec </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>e</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l00699">699</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="expr_8h_source.html#l01201">CVC3::Expr::arity()</a>, <a class="el" href="expr_8h_source.html#l01211">CVC3::Expr::begin()</a>, <a class="el" href="theory__bitvector_8h_source.html#l00054">CVC3::BVAND</a>, <a class="el" href="theory__bitvector_8h_source.html#l00034">CVC3::BVCONST</a>, <a class="el" href="theory__bitvector_8h_source.html#l00066">CVC3::BVMULT</a>, <a class="el" href="theory__bitvector_8h_source.html#l00058">CVC3::BVNEG</a>, <a class="el" href="theory__bitvector_8h_source.html#l00055">CVC3::BVOR</a>, <a class="el" href="theory__bitvector_8h_source.html#l00064">CVC3::BVPLUS</a>, <a class="el" href="theory__bitvector_8h_source.html#l00057">CVC3::BVXNOR</a>, <a class="el" href="theory__bitvector_8h_source.html#l00056">CVC3::BVXOR</a>, <a class="el" href="theory__bitvector_8h_source.html#l00038">CVC3::CONCAT</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="expr_8h_source.html#l01217">CVC3::Expr::end()</a>, <a class="el" href="expr__map_8h_source.html#l00194">CVC3::ExprMap&lt; Data &gt;::find()</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="theorem_8h_source.html#l00171">CVC3::Theorem::isRefl()</a>, and <a class="el" href="kinds_8h_source.html#l00099">TRACE</a>.</p>

<p>Referenced by <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l03692">CVC3::BitvectorTheoremProducer::collectOneTermOfPlus()</a>, and <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l03785">CVC3::BitvectorTheoremProducer::createNewPlusCollection()</a>.</p>

</div>
</div>
<a class="anchor" id="aa7cb7ed38abf46e12d63c019b694c793"></a><!-- doxytag: member="CVC3::TheoryBitvector::pushNegation" ref="aa7cb7ed38abf46e12d63c019b694c793" args="(const Expr &amp;e)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> TheoryBitvector::pushNegation </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>e</em></td><td>)</td>
          <td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l00804">804</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="theory__bitvector_8h_source.html#l00058">CVC3::BVNEG</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, and <a class="el" href="expr_8h_source.html#l01196">CVC3::Expr::getOpKind()</a>.</p>

</div>
</div>
<a class="anchor" id="a5bd75507801c5b8b2595784ce53069aa"></a><!-- doxytag: member="CVC3::TheoryBitvector::simplifyOp" ref="a5bd75507801c5b8b2595784ce53069aa" args="(const Expr &amp;e)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> TheoryBitvector::simplifyOp </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>e</em></td><td>)</td>
          <td><code> [private, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Top down simplifier. </p>

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

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l00812">812</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="expr_8h_source.html#l01201">CVC3::Expr::arity()</a>, <a class="el" href="theory__bitvector_8h_source.html#l00066">CVC3::BVMULT</a>, <a class="el" href="theory__bitvector_8h_source.html#l00058">CVC3::BVNEG</a>, <a class="el" href="theory__bitvector_8h_source.html#l00064">CVC3::BVPLUS</a>, <a class="el" href="theory__bitvector_8h_source.html#l00038">CVC3::CONCAT</a>, <a class="el" href="theory__bitvector_8h_source.html#l00043">CVC3::CONST_WIDTH_LEFTSHIFT</a>, <a class="el" href="theory__bitvector_8h_source.html#l00039">CVC3::EXTRACT</a>, <a class="el" href="theorem_8cpp_source.html#l00240">CVC3::Theorem::getLHS()</a>, <a class="el" href="expr_8h_source.html#l01196">CVC3::Expr::getOpKind()</a>, <a class="el" href="theorem_8cpp_source.html#l00246">CVC3::Theorem::getRHS()</a>, <a class="el" href="theorem_8h_source.html#l00164">CVC3::Theorem::isNull()</a>, <a class="el" href="theory__bitvector_8h_source.html#l00042">CVC3::LEFTSHIFT</a>, and <a class="el" href="theory__bitvector_8h_source.html#l00044">CVC3::RIGHTSHIFT</a>.</p>

</div>
</div>
<a class="anchor" id="a214442814e895d26ac43c42663741fbd"></a><!-- doxytag: member="CVC3::TheoryBitvector::rewriteBV" ref="a214442814e895d26ac43c42663741fbd" args="(const Expr &amp;e, ExprMap&lt; Theorem &gt; &amp;cache, int n=1)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> TheoryBitvector::rewriteBV </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>e</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1ExprMap.html">ExprMap</a>&lt; <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>cache</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>n</em> = <code>1</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Internal rewrite method for constants. </p>
<p>Main rewrite method (implements the actual rewrites) </p>

<p><p>input: e0 &lt;=(s) e1. output depends on whether the topbits(MSB) of e0 and e1 are constants. If they are constants then optimizations are done. In general, the following rule is implemented. Step1: e0 &lt;=(s) e1 &lt;==&gt; pad(e0) &lt;=(s) pad(e1) Step2: pad(e0) &lt;=(s) pad(e1) &lt;==&gt; (e0[n-1] AND NOT e1[n-1]) OR (e0[n-1] = e1[n-1] AND e0[n-2:0] &lt;= e1[n-2:0])</p>
</p>

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l00887">887</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="expr_8h_source.html#l01201">CVC3::Expr::arity()</a>, <a class="el" href="theory__bitvector_8h_source.html#l00040">CVC3::BOOLEXTRACT</a>, <a class="el" href="theory__bitvector_8h_source.html#l00054">CVC3::BVAND</a>, <a class="el" href="theory__bitvector_8h_source.html#l00047">CVC3::BVASHR</a>, <a class="el" href="theory__bitvector_8h_source.html#l00061">CVC3::BVCOMP</a>, <a class="el" href="theory__bitvector_8h_source.html#l00034">CVC3::BVCONST</a>, <a class="el" href="theory__bitvector_8h_source.html#l00076">CVC3::BVGE</a>, <a class="el" href="theory__bitvector_8h_source.html#l00075">CVC3::BVGT</a>, <a class="el" href="theory__bitvector_8h_source.html#l00074">CVC3::BVLE</a>, <a class="el" href="theory__bitvector_8h_source.html#l00046">CVC3::BVLSHR</a>, <a class="el" href="theory__bitvector_8h_source.html#l00073">CVC3::BVLT</a>, <a class="el" href="theory__bitvector_8h_source.html#l00066">CVC3::BVMULT</a>, <a class="el" href="theory__bitvector_8h_source.html#l00059">CVC3::BVNAND</a>, <a class="el" href="theory__bitvector_8h_source.html#l00058">CVC3::BVNEG</a>, <a class="el" href="theory__bitvector_8h_source.html#l00060">CVC3::BVNOR</a>, <a class="el" href="theory__bitvector_8h_source.html#l00055">CVC3::BVOR</a>, <a class="el" href="theory__bitvector_8h_source.html#l00064">CVC3::BVPLUS</a>, <a class="el" href="theory__bitvector_8h_source.html#l00049">CVC3::BVREPEAT</a>, <a class="el" href="theory__bitvector_8h_source.html#l00051">CVC3::BVROTL</a>, <a class="el" href="theory__bitvector_8h_source.html#l00052">CVC3::BVROTR</a>, <a class="el" href="theory__bitvector_8h_source.html#l00068">CVC3::BVSDIV</a>, <a class="el" href="theory__bitvector_8h_source.html#l00080">CVC3::BVSGE</a>, <a class="el" href="theory__bitvector_8h_source.html#l00079">CVC3::BVSGT</a>, <a class="el" href="theory__bitvector_8h_source.html#l00045">CVC3::BVSHL</a>, <a class="el" href="theory__bitvector_8h_source.html#l00078">CVC3::BVSLE</a>, <a class="el" href="theory__bitvector_8h_source.html#l00077">CVC3::BVSLT</a>, <a class="el" href="theory__bitvector_8h_source.html#l00071">CVC3::BVSMOD</a>, <a class="el" href="theory__bitvector_8h_source.html#l00070">CVC3::BVSREM</a>, <a class="el" href="theory__bitvector_8h_source.html#l00065">CVC3::BVSUB</a>, <a class="el" href="theory__bitvector_8h_source.html#l00067">CVC3::BVUDIV</a>, <a class="el" href="theory__bitvector_8h_source.html#l00063">CVC3::BVUMINUS</a>, <a class="el" href="theory__bitvector_8h_source.html#l00069">CVC3::BVUREM</a>, <a class="el" href="theory__bitvector_8h_source.html#l00057">CVC3::BVXNOR</a>, <a class="el" href="theory__bitvector_8h_source.html#l00056">CVC3::BVXOR</a>, <a class="el" href="theory__bitvector_8h_source.html#l00050">CVC3::BVZEROEXTEND</a>, <a class="el" href="theory__bitvector_8h_source.html#l00038">CVC3::CONCAT</a>, <a class="el" href="theory__bitvector_8h_source.html#l00043">CVC3::CONST_WIDTH_LEFTSHIFT</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l01885">constantKids()</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="expr__map_8h_source.html#l00191">CVC3::ExprMap&lt; Data &gt;::end()</a>, <a class="el" href="kinds_8h_source.html#l00061">EQ</a>, <a class="el" href="theory__bitvector_8h_source.html#l00039">CVC3::EXTRACT</a>, <a class="el" href="debug_8h_source.html#l00037">FatalAssert</a>, <a class="el" href="expr__map_8h_source.html#l00194">CVC3::ExprMap&lt; Data &gt;::find()</a>, <a class="el" href="theorem_8cpp_source.html#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#l00240">CVC3::Theorem::getLHS()</a>, <a class="el" href="expr_8h_source.html#l01183">CVC3::Expr::getOp()</a>, <a class="el" href="expr_8h_source.html#l01196">CVC3::Expr::getOpKind()</a>, <a class="el" href="theorem_8cpp_source.html#l00246">CVC3::Theorem::getRHS()</a>, <a class="el" href="expr_8h_source.html#l01232">CVC3::Expr::hasFind()</a>, <a class="el" href="debug_8h_source.html#l00406">IF_DEBUG</a>, <a class="el" href="cvc__util_8h_source.html#l00046">CVC3::int2string()</a>, <a class="el" href="theorem_8h_source.html#l00164">CVC3::Theorem::isNull()</a>, <a class="el" href="theorem_8h_source.html#l00171">CVC3::Theorem::isRefl()</a>, <a class="el" href="theory__bitvector_8h_source.html#l00042">CVC3::LEFTSHIFT</a>, <a class="el" href="kinds_8h_source.html#l00066">NOT</a>, <a class="el" href="rational_8h_source.html#l00159">CVC3::pow()</a>, <a class="el" href="theory__bitvector_8h_source.html#l00044">CVC3::RIGHTSHIFT</a>, <a class="el" href="expr_8h_source.html#l01457">CVC3::Expr::setRewriteNormal()</a>, <a class="el" href="theory__bitvector_8h_source.html#l00048">CVC3::SX</a>, <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>, and <a class="el" href="kinds_8h_source.html#l00099">TRACE</a>.</p>

<p>Referenced by <a class="el" href="theory__bitvector_8cpp_source.html#l02670">rewrite()</a>, and <a class="el" href="theory__bitvector_8h_source.html#l00218">rewriteBV()</a>.</p>

</div>
</div>
<a class="anchor" id="a9d96414ef3ff2c522e621ced84492f8f"></a><!-- doxytag: member="CVC3::TheoryBitvector::rewriteBV" ref="a9d96414ef3ff2c522e621ced84492f8f" args="(const Expr &amp;e, int n=1)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> TheoryBitvector::rewriteBV </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>e</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>n</em> = <code>1</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Rewrite children 'n' levels down (n==1 means "only the top level") </p>

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l01631">1631</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="ad9b702d3659fbaab47960bce473608c8"></a><!-- doxytag: member="CVC3::TheoryBitvector::rewriteBV" ref="ad9b702d3659fbaab47960bce473608c8" args="(const Theorem &amp;t, ExprMap&lt; Theorem &gt; &amp;cache, int n=1)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> CVC3::TheoryBitvector::rewriteBV </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>t</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1ExprMap.html">ExprMap</a>&lt; <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>cache</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>n</em> = <code>1</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline, private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="theory__bitvector_8h_source.html#l00218">218</a> of file <a class="el" href="theory__bitvector_8h_source.html">theory_bitvector.h</a>.</p>

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

</div>
</div>
<a class="anchor" id="a84f5fc78f3f36e213ea70ff307db9db8"></a><!-- doxytag: member="CVC3::TheoryBitvector::rewriteBV" ref="a84f5fc78f3f36e213ea70ff307db9db8" args="(const Theorem &amp;t, int n=1)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> CVC3::TheoryBitvector::rewriteBV </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>t</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>n</em> = <code>1</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline, private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="theory__bitvector_8h_source.html#l00221">221</a> of file <a class="el" href="theory__bitvector_8h_source.html">theory_bitvector.h</a>.</p>

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

</div>
</div>
<a class="anchor" id="ac2ed14005bb197aaad28ead0cb537a72"></a><!-- doxytag: member="CVC3::TheoryBitvector::rewriteBoolean" ref="ac2ed14005bb197aaad28ead0cb537a72" args="(const Expr &amp;e)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> TheoryBitvector::rewriteBoolean </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>e</em></td><td>)</td>
          <td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>rewrite input boolean expression e to a simpler form </p>

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l01638">1638</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="kinds_8h_source.html#l00067">AND</a>, <a class="el" href="expr_8h_source.html#l01211">CVC3::Expr::begin()</a>, <a class="el" href="expr_8h_source.html#l01217">CVC3::Expr::end()</a>, <a class="el" href="expr_8h_source.html#l01168">CVC3::Expr::getKind()</a>, <a class="el" href="theorem_8cpp_source.html#l00240">CVC3::Theorem::getLHS()</a>, <a class="el" href="theorem_8cpp_source.html#l00246">CVC3::Theorem::getRHS()</a>, <a class="el" href="kinds_8h_source.html#l00070">IFF</a>, <a class="el" href="expr_8h_source.html#l00420">CVC3::Expr::isNot()</a>, <a class="el" href="theorem_8h_source.html#l00164">CVC3::Theorem::isNull()</a>, <a class="el" href="kinds_8h_source.html#l00066">NOT</a>, and <a class="el" href="kinds_8h_source.html#l00068">OR</a>.</p>

</div>
</div>
<a class="anchor" id="a265761c739bb7084fa9016e527499da5"></a><!-- doxytag: member="CVC3::TheoryBitvector::multiply_coeff" ref="a265761c739bb7084fa9016e527499da5" args="(Rational mult_inv, const Expr &amp;e)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Expr.html">Expr</a> TheoryBitvector::multiply_coeff </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1Rational.html">Rational</a>&#160;</td>
          <td class="paramname"><em>mult_inv</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>e</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l01965">1965</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="expr_8h_source.html#l01201">CVC3::Expr::arity()</a>, <a class="el" href="theory__bitvector_8h_source.html#l00034">CVC3::BVCONST</a>, <a class="el" href="theory__bitvector_8h_source.html#l00066">CVC3::BVMULT</a>, <a class="el" href="theory__bitvector_8h_source.html#l00064">CVC3::BVPLUS</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l00045">BVSize()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l05474">computeBVConst()</a>, <a class="el" href="kinds_8h_source.html#l00061">EQ</a>, <a class="el" href="expr_8h_source.html#l01196">CVC3::Expr::getOpKind()</a>, <a class="el" href="expr_8h_source.html#l00419">CVC3::Expr::isEq()</a>, <a class="el" href="theory_8h_source.html#l00556">CVC3::Theory::isLeaf()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l05214">newBVConstExpr()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l05038">newBVMultExpr()</a>, and <a class="el" href="theory__bitvector_8cpp_source.html#l05275">newBVPlusExpr()</a>.</p>

</div>
</div>
<a class="anchor" id="ab4f87aca710aa31e6d438e91301beffc"></a><!-- doxytag: member="CVC3::TheoryBitvector::min" ref="ab4f87aca710aa31e6d438e91301beffc" args="(std::vector&lt; Rational &gt; list)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int CVC3::TheoryBitvector::min </td>
          <td>(</td>
          <td class="paramtype">std::vector&lt; <a class="el" href="classCVC3_1_1Rational.html">Rational</a> &gt;&#160;</td>
          <td class="paramname"><em>list</em></td><td>)</td>
          <td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a2e23b49398256989b0dea88a63717dee"></a><!-- doxytag: member="CVC3::TheoryBitvector::Odd_coeff" ref="a2e23b49398256989b0dea88a63717dee" args="(const Expr &amp;e)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Rational.html">Rational</a> TheoryBitvector::Odd_coeff </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>e</em></td><td>)</td>
          <td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l02178">2178</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="theory__bitvector_8h_source.html#l00034">CVC3::BVCONST</a>, <a class="el" href="theory__bitvector_8h_source.html#l00066">CVC3::BVMULT</a>, <a class="el" href="theory__bitvector_8h_source.html#l00064">CVC3::BVPLUS</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l00045">BVSize()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l05474">computeBVConst()</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="kinds_8h_source.html#l00061">EQ</a>, <a class="el" href="expr_8h_source.html#l01196">CVC3::Expr::getOpKind()</a>, <a class="el" href="theory_8h_source.html#l00556">CVC3::Theory::isLeaf()</a>, <a class="el" href="theory_8cpp_source.html#l00546">CVC3::Theory::isLeafIn()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l02291">isTermIn()</a>, and <a class="el" href="theory__bitvector_8cpp_source.html#l05145">newBVZeroString()</a>.</p>

</div>
</div>
<a class="anchor" id="aa1e382d50ad48fb6d222450d74dd9574"></a><!-- doxytag: member="CVC3::TheoryBitvector::check_linear" ref="aa1e382d50ad48fb6d222450d74dd9574" args="(const Expr &amp;e)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int TheoryBitvector::check_linear </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>e</em></td><td>)</td>
          <td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l02251">2251</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="expr_8h_source.html#l01201">CVC3::Expr::arity()</a>, <a class="el" href="theory__bitvector_8h_source.html#l00034">CVC3::BVCONST</a>, <a class="el" href="theory__bitvector_8h_source.html#l00066">CVC3::BVMULT</a>, <a class="el" href="theory__bitvector_8h_source.html#l00064">CVC3::BVPLUS</a>, <a class="el" href="theory__bitvector_8h_source.html#l00063">CVC3::BVUMINUS</a>, <a class="el" href="kinds_8h_source.html#l00061">EQ</a>, <a class="el" href="expr_8h_source.html#l01196">CVC3::Expr::getOpKind()</a>, <a class="el" href="expr_8h_source.html#l01005">CVC3::Expr::isVar()</a>, <a class="el" href="lang_8h_source.html#l00032">CVC3::PRESENTATION_LANG</a>, <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>, and <a class="el" href="kinds_8h_source.html#l00099">TRACE</a>.</p>

</div>
</div>
<a class="anchor" id="a6739a946f5cdf86bd6597845b6f6df43"></a><!-- doxytag: member="CVC3::TheoryBitvector::isTermIn" ref="a6739a946f5cdf86bd6597845b6f6df43" args="(const Expr &amp;e1, const Expr &amp;e2)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool TheoryBitvector::isTermIn </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><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

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

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

<p>Referenced by <a class="el" href="theory__bitvector_8cpp_source.html#l02178">Odd_coeff()</a>.</p>

</div>
</div>
<a class="anchor" id="aa12fe04ae2312b60f15f5fc594d533f4"></a><!-- doxytag: member="CVC3::TheoryBitvector::updateSubterms" ref="aa12fe04ae2312b60f15f5fc594d533f4" args="(const Expr &amp;d)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> TheoryBitvector::updateSubterms </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></td><td>)</td>
          <td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l02791">2791</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="expr_8h_source.html#l01201">CVC3::Expr::arity()</a>, <a class="el" href="theory_8cpp_source.html#l00310">CVC3::Theory::find()</a>, <a class="el" href="theorem_8cpp_source.html#l00240">CVC3::Theorem::getLHS()</a>, <a class="el" href="theorem_8cpp_source.html#l00246">CVC3::Theorem::getRHS()</a>, <a class="el" href="theory_8h_source.html#l00556">CVC3::Theory::isLeaf()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l02670">rewrite()</a>, <a class="el" href="theory_8h_source.html#l00686">CVC3::Theory::substitutivityRule()</a>, and <a class="el" href="theory_8h_source.html#l00681">CVC3::Theory::transitivityRule()</a>.</p>

</div>
</div>
<a class="anchor" id="a79967704ae23c653a04a1ee3416a4d22"></a><!-- doxytag: member="CVC3::TheoryBitvector::countTermIn" ref="a79967704ae23c653a04a1ee3416a4d22" args="(const Expr &amp;term, const Expr &amp;e)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int TheoryBitvector::countTermIn </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">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>e</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l02327">2327</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="expr_8h_source.html#l01201">CVC3::Expr::arity()</a>, <a class="el" href="theory__bitvector_8h_source.html#l00034">CVC3::BVCONST</a>, and <a class="el" href="expr_8h_source.html#l01196">CVC3::Expr::getOpKind()</a>.</p>

<p>Referenced by <a class="el" href="theory__bitvector_8cpp_source.html#l02301">canSolveFor()</a>.</p>

</div>
</div>
<a class="anchor" id="a324d4171cfb81ff5e774cbc326aaa1d9"></a><!-- doxytag: member="CVC3::TheoryBitvector::simplifyPendingEq" ref="a324d4171cfb81ff5e774cbc326aaa1d9" args="(const Theorem &amp;thm, int maxEffort)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> TheoryBitvector::simplifyPendingEq </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>thm</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>maxEffort</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l02366">2366</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="classCVC3_1_1BitvectorProofRules.html#a04f65b94c6a9ca2b84a6063aac0d082f">CVC3::BitvectorProofRules::canonBVEQ()</a>, <a class="el" href="theory__bitvector_8h_source.html#l00101">d_rules</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="kinds_8h_source.html#l00061">EQ</a>, <a class="el" href="theory_8cpp_source.html#l00310">CVC3::Theory::find()</a>, <a class="el" href="theorem_8cpp_source.html#l00230">CVC3::Theorem::getExpr()</a>, <a class="el" href="expr_8h_source.html#l01168">CVC3::Expr::getKind()</a>, <a class="el" href="theorem_8cpp_source.html#l00240">CVC3::Theorem::getLHS()</a>, <a class="el" href="theorem_8cpp_source.html#l00246">CVC3::Theorem::getRHS()</a>, <a class="el" href="theory_8h_source.html#l00714">CVC3::Theory::iffMP()</a>, <a class="el" href="theory_8h_source.html#l00556">CVC3::Theory::isLeaf()</a>, <a class="el" href="theorem_8cpp_source.html#l00224">CVC3::Theorem::isRewrite()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l02670">rewrite()</a>, <a class="el" href="theory_8h_source.html#l00686">CVC3::Theory::substitutivityRule()</a>, <a class="el" href="theory_8h_source.html#l00677">CVC3::Theory::symmetryRule()</a>, and <a class="el" href="theory_8h_source.html#l00681">CVC3::Theory::transitivityRule()</a>.</p>

<p>Referenced by <a class="el" href="theory__bitvector_8cpp_source.html#l02574">checkSat()</a>, and <a class="el" href="theory__bitvector_8cpp_source.html#l02409">generalBitBlast()</a>.</p>

</div>
</div>
<a class="anchor" id="a0dedc2d6930e49cdf4d73c40da7a7bd8"></a><!-- doxytag: member="CVC3::TheoryBitvector::generalBitBlast" ref="a0dedc2d6930e49cdf4d73c40da7a7bd8" args="(const Theorem &amp;thm)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> TheoryBitvector::generalBitBlast </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>thm</em></td><td>)</td>
          <td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l02409">2409</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="kinds_8h_source.html#l00067">AND</a>, <a class="el" href="expr_8h_source.html#l01201">CVC3::Expr::arity()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l00164">bitBlastDisEqn()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l00091">bitBlastEqn()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l00240">bitBlastIneqn()</a>, <a class="el" href="theory__bitvector_8h_source.html#l00074">CVC3::BVLE</a>, <a class="el" href="theory__bitvector_8h_source.html#l00073">CVC3::BVLT</a>, <a class="el" href="classCVC3_1_1BitvectorProofRules.html#a04f65b94c6a9ca2b84a6063aac0d082f">CVC3::BitvectorProofRules::canonBVEQ()</a>, <a class="el" href="theory__bitvector_8h_source.html#l00101">d_rules</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="kinds_8h_source.html#l00061">EQ</a>, <a class="el" href="kinds_8h_source.html#l00036">FALSE_EXPR</a>, <a class="el" href="debug_8h_source.html#l00037">FatalAssert</a>, <a class="el" href="theory_8cpp_source.html#l00310">CVC3::Theory::find()</a>, <a class="el" href="theorem_8cpp_source.html#l00230">CVC3::Theorem::getExpr()</a>, <a class="el" href="expr_8h_source.html#l01168">CVC3::Expr::getKind()</a>, <a class="el" href="theorem_8cpp_source.html#l00240">CVC3::Theorem::getLHS()</a>, <a class="el" href="expr_8h_source.html#l01196">CVC3::Expr::getOpKind()</a>, <a class="el" href="theorem_8cpp_source.html#l00246">CVC3::Theorem::getRHS()</a>, <a class="el" href="theory_8h_source.html#l00714">CVC3::Theory::iffMP()</a>, <a class="el" href="expr_8h_source.html#l00419">CVC3::Expr::isEq()</a>, <a class="el" href="kinds_8h_source.html#l00066">NOT</a>, <a class="el" href="theory_8h_source.html#l00673">CVC3::Theory::reflexivityRule()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l02670">rewrite()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l02366">simplifyPendingEq()</a>, <a class="el" href="theory_8h_source.html#l00686">CVC3::Theory::substitutivityRule()</a>, <a class="el" href="theory_8h_source.html#l00681">CVC3::Theory::transitivityRule()</a>, and <a class="el" href="kinds_8h_source.html#l00035">TRUE_EXPR</a>.</p>

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

</div>
</div>
<a class="anchor" id="abd70b8a3ad35dcf7299c87ab36a6f848"></a><!-- doxytag: member="CVC3::TheoryBitvector::printSmtLibShared" ref="abd70b8a3ad35dcf7299c87ab36a6f848" args="(ExprStream &amp;os, const Expr &amp;e)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1ExprStream.html">ExprStream</a> &amp; TheoryBitvector::printSmtLibShared </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1ExprStream.html">ExprStream</a> &amp;&#160;</td>
          <td class="paramname"><em>os</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>e</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l03429">3429</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="expr_8h_source.html#l01201">CVC3::Expr::arity()</a>, <a class="el" href="theory__bitvector_8h_source.html#l00054">CVC3::BVAND</a>, <a class="el" href="theory__bitvector_8h_source.html#l00047">CVC3::BVASHR</a>, <a class="el" href="theory__bitvector_8h_source.html#l00061">CVC3::BVCOMP</a>, <a class="el" href="theory__bitvector_8h_source.html#l00076">CVC3::BVGE</a>, <a class="el" href="theory__bitvector_8h_source.html#l00075">CVC3::BVGT</a>, <a class="el" href="theory__bitvector_8h_source.html#l00074">CVC3::BVLE</a>, <a class="el" href="theory__bitvector_8h_source.html#l00046">CVC3::BVLSHR</a>, <a class="el" href="theory__bitvector_8h_source.html#l00073">CVC3::BVLT</a>, <a class="el" href="theory__bitvector_8h_source.html#l00066">CVC3::BVMULT</a>, <a class="el" href="theory__bitvector_8h_source.html#l00059">CVC3::BVNAND</a>, <a class="el" href="theory__bitvector_8h_source.html#l00058">CVC3::BVNEG</a>, <a class="el" href="theory__bitvector_8h_source.html#l00060">CVC3::BVNOR</a>, <a class="el" href="theory__bitvector_8h_source.html#l00055">CVC3::BVOR</a>, <a class="el" href="theory__bitvector_8h_source.html#l00064">CVC3::BVPLUS</a>, <a class="el" href="theory__bitvector_8h_source.html#l00068">CVC3::BVSDIV</a>, <a class="el" href="theory__bitvector_8h_source.html#l00080">CVC3::BVSGE</a>, <a class="el" href="theory__bitvector_8h_source.html#l00079">CVC3::BVSGT</a>, <a class="el" href="theory__bitvector_8h_source.html#l00045">CVC3::BVSHL</a>, <a class="el" href="theory__bitvector_8h_source.html#l00078">CVC3::BVSLE</a>, <a class="el" href="theory__bitvector_8h_source.html#l00077">CVC3::BVSLT</a>, <a class="el" href="theory__bitvector_8h_source.html#l00071">CVC3::BVSMOD</a>, <a class="el" href="theory__bitvector_8h_source.html#l00070">CVC3::BVSREM</a>, <a class="el" href="theory__bitvector_8h_source.html#l00065">CVC3::BVSUB</a>, <a class="el" href="theory__bitvector_8h_source.html#l00083">CVC3::BVTOINT</a>, <a class="el" href="theory__bitvector_8h_source.html#l00085">CVC3::BVTYPEPRED</a>, <a class="el" href="theory__bitvector_8h_source.html#l00067">CVC3::BVUDIV</a>, <a class="el" href="theory__bitvector_8h_source.html#l00063">CVC3::BVUMINUS</a>, <a class="el" href="theory__bitvector_8h_source.html#l00069">CVC3::BVUREM</a>, <a class="el" href="theory__bitvector_8h_source.html#l00057">CVC3::BVXNOR</a>, <a class="el" href="theory__bitvector_8h_source.html#l00056">CVC3::BVXOR</a>, <a class="el" href="theory__bitvector_8h_source.html#l00038">CVC3::CONCAT</a>, <a class="el" href="theory_8h_source.html#l00079">CVC3::Theory::d_theoryUsed</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="debug_8h_source.html#l00037">FatalAssert</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l05431">getBVMultParam()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l05423">getBVPlusParam()</a>, <a class="el" href="expr__op_8h_source.html#l00084">CVC3::Op::getExpr()</a>, <a class="el" href="expr_8h_source.html#l01183">CVC3::Expr::getOp()</a>, <a class="el" href="expr_8h_source.html#l01196">CVC3::Expr::getOpKind()</a>, <a class="el" href="theory__bitvector_8h_source.html#l00082">CVC3::INTTOBV</a>, <a class="el" href="expr_8h_source.html#l01014">CVC3::Expr::isApply()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l00059">pad()</a>, <a class="el" href="expr__stream_8cpp_source.html#l00301">CVC3::pop()</a>, <a class="el" href="expr_8cpp_source.html#l00400">CVC3::Expr::printAST()</a>, <a class="el" href="expr__stream_8cpp_source.html#l00298">CVC3::push()</a>, and <a class="el" href="expr__stream_8cpp_source.html#l00326">CVC3::space()</a>.</p>

<p>Referenced by <a class="el" href="theory__bitvector_8cpp_source.html#l03662">print()</a>.</p>

</div>
</div>
<a class="anchor" id="ae3141bc37e39e3379fa71d966c887426"></a><!-- doxytag: member="CVC3::TheoryBitvector::createProofRules" ref="ae3141bc37e39e3379fa71d966c887426" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1BitvectorProofRules.html">BitvectorProofRules</a> * TheoryBitvector::createProofRules </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l00045">45</a> of file <a class="el" href="bitvector__theorem__producer_8cpp_source.html">bitvector_theorem_producer.cpp</a>.</p>

<p>Referenced by <a class="el" href="theory__bitvector_8cpp_source.html#l01708">TheoryBitvector()</a>.</p>

</div>
</div>
<a class="anchor" id="a3798dbe1339c1c376b35172fbbc6434b"></a><!-- doxytag: member="CVC3::TheoryBitvector::addSharedTerm" ref="a3798dbe1339c1c376b35172fbbc6434b" args="(const Expr &amp;e)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void TheoryBitvector::addSharedTerm </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>e</em></td><td>)</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Notify theory of a new shared term. </p>
<p>When a term e associated with theory i occurs as a child of an expression associated with theory j, the framework calls i-&gt;addSharedTerm(e) and j-&gt;addSharedTerm(e) </p>

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

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l01850">1850</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>Referenced by <a class="el" href="theory__bitvector_8cpp_source.html#l01926">assertTypePred()</a>, and <a class="el" href="theory__bitvector_8cpp_source.html#l02695">update()</a>.</p>

</div>
</div>
<a class="anchor" id="a70eefd32e475f3c04e195530145ae87f"></a><!-- doxytag: member="CVC3::TheoryBitvector::assertFact" ref="a70eefd32e475f3c04e195530145ae87f" args="(const Theorem &amp;e)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void TheoryBitvector::assertFact </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>e</em></td><td>)</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Assert a new fact to the decision procedure. </p>
<p>Each fact that makes it into the core framework is assigned to exactly one theory: the theory associated with that fact. assertFact is called to inform the theory that a new fact has been assigned to the theory. </p>

<p>Implements <a class="el" href="group__Theory__API.html#ga58de37714dd855f4d50de15108b8dbc7">CVC3::Theory</a>.</p>

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l01861">1861</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="theory__bitvector_8cpp_source.html#l01926">assertTypePred()</a>, <a class="el" href="theory__bitvector_8h_source.html#l00040">CVC3::BOOLEXTRACT</a>, <a class="el" href="theory__bitvector_8h_source.html#l00085">CVC3::BVTYPEPRED</a>, <a class="el" href="theory__bitvector_8h_source.html#l00149">d_bb_index</a>, <a class="el" href="theory__bitvector_8h_source.html#l00147">d_bitblast</a>, <a class="el" href="theory__bitvector_8h_source.html#l00141">d_eq</a>, <a class="el" href="theory__bitvector_8h_source.html#l00143">d_eqPending</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="kinds_8h_source.html#l00061">EQ</a>, <a class="el" href="theory_8h_source.html#l00096">CVC3::Theory::getCommonRules()</a>, <a class="el" href="theorem_8cpp_source.html#l00230">CVC3::Theorem::getExpr()</a>, <a class="el" href="expr_8h_source.html#l01196">CVC3::Expr::getOpKind()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l05348">getTypePredExpr()</a>, <a class="el" href="theory_8h_source.html#l00556">CVC3::Theory::isLeaf()</a>, <a class="el" href="theory_8cpp_source.html#l00546">CVC3::Theory::isLeafIn()</a>, <a class="el" href="kinds_8h_source.html#l00066">NOT</a>, <a class="el" href="cdlist_8h_source.html#l00066">CVC3::CDList&lt; T &gt;::push_back()</a>, <a class="el" href="theory_8cpp_source.html#l00103">CVC3::Theory::setInconsistent()</a>, <a class="el" href="theory_8h_source.html#l00093">CVC3::Theory::theoryCore()</a>, <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>, <a class="el" href="kinds_8h_source.html#l00099">TRACE</a>, and <a class="el" href="theory_8cpp_source.html#l00918">CVC3::Theory::typePred()</a>.</p>

</div>
</div>
<a class="anchor" id="ac59b9ef8d3c7f68eee6a06ea17e3d104"></a><!-- doxytag: member="CVC3::TheoryBitvector::assertTypePred" ref="ac59b9ef8d3c7f68eee6a06ea17e3d104" args="(const Expr &amp;e, const Theorem &amp;pred)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void TheoryBitvector::assertTypePred </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>e</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>pred</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Receives all the type predicates for the types of the given theory. </p>
<p><a class="el" href="classCVC3_1_1Type.html" title="MS C++ specific settings.">Type</a> predicates may be expensive to enqueue eagerly, and DPs may choose to postpone them, or transform them to something more efficient. By default, the asserted type predicate is immediately enqueued as a new fact.</p>
<p>Note: Used only by bitvector theory.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">e</td><td>is the expression for which the type predicate is computed </td></tr>
    <tr><td class="paramname">pred</td><td>is the predicate theorem P(e) </td></tr>
  </table>
  </dd>
</dl>

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

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l01926">1926</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="theory__bitvector_8cpp_source.html#l01850">addSharedTerm()</a>, <a class="el" href="lang_8h_source.html#l00032">CVC3::PRESENTATION_LANG</a>, <a class="el" href="theory_8cpp_source.html#l00252">CVC3::Theory::theoryOf()</a>, <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>, and <a class="el" href="kinds_8h_source.html#l00099">TRACE</a>.</p>

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

</div>
</div>
<a class="anchor" id="a31df7eb073302681dd7aeedc57251d09"></a><!-- doxytag: member="CVC3::TheoryBitvector::checkSat" ref="a31df7eb073302681dd7aeedc57251d09" args="(bool fullEffort)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void TheoryBitvector::checkSat </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>fullEffort</em></td><td>)</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Check for satisfiability in the theory. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">fullEffort</td><td>when it is false, checkSat can do as much or as little work as it likes, though simple inferences and checks for consistency should be done to increase efficiency. If fullEffort is true, checkSat must check whether the set of facts given by assertFact together with the arrangement of shared terms (provided by addSharedTerm) induced by the global find database equivalence relation are satisfiable. If satisfiable, checkSat does nothing.</td></tr>
  </table>
  </dd>
</dl>
<p>If satisfiability can be acheived by merging some of the shared terms, a new fact must be enqueued using enqueueFact (this fact need not be a literal). If there is no way to make things satisfiable, setInconsistent must be called. </p>

<p>Implements <a class="el" href="group__Theory__API.html#gae0bb3d506dad8d69da546777cae27228">CVC3::Theory</a>.</p>

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l02574">2574</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="theory__bitvector_8h_source.html#l00416">additionalRewriteConstraints</a>, <a class="el" href="kinds_8h_source.html#l00067">AND</a>, <a class="el" href="cdlist_8h_source.html#l00088">CVC3::CDList&lt; T &gt;::begin()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l02572">bvdump</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l00045">BVSize()</a>, <a class="el" href="theory__bitvector_8h_source.html#l00149">d_bb_index</a>, <a class="el" href="theory__bitvector_8h_source.html#l00147">d_bitblast</a>, <a class="el" href="theory__bitvector_8h_source.html#l00141">d_eq</a>, <a class="el" href="theory__bitvector_8h_source.html#l00145">d_eq_index</a>, <a class="el" href="theory__bitvector_8h_source.html#l00143">d_eqPending</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="expr__stream_8cpp_source.html#l00353">std::endl()</a>, <a class="el" href="theory_8cpp_source.html#l00128">CVC3::Theory::enqueueFact()</a>, <a class="el" href="kinds_8h_source.html#l00061">EQ</a>, <a class="el" href="kinds_8h_source.html#l00036">FALSE_EXPR</a>, <a class="el" href="debug_8h_source.html#l00037">FatalAssert</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l02409">generalBitBlast()</a>, <a class="el" href="theory_8h_source.html#l00096">CVC3::Theory::getCommonRules()</a>, <a class="el" href="theorem_8cpp_source.html#l00230">CVC3::Theorem::getExpr()</a>, <a class="el" href="expr_8h_source.html#l01168">CVC3::Expr::getKind()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l05214">newBVConstExpr()</a>, <a class="el" href="cdlist_8h_source.html#l00066">CVC3::CDList&lt; T &gt;::push_back()</a>, <a class="el" href="theory_8cpp_source.html#l00119">CVC3::Theory::simplify()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l02366">simplifyPendingEq()</a>, <a class="el" href="cdlist_8h_source.html#l00064">CVC3::CDList&lt; T &gt;::size()</a>, <a class="el" href="kinds_8h_source.html#l00035">TRUE_EXPR</a>, and <a class="el" href="theory_8h_source.html#l00582">CVC3::Theory::trueExpr()</a>.</p>

</div>
</div>
<a class="anchor" id="a82d63a41524830f12abe05b948eab4ca"></a><!-- doxytag: member="CVC3::TheoryBitvector::rewrite" ref="a82d63a41524830f12abe05b948eab4ca" args="(const Expr &amp;e)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> TheoryBitvector::rewrite </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>e</em></td><td>)</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Theory-specific rewrite rules. </p>
<p>By default, rewrite just returns a reflexive theorem stating that the input expression is equivalent to itself. However, rewrite is allowed to return any theorem which describes how the input expression is equivalent to some new expression. rewrite should be used to perform simplifications, normalization, and any other preprocessing on theory-specific expressions that needs to be done. </p>

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

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l02670">2670</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="theory__bitvector_8cpp_source.html#l00887">rewriteBV()</a>.</p>

<p>Referenced by <a class="el" href="theory__bitvector_8cpp_source.html#l02409">generalBitBlast()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l02366">simplifyPendingEq()</a>, and <a class="el" href="theory__bitvector_8cpp_source.html#l02791">updateSubterms()</a>.</p>

</div>
</div>
<a class="anchor" id="a55e7711ed3e5be41dd7aca955a9ecc7a"></a><!-- doxytag: member="CVC3::TheoryBitvector::rewriteAtomic" ref="a55e7711ed3e5be41dd7aca955a9ecc7a" args="(const Expr &amp;e)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> TheoryBitvector::rewriteAtomic </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>e</em></td><td>)</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Theory-specific rewrites for atomic formulas. </p>
<p>The intended use is to convert complex atomic formulas into an equivalent Boolean combination of simpler formulas. Such conversion may be harmful for algebraic rewrites, and is not always desirable to have in <a class="el" href="classCVC3_1_1TheoryBitvector.html#a82d63a41524830f12abe05b948eab4ca" title="Theory-specific rewrite rules.">rewrite()</a> method.</p>
<p>Note: Used only by bitvector theory and rewriteLiteral in core.</p>
<p>However, if <a class="el" href="classCVC3_1_1TheoryBitvector.html#a82d63a41524830f12abe05b948eab4ca" title="Theory-specific rewrite rules.">rewrite()</a> alone cannot solve the problem, and the <a class="el" href="namespaceSAT.html">SAT</a> solver needs to be envoked, these additional rewrites may ease the job for the <a class="el" href="namespaceSAT.html">SAT</a> solver. </p>

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

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l02677">2677</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="theory_8h_source.html#l00673">CVC3::Theory::reflexivityRule()</a>.</p>

</div>
</div>
<a class="anchor" id="a1e7b1123d64a52db1e306942ff4576a3"></a><!-- doxytag: member="CVC3::TheoryBitvector::setup" ref="a1e7b1123d64a52db1e306942ff4576a3" args="(const Expr &amp;e)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void TheoryBitvector::setup </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>e</em></td><td>)</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

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

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

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l02683">2683</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="expr_8cpp_source.html#l00517">CVC3::Expr::addToNotify()</a>, <a class="el" href="expr_8h_source.html#l01201">CVC3::Expr::arity()</a>, and <a class="el" href="expr_8h_source.html#l01021">CVC3::Expr::isTerm()</a>.</p>

</div>
</div>
<a class="anchor" id="a57edac7a7e4ffd04e778f3858a000457"></a><!-- doxytag: member="CVC3::TheoryBitvector::update" ref="a57edac7a7e4ffd04e778f3858a000457" args="(const Theorem &amp;e, const Expr &amp;d)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void TheoryBitvector::update </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>e</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>d</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

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

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

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l02695">2695</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="theory__bitvector_8cpp_source.html#l01850">addSharedTerm()</a>, <a class="el" href="theory_8cpp_source.html#l00142">CVC3::Theory::assertEqualities()</a>, <a class="el" href="theory__bitvector_8h_source.html#l00034">CVC3::BVCONST</a>, <a class="el" href="theory__bitvector_8h_source.html#l00151">d_sharedSubterms</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="cdmap_8h_source.html#l00258">CVC3::CDMap&lt; Key, Data, HashFcn &gt;::end()</a>, <a class="el" href="theory_8cpp_source.html#l00128">CVC3::Theory::enqueueFact()</a>, <a class="el" href="theory_8cpp_source.html#l00310">CVC3::Theory::find()</a>, <a class="el" href="cdmap_8h_source.html#l00303">CVC3::CDMap&lt; Key, Data, HashFcn &gt;::find()</a>, <a class="el" href="theorem_8cpp_source.html#l00230">CVC3::Theorem::getExpr()</a>, <a class="el" href="theorem_8cpp_source.html#l00240">CVC3::Theorem::getLHS()</a>, <a class="el" href="expr_8h_source.html#l01196">CVC3::Expr::getOpKind()</a>, <a class="el" href="theorem_8cpp_source.html#l00246">CVC3::Theorem::getRHS()</a>, <a class="el" href="expr_8h_source.html#l01232">CVC3::Expr::hasFind()</a>, <a class="el" href="theory_8cpp_source.html#l00097">CVC3::Theory::inconsistent()</a>, <a class="el" href="expr_8cpp_source.html#l00550">CVC3::Expr::isAtomic()</a>, <a class="el" href="expr_8h_source.html#l01223">CVC3::Expr::isNull()</a>, <a class="el" href="theory_8cpp_source.html#l00935">CVC3::Theory::renameExpr()</a>, <a class="el" href="theory_8cpp_source.html#l00119">CVC3::Theory::simplify()</a>, <a class="el" href="theory_8h_source.html#l00677">CVC3::Theory::symmetryRule()</a>, <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>, and <a class="el" href="theory_8h_source.html#l00681">CVC3::Theory::transitivityRule()</a>.</p>

</div>
</div>
<a class="anchor" id="a2a6ec855d488ee1d662ac0d1268d2392"></a><!-- doxytag: member="CVC3::TheoryBitvector::solve" ref="a2a6ec855d488ee1d662ac0d1268d2392" args="(const Theorem &amp;e)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> TheoryBitvector::solve </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>e</em></td><td>)</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

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

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

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l02818">2818</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="classCVC3_1_1CommonProofRules.html#a3f3592ac74d0aa0caa3b9224ea7e61f4">CVC3::CommonProofRules::andElim()</a>, <a class="el" href="theory__bitvector_8h_source.html#l00034">CVC3::BVCONST</a>, <a class="el" href="classCVC3_1_1BitvectorProofRules.html#a04f65b94c6a9ca2b84a6063aac0d082f">CVC3::BitvectorProofRules::canonBVEQ()</a>, <a class="el" href="theory__bitvector_8h_source.html#l00101">d_rules</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="theory_8cpp_source.html#l00128">CVC3::Theory::enqueueFact()</a>, <a class="el" href="theory__bitvector_8h_source.html#l00039">CVC3::EXTRACT</a>, <a class="el" href="theory_8h_source.html#l00096">CVC3::Theory::getCommonRules()</a>, <a class="el" href="theorem_8cpp_source.html#l00230">CVC3::Theorem::getExpr()</a>, <a class="el" href="theorem_8cpp_source.html#l00240">CVC3::Theorem::getLHS()</a>, <a class="el" href="debug_8h_source.html#l00406">IF_DEBUG</a>, <a class="el" href="theory_8h_source.html#l00714">CVC3::Theory::iffMP()</a>, <a class="el" href="theory_8h_source.html#l00556">CVC3::Theory::isLeaf()</a>, <a class="el" href="theory_8cpp_source.html#l00546">CVC3::Theory::isLeafIn()</a>, <a class="el" href="theorem_8cpp_source.html#l00224">CVC3::Theorem::isRewrite()</a>, <a class="el" href="expr_8h_source.html#l01021">CVC3::Expr::isTerm()</a>, <a class="el" href="classCVC3_1_1BitvectorProofRules.html#ac018d05ae792d761195fbcc9731017d0">CVC3::BitvectorProofRules::processExtract()</a>, <a class="el" href="classCVC3_1_1CommonProofRules.html#a015539886185195ba5d98c60cd7e8f66">CVC3::CommonProofRules::skolemize()</a>, <a class="el" href="classCVC3_1_1BitvectorProofRules.html#a4e491d1c488cb38d6e22ec21ac894f46">CVC3::BitvectorProofRules::solveExtractOverlap()</a>, <a class="el" href="classCVC3_1_1BitvectorProofRules.html#a3b3ae2372cab5026feec302b6bdaa7d6">CVC3::BitvectorProofRules::solveExtractOverlapApplies()</a>, and <a class="el" href="theory_8h_source.html#l00677">CVC3::Theory::symmetryRule()</a>.</p>

</div>
</div>
<a class="anchor" id="a978cfa4add608e7f78c4e8b1d92e093f"></a><!-- doxytag: member="CVC3::TheoryBitvector::checkType" ref="a978cfa4add608e7f78c4e8b1d92e093f" args="(const Expr &amp;e)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void TheoryBitvector::checkType </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>e</em></td><td>)</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Check that e is a valid <a class="el" href="classCVC3_1_1Type.html" title="MS C++ specific settings.">Type</a> expr. </p>

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

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l02932">2932</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="theory__bitvector_8h_source.html#l00036">CVC3::BITVECTOR</a>, <a class="el" href="debug_8h_source.html#l00037">FatalAssert</a>, <a class="el" href="theory_8h_source.html#l00090">CVC3::Theory::getEM()</a>, and <a class="el" href="expr_8h_source.html#l01196">CVC3::Expr::getOpKind()</a>.</p>

</div>
</div>
<a class="anchor" id="acc1ac9f10d2c91f9831057937fcba829"></a><!-- doxytag: member="CVC3::TheoryBitvector::finiteTypeInfo" ref="acc1ac9f10d2c91f9831057937fcba829" args="(Expr &amp;e, Unsigned &amp;n, bool enumerate, bool computeSize)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="namespaceCVC3.html#af969e724f8b7016909f5804e8cea3e54">Cardinality</a> TheoryBitvector::finiteTypeInfo </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>e</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1Unsigned.html">Unsigned</a> &amp;&#160;</td>
          <td class="paramname"><em>n</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>enumerate</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>computeSize</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Compute information related to finiteness of types. </p>
<p>Used by the TypeComputer defined in <a class="el" href="classCVC3_1_1TheoryCore.html" title="This theory handles the built-in logical connectives plus equality. It also handles the registration ...">TheoryCore</a> (theories should not call this funtion directly -- they should use the methods in <a class="el" href="classCVC3_1_1Type.html" title="MS C++ specific settings.">Type</a> instead). Each theory should implement this if it contains any types that could be non-infinite.</p>
<p>1. Returns Cardinality of the type (finite, infinite, or unknown) 2. If cardinality = finite and enumerate is true, sets e to the nth element of the type if it can sets e to NULL if n is out of bounds or if unable to compute nth element 3. If cardinality = finite and computeSize is true, sets n to the size of the type if it can sets n to 0 otherwise </p>

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

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l02945">2945</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="theory__bitvector_8h_source.html#l00036">CVC3::BITVECTOR</a>, <a class="el" href="expr_8h_source.html#l00081">CVC3::CARD_FINITE</a>, <a class="el" href="debug_8h_source.html#l00037">FatalAssert</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l05331">getBitvectorTypeParam()</a>, <a class="el" href="expr_8h_source.html#l01168">CVC3::Expr::getKind()</a>, <a class="el" href="classCVC3_1_1Rational.html#ae6d4bedf76175b8f91283f610b3eb7d0">CVC3::Rational::getUnsigned()</a>, <a class="el" href="classCVC3_1_1Rational.html#aae36754c1b698b9eb96ecc3a73ffdd02">CVC3::Rational::getUnsignedMP()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l05214">newBVConstExpr()</a>, and <a class="el" href="rational_8h_source.html#l00159">CVC3::pow()</a>.</p>

</div>
</div>
<a class="anchor" id="aad271001191bdd48d1b77d92d9558136"></a><!-- doxytag: member="CVC3::TheoryBitvector::computeType" ref="aad271001191bdd48d1b77d92d9558136" args="(const Expr &amp;e)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void TheoryBitvector::computeType </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>e</em></td><td>)</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Compute and store the type of e. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">e</td><td>is the expression whose type is computed.</td></tr>
  </table>
  </dd>
</dl>
<p>This function computes the type of the top-level operator of e, and recurses into children using getType(), if necessary. </p>

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

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l02969">2969</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="type_8h_source.html#l00074">CVC3::Type::anyType()</a>, <a class="el" href="expr_8h_source.html#l01201">CVC3::Expr::arity()</a>, <a class="el" href="expr_8h_source.html#l01211">CVC3::Expr::begin()</a>, <a class="el" href="theory__bitvector_8h_source.html#l00036">CVC3::BITVECTOR</a>, <a class="el" href="theory__bitvector_8h_source.html#l00040">CVC3::BOOLEXTRACT</a>, <a class="el" href="theory_8h_source.html#l00576">CVC3::Theory::boolType()</a>, <a class="el" href="theory__bitvector_8h_source.html#l00054">CVC3::BVAND</a>, <a class="el" href="theory__bitvector_8h_source.html#l00047">CVC3::BVASHR</a>, <a class="el" href="theory__bitvector_8h_source.html#l00061">CVC3::BVCOMP</a>, <a class="el" href="theory__bitvector_8h_source.html#l00034">CVC3::BVCONST</a>, <a class="el" href="theory__bitvector_8h_source.html#l00076">CVC3::BVGE</a>, <a class="el" href="theory__bitvector_8h_source.html#l00075">CVC3::BVGT</a>, <a class="el" href="theory__bitvector_8h_source.html#l00074">CVC3::BVLE</a>, <a class="el" href="theory__bitvector_8h_source.html#l00046">CVC3::BVLSHR</a>, <a class="el" href="theory__bitvector_8h_source.html#l00073">CVC3::BVLT</a>, <a class="el" href="theory__bitvector_8h_source.html#l00066">CVC3::BVMULT</a>, <a class="el" href="theory__bitvector_8h_source.html#l00059">CVC3::BVNAND</a>, <a class="el" href="theory__bitvector_8h_source.html#l00058">CVC3::BVNEG</a>, <a class="el" href="theory__bitvector_8h_source.html#l00060">CVC3::BVNOR</a>, <a class="el" href="theory__bitvector_8h_source.html#l00055">CVC3::BVOR</a>, <a class="el" href="theory__bitvector_8h_source.html#l00064">CVC3::BVPLUS</a>, <a class="el" href="theory__bitvector_8h_source.html#l00049">CVC3::BVREPEAT</a>, <a class="el" href="theory__bitvector_8h_source.html#l00051">CVC3::BVROTL</a>, <a class="el" href="theory__bitvector_8h_source.html#l00052">CVC3::BVROTR</a>, <a class="el" href="theory__bitvector_8h_source.html#l00068">CVC3::BVSDIV</a>, <a class="el" href="theory__bitvector_8h_source.html#l00080">CVC3::BVSGE</a>, <a class="el" href="theory__bitvector_8h_source.html#l00079">CVC3::BVSGT</a>, <a class="el" href="theory__bitvector_8h_source.html#l00045">CVC3::BVSHL</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l00045">BVSize()</a>, <a class="el" href="theory__bitvector_8h_source.html#l00078">CVC3::BVSLE</a>, <a class="el" href="theory__bitvector_8h_source.html#l00077">CVC3::BVSLT</a>, <a class="el" href="theory__bitvector_8h_source.html#l00071">CVC3::BVSMOD</a>, <a class="el" href="theory__bitvector_8h_source.html#l00070">CVC3::BVSREM</a>, <a class="el" href="theory__bitvector_8h_source.html#l00065">CVC3::BVSUB</a>, <a class="el" href="theory__bitvector_8h_source.html#l00085">CVC3::BVTYPEPRED</a>, <a class="el" href="theory__bitvector_8h_source.html#l00067">CVC3::BVUDIV</a>, <a class="el" href="theory__bitvector_8h_source.html#l00063">CVC3::BVUMINUS</a>, <a class="el" href="theory__bitvector_8h_source.html#l00069">CVC3::BVUREM</a>, <a class="el" href="theory__bitvector_8h_source.html#l00057">CVC3::BVXNOR</a>, <a class="el" href="theory__bitvector_8h_source.html#l00056">CVC3::BVXOR</a>, <a class="el" href="theory__bitvector_8h_source.html#l00050">CVC3::BVZEROEXTEND</a>, <a class="el" href="theory__bitvector_8h_source.html#l00038">CVC3::CONCAT</a>, <a class="el" href="theory__bitvector_8h_source.html#l00043">CVC3::CONST_WIDTH_LEFTSHIFT</a>, <a class="el" href="expr_8h_source.html#l01217">CVC3::Expr::end()</a>, <a class="el" href="theory__bitvector_8h_source.html#l00039">CVC3::EXTRACT</a>, <a class="el" href="debug_8h_source.html#l00037">FatalAssert</a>, <a class="el" href="theory_8cpp_source.html#l00383">CVC3::Theory::getBaseType()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l05356">getBoolExtractIndex()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l05439">getBVConstSize()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l05373">getBVIndex()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l05431">getBVMultParam()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l05423">getBVPlusParam()</a>, <a class="el" href="theory_8h_source.html#l00090">CVC3::Theory::getEM()</a>, <a class="el" href="type_8h_source.html#l00052">CVC3::Type::getExpr()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l05414">getExtractHi()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l05405">getExtractLow()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l05385">getFixedLeftShiftParam()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l05396">getFixedRightShiftParam()</a>, <a class="el" href="expr_8h_source.html#l01168">CVC3::Expr::getKind()</a>, <a class="el" href="expr_8h_source.html#l01196">CVC3::Expr::getOpKind()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l05365">getSXIndex()</a>, <a class="el" href="expr_8h_source.html#l01259">CVC3::Expr::getType()</a>, <a class="el" href="cvc__util_8h_source.html#l00046">CVC3::int2string()</a>, <a class="el" href="expr_8h_source.html#l01014">CVC3::Expr::isApply()</a>, <a class="el" href="theory__bitvector_8h_source.html#l00042">CVC3::LEFTSHIFT</a>, <a class="el" href="theory__bitvector_8h_source.html#l00307">newBitvectorType()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l04638">newBitvectorTypeExpr()</a>, <a class="el" href="theory__bitvector_8h_source.html#l00044">CVC3::RIGHTSHIFT</a>, <a class="el" href="expr_8h_source.html#l01427">CVC3::Expr::setType()</a>, <a class="el" href="theory__bitvector_8h_source.html#l00048">CVC3::SX</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="a38b5fc9c8e39309a86634cc55ee116a0"></a><!-- doxytag: member="CVC3::TheoryBitvector::computeModelTerm" ref="a38b5fc9c8e39309a86634cc55ee116a0" args="(const Expr &amp;e, std::vector&lt; Expr &gt; &amp;v)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void TheoryBitvector::computeModelTerm </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>e</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::vector&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>v</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

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

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

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l03296">3296</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="expr_8h_source.html#l01211">CVC3::Expr::begin()</a>, <a class="el" href="theory__bitvector_8h_source.html#l00036">CVC3::BITVECTOR</a>, <a class="el" href="theory__bitvector_8h_source.html#l00054">CVC3::BVAND</a>, <a class="el" href="theory__bitvector_8h_source.html#l00034">CVC3::BVCONST</a>, <a class="el" href="theory__bitvector_8h_source.html#l00076">CVC3::BVGE</a>, <a class="el" href="theory__bitvector_8h_source.html#l00075">CVC3::BVGT</a>, <a class="el" href="theory__bitvector_8h_source.html#l00074">CVC3::BVLE</a>, <a class="el" href="theory__bitvector_8h_source.html#l00073">CVC3::BVLT</a>, <a class="el" href="theory__bitvector_8h_source.html#l00066">CVC3::BVMULT</a>, <a class="el" href="theory__bitvector_8h_source.html#l00059">CVC3::BVNAND</a>, <a class="el" href="theory__bitvector_8h_source.html#l00058">CVC3::BVNEG</a>, <a class="el" href="theory__bitvector_8h_source.html#l00060">CVC3::BVNOR</a>, <a class="el" href="theory__bitvector_8h_source.html#l00055">CVC3::BVOR</a>, <a class="el" href="theory__bitvector_8h_source.html#l00064">CVC3::BVPLUS</a>, <a class="el" href="theory__bitvector_8h_source.html#l00080">CVC3::BVSGE</a>, <a class="el" href="theory__bitvector_8h_source.html#l00079">CVC3::BVSGT</a>, <a class="el" href="theory__bitvector_8h_source.html#l00078">CVC3::BVSLE</a>, <a class="el" href="theory__bitvector_8h_source.html#l00077">CVC3::BVSLT</a>, <a class="el" href="theory__bitvector_8h_source.html#l00065">CVC3::BVSUB</a>, <a class="el" href="theory__bitvector_8h_source.html#l00063">CVC3::BVUMINUS</a>, <a class="el" href="theory__bitvector_8h_source.html#l00057">CVC3::BVXNOR</a>, <a class="el" href="theory__bitvector_8h_source.html#l00056">CVC3::BVXOR</a>, <a class="el" href="theory__bitvector_8h_source.html#l00038">CVC3::CONCAT</a>, <a class="el" href="theory__bitvector_8h_source.html#l00043">CVC3::CONST_WIDTH_LEFTSHIFT</a>, <a class="el" href="expr_8h_source.html#l01217">CVC3::Expr::end()</a>, <a class="el" href="theory__bitvector_8h_source.html#l00039">CVC3::EXTRACT</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l05331">getBitvectorTypeParam()</a>, <a class="el" href="expr_8h_source.html#l01196">CVC3::Expr::getOpKind()</a>, <a class="el" href="expr_8h_source.html#l01259">CVC3::Expr::getType()</a>, <a class="el" href="theory__bitvector_8h_source.html#l00042">CVC3::LEFTSHIFT</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l04940">newBoolExtractExpr()</a>, and <a class="el" href="theory__bitvector_8h_source.html#l00044">CVC3::RIGHTSHIFT</a>.</p>

</div>
</div>
<a class="anchor" id="a00182685c0c766dfdc560e3c5f00001b"></a><!-- doxytag: member="CVC3::TheoryBitvector::computeModel" ref="a00182685c0c766dfdc560e3c5f00001b" args="(const Expr &amp;e, std::vector&lt; Expr &gt; &amp;vars)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void TheoryBitvector::computeModel </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>e</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::vector&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>vars</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

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

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

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l03345">3345</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="theory_8cpp_source.html#l00162">CVC3::Theory::assignValue()</a>, <a class="el" href="theory__bitvector_8h_source.html#l00036">CVC3::BITVECTOR</a>, <a class="el" href="theory__bitvector_8h_source.html#l00054">CVC3::BVAND</a>, <a class="el" href="theory__bitvector_8h_source.html#l00034">CVC3::BVCONST</a>, <a class="el" href="theory__bitvector_8h_source.html#l00076">CVC3::BVGE</a>, <a class="el" href="theory__bitvector_8h_source.html#l00075">CVC3::BVGT</a>, <a class="el" href="theory__bitvector_8h_source.html#l00074">CVC3::BVLE</a>, <a class="el" href="theory__bitvector_8h_source.html#l00073">CVC3::BVLT</a>, <a class="el" href="theory__bitvector_8h_source.html#l00066">CVC3::BVMULT</a>, <a class="el" href="theory__bitvector_8h_source.html#l00059">CVC3::BVNAND</a>, <a class="el" href="theory__bitvector_8h_source.html#l00058">CVC3::BVNEG</a>, <a class="el" href="theory__bitvector_8h_source.html#l00060">CVC3::BVNOR</a>, <a class="el" href="theory__bitvector_8h_source.html#l00055">CVC3::BVOR</a>, <a class="el" href="theory__bitvector_8h_source.html#l00064">CVC3::BVPLUS</a>, <a class="el" href="theory__bitvector_8h_source.html#l00080">CVC3::BVSGE</a>, <a class="el" href="theory__bitvector_8h_source.html#l00079">CVC3::BVSGT</a>, <a class="el" href="theory__bitvector_8h_source.html#l00078">CVC3::BVSLE</a>, <a class="el" href="theory__bitvector_8h_source.html#l00077">CVC3::BVSLT</a>, <a class="el" href="theory__bitvector_8h_source.html#l00065">CVC3::BVSUB</a>, <a class="el" href="theory__bitvector_8h_source.html#l00063">CVC3::BVUMINUS</a>, <a class="el" href="theory__bitvector_8h_source.html#l00057">CVC3::BVXNOR</a>, <a class="el" href="theory__bitvector_8h_source.html#l00056">CVC3::BVXOR</a>, <a class="el" href="theory__bitvector_8h_source.html#l00038">CVC3::CONCAT</a>, <a class="el" href="theory__bitvector_8h_source.html#l00043">CVC3::CONST_WIDTH_LEFTSHIFT</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="theory__bitvector_8h_source.html#l00039">CVC3::EXTRACT</a>, <a class="el" href="debug_8h_source.html#l00037">FatalAssert</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l05331">getBitvectorTypeParam()</a>, <a class="el" href="theorem_8cpp_source.html#l00230">CVC3::Theorem::getExpr()</a>, <a class="el" href="theory_8cpp_source.html#l00541">CVC3::Theory::getModelValue()</a>, <a class="el" href="expr_8h_source.html#l01196">CVC3::Expr::getOpKind()</a>, <a class="el" href="theorem_8cpp_source.html#l00246">CVC3::Theorem::getRHS()</a>, <a class="el" href="expr_8h_source.html#l01259">CVC3::Expr::getType()</a>, <a class="el" href="expr_8h_source.html#l00357">CVC3::Expr::isBoolConst()</a>, <a class="el" href="expr_8h_source.html#l00356">CVC3::Expr::isTrue()</a>, <a class="el" href="theory__bitvector_8h_source.html#l00042">CVC3::LEFTSHIFT</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l04940">newBoolExtractExpr()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l05214">newBVConstExpr()</a>, <a class="el" href="theory__bitvector_8h_source.html#l00044">CVC3::RIGHTSHIFT</a>, <a class="el" href="theory_8cpp_source.html#l00119">CVC3::Theory::simplify()</a>, <a class="el" href="theory__bitvector_8h_source.html#l00048">CVC3::SX</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

</div>
</div>
<a class="anchor" id="a60d5dc6f4f252bbf62e9333134863da0"></a><!-- doxytag: member="CVC3::TheoryBitvector::computeTypePred" ref="a60d5dc6f4f252bbf62e9333134863da0" args="(const Type &amp;t, const Expr &amp;e)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Expr.html">Expr</a> TheoryBitvector::computeTypePred </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Type.html">Type</a> &amp;&#160;</td>
          <td class="paramname"><em>t</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>e</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p><a class="el" href="classCVC3_1_1Theory.html" title="Base class for theories.">Theory</a> specific computation of the subtyping predicate for type t applied to the expression e. </p>
<p>By default returns true. Each theory needs to compute subtype predicates for the types associated with it. So, for example, the theory of records will take a record type [# f1: T1, f2: T2 #] and an expression e and will return the subtyping predicate for e, namely: computeTypePred(T1, e.f1) AND computeTypePred(T2, e.f2) </p>

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

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l03411">3411</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="theory__bitvector_8h_source.html#l00036">CVC3::BITVECTOR</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="expr_8h_source.html#l01156">CVC3::Expr::getEM()</a>, <a class="el" href="type_8h_source.html#l00052">CVC3::Type::getExpr()</a>, <a class="el" href="expr_8h_source.html#l01196">CVC3::Expr::getOpKind()</a>, <a class="el" href="type_8h_source.html#l00080">CVC3::Type::toString()</a>, and <a class="el" href="expr__manager_8h_source.html#l00280">CVC3::ExprManager::trueExpr()</a>.</p>

</div>
</div>
<a class="anchor" id="a94d82875db6689ca7c986e24abf63a46"></a><!-- doxytag: member="CVC3::TheoryBitvector::computeTCC" ref="a94d82875db6689ca7c986e24abf63a46" args="(const Expr &amp;e)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Expr.html">Expr</a> TheoryBitvector::computeTCC </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>e</em></td><td>)</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Compute and cache the TCC of e. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">e</td><td>is an expression (term or formula). This function computes the TCC of e which is true iff the expression is defined.</td></tr>
  </table>
  </dd>
</dl>
<p>This function computes the TCC or predicate of the top-level operator of e, and recurses into children using <a class="el" href="classCVC3_1_1Theory.html#af38bdeb162a9ab9bd81ce40f598f608f" title="Compute the TCC of e, or the subtyping predicate, if e is a type.">getTCC()</a>, if necessary.</p>
<p>The default implementation is to compute TCCs recursively for all children, and return their conjunction. </p>

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

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l05570">5570</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="expr_8h_source.html#l00941">CVC3::Expr::andExpr()</a>, <a class="el" href="expr_8h_source.html#l00945">CVC3::andExpr()</a>, <a class="el" href="expr_8h_source.html#l01201">CVC3::Expr::arity()</a>, <a class="el" href="theory__bitvector_8h_source.html#l00068">CVC3::BVSDIV</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l00045">BVSize()</a>, <a class="el" href="theory__bitvector_8h_source.html#l00071">CVC3::BVSMOD</a>, <a class="el" href="theory__bitvector_8h_source.html#l00070">CVC3::BVSREM</a>, <a class="el" href="theory__bitvector_8h_source.html#l00067">CVC3::BVUDIV</a>, <a class="el" href="theory__bitvector_8h_source.html#l00069">CVC3::BVUREM</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="expr__map_8h_source.html#l00194">CVC3::ExprMap&lt; Data &gt;::find()</a>, <a class="el" href="theory_8h_source.html#l00096">CVC3::Theory::getCommonRules()</a>, <a class="el" href="expr_8h_source.html#l01168">CVC3::Expr::getKind()</a>, <a class="el" href="theorem_8cpp_source.html#l00246">CVC3::Theorem::getRHS()</a>, <a class="el" href="theory_8cpp_source.html#l00367">CVC3::Theory::getTCC()</a>, <a class="el" href="expr_8h_source.html#l01005">CVC3::Expr::isVar()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l05145">newBVZeroString()</a>, <a class="el" href="classCVC3_1_1CommonProofRules.html#afb2ae30738c04b088459281d259a6d3a">CVC3::CommonProofRules::rewriteAnd()</a>, <a class="el" href="theory__core_8h_source.html#l00357">CVC3::TheoryCore::tccCache()</a>, <a class="el" href="theory_8h_source.html#l00093">CVC3::Theory::theoryCore()</a>, <a class="el" href="theory_8cpp_source.html#l00252">CVC3::Theory::theoryOf()</a>, and <a class="el" href="theory_8h_source.html#l00582">CVC3::Theory::trueExpr()</a>.</p>

</div>
</div>
<a class="anchor" id="aaa3c5b6fc08db3e297e811f4c9c18a17"></a><!-- doxytag: member="CVC3::TheoryBitvector::print" ref="aaa3c5b6fc08db3e297e811f4c9c18a17" args="(ExprStream &amp;os, const Expr &amp;e)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1ExprStream.html">ExprStream</a> &amp; TheoryBitvector::print </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1ExprStream.html">ExprStream</a> &amp;&#160;</td>
          <td class="paramname"><em>os</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>e</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Theory-specific pretty-printing. </p>
<p>By default, print the top node in AST, and resume pretty-printing the children. The same call e.print(os) can be used in DP-specific printers to use AST printing for the given node. In fact, it is strongly recommended to add e.print(os) as the default for all the cases/kinds that are not handled by the particular pretty-printer. </p>

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

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

<p>References <a class="el" href="expr_8h_source.html#l01201">CVC3::Expr::arity()</a>, <a class="el" href="expr_8h_source.html#l01211">CVC3::Expr::begin()</a>, <a class="el" href="theory__bitvector_8h_source.html#l00036">CVC3::BITVECTOR</a>, <a class="el" href="theory__bitvector_8h_source.html#l00040">CVC3::BOOLEXTRACT</a>, <a class="el" href="theory__bitvector_8h_source.html#l00054">CVC3::BVAND</a>, <a class="el" href="theory__bitvector_8h_source.html#l00047">CVC3::BVASHR</a>, <a class="el" href="theory__bitvector_8h_source.html#l00061">CVC3::BVCOMP</a>, <a class="el" href="theory__bitvector_8h_source.html#l00034">CVC3::BVCONST</a>, <a class="el" href="theory__bitvector_8h_source.html#l00076">CVC3::BVGE</a>, <a class="el" href="theory__bitvector_8h_source.html#l00075">CVC3::BVGT</a>, <a class="el" href="theory__bitvector_8h_source.html#l00074">CVC3::BVLE</a>, <a class="el" href="theory__bitvector_8h_source.html#l00046">CVC3::BVLSHR</a>, <a class="el" href="theory__bitvector_8h_source.html#l00073">CVC3::BVLT</a>, <a class="el" href="theory__bitvector_8h_source.html#l00066">CVC3::BVMULT</a>, <a class="el" href="theory__bitvector_8h_source.html#l00059">CVC3::BVNAND</a>, <a class="el" href="theory__bitvector_8h_source.html#l00058">CVC3::BVNEG</a>, <a class="el" href="theory__bitvector_8h_source.html#l00060">CVC3::BVNOR</a>, <a class="el" href="theory__bitvector_8h_source.html#l00055">CVC3::BVOR</a>, <a class="el" href="theory__bitvector_8h_source.html#l00064">CVC3::BVPLUS</a>, <a class="el" href="theory__bitvector_8h_source.html#l00049">CVC3::BVREPEAT</a>, <a class="el" href="theory__bitvector_8h_source.html#l00051">CVC3::BVROTL</a>, <a class="el" href="theory__bitvector_8h_source.html#l00052">CVC3::BVROTR</a>, <a class="el" href="theory__bitvector_8h_source.html#l00068">CVC3::BVSDIV</a>, <a class="el" href="theory__bitvector_8h_source.html#l00080">CVC3::BVSGE</a>, <a class="el" href="theory__bitvector_8h_source.html#l00079">CVC3::BVSGT</a>, <a class="el" href="theory__bitvector_8h_source.html#l00045">CVC3::BVSHL</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l00045">BVSize()</a>, <a class="el" href="theory__bitvector_8h_source.html#l00078">CVC3::BVSLE</a>, <a class="el" href="theory__bitvector_8h_source.html#l00077">CVC3::BVSLT</a>, <a class="el" href="theory__bitvector_8h_source.html#l00071">CVC3::BVSMOD</a>, <a class="el" href="theory__bitvector_8h_source.html#l00070">CVC3::BVSREM</a>, <a class="el" href="theory__bitvector_8h_source.html#l00065">CVC3::BVSUB</a>, <a class="el" href="theory__bitvector_8h_source.html#l00083">CVC3::BVTOINT</a>, <a class="el" href="theory__bitvector_8h_source.html#l00085">CVC3::BVTYPEPRED</a>, <a class="el" href="theory__bitvector_8h_source.html#l00067">CVC3::BVUDIV</a>, <a class="el" href="theory__bitvector_8h_source.html#l00063">CVC3::BVUMINUS</a>, <a class="el" href="theory__bitvector_8h_source.html#l00069">CVC3::BVUREM</a>, <a class="el" href="theory__bitvector_8h_source.html#l00057">CVC3::BVXNOR</a>, <a class="el" href="theory__bitvector_8h_source.html#l00056">CVC3::BVXOR</a>, <a class="el" href="theory__bitvector_8h_source.html#l00050">CVC3::BVZEROEXTEND</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l05474">computeBVConst()</a>, <a class="el" href="theory__bitvector_8h_source.html#l00038">CVC3::CONCAT</a>, <a class="el" href="theory__bitvector_8h_source.html#l00043">CVC3::CONST_WIDTH_LEFTSHIFT</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="expr_8h_source.html#l01217">CVC3::Expr::end()</a>, <a class="el" href="theory__bitvector_8h_source.html#l00039">CVC3::EXTRACT</a>, <a class="el" href="debug_8h_source.html#l00037">FatalAssert</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l05331">getBitvectorTypeParam()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l05356">getBoolExtractIndex()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l05439">getBVConstSize()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l05448">getBVConstValue()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l05373">getBVIndex()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l05431">getBVMultParam()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l05423">getBVPlusParam()</a>, <a class="el" href="expr__op_8h_source.html#l00084">CVC3::Op::getExpr()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l05414">getExtractHi()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l05405">getExtractLow()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l05385">getFixedLeftShiftParam()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l05396">getFixedRightShiftParam()</a>, <a class="el" href="expr_8h_source.html#l01183">CVC3::Expr::getOp()</a>, <a class="el" href="expr_8h_source.html#l01196">CVC3::Expr::getOpKind()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l05365">getSXIndex()</a>, <a class="el" href="theory__bitvector_8h_source.html#l00082">CVC3::INTTOBV</a>, <a class="el" href="expr_8h_source.html#l01014">CVC3::Expr::isApply()</a>, <a class="el" href="classCVC3_1_1Rational.html#a1366320f4de558bb964c67f8aecedb36">CVC3::Rational::isInteger()</a>, <a class="el" href="expr__stream_8h_source.html#l00165">CVC3::ExprStream::lang()</a>, <a class="el" href="theory__bitvector_8h_source.html#l00042">CVC3::LEFTSHIFT</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l05214">newBVConstExpr()</a>, <a class="el" href="expr__stream_8cpp_source.html#l00301">CVC3::pop()</a>, <a class="el" href="lang_8h_source.html#l00032">CVC3::PRESENTATION_LANG</a>, <a class="el" href="expr_8cpp_source.html#l00400">CVC3::Expr::printAST()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l03429">printSmtLibShared()</a>, <a class="el" href="expr__stream_8cpp_source.html#l00298">CVC3::push()</a>, <a class="el" href="theory__bitvector_8h_source.html#l00044">CVC3::RIGHTSHIFT</a>, <a class="el" href="lang_8h_source.html#l00034">CVC3::SMTLIB_LANG</a>, <a class="el" href="lang_8h_source.html#l00052">CVC3::SMTLIB_V2_LANG</a>, <a class="el" href="expr__stream_8cpp_source.html#l00326">CVC3::space()</a>, and <a class="el" href="theory__bitvector_8h_source.html#l00048">CVC3::SX</a>.</p>

</div>
</div>
<a class="anchor" id="a8bf0677921ceebd416aa6208b56467eb"></a><!-- doxytag: member="CVC3::TheoryBitvector::parseExprOp" ref="a8bf0677921ceebd416aa6208b56467eb" args="(const Expr &amp;e)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Expr.html">Expr</a> TheoryBitvector::parseExprOp </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>e</em></td><td>)</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

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

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

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l04087">4087</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="expr_8h_source.html#l01201">CVC3::Expr::arity()</a>, <a class="el" href="expr_8h_source.html#l01211">CVC3::Expr::begin()</a>, <a class="el" href="theory__bitvector_8h_source.html#l00036">CVC3::BITVECTOR</a>, <a class="el" href="theory__bitvector_8h_source.html#l00040">CVC3::BOOLEXTRACT</a>, <a class="el" href="theory__bitvector_8h_source.html#l00054">CVC3::BVAND</a>, <a class="el" href="theory__bitvector_8h_source.html#l00047">CVC3::BVASHR</a>, <a class="el" href="theory__bitvector_8h_source.html#l00061">CVC3::BVCOMP</a>, <a class="el" href="theory__bitvector_8h_source.html#l00034">CVC3::BVCONST</a>, <a class="el" href="theory__bitvector_8h_source.html#l00076">CVC3::BVGE</a>, <a class="el" href="theory__bitvector_8h_source.html#l00075">CVC3::BVGT</a>, <a class="el" href="theory__bitvector_8h_source.html#l00074">CVC3::BVLE</a>, <a class="el" href="theory__bitvector_8h_source.html#l00046">CVC3::BVLSHR</a>, <a class="el" href="theory__bitvector_8h_source.html#l00073">CVC3::BVLT</a>, <a class="el" href="theory__bitvector_8h_source.html#l00066">CVC3::BVMULT</a>, <a class="el" href="theory__bitvector_8h_source.html#l00059">CVC3::BVNAND</a>, <a class="el" href="theory__bitvector_8h_source.html#l00058">CVC3::BVNEG</a>, <a class="el" href="theory__bitvector_8h_source.html#l00060">CVC3::BVNOR</a>, <a class="el" href="theory__bitvector_8h_source.html#l00055">CVC3::BVOR</a>, <a class="el" href="theory__bitvector_8h_source.html#l00064">CVC3::BVPLUS</a>, <a class="el" href="theory__bitvector_8h_source.html#l00049">CVC3::BVREPEAT</a>, <a class="el" href="theory__bitvector_8h_source.html#l00051">CVC3::BVROTL</a>, <a class="el" href="theory__bitvector_8h_source.html#l00052">CVC3::BVROTR</a>, <a class="el" href="theory__bitvector_8h_source.html#l00068">CVC3::BVSDIV</a>, <a class="el" href="theory__bitvector_8h_source.html#l00080">CVC3::BVSGE</a>, <a class="el" href="theory__bitvector_8h_source.html#l00079">CVC3::BVSGT</a>, <a class="el" href="theory__bitvector_8h_source.html#l00045">CVC3::BVSHL</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l00045">BVSize()</a>, <a class="el" href="theory__bitvector_8h_source.html#l00078">CVC3::BVSLE</a>, <a class="el" href="theory__bitvector_8h_source.html#l00077">CVC3::BVSLT</a>, <a class="el" href="theory__bitvector_8h_source.html#l00071">CVC3::BVSMOD</a>, <a class="el" href="theory__bitvector_8h_source.html#l00070">CVC3::BVSREM</a>, <a class="el" href="theory__bitvector_8h_source.html#l00065">CVC3::BVSUB</a>, <a class="el" href="theory__bitvector_8h_source.html#l00083">CVC3::BVTOINT</a>, <a class="el" href="theory__bitvector_8h_source.html#l00085">CVC3::BVTYPEPRED</a>, <a class="el" href="theory__bitvector_8h_source.html#l00067">CVC3::BVUDIV</a>, <a class="el" href="theory__bitvector_8h_source.html#l00063">CVC3::BVUMINUS</a>, <a class="el" href="theory__bitvector_8h_source.html#l00069">CVC3::BVUREM</a>, <a class="el" href="theory__bitvector_8h_source.html#l00057">CVC3::BVXNOR</a>, <a class="el" href="theory__bitvector_8h_source.html#l00056">CVC3::BVXOR</a>, <a class="el" href="theory__bitvector_8h_source.html#l00050">CVC3::BVZEROEXTEND</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l05474">computeBVConst()</a>, <a class="el" href="theory__bitvector_8h_source.html#l00038">CVC3::CONCAT</a>, <a class="el" href="theory__bitvector_8h_source.html#l00043">CVC3::CONST_WIDTH_LEFTSHIFT</a>, <a class="el" href="theory_8h_source.html#l00079">CVC3::Theory::d_theoryUsed</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="expr_8h_source.html#l01217">CVC3::Expr::end()</a>, <a class="el" href="theory__bitvector_8h_source.html#l00039">CVC3::EXTRACT</a>, <a class="el" href="debug_8h_source.html#l00037">FatalAssert</a>, <a class="el" href="theory_8cpp_source.html#l00383">CVC3::Theory::getBaseType()</a>, <a class="el" href="theory_8h_source.html#l00090">CVC3::Theory::getEM()</a>, <a class="el" href="type_8h_source.html#l00052">CVC3::Type::getExpr()</a>, <a class="el" href="classCVC3_1_1Rational.html#a094636dfa3a740640ca1b0c7406f7e8f">CVC3::Rational::getInt()</a>, <a class="el" href="expr__manager_8cpp_source.html#l00412">CVC3::ExprManager::getKind()</a>, <a class="el" href="expr_8h_source.html#l01168">CVC3::Expr::getKind()</a>, <a class="el" href="expr_8h_source.html#l01196">CVC3::Expr::getOpKind()</a>, <a class="el" href="expr_8h_source.html#l01135">CVC3::Expr::getRational()</a>, <a class="el" href="expr_8h_source.html#l01055">CVC3::Expr::getString()</a>, <a class="el" href="expr_8h_source.html#l01259">CVC3::Expr::getType()</a>, <a class="el" href="kinds_8h_source.html#l00046">ID</a>, <a class="el" href="theory__bitvector_8h_source.html#l00082">CVC3::INTTOBV</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__bitvector_8h_source.html#l00042">CVC3::LEFTSHIFT</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l04638">newBitvectorTypeExpr()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l04940">newBoolExtractExpr()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l04656">newBVAndExpr()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l04809">newBVCompExpr()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l05214">newBVConstExpr()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l05237">newBVExtractExpr()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l04882">newBVIndexExpr()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l04856">newBVLEExpr()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l04845">newBVLTExpr()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l05083">newBVMultPadExpr()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l04728">newBVNandExpr()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l04920">newBVNegExpr()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l04743">newBVNorExpr()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l04692">newBVOrExpr()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l05317">newBVPlusPadExpr()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l04909">newBVSLEExpr()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l04898">newBVSLTExpr()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l05260">newBVSubExpr()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l04930">newBVUminusExpr()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l04794">newBVXnorExpr()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l04758">newBVXorExpr()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l04997">newConcatExpr()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l04968">newFixedConstWidthLeftShiftExpr()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l04954">newFixedLeftShiftExpr()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l04982">newFixedRightShiftExpr()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l04867">newSXExpr()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l00059">pad()</a>, <a class="el" href="theory_8cpp_source.html#l00519">CVC3::Theory::parseExpr()</a>, <a class="el" href="kinds_8h_source.html#l00044">RAW_LIST</a>, <a class="el" href="theory__bitvector_8h_source.html#l00044">CVC3::RIGHTSHIFT</a>, <a class="el" href="theory__bitvector_8h_source.html#l00048">CVC3::SX</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="adce40eaced94554fd76d2f660f5ba385"></a><!-- doxytag: member="CVC3::TheoryBitvector::BVSize" ref="adce40eaced94554fd76d2f660f5ba385" args="(const Expr &amp;e)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int TheoryBitvector::BVSize </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>e</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Return the number of bits in the bitvector expression. </p>

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l00045">45</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="theory__bitvector_8h_source.html#l00036">CVC3::BITVECTOR</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="type_8h_source.html#l00052">CVC3::Type::getExpr()</a>, <a class="el" href="expr_8h_source.html#l01196">CVC3::Expr::getOpKind()</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

<p>Referenced by <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l06324">CVC3::BitvectorTheoremProducer::bitblastBVMult()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l06407">CVC3::BitvectorTheoremProducer::bitblastBVPlus()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l00225">CVC3::BitvectorTheoremProducer::bitBlastDisEqnRule()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l00142">CVC3::BitvectorTheoremProducer::bitBlastEqnRule()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l01575">CVC3::BitvectorTheoremProducer::bitExtractBitwise()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l01829">CVC3::BitvectorTheoremProducer::bitExtractBVASHR()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l01775">CVC3::BitvectorTheoremProducer::bitExtractBVLSHR()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l01141">CVC3::BitvectorTheoremProducer::bitExtractBVMult()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l01721">CVC3::BitvectorTheoremProducer::bitExtractBVSHL()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l01017">CVC3::BitvectorTheoremProducer::bitExtractConcatenation()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l01074">CVC3::BitvectorTheoremProducer::bitExtractConstBVMult()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l01206">CVC3::BitvectorTheoremProducer::bitExtractExtraction()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l01619">CVC3::BitvectorTheoremProducer::bitExtractFixedLeftShift()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l01668">CVC3::BitvectorTheoremProducer::bitExtractFixedRightShift()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l01539">CVC3::BitvectorTheoremProducer::bitExtractNot()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l00948">CVC3::BitvectorTheoremProducer::bitExtractRewrite()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02922">CVC3::BitvectorTheoremProducer::bitwiseConcat()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02842">CVC3::BitvectorTheoremProducer::bitwiseConst()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l03068">CVC3::BitvectorTheoremProducer::bitwiseConstElim()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02970">CVC3::BitvectorTheoremProducer::bitwiseFlatten()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l05298">CVC3::BitvectorTheoremProducer::buildPlusTerm()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02155">CVC3::BitvectorTheoremProducer::bvashrToConcat()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l00704">CVC3::BitvectorTheoremProducer::bvConstIneqn()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l03503">CVC3::BitvectorTheoremProducer::bvConstMultAssocRule()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02107">CVC3::BitvectorTheoremProducer::bvlshrToConcat()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l04619">CVC3::BitvectorTheoremProducer::BVMult_order_subterms()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l03541">CVC3::BitvectorTheoremProducer::bvMultAssocRule()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l04128">CVC3::BitvectorTheoremProducer::bvmultBVUminus()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l03329">CVC3::BitvectorTheoremProducer::bvmultConst()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l03615">CVC3::BitvectorTheoremProducer::bvMultDistRule()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l01497">CVC3::BitvectorTheoremProducer::bvPlusAssociativityRule()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02318">CVC3::BitvectorTheoremProducer::bvplusZeroConcatRule()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l06462">CVC3::BitvectorTheoremProducer::bvSDivRewrite()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02135">CVC3::BitvectorTheoremProducer::bvShiftZero()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02068">CVC3::BitvectorTheoremProducer::bvshlSplit()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02033">CVC3::BitvectorTheoremProducer::bvshlToConcat()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l06574">CVC3::BitvectorTheoremProducer::bvSModRewrite()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l06518">CVC3::BitvectorTheoremProducer::bvSRemRewrite()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l06243">CVC3::BitvectorTheoremProducer::bvUDivConst()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l06272">CVC3::BitvectorTheoremProducer::bvUDivTheorem()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l04011">CVC3::BitvectorTheoremProducer::bvuminusBVConst()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l04038">CVC3::BitvectorTheoremProducer::bvuminusBVMult()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l03989">CVC3::BitvectorTheoremProducer::bvuminusToBVPlus()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l04105">CVC3::BitvectorTheoremProducer::bvuminusVar()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l06201">CVC3::BitvectorTheoremProducer::bvURemConst()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l06229">CVC3::BitvectorTheoremProducer::bvURemRewrite()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l05692">CVC3::BitvectorTheoremProducer::canonBVEQ()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l04770">CVC3::BitvectorTheoremProducer::canonBVMult()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l05559">CVC3::BitvectorTheoremProducer::canonBVPlus()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l05587">CVC3::BitvectorTheoremProducer::canonBVUMinus()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l02574">checkSat()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l05169">CVC3::BitvectorTheoremProducer::chopConcat()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l03865">CVC3::BitvectorTheoremProducer::combineLikeTermsRule()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l02512">comparebv()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l05570">computeTCC()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l02969">computeType()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02270">CVC3::BitvectorTheoremProducer::constMultToPlus()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l01968">CVC3::BitvectorTheoremProducer::constWidthLeftShiftToConcat()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l03785">CVC3::BitvectorTheoremProducer::createNewPlusCollection()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l04882">CVC3::BitvectorTheoremProducer::distributive_rule()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l01911">CVC3::BitvectorTheoremProducer::eqToBits()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l04209">CVC3::BitvectorTheoremProducer::extractBVMult()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l04241">CVC3::BitvectorTheoremProducer::extractBVPlus()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02465">CVC3::BitvectorTheoremProducer::extractConcat()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02397">CVC3::BitvectorTheoremProducer::extractWhole()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l03655">CVC3::BitvectorTheoremProducer::flattenBVPlus()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l03403">CVC3::BitvectorTheoremProducer::flipBVMult()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l00762">CVC3::BitvectorTheoremProducer::generalIneqn()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l05020">CVC3::BitvectorTheoremProducer::getPlusTerms()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l04371">CVC3::BitvectorTheoremProducer::isolate_var()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02591">CVC3::BitvectorTheoremProducer::iteExtractRule()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l03916">CVC3::BitvectorTheoremProducer::lhsMinusRhsRule()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l04687">CVC3::BitvectorTheoremProducer::liftConcatBVMult()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l04924">CVC3::BitvectorTheoremProducer::liftConcatBVPlus()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l04343">CVC3::BitvectorTheoremProducer::MarkNonSolvableEq()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l01965">multiply_coeff()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02719">CVC3::BitvectorTheoremProducer::negElim()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l04656">newBVAndExpr()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l04809">newBVCompExpr()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l05237">newBVExtractExpr()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l05038">newBVMultExpr()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l04728">newBVNandExpr()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l04743">newBVNorExpr()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l04692">newBVOrExpr()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l05275">newBVPlusExpr()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l05111">newBVSDivExpr()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l05133">newBVSModExpr()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l05122">newBVSRemExpr()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l05260">newBVSubExpr()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l05089">newBVUDivExpr()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l05100">newBVURemExpr()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l04794">newBVXnorExpr()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l04758">newBVXorExpr()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l00606">CVC3::BitvectorTheoremProducer::notBVEQ1Rule()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l02178">Odd_coeff()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l06653">CVC3::BitvectorTheoremProducer::oneBVAND()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l03378">CVC3::BitvectorTheoremProducer::oneCoeffBVMult()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l03424">CVC3::BitvectorTheoremProducer::pad()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l03479">CVC3::BitvectorTheoremProducer::padBVMult()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l03449">CVC3::BitvectorTheoremProducer::padBVPlus()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l04087">parseExprOp()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l03662">print()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l05609">CVC3::BitvectorTheoremProducer::processExtract()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02241">CVC3::BitvectorTheoremProducer::rewriteBVSub()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02001">CVC3::BitvectorTheoremProducer::rightShiftToConcat()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l06142">CVC3::BitvectorTheoremProducer::rotlRule()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l06173">CVC3::BitvectorTheoremProducer::rotrRule()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l00437">CVC3::BitvectorTheoremProducer::signBVLTRule()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l00339">CVC3::BitvectorTheoremProducer::signExtendRule()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l06713">CVC3::BitvectorTheoremProducer::solveExtractOverlap()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l04277">CVC3::BitvectorTheoremProducer::typePredBit()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l03356">CVC3::BitvectorTheoremProducer::zeroCoeffBVMult()</a>, and <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l01470">CVC3::BitvectorTheoremProducer::zeroPaddingRule()</a>.</p>

</div>
</div>
<a class="anchor" id="ac88ba0954e217df731ebb362135ea107"></a><!-- doxytag: member="CVC3::TheoryBitvector::rat" ref="ac88ba0954e217df731ebb362135ea107" args="(const Rational &amp;r)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Expr.html">Expr</a> CVC3::TheoryBitvector::rat </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Rational.html">Rational</a> &amp;&#160;</td>
          <td class="paramname"><em>r</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="theory__bitvector_8h_source.html#l00300">300</a> of file <a class="el" href="theory__bitvector_8h_source.html">theory_bitvector.h</a>.</p>

<p>References <a class="el" href="theory_8h_source.html#l00090">CVC3::Theory::getEM()</a>, and <a class="el" href="expr__manager_8h_source.html#l00471">CVC3::ExprManager::newRatExpr()</a>.</p>

</div>
</div>
<a class="anchor" id="aaa3c1d517c610706a066e7adfee9a6f6"></a><!-- doxytag: member="CVC3::TheoryBitvector::pad" ref="aaa3c1d517c610706a066e7adfee9a6f6" args="(int len, const Expr &amp;e)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Expr.html">Expr</a> TheoryBitvector::pad </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>len</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>
</div>
<div class="memdoc">

<p>pads e to be of length len </p>
<p>Converts e into a BITVECTOR of length 'len'.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">len</td><td>is the desired length of the resulting bitvector </td></tr>
    <tr><td class="paramname">e</td><td>is the original bitvector of arbitrary length </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l00059">59</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="theory__bitvector_8h_source.html#l00036">CVC3::BITVECTOR</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="type_8h_source.html#l00052">CVC3::Type::getExpr()</a>, <a class="el" href="expr_8h_source.html#l01196">CVC3::Expr::getOpKind()</a>, <a class="el" href="expr_8h_source.html#l01259">CVC3::Expr::getType()</a>, <a class="el" href="cvc__util_8h_source.html#l00046">CVC3::int2string()</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

<p>Referenced by <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l05692">CVC3::BitvectorTheoremProducer::canonBVEQ()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l05182">newBVConstExpr()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l05073">newBVMultPadExpr()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l05317">newBVPlusPadExpr()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l04087">parseExprOp()</a>, and <a class="el" href="theory__bitvector_8cpp_source.html#l03429">printSmtLibShared()</a>.</p>

</div>
</div>
<a class="anchor" id="a1bf151ceda29668de133a3b005b9298b"></a><!-- doxytag: member="CVC3::TheoryBitvector::comparebv" ref="a1bf151ceda29668de133a3b005b9298b" args="(const Expr &amp;e1, const Expr &amp;e2)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool TheoryBitvector::comparebv </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>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l02512">2512</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="theory_8cpp_source.html#l00148">CVC3::Theory::addSplitter()</a>, <a class="el" href="theory_8cpp_source.html#l00142">CVC3::Theory::assertEqualities()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l00091">bitBlastEqn()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l00359">bitBlastTerm()</a>, <a class="el" href="classCVC3_1_1BitvectorProofRules.html#ad63871213ec8c864a622bb3d2248b043">CVC3::BitvectorProofRules::bitExtractAllToConstEq()</a>, <a class="el" href="theory__bitvector_8h_source.html#l00034">CVC3::BVCONST</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l00045">BVSize()</a>, <a class="el" href="theory__bitvector_8h_source.html#l00149">d_bb_index</a>, <a class="el" href="theory__bitvector_8h_source.html#l00147">d_bitblast</a>, <a class="el" href="theory__bitvector_8h_source.html#l00101">d_rules</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="theory_8cpp_source.html#l00128">CVC3::Theory::enqueueFact()</a>, <a class="el" href="expr_8h_source.html#l00929">CVC3::Expr::eqExpr()</a>, <a class="el" href="debug_8h_source.html#l00037">FatalAssert</a>, <a class="el" href="theory__array_8cpp_source.html#l00143">findAtom()</a>, <a class="el" href="theory_8h_source.html#l00096">CVC3::Theory::getCommonRules()</a>, <a class="el" href="expr_8h_source.html#l01168">CVC3::Expr::getKind()</a>, <a class="el" href="theorem_8cpp_source.html#l00246">CVC3::Theorem::getRHS()</a>, <a class="el" href="theory_8h_source.html#l00714">CVC3::Theory::iffMP()</a>, <a class="el" href="expr_8h_source.html#l00357">CVC3::Expr::isBoolConst()</a>, <a class="el" href="expr_8h_source.html#l01223">CVC3::Expr::isNull()</a>, <a class="el" href="cdlist_8h_source.html#l00066">CVC3::CDList&lt; T &gt;::push_back()</a>, <a class="el" href="theory_8cpp_source.html#l00119">CVC3::Theory::simplify()</a>, and <a class="el" href="theory_8h_source.html#l00681">CVC3::Theory::transitivityRule()</a>.</p>

</div>
</div>
<a class="anchor" id="a3d98cac1ae52614ee2adc3fbc407516e"></a><!-- doxytag: member="CVC3::TheoryBitvector::newBitvectorType" ref="a3d98cac1ae52614ee2adc3fbc407516e" args="(int i)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Type.html">Type</a> CVC3::TheoryBitvector::newBitvectorType </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>i</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="theory__bitvector_8h_source.html#l00307">307</a> of file <a class="el" href="theory__bitvector_8h_source.html">theory_bitvector.h</a>.</p>

<p>References <a class="el" href="theory__bitvector_8cpp_source.html#l04638">newBitvectorTypeExpr()</a>.</p>

<p>Referenced by <a class="el" href="theory__bitvector_8cpp_source.html#l02969">computeType()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l05609">CVC3::BitvectorTheoremProducer::processExtract()</a>, <a class="el" href="translator_8cpp_source.html#l01063">CVC3::Translator::processType()</a>, and <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l06713">CVC3::BitvectorTheoremProducer::solveExtractOverlap()</a>.</p>

</div>
</div>
<a class="anchor" id="ad2f823cf9921323e80c510076dd20fa2"></a><!-- doxytag: member="CVC3::TheoryBitvector::newBitvectorTypePred" ref="ad2f823cf9921323e80c510076dd20fa2" args="(const Type &amp;t, const Expr &amp;e)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Expr.html">Expr</a> TheoryBitvector::newBitvectorTypePred </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Type.html">Type</a> &amp;&#160;</td>
          <td class="paramname"><em>t</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>e</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l04650">4650</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="theory__bitvector_8h_source.html#l00085">CVC3::BVTYPEPRED</a>, and <a class="el" href="type_8h_source.html#l00052">CVC3::Type::getExpr()</a>.</p>

</div>
</div>
<a class="anchor" id="aef4eb029a55a6822baa7c381262154e5"></a><!-- doxytag: member="CVC3::TheoryBitvector::newBitvectorTypeExpr" ref="aef4eb029a55a6822baa7c381262154e5" args="(int i)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Expr.html">Expr</a> TheoryBitvector::newBitvectorTypeExpr </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>i</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l04638">4638</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="theory__bitvector_8h_source.html#l00036">CVC3::BITVECTOR</a>, <a class="el" href="theory__bitvector_8h_source.html#l00165">d_maxLength</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="theory_8h_source.html#l00090">CVC3::Theory::getEM()</a>, and <a class="el" href="cvc__util_8h_source.html#l00046">CVC3::int2string()</a>.</p>

<p>Referenced by <a class="el" href="theory__bitvector_8cpp_source.html#l02969">computeType()</a>, <a class="el" href="theory__bitvector_8h_source.html#l00307">newBitvectorType()</a>, and <a class="el" href="theory__bitvector_8cpp_source.html#l04087">parseExprOp()</a>.</p>

</div>
</div>
<a class="anchor" id="ab22dd0ad8596f8fefce18f99b1791499"></a><!-- doxytag: member="CVC3::TheoryBitvector::newBVAndExpr" ref="ab22dd0ad8596f8fefce18f99b1791499" args="(const Expr &amp;t1, const Expr &amp;t2)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Expr.html">Expr</a> TheoryBitvector::newBVAndExpr </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>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l04656">4656</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="theory__bitvector_8h_source.html#l00036">CVC3::BITVECTOR</a>, <a class="el" href="theory__bitvector_8h_source.html#l00054">CVC3::BVAND</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l00045">BVSize()</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="type_8h_source.html#l00052">CVC3::Type::getExpr()</a>, <a class="el" href="expr_8h_source.html#l01196">CVC3::Expr::getOpKind()</a>, <a class="el" href="expr_8h_source.html#l01259">CVC3::Expr::getType()</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

<p>Referenced by <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02842">CVC3::BitvectorTheoremProducer::bitwiseConst()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02766">CVC3::BitvectorTheoremProducer::negBVor()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l04087">parseExprOp()</a>, and <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02196">CVC3::BitvectorTheoremProducer::rewriteNAND()</a>.</p>

</div>
</div>
<a class="anchor" id="ac7cd7c2e0a03c30f3cec5ac5787d8d48"></a><!-- doxytag: member="CVC3::TheoryBitvector::newBVAndExpr" ref="ac7cd7c2e0a03c30f3cec5ac5787d8d48" args="(const std::vector&lt; Expr &gt; &amp;kids)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Expr.html">Expr</a> TheoryBitvector::newBVAndExpr </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>kids</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l04671">4671</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="theory__bitvector_8h_source.html#l00036">CVC3::BITVECTOR</a>, <a class="el" href="theory__bitvector_8h_source.html#l00054">CVC3::BVAND</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l00045">BVSize()</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, and <a class="el" href="theory_8h_source.html#l00090">CVC3::Theory::getEM()</a>.</p>

</div>
</div>
<a class="anchor" id="a7b93b348dffe055b771db6061446e9ea"></a><!-- doxytag: member="CVC3::TheoryBitvector::newBVOrExpr" ref="a7b93b348dffe055b771db6061446e9ea" args="(const Expr &amp;t1, const Expr &amp;t2)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Expr.html">Expr</a> TheoryBitvector::newBVOrExpr </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>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l04692">4692</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="theory__bitvector_8h_source.html#l00036">CVC3::BITVECTOR</a>, <a class="el" href="theory__bitvector_8h_source.html#l00055">CVC3::BVOR</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l00045">BVSize()</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="type_8h_source.html#l00052">CVC3::Type::getExpr()</a>, <a class="el" href="expr_8h_source.html#l01196">CVC3::Expr::getOpKind()</a>, <a class="el" href="expr_8h_source.html#l01259">CVC3::Expr::getType()</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

<p>Referenced by <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02842">CVC3::BitvectorTheoremProducer::bitwiseConst()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02744">CVC3::BitvectorTheoremProducer::negBVand()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l04087">parseExprOp()</a>, and <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02211">CVC3::BitvectorTheoremProducer::rewriteNOR()</a>.</p>

</div>
</div>
<a class="anchor" id="a9efd00a5226558d90c2617f067c6a99a"></a><!-- doxytag: member="CVC3::TheoryBitvector::newBVOrExpr" ref="a9efd00a5226558d90c2617f067c6a99a" args="(const std::vector&lt; Expr &gt; &amp;kids)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Expr.html">Expr</a> TheoryBitvector::newBVOrExpr </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>kids</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l04707">4707</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="theory__bitvector_8h_source.html#l00036">CVC3::BITVECTOR</a>, <a class="el" href="theory__bitvector_8h_source.html#l00055">CVC3::BVOR</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l00045">BVSize()</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, and <a class="el" href="theory_8h_source.html#l00090">CVC3::Theory::getEM()</a>.</p>

</div>
</div>
<a class="anchor" id="a003f69e1199d0a57102dadc83643fb18"></a><!-- doxytag: member="CVC3::TheoryBitvector::newBVXorExpr" ref="a003f69e1199d0a57102dadc83643fb18" args="(const Expr &amp;t1, const Expr &amp;t2)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Expr.html">Expr</a> TheoryBitvector::newBVXorExpr </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>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l04758">4758</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="theory__bitvector_8h_source.html#l00036">CVC3::BITVECTOR</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l00045">BVSize()</a>, <a class="el" href="theory__bitvector_8h_source.html#l00056">CVC3::BVXOR</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="type_8h_source.html#l00052">CVC3::Type::getExpr()</a>, <a class="el" href="expr_8h_source.html#l01196">CVC3::Expr::getOpKind()</a>, <a class="el" href="expr_8h_source.html#l01259">CVC3::Expr::getType()</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

<p>Referenced by <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02842">CVC3::BitvectorTheoremProducer::bitwiseConst()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l05692">CVC3::BitvectorTheoremProducer::canonBVEQ()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02815">CVC3::BitvectorTheoremProducer::negBVxnor()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02789">CVC3::BitvectorTheoremProducer::negBVxor()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l04087">parseExprOp()</a>, and <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02181">CVC3::BitvectorTheoremProducer::rewriteXNOR()</a>.</p>

</div>
</div>
<a class="anchor" id="a00b711043737f676675a99de32e93492"></a><!-- doxytag: member="CVC3::TheoryBitvector::newBVXorExpr" ref="a00b711043737f676675a99de32e93492" args="(const std::vector&lt; Expr &gt; &amp;kids)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Expr.html">Expr</a> TheoryBitvector::newBVXorExpr </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>kids</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l04773">4773</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="theory__bitvector_8h_source.html#l00036">CVC3::BITVECTOR</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l00045">BVSize()</a>, <a class="el" href="theory__bitvector_8h_source.html#l00056">CVC3::BVXOR</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, and <a class="el" href="theory_8h_source.html#l00090">CVC3::Theory::getEM()</a>.</p>

</div>
</div>
<a class="anchor" id="ad25d43520383b198f379d573cf72d784"></a><!-- doxytag: member="CVC3::TheoryBitvector::newBVXnorExpr" ref="ad25d43520383b198f379d573cf72d784" args="(const Expr &amp;t1, const Expr &amp;t2)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Expr.html">Expr</a> TheoryBitvector::newBVXnorExpr </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>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l04794">4794</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="theory__bitvector_8h_source.html#l00036">CVC3::BITVECTOR</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l00045">BVSize()</a>, <a class="el" href="theory__bitvector_8h_source.html#l00057">CVC3::BVXNOR</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="type_8h_source.html#l00052">CVC3::Type::getExpr()</a>, <a class="el" href="expr_8h_source.html#l01196">CVC3::Expr::getOpKind()</a>, <a class="el" href="expr_8h_source.html#l01259">CVC3::Expr::getType()</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

<p>Referenced by <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02815">CVC3::BitvectorTheoremProducer::negBVxnor()</a>, and <a class="el" href="theory__bitvector_8cpp_source.html#l04087">parseExprOp()</a>.</p>

</div>
</div>
<a class="anchor" id="ad5699f06db56401ba2e77bfc37f8344d"></a><!-- doxytag: member="CVC3::TheoryBitvector::newBVXnorExpr" ref="ad5699f06db56401ba2e77bfc37f8344d" args="(const std::vector&lt; Expr &gt; &amp;kids)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Expr.html">Expr</a> TheoryBitvector::newBVXnorExpr </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>kids</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l04824">4824</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="theory__bitvector_8h_source.html#l00036">CVC3::BITVECTOR</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l00045">BVSize()</a>, <a class="el" href="theory__bitvector_8h_source.html#l00057">CVC3::BVXNOR</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, and <a class="el" href="theory_8h_source.html#l00090">CVC3::Theory::getEM()</a>.</p>

</div>
</div>
<a class="anchor" id="a9a3678f2c6007c5b492017b0d9161a37"></a><!-- doxytag: member="CVC3::TheoryBitvector::newBVNandExpr" ref="a9a3678f2c6007c5b492017b0d9161a37" args="(const Expr &amp;t1, const Expr &amp;t2)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Expr.html">Expr</a> TheoryBitvector::newBVNandExpr </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>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l04728">4728</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="theory__bitvector_8h_source.html#l00036">CVC3::BITVECTOR</a>, <a class="el" href="theory__bitvector_8h_source.html#l00059">CVC3::BVNAND</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l00045">BVSize()</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="type_8h_source.html#l00052">CVC3::Type::getExpr()</a>, <a class="el" href="expr_8h_source.html#l01196">CVC3::Expr::getOpKind()</a>, <a class="el" href="expr_8h_source.html#l01259">CVC3::Expr::getType()</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

<p>Referenced by <a class="el" href="theory__bitvector_8cpp_source.html#l04087">parseExprOp()</a>.</p>

</div>
</div>
<a class="anchor" id="ac7a7ef0271a8aa043ec09684e6a16e9b"></a><!-- doxytag: member="CVC3::TheoryBitvector::newBVNorExpr" ref="ac7a7ef0271a8aa043ec09684e6a16e9b" args="(const Expr &amp;t1, const Expr &amp;t2)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Expr.html">Expr</a> TheoryBitvector::newBVNorExpr </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>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l04743">4743</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="theory__bitvector_8h_source.html#l00036">CVC3::BITVECTOR</a>, <a class="el" href="theory__bitvector_8h_source.html#l00060">CVC3::BVNOR</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l00045">BVSize()</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="type_8h_source.html#l00052">CVC3::Type::getExpr()</a>, <a class="el" href="expr_8h_source.html#l01196">CVC3::Expr::getOpKind()</a>, <a class="el" href="expr_8h_source.html#l01259">CVC3::Expr::getType()</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

<p>Referenced by <a class="el" href="theory__bitvector_8cpp_source.html#l04087">parseExprOp()</a>.</p>

</div>
</div>
<a class="anchor" id="a70d9bf0184ba1308434780a25439b402"></a><!-- doxytag: member="CVC3::TheoryBitvector::newBVCompExpr" ref="a70d9bf0184ba1308434780a25439b402" args="(const Expr &amp;t1, const Expr &amp;t2)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Expr.html">Expr</a> TheoryBitvector::newBVCompExpr </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>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l04809">4809</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="theory__bitvector_8h_source.html#l00036">CVC3::BITVECTOR</a>, <a class="el" href="theory__bitvector_8h_source.html#l00061">CVC3::BVCOMP</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l00045">BVSize()</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="type_8h_source.html#l00052">CVC3::Type::getExpr()</a>, <a class="el" href="expr_8h_source.html#l01196">CVC3::Expr::getOpKind()</a>, <a class="el" href="expr_8h_source.html#l01259">CVC3::Expr::getType()</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

<p>Referenced by <a class="el" href="theory__bitvector_8cpp_source.html#l04087">parseExprOp()</a>.</p>

</div>
</div>
<a class="anchor" id="aa849a2fd56e8a1e3a7742b00d043869a"></a><!-- doxytag: member="CVC3::TheoryBitvector::newBVLTExpr" ref="aa849a2fd56e8a1e3a7742b00d043869a" args="(const Expr &amp;t1, const Expr &amp;t2)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Expr.html">Expr</a> TheoryBitvector::newBVLTExpr </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>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l04845">4845</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="theory__bitvector_8h_source.html#l00036">CVC3::BITVECTOR</a>, <a class="el" href="theory__bitvector_8h_source.html#l00073">CVC3::BVLT</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="type_8h_source.html#l00052">CVC3::Type::getExpr()</a>, <a class="el" href="expr_8h_source.html#l01196">CVC3::Expr::getOpKind()</a>, <a class="el" href="expr_8h_source.html#l01259">CVC3::Expr::getType()</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

<p>Referenced by <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l06272">CVC3::BitvectorTheoremProducer::bvUDivTheorem()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l00762">CVC3::BitvectorTheoremProducer::generalIneqn()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l00631">CVC3::BitvectorTheoremProducer::notBVLTRule()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l00305">CVC3::BitvectorTheoremProducer::padBVLTRule()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l04087">parseExprOp()</a>, and <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l00437">CVC3::BitvectorTheoremProducer::signBVLTRule()</a>.</p>

</div>
</div>
<a class="anchor" id="ac6430938332eb644c11106ce5047825c"></a><!-- doxytag: member="CVC3::TheoryBitvector::newBVLEExpr" ref="ac6430938332eb644c11106ce5047825c" args="(const Expr &amp;t1, const Expr &amp;t2)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Expr.html">Expr</a> TheoryBitvector::newBVLEExpr </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>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l04856">4856</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="theory__bitvector_8h_source.html#l00036">CVC3::BITVECTOR</a>, <a class="el" href="theory__bitvector_8h_source.html#l00074">CVC3::BVLE</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="type_8h_source.html#l00052">CVC3::Type::getExpr()</a>, <a class="el" href="expr_8h_source.html#l01196">CVC3::Expr::getOpKind()</a>, <a class="el" href="expr_8h_source.html#l01259">CVC3::Expr::getType()</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

<p>Referenced by <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l01829">CVC3::BitvectorTheoremProducer::bitExtractBVASHR()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l00762">CVC3::BitvectorTheoremProducer::generalIneqn()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l00631">CVC3::BitvectorTheoremProducer::notBVLTRule()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l00305">CVC3::BitvectorTheoremProducer::padBVLTRule()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l04087">parseExprOp()</a>, and <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l00437">CVC3::BitvectorTheoremProducer::signBVLTRule()</a>.</p>

</div>
</div>
<a class="anchor" id="aed210d6f5ea81db87debb15b422ded2c"></a><!-- doxytag: member="CVC3::TheoryBitvector::newSXExpr" ref="aed210d6f5ea81db87debb15b422ded2c" args="(const Expr &amp;t1, int len)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Expr.html">Expr</a> TheoryBitvector::newSXExpr </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">int&#160;</td>
          <td class="paramname"><em>len</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l04867">4867</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="theory__bitvector_8h_source.html#l00036">CVC3::BITVECTOR</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="theory_8h_source.html#l00090">CVC3::Theory::getEM()</a>, <a class="el" href="type_8h_source.html#l00052">CVC3::Type::getExpr()</a>, <a class="el" href="expr_8h_source.html#l01196">CVC3::Expr::getOpKind()</a>, <a class="el" href="expr_8h_source.html#l01259">CVC3::Expr::getType()</a>, <a class="el" href="cvc__util_8h_source.html#l00046">CVC3::int2string()</a>, <a class="el" href="theory__bitvector_8h_source.html#l00048">CVC3::SX</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

<p>Referenced by <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02155">CVC3::BitvectorTheoremProducer::bvashrToConcat()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l00397">CVC3::BitvectorTheoremProducer::padBVSLTRule()</a>, and <a class="el" href="theory__bitvector_8cpp_source.html#l04087">parseExprOp()</a>.</p>

</div>
</div>
<a class="anchor" id="a48a5a14c9e1efc9bc1d463d1be67fb1a"></a><!-- doxytag: member="CVC3::TheoryBitvector::newBVIndexExpr" ref="a48a5a14c9e1efc9bc1d463d1be67fb1a" args="(int kind, const Expr &amp;t1, int len)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Expr.html">Expr</a> TheoryBitvector::newBVIndexExpr </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>kind</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>t1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>len</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l04882">4882</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="theory__bitvector_8h_source.html#l00036">CVC3::BITVECTOR</a>, <a class="el" href="theory__bitvector_8h_source.html#l00049">CVC3::BVREPEAT</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="theory_8h_source.html#l00090">CVC3::Theory::getEM()</a>, <a class="el" href="type_8h_source.html#l00052">CVC3::Type::getExpr()</a>, <a class="el" href="expr_8h_source.html#l01196">CVC3::Expr::getOpKind()</a>, <a class="el" href="expr_8h_source.html#l01259">CVC3::Expr::getType()</a>, <a class="el" href="cvc__util_8h_source.html#l00046">CVC3::int2string()</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

<p>Referenced by <a class="el" href="theory__bitvector_8cpp_source.html#l04087">parseExprOp()</a>.</p>

</div>
</div>
<a class="anchor" id="a2639e4a3d2b13f9e370daf41a833267c"></a><!-- doxytag: member="CVC3::TheoryBitvector::newBVSLTExpr" ref="a2639e4a3d2b13f9e370daf41a833267c" args="(const Expr &amp;t1, const Expr &amp;t2)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Expr.html">Expr</a> TheoryBitvector::newBVSLTExpr </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>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l04898">4898</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="theory__bitvector_8h_source.html#l00036">CVC3::BITVECTOR</a>, <a class="el" href="theory__bitvector_8h_source.html#l00077">CVC3::BVSLT</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="type_8h_source.html#l00052">CVC3::Type::getExpr()</a>, <a class="el" href="expr_8h_source.html#l01196">CVC3::Expr::getOpKind()</a>, <a class="el" href="expr_8h_source.html#l01259">CVC3::Expr::getType()</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

<p>Referenced by <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l00397">CVC3::BitvectorTheoremProducer::padBVSLTRule()</a>, and <a class="el" href="theory__bitvector_8cpp_source.html#l04087">parseExprOp()</a>.</p>

</div>
</div>
<a class="anchor" id="a9b32f54063dda6c3424a63e1702cd277"></a><!-- doxytag: member="CVC3::TheoryBitvector::newBVSLEExpr" ref="a9b32f54063dda6c3424a63e1702cd277" args="(const Expr &amp;t1, const Expr &amp;t2)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Expr.html">Expr</a> TheoryBitvector::newBVSLEExpr </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>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l04909">4909</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="theory__bitvector_8h_source.html#l00036">CVC3::BITVECTOR</a>, <a class="el" href="theory__bitvector_8h_source.html#l00078">CVC3::BVSLE</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="type_8h_source.html#l00052">CVC3::Type::getExpr()</a>, <a class="el" href="expr_8h_source.html#l01196">CVC3::Expr::getOpKind()</a>, <a class="el" href="expr_8h_source.html#l01259">CVC3::Expr::getType()</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

<p>Referenced by <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l00397">CVC3::BitvectorTheoremProducer::padBVSLTRule()</a>, and <a class="el" href="theory__bitvector_8cpp_source.html#l04087">parseExprOp()</a>.</p>

</div>
</div>
<a class="anchor" id="a4bc6d752b2ba293481468dcaaa821d3f"></a><!-- doxytag: member="CVC3::TheoryBitvector::newBVNegExpr" ref="a4bc6d752b2ba293481468dcaaa821d3f" args="(const Expr &amp;t1)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Expr.html">Expr</a> TheoryBitvector::newBVNegExpr </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><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l04920">4920</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="theory__bitvector_8h_source.html#l00036">CVC3::BITVECTOR</a>, <a class="el" href="theory__bitvector_8h_source.html#l00058">CVC3::BVNEG</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="type_8h_source.html#l00052">CVC3::Type::getExpr()</a>, <a class="el" href="expr_8h_source.html#l01196">CVC3::Expr::getOpKind()</a>, <a class="el" href="expr_8h_source.html#l01259">CVC3::Expr::getType()</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

<p>Referenced by <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l03068">CVC3::BitvectorTheoremProducer::bitwiseConstElim()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02970">CVC3::BitvectorTheoremProducer::bitwiseFlatten()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l05298">CVC3::BitvectorTheoremProducer::buildPlusTerm()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l03989">CVC3::BitvectorTheoremProducer::bvuminusToBVPlus()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l03692">CVC3::BitvectorTheoremProducer::collectOneTermOfPlus()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02270">CVC3::BitvectorTheoremProducer::constMultToPlus()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l03785">CVC3::BitvectorTheoremProducer::createNewPlusCollection()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02627">CVC3::BitvectorTheoremProducer::iteBVnegRule()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02744">CVC3::BitvectorTheoremProducer::negBVand()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02766">CVC3::BitvectorTheoremProducer::negBVor()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02789">CVC3::BitvectorTheoremProducer::negBVxor()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02678">CVC3::BitvectorTheoremProducer::negConcat()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l00606">CVC3::BitvectorTheoremProducer::notBVEQ1Rule()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l04087">parseExprOp()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02196">CVC3::BitvectorTheoremProducer::rewriteNAND()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02211">CVC3::BitvectorTheoremProducer::rewriteNOR()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02181">CVC3::BitvectorTheoremProducer::rewriteXNOR()</a>, and <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l03160">CVC3::BitvectorTheoremProducer::sameKidCheck()</a>.</p>

</div>
</div>
<a class="anchor" id="a7113c95ecf45006003eed0d8d7dccda7"></a><!-- doxytag: member="CVC3::TheoryBitvector::newBVUminusExpr" ref="a7113c95ecf45006003eed0d8d7dccda7" args="(const Expr &amp;t1)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Expr.html">Expr</a> TheoryBitvector::newBVUminusExpr </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><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l04930">4930</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="theory__bitvector_8h_source.html#l00036">CVC3::BITVECTOR</a>, <a class="el" href="theory__bitvector_8h_source.html#l00063">CVC3::BVUMINUS</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="type_8h_source.html#l00052">CVC3::Type::getExpr()</a>, <a class="el" href="expr_8h_source.html#l01196">CVC3::Expr::getOpKind()</a>, <a class="el" href="expr_8h_source.html#l01259">CVC3::Expr::getType()</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

<p>Referenced by <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l06462">CVC3::BitvectorTheoremProducer::bvSDivRewrite()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l06574">CVC3::BitvectorTheoremProducer::bvSModRewrite()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l06518">CVC3::BitvectorTheoremProducer::bvSRemRewrite()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l05692">CVC3::BitvectorTheoremProducer::canonBVEQ()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l03916">CVC3::BitvectorTheoremProducer::lhsMinusRhsRule()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l04087">parseExprOp()</a>, and <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02241">CVC3::BitvectorTheoremProducer::rewriteBVSub()</a>.</p>

</div>
</div>
<a class="anchor" id="aec57b42edc8ea39452039be2d93a26e7"></a><!-- doxytag: member="CVC3::TheoryBitvector::newBoolExtractExpr" ref="aec57b42edc8ea39452039be2d93a26e7" args="(const Expr &amp;t1, int r)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Expr.html">Expr</a> TheoryBitvector::newBoolExtractExpr </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">int&#160;</td>
          <td class="paramname"><em>r</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l04940">4940</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="theory__bitvector_8h_source.html#l00036">CVC3::BITVECTOR</a>, <a class="el" href="theory__bitvector_8h_source.html#l00040">CVC3::BOOLEXTRACT</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="theory_8h_source.html#l00090">CVC3::Theory::getEM()</a>, <a class="el" href="type_8h_source.html#l00052">CVC3::Type::getExpr()</a>, <a class="el" href="expr_8h_source.html#l01196">CVC3::Expr::getOpKind()</a>, <a class="el" href="expr_8h_source.html#l01259">CVC3::Expr::getType()</a>, <a class="el" href="cvc__util_8h_source.html#l00046">CVC3::int2string()</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

<p>Referenced by <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l06324">CVC3::BitvectorTheoremProducer::bitblastBVMult()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l06407">CVC3::BitvectorTheoremProducer::bitblastBVPlus()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l01575">CVC3::BitvectorTheoremProducer::bitExtractBitwise()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l01829">CVC3::BitvectorTheoremProducer::bitExtractBVASHR()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l01775">CVC3::BitvectorTheoremProducer::bitExtractBVLSHR()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l01141">CVC3::BitvectorTheoremProducer::bitExtractBVMult()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l01256">CVC3::BitvectorTheoremProducer::bitExtractBVPlus()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l01337">CVC3::BitvectorTheoremProducer::bitExtractBVPlusPreComputed()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l01721">CVC3::BitvectorTheoremProducer::bitExtractBVSHL()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l01017">CVC3::BitvectorTheoremProducer::bitExtractConcatenation()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l00977">CVC3::BitvectorTheoremProducer::bitExtractConstant()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l01074">CVC3::BitvectorTheoremProducer::bitExtractConstBVMult()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l01206">CVC3::BitvectorTheoremProducer::bitExtractExtraction()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l01619">CVC3::BitvectorTheoremProducer::bitExtractFixedLeftShift()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l01668">CVC3::BitvectorTheoremProducer::bitExtractFixedRightShift()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l01539">CVC3::BitvectorTheoremProducer::bitExtractNot()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l00948">CVC3::BitvectorTheoremProducer::bitExtractRewrite()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l00380">CVC3::BitvectorTheoremProducer::bitExtractSXRule()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l03345">computeModel()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l03296">computeModelTerm()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l04087">parseExprOp()</a>, and <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l01470">CVC3::BitvectorTheoremProducer::zeroPaddingRule()</a>.</p>

</div>
</div>
<a class="anchor" id="ae1559a54104ab7befb00c9a14b5ea95e"></a><!-- doxytag: member="CVC3::TheoryBitvector::newFixedLeftShiftExpr" ref="ae1559a54104ab7befb00c9a14b5ea95e" args="(const Expr &amp;t1, int r)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Expr.html">Expr</a> TheoryBitvector::newFixedLeftShiftExpr </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">int&#160;</td>
          <td class="paramname"><em>r</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l04954">4954</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="theory__bitvector_8h_source.html#l00036">CVC3::BITVECTOR</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="theory_8h_source.html#l00090">CVC3::Theory::getEM()</a>, <a class="el" href="type_8h_source.html#l00052">CVC3::Type::getExpr()</a>, <a class="el" href="expr_8h_source.html#l01196">CVC3::Expr::getOpKind()</a>, <a class="el" href="expr_8h_source.html#l01259">CVC3::Expr::getType()</a>, <a class="el" href="cvc__util_8h_source.html#l00046">CVC3::int2string()</a>, <a class="el" href="theory__bitvector_8h_source.html#l00042">CVC3::LEFTSHIFT</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

<p>Referenced by <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02270">CVC3::BitvectorTheoremProducer::constMultToPlus()</a>, and <a class="el" href="theory__bitvector_8cpp_source.html#l04087">parseExprOp()</a>.</p>

</div>
</div>
<a class="anchor" id="a082d2161d7c59fcbac262e3d3ddc93a3"></a><!-- doxytag: member="CVC3::TheoryBitvector::newFixedConstWidthLeftShiftExpr" ref="a082d2161d7c59fcbac262e3d3ddc93a3" args="(const Expr &amp;t1, int r)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Expr.html">Expr</a> TheoryBitvector::newFixedConstWidthLeftShiftExpr </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">int&#160;</td>
          <td class="paramname"><em>r</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l04968">4968</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="theory__bitvector_8h_source.html#l00036">CVC3::BITVECTOR</a>, <a class="el" href="theory__bitvector_8h_source.html#l00043">CVC3::CONST_WIDTH_LEFTSHIFT</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="theory_8h_source.html#l00090">CVC3::Theory::getEM()</a>, <a class="el" href="type_8h_source.html#l00052">CVC3::Type::getExpr()</a>, <a class="el" href="expr_8h_source.html#l01196">CVC3::Expr::getOpKind()</a>, <a class="el" href="expr_8h_source.html#l01259">CVC3::Expr::getType()</a>, <a class="el" href="cvc__util_8h_source.html#l00046">CVC3::int2string()</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

<p>Referenced by <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l01141">CVC3::BitvectorTheoremProducer::bitExtractBVMult()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l01074">CVC3::BitvectorTheoremProducer::bitExtractConstBVMult()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l05237">newBVExtractExpr()</a>, and <a class="el" href="theory__bitvector_8cpp_source.html#l04087">parseExprOp()</a>.</p>

</div>
</div>
<a class="anchor" id="a4cb4f4e7d854ca0c7d5883208de4355c"></a><!-- doxytag: member="CVC3::TheoryBitvector::newFixedRightShiftExpr" ref="a4cb4f4e7d854ca0c7d5883208de4355c" args="(const Expr &amp;t1, int r)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Expr.html">Expr</a> TheoryBitvector::newFixedRightShiftExpr </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">int&#160;</td>
          <td class="paramname"><em>r</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l04982">4982</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="theory__bitvector_8h_source.html#l00036">CVC3::BITVECTOR</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="theory_8h_source.html#l00090">CVC3::Theory::getEM()</a>, <a class="el" href="type_8h_source.html#l00052">CVC3::Type::getExpr()</a>, <a class="el" href="expr_8h_source.html#l01196">CVC3::Expr::getOpKind()</a>, <a class="el" href="expr_8h_source.html#l01259">CVC3::Expr::getType()</a>, <a class="el" href="cvc__util_8h_source.html#l00046">CVC3::int2string()</a>, <a class="el" href="theory__bitvector_8h_source.html#l00044">CVC3::RIGHTSHIFT</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

<p>Referenced by <a class="el" href="theory__bitvector_8cpp_source.html#l04087">parseExprOp()</a>.</p>

</div>
</div>
<a class="anchor" id="aa34c7ab071175e4375822e6f1d47fe0d"></a><!-- doxytag: member="CVC3::TheoryBitvector::newConcatExpr" ref="aa34c7ab071175e4375822e6f1d47fe0d" args="(const Expr &amp;t1, const Expr &amp;t2)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Expr.html">Expr</a> TheoryBitvector::newConcatExpr </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>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l04997">4997</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="theory__bitvector_8h_source.html#l00036">CVC3::BITVECTOR</a>, <a class="el" href="theory__bitvector_8h_source.html#l00038">CVC3::CONCAT</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="type_8h_source.html#l00052">CVC3::Type::getExpr()</a>, <a class="el" href="expr_8h_source.html#l01196">CVC3::Expr::getOpKind()</a>, <a class="el" href="expr_8h_source.html#l01259">CVC3::Expr::getType()</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

<p>Referenced by <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02922">CVC3::BitvectorTheoremProducer::bitwiseConcat()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l03068">CVC3::BitvectorTheoremProducer::bitwiseConstElim()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l05298">CVC3::BitvectorTheoremProducer::buildPlusTerm()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02107">CVC3::BitvectorTheoremProducer::bvlshrToConcat()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02068">CVC3::BitvectorTheoremProducer::bvshlSplit()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02033">CVC3::BitvectorTheoremProducer::bvshlToConcat()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l06272">CVC3::BitvectorTheoremProducer::bvUDivTheorem()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l05169">CVC3::BitvectorTheoremProducer::chopConcat()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l01968">CVC3::BitvectorTheoremProducer::constWidthLeftShiftToConcat()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02465">CVC3::BitvectorTheoremProducer::extractConcat()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l01944">CVC3::BitvectorTheoremProducer::leftShiftToConcat()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l04687">CVC3::BitvectorTheoremProducer::liftConcatBVMult()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l04924">CVC3::BitvectorTheoremProducer::liftConcatBVPlus()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02678">CVC3::BitvectorTheoremProducer::negConcat()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l03424">CVC3::BitvectorTheoremProducer::pad()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l04087">parseExprOp()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l05609">CVC3::BitvectorTheoremProducer::processExtract()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l06109">CVC3::BitvectorTheoremProducer::repeatRule()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02001">CVC3::BitvectorTheoremProducer::rightShiftToConcat()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l06142">CVC3::BitvectorTheoremProducer::rotlRule()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l06173">CVC3::BitvectorTheoremProducer::rotrRule()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l00339">CVC3::BitvectorTheoremProducer::signExtendRule()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l06713">CVC3::BitvectorTheoremProducer::solveExtractOverlap()</a>, and <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l06081">CVC3::BitvectorTheoremProducer::zeroExtendRule()</a>.</p>

</div>
</div>
<a class="anchor" id="ad7d5b3725d0cae0109eaf01c7b45e2d6"></a><!-- doxytag: member="CVC3::TheoryBitvector::newConcatExpr" ref="ad7d5b3725d0cae0109eaf01c7b45e2d6" args="(const Expr &amp;t1, const Expr &amp;t2, const Expr &amp;t3)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Expr.html">Expr</a> TheoryBitvector::newConcatExpr </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>, </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>t3</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l05008">5008</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="theory__bitvector_8h_source.html#l00036">CVC3::BITVECTOR</a>, <a class="el" href="theory__bitvector_8h_source.html#l00038">CVC3::CONCAT</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="type_8h_source.html#l00052">CVC3::Type::getExpr()</a>, <a class="el" href="expr_8h_source.html#l01196">CVC3::Expr::getOpKind()</a>, <a class="el" href="expr_8h_source.html#l01259">CVC3::Expr::getType()</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

</div>
</div>
<a class="anchor" id="a572efe0038efbeba9566895c58401fcb"></a><!-- doxytag: member="CVC3::TheoryBitvector::newConcatExpr" ref="a572efe0038efbeba9566895c58401fcb" args="(const std::vector&lt; Expr &gt; &amp;kids)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Expr.html">Expr</a> TheoryBitvector::newConcatExpr </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>kids</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l05023">5023</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="theory__bitvector_8h_source.html#l00036">CVC3::BITVECTOR</a>, <a class="el" href="theory__bitvector_8h_source.html#l00038">CVC3::CONCAT</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, and <a class="el" href="theory_8h_source.html#l00090">CVC3::Theory::getEM()</a>.</p>

</div>
</div>
<a class="anchor" id="a352c6547a3a7fba398cdd2b2ea391b22"></a><!-- doxytag: member="CVC3::TheoryBitvector::newBVConstExpr" ref="a352c6547a3a7fba398cdd2b2ea391b22" args="(const std::string &amp;s, int base=2)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Expr.html">Expr</a> TheoryBitvector::newBVConstExpr </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>s</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>base</em> = <code>2</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l05214">5214</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="theory__bitvector_8h_source.html#l00103">d_bvConstExprIndex</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="theory_8h_source.html#l00090">CVC3::Theory::getEM()</a>, <a class="el" href="cvc__util_8h_source.html#l00046">CVC3::int2string()</a>, and <a class="el" href="expr__manager_8h_source.html#l00289">CVC3::ExprManager::newExpr()</a>.</p>

<p>Referenced by <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l00895">CVC3::BitvectorTheoremProducer::bitExtractAllToConstEq()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l01829">CVC3::BitvectorTheoremProducer::bitExtractBVASHR()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l01775">CVC3::BitvectorTheoremProducer::bitExtractBVLSHR()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l01721">CVC3::BitvectorTheoremProducer::bitExtractBVSHL()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l00050">CVC3::BitvectorTheoremProducer::BitvectorTheoremProducer()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02842">CVC3::BitvectorTheoremProducer::bitwiseConst()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l05298">CVC3::BitvectorTheoremProducer::buildPlusTerm()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l03503">CVC3::BitvectorTheoremProducer::bvConstMultAssocRule()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l04128">CVC3::BitvectorTheoremProducer::bvmultBVUminus()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l03329">CVC3::BitvectorTheoremProducer::bvmultConst()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l03290">CVC3::BitvectorTheoremProducer::bvplusConst()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l06462">CVC3::BitvectorTheoremProducer::bvSDivRewrite()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02068">CVC3::BitvectorTheoremProducer::bvshlSplit()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02033">CVC3::BitvectorTheoremProducer::bvshlToConcat()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l06574">CVC3::BitvectorTheoremProducer::bvSModRewrite()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l06518">CVC3::BitvectorTheoremProducer::bvSRemRewrite()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l06243">CVC3::BitvectorTheoremProducer::bvUDivConst()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l06272">CVC3::BitvectorTheoremProducer::bvUDivTheorem()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l04011">CVC3::BitvectorTheoremProducer::bvuminusBVConst()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l04038">CVC3::BitvectorTheoremProducer::bvuminusBVMult()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l03989">CVC3::BitvectorTheoremProducer::bvuminusToBVPlus()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l04105">CVC3::BitvectorTheoremProducer::bvuminusVar()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l06201">CVC3::BitvectorTheoremProducer::bvURemConst()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l05692">CVC3::BitvectorTheoremProducer::canonBVEQ()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l04770">CVC3::BitvectorTheoremProducer::canonBVMult()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l05587">CVC3::BitvectorTheoremProducer::canonBVUMinus()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l02574">checkSat()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l05169">CVC3::BitvectorTheoremProducer::chopConcat()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l03345">computeModel()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l03195">CVC3::BitvectorTheoremProducer::concatConst()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02270">CVC3::BitvectorTheoremProducer::constMultToPlus()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l01968">CVC3::BitvectorTheoremProducer::constWidthLeftShiftToConcat()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l03785">CVC3::BitvectorTheoremProducer::createNewPlusCollection()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02365">CVC3::BitvectorTheoremProducer::extractConst()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l02945">finiteTypeInfo()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l04371">CVC3::BitvectorTheoremProducer::isolate_var()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l01944">CVC3::BitvectorTheoremProducer::leftShiftToConcat()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l01965">multiply_coeff()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02655">CVC3::BitvectorTheoremProducer::negConst()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02719">CVC3::BitvectorTheoremProducer::negElim()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l05182">newBVConstExpr()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l05159">newBVOneString()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l05145">newBVZeroString()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l04087">parseExprOp()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l03662">print()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l05459">signed_newBVConstExpr()</a>, and <a class="el" href="theory__bitvector_8cpp_source.html#l01708">TheoryBitvector()</a>.</p>

</div>
</div>
<a class="anchor" id="a1aa46633fe05da5f22d43ee651229c93"></a><!-- doxytag: member="CVC3::TheoryBitvector::newBVConstExpr" ref="a1aa46633fe05da5f22d43ee651229c93" args="(const std::vector&lt; bool &gt; &amp;bits)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Expr.html">Expr</a> TheoryBitvector::newBVConstExpr </td>
          <td>(</td>
          <td class="paramtype">const std::vector&lt; bool &gt; &amp;&#160;</td>
          <td class="paramname"><em>bits</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l05172">5172</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="theory__bitvector_8h_source.html#l00103">d_bvConstExprIndex</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="theory_8h_source.html#l00090">CVC3::Theory::getEM()</a>, and <a class="el" href="expr__manager_8h_source.html#l00289">CVC3::ExprManager::newExpr()</a>.</p>

</div>
</div>
<a class="anchor" id="ae2a5085da47f7b62ed4cb5a312bd9fb3"></a><!-- doxytag: member="CVC3::TheoryBitvector::signed_newBVConstExpr" ref="ae2a5085da47f7b62ed4cb5a312bd9fb3" args="(Rational c, int bv_size)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Expr.html">Expr</a> TheoryBitvector::signed_newBVConstExpr </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1Rational.html">Rational</a>&#160;</td>
          <td class="paramname"><em>c</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>bv_size</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l05459">5459</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="theory__bitvector_8cpp_source.html#l05495">computeNegBVConst()</a>, and <a class="el" href="theory__bitvector_8cpp_source.html#l05214">newBVConstExpr()</a>.</p>

</div>
</div>
<a class="anchor" id="ab5b4018be164d7f81fb9cdb1a3a1ca07"></a><!-- doxytag: member="CVC3::TheoryBitvector::newBVConstExpr" ref="ab5b4018be164d7f81fb9cdb1a3a1ca07" args="(const Rational &amp;r, int len=0)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Expr.html">Expr</a> TheoryBitvector::newBVConstExpr </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Rational.html">Rational</a> &amp;&#160;</td>
          <td class="paramname"><em>r</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>len</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l05182">5182</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="cvc__util_8h_source.html#l00046">CVC3::int2string()</a>, <a class="el" href="classCVC3_1_1Rational.html#a1366320f4de558bb964c67f8aecedb36">CVC3::Rational::isInteger()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l05214">newBVConstExpr()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l00059">pad()</a>, and <a class="el" href="classCVC3_1_1Rational.html#a195c125a76cb9a6c5731369e244a2de3">CVC3::Rational::toString()</a>.</p>

</div>
</div>
<a class="anchor" id="aedd220a3f14097d52b80576cdc7b73ec"></a><!-- doxytag: member="CVC3::TheoryBitvector::newBVZeroString" ref="aedd220a3f14097d52b80576cdc7b73ec" args="(int r)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Expr.html">Expr</a> TheoryBitvector::newBVZeroString </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>r</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>produces a string of 0's of length bvLength </p>

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l05145">5145</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="cvc__util_8h_source.html#l00046">CVC3::int2string()</a>, and <a class="el" href="theory__bitvector_8cpp_source.html#l05214">newBVConstExpr()</a>.</p>

<p>Referenced by <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l01141">CVC3::BitvectorTheoremProducer::bitExtractBVMult()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l01074">CVC3::BitvectorTheoremProducer::bitExtractConstBVMult()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l03068">CVC3::BitvectorTheoremProducer::bitwiseConstElim()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02970">CVC3::BitvectorTheoremProducer::bitwiseFlatten()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l05298">CVC3::BitvectorTheoremProducer::buildPlusTerm()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02107">CVC3::BitvectorTheoremProducer::bvlshrToConcat()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l04128">CVC3::BitvectorTheoremProducer::bvmultBVUminus()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02135">CVC3::BitvectorTheoremProducer::bvShiftZero()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02068">CVC3::BitvectorTheoremProducer::bvshlSplit()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l04038">CVC3::BitvectorTheoremProducer::bvuminusBVMult()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l05692">CVC3::BitvectorTheoremProducer::canonBVEQ()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l05169">CVC3::BitvectorTheoremProducer::chopConcat()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l05570">computeTCC()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l04371">CVC3::BitvectorTheoremProducer::isolate_var()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l03916">CVC3::BitvectorTheoremProducer::lhsMinusRhsRule()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l04687">CVC3::BitvectorTheoremProducer::liftConcatBVMult()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l04924">CVC3::BitvectorTheoremProducer::liftConcatBVPlus()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l04343">CVC3::BitvectorTheoremProducer::MarkNonSolvableEq()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l02178">Odd_coeff()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l03424">CVC3::BitvectorTheoremProducer::pad()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02226">CVC3::BitvectorTheoremProducer::rewriteBVCOMP()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02001">CVC3::BitvectorTheoremProducer::rightShiftToConcat()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l03845">CVC3::BitvectorTheoremProducer::sumNormalizedElements()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l03356">CVC3::BitvectorTheoremProducer::zeroCoeffBVMult()</a>, and <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l06081">CVC3::BitvectorTheoremProducer::zeroExtendRule()</a>.</p>

</div>
</div>
<a class="anchor" id="a7e33736866d0752cdd551dd0059ca1bd"></a><!-- doxytag: member="CVC3::TheoryBitvector::newBVOneString" ref="a7e33736866d0752cdd551dd0059ca1bd" args="(int r)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Expr.html">Expr</a> TheoryBitvector::newBVOneString </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>r</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>produces a string of 1's of length bvLength </p>

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l05159">5159</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="cvc__util_8h_source.html#l00046">CVC3::int2string()</a>, and <a class="el" href="theory__bitvector_8cpp_source.html#l05214">newBVConstExpr()</a>.</p>

<p>Referenced by <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l01141">CVC3::BitvectorTheoremProducer::bitExtractBVMult()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l03068">CVC3::BitvectorTheoremProducer::bitwiseConstElim()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02970">CVC3::BitvectorTheoremProducer::bitwiseFlatten()</a>, and <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02226">CVC3::BitvectorTheoremProducer::rewriteBVCOMP()</a>.</p>

</div>
</div>
<a class="anchor" id="a17a104b42804d41d9a11d15faf727166"></a><!-- doxytag: member="CVC3::TheoryBitvector::newBVExtractExpr" ref="a17a104b42804d41d9a11d15faf727166" args="(const Expr &amp;e, int hi, int low)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Expr.html">Expr</a> TheoryBitvector::newBVExtractExpr </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>e</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>hi</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>low</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>hi and low are bit indices </p>

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l05237">5237</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="theory__bitvector_8h_source.html#l00036">CVC3::BITVECTOR</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l00045">BVSize()</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="theory__bitvector_8h_source.html#l00039">CVC3::EXTRACT</a>, <a class="el" href="theory_8h_source.html#l00090">CVC3::Theory::getEM()</a>, <a class="el" href="type_8h_source.html#l00052">CVC3::Type::getExpr()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l05385">getFixedLeftShiftParam()</a>, <a class="el" href="expr_8h_source.html#l01196">CVC3::Expr::getOpKind()</a>, <a class="el" href="expr_8h_source.html#l01259">CVC3::Expr::getType()</a>, <a class="el" href="cvc__util_8h_source.html#l00046">CVC3::int2string()</a>, <a class="el" href="theory__bitvector_8h_source.html#l00042">CVC3::LEFTSHIFT</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l04968">newFixedConstWidthLeftShiftExpr()</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

<p>Referenced by <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l01141">CVC3::BitvectorTheoremProducer::bitExtractBVMult()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l00948">CVC3::BitvectorTheoremProducer::bitExtractRewrite()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l00927">CVC3::BitvectorTheoremProducer::bitExtractToExtract()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02922">CVC3::BitvectorTheoremProducer::bitwiseConcat()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l03068">CVC3::BitvectorTheoremProducer::bitwiseConstElim()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l05298">CVC3::BitvectorTheoremProducer::buildPlusTerm()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02155">CVC3::BitvectorTheoremProducer::bvashrToConcat()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02107">CVC3::BitvectorTheoremProducer::bvlshrToConcat()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l06462">CVC3::BitvectorTheoremProducer::bvSDivRewrite()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02068">CVC3::BitvectorTheoremProducer::bvshlSplit()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02033">CVC3::BitvectorTheoremProducer::bvshlToConcat()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l06574">CVC3::BitvectorTheoremProducer::bvSModRewrite()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l06518">CVC3::BitvectorTheoremProducer::bvSRemRewrite()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l05692">CVC3::BitvectorTheoremProducer::canonBVEQ()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l03239">CVC3::BitvectorTheoremProducer::concatMergeExtract()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l01968">CVC3::BitvectorTheoremProducer::constWidthLeftShiftToConcat()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l01911">CVC3::BitvectorTheoremProducer::eqToBits()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l04294">CVC3::BitvectorTheoremProducer::expandTypePred()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02532">CVC3::BitvectorTheoremProducer::extractBitwise()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l04209">CVC3::BitvectorTheoremProducer::extractBVMult()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l04241">CVC3::BitvectorTheoremProducer::extractBVPlus()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02465">CVC3::BitvectorTheoremProducer::extractConcat()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02421">CVC3::BitvectorTheoremProducer::extractExtract()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l00762">CVC3::BitvectorTheoremProducer::generalIneqn()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l05020">CVC3::BitvectorTheoremProducer::getPlusTerms()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02591">CVC3::BitvectorTheoremProducer::iteExtractRule()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l04924">CVC3::BitvectorTheoremProducer::liftConcatBVPlus()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l03424">CVC3::BitvectorTheoremProducer::pad()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l04087">parseExprOp()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02001">CVC3::BitvectorTheoremProducer::rightShiftToConcat()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l06142">CVC3::BitvectorTheoremProducer::rotlRule()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l06173">CVC3::BitvectorTheoremProducer::rotrRule()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l00437">CVC3::BitvectorTheoremProducer::signBVLTRule()</a>, and <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l00339">CVC3::BitvectorTheoremProducer::signExtendRule()</a>.</p>

</div>
</div>
<a class="anchor" id="af77dddbf974d441cf61294922be53739"></a><!-- doxytag: member="CVC3::TheoryBitvector::newBVSubExpr" ref="af77dddbf974d441cf61294922be53739" args="(const Expr &amp;t1, const Expr &amp;t2)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Expr.html">Expr</a> TheoryBitvector::newBVSubExpr </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>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l05260">5260</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="theory__bitvector_8h_source.html#l00036">CVC3::BITVECTOR</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l00045">BVSize()</a>, <a class="el" href="theory__bitvector_8h_source.html#l00065">CVC3::BVSUB</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="type_8h_source.html#l00052">CVC3::Type::getExpr()</a>, <a class="el" href="expr_8h_source.html#l01196">CVC3::Expr::getOpKind()</a>, <a class="el" href="expr_8h_source.html#l01259">CVC3::Expr::getType()</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

<p>Referenced by <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l06229">CVC3::BitvectorTheoremProducer::bvURemRewrite()</a>, and <a class="el" href="theory__bitvector_8cpp_source.html#l04087">parseExprOp()</a>.</p>

</div>
</div>
<a class="anchor" id="ac8e00bf8c66a041e12326e09c4d369ad"></a><!-- doxytag: member="CVC3::TheoryBitvector::newBVPlusExpr" ref="ac8e00bf8c66a041e12326e09c4d369ad" args="(int numbits, const Expr &amp;k1, const Expr &amp;k2)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Expr.html">Expr</a> TheoryBitvector::newBVPlusExpr </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>numbits</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>k1</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>k2</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>'numbits' is the number of bits in the result </p>

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l05275">5275</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="theory__bitvector_8h_source.html#l00036">CVC3::BITVECTOR</a>, <a class="el" href="theory__bitvector_8h_source.html#l00064">CVC3::BVPLUS</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l00045">BVSize()</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="theory_8h_source.html#l00090">CVC3::Theory::getEM()</a>, <a class="el" href="type_8h_source.html#l00052">CVC3::Type::getExpr()</a>, <a class="el" href="expr_8h_source.html#l01196">CVC3::Expr::getOpKind()</a>, <a class="el" href="expr_8h_source.html#l01259">CVC3::Expr::getType()</a>, <a class="el" href="cvc__util_8h_source.html#l00046">CVC3::int2string()</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

<p>Referenced by <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l01141">CVC3::BitvectorTheoremProducer::bitExtractBVMult()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l01074">CVC3::BitvectorTheoremProducer::bitExtractConstBVMult()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l05298">CVC3::BitvectorTheoremProducer::buildPlusTerm()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l03615">CVC3::BitvectorTheoremProducer::bvMultDistRule()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l01497">CVC3::BitvectorTheoremProducer::bvPlusAssociativityRule()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02318">CVC3::BitvectorTheoremProducer::bvplusZeroConcatRule()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l06574">CVC3::BitvectorTheoremProducer::bvSModRewrite()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l06272">CVC3::BitvectorTheoremProducer::bvUDivTheorem()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l03989">CVC3::BitvectorTheoremProducer::bvuminusToBVPlus()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l05692">CVC3::BitvectorTheoremProducer::canonBVEQ()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l05169">CVC3::BitvectorTheoremProducer::chopConcat()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02270">CVC3::BitvectorTheoremProducer::constMultToPlus()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l04882">CVC3::BitvectorTheoremProducer::distributive_rule()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l03655">CVC3::BitvectorTheoremProducer::flattenBVPlus()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l04371">CVC3::BitvectorTheoremProducer::isolate_var()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l03916">CVC3::BitvectorTheoremProducer::lhsMinusRhsRule()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l04687">CVC3::BitvectorTheoremProducer::liftConcatBVMult()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l04924">CVC3::BitvectorTheoremProducer::liftConcatBVPlus()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l01965">multiply_coeff()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02719">CVC3::BitvectorTheoremProducer::negElim()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l05317">newBVPlusPadExpr()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l03449">CVC3::BitvectorTheoremProducer::padBVPlus()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02241">CVC3::BitvectorTheoremProducer::rewriteBVSub()</a>, and <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l03845">CVC3::BitvectorTheoremProducer::sumNormalizedElements()</a>.</p>

</div>
</div>
<a class="anchor" id="a7de12d92b8235b6b0675c65dd2b5f2dd"></a><!-- doxytag: member="CVC3::TheoryBitvector::newBVPlusExpr" ref="a7de12d92b8235b6b0675c65dd2b5f2dd" args="(int numbits, const std::vector&lt; Expr &gt; &amp;k)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Expr.html">Expr</a> TheoryBitvector::newBVPlusExpr </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>numbits</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></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>k</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>'numbits' is the number of bits in the result </p>

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l05296">5296</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="theory__bitvector_8h_source.html#l00036">CVC3::BITVECTOR</a>, <a class="el" href="theory__bitvector_8h_source.html#l00064">CVC3::BVPLUS</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l00045">BVSize()</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="theory_8h_source.html#l00090">CVC3::Theory::getEM()</a>, and <a class="el" href="cvc__util_8h_source.html#l00046">CVC3::int2string()</a>.</p>

</div>
</div>
<a class="anchor" id="a284ff4a222be9ceaa97387661c76b147"></a><!-- doxytag: member="CVC3::TheoryBitvector::newBVPlusPadExpr" ref="a284ff4a222be9ceaa97387661c76b147" args="(int bvLength, const std::vector&lt; Expr &gt; &amp;k)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Expr.html">Expr</a> TheoryBitvector::newBVPlusPadExpr </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>bvLength</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></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>k</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>pads children and then builds plus expr </p>

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l05317">5317</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="theory__bitvector_8cpp_source.html#l05275">newBVPlusExpr()</a>, and <a class="el" href="theory__bitvector_8cpp_source.html#l00059">pad()</a>.</p>

<p>Referenced by <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l04241">CVC3::BitvectorTheoremProducer::extractBVPlus()</a>, and <a class="el" href="theory__bitvector_8cpp_source.html#l04087">parseExprOp()</a>.</p>

</div>
</div>
<a class="anchor" id="ae601c7122d288358c50df9e27bd5a9df"></a><!-- doxytag: member="CVC3::TheoryBitvector::newBVMultExpr" ref="ae601c7122d288358c50df9e27bd5a9df" args="(int bvLength, const Expr &amp;t1, const Expr &amp;t2)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Expr.html">Expr</a> TheoryBitvector::newBVMultExpr </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>bvLength</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>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>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l05038">5038</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="theory__bitvector_8h_source.html#l00036">CVC3::BITVECTOR</a>, <a class="el" href="theory__bitvector_8h_source.html#l00066">CVC3::BVMULT</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l00045">BVSize()</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="theory_8h_source.html#l00090">CVC3::Theory::getEM()</a>, <a class="el" href="type_8h_source.html#l00052">CVC3::Type::getExpr()</a>, <a class="el" href="expr_8h_source.html#l01196">CVC3::Expr::getOpKind()</a>, <a class="el" href="expr_8h_source.html#l01259">CVC3::Expr::getType()</a>, <a class="el" href="cvc__util_8h_source.html#l00046">CVC3::int2string()</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

<p>Referenced by <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l03503">CVC3::BitvectorTheoremProducer::bvConstMultAssocRule()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l04619">CVC3::BitvectorTheoremProducer::BVMult_order_subterms()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l03541">CVC3::BitvectorTheoremProducer::bvMultAssocRule()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l04128">CVC3::BitvectorTheoremProducer::bvmultBVUminus()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l03615">CVC3::BitvectorTheoremProducer::bvMultDistRule()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l06272">CVC3::BitvectorTheoremProducer::bvUDivTheorem()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l04038">CVC3::BitvectorTheoremProducer::bvuminusBVMult()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l04105">CVC3::BitvectorTheoremProducer::bvuminusVar()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l06229">CVC3::BitvectorTheoremProducer::bvURemRewrite()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l04770">CVC3::BitvectorTheoremProducer::canonBVMult()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l05587">CVC3::BitvectorTheoremProducer::canonBVUMinus()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l03785">CVC3::BitvectorTheoremProducer::createNewPlusCollection()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l04882">CVC3::BitvectorTheoremProducer::distributive_rule()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l03403">CVC3::BitvectorTheoremProducer::flipBVMult()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l04371">CVC3::BitvectorTheoremProducer::isolate_var()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l01965">multiply_coeff()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02719">CVC3::BitvectorTheoremProducer::negElim()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l05073">newBVMultPadExpr()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l03479">CVC3::BitvectorTheoremProducer::padBVMult()</a>, and <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l03449">CVC3::BitvectorTheoremProducer::padBVPlus()</a>.</p>

</div>
</div>
<a class="anchor" id="ae53123881dda650f5722e10fdceb11d7"></a><!-- doxytag: member="CVC3::TheoryBitvector::newBVMultExpr" ref="ae53123881dda650f5722e10fdceb11d7" args="(int bvLength, const std::vector&lt; Expr &gt; &amp;kids)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Expr.html">Expr</a> TheoryBitvector::newBVMultExpr </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>bvLength</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></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>kids</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l05056">5056</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="theory__bitvector_8h_source.html#l00036">CVC3::BITVECTOR</a>, <a class="el" href="theory__bitvector_8h_source.html#l00066">CVC3::BVMULT</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l00045">BVSize()</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="theory_8h_source.html#l00090">CVC3::Theory::getEM()</a>, and <a class="el" href="cvc__util_8h_source.html#l00046">CVC3::int2string()</a>.</p>

</div>
</div>
<a class="anchor" id="ad27eceadd690e39ef8ad88881925ac0c"></a><!-- doxytag: member="CVC3::TheoryBitvector::newBVMultPadExpr" ref="ad27eceadd690e39ef8ad88881925ac0c" args="(int bvLength, const Expr &amp;t1, const Expr &amp;t2)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Expr.html">Expr</a> TheoryBitvector::newBVMultPadExpr </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>bvLength</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>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>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l05083">5083</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="theory__bitvector_8cpp_source.html#l05038">newBVMultExpr()</a>, and <a class="el" href="theory__bitvector_8cpp_source.html#l00059">pad()</a>.</p>

<p>Referenced by <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l05298">CVC3::BitvectorTheoremProducer::buildPlusTerm()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l05692">CVC3::BitvectorTheoremProducer::canonBVEQ()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l04209">CVC3::BitvectorTheoremProducer::extractBVMult()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l04687">CVC3::BitvectorTheoremProducer::liftConcatBVMult()</a>, and <a class="el" href="theory__bitvector_8cpp_source.html#l04087">parseExprOp()</a>.</p>

</div>
</div>
<a class="anchor" id="ac4a3e23b2c1039759f22316b4dc00df9"></a><!-- doxytag: member="CVC3::TheoryBitvector::newBVMultPadExpr" ref="ac4a3e23b2c1039759f22316b4dc00df9" args="(int bvLength, const std::vector&lt; Expr &gt; &amp;kids)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Expr.html">Expr</a> TheoryBitvector::newBVMultPadExpr </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>bvLength</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></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>kids</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l05073">5073</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="theory__bitvector_8cpp_source.html#l05038">newBVMultExpr()</a>, and <a class="el" href="theory__bitvector_8cpp_source.html#l00059">pad()</a>.</p>

</div>
</div>
<a class="anchor" id="a43b7fde20faf94ca0691c9c78f49983e"></a><!-- doxytag: member="CVC3::TheoryBitvector::newBVUDivExpr" ref="a43b7fde20faf94ca0691c9c78f49983e" args="(const Expr &amp;t1, const Expr &amp;t2)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Expr.html">Expr</a> TheoryBitvector::newBVUDivExpr </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>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l05089">5089</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="theory__bitvector_8h_source.html#l00036">CVC3::BITVECTOR</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l00045">BVSize()</a>, <a class="el" href="theory__bitvector_8h_source.html#l00067">CVC3::BVUDIV</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="type_8h_source.html#l00052">CVC3::Type::getExpr()</a>, <a class="el" href="expr_8h_source.html#l01196">CVC3::Expr::getOpKind()</a>, <a class="el" href="expr_8h_source.html#l01259">CVC3::Expr::getType()</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

<p>Referenced by <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l06462">CVC3::BitvectorTheoremProducer::bvSDivRewrite()</a>, and <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l06229">CVC3::BitvectorTheoremProducer::bvURemRewrite()</a>.</p>

</div>
</div>
<a class="anchor" id="a32e681fc6dc959306710c880f83c95ba"></a><!-- doxytag: member="CVC3::TheoryBitvector::newBVURemExpr" ref="a32e681fc6dc959306710c880f83c95ba" args="(const Expr &amp;t1, const Expr &amp;t2)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Expr.html">Expr</a> TheoryBitvector::newBVURemExpr </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>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l05100">5100</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="theory__bitvector_8h_source.html#l00036">CVC3::BITVECTOR</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l00045">BVSize()</a>, <a class="el" href="theory__bitvector_8h_source.html#l00069">CVC3::BVUREM</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="type_8h_source.html#l00052">CVC3::Type::getExpr()</a>, <a class="el" href="expr_8h_source.html#l01196">CVC3::Expr::getOpKind()</a>, <a class="el" href="expr_8h_source.html#l01259">CVC3::Expr::getType()</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

<p>Referenced by <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l06574">CVC3::BitvectorTheoremProducer::bvSModRewrite()</a>, and <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l06518">CVC3::BitvectorTheoremProducer::bvSRemRewrite()</a>.</p>

</div>
</div>
<a class="anchor" id="aa17d7de309b676bac0454ae3dcecb38f"></a><!-- doxytag: member="CVC3::TheoryBitvector::newBVSDivExpr" ref="aa17d7de309b676bac0454ae3dcecb38f" args="(const Expr &amp;t1, const Expr &amp;t2)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Expr.html">Expr</a> TheoryBitvector::newBVSDivExpr </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>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l05111">5111</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="theory__bitvector_8h_source.html#l00036">CVC3::BITVECTOR</a>, <a class="el" href="theory__bitvector_8h_source.html#l00068">CVC3::BVSDIV</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l00045">BVSize()</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="type_8h_source.html#l00052">CVC3::Type::getExpr()</a>, <a class="el" href="expr_8h_source.html#l01196">CVC3::Expr::getOpKind()</a>, <a class="el" href="expr_8h_source.html#l01259">CVC3::Expr::getType()</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

</div>
</div>
<a class="anchor" id="a751ed4d2b46020c65ace988d96633142"></a><!-- doxytag: member="CVC3::TheoryBitvector::newBVSRemExpr" ref="a751ed4d2b46020c65ace988d96633142" args="(const Expr &amp;t1, const Expr &amp;t2)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Expr.html">Expr</a> TheoryBitvector::newBVSRemExpr </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>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l05122">5122</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="theory__bitvector_8h_source.html#l00036">CVC3::BITVECTOR</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l00045">BVSize()</a>, <a class="el" href="theory__bitvector_8h_source.html#l00070">CVC3::BVSREM</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="type_8h_source.html#l00052">CVC3::Type::getExpr()</a>, <a class="el" href="expr_8h_source.html#l01196">CVC3::Expr::getOpKind()</a>, <a class="el" href="expr_8h_source.html#l01259">CVC3::Expr::getType()</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

</div>
</div>
<a class="anchor" id="ac520790da34aa971a9ee4044b112ae82"></a><!-- doxytag: member="CVC3::TheoryBitvector::newBVSModExpr" ref="ac520790da34aa971a9ee4044b112ae82" args="(const Expr &amp;t1, const Expr &amp;t2)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Expr.html">Expr</a> TheoryBitvector::newBVSModExpr </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>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l05133">5133</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="theory__bitvector_8h_source.html#l00036">CVC3::BITVECTOR</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l00045">BVSize()</a>, <a class="el" href="theory__bitvector_8h_source.html#l00071">CVC3::BVSMOD</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="type_8h_source.html#l00052">CVC3::Type::getExpr()</a>, <a class="el" href="expr_8h_source.html#l01196">CVC3::Expr::getOpKind()</a>, <a class="el" href="expr_8h_source.html#l01259">CVC3::Expr::getType()</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

</div>
</div>
<a class="anchor" id="a8e2bf7866c94979dfed7031a81c2e002"></a><!-- doxytag: member="CVC3::TheoryBitvector::getBitvectorTypeParam" ref="a8e2bf7866c94979dfed7031a81c2e002" args="(const Expr &amp;e)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int TheoryBitvector::getBitvectorTypeParam </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>e</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l05331">5331</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="theory__bitvector_8h_source.html#l00036">CVC3::BITVECTOR</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="classCVC3_1_1Rational.html#a094636dfa3a740640ca1b0c7406f7e8f">CVC3::Rational::getInt()</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>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

<p>Referenced by <a class="el" href="theory__bitvector_8cpp_source.html#l03345">computeModel()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l03296">computeModelTerm()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l04294">CVC3::BitvectorTheoremProducer::expandTypePred()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l02945">finiteTypeInfo()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l03662">print()</a>, and <a class="el" href="translator_8cpp_source.html#l01850">CVC3::Translator::printArrayExpr()</a>.</p>

</div>
</div>
<a class="anchor" id="a0d6c5357741846c314acfda3f93094a9"></a><!-- doxytag: member="CVC3::TheoryBitvector::getBitvectorTypeParam" ref="a0d6c5357741846c314acfda3f93094a9" args="(const Type &amp;t)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int CVC3::TheoryBitvector::getBitvectorTypeParam </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Type.html">Type</a> &amp;&#160;</td>
          <td class="paramname"><em>t</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="theory__bitvector_8h_source.html#l00380">380</a> of file <a class="el" href="theory__bitvector_8h_source.html">theory_bitvector.h</a>.</p>

<p>References <a class="el" href="theory__bitvector_8h_source.html#l00380">getBitvectorTypeParam()</a>, and <a class="el" href="type_8h_source.html#l00052">CVC3::Type::getExpr()</a>.</p>

<p>Referenced by <a class="el" href="theory__bitvector_8h_source.html#l00380">getBitvectorTypeParam()</a>.</p>

</div>
</div>
<a class="anchor" id="a697bd2ebc3d61f913039bf77bbdc3c51"></a><!-- doxytag: member="CVC3::TheoryBitvector::getTypePredType" ref="a697bd2ebc3d61f913039bf77bbdc3c51" args="(const Expr &amp;tp)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Type.html">Type</a> TheoryBitvector::getTypePredType </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>tp</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l05340">5340</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="theory__bitvector_8h_source.html#l00085">CVC3::BVTYPEPRED</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="expr_8h_source.html#l01191">CVC3::Expr::getOpExpr()</a>, <a class="el" href="expr_8h_source.html#l01196">CVC3::Expr::getOpKind()</a>, <a class="el" href="expr_8h_source.html#l01014">CVC3::Expr::isApply()</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

<p>Referenced by <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l04294">CVC3::BitvectorTheoremProducer::expandTypePred()</a>.</p>

</div>
</div>
<a class="anchor" id="a96385e1a741679ebbabe669b8ed4c5bf"></a><!-- doxytag: member="CVC3::TheoryBitvector::getTypePredExpr" ref="a96385e1a741679ebbabe669b8ed4c5bf" args="(const Expr &amp;tp)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp; TheoryBitvector::getTypePredExpr </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>tp</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l05348">5348</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="theory__bitvector_8h_source.html#l00085">CVC3::BVTYPEPRED</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="expr_8h_source.html#l01196">CVC3::Expr::getOpKind()</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

<p>Referenced by <a class="el" href="theory__bitvector_8cpp_source.html#l01861">assertFact()</a>, and <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l04294">CVC3::BitvectorTheoremProducer::expandTypePred()</a>.</p>

</div>
</div>
<a class="anchor" id="a7737e8531a34515a5d27afcb23bb314e"></a><!-- doxytag: member="CVC3::TheoryBitvector::getSXIndex" ref="a7737e8531a34515a5d27afcb23bb314e" args="(const Expr &amp;e)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int TheoryBitvector::getSXIndex </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>e</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l05365">5365</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="classCVC3_1_1Rational.html#a094636dfa3a740640ca1b0c7406f7e8f">CVC3::Rational::getInt()</a>, <a class="el" href="expr_8h_source.html#l01191">CVC3::Expr::getOpExpr()</a>, <a class="el" href="expr_8h_source.html#l01196">CVC3::Expr::getOpKind()</a>, <a class="el" href="expr_8h_source.html#l01135">CVC3::Expr::getRational()</a>, <a class="el" href="expr_8h_source.html#l01014">CVC3::Expr::isApply()</a>, <a class="el" href="theory__bitvector_8h_source.html#l00048">CVC3::SX</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

<p>Referenced by <a class="el" href="theory__bitvector_8cpp_source.html#l02969">computeType()</a>, and <a class="el" href="theory__bitvector_8cpp_source.html#l03662">print()</a>.</p>

</div>
</div>
<a class="anchor" id="a2b61f3705b8789f652ea688ef331344f"></a><!-- doxytag: member="CVC3::TheoryBitvector::getBVIndex" ref="a2b61f3705b8789f652ea688ef331344f" args="(const Expr &amp;e)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int TheoryBitvector::getBVIndex </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>e</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l05373">5373</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="theory__bitvector_8h_source.html#l00049">CVC3::BVREPEAT</a>, <a class="el" href="theory__bitvector_8h_source.html#l00051">CVC3::BVROTL</a>, <a class="el" href="theory__bitvector_8h_source.html#l00052">CVC3::BVROTR</a>, <a class="el" href="theory__bitvector_8h_source.html#l00050">CVC3::BVZEROEXTEND</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="classCVC3_1_1Rational.html#a094636dfa3a740640ca1b0c7406f7e8f">CVC3::Rational::getInt()</a>, <a class="el" href="expr_8h_source.html#l01191">CVC3::Expr::getOpExpr()</a>, <a class="el" href="expr_8h_source.html#l01196">CVC3::Expr::getOpKind()</a>, <a class="el" href="expr_8h_source.html#l01135">CVC3::Expr::getRational()</a>, <a class="el" href="expr_8h_source.html#l01014">CVC3::Expr::isApply()</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

<p>Referenced by <a class="el" href="theory__bitvector_8cpp_source.html#l02969">computeType()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l03662">print()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l06109">CVC3::BitvectorTheoremProducer::repeatRule()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l06142">CVC3::BitvectorTheoremProducer::rotlRule()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l06173">CVC3::BitvectorTheoremProducer::rotrRule()</a>, and <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l06081">CVC3::BitvectorTheoremProducer::zeroExtendRule()</a>.</p>

</div>
</div>
<a class="anchor" id="aedf18fc1e6f9998ddaef98ab9273c2fb"></a><!-- doxytag: member="CVC3::TheoryBitvector::getBoolExtractIndex" ref="aedf18fc1e6f9998ddaef98ab9273c2fb" args="(const Expr &amp;e)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int TheoryBitvector::getBoolExtractIndex </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>e</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l05356">5356</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="theory__bitvector_8h_source.html#l00040">CVC3::BOOLEXTRACT</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="classCVC3_1_1Rational.html#a094636dfa3a740640ca1b0c7406f7e8f">CVC3::Rational::getInt()</a>, <a class="el" href="expr_8h_source.html#l01191">CVC3::Expr::getOpExpr()</a>, <a class="el" href="expr_8h_source.html#l01196">CVC3::Expr::getOpKind()</a>, <a class="el" href="expr_8h_source.html#l01135">CVC3::Expr::getRational()</a>, <a class="el" href="expr_8h_source.html#l01014">CVC3::Expr::isApply()</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

<p>Referenced by <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l00225">CVC3::BitvectorTheoremProducer::bitBlastDisEqnRule()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l00142">CVC3::BitvectorTheoremProducer::bitBlastEqnRule()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l00895">CVC3::BitvectorTheoremProducer::bitExtractAllToConstEq()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l01337">CVC3::BitvectorTheoremProducer::bitExtractBVPlusPreComputed()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l00948">CVC3::BitvectorTheoremProducer::bitExtractRewrite()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l00927">CVC3::BitvectorTheoremProducer::bitExtractToExtract()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l00066">CVC3::BitvectorTheoremProducer::bitvectorFalseRule()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l00104">CVC3::BitvectorTheoremProducer::bitvectorTrueRule()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l02969">computeType()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l00762">CVC3::BitvectorTheoremProducer::generalIneqn()</a>, and <a class="el" href="theory__bitvector_8cpp_source.html#l03662">print()</a>.</p>

</div>
</div>
<a class="anchor" id="aafcc248e3361c69777cb1377a157db49"></a><!-- doxytag: member="CVC3::TheoryBitvector::getFixedLeftShiftParam" ref="aafcc248e3361c69777cb1377a157db49" args="(const Expr &amp;e)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int TheoryBitvector::getFixedLeftShiftParam </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>e</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l05385">5385</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="theory__bitvector_8h_source.html#l00043">CVC3::CONST_WIDTH_LEFTSHIFT</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="classCVC3_1_1Rational.html#a094636dfa3a740640ca1b0c7406f7e8f">CVC3::Rational::getInt()</a>, <a class="el" href="expr_8h_source.html#l01191">CVC3::Expr::getOpExpr()</a>, <a class="el" href="expr_8h_source.html#l01196">CVC3::Expr::getOpKind()</a>, <a class="el" href="expr_8h_source.html#l01135">CVC3::Expr::getRational()</a>, <a class="el" href="expr_8h_source.html#l01014">CVC3::Expr::isApply()</a>, <a class="el" href="theory__bitvector_8h_source.html#l00042">CVC3::LEFTSHIFT</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

<p>Referenced by <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l01619">CVC3::BitvectorTheoremProducer::bitExtractFixedLeftShift()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l02969">computeType()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l01968">CVC3::BitvectorTheoremProducer::constWidthLeftShiftToConcat()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l01944">CVC3::BitvectorTheoremProducer::leftShiftToConcat()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l05237">newBVExtractExpr()</a>, and <a class="el" href="theory__bitvector_8cpp_source.html#l03662">print()</a>.</p>

</div>
</div>
<a class="anchor" id="a801f0c6dd21ecfea0769abfcd7fd4b4e"></a><!-- doxytag: member="CVC3::TheoryBitvector::getFixedRightShiftParam" ref="a801f0c6dd21ecfea0769abfcd7fd4b4e" args="(const Expr &amp;e)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int TheoryBitvector::getFixedRightShiftParam </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>e</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l05396">5396</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="classCVC3_1_1Rational.html#a094636dfa3a740640ca1b0c7406f7e8f">CVC3::Rational::getInt()</a>, <a class="el" href="expr_8h_source.html#l01191">CVC3::Expr::getOpExpr()</a>, <a class="el" href="expr_8h_source.html#l01196">CVC3::Expr::getOpKind()</a>, <a class="el" href="expr_8h_source.html#l01135">CVC3::Expr::getRational()</a>, <a class="el" href="expr_8h_source.html#l01014">CVC3::Expr::isApply()</a>, <a class="el" href="theory__bitvector_8h_source.html#l00044">CVC3::RIGHTSHIFT</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

<p>Referenced by <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l01668">CVC3::BitvectorTheoremProducer::bitExtractFixedRightShift()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l02969">computeType()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l03662">print()</a>, and <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02001">CVC3::BitvectorTheoremProducer::rightShiftToConcat()</a>.</p>

</div>
</div>
<a class="anchor" id="ad714ab7be58b17f2c120afa117abd1fb"></a><!-- doxytag: member="CVC3::TheoryBitvector::getExtractHi" ref="ad714ab7be58b17f2c120afa117abd1fb" args="(const Expr &amp;e)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int TheoryBitvector::getExtractHi </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>e</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l05414">5414</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="theory__bitvector_8h_source.html#l00039">CVC3::EXTRACT</a>, <a class="el" href="classCVC3_1_1Rational.html#a094636dfa3a740640ca1b0c7406f7e8f">CVC3::Rational::getInt()</a>, <a class="el" href="expr_8h_source.html#l01191">CVC3::Expr::getOpExpr()</a>, <a class="el" href="expr_8h_source.html#l01196">CVC3::Expr::getOpKind()</a>, <a class="el" href="expr_8h_source.html#l01135">CVC3::Expr::getRational()</a>, <a class="el" href="expr_8h_source.html#l01014">CVC3::Expr::isApply()</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

<p>Referenced by <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l01206">CVC3::BitvectorTheoremProducer::bitExtractExtraction()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l05298">CVC3::BitvectorTheoremProducer::buildPlusTerm()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l05692">CVC3::BitvectorTheoremProducer::canonBVEQ()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l02969">computeType()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l03239">CVC3::BitvectorTheoremProducer::concatMergeExtract()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02532">CVC3::BitvectorTheoremProducer::extractBitwise()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l04209">CVC3::BitvectorTheoremProducer::extractBVMult()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l04241">CVC3::BitvectorTheoremProducer::extractBVPlus()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02465">CVC3::BitvectorTheoremProducer::extractConcat()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02365">CVC3::BitvectorTheoremProducer::extractConst()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02421">CVC3::BitvectorTheoremProducer::extractExtract()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02397">CVC3::BitvectorTheoremProducer::extractWhole()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l05020">CVC3::BitvectorTheoremProducer::getPlusTerms()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02591">CVC3::BitvectorTheoremProducer::iteExtractRule()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l03662">print()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l05609">CVC3::BitvectorTheoremProducer::processExtract()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l06713">CVC3::BitvectorTheoremProducer::solveExtractOverlap()</a>, and <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l06691">CVC3::BitvectorTheoremProducer::solveExtractOverlapApplies()</a>.</p>

</div>
</div>
<a class="anchor" id="acbb820488811e04eed17d85199498ae9"></a><!-- doxytag: member="CVC3::TheoryBitvector::getExtractLow" ref="acbb820488811e04eed17d85199498ae9" args="(const Expr &amp;e)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int TheoryBitvector::getExtractLow </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>e</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l05405">5405</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="theory__bitvector_8h_source.html#l00039">CVC3::EXTRACT</a>, <a class="el" href="classCVC3_1_1Rational.html#a094636dfa3a740640ca1b0c7406f7e8f">CVC3::Rational::getInt()</a>, <a class="el" href="expr_8h_source.html#l01191">CVC3::Expr::getOpExpr()</a>, <a class="el" href="expr_8h_source.html#l01196">CVC3::Expr::getOpKind()</a>, <a class="el" href="expr_8h_source.html#l01135">CVC3::Expr::getRational()</a>, <a class="el" href="expr_8h_source.html#l01014">CVC3::Expr::isApply()</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

<p>Referenced by <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l01206">CVC3::BitvectorTheoremProducer::bitExtractExtraction()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l05298">CVC3::BitvectorTheoremProducer::buildPlusTerm()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l05692">CVC3::BitvectorTheoremProducer::canonBVEQ()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l02969">computeType()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l03239">CVC3::BitvectorTheoremProducer::concatMergeExtract()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02532">CVC3::BitvectorTheoremProducer::extractBitwise()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l04209">CVC3::BitvectorTheoremProducer::extractBVMult()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l04241">CVC3::BitvectorTheoremProducer::extractBVPlus()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02465">CVC3::BitvectorTheoremProducer::extractConcat()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02365">CVC3::BitvectorTheoremProducer::extractConst()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02421">CVC3::BitvectorTheoremProducer::extractExtract()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02397">CVC3::BitvectorTheoremProducer::extractWhole()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l05020">CVC3::BitvectorTheoremProducer::getPlusTerms()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02591">CVC3::BitvectorTheoremProducer::iteExtractRule()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l03662">print()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l05609">CVC3::BitvectorTheoremProducer::processExtract()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l06713">CVC3::BitvectorTheoremProducer::solveExtractOverlap()</a>, and <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l06691">CVC3::BitvectorTheoremProducer::solveExtractOverlapApplies()</a>.</p>

</div>
</div>
<a class="anchor" id="a67259e3d5f08972e6a157f167aab7023"></a><!-- doxytag: member="CVC3::TheoryBitvector::getBVPlusParam" ref="a67259e3d5f08972e6a157f167aab7023" args="(const Expr &amp;e)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int TheoryBitvector::getBVPlusParam </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>e</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l05423">5423</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="lang_8h_source.html#l00038">CVC3::AST_LANG</a>, <a class="el" href="theory__bitvector_8h_source.html#l00064">CVC3::BVPLUS</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="classCVC3_1_1Rational.html#a094636dfa3a740640ca1b0c7406f7e8f">CVC3::Rational::getInt()</a>, <a class="el" href="expr_8h_source.html#l01191">CVC3::Expr::getOpExpr()</a>, <a class="el" href="expr_8h_source.html#l01196">CVC3::Expr::getOpKind()</a>, <a class="el" href="expr_8h_source.html#l01135">CVC3::Expr::getRational()</a>, <a class="el" href="expr_8h_source.html#l01014">CVC3::Expr::isApply()</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

<p>Referenced by <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l01256">CVC3::BitvectorTheoremProducer::bitExtractBVPlus()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l01337">CVC3::BitvectorTheoremProducer::bitExtractBVPlusPreComputed()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l03290">CVC3::BitvectorTheoremProducer::bvplusConst()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02318">CVC3::BitvectorTheoremProducer::bvplusZeroConcatRule()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l02969">computeType()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l03662">print()</a>, and <a class="el" href="theory__bitvector_8cpp_source.html#l03429">printSmtLibShared()</a>.</p>

</div>
</div>
<a class="anchor" id="a540b9b39838cb3c1b71925be3f5696fa"></a><!-- doxytag: member="CVC3::TheoryBitvector::getBVMultParam" ref="a540b9b39838cb3c1b71925be3f5696fa" args="(const Expr &amp;e)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int TheoryBitvector::getBVMultParam </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>e</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l05431">5431</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="lang_8h_source.html#l00038">CVC3::AST_LANG</a>, <a class="el" href="theory__bitvector_8h_source.html#l00066">CVC3::BVMULT</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="classCVC3_1_1Rational.html#a094636dfa3a740640ca1b0c7406f7e8f">CVC3::Rational::getInt()</a>, <a class="el" href="expr_8h_source.html#l01191">CVC3::Expr::getOpExpr()</a>, <a class="el" href="expr_8h_source.html#l01196">CVC3::Expr::getOpKind()</a>, <a class="el" href="expr_8h_source.html#l01135">CVC3::Expr::getRational()</a>, <a class="el" href="expr_8h_source.html#l01014">CVC3::Expr::isApply()</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

<p>Referenced by <a class="el" href="theory__bitvector_8cpp_source.html#l02969">computeType()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l03662">print()</a>, and <a class="el" href="theory__bitvector_8cpp_source.html#l03429">printSmtLibShared()</a>.</p>

</div>
</div>
<a class="anchor" id="a6d1c5d8e029a455d9bd058eb66c5cdc8"></a><!-- doxytag: member="CVC3::TheoryBitvector::getBVConstSize" ref="a6d1c5d8e029a455d9bd058eb66c5cdc8" args="(const Expr &amp;e)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned TheoryBitvector::getBVConstSize </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>e</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l05439">5439</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="theory__bitvector_8h_source.html#l00034">CVC3::BVCONST</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="expr_8h_source.html#l01000">CVC3::Expr::getExprValue()</a>, and <a class="el" href="expr_8h_source.html#l01168">CVC3::Expr::getKind()</a>.</p>

<p>Referenced by <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02842">CVC3::BitvectorTheoremProducer::bitwiseConst()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l03068">CVC3::BitvectorTheoremProducer::bitwiseConstElim()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l05474">computeBVConst()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l05495">computeNegBVConst()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l02969">computeType()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l03195">CVC3::BitvectorTheoremProducer::concatConst()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02655">CVC3::BitvectorTheoremProducer::negConst()</a>, and <a class="el" href="theory__bitvector_8cpp_source.html#l03662">print()</a>.</p>

</div>
</div>
<a class="anchor" id="a242600edbc48857be8abbab8e74ed3be"></a><!-- doxytag: member="CVC3::TheoryBitvector::getBVConstValue" ref="a242600edbc48857be8abbab8e74ed3be" args="(const Expr &amp;e, int i)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool TheoryBitvector::getBVConstValue </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>e</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>i</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l05448">5448</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="theory__bitvector_8h_source.html#l00034">CVC3::BVCONST</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="expr_8h_source.html#l01000">CVC3::Expr::getExprValue()</a>, and <a class="el" href="expr_8h_source.html#l01168">CVC3::Expr::getKind()</a>.</p>

<p>Referenced by <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l00977">CVC3::BitvectorTheoremProducer::bitExtractConstant()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l01074">CVC3::BitvectorTheoremProducer::bitExtractConstBVMult()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02842">CVC3::BitvectorTheoremProducer::bitwiseConst()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l03068">CVC3::BitvectorTheoremProducer::bitwiseConstElim()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l05474">computeBVConst()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l05495">computeNegBVConst()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l03195">CVC3::BitvectorTheoremProducer::concatConst()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02365">CVC3::BitvectorTheoremProducer::extractConst()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02655">CVC3::BitvectorTheoremProducer::negConst()</a>, and <a class="el" href="theory__bitvector_8cpp_source.html#l03662">print()</a>.</p>

</div>
</div>
<a class="anchor" id="a08653884cd51197647ed006e5ae64332"></a><!-- doxytag: member="CVC3::TheoryBitvector::computeBVConst" ref="a08653884cd51197647ed006e5ae64332" args="(const Expr &amp;e)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Rational.html">Rational</a> TheoryBitvector::computeBVConst </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>e</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>computes the integer value of a bitvector constant </p>

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l05474">5474</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="theory__bitvector_8h_source.html#l00034">CVC3::BVCONST</a>, <a class="el" href="theory__bitvector_8h_source.html#l00130">d_bv32Flag</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l05439">getBVConstSize()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l05448">getBVConstValue()</a>, <a class="el" href="expr_8h_source.html#l01168">CVC3::Expr::getKind()</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

<p>Referenced by <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02155">CVC3::BitvectorTheoremProducer::bvashrToConcat()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l00704">CVC3::BitvectorTheoremProducer::bvConstIneqn()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l03503">CVC3::BitvectorTheoremProducer::bvConstMultAssocRule()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02107">CVC3::BitvectorTheoremProducer::bvlshrToConcat()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l03329">CVC3::BitvectorTheoremProducer::bvmultConst()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l03290">CVC3::BitvectorTheoremProducer::bvplusConst()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02318">CVC3::BitvectorTheoremProducer::bvplusZeroConcatRule()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02135">CVC3::BitvectorTheoremProducer::bvShiftZero()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l02033">CVC3::BitvectorTheoremProducer::bvshlToConcat()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l06243">CVC3::BitvectorTheoremProducer::bvUDivConst()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l04011">CVC3::BitvectorTheoremProducer::bvuminusBVConst()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l06201">CVC3::BitvectorTheoremProducer::bvURemConst()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l04770">CVC3::BitvectorTheoremProducer::canonBVMult()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l05169">CVC3::BitvectorTheoremProducer::chopConcat()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l03723">CVC3::BitvectorTheoremProducer::collectLikeTermsOfPlus()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l05020">CVC3::BitvectorTheoremProducer::getPlusTerms()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l04371">CVC3::BitvectorTheoremProducer::isolate_var()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l04687">CVC3::BitvectorTheoremProducer::liftConcatBVMult()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l04924">CVC3::BitvectorTheoremProducer::liftConcatBVPlus()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l01965">multiply_coeff()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l02178">Odd_coeff()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l06653">CVC3::BitvectorTheoremProducer::oneBVAND()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l03378">CVC3::BitvectorTheoremProducer::oneCoeffBVMult()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l04087">parseExprOp()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l03662">print()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l00437">CVC3::BitvectorTheoremProducer::signBVLTRule()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l06631">CVC3::BitvectorTheoremProducer::zeroBVOR()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l03356">CVC3::BitvectorTheoremProducer::zeroCoeffBVMult()</a>, and <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l00686">CVC3::BitvectorTheoremProducer::zeroLeq()</a>.</p>

</div>
</div>
<a class="anchor" id="a9e49b77a0e80b7ba83bc77bb3a301c6b"></a><!-- doxytag: member="CVC3::TheoryBitvector::computeNegBVConst" ref="a9e49b77a0e80b7ba83bc77bb3a301c6b" args="(const Expr &amp;e)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Rational.html">Rational</a> TheoryBitvector::computeNegBVConst </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>e</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>computes the integer value of ~c+1 or BVUMINUS(c) </p>

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l05495">5495</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="theory__bitvector_8h_source.html#l00034">CVC3::BVCONST</a>, <a class="el" href="theory__bitvector_8h_source.html#l00130">d_bv32Flag</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l05439">getBVConstSize()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l05448">getBVConstValue()</a>, <a class="el" href="expr_8h_source.html#l01168">CVC3::Expr::getKind()</a>, and <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>.</p>

<p>Referenced by <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l04128">CVC3::BitvectorTheoremProducer::bvmultBVUminus()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l04011">CVC3::BitvectorTheoremProducer::bvuminusBVConst()</a>, <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l04038">CVC3::BitvectorTheoremProducer::bvuminusBVMult()</a>, and <a class="el" href="theory__bitvector_8cpp_source.html#l05459">signed_newBVConstExpr()</a>.</p>

</div>
</div>
<a class="anchor" id="af9b48795b632ce717e9f2149c99689fb"></a><!-- doxytag: member="CVC3::TheoryBitvector::getMaxSize" ref="af9b48795b632ce717e9f2149c99689fb" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int CVC3::TheoryBitvector::getMaxSize </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="theory__bitvector_8h_source.html#l00401">401</a> of file <a class="el" href="theory__bitvector_8h_source.html">theory_bitvector.h</a>.</p>

<p>References <a class="el" href="theory__bitvector_8h_source.html#l00165">d_maxLength</a>.</p>

</div>
</div>
<a class="anchor" id="afe606418dd434c720ec6cbec5dab3c1c"></a><!-- doxytag: member="CVC3::TheoryBitvector::isLinearTerm" ref="afe606418dd434c720ec6cbec5dab3c1c" args="(const Expr &amp;e)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool TheoryBitvector::isLinearTerm </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>e</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l02345">2345</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="theory__bitvector_8h_source.html#l00034">CVC3::BVCONST</a>, <a class="el" href="theory__bitvector_8h_source.html#l00066">CVC3::BVMULT</a>, <a class="el" href="theory__bitvector_8h_source.html#l00064">CVC3::BVPLUS</a>, <a class="el" href="expr_8h_source.html#l01196">CVC3::Expr::getOpKind()</a>, and <a class="el" href="theory_8h_source.html#l00556">CVC3::Theory::isLeaf()</a>.</p>

<p>Referenced by <a class="el" href="theory__bitvector_8cpp_source.html#l02301">canSolveFor()</a>.</p>

</div>
</div>
<a class="anchor" id="a670ab645c15606c0653cd265c5378b52"></a><!-- doxytag: member="CVC3::TheoryBitvector::extract_vars" ref="a670ab645c15606c0653cd265c5378b52" args="(const Expr &amp;e, std::vector&lt; Expr &gt; &amp;vars)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void TheoryBitvector::extract_vars </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>e</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::vector&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>vars</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l01950">1950</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="theory__bitvector_8h_source.html#l00034">CVC3::BVCONST</a>, <a class="el" href="theory__bitvector_8h_source.html#l00066">CVC3::BVMULT</a>, <a class="el" href="theory__bitvector_8h_source.html#l00064">CVC3::BVPLUS</a>, <a class="el" href="theory__bitvector_8h_source.html#l00063">CVC3::BVUMINUS</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, and <a class="el" href="expr_8h_source.html#l01196">CVC3::Expr::getOpKind()</a>.</p>

<p>Referenced by <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l04619">CVC3::BitvectorTheoremProducer::BVMult_order_subterms()</a>.</p>

</div>
</div>
<a class="anchor" id="a7d9bd17c1b561963bb05712071747090"></a><!-- doxytag: member="CVC3::TheoryBitvector::canSolveFor" ref="a7d9bd17c1b561963bb05712071747090" args="(const Expr &amp;term, const Expr &amp;e)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool TheoryBitvector::canSolveFor </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">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>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l02301">2301</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="theory__bitvector_8h_source.html#l00034">CVC3::BVCONST</a>, <a class="el" href="theory__bitvector_8h_source.html#l00066">CVC3::BVMULT</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l02327">countTermIn()</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="kinds_8h_source.html#l00061">EQ</a>, <a class="el" href="expr_8h_source.html#l01196">CVC3::Expr::getOpKind()</a>, <a class="el" href="theory_8h_source.html#l00556">CVC3::Theory::isLeaf()</a>, and <a class="el" href="theory__bitvector_8cpp_source.html#l02345">isLinearTerm()</a>.</p>

</div>
</div>
<a class="anchor" id="a425367b8c2d69e637c93742ab1ed2134"></a><!-- doxytag: member="CVC3::TheoryBitvector::multiplicative_inverse" ref="a425367b8c2d69e637c93742ab1ed2134" args="(Rational r, int n_bits)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Rational.html">Rational</a> TheoryBitvector::multiplicative_inverse </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>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>n_bits</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="theory__bitvector_8cpp_source.html#l02052">2052</a> of file <a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a>.</p>

<p>References <a class="el" href="rational_8h_source.html#l00159">CVC3::pow()</a>.</p>

<p>Referenced by <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l05692">CVC3::BitvectorTheoremProducer::canonBVEQ()</a>.</p>

</div>
</div>
<hr/><h2>Member Data Documentation</h2>
<a class="anchor" id="a36ce76cce9f4da02fe837fa6d99d6202"></a><!-- doxytag: member="CVC3::TheoryBitvector::d_rules" ref="a36ce76cce9f4da02fe837fa6d99d6202" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1BitvectorProofRules.html">BitvectorProofRules</a>* <a class="el" href="classCVC3_1_1TheoryBitvector.html#a36ce76cce9f4da02fe837fa6d99d6202">CVC3::TheoryBitvector::d_rules</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="theory__bitvector_8h_source.html#l00101">101</a> of file <a class="el" href="theory__bitvector_8h_source.html">theory_bitvector.h</a>.</p>

<p>Referenced by <a class="el" href="theory__bitvector_8cpp_source.html#l02512">comparebv()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l02409">generalBitBlast()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l02366">simplifyPendingEq()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l02818">solve()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l01708">TheoryBitvector()</a>, and <a class="el" href="theory__bitvector_8cpp_source.html#l01842">~TheoryBitvector()</a>.</p>

</div>
</div>
<a class="anchor" id="aca1d99fa896f29efa540d8b83a4de848"></a><!-- doxytag: member="CVC3::TheoryBitvector::d_bvConstExprIndex" ref="aca1d99fa896f29efa540d8b83a4de848" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t <a class="el" href="classCVC3_1_1TheoryBitvector.html#aca1d99fa896f29efa540d8b83a4de848">CVC3::TheoryBitvector::d_bvConstExprIndex</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p><a class="el" href="classCVC3_1_1MemoryManager.html">MemoryManager</a> index for <a class="el" href="classCVC3_1_1BVConstExpr.html">BVConstExpr</a> subclass. </p>

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

<p>Referenced by <a class="el" href="theory__bitvector_8cpp_source.html#l05172">newBVConstExpr()</a>, and <a class="el" href="theory__bitvector_8cpp_source.html#l01708">TheoryBitvector()</a>.</p>

</div>
</div>
<a class="anchor" id="a96840bd0a2349e2cd33345a709e84907"></a><!-- doxytag: member="CVC3::TheoryBitvector::d_bvPlusExprIndex" ref="a96840bd0a2349e2cd33345a709e84907" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t <a class="el" href="classCVC3_1_1TheoryBitvector.html#a96840bd0a2349e2cd33345a709e84907">CVC3::TheoryBitvector::d_bvPlusExprIndex</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

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

</div>
</div>
<a class="anchor" id="a6d5488901e86cf3db3fc473fc3770766"></a><!-- doxytag: member="CVC3::TheoryBitvector::d_bvParameterExprIndex" ref="a6d5488901e86cf3db3fc473fc3770766" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t <a class="el" href="classCVC3_1_1TheoryBitvector.html#a6d5488901e86cf3db3fc473fc3770766">CVC3::TheoryBitvector::d_bvParameterExprIndex</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="theory__bitvector_8h_source.html#l00105">105</a> of file <a class="el" href="theory__bitvector_8h_source.html">theory_bitvector.h</a>.</p>

</div>
</div>
<a class="anchor" id="ae58b98a947a495b8754413e336753518"></a><!-- doxytag: member="CVC3::TheoryBitvector::d_bvTypePredExprIndex" ref="ae58b98a947a495b8754413e336753518" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t <a class="el" href="classCVC3_1_1TheoryBitvector.html#ae58b98a947a495b8754413e336753518">CVC3::TheoryBitvector::d_bvTypePredExprIndex</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="theory__bitvector_8h_source.html#l00106">106</a> of file <a class="el" href="theory__bitvector_8h_source.html">theory_bitvector.h</a>.</p>

</div>
</div>
<a class="anchor" id="af183050f385d720871a298207a7790b1"></a><!-- doxytag: member="CVC3::TheoryBitvector::d_bvDelayEq" ref="af183050f385d720871a298207a7790b1" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1StatCounter.html">StatCounter</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#af183050f385d720871a298207a7790b1">CVC3::TheoryBitvector::d_bvDelayEq</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>counts delayed asserted equalities </p>

<p>Definition at line <a class="el" href="theory__bitvector_8h_source.html#l00109">109</a> of file <a class="el" href="theory__bitvector_8h_source.html">theory_bitvector.h</a>.</p>

</div>
</div>
<a class="anchor" id="ae855792c718e64c8a46dab88ddd8b1b4"></a><!-- doxytag: member="CVC3::TheoryBitvector::d_bvAssertEq" ref="ae855792c718e64c8a46dab88ddd8b1b4" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1StatCounter.html">StatCounter</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#ae855792c718e64c8a46dab88ddd8b1b4">CVC3::TheoryBitvector::d_bvAssertEq</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>counts asserted equalities </p>

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

</div>
</div>
<a class="anchor" id="a563bcc4483ffa3aee6a8e44e5ab07bcd"></a><!-- doxytag: member="CVC3::TheoryBitvector::d_bvDelayDiseq" ref="a563bcc4483ffa3aee6a8e44e5ab07bcd" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1StatCounter.html">StatCounter</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#a563bcc4483ffa3aee6a8e44e5ab07bcd">CVC3::TheoryBitvector::d_bvDelayDiseq</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>counts delayed asserted disequalities </p>

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

</div>
</div>
<a class="anchor" id="a071fce068ccf6223f20ba8a8d5b90b00"></a><!-- doxytag: member="CVC3::TheoryBitvector::d_bvAssertDiseq" ref="a071fce068ccf6223f20ba8a8d5b90b00" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1StatCounter.html">StatCounter</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#a071fce068ccf6223f20ba8a8d5b90b00">CVC3::TheoryBitvector::d_bvAssertDiseq</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>counts asserted disequalities </p>

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

</div>
</div>
<a class="anchor" id="aac1428f779c77033eb5c59b599629cb8"></a><!-- doxytag: member="CVC3::TheoryBitvector::d_bvTypePreds" ref="aac1428f779c77033eb5c59b599629cb8" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1StatCounter.html">StatCounter</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#aac1428f779c77033eb5c59b599629cb8">CVC3::TheoryBitvector::d_bvTypePreds</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>counts type predicates </p>

<p>Definition at line <a class="el" href="theory__bitvector_8h_source.html#l00117">117</a> of file <a class="el" href="theory__bitvector_8h_source.html">theory_bitvector.h</a>.</p>

</div>
</div>
<a class="anchor" id="aefadf1146b79ded24d7f5a66adba069d"></a><!-- doxytag: member="CVC3::TheoryBitvector::d_bvDelayTypePreds" ref="aefadf1146b79ded24d7f5a66adba069d" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1StatCounter.html">StatCounter</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#aefadf1146b79ded24d7f5a66adba069d">CVC3::TheoryBitvector::d_bvDelayTypePreds</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>counts delayed type predicates </p>

<p>Definition at line <a class="el" href="theory__bitvector_8h_source.html#l00119">119</a> of file <a class="el" href="theory__bitvector_8h_source.html">theory_bitvector.h</a>.</p>

</div>
</div>
<a class="anchor" id="aab7d49f889a88fd2373b722d33e21c31"></a><!-- doxytag: member="CVC3::TheoryBitvector::d_bvBitBlastEq" ref="aab7d49f889a88fd2373b722d33e21c31" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1StatCounter.html">StatCounter</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#aab7d49f889a88fd2373b722d33e21c31">CVC3::TheoryBitvector::d_bvBitBlastEq</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>counts bitblasted equalities </p>

<p>Definition at line <a class="el" href="theory__bitvector_8h_source.html#l00121">121</a> of file <a class="el" href="theory__bitvector_8h_source.html">theory_bitvector.h</a>.</p>

</div>
</div>
<a class="anchor" id="a2f2ac7c248fe89fc483c3a1a43c459db"></a><!-- doxytag: member="CVC3::TheoryBitvector::d_bvBitBlastDiseq" ref="a2f2ac7c248fe89fc483c3a1a43c459db" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1StatCounter.html">StatCounter</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#a2f2ac7c248fe89fc483c3a1a43c459db">CVC3::TheoryBitvector::d_bvBitBlastDiseq</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>counts bitblasted disequalities </p>

<p>Definition at line <a class="el" href="theory__bitvector_8h_source.html#l00123">123</a> of file <a class="el" href="theory__bitvector_8h_source.html">theory_bitvector.h</a>.</p>

</div>
</div>
<a class="anchor" id="a20f9ef1d8f1666eeb16e9f2712320132"></a><!-- doxytag: member="CVC3::TheoryBitvector::d_booleanRWFlag" ref="a20f9ef1d8f1666eeb16e9f2712320132" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const bool* <a class="el" href="classCVC3_1_1TheoryBitvector.html#a20f9ef1d8f1666eeb16e9f2712320132">CVC3::TheoryBitvector::d_booleanRWFlag</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>boolean on the fly rewrite flag </p>

<p>Definition at line <a class="el" href="theory__bitvector_8h_source.html#l00126">126</a> of file <a class="el" href="theory__bitvector_8h_source.html">theory_bitvector.h</a>.</p>

</div>
</div>
<a class="anchor" id="aa96498fb323044a4ab77c9657ac8e614"></a><!-- doxytag: member="CVC3::TheoryBitvector::d_boolExtractCacheFlag" ref="aa96498fb323044a4ab77c9657ac8e614" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const bool* <a class="el" href="classCVC3_1_1TheoryBitvector.html#aa96498fb323044a4ab77c9657ac8e614">CVC3::TheoryBitvector::d_boolExtractCacheFlag</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>bool extract cache flag </p>

<p>Definition at line <a class="el" href="theory__bitvector_8h_source.html#l00128">128</a> of file <a class="el" href="theory__bitvector_8h_source.html">theory_bitvector.h</a>.</p>

</div>
</div>
<a class="anchor" id="ac219e3d5a18642506f3def182a023989"></a><!-- doxytag: member="CVC3::TheoryBitvector::d_bv32Flag" ref="ac219e3d5a18642506f3def182a023989" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const bool* <a class="el" href="classCVC3_1_1TheoryBitvector.html#ac219e3d5a18642506f3def182a023989">CVC3::TheoryBitvector::d_bv32Flag</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>flag which indicates that all arithmetic is 32 bit with no overflow </p>

<p>Definition at line <a class="el" href="theory__bitvector_8h_source.html#l00130">130</a> of file <a class="el" href="theory__bitvector_8h_source.html">theory_bitvector.h</a>.</p>

<p>Referenced by <a class="el" href="theory__bitvector_8cpp_source.html#l05474">computeBVConst()</a>, and <a class="el" href="theory__bitvector_8cpp_source.html#l05495">computeNegBVConst()</a>.</p>

</div>
</div>
<a class="anchor" id="a0f583ba86ce3c379097255ee97620652"></a><!-- doxytag: member="CVC3::TheoryBitvector::d_bitvecCache" ref="a0f583ba86ce3c379097255ee97620652" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1CDMap.html">CDMap</a>&lt;<a class="el" href="classCVC3_1_1Expr.html">Expr</a>,<a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>&gt; <a class="el" href="classCVC3_1_1TheoryBitvector.html#a0f583ba86ce3c379097255ee97620652">CVC3::TheoryBitvector::d_bitvecCache</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Cache for storing the results of the bitBlastTerm function. </p>

<p>Definition at line <a class="el" href="theory__bitvector_8h_source.html#l00133">133</a> of file <a class="el" href="theory__bitvector_8h_source.html">theory_bitvector.h</a>.</p>

</div>
</div>
<a class="anchor" id="a2134631ced4e2db4bafac7755a4774f4"></a><!-- doxytag: member="CVC3::TheoryBitvector::d_pushNegCache" ref="a2134631ced4e2db4bafac7755a4774f4" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1ExprMap.html">ExprMap</a>&lt;<a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>&gt; <a class="el" href="classCVC3_1_1TheoryBitvector.html#a2134631ced4e2db4bafac7755a4774f4">CVC3::TheoryBitvector::d_pushNegCache</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Cache for <a class="el" href="classCVC3_1_1TheoryBitvector.html#aa7cb7ed38abf46e12d63c019b694c793">pushNegation()</a>. it is ok that this is cache is. </p>

<p>Definition at line <a class="el" href="theory__bitvector_8h_source.html#l00138">138</a> of file <a class="el" href="theory__bitvector_8h_source.html">theory_bitvector.h</a>.</p>

</div>
</div>
<a class="anchor" id="af8bcfa021f89dfbc8111eff923e48eab"></a><!-- doxytag: member="CVC3::TheoryBitvector::d_eq" ref="af8bcfa021f89dfbc8111eff923e48eab" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1CDList.html">CDList</a>&lt;<a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>&gt; <a class="el" href="classCVC3_1_1TheoryBitvector.html#af8bcfa021f89dfbc8111eff923e48eab">CVC3::TheoryBitvector::d_eq</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Backtracking queue for equalities. </p>

<p>Definition at line <a class="el" href="theory__bitvector_8h_source.html#l00141">141</a> of file <a class="el" href="theory__bitvector_8h_source.html">theory_bitvector.h</a>.</p>

<p>Referenced by <a class="el" href="theory__bitvector_8cpp_source.html#l01861">assertFact()</a>, and <a class="el" href="theory__bitvector_8cpp_source.html#l02574">checkSat()</a>.</p>

</div>
</div>
<a class="anchor" id="a7c8dcbb9ba2c1c307c403966cd0b0c6d"></a><!-- doxytag: member="CVC3::TheoryBitvector::d_eqPending" ref="a7c8dcbb9ba2c1c307c403966cd0b0c6d" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1CDList.html">CDList</a>&lt;<a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>&gt; <a class="el" href="classCVC3_1_1TheoryBitvector.html#a7c8dcbb9ba2c1c307c403966cd0b0c6d">CVC3::TheoryBitvector::d_eqPending</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Backtracking queue for unsolved equalities. </p>

<p>Definition at line <a class="el" href="theory__bitvector_8h_source.html#l00143">143</a> of file <a class="el" href="theory__bitvector_8h_source.html">theory_bitvector.h</a>.</p>

<p>Referenced by <a class="el" href="theory__bitvector_8cpp_source.html#l01861">assertFact()</a>, and <a class="el" href="theory__bitvector_8cpp_source.html#l02574">checkSat()</a>.</p>

</div>
</div>
<a class="anchor" id="ac017443fdd0f931d9283bc9e2b52d831"></a><!-- doxytag: member="CVC3::TheoryBitvector::d_eq_index" ref="ac017443fdd0f931d9283bc9e2b52d831" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1CDO.html">CDO</a>&lt;unsigned int&gt; <a class="el" href="classCVC3_1_1TheoryBitvector.html#ac017443fdd0f931d9283bc9e2b52d831">CVC3::TheoryBitvector::d_eq_index</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Index to current position in d_eqPending. </p>

<p>Definition at line <a class="el" href="theory__bitvector_8h_source.html#l00145">145</a> of file <a class="el" href="theory__bitvector_8h_source.html">theory_bitvector.h</a>.</p>

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

</div>
</div>
<a class="anchor" id="ad133cd123c7cc462dbeca98a1d10f8e4"></a><!-- doxytag: member="CVC3::TheoryBitvector::d_bitblast" ref="ad133cd123c7cc462dbeca98a1d10f8e4" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1CDList.html">CDList</a>&lt;<a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>&gt; <a class="el" href="classCVC3_1_1TheoryBitvector.html#ad133cd123c7cc462dbeca98a1d10f8e4">CVC3::TheoryBitvector::d_bitblast</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Backtracking queue for all other assertions. </p>

<p>Definition at line <a class="el" href="theory__bitvector_8h_source.html#l00147">147</a> of file <a class="el" href="theory__bitvector_8h_source.html">theory_bitvector.h</a>.</p>

<p>Referenced by <a class="el" href="theory__bitvector_8cpp_source.html#l01861">assertFact()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l02574">checkSat()</a>, and <a class="el" href="theory__bitvector_8cpp_source.html#l02512">comparebv()</a>.</p>

</div>
</div>
<a class="anchor" id="ad9f83106573a125c219c3900a9aeceb3"></a><!-- doxytag: member="CVC3::TheoryBitvector::d_bb_index" ref="ad9f83106573a125c219c3900a9aeceb3" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1CDO.html">CDO</a>&lt;unsigned int&gt; <a class="el" href="classCVC3_1_1TheoryBitvector.html#ad9f83106573a125c219c3900a9aeceb3">CVC3::TheoryBitvector::d_bb_index</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Index to current position in d_bitblast. </p>

<p>Definition at line <a class="el" href="theory__bitvector_8h_source.html#l00149">149</a> of file <a class="el" href="theory__bitvector_8h_source.html">theory_bitvector.h</a>.</p>

<p>Referenced by <a class="el" href="theory__bitvector_8cpp_source.html#l01861">assertFact()</a>, <a class="el" href="theory__bitvector_8cpp_source.html#l02574">checkSat()</a>, and <a class="el" href="theory__bitvector_8cpp_source.html#l02512">comparebv()</a>.</p>

</div>
</div>
<a class="anchor" id="aa899ef9e64b78453d199a84160f15444"></a><!-- doxytag: member="CVC3::TheoryBitvector::d_sharedSubterms" ref="aa899ef9e64b78453d199a84160f15444" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1CDMap.html">CDMap</a>&lt;<a class="el" href="classCVC3_1_1Expr.html">Expr</a>,<a class="el" href="classCVC3_1_1Expr.html">Expr</a>&gt; <a class="el" href="classCVC3_1_1TheoryBitvector.html#aa899ef9e64b78453d199a84160f15444">CVC3::TheoryBitvector::d_sharedSubterms</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Backtracking database of subterms of shared terms. </p>

<p>Definition at line <a class="el" href="theory__bitvector_8h_source.html#l00151">151</a> of file <a class="el" href="theory__bitvector_8h_source.html">theory_bitvector.h</a>.</p>

<p>Referenced by <a class="el" href="theory__bitvector_8cpp_source.html#l02695">update()</a>.</p>

</div>
</div>
<a class="anchor" id="a59850cd32a8031dff8e8918c1e9d31c7"></a><!-- doxytag: member="CVC3::TheoryBitvector::d_sharedSubtermsList" ref="a59850cd32a8031dff8e8918c1e9d31c7" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1CDList.html">CDList</a>&lt;<a class="el" href="classCVC3_1_1Expr.html">Expr</a>&gt; <a class="el" href="classCVC3_1_1TheoryBitvector.html#a59850cd32a8031dff8e8918c1e9d31c7">CVC3::TheoryBitvector::d_sharedSubtermsList</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Backtracking database of subterms of shared terms. </p>

<p>Definition at line <a class="el" href="theory__bitvector_8h_source.html#l00153">153</a> of file <a class="el" href="theory__bitvector_8h_source.html">theory_bitvector.h</a>.</p>

</div>
</div>
<a class="anchor" id="a8be187368c2a0f4e0b401bc1c7968d19"></a><!-- doxytag: member="CVC3::TheoryBitvector::d_bvZero" ref="a8be187368c2a0f4e0b401bc1c7968d19" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Expr.html">Expr</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#a8be187368c2a0f4e0b401bc1c7968d19">CVC3::TheoryBitvector::d_bvZero</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Constant 1-bit bit-vector 0bin0. </p>

<p>Definition at line <a class="el" href="theory__bitvector_8h_source.html#l00156">156</a> of file <a class="el" href="theory__bitvector_8h_source.html">theory_bitvector.h</a>.</p>

<p>Referenced by <a class="el" href="theory__bitvector_8h_source.html#l00160">bvZero()</a>, and <a class="el" href="theory__bitvector_8cpp_source.html#l01708">TheoryBitvector()</a>.</p>

</div>
</div>
<a class="anchor" id="aa4228ded9a53f6edcc7d06406f9c98c7"></a><!-- doxytag: member="CVC3::TheoryBitvector::d_bvOne" ref="aa4228ded9a53f6edcc7d06406f9c98c7" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Expr.html">Expr</a> <a class="el" href="classCVC3_1_1TheoryBitvector.html#aa4228ded9a53f6edcc7d06406f9c98c7">CVC3::TheoryBitvector::d_bvOne</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Constant 1-bit bit-vector 0bin0. </p>

<p>Definition at line <a class="el" href="theory__bitvector_8h_source.html#l00158">158</a> of file <a class="el" href="theory__bitvector_8h_source.html">theory_bitvector.h</a>.</p>

<p>Referenced by <a class="el" href="theory__bitvector_8h_source.html#l00162">bvOne()</a>, and <a class="el" href="theory__bitvector_8cpp_source.html#l01708">TheoryBitvector()</a>.</p>

</div>
</div>
<a class="anchor" id="a1559e63e86e26b348ad8bb618f29f202"></a><!-- doxytag: member="CVC3::TheoryBitvector::d_maxLength" ref="a1559e63e86e26b348ad8bb618f29f202" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="classCVC3_1_1TheoryBitvector.html#a1559e63e86e26b348ad8bb618f29f202">CVC3::TheoryBitvector::d_maxLength</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Max size of any bitvector we've seen. </p>

<p>Definition at line <a class="el" href="theory__bitvector_8h_source.html#l00165">165</a> of file <a class="el" href="theory__bitvector_8h_source.html">theory_bitvector.h</a>.</p>

<p>Referenced by <a class="el" href="theory__bitvector_8h_source.html#l00401">getMaxSize()</a>, and <a class="el" href="theory__bitvector_8cpp_source.html#l04638">newBitvectorTypeExpr()</a>.</p>

</div>
</div>
<a class="anchor" id="a8990b759675928a62a4d75cf69fe8d72"></a><!-- doxytag: member="CVC3::TheoryBitvector::d_index1" ref="a8990b759675928a62a4d75cf69fe8d72" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1CDO.html">CDO</a>&lt;unsigned&gt; <a class="el" href="classCVC3_1_1TheoryBitvector.html#a8990b759675928a62a4d75cf69fe8d72">CVC3::TheoryBitvector::d_index1</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Used in checkSat. </p>

<p>Definition at line <a class="el" href="theory__bitvector_8h_source.html#l00168">168</a> of file <a class="el" href="theory__bitvector_8h_source.html">theory_bitvector.h</a>.</p>

</div>
</div>
<a class="anchor" id="a2316b51cfa9b54740298ec7d5e6630cb"></a><!-- doxytag: member="CVC3::TheoryBitvector::d_index2" ref="a2316b51cfa9b54740298ec7d5e6630cb" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1CDO.html">CDO</a>&lt;unsigned&gt; <a class="el" href="classCVC3_1_1TheoryBitvector.html#a2316b51cfa9b54740298ec7d5e6630cb">CVC3::TheoryBitvector::d_index2</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="theory__bitvector_8h_source.html#l00169">169</a> of file <a class="el" href="theory__bitvector_8h_source.html">theory_bitvector.h</a>.</p>

</div>
</div>
<a class="anchor" id="a2508ac260570adfa5584847830806cb0"></a><!-- doxytag: member="CVC3::TheoryBitvector::d_bvPlusCarryCacheLeftBV" ref="a2508ac260570adfa5584847830806cb0" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1ExprMap.html">ExprMap</a>&lt;<a class="el" href="classCVC3_1_1Expr.html">Expr</a>&gt; <a class="el" href="classCVC3_1_1TheoryBitvector.html#a2508ac260570adfa5584847830806cb0">CVC3::TheoryBitvector::d_bvPlusCarryCacheLeftBV</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="theory__bitvector_8h_source.html#l00267">267</a> of file <a class="el" href="theory__bitvector_8h_source.html">theory_bitvector.h</a>.</p>

<p>Referenced by <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l01406">CVC3::BitvectorTheoremProducer::computeCarryPreComputed()</a>.</p>

</div>
</div>
<a class="anchor" id="a9fcf8c7246955aa2a8aa6be2fd3d4f64"></a><!-- doxytag: member="CVC3::TheoryBitvector::d_bvPlusCarryCacheRightBV" ref="a9fcf8c7246955aa2a8aa6be2fd3d4f64" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1ExprMap.html">ExprMap</a>&lt;<a class="el" href="classCVC3_1_1Expr.html">Expr</a>&gt; <a class="el" href="classCVC3_1_1TheoryBitvector.html#a9fcf8c7246955aa2a8aa6be2fd3d4f64">CVC3::TheoryBitvector::d_bvPlusCarryCacheRightBV</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="theory__bitvector_8h_source.html#l00268">268</a> of file <a class="el" href="theory__bitvector_8h_source.html">theory_bitvector.h</a>.</p>

<p>Referenced by <a class="el" href="bitvector__theorem__producer_8cpp_source.html#l01406">CVC3::BitvectorTheoremProducer::computeCarryPreComputed()</a>.</p>

</div>
</div>
<a class="anchor" id="aa17e44a8047fc0f5220565f6cd5a203f"></a><!-- doxytag: member="CVC3::TheoryBitvector::additionalRewriteConstraints" ref="aa17e44a8047fc0f5220565f6cd5a203f" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::vector&lt;<a class="el" href="classCVC3_1_1Theorem.html">Theorem</a>&gt; <a class="el" href="classCVC3_1_1TheoryBitvector.html#aa17e44a8047fc0f5220565f6cd5a203f">CVC3::TheoryBitvector::additionalRewriteConstraints</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="theory__bitvector_8h_source.html#l00416">416</a> of file <a class="el" href="theory__bitvector_8h_source.html">theory_bitvector.h</a>.</p>

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

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="theory__bitvector_8h_source.html">theory_bitvector.h</a></li>
<li><a class="el" href="bitvector__theorem__producer_8cpp_source.html">bitvector_theorem_producer.cpp</a></li>
<li><a class="el" href="theory__bitvector_8cpp_source.html">theory_bitvector.cpp</a></li>
</ul>
</div>
<hr class="footer"/><address class="footer"><small>Generated on Wed Sep 7 2011 for CVC3 by&#160;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
</html>