Sophie

Sophie

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

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::ExprTransform 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_1ExprTransform.html">ExprTransform</a>      </li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</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::ExprTransform Class Reference</div>  </div>
</div>
<div class="contents">
<!-- doxytag: class="CVC3::ExprTransform" -->
<p><code>#include &lt;<a class="el" href="expr__transform_8h_source.html">expr_transform.h</a>&gt;</code></p>

<p><a href="classCVC3_1_1ExprTransform-members.html">List of all members.</a></p>
<h2><a name="pub-types"></a>
Public Types</h2>
<ul>
<li>typedef std::map&lt; std::pair<br class="typebreak"/>
&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a>, <br class="typebreak"/>
ExprTransform::CParameter &gt;<br class="typebreak"/>
, <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; <a class="el" href="classCVC3_1_1ExprTransform.html#ac97b921ef5da4a6f60b961984dc6100a">T_name_map</a>
<li>typedef std::map&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a>, <br class="typebreak"/>
std::set<br class="typebreak"/>
&lt; ExprTransform::CParameter &gt; * &gt; <a class="el" href="classCVC3_1_1ExprTransform.html#a6c748a11c5329f22edb08e2480e4d35d">T_ack_map</a>
<li>typedef std::map&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a>, <a class="el" href="classCVC3_1_1Type.html">Type</a> &gt; <a class="el" href="classCVC3_1_1ExprTransform.html#a0497ad8dd16d60a11af24a3aa31de0a4">T_type_map</a>
<li>typedef std::map&lt; std::pair<br class="typebreak"/>
&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_1Expr.html">Expr</a> &gt; <a class="el" href="classCVC3_1_1ExprTransform.html#afd51977fd7d11cb567f22d5be92ef8b2">B_name_map</a>
<li>typedef std::map&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a>, <a class="el" href="classCVC3_1_1Type.html">Type</a> &gt; <a class="el" href="classCVC3_1_1ExprTransform.html#ad3d45dc36c7202bdfb6ae3296fd30ca0">B_type_map</a>
<li>typedef std::map&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a>, <br class="typebreak"/>
std::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; * &gt; <a class="el" href="classCVC3_1_1ExprTransform.html#ae3037a0875b13d617c86cb543c1d4c30">T_generator_map</a>
<li>typedef std::map&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a>, <br class="typebreak"/>
std::vector&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; * &gt; <a class="el" href="classCVC3_1_1ExprTransform.html#a473dadfb4e1638fd294871ce1c065eab">B_Term_map</a>
<li>typedef std::map&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_1ExprTransform.html#a09e5e66e7ff199ea844d4ac6b0b5312c">T_ITE_map</a>
<li>typedef std::map&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a>, int &gt; <a class="el" href="classCVC3_1_1ExprTransform.html#aa10792398a3dd7f79c5cc619585a599f">B_formula_map</a>
<li>typedef std::map&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a>, <br class="typebreak"/>
std::set&lt; int &gt; * &gt; <a class="el" href="classCVC3_1_1ExprTransform.html#a778f42e55a939714cfc796f8694c21b6">NEW_formula_map</a>
<li>typedef std::vector&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; <a class="el" href="classCVC3_1_1ExprTransform.html#aa711e6099dd934a9bc975cd8ca4c19f8">T_ITE_vec</a>
</ul>
<h2><a name="pub-methods"></a>
Public Member Functions</h2>
<ul>
<li><a class="el" href="classCVC3_1_1ExprTransform.html#a7bf5ddc9291a65cc5fa55af9f3a7f338">ExprTransform</a> (<a class="el" href="classCVC3_1_1TheoryCore.html">TheoryCore</a> *core)
<li><a class="el" href="classCVC3_1_1ExprTransform.html#ab276e3bf371d8b726c801f2f6350bc3c">~ExprTransform</a> ()
<li>void <a class="el" href="classCVC3_1_1ExprTransform.html#af362794d5fd753e8d6ac6dab185eb424">setTheoryArith</a> (<a class="el" href="classCVC3_1_1TheoryArith.html">TheoryArith</a> *arith)
<li>std::string <a class="el" href="classCVC3_1_1ExprTransform.html#ae810dc60dbc0e66fcdcd75fd883db5cc">NewBryantVar</a> (const int a, const int b)
<li>std::string <a class="el" href="classCVC3_1_1ExprTransform.html#a08a24c302c7469e845fea47c6eb1bdab">NewVar</a> (const int a, const int b)
<li><a class="el" href="classCVC3_1_1ExprTransform.html#afd51977fd7d11cb567f22d5be92ef8b2">B_name_map</a> <a class="el" href="classCVC3_1_1ExprTransform.html#aa18644e8ddad65f85bba79b631a0b64f">BryantNames</a> (<a class="el" href="classCVC3_1_1ExprTransform.html#ae3037a0875b13d617c86cb543c1d4c30">T_generator_map</a> &amp;generator_map, <a class="el" href="classCVC3_1_1ExprTransform.html#ad3d45dc36c7202bdfb6ae3296fd30ca0">B_type_map</a> &amp;type_map)
<li><a class="el" href="classCVC3_1_1Expr.html">Expr</a> <a class="el" href="classCVC3_1_1ExprTransform.html#ab56e297f7c76c3f3dd25cb0fe2128743">ITE_generator</a> (<a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;Orig, <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;Value, <a class="el" href="classCVC3_1_1ExprTransform.html#a473dadfb4e1638fd294871ce1c065eab">B_Term_map</a> &amp;Creation_map, <a class="el" href="classCVC3_1_1ExprTransform.html#afd51977fd7d11cb567f22d5be92ef8b2">B_name_map</a> &amp;name_map, <a class="el" href="classCVC3_1_1ExprTransform.html#a09e5e66e7ff199ea844d4ac6b0b5312c">T_ITE_map</a> &amp;ITE_map)
<li>void <a class="el" href="classCVC3_1_1ExprTransform.html#a9b0513038a344188cd7ba64c439f0a90">Get_ITEs</a> (<a class="el" href="classCVC3_1_1ExprTransform.html#aa10792398a3dd7f79c5cc619585a599f">B_formula_map</a> &amp;instance_map, std::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;Not_replaced_set, <a class="el" href="classCVC3_1_1ExprTransform.html#a473dadfb4e1638fd294871ce1c065eab">B_Term_map</a> &amp;P_term_map, <a class="el" href="classCVC3_1_1ExprTransform.html#aa711e6099dd934a9bc975cd8ca4c19f8">T_ITE_vec</a> &amp;ITE_vec, <a class="el" href="classCVC3_1_1ExprTransform.html#a473dadfb4e1638fd294871ce1c065eab">B_Term_map</a> &amp;Creation_map, <a class="el" href="classCVC3_1_1ExprTransform.html#afd51977fd7d11cb567f22d5be92ef8b2">B_name_map</a> &amp;name_map, <a class="el" href="classCVC3_1_1ExprTransform.html#a09e5e66e7ff199ea844d4ac6b0b5312c">T_ITE_map</a> &amp;ITE_map)
<li>void <a class="el" href="classCVC3_1_1ExprTransform.html#a108f3c577d310fc31d33cf99d45c8f83">PredConstrainTester</a> (std::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;Not_replaced_set, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e, <a class="el" href="classCVC3_1_1ExprTransform.html#afd51977fd7d11cb567f22d5be92ef8b2">B_name_map</a> &amp;name_map, std::vector&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;Pred_vec, std::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;Constrained_set, std::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;P_constrained_set, <a class="el" href="classCVC3_1_1ExprTransform.html#ae3037a0875b13d617c86cb543c1d4c30">T_generator_map</a> &amp;Constrained_map)
<li>void <a class="el" href="classCVC3_1_1ExprTransform.html#a373ee038538a33ee19d424779c5be94a">PredConstrainer</a> (std::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;Not_replaced_set, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;Pred, int location, <a class="el" href="classCVC3_1_1ExprTransform.html#afd51977fd7d11cb567f22d5be92ef8b2">B_name_map</a> &amp;name_map, std::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;SeenBefore, std::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;Constrained_set, <a class="el" href="classCVC3_1_1ExprTransform.html#ae3037a0875b13d617c86cb543c1d4c30">T_generator_map</a> &amp;Constrained_map, std::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;P_constrained_set)
<li><a class="el" href="classCVC3_1_1Expr.html">Expr</a> <a class="el" href="classCVC3_1_1ExprTransform.html#ae3bfa06061376f6a2bbd367da8ad6fed">ConstrainedConstraints</a> (std::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;Not_replaced_set, <a class="el" href="classCVC3_1_1ExprTransform.html#ae3037a0875b13d617c86cb543c1d4c30">T_generator_map</a> &amp;Constrained_map, <a class="el" href="classCVC3_1_1ExprTransform.html#afd51977fd7d11cb567f22d5be92ef8b2">B_name_map</a> &amp;name_map, <a class="el" href="classCVC3_1_1ExprTransform.html#a473dadfb4e1638fd294871ce1c065eab">B_Term_map</a> &amp;Creation_map, std::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;Constrained_set, std::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;UnConstrained_set, std::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;P_constrained_set)
<li>void <a class="el" href="classCVC3_1_1ExprTransform.html#a42100ea2839cf15346eab2c8ca29b744">RemoveFunctionApps</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;orig, std::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;Not_replaced_set, std::vector&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;Old, std::vector&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;New, <a class="el" href="classCVC3_1_1ExprTransform.html#a09e5e66e7ff199ea844d4ac6b0b5312c">T_ITE_map</a> &amp;ITE_map, std::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;SeenBefore)
<li>void <a class="el" href="classCVC3_1_1ExprTransform.html#a1fd5200aed59c30782723933193e17e1">GetSortedOpVec</a> (<a class="el" href="classCVC3_1_1ExprTransform.html#a473dadfb4e1638fd294871ce1c065eab">B_Term_map</a> &amp;X_generator_map, <a class="el" href="classCVC3_1_1ExprTransform.html#a473dadfb4e1638fd294871ce1c065eab">B_Term_map</a> &amp;X_term_map, <a class="el" href="classCVC3_1_1ExprTransform.html#a473dadfb4e1638fd294871ce1c065eab">B_Term_map</a> &amp;P_term_map, std::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;P_terms, std::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;G_terms, std::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;X_terms, std::vector&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;sortedOps, std::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;SeenBefore)
<li>void <a class="el" href="classCVC3_1_1ExprTransform.html#aad34764272dd1294745101217847c037">GetFormulaMap</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e, std::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;formula_map, std::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;G_terms, int &amp;size, int negations)
<li>void <a class="el" href="classCVC3_1_1ExprTransform.html#ae234191fd5e1cf389b6db0d62fa14419">GetGTerms2</a> (std::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;formula_map, std::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;G_terms)
<li>void <a class="el" href="classCVC3_1_1ExprTransform.html#aae8f759b318fc4e16a89e188cb11da79">GetSub_vec</a> (<a class="el" href="classCVC3_1_1ExprTransform.html#aa711e6099dd934a9bc975cd8ca4c19f8">T_ITE_vec</a> &amp;ITE_vec, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e, std::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;ITE_Added)
<li>void <a class="el" href="classCVC3_1_1ExprTransform.html#a6be37560bf3a9d8fb1770ff68903bbed">GetOrderedTerms</a> (<a class="el" href="classCVC3_1_1ExprTransform.html#aa10792398a3dd7f79c5cc619585a599f">B_formula_map</a> &amp;instance_map, <a class="el" href="classCVC3_1_1ExprTransform.html#afd51977fd7d11cb567f22d5be92ef8b2">B_name_map</a> &amp;name_map, <a class="el" href="classCVC3_1_1ExprTransform.html#a473dadfb4e1638fd294871ce1c065eab">B_Term_map</a> &amp;X_term_map, <a class="el" href="classCVC3_1_1ExprTransform.html#aa711e6099dd934a9bc975cd8ca4c19f8">T_ITE_vec</a> &amp;ITE_vec, std::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;G_terms, std::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;X_terms, std::vector&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;Pred_vec, std::vector&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;sortedOps, std::vector&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;Constrained_vec, std::vector&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;UnConstrained_vec, std::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;Constrained_set, std::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;UnConstrained_set, <a class="el" href="classCVC3_1_1ExprTransform.html#a473dadfb4e1638fd294871ce1c065eab">B_Term_map</a> &amp;G_term_map, <a class="el" href="classCVC3_1_1ExprTransform.html#a473dadfb4e1638fd294871ce1c065eab">B_Term_map</a> &amp;P_term_map, std::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;SeenBefore, std::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;ITE_Added)
<li>void <a class="el" href="classCVC3_1_1ExprTransform.html#a2809937bb336aef64363212c5f69d443">GetPEqs</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e, <a class="el" href="classCVC3_1_1ExprTransform.html#afd51977fd7d11cb567f22d5be92ef8b2">B_name_map</a> &amp;name_map, std::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;P_constrained_set, std::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;Constrained_set, <a class="el" href="classCVC3_1_1ExprTransform.html#ae3037a0875b13d617c86cb543c1d4c30">T_generator_map</a> &amp;Constrained_map, std::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;SeenBefore)
<li><a class="el" href="classCVC3_1_1Expr.html">Expr</a> <a class="el" href="classCVC3_1_1ExprTransform.html#a659a92b833ed5812ba515f85198e2cf8">ConstrainedConstraints</a> (<a class="el" href="classCVC3_1_1ExprTransform.html#ae3037a0875b13d617c86cb543c1d4c30">T_generator_map</a> &amp;Constrained_map, <a class="el" href="classCVC3_1_1ExprTransform.html#afd51977fd7d11cb567f22d5be92ef8b2">B_name_map</a> &amp;name_map, <a class="el" href="classCVC3_1_1ExprTransform.html#a473dadfb4e1638fd294871ce1c065eab">B_Term_map</a> &amp;Creation_map, std::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;Constrained_set, std::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;UnConstrained_set, std::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;P_constrained_set)
<li>void <a class="el" href="classCVC3_1_1ExprTransform.html#a71108e36557a2682d8e321067c161e31">BuildBryantMaps</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e, <a class="el" href="classCVC3_1_1ExprTransform.html#ae3037a0875b13d617c86cb543c1d4c30">T_generator_map</a> &amp;generator_map, <a class="el" href="classCVC3_1_1ExprTransform.html#a473dadfb4e1638fd294871ce1c065eab">B_Term_map</a> &amp;X_generator_map, <a class="el" href="classCVC3_1_1ExprTransform.html#ad3d45dc36c7202bdfb6ae3296fd30ca0">B_type_map</a> &amp;type_map, std::vector&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;Pred_vec, std::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;P_terms, std::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;G_terms, <a class="el" href="classCVC3_1_1ExprTransform.html#a473dadfb4e1638fd294871ce1c065eab">B_Term_map</a> &amp;P_term_map, <a class="el" href="classCVC3_1_1ExprTransform.html#a473dadfb4e1638fd294871ce1c065eab">B_Term_map</a> &amp;G_term_map, std::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;SeenBefore, std::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;ITE_Added)
<li>int <a class="el" href="classCVC3_1_1ExprTransform.html#a9dcc604aebee21513a723e7a4e1a19ab">CountSubTerms</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e, int &amp;counter)
<li>void <a class="el" href="classCVC3_1_1ExprTransform.html#ad905aa95541bd87e9a1c14c385e1ce8c">GetOrdering</a> (<a class="el" href="classCVC3_1_1ExprTransform.html#a473dadfb4e1638fd294871ce1c065eab">B_Term_map</a> &amp;X_generator_map, <a class="el" href="classCVC3_1_1ExprTransform.html#a473dadfb4e1638fd294871ce1c065eab">B_Term_map</a> &amp;G_term_map, <a class="el" href="classCVC3_1_1ExprTransform.html#a473dadfb4e1638fd294871ce1c065eab">B_Term_map</a> &amp;P_Term_map)
<li>void <a class="el" href="classCVC3_1_1ExprTransform.html#a8562ba510c6e4f2da2c2e57c56fd1200">B_Term_Map_Deleter</a> (<a class="el" href="classCVC3_1_1ExprTransform.html#a473dadfb4e1638fd294871ce1c065eab">B_Term_map</a> &amp;Map)
<li>void <a class="el" href="classCVC3_1_1ExprTransform.html#a442486c9c71341eaa3fb69f60e8d37f1">T_generator_Map_Deleter</a> (<a class="el" href="classCVC3_1_1ExprTransform.html#ae3037a0875b13d617c86cb543c1d4c30">T_generator_map</a> &amp;Map)
<li><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> <a class="el" href="classCVC3_1_1ExprTransform.html#a4d3d970b0c48c6f5973fc150a8a63d5b">dobryant</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;T)
<li><a class="el" href="classCVC3_1_1ExprTransform.html#ac97b921ef5da4a6f60b961984dc6100a">T_name_map</a> <a class="el" href="classCVC3_1_1ExprTransform.html#aac9127480414753520986d861dae7fdf">ANNames</a> (<a class="el" href="classCVC3_1_1ExprTransform.html#a6c748a11c5329f22edb08e2480e4d35d">T_ack_map</a> &amp;ack_map, <a class="el" href="classCVC3_1_1ExprTransform.html#a0497ad8dd16d60a11af24a3aa31de0a4">T_type_map</a> &amp;type_map)
<li><a class="el" href="classCVC3_1_1Expr.html">Expr</a> <a class="el" href="classCVC3_1_1ExprTransform.html#aa93bd2d9e0e030afe292419128fbb118">AckConstraints</a> (<a class="el" href="classCVC3_1_1ExprTransform.html#a6c748a11c5329f22edb08e2480e4d35d">T_ack_map</a> &amp;ack_map, <a class="el" href="classCVC3_1_1ExprTransform.html#ac97b921ef5da4a6f60b961984dc6100a">T_name_map</a> &amp;name_map)
<li>void <a class="el" href="classCVC3_1_1ExprTransform.html#a7ef78e51553a7f71acb5c9440d39e934">GetAckSwap</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;orig, std::vector&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;OldAck, std::vector&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;NewAck, <a class="el" href="classCVC3_1_1ExprTransform.html#ac97b921ef5da4a6f60b961984dc6100a">T_name_map</a> &amp;name_map, <a class="el" href="classCVC3_1_1ExprTransform.html#a6c748a11c5329f22edb08e2480e4d35d">T_ack_map</a> &amp;ack_map, std::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;SeenBefore)
<li>void <a class="el" href="classCVC3_1_1ExprTransform.html#adbeeb663fe9bd8a4ffb4ef990bd41b0a">BuildMap</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e, <a class="el" href="classCVC3_1_1ExprTransform.html#a6c748a11c5329f22edb08e2480e4d35d">T_ack_map</a> &amp;ack_map, <a class="el" href="classCVC3_1_1ExprTransform.html#a0497ad8dd16d60a11af24a3aa31de0a4">T_type_map</a> &amp;type_map, std::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;SeenBefore)
<li><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> <a class="el" href="classCVC3_1_1ExprTransform.html#a437c0fff15f026314984701a915ea956">doackermann</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;T)
<li><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> <a class="el" href="classCVC3_1_1ExprTransform.html#aafc3b026dbacc81d82b75a45b702b0a4">smartSimplify</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; bool &gt; &amp;cache)
<dl class="el"><dd class="mdescRight">Simplification that avoids stack overflow.  <a href="#aafc3b026dbacc81d82b75a45b702b0a4"></a><br/></dl><li><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> <a class="el" href="classCVC3_1_1ExprTransform.html#a39652560061ab1172040113d9dfa25f6">preprocess</a> (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_1ExprTransform.html#aeb0a695de12cfa208e39f0b5a4bdeb56">preprocess</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;thm)
<li><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> <a class="el" href="classCVC3_1_1ExprTransform.html#ab2757afee881751f99c86499400aef44">pushNegation</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)
<dl class="el"><dd class="mdescRight">Push all negations down to the leaves.  <a href="#ab2757afee881751f99c86499400aef44"></a><br/></dl><li><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> <a class="el" href="classCVC3_1_1ExprTransform.html#a8a34a76b702e026c8285f18893da7dbd">pushNegationRec</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e, bool neg)
<dl class="el"><dd class="mdescRight">Auxiliary recursive function for <a class="el" href="classCVC3_1_1ExprTransform.html#ab2757afee881751f99c86499400aef44" title="Push all negations down to the leaves.">pushNegation()</a>.  <a href="#a8a34a76b702e026c8285f18893da7dbd"></a><br/></dl><li><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> <a class="el" href="classCVC3_1_1ExprTransform.html#aa247d13841a682165edb357895d78aa3">pushNegationRec</a> (const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;e, bool neg)
<dl class="el"><dd class="mdescRight">Its version for transitivity.  <a href="#aa247d13841a682165edb357895d78aa3"></a><br/></dl><li><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> <a class="el" href="classCVC3_1_1ExprTransform.html#a5daaef4e405ec8c9bb7f6e6adbde27fa">pushNegation1</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)
<dl class="el"><dd class="mdescRight">Push negation one level down. Takes 'e' which is 'NOT e[0]'.  <a href="#a5daaef4e405ec8c9bb7f6e6adbde27fa"></a><br/></dl><li><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> <a class="el" href="classCVC3_1_1ExprTransform.html#ac16db941bec1cf4ecb888a8fc3f1a0e9">specialSimplify</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e, <a class="el" href="classCVC3_1_1ExprHashMap.html">ExprHashMap</a>&lt; <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &gt; &amp;cache)
<dl class="el"><dd class="mdescRight">Helper for newPP.  <a href="#ac16db941bec1cf4ecb888a8fc3f1a0e9"></a><br/></dl><li><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> <a class="el" href="classCVC3_1_1ExprTransform.html#a10909e40663567172bcbf45bad521055">newPP</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e, int &amp;budget)
<dl class="el"><dd class="mdescRight">new preprocessing code  <a href="#a10909e40663567172bcbf45bad521055"></a><br/></dl><li><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> <a class="el" href="classCVC3_1_1ExprTransform.html#a5817a5d8a33b01904fa7e06aa91061bb">newPPrec</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e, int &amp;budget)
<dl class="el"><dd class="mdescRight">main new preprocessing code  <a href="#a5817a5d8a33b01904fa7e06aa91061bb"></a><br/></dl><li><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> <a class="el" href="classCVC3_1_1ExprTransform.html#ad18b9697ac34575a40f106e48cfef5b4">simplifyWithCare</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e)
<dl class="el"><dd class="mdescRight">ITE simplification from Burch paper.  <a href="#ad18b9697ac34575a40f106e48cfef5b4"></a><br/></dl></ul>
<h2><a name="pri-methods"></a>
Private Member Functions</h2>
<ul>
<li>void <a class="el" href="classCVC3_1_1ExprTransform.html#ad12aee56d7dd01276af2d993ce4676c9">updateQueue</a> (<a class="el" href="classCVC3_1_1ExprMap.html">ExprMap</a>&lt; std::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; * &gt; &amp;queue, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e, const std::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;careSet)
<dl class="el"><dd class="mdescRight">Helper for simplifyWithCare.  <a href="#ad12aee56d7dd01276af2d993ce4676c9"></a><br/></dl><li><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> <a class="el" href="classCVC3_1_1ExprTransform.html#ae1f3a46b2e09495bb5afe3ac46f23c2b">substitute</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;e, <a class="el" href="classCVC3_1_1ExprHashMap.html">ExprHashMap</a>&lt; <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &gt; &amp;substTable, <a class="el" href="classCVC3_1_1ExprHashMap.html">ExprHashMap</a>&lt; <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &gt; &amp;cache)
<dl class="el"><dd class="mdescRight">Helper for simplifyWithCare.  <a href="#ae1f3a46b2e09495bb5afe3ac46f23c2b"></a><br/></dl></ul>
<h2><a name="pri-attribs"></a>
Private Attributes</h2>
<ul>
<li><a class="el" href="classCVC3_1_1TheoryCore.html">TheoryCore</a> * <a class="el" href="classCVC3_1_1ExprTransform.html#adf66a811cae797e64ae8ff25e922766a">d_core</a>
<li><a class="el" href="classCVC3_1_1TheoryArith.html">TheoryArith</a> * <a class="el" href="classCVC3_1_1ExprTransform.html#a741b9541234b906a8b74845e4c4d3c51">d_theoryArith</a>
<li><a class="el" href="classCVC3_1_1CommonProofRules.html">CommonProofRules</a> * <a class="el" href="classCVC3_1_1ExprTransform.html#aeea6bcb414f95c53d846ad7c684b1a5d">d_commonRules</a>
<li><a class="el" href="classCVC3_1_1CoreProofRules.html">CoreProofRules</a> * <a class="el" href="classCVC3_1_1ExprTransform.html#ae6bdbc5df7bd412e0594650d7ef02cc4">d_rules</a>
<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_1ExprTransform.html#a986331240196633d2d639867eb2b2850">d_pushNegCache</a>
<dl class="el"><dd class="mdescRight">Cache for <a class="el" href="classCVC3_1_1ExprTransform.html#ab2757afee881751f99c86499400aef44" title="Push all negations down to the leaves.">pushNegation()</a>  <a href="#a986331240196633d2d639867eb2b2850"></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_1ExprTransform.html#a574575f8c65c604d6904c4654f2e48d6">d_newPPCache</a>
<dl class="el"><dd class="mdescRight">Cache for newPP.  <a href="#a574575f8c65c604d6904c4654f2e48d6"></a><br/></dl><li>int <a class="el" href="classCVC3_1_1ExprTransform.html#a4228c9a8ee02c424c35bbd4bf3733cb8">d_budgetLimit</a>
<dl class="el"><dd class="mdescRight">Budget limit for newPP.  <a href="#a4228c9a8ee02c424c35bbd4bf3733cb8"></a><br/></dl></ul>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock">
<p>Definition at line <a class="el" href="expr__transform_8h_source.html#l00035">35</a> of file <a class="el" href="expr__transform_8h_source.html">expr_transform.h</a>.</p>
</div><hr/><h2>Member Typedef Documentation</h2>
<a class="anchor" id="ac97b921ef5da4a6f60b961984dc6100a"></a><!-- doxytag: member="CVC3::ExprTransform::T_name_map" ref="ac97b921ef5da4a6f60b961984dc6100a" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef std::map&lt; std::pair&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a>, ExprTransform::CParameter &gt;, <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; <a class="el" href="classCVC3_1_1ExprTransform.html#ac97b921ef5da4a6f60b961984dc6100a">CVC3::ExprTransform::T_name_map</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="expr__transform_8h_source.html#l00057">57</a> of file <a class="el" href="expr__transform_8h_source.html">expr_transform.h</a>.</p>

</div>
</div>
<a class="anchor" id="a6c748a11c5329f22edb08e2480e4d35d"></a><!-- doxytag: member="CVC3::ExprTransform::T_ack_map" ref="a6c748a11c5329f22edb08e2480e4d35d" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef std::map&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a>, std::set&lt; ExprTransform::CParameter &gt;* &gt; <a class="el" href="classCVC3_1_1ExprTransform.html#a6c748a11c5329f22edb08e2480e4d35d">CVC3::ExprTransform::T_ack_map</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="expr__transform_8h_source.html#l00063">63</a> of file <a class="el" href="expr__transform_8h_source.html">expr_transform.h</a>.</p>

</div>
</div>
<a class="anchor" id="a0497ad8dd16d60a11af24a3aa31de0a4"></a><!-- doxytag: member="CVC3::ExprTransform::T_type_map" ref="a0497ad8dd16d60a11af24a3aa31de0a4" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef std::map&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a>, <a class="el" href="classCVC3_1_1Type.html">Type</a>&gt; <a class="el" href="classCVC3_1_1ExprTransform.html#a0497ad8dd16d60a11af24a3aa31de0a4">CVC3::ExprTransform::T_type_map</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="expr__transform_8h_source.html#l00064">64</a> of file <a class="el" href="expr__transform_8h_source.html">expr_transform.h</a>.</p>

</div>
</div>
<a class="anchor" id="afd51977fd7d11cb567f22d5be92ef8b2"></a><!-- doxytag: member="CVC3::ExprTransform::B_name_map" ref="afd51977fd7d11cb567f22d5be92ef8b2" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef std::map&lt; std::pair&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a>, <a class="el" href="classCVC3_1_1Expr.html">Expr</a>&gt;, <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; <a class="el" href="classCVC3_1_1ExprTransform.html#afd51977fd7d11cb567f22d5be92ef8b2">CVC3::ExprTransform::B_name_map</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="expr__transform_8h_source.html#l00065">65</a> of file <a class="el" href="expr__transform_8h_source.html">expr_transform.h</a>.</p>

</div>
</div>
<a class="anchor" id="ad3d45dc36c7202bdfb6ae3296fd30ca0"></a><!-- doxytag: member="CVC3::ExprTransform::B_type_map" ref="ad3d45dc36c7202bdfb6ae3296fd30ca0" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef std::map&lt;<a class="el" href="classCVC3_1_1Expr.html">Expr</a>, <a class="el" href="classCVC3_1_1Type.html">Type</a>&gt; <a class="el" href="classCVC3_1_1ExprTransform.html#ad3d45dc36c7202bdfb6ae3296fd30ca0">CVC3::ExprTransform::B_type_map</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

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

</div>
</div>
<a class="anchor" id="ae3037a0875b13d617c86cb543c1d4c30"></a><!-- doxytag: member="CVC3::ExprTransform::T_generator_map" ref="ae3037a0875b13d617c86cb543c1d4c30" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef std::map&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a>, std::set&lt;<a class="el" href="classCVC3_1_1Expr.html">Expr</a>&gt;*&gt; <a class="el" href="classCVC3_1_1ExprTransform.html#ae3037a0875b13d617c86cb543c1d4c30">CVC3::ExprTransform::T_generator_map</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="expr__transform_8h_source.html#l00067">67</a> of file <a class="el" href="expr__transform_8h_source.html">expr_transform.h</a>.</p>

</div>
</div>
<a class="anchor" id="a473dadfb4e1638fd294871ce1c065eab"></a><!-- doxytag: member="CVC3::ExprTransform::B_Term_map" ref="a473dadfb4e1638fd294871ce1c065eab" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef std::map&lt;<a class="el" href="classCVC3_1_1Expr.html">Expr</a>, std::vector&lt;<a class="el" href="classCVC3_1_1Expr.html">Expr</a>&gt;*&gt; <a class="el" href="classCVC3_1_1ExprTransform.html#a473dadfb4e1638fd294871ce1c065eab">CVC3::ExprTransform::B_Term_map</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="expr__transform_8h_source.html#l00068">68</a> of file <a class="el" href="expr__transform_8h_source.html">expr_transform.h</a>.</p>

</div>
</div>
<a class="anchor" id="a09e5e66e7ff199ea844d4ac6b0b5312c"></a><!-- doxytag: member="CVC3::ExprTransform::T_ITE_map" ref="a09e5e66e7ff199ea844d4ac6b0b5312c" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef std::map&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_1ExprTransform.html#a09e5e66e7ff199ea844d4ac6b0b5312c">CVC3::ExprTransform::T_ITE_map</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="expr__transform_8h_source.html#l00069">69</a> of file <a class="el" href="expr__transform_8h_source.html">expr_transform.h</a>.</p>

</div>
</div>
<a class="anchor" id="aa10792398a3dd7f79c5cc619585a599f"></a><!-- doxytag: member="CVC3::ExprTransform::B_formula_map" ref="aa10792398a3dd7f79c5cc619585a599f" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef std::map&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a>, int&gt; <a class="el" href="classCVC3_1_1ExprTransform.html#aa10792398a3dd7f79c5cc619585a599f">CVC3::ExprTransform::B_formula_map</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

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

</div>
</div>
<a class="anchor" id="a778f42e55a939714cfc796f8694c21b6"></a><!-- doxytag: member="CVC3::ExprTransform::NEW_formula_map" ref="a778f42e55a939714cfc796f8694c21b6" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef std::map&lt;<a class="el" href="classCVC3_1_1Expr.html">Expr</a>, std::set&lt;int&gt;*&gt; <a class="el" href="classCVC3_1_1ExprTransform.html#a778f42e55a939714cfc796f8694c21b6">CVC3::ExprTransform::NEW_formula_map</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

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

</div>
</div>
<a class="anchor" id="aa711e6099dd934a9bc975cd8ca4c19f8"></a><!-- doxytag: member="CVC3::ExprTransform::T_ITE_vec" ref="aa711e6099dd934a9bc975cd8ca4c19f8" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef std::vector&lt;<a class="el" href="classCVC3_1_1Expr.html">Expr</a>&gt; <a class="el" href="classCVC3_1_1ExprTransform.html#aa711e6099dd934a9bc975cd8ca4c19f8">CVC3::ExprTransform::T_ITE_vec</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

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

</div>
</div>
<hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a7bf5ddc9291a65cc5fa55af9f3a7f338"></a><!-- doxytag: member="CVC3::ExprTransform::ExprTransform" ref="a7bf5ddc9291a65cc5fa55af9f3a7f338" args="(TheoryCore *core)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ExprTransform::ExprTransform </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="expr__transform_8cpp_source.html#l00034">34</a> of file <a class="el" href="expr__transform_8cpp_source.html">expr_transform.cpp</a>.</p>

<p>References <a class="el" href="expr__transform_8h_source.html#l00039">d_commonRules</a>, <a class="el" href="expr__transform_8h_source.html#l00037">d_core</a>, <a class="el" href="expr__transform_8h_source.html#l00040">d_rules</a>, <a class="el" href="theory_8h_source.html#l00096">CVC3::Theory::getCommonRules()</a>, and <a class="el" href="theory__core_8h_source.html#l00353">CVC3::TheoryCore::getCoreRules()</a>.</p>

</div>
</div>
<a class="anchor" id="ab276e3bf371d8b726c801f2f6350bc3c"></a><!-- doxytag: member="CVC3::ExprTransform::~ExprTransform" ref="ab276e3bf371d8b726c801f2f6350bc3c" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">CVC3::ExprTransform::~ExprTransform </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="expr__transform_8h_source.html#l00051">51</a> of file <a class="el" href="expr__transform_8h_source.html">expr_transform.h</a>.</p>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="af362794d5fd753e8d6ac6dab185eb424"></a><!-- doxytag: member="CVC3::ExprTransform::setTheoryArith" ref="af362794d5fd753e8d6ac6dab185eb424" args="(TheoryArith *arith)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void CVC3::ExprTransform::setTheoryArith </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1TheoryArith.html">TheoryArith</a> *&#160;</td>
          <td class="paramname"><em>arith</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="expr__transform_8h_source.html#l00053">53</a> of file <a class="el" href="expr__transform_8h_source.html">expr_transform.h</a>.</p>

<p>References <a class="el" href="expr__transform_8h_source.html#l00038">d_theoryArith</a>.</p>

</div>
</div>
<a class="anchor" id="ae810dc60dbc0e66fcdcd75fd883db5cc"></a><!-- doxytag: member="CVC3::ExprTransform::NewBryantVar" ref="ae810dc60dbc0e66fcdcd75fd883db5cc" args="(const int a, const int b)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::string ExprTransform::NewBryantVar </td>
          <td>(</td>
          <td class="paramtype">const int&#160;</td>
          <td class="paramname"><em>a</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const int&#160;</td>
          <td class="paramname"><em>b</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="bryant_8cpp_source.html#l00025">25</a> of file <a class="el" href="bryant_8cpp_source.html">bryant.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a08a24c302c7469e845fea47c6eb1bdab"></a><!-- doxytag: member="CVC3::ExprTransform::NewVar" ref="a08a24c302c7469e845fea47c6eb1bdab" args="(const int a, const int b)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::string CVC3::ExprTransform::NewVar </td>
          <td>(</td>
          <td class="paramtype">const int&#160;</td>
          <td class="paramname"><em>a</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const int&#160;</td>
          <td class="paramname"><em>b</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="aa18644e8ddad65f85bba79b631a0b64f"></a><!-- doxytag: member="CVC3::ExprTransform::BryantNames" ref="aa18644e8ddad65f85bba79b631a0b64f" args="(T_generator_map &amp;generator_map, B_type_map &amp;type_map)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1ExprTransform.html#afd51977fd7d11cb567f22d5be92ef8b2">ExprTransform::B_name_map</a> ExprTransform::BryantNames </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1ExprTransform.html#ae3037a0875b13d617c86cb543c1d4c30">T_generator_map</a> &amp;&#160;</td>
          <td class="paramname"><em>generator_map</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1ExprTransform.html#ad3d45dc36c7202bdfb6ae3296fd30ca0">B_type_map</a> &amp;&#160;</td>
          <td class="paramname"><em>type_map</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="bryant_8cpp_source.html#l00036">36</a> of file <a class="el" href="bryant_8cpp_source.html">bryant.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="ab56e297f7c76c3f3dd25cb0fe2128743"></a><!-- doxytag: member="CVC3::ExprTransform::ITE_generator" ref="ab56e297f7c76c3f3dd25cb0fe2128743" args="(Expr &amp;Orig, Expr &amp;Value, B_Term_map &amp;Creation_map, B_name_map &amp;name_map, T_ITE_map &amp;ITE_map)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Expr.html">Expr</a> ExprTransform::ITE_generator </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>Orig</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>Value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1ExprTransform.html#a473dadfb4e1638fd294871ce1c065eab">B_Term_map</a> &amp;&#160;</td>
          <td class="paramname"><em>Creation_map</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1ExprTransform.html#afd51977fd7d11cb567f22d5be92ef8b2">B_name_map</a> &amp;&#160;</td>
          <td class="paramname"><em>name_map</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1ExprTransform.html#a09e5e66e7ff199ea844d4ac6b0b5312c">T_ITE_map</a> &amp;&#160;</td>
          <td class="paramname"><em>ITE_map</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="bryant_8cpp_source.html#l00110">110</a> of file <a class="el" href="bryant_8cpp_source.html">bryant.cpp</a>.</p>

<p>References <a class="el" href="expr_8h_source.html#l00941">CVC3::Expr::andExpr()</a>, <a class="el" href="expr_8h_source.html#l01201">CVC3::Expr::arity()</a>, <a class="el" href="expr_8h_source.html#l00929">CVC3::Expr::eqExpr()</a>, <a class="el" href="expr_8h_source.html#l01191">CVC3::Expr::getOpExpr()</a>, <a class="el" href="expr_8h_source.html#l01223">CVC3::Expr::isNull()</a>, and <a class="el" href="expr_8h_source.html#l00961">CVC3::Expr::iteExpr()</a>.</p>

</div>
</div>
<a class="anchor" id="a9b0513038a344188cd7ba64c439f0a90"></a><!-- doxytag: member="CVC3::ExprTransform::Get_ITEs" ref="a9b0513038a344188cd7ba64c439f0a90" args="(B_formula_map &amp;instance_map, std::set&lt; Expr &gt; &amp;Not_replaced_set, B_Term_map &amp;P_term_map, T_ITE_vec &amp;ITE_vec, B_Term_map &amp;Creation_map, B_name_map &amp;name_map, T_ITE_map &amp;ITE_map)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ExprTransform::Get_ITEs </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1ExprTransform.html#aa10792398a3dd7f79c5cc619585a599f">B_formula_map</a> &amp;&#160;</td>
          <td class="paramname"><em>instance_map</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>Not_replaced_set</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1ExprTransform.html#a473dadfb4e1638fd294871ce1c065eab">B_Term_map</a> &amp;&#160;</td>
          <td class="paramname"><em>P_term_map</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1ExprTransform.html#aa711e6099dd934a9bc975cd8ca4c19f8">T_ITE_vec</a> &amp;&#160;</td>
          <td class="paramname"><em>ITE_vec</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1ExprTransform.html#a473dadfb4e1638fd294871ce1c065eab">B_Term_map</a> &amp;&#160;</td>
          <td class="paramname"><em>Creation_map</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1ExprTransform.html#afd51977fd7d11cb567f22d5be92ef8b2">B_name_map</a> &amp;&#160;</td>
          <td class="paramname"><em>name_map</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1ExprTransform.html#a09e5e66e7ff199ea844d4ac6b0b5312c">T_ITE_map</a> &amp;&#160;</td>
          <td class="paramname"><em>ITE_map</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="bryant_8cpp_source.html#l00149">149</a> of file <a class="el" href="bryant_8cpp_source.html">bryant.cpp</a>.</p>

<p>References <a class="el" href="bryant_8cpp_source.html#l00012">LIMIT</a>.</p>

</div>
</div>
<a class="anchor" id="a108f3c577d310fc31d33cf99d45c8f83"></a><!-- doxytag: member="CVC3::ExprTransform::PredConstrainTester" ref="a108f3c577d310fc31d33cf99d45c8f83" args="(std::set&lt; Expr &gt; &amp;Not_replaced_set, const Expr &amp;e, B_name_map &amp;name_map, std::vector&lt; Expr &gt; &amp;Pred_vec, std::set&lt; Expr &gt; &amp;Constrained_set, std::set&lt; Expr &gt; &amp;P_constrained_set, T_generator_map &amp;Constrained_map)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ExprTransform::PredConstrainTester </td>
          <td>(</td>
          <td class="paramtype">std::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>Not_replaced_set</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>e</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1ExprTransform.html#afd51977fd7d11cb567f22d5be92ef8b2">B_name_map</a> &amp;&#160;</td>
          <td class="paramname"><em>name_map</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>Pred_vec</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>Constrained_set</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>P_constrained_set</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1ExprTransform.html#ae3037a0875b13d617c86cb543c1d4c30">T_generator_map</a> &amp;&#160;</td>
          <td class="paramname"><em>Constrained_map</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="bryant_8cpp_source.html#l00094">94</a> of file <a class="el" href="bryant_8cpp_source.html">bryant.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a373ee038538a33ee19d424779c5be94a"></a><!-- doxytag: member="CVC3::ExprTransform::PredConstrainer" ref="a373ee038538a33ee19d424779c5be94a" args="(std::set&lt; Expr &gt; &amp;Not_replaced_set, const Expr &amp;e, const Expr &amp;Pred, int location, B_name_map &amp;name_map, std::set&lt; Expr &gt; &amp;SeenBefore, std::set&lt; Expr &gt; &amp;Constrained_set, T_generator_map &amp;Constrained_map, std::set&lt; Expr &gt; &amp;P_constrained_set)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ExprTransform::PredConstrainer </td>
          <td>(</td>
          <td class="paramtype">std::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>Not_replaced_set</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>e</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>Pred</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>location</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1ExprTransform.html#afd51977fd7d11cb567f22d5be92ef8b2">B_name_map</a> &amp;&#160;</td>
          <td class="paramname"><em>name_map</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>SeenBefore</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>Constrained_set</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1ExprTransform.html#ae3037a0875b13d617c86cb543c1d4c30">T_generator_map</a> &amp;&#160;</td>
          <td class="paramname"><em>Constrained_map</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>P_constrained_set</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="bryant_8cpp_source.html#l00055">55</a> of file <a class="el" href="bryant_8cpp_source.html">bryant.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#l01217">CVC3::Expr::end()</a>, <a class="el" href="expr_8h_source.html#l00929">CVC3::Expr::eqExpr()</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>, <a class="el" href="expr_8h_source.html#l01021">CVC3::Expr::isTerm()</a>, <a class="el" href="expr_8h_source.html#l00933">CVC3::Expr::notExpr()</a>, and <a class="el" href="kinds_8h_source.html#l00088">UFUNC</a>.</p>

</div>
</div>
<a class="anchor" id="ae3bfa06061376f6a2bbd367da8ad6fed"></a><!-- doxytag: member="CVC3::ExprTransform::ConstrainedConstraints" ref="ae3bfa06061376f6a2bbd367da8ad6fed" args="(std::set&lt; Expr &gt; &amp;Not_replaced_set, T_generator_map &amp;Constrained_map, B_name_map &amp;name_map, B_Term_map &amp;Creation_map, std::set&lt; Expr &gt; &amp;Constrained_set, std::set&lt; Expr &gt; &amp;UnConstrained_set, std::set&lt; Expr &gt; &amp;P_constrained_set)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Expr.html">Expr</a> ExprTransform::ConstrainedConstraints </td>
          <td>(</td>
          <td class="paramtype">std::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>Not_replaced_set</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1ExprTransform.html#ae3037a0875b13d617c86cb543c1d4c30">T_generator_map</a> &amp;&#160;</td>
          <td class="paramname"><em>Constrained_map</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1ExprTransform.html#afd51977fd7d11cb567f22d5be92ef8b2">B_name_map</a> &amp;&#160;</td>
          <td class="paramname"><em>name_map</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1ExprTransform.html#a473dadfb4e1638fd294871ce1c065eab">B_Term_map</a> &amp;&#160;</td>
          <td class="paramname"><em>Creation_map</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>Constrained_set</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>UnConstrained_set</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>P_constrained_set</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="bryant_8cpp_source.html#l00442">442</a> of file <a class="el" href="bryant_8cpp_source.html">bryant.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#l01211">CVC3::Expr::begin()</a>, <a class="el" href="expr_8h_source.html#l00929">CVC3::Expr::eqExpr()</a>, and <a class="el" href="expr_8h_source.html#l00933">CVC3::Expr::notExpr()</a>.</p>

</div>
</div>
<a class="anchor" id="a42100ea2839cf15346eab2c8ca29b744"></a><!-- doxytag: member="CVC3::ExprTransform::RemoveFunctionApps" ref="a42100ea2839cf15346eab2c8ca29b744" args="(const Expr &amp;orig, std::set&lt; Expr &gt; &amp;Not_replaced_set, std::vector&lt; Expr &gt; &amp;Old, std::vector&lt; Expr &gt; &amp;New, T_ITE_map &amp;ITE_map, std::set&lt; Expr &gt; &amp;SeenBefore)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ExprTransform::RemoveFunctionApps </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>orig</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>Not_replaced_set</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>Old</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>New</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1ExprTransform.html#a09e5e66e7ff199ea844d4ac6b0b5312c">T_ITE_map</a> &amp;&#160;</td>
          <td class="paramname"><em>ITE_map</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>SeenBefore</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="bryant_8cpp_source.html#l00185">185</a> of file <a class="el" href="bryant_8cpp_source.html">bryant.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#l01196">CVC3::Expr::getOpKind()</a>, <a class="el" href="expr_8h_source.html#l01014">CVC3::Expr::isApply()</a>, and <a class="el" href="kinds_8h_source.html#l00088">UFUNC</a>.</p>

</div>
</div>
<a class="anchor" id="a1fd5200aed59c30782723933193e17e1"></a><!-- doxytag: member="CVC3::ExprTransform::GetSortedOpVec" ref="a1fd5200aed59c30782723933193e17e1" args="(B_Term_map &amp;X_generator_map, B_Term_map &amp;X_term_map, B_Term_map &amp;P_term_map, std::set&lt; Expr &gt; &amp;P_terms, std::set&lt; Expr &gt; &amp;G_terms, std::set&lt; Expr &gt; &amp;X_terms, std::vector&lt; Expr &gt; &amp;sortedOps, std::set&lt; Expr &gt; &amp;SeenBefore)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ExprTransform::GetSortedOpVec </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1ExprTransform.html#a473dadfb4e1638fd294871ce1c065eab">B_Term_map</a> &amp;&#160;</td>
          <td class="paramname"><em>X_generator_map</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1ExprTransform.html#a473dadfb4e1638fd294871ce1c065eab">B_Term_map</a> &amp;&#160;</td>
          <td class="paramname"><em>X_term_map</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1ExprTransform.html#a473dadfb4e1638fd294871ce1c065eab">B_Term_map</a> &amp;&#160;</td>
          <td class="paramname"><em>P_term_map</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>P_terms</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>G_terms</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>X_terms</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>sortedOps</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>SeenBefore</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="bryant_8cpp_source.html#l00199">199</a> of file <a class="el" href="bryant_8cpp_source.html">bryant.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="aad34764272dd1294745101217847c037"></a><!-- doxytag: member="CVC3::ExprTransform::GetFormulaMap" ref="aad34764272dd1294745101217847c037" args="(const Expr &amp;e, std::set&lt; Expr &gt; &amp;formula_map, std::set&lt; Expr &gt; &amp;G_terms, int &amp;size, int negations)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ExprTransform::GetFormulaMap </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::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>formula_map</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>G_terms</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int &amp;&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>negations</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="bryant_8cpp_source.html#l00252">252</a> of file <a class="el" href="bryant_8cpp_source.html">bryant.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#l00419">CVC3::Expr::isEq()</a>, and <a class="el" href="expr_8h_source.html#l00420">CVC3::Expr::isNot()</a>.</p>

</div>
</div>
<a class="anchor" id="ae234191fd5e1cf389b6db0d62fa14419"></a><!-- doxytag: member="CVC3::ExprTransform::GetGTerms2" ref="ae234191fd5e1cf389b6db0d62fa14419" args="(std::set&lt; Expr &gt; &amp;formula_map, std::set&lt; Expr &gt; &amp;G_terms)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ExprTransform::GetGTerms2 </td>
          <td>(</td>
          <td class="paramtype">std::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>formula_map</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>G_terms</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="bryant_8cpp_source.html#l00262">262</a> of file <a class="el" href="bryant_8cpp_source.html">bryant.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="aae8f759b318fc4e16a89e188cb11da79"></a><!-- doxytag: member="CVC3::ExprTransform::GetSub_vec" ref="aae8f759b318fc4e16a89e188cb11da79" args="(T_ITE_vec &amp;ITE_vec, const Expr &amp;e, std::set&lt; Expr &gt; &amp;ITE_Added)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ExprTransform::GetSub_vec </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1ExprTransform.html#aa711e6099dd934a9bc975cd8ca4c19f8">T_ITE_vec</a> &amp;&#160;</td>
          <td class="paramname"><em>ITE_vec</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>e</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>ITE_Added</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="bryant_8cpp_source.html#l00271">271</a> of file <a class="el" href="bryant_8cpp_source.html">bryant.cpp</a>.</p>

<p>References <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="a6be37560bf3a9d8fb1770ff68903bbed"></a><!-- doxytag: member="CVC3::ExprTransform::GetOrderedTerms" ref="a6be37560bf3a9d8fb1770ff68903bbed" args="(B_formula_map &amp;instance_map, B_name_map &amp;name_map, B_Term_map &amp;X_term_map, T_ITE_vec &amp;ITE_vec, std::set&lt; Expr &gt; &amp;G_terms, std::set&lt; Expr &gt; &amp;X_terms, std::vector&lt; Expr &gt; &amp;Pred_vec, std::vector&lt; Expr &gt; &amp;sortedOps, std::vector&lt; Expr &gt; &amp;Constrained_vec, std::vector&lt; Expr &gt; &amp;UnConstrained_vec, std::set&lt; Expr &gt; &amp;Constrained_set, std::set&lt; Expr &gt; &amp;UnConstrained_set, B_Term_map &amp;G_term_map, B_Term_map &amp;P_term_map, std::set&lt; Expr &gt; &amp;SeenBefore, std::set&lt; Expr &gt; &amp;ITE_Added)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ExprTransform::GetOrderedTerms </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1ExprTransform.html#aa10792398a3dd7f79c5cc619585a599f">B_formula_map</a> &amp;&#160;</td>
          <td class="paramname"><em>instance_map</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1ExprTransform.html#afd51977fd7d11cb567f22d5be92ef8b2">B_name_map</a> &amp;&#160;</td>
          <td class="paramname"><em>name_map</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1ExprTransform.html#a473dadfb4e1638fd294871ce1c065eab">B_Term_map</a> &amp;&#160;</td>
          <td class="paramname"><em>X_term_map</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1ExprTransform.html#aa711e6099dd934a9bc975cd8ca4c19f8">T_ITE_vec</a> &amp;&#160;</td>
          <td class="paramname"><em>ITE_vec</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>G_terms</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>X_terms</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>Pred_vec</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>sortedOps</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>Constrained_vec</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>UnConstrained_vec</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>Constrained_set</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>UnConstrained_set</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1ExprTransform.html#a473dadfb4e1638fd294871ce1c065eab">B_Term_map</a> &amp;&#160;</td>
          <td class="paramname"><em>G_term_map</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1ExprTransform.html#a473dadfb4e1638fd294871ce1c065eab">B_Term_map</a> &amp;&#160;</td>
          <td class="paramname"><em>P_term_map</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>SeenBefore</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>ITE_Added</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="bryant_8cpp_source.html#l00281">281</a> of file <a class="el" href="bryant_8cpp_source.html">bryant.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a2809937bb336aef64363212c5f69d443"></a><!-- doxytag: member="CVC3::ExprTransform::GetPEqs" ref="a2809937bb336aef64363212c5f69d443" args="(const Expr &amp;e, B_name_map &amp;name_map, std::set&lt; Expr &gt; &amp;P_constrained_set, std::set&lt; Expr &gt; &amp;Constrained_set, T_generator_map &amp;Constrained_map, std::set&lt; Expr &gt; &amp;SeenBefore)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ExprTransform::GetPEqs </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_1ExprTransform.html#afd51977fd7d11cb567f22d5be92ef8b2">B_name_map</a> &amp;&#160;</td>
          <td class="paramname"><em>name_map</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>P_constrained_set</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>Constrained_set</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1ExprTransform.html#ae3037a0875b13d617c86cb543c1d4c30">T_generator_map</a> &amp;&#160;</td>
          <td class="paramname"><em>Constrained_map</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>SeenBefore</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="bryant_8cpp_source.html#l00401">401</a> of file <a class="el" href="bryant_8cpp_source.html">bryant.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#l00929">CVC3::Expr::eqExpr()</a>, <a class="el" href="expr_8h_source.html#l00419">CVC3::Expr::isEq()</a>, and <a class="el" href="expr_8h_source.html#l00933">CVC3::Expr::notExpr()</a>.</p>

</div>
</div>
<a class="anchor" id="a659a92b833ed5812ba515f85198e2cf8"></a><!-- doxytag: member="CVC3::ExprTransform::ConstrainedConstraints" ref="a659a92b833ed5812ba515f85198e2cf8" args="(T_generator_map &amp;Constrained_map, B_name_map &amp;name_map, B_Term_map &amp;Creation_map, std::set&lt; Expr &gt; &amp;Constrained_set, std::set&lt; Expr &gt; &amp;UnConstrained_set, std::set&lt; Expr &gt; &amp;P_constrained_set)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Expr.html">Expr</a> CVC3::ExprTransform::ConstrainedConstraints </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1ExprTransform.html#ae3037a0875b13d617c86cb543c1d4c30">T_generator_map</a> &amp;&#160;</td>
          <td class="paramname"><em>Constrained_map</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1ExprTransform.html#afd51977fd7d11cb567f22d5be92ef8b2">B_name_map</a> &amp;&#160;</td>
          <td class="paramname"><em>name_map</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1ExprTransform.html#a473dadfb4e1638fd294871ce1c065eab">B_Term_map</a> &amp;&#160;</td>
          <td class="paramname"><em>Creation_map</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>Constrained_set</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>UnConstrained_set</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>P_constrained_set</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a71108e36557a2682d8e321067c161e31"></a><!-- doxytag: member="CVC3::ExprTransform::BuildBryantMaps" ref="a71108e36557a2682d8e321067c161e31" args="(const Expr &amp;e, T_generator_map &amp;generator_map, B_Term_map &amp;X_generator_map, B_type_map &amp;type_map, std::vector&lt; Expr &gt; &amp;Pred_vec, std::set&lt; Expr &gt; &amp;P_terms, std::set&lt; Expr &gt; &amp;G_terms, B_Term_map &amp;P_term_map, B_Term_map &amp;G_term_map, std::set&lt; Expr &gt; &amp;SeenBefore, std::set&lt; Expr &gt; &amp;ITE_Added)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ExprTransform::BuildBryantMaps </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_1ExprTransform.html#ae3037a0875b13d617c86cb543c1d4c30">T_generator_map</a> &amp;&#160;</td>
          <td class="paramname"><em>generator_map</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1ExprTransform.html#a473dadfb4e1638fd294871ce1c065eab">B_Term_map</a> &amp;&#160;</td>
          <td class="paramname"><em>X_generator_map</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1ExprTransform.html#ad3d45dc36c7202bdfb6ae3296fd30ca0">B_type_map</a> &amp;&#160;</td>
          <td class="paramname"><em>type_map</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>Pred_vec</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>P_terms</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>G_terms</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1ExprTransform.html#a473dadfb4e1638fd294871ce1c065eab">B_Term_map</a> &amp;&#160;</td>
          <td class="paramname"><em>P_term_map</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1ExprTransform.html#a473dadfb4e1638fd294871ce1c065eab">B_Term_map</a> &amp;&#160;</td>
          <td class="paramname"><em>G_term_map</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>SeenBefore</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>ITE_Added</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="bryant_8cpp_source.html#l00342">342</a> of file <a class="el" href="bryant_8cpp_source.html">bryant.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#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#l01259">CVC3::Expr::getType()</a>, <a class="el" href="expr_8h_source.html#l01014">CVC3::Expr::isApply()</a>, <a class="el" href="expr_8h_source.html#l01021">CVC3::Expr::isTerm()</a>, <a class="el" href="expr_8h_source.html#l01005">CVC3::Expr::isVar()</a>, and <a class="el" href="kinds_8h_source.html#l00088">UFUNC</a>.</p>

</div>
</div>
<a class="anchor" id="a9dcc604aebee21513a723e7a4e1a19ab"></a><!-- doxytag: member="CVC3::ExprTransform::CountSubTerms" ref="a9dcc604aebee21513a723e7a4e1a19ab" args="(const Expr &amp;e, int &amp;counter)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ExprTransform::CountSubTerms </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 &amp;&#160;</td>
          <td class="paramname"><em>counter</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="bryant_8cpp_source.html#l00014">14</a> of file <a class="el" href="bryant_8cpp_source.html">bryant.cpp</a>.</p>

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

</div>
</div>
<a class="anchor" id="ad905aa95541bd87e9a1c14c385e1ce8c"></a><!-- doxytag: member="CVC3::ExprTransform::GetOrdering" ref="ad905aa95541bd87e9a1c14c385e1ce8c" args="(B_Term_map &amp;X_generator_map, B_Term_map &amp;G_term_map, B_Term_map &amp;P_Term_map)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ExprTransform::GetOrdering </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1ExprTransform.html#a473dadfb4e1638fd294871ce1c065eab">B_Term_map</a> &amp;&#160;</td>
          <td class="paramname"><em>X_generator_map</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1ExprTransform.html#a473dadfb4e1638fd294871ce1c065eab">B_Term_map</a> &amp;&#160;</td>
          <td class="paramname"><em>G_term_map</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1ExprTransform.html#a473dadfb4e1638fd294871ce1c065eab">B_Term_map</a> &amp;&#160;</td>
          <td class="paramname"><em>P_Term_map</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="bryant_8cpp_source.html#l00493">493</a> of file <a class="el" href="bryant_8cpp_source.html">bryant.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a8562ba510c6e4f2da2c2e57c56fd1200"></a><!-- doxytag: member="CVC3::ExprTransform::B_Term_Map_Deleter" ref="a8562ba510c6e4f2da2c2e57c56fd1200" args="(B_Term_map &amp;Map)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ExprTransform::B_Term_Map_Deleter </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1ExprTransform.html#a473dadfb4e1638fd294871ce1c065eab">B_Term_map</a> &amp;&#160;</td>
          <td class="paramname"><em>Map</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="bryant_8cpp_source.html#l00563">563</a> of file <a class="el" href="bryant_8cpp_source.html">bryant.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a442486c9c71341eaa3fb69f60e8d37f1"></a><!-- doxytag: member="CVC3::ExprTransform::T_generator_Map_Deleter" ref="a442486c9c71341eaa3fb69f60e8d37f1" args="(T_generator_map &amp;Map)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ExprTransform::T_generator_Map_Deleter </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1ExprTransform.html#ae3037a0875b13d617c86cb543c1d4c30">T_generator_map</a> &amp;&#160;</td>
          <td class="paramname"><em>Map</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="bryant_8cpp_source.html#l00568">568</a> of file <a class="el" href="bryant_8cpp_source.html">bryant.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a4d3d970b0c48c6f5973fc150a8a63d5b"></a><!-- doxytag: member="CVC3::ExprTransform::dobryant" ref="a4d3d970b0c48c6f5973fc150a8a63d5b" args="(const Expr &amp;T)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> ExprTransform::dobryant </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><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="bryant_8cpp_source.html#l00573">573</a> of file <a class="el" href="bryant_8cpp_source.html">bryant.cpp</a>.</p>

<p>References <a class="el" href="expr_8h_source.html#l00965">CVC3::Expr::iffExpr()</a>, <a class="el" href="expr_8h_source.html#l00969">CVC3::Expr::impExpr()</a>, <a class="el" href="bryant_8cpp_source.html#l00012">LIMIT</a>, <a class="el" href="expr_8h_source.html#l00933">CVC3::Expr::notExpr()</a>, and <a class="el" href="expr_8cpp_source.html#l00178">CVC3::Expr::substExpr()</a>.</p>

<p>Referenced by <a class="el" href="expr__transform_8cpp_source.html#l00079">preprocess()</a>.</p>

</div>
</div>
<a class="anchor" id="aac9127480414753520986d861dae7fdf"></a><!-- doxytag: member="CVC3::ExprTransform::ANNames" ref="aac9127480414753520986d861dae7fdf" args="(T_ack_map &amp;ack_map, T_type_map &amp;type_map)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1ExprTransform.html#ac97b921ef5da4a6f60b961984dc6100a">T_name_map</a> CVC3::ExprTransform::ANNames </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1ExprTransform.html#a6c748a11c5329f22edb08e2480e4d35d">T_ack_map</a> &amp;&#160;</td>
          <td class="paramname"><em>ack_map</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1ExprTransform.html#a0497ad8dd16d60a11af24a3aa31de0a4">T_type_map</a> &amp;&#160;</td>
          <td class="paramname"><em>type_map</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="aa93bd2d9e0e030afe292419128fbb118"></a><!-- doxytag: member="CVC3::ExprTransform::AckConstraints" ref="aa93bd2d9e0e030afe292419128fbb118" args="(T_ack_map &amp;ack_map, T_name_map &amp;name_map)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Expr.html">Expr</a> CVC3::ExprTransform::AckConstraints </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1ExprTransform.html#a6c748a11c5329f22edb08e2480e4d35d">T_ack_map</a> &amp;&#160;</td>
          <td class="paramname"><em>ack_map</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1ExprTransform.html#ac97b921ef5da4a6f60b961984dc6100a">T_name_map</a> &amp;&#160;</td>
          <td class="paramname"><em>name_map</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a7ef78e51553a7f71acb5c9440d39e934"></a><!-- doxytag: member="CVC3::ExprTransform::GetAckSwap" ref="a7ef78e51553a7f71acb5c9440d39e934" args="(const Expr &amp;orig, std::vector&lt; Expr &gt; &amp;OldAck, std::vector&lt; Expr &gt; &amp;NewAck, T_name_map &amp;name_map, T_ack_map &amp;ack_map, std::set&lt; Expr &gt; &amp;SeenBefore)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void CVC3::ExprTransform::GetAckSwap </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>orig</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>OldAck</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>NewAck</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1ExprTransform.html#ac97b921ef5da4a6f60b961984dc6100a">T_name_map</a> &amp;&#160;</td>
          <td class="paramname"><em>name_map</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1ExprTransform.html#a6c748a11c5329f22edb08e2480e4d35d">T_ack_map</a> &amp;&#160;</td>
          <td class="paramname"><em>ack_map</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>SeenBefore</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="adbeeb663fe9bd8a4ffb4ef990bd41b0a"></a><!-- doxytag: member="CVC3::ExprTransform::BuildMap" ref="adbeeb663fe9bd8a4ffb4ef990bd41b0a" args="(const Expr &amp;e, T_ack_map &amp;ack_map, T_type_map &amp;type_map, std::set&lt; Expr &gt; &amp;SeenBefore)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void CVC3::ExprTransform::BuildMap </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_1ExprTransform.html#a6c748a11c5329f22edb08e2480e4d35d">T_ack_map</a> &amp;&#160;</td>
          <td class="paramname"><em>ack_map</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1ExprTransform.html#a0497ad8dd16d60a11af24a3aa31de0a4">T_type_map</a> &amp;&#160;</td>
          <td class="paramname"><em>type_map</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>SeenBefore</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a437c0fff15f026314984701a915ea956"></a><!-- doxytag: member="CVC3::ExprTransform::doackermann" ref="a437c0fff15f026314984701a915ea956" args="(const Expr &amp;T)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> CVC3::ExprTransform::doackermann </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><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="aafc3b026dbacc81d82b75a45b702b0a4"></a><!-- doxytag: member="CVC3::ExprTransform::smartSimplify" ref="aafc3b026dbacc81d82b75a45b702b0a4" args="(const Expr &amp;e, ExprMap&lt; bool &gt; &amp;cache)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> ExprTransform::smartSimplify </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; bool &gt; &amp;&#160;</td>
          <td class="paramname"><em>cache</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Simplification that avoids stack overflow. </p>
<p>Stack overflow is avoided by traversing the expression to depths that are multiples of 5000 until the bottom is reached. Then, simplification is done bottom-up. </p>

<p>Definition at line <a class="el" href="expr__transform_8cpp_source.html#l00042">42</a> of file <a class="el" href="expr__transform_8cpp_source.html">expr_transform.cpp</a>.</p>

<p>References <a class="el" href="expr_8h_source.html#l01201">CVC3::Expr::arity()</a>, <a class="el" href="expr__transform_8h_source.html#l00037">d_core</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="expr__map_8h_source.html#l00194">CVC3::ExprMap&lt; Data &gt;::find()</a>, <a class="el" href="expr_8h_source.html#l01232">CVC3::Expr::hasFind()</a>, <a class="el" href="theory__core_8cpp_source.html#l00184">CVC3::TheoryCore::simplify()</a>, and <a class="el" href="expr_8h_source.html#l01294">CVC3::Expr::validSimpCache()</a>.</p>

<p>Referenced by <a class="el" href="expr__transform_8cpp_source.html#l00079">preprocess()</a>.</p>

</div>
</div>
<a class="anchor" id="a39652560061ab1172040113d9dfa25f6"></a><!-- doxytag: member="CVC3::ExprTransform::preprocess" ref="a39652560061ab1172040113d9dfa25f6" 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> ExprTransform::preprocess </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="expr__transform_8cpp_source.html#l00079">79</a> of file <a class="el" href="expr__transform_8cpp_source.html">expr_transform.cpp</a>.</p>

<p>References <a class="el" href="theory__core_8cpp_source.html#l00857">CVC3::TheoryCore::callTheoryPreprocess()</a>, <a class="el" href="theory__core_8h_source.html#l00366">CVC3::TheoryCore::clearInPP()</a>, <a class="el" href="expr__transform_8h_source.html#l00047">d_budgetLimit</a>, <a class="el" href="expr__transform_8h_source.html#l00039">d_commonRules</a>, <a class="el" href="expr__transform_8h_source.html#l00037">d_core</a>, <a class="el" href="bryant_8cpp_source.html#l00573">dobryant()</a>, <a class="el" href="theory_8h_source.html#l00090">CVC3::Theory::getEM()</a>, <a class="el" href="theory__core_8h_source.html#l00350">CVC3::TheoryCore::getFlags()</a>, <a class="el" href="theorem_8cpp_source.html#l00246">CVC3::Theorem::getRHS()</a>, <a class="el" href="expr__manager_8h_source.html#l00341">CVC3::ExprManager::invalidateSimpCache()</a>, <a class="el" href="theorem_8h_source.html#l00171">CVC3::Theorem::isRefl()</a>, <a class="el" href="expr__transform_8cpp_source.html#l00282">newPP()</a>, <a class="el" href="expr__transform_8cpp_source.html#l00127">pushNegation()</a>, <a class="el" href="classCVC3_1_1CommonProofRules.html#a61c1fe56b4ed9744006883a7784ddb71">CVC3::CommonProofRules::reflexivityRule()</a>, <a class="el" href="theory__core_8h_source.html#l00365">CVC3::TheoryCore::setInPP()</a>, <a class="el" href="expr__transform_8cpp_source.html#l00476">simplifyWithCare()</a>, <a class="el" href="expr__transform_8cpp_source.html#l00042">smartSimplify()</a>, and <a class="el" href="classCVC3_1_1CommonProofRules.html#a4a4e90cd69ce24e83ba2c217907c277a">CVC3::CommonProofRules::transitivityRule()</a>.</p>

<p>Referenced by <a class="el" href="search__simple_8cpp_source.html#l00165">CVC3::SearchSimple::checkValidInternal()</a>, <a class="el" href="search__fast_8cpp_source.html#l01697">CVC3::SearchEngineFast::checkValidInternal()</a>, <a class="el" href="theory__core_8cpp_source.html#l04320">CVC3::TheoryCore::getAssignment()</a>, <a class="el" href="theory__core_8cpp_source.html#l04333">CVC3::TheoryCore::getValue()</a>, <a class="el" href="search__impl__base_8cpp_source.html#l00141">CVC3::SearchImplBase::newUserAssumption()</a>, <a class="el" href="search__sat_8cpp_source.html#l01064">CVC3::SearchSat::newUserAssumptionInt()</a>, and <a class="el" href="expr__transform_8cpp_source.html#l00120">preprocess()</a>.</p>

</div>
</div>
<a class="anchor" id="aeb0a695de12cfa208e39f0b5a4bdeb56"></a><!-- doxytag: member="CVC3::ExprTransform::preprocess" ref="aeb0a695de12cfa208e39f0b5a4bdeb56" 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> ExprTransform::preprocess </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &amp;&#160;</td>
          <td class="paramname"><em>thm</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="expr__transform_8cpp_source.html#l00120">120</a> of file <a class="el" href="expr__transform_8cpp_source.html">expr_transform.cpp</a>.</p>

<p>References <a class="el" href="expr__transform_8h_source.html#l00039">d_commonRules</a>, <a class="el" href="theorem_8cpp_source.html#l00230">CVC3::Theorem::getExpr()</a>, <a class="el" href="classCVC3_1_1CommonProofRules.html#aebbcd4a194e4fdca0bcd16143fb03a75">CVC3::CommonProofRules::iffMP()</a>, and <a class="el" href="expr__transform_8cpp_source.html#l00079">preprocess()</a>.</p>

</div>
</div>
<a class="anchor" id="ab2757afee881751f99c86499400aef44"></a><!-- doxytag: member="CVC3::ExprTransform::pushNegation" ref="ab2757afee881751f99c86499400aef44" 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> ExprTransform::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></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Push all negations down to the leaves. </p>

<p>Definition at line <a class="el" href="expr__transform_8cpp_source.html#l00127">127</a> of file <a class="el" href="expr__transform_8cpp_source.html">expr_transform.cpp</a>.</p>

<p>References <a class="el" href="expr__map_8h_source.html#l00175">CVC3::ExprMap&lt; Data &gt;::clear()</a>, <a class="el" href="expr__transform_8h_source.html#l00039">d_commonRules</a>, <a class="el" href="expr__transform_8h_source.html#l00043">d_pushNegCache</a>, <a class="el" href="expr_8h_source.html#l01021">CVC3::Expr::isTerm()</a>, <a class="el" href="expr__transform_8cpp_source.html#l00141">pushNegationRec()</a>, and <a class="el" href="classCVC3_1_1CommonProofRules.html#a61c1fe56b4ed9744006883a7784ddb71">CVC3::CommonProofRules::reflexivityRule()</a>.</p>

<p>Referenced by <a class="el" href="expr__transform_8cpp_source.html#l00079">preprocess()</a>.</p>

</div>
</div>
<a class="anchor" id="a8a34a76b702e026c8285f18893da7dbd"></a><!-- doxytag: member="CVC3::ExprTransform::pushNegationRec" ref="a8a34a76b702e026c8285f18893da7dbd" args="(const Expr &amp;e, bool neg)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> ExprTransform::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>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>neg</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Auxiliary recursive function for <a class="el" href="classCVC3_1_1ExprTransform.html#ab2757afee881751f99c86499400aef44" title="Push all negations down to the leaves.">pushNegation()</a>. </p>

<p>Definition at line <a class="el" href="expr__transform_8cpp_source.html#l00141">141</a> of file <a class="el" href="expr__transform_8cpp_source.html">expr_transform.cpp</a>.</p>

<p>References <a class="el" href="kinds_8h_source.html#l00067">AND</a>, <a class="el" href="expr__transform_8h_source.html#l00039">d_commonRules</a>, <a class="el" href="expr__transform_8h_source.html#l00037">d_core</a>, <a class="el" href="expr__transform_8h_source.html#l00043">d_pushNegCache</a>, <a class="el" href="expr__transform_8h_source.html#l00040">d_rules</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#l00036">FALSE_EXPR</a>, <a class="el" href="expr__map_8h_source.html#l00194">CVC3::ExprMap&lt; Data &gt;::find()</a>, <a class="el" href="kinds_8h_source.html#l00070">IFF</a>, <a class="el" href="kinds_8h_source.html#l00071">IMPLIES</a>, <a class="el" href="expr_8h_source.html#l01021">CVC3::Expr::isTerm()</a>, <a class="el" href="kinds_8h_source.html#l00081">ITE</a>, <a class="el" href="kinds_8h_source.html#l00227">LETDECL</a>, <a class="el" href="kinds_8h_source.html#l00066">NOT</a>, <a class="el" href="kinds_8h_source.html#l00068">OR</a>, <a class="el" href="classCVC3_1_1CommonProofRules.html#a61c1fe56b4ed9744006883a7784ddb71">CVC3::CommonProofRules::reflexivityRule()</a>, <a class="el" href="theory_8h_source.html#l00673">CVC3::Theory::reflexivityRule()</a>, <a class="el" href="classCVC3_1_1CoreProofRules.html#a3389cd795acc4cee4b591c1488293963">CVC3::CoreProofRules::rewriteImplies()</a>, <a class="el" href="classCVC3_1_1CoreProofRules.html#acad687c3e6faa5709961210637c260da">CVC3::CoreProofRules::rewriteLetDecl()</a>, <a class="el" href="classCVC3_1_1CoreProofRules.html#ade3007866410b6565ee0ea1ff4c49a99">CVC3::CoreProofRules::rewriteNotAnd()</a>, <a class="el" href="classCVC3_1_1CommonProofRules.html#a30fa79637f4308e8e733015624293775">CVC3::CommonProofRules::rewriteNotFalse()</a>, <a class="el" href="classCVC3_1_1CoreProofRules.html#ac68942cf0c21011f9429042e279b4a54">CVC3::CoreProofRules::rewriteNotIte()</a>, <a class="el" href="classCVC3_1_1CommonProofRules.html#a8a04ff29591a019d4d4cf073c0987316">CVC3::CommonProofRules::rewriteNotNot()</a>, <a class="el" href="classCVC3_1_1CoreProofRules.html#aea875ee7355ae6aab01b84c176dbccf6">CVC3::CoreProofRules::rewriteNotOr()</a>, <a class="el" href="classCVC3_1_1CommonProofRules.html#ad55b11590196fbd73d24daa1d0d6eeb1">CVC3::CommonProofRules::rewriteNotTrue()</a>, <a class="el" href="classCVC3_1_1CommonProofRules.html#a776c827bb6e3b889234429c49ae9ad6f">CVC3::CommonProofRules::substitutivityRule()</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#l00035">TRUE_EXPR</a>.</p>

<p>Referenced by <a class="el" href="expr__transform_8cpp_source.html#l00127">pushNegation()</a>, and <a class="el" href="expr__transform_8cpp_source.html#l00225">pushNegationRec()</a>.</p>

</div>
</div>
<a class="anchor" id="aa247d13841a682165edb357895d78aa3"></a><!-- doxytag: member="CVC3::ExprTransform::pushNegationRec" ref="aa247d13841a682165edb357895d78aa3" args="(const Theorem &amp;e, bool neg)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> ExprTransform::pushNegationRec </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">bool&#160;</td>
          <td class="paramname"><em>neg</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Its version for transitivity. </p>

<p>Definition at line <a class="el" href="expr__transform_8cpp_source.html#l00225">225</a> of file <a class="el" href="expr__transform_8cpp_source.html">expr_transform.cpp</a>.</p>

<p>References <a class="el" href="expr__transform_8h_source.html#l00039">d_commonRules</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="theorem_8cpp_source.html#l00246">CVC3::Theorem::getRHS()</a>, <a class="el" href="theorem_8cpp_source.html#l00224">CVC3::Theorem::isRewrite()</a>, <a class="el" href="expr__transform_8cpp_source.html#l00141">pushNegationRec()</a>, <a class="el" href="theorem_8h_source.html#l00404">CVC3::Theorem::toString()</a>, and <a class="el" href="classCVC3_1_1CommonProofRules.html#a4a4e90cd69ce24e83ba2c217907c277a">CVC3::CommonProofRules::transitivityRule()</a>.</p>

</div>
</div>
<a class="anchor" id="a5daaef4e405ec8c9bb7f6e6adbde27fa"></a><!-- doxytag: member="CVC3::ExprTransform::pushNegation1" ref="a5daaef4e405ec8c9bb7f6e6adbde27fa" 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> ExprTransform::pushNegation1 </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>Push negation one level down. Takes 'e' which is 'NOT e[0]'. </p>

<p>Definition at line <a class="el" href="expr__transform_8cpp_source.html#l00239">239</a> of file <a class="el" href="expr__transform_8cpp_source.html">expr_transform.cpp</a>.</p>

<p>References <a class="el" href="kinds_8h_source.html#l00067">AND</a>, <a class="el" href="expr__transform_8h_source.html#l00039">d_commonRules</a>, <a class="el" href="expr__transform_8h_source.html#l00040">d_rules</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="kinds_8h_source.html#l00036">FALSE_EXPR</a>, <a class="el" href="expr_8h_source.html#l01183">CVC3::Expr::getOp()</a>, <a class="el" href="kinds_8h_source.html#l00071">IMPLIES</a>, <a class="el" href="expr_8h_source.html#l00420">CVC3::Expr::isNot()</a>, <a class="el" href="kinds_8h_source.html#l00081">ITE</a>, <a class="el" href="kinds_8h_source.html#l00227">LETDECL</a>, <a class="el" href="kinds_8h_source.html#l00066">NOT</a>, <a class="el" href="kinds_8h_source.html#l00068">OR</a>, <a class="el" href="classCVC3_1_1CommonProofRules.html#a61c1fe56b4ed9744006883a7784ddb71">CVC3::CommonProofRules::reflexivityRule()</a>, <a class="el" href="classCVC3_1_1CoreProofRules.html#a3389cd795acc4cee4b591c1488293963">CVC3::CoreProofRules::rewriteImplies()</a>, <a class="el" href="classCVC3_1_1CoreProofRules.html#acad687c3e6faa5709961210637c260da">CVC3::CoreProofRules::rewriteLetDecl()</a>, <a class="el" href="classCVC3_1_1CoreProofRules.html#ade3007866410b6565ee0ea1ff4c49a99">CVC3::CoreProofRules::rewriteNotAnd()</a>, <a class="el" href="classCVC3_1_1CommonProofRules.html#a30fa79637f4308e8e733015624293775">CVC3::CommonProofRules::rewriteNotFalse()</a>, <a class="el" href="classCVC3_1_1CoreProofRules.html#ac68942cf0c21011f9429042e279b4a54">CVC3::CoreProofRules::rewriteNotIte()</a>, <a class="el" href="classCVC3_1_1CommonProofRules.html#a8a04ff29591a019d4d4cf073c0987316">CVC3::CommonProofRules::rewriteNotNot()</a>, <a class="el" href="classCVC3_1_1CoreProofRules.html#aea875ee7355ae6aab01b84c176dbccf6">CVC3::CoreProofRules::rewriteNotOr()</a>, <a class="el" href="classCVC3_1_1CommonProofRules.html#ad55b11590196fbd73d24daa1d0d6eeb1">CVC3::CommonProofRules::rewriteNotTrue()</a>, <a class="el" href="classCVC3_1_1CommonProofRules.html#a776c827bb6e3b889234429c49ae9ad6f">CVC3::CommonProofRules::substitutivityRule()</a>, <a class="el" href="expr_8cpp_source.html#l00344">CVC3::Expr::toString()</a>, <a class="el" href="kinds_8h_source.html#l00099">TRACE</a>, <a class="el" href="classCVC3_1_1CommonProofRules.html#a4a4e90cd69ce24e83ba2c217907c277a">CVC3::CommonProofRules::transitivityRule()</a>, and <a class="el" href="kinds_8h_source.html#l00035">TRUE_EXPR</a>.</p>

</div>
</div>
<a class="anchor" id="ac16db941bec1cf4ecb888a8fc3f1a0e9"></a><!-- doxytag: member="CVC3::ExprTransform::specialSimplify" ref="ac16db941bec1cf4ecb888a8fc3f1a0e9" args="(const Expr &amp;e, ExprHashMap&lt; Theorem &gt; &amp;cache)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> ExprTransform::specialSimplify </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_1ExprHashMap.html">ExprHashMap</a>&lt; <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>cache</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Helper for newPP. </p>

<p>Definition at line <a class="el" href="expr__transform_8cpp_source.html#l00296">296</a> of file <a class="el" href="expr__transform_8cpp_source.html">expr_transform.cpp</a>.</p>

<p>References <a class="el" href="expr_8h_source.html#l01201">CVC3::Expr::arity()</a>, <a class="el" href="expr__transform_8h_source.html#l00039">d_commonRules</a>, <a class="el" href="expr__transform_8h_source.html#l00037">d_core</a>, <a class="el" href="expr__map_8h_source.html#l00326">CVC3::ExprHashMap&lt; Data &gt;::end()</a>, <a class="el" href="expr__map_8h_source.html#l00329">CVC3::ExprHashMap&lt; Data &gt;::find()</a>, <a class="el" href="expr_8h_source.html#l01259">CVC3::Expr::getType()</a>, <a class="el" href="expr_8cpp_source.html#l00550">CVC3::Expr::isAtomic()</a>, <a class="el" href="type_8h_source.html#l00060">CVC3::Type::isBool()</a>, <a class="el" href="theorem_8h_source.html#l00171">CVC3::Theorem::isRefl()</a>, <a class="el" href="classCVC3_1_1CommonProofRules.html#a61c1fe56b4ed9744006883a7784ddb71">CVC3::CommonProofRules::reflexivityRule()</a>, <a class="el" href="theory__core_8cpp_source.html#l00184">CVC3::TheoryCore::simplify()</a>, and <a class="el" href="classCVC3_1_1CommonProofRules.html#a776c827bb6e3b889234429c49ae9ad6f">CVC3::CommonProofRules::substitutivityRule()</a>.</p>

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

<p>new preprocessing code </p>

<p>Definition at line <a class="el" href="expr__transform_8cpp_source.html#l00282">282</a> of file <a class="el" href="expr__transform_8cpp_source.html">expr_transform.cpp</a>.</p>

<p>References <a class="el" href="expr__map_8h_source.html#l00175">CVC3::ExprMap&lt; Data &gt;::clear()</a>, <a class="el" href="expr__transform_8h_source.html#l00047">d_budgetLimit</a>, <a class="el" href="expr__transform_8h_source.html#l00039">d_commonRules</a>, <a class="el" href="expr__transform_8h_source.html#l00045">d_newPPCache</a>, <a class="el" href="theorem_8cpp_source.html#l00246">CVC3::Theorem::getRHS()</a>, <a class="el" href="expr_8h_source.html#l01030">CVC3::Expr::getSize()</a>, <a class="el" href="expr_8h_source.html#l01259">CVC3::Expr::getType()</a>, <a class="el" href="type_8h_source.html#l00060">CVC3::Type::isBool()</a>, <a class="el" href="expr__transform_8cpp_source.html#l00334">newPPrec()</a>, and <a class="el" href="classCVC3_1_1CommonProofRules.html#a61c1fe56b4ed9744006883a7784ddb71">CVC3::CommonProofRules::reflexivityRule()</a>.</p>

<p>Referenced by <a class="el" href="expr__transform_8cpp_source.html#l00079">preprocess()</a>.</p>

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

<p>main new preprocessing code </p>

<p>Definition at line <a class="el" href="expr__transform_8cpp_source.html#l00334">334</a> of file <a class="el" href="expr__transform_8cpp_source.html">expr_transform.cpp</a>.</p>

<p>References <a class="el" href="theory__core_8cpp_source.html#l03468">CVC3::TheoryCore::addFact()</a>, <a class="el" href="expr_8h_source.html#l01201">CVC3::Expr::arity()</a>, <a class="el" href="classCVC3_1_1CommonProofRules.html#ab4527c48e9f88d94d7ca076757a6f3ba">CVC3::CommonProofRules::assumpRule()</a>, <a class="el" href="expr_8cpp_source.html#l00525">CVC3::Expr::containsTermITE()</a>, <a class="el" href="expr__transform_8h_source.html#l00047">d_budgetLimit</a>, <a class="el" href="expr__transform_8h_source.html#l00039">d_commonRules</a>, <a class="el" href="expr__transform_8h_source.html#l00037">d_core</a>, <a class="el" href="expr__transform_8h_source.html#l00045">d_newPPCache</a>, <a class="el" href="expr__transform_8h_source.html#l00040">d_rules</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="expr__map_8h_source.html#l00194">CVC3::ExprMap&lt; Data &gt;::find()</a>, <a class="el" href="theory__core_8h_source.html#l00348">CVC3::TheoryCore::getCM()</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="type_8h_source.html#l00060">CVC3::Type::isBool()</a>, <a class="el" href="expr_8h_source.html#l00411">CVC3::Expr::isPropAtom()</a>, <a class="el" href="theorem_8h_source.html#l00171">CVC3::Theorem::isRefl()</a>, <a class="el" href="classCVC3_1_1CommonProofRules.html#a893a258d9f7d49acb5c8a8b5b8ec39b0">CVC3::CommonProofRules::liftOneITE()</a>, <a class="el" href="expr_8h_source.html#l00937">CVC3::Expr::negate()</a>, <a class="el" href="context_8h_source.html#l00402">CVC3::ContextManager::pop()</a>, <a class="el" href="context_8h_source.html#l00401">CVC3::ContextManager::push()</a>, <a class="el" href="classCVC3_1_1CommonProofRules.html#a61c1fe56b4ed9744006883a7784ddb71">CVC3::CommonProofRules::reflexivityRule()</a>, <a class="el" href="classCVC3_1_1CoreProofRules.html#a7912f66f5be7e05b0c85f15596747be4">CVC3::CoreProofRules::rewriteIteElse()</a>, <a class="el" href="classCVC3_1_1CoreProofRules.html#a8117a95eed02c35936f988d1c9c2bdab">CVC3::CoreProofRules::rewriteIteThen()</a>, <a class="el" href="theory__core_8cpp_source.html#l00184">CVC3::TheoryCore::simplify()</a>, <a class="el" href="classCVC3_1_1CommonProofRules.html#a776c827bb6e3b889234429c49ae9ad6f">CVC3::CommonProofRules::substitutivityRule()</a>, and <a class="el" href="classCVC3_1_1CommonProofRules.html#a4a4e90cd69ce24e83ba2c217907c277a">CVC3::CommonProofRules::transitivityRule()</a>.</p>

<p>Referenced by <a class="el" href="expr__transform_8cpp_source.html#l00282">newPP()</a>.</p>

</div>
</div>
<a class="anchor" id="ad12aee56d7dd01276af2d993ce4676c9"></a><!-- doxytag: member="CVC3::ExprTransform::updateQueue" ref="ad12aee56d7dd01276af2d993ce4676c9" args="(ExprMap&lt; std::set&lt; Expr &gt; * &gt; &amp;queue, const Expr &amp;e, const std::set&lt; Expr &gt; &amp;careSet)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ExprTransform::updateQueue </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1ExprMap.html">ExprMap</a>&lt; std::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; * &gt; &amp;&#160;</td>
          <td class="paramname"><em>queue</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>e</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::set&lt; <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>careSet</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Helper for simplifyWithCare. </p>

<p>Definition at line <a class="el" href="expr__transform_8cpp_source.html#l00413">413</a> of file <a class="el" href="expr__transform_8cpp_source.html">expr_transform.cpp</a>.</p>

<p>References <a class="el" href="expr__map_8h_source.html#l00194">CVC3::ExprMap&lt; Data &gt;::find()</a>.</p>

<p>Referenced by <a class="el" href="expr__transform_8cpp_source.html#l00476">simplifyWithCare()</a>.</p>

</div>
</div>
<a class="anchor" id="ae1f3a46b2e09495bb5afe3ac46f23c2b"></a><!-- doxytag: member="CVC3::ExprTransform::substitute" ref="ae1f3a46b2e09495bb5afe3ac46f23c2b" args="(const Expr &amp;e, ExprHashMap&lt; Theorem &gt; &amp;substTable, ExprHashMap&lt; Theorem &gt; &amp;cache)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> ExprTransform::substitute </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &amp;&#160;</td>
          <td class="paramname"><em>e</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1ExprHashMap.html">ExprHashMap</a>&lt; <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>substTable</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classCVC3_1_1ExprHashMap.html">ExprHashMap</a>&lt; <a class="el" href="classCVC3_1_1Theorem.html">Theorem</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>cache</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Helper for simplifyWithCare. </p>

<p>Definition at line <a class="el" href="expr__transform_8cpp_source.html#l00434">434</a> of file <a class="el" href="expr__transform_8cpp_source.html">expr_transform.cpp</a>.</p>

<p>References <a class="el" href="expr_8h_source.html#l01201">CVC3::Expr::arity()</a>, <a class="el" href="expr__transform_8h_source.html#l00039">d_commonRules</a>, <a class="el" href="expr__map_8h_source.html#l00326">CVC3::ExprHashMap&lt; Data &gt;::end()</a>, <a class="el" href="expr__map_8h_source.html#l00329">CVC3::ExprHashMap&lt; Data &gt;::find()</a>, <a class="el" href="expr_8cpp_source.html#l00550">CVC3::Expr::isAtomic()</a>, <a class="el" href="theorem_8h_source.html#l00171">CVC3::Theorem::isRefl()</a>, <a class="el" href="classCVC3_1_1CommonProofRules.html#a61c1fe56b4ed9744006883a7784ddb71">CVC3::CommonProofRules::reflexivityRule()</a>, <a class="el" href="classCVC3_1_1CommonProofRules.html#a776c827bb6e3b889234429c49ae9ad6f">CVC3::CommonProofRules::substitutivityRule()</a>, and <a class="el" href="classCVC3_1_1CommonProofRules.html#a4a4e90cd69ce24e83ba2c217907c277a">CVC3::CommonProofRules::transitivityRule()</a>.</p>

<p>Referenced by <a class="el" href="expr__transform_8cpp_source.html#l00476">simplifyWithCare()</a>.</p>

</div>
</div>
<a class="anchor" id="ad18b9697ac34575a40f106e48cfef5b4"></a><!-- doxytag: member="CVC3::ExprTransform::simplifyWithCare" ref="ad18b9697ac34575a40f106e48cfef5b4" 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> ExprTransform::simplifyWithCare </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>ITE simplification from Burch paper. </p>

<p>Definition at line <a class="el" href="expr__transform_8cpp_source.html#l00476">476</a> of file <a class="el" href="expr__transform_8cpp_source.html">expr_transform.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_8cpp_source.html#l00525">CVC3::Expr::containsTermITE()</a>, <a class="el" href="expr__transform_8h_source.html#l00039">d_commonRules</a>, <a class="el" href="expr__transform_8h_source.html#l00037">d_core</a>, <a class="el" href="expr__transform_8h_source.html#l00040">d_rules</a>, <a class="el" href="expr__transform_8h_source.html#l00038">d_theoryArith</a>, <a class="el" href="debug_8h_source.html#l00408">DebugAssert</a>, <a class="el" href="classCVC3_1_1CoreProofRules.html#a9592705bbf82393b7f6500fa33ead252">CVC3::CoreProofRules::dummyTheorem()</a>, <a class="el" href="expr__map_8h_source.html#l00170">CVC3::ExprMap&lt; Data &gt;::empty()</a>, <a class="el" href="expr__map_8h_source.html#l00191">CVC3::ExprMap&lt; Data &gt;::end()</a>, <a class="el" href="expr_8h_source.html#l00929">CVC3::Expr::eqExpr()</a>, <a class="el" href="expr__map_8h_source.html#l00178">CVC3::ExprMap&lt; Data &gt;::erase()</a>, <a class="el" href="expr__manager_8h_source.html#l00278">CVC3::ExprManager::falseExpr()</a>, <a class="el" href="theory_8h_source.html#l00090">CVC3::Theory::getEM()</a>, <a class="el" href="expr_8h_source.html#l01168">CVC3::Expr::getKind()</a>, <a class="el" href="expr_8h_source.html#l01259">CVC3::Expr::getType()</a>, <a class="el" href="expr_8h_source.html#l00965">CVC3::Expr::iffExpr()</a>, <a class="el" href="expr_8cpp_source.html#l00550">CVC3::Expr::isAtomic()</a>, <a class="el" href="expr_8cpp_source.html#l00571">CVC3::Expr::isAtomicFormula()</a>, <a class="el" href="type_8h_source.html#l00060">CVC3::Type::isBool()</a>, <a class="el" href="expr_8h_source.html#l00411">CVC3::Expr::isPropAtom()</a>, <a class="el" href="theorem_8h_source.html#l00171">CVC3::Theorem::isRefl()</a>, <a class="el" href="kinds_8h_source.html#l00081">ITE</a>, <a class="el" href="theory__arith_8cpp_source.html#l00294">CVC3::TheoryArith::leavesAreNumConst()</a>, <a class="el" href="classCVC3_1_1CommonProofRules.html#a893a258d9f7d49acb5c8a8b5b8ec39b0">CVC3::CommonProofRules::liftOneITE()</a>, <a class="el" href="kinds_8h_source.html#l00068">OR</a>, <a class="el" href="classCVC3_1_1CommonProofRules.html#a61c1fe56b4ed9744006883a7784ddb71">CVC3::CommonProofRules::reflexivityRule()</a>, <a class="el" href="classCVC3_1_1CoreProofRules.html#a03f8a74b8b1b6d90ff23a0a6150c49d6">CVC3::CoreProofRules::rewriteIteCond()</a>, <a class="el" href="theory__core_8cpp_source.html#l00184">CVC3::TheoryCore::simplify()</a>, <a class="el" href="expr__transform_8cpp_source.html#l00434">substitute()</a>, <a class="el" href="theory_8cpp_source.html#l00252">CVC3::Theory::theoryOf()</a>, <a class="el" href="classCVC3_1_1CommonProofRules.html#a4a4e90cd69ce24e83ba2c217907c277a">CVC3::CommonProofRules::transitivityRule()</a>, <a class="el" href="expr__manager_8h_source.html#l00280">CVC3::ExprManager::trueExpr()</a>, and <a class="el" href="expr__transform_8cpp_source.html#l00413">updateQueue()</a>.</p>

<p>Referenced by <a class="el" href="expr__transform_8cpp_source.html#l00079">preprocess()</a>.</p>

</div>
</div>
<hr/><h2>Member Data Documentation</h2>
<a class="anchor" id="adf66a811cae797e64ae8ff25e922766a"></a><!-- doxytag: member="CVC3::ExprTransform::d_core" ref="adf66a811cae797e64ae8ff25e922766a" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1TheoryCore.html">TheoryCore</a>* <a class="el" href="classCVC3_1_1ExprTransform.html#adf66a811cae797e64ae8ff25e922766a">CVC3::ExprTransform::d_core</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="expr__transform_8h_source.html#l00037">37</a> of file <a class="el" href="expr__transform_8h_source.html">expr_transform.h</a>.</p>

<p>Referenced by <a class="el" href="expr__transform_8cpp_source.html#l00034">ExprTransform()</a>, <a class="el" href="expr__transform_8cpp_source.html#l00334">newPPrec()</a>, <a class="el" href="expr__transform_8cpp_source.html#l00079">preprocess()</a>, <a class="el" href="expr__transform_8cpp_source.html#l00141">pushNegationRec()</a>, <a class="el" href="expr__transform_8cpp_source.html#l00476">simplifyWithCare()</a>, <a class="el" href="expr__transform_8cpp_source.html#l00042">smartSimplify()</a>, and <a class="el" href="expr__transform_8cpp_source.html#l00296">specialSimplify()</a>.</p>

</div>
</div>
<a class="anchor" id="a741b9541234b906a8b74845e4c4d3c51"></a><!-- doxytag: member="CVC3::ExprTransform::d_theoryArith" ref="a741b9541234b906a8b74845e4c4d3c51" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1TheoryArith.html">TheoryArith</a>* <a class="el" href="classCVC3_1_1ExprTransform.html#a741b9541234b906a8b74845e4c4d3c51">CVC3::ExprTransform::d_theoryArith</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="expr__transform_8h_source.html#l00038">38</a> of file <a class="el" href="expr__transform_8h_source.html">expr_transform.h</a>.</p>

<p>Referenced by <a class="el" href="expr__transform_8h_source.html#l00053">setTheoryArith()</a>, and <a class="el" href="expr__transform_8cpp_source.html#l00476">simplifyWithCare()</a>.</p>

</div>
</div>
<a class="anchor" id="aeea6bcb414f95c53d846ad7c684b1a5d"></a><!-- doxytag: member="CVC3::ExprTransform::d_commonRules" ref="aeea6bcb414f95c53d846ad7c684b1a5d" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1CommonProofRules.html">CommonProofRules</a>* <a class="el" href="classCVC3_1_1ExprTransform.html#aeea6bcb414f95c53d846ad7c684b1a5d">CVC3::ExprTransform::d_commonRules</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="expr__transform_8h_source.html#l00039">39</a> of file <a class="el" href="expr__transform_8h_source.html">expr_transform.h</a>.</p>

<p>Referenced by <a class="el" href="expr__transform_8cpp_source.html#l00034">ExprTransform()</a>, <a class="el" href="expr__transform_8cpp_source.html#l00282">newPP()</a>, <a class="el" href="expr__transform_8cpp_source.html#l00334">newPPrec()</a>, <a class="el" href="expr__transform_8cpp_source.html#l00079">preprocess()</a>, <a class="el" href="expr__transform_8cpp_source.html#l00127">pushNegation()</a>, <a class="el" href="expr__transform_8cpp_source.html#l00239">pushNegation1()</a>, <a class="el" href="expr__transform_8cpp_source.html#l00141">pushNegationRec()</a>, <a class="el" href="expr__transform_8cpp_source.html#l00476">simplifyWithCare()</a>, <a class="el" href="expr__transform_8cpp_source.html#l00296">specialSimplify()</a>, and <a class="el" href="expr__transform_8cpp_source.html#l00434">substitute()</a>.</p>

</div>
</div>
<a class="anchor" id="ae6bdbc5df7bd412e0594650d7ef02cc4"></a><!-- doxytag: member="CVC3::ExprTransform::d_rules" ref="ae6bdbc5df7bd412e0594650d7ef02cc4" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCVC3_1_1CoreProofRules.html">CoreProofRules</a>* <a class="el" href="classCVC3_1_1ExprTransform.html#ae6bdbc5df7bd412e0594650d7ef02cc4">CVC3::ExprTransform::d_rules</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="expr__transform_8h_source.html#l00040">40</a> of file <a class="el" href="expr__transform_8h_source.html">expr_transform.h</a>.</p>

<p>Referenced by <a class="el" href="expr__transform_8cpp_source.html#l00034">ExprTransform()</a>, <a class="el" href="expr__transform_8cpp_source.html#l00334">newPPrec()</a>, <a class="el" href="expr__transform_8cpp_source.html#l00239">pushNegation1()</a>, <a class="el" href="expr__transform_8cpp_source.html#l00141">pushNegationRec()</a>, and <a class="el" href="expr__transform_8cpp_source.html#l00476">simplifyWithCare()</a>.</p>

</div>
</div>
<a class="anchor" id="a986331240196633d2d639867eb2b2850"></a><!-- doxytag: member="CVC3::ExprTransform::d_pushNegCache" ref="a986331240196633d2d639867eb2b2850" 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_1ExprTransform.html#a986331240196633d2d639867eb2b2850">CVC3::ExprTransform::d_pushNegCache</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Cache for <a class="el" href="classCVC3_1_1ExprTransform.html#ab2757afee881751f99c86499400aef44" title="Push all negations down to the leaves.">pushNegation()</a> </p>

<p>Definition at line <a class="el" href="expr__transform_8h_source.html#l00043">43</a> of file <a class="el" href="expr__transform_8h_source.html">expr_transform.h</a>.</p>

<p>Referenced by <a class="el" href="expr__transform_8cpp_source.html#l00127">pushNegation()</a>, and <a class="el" href="expr__transform_8cpp_source.html#l00141">pushNegationRec()</a>.</p>

</div>
</div>
<a class="anchor" id="a574575f8c65c604d6904c4654f2e48d6"></a><!-- doxytag: member="CVC3::ExprTransform::d_newPPCache" ref="a574575f8c65c604d6904c4654f2e48d6" 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_1ExprTransform.html#a574575f8c65c604d6904c4654f2e48d6">CVC3::ExprTransform::d_newPPCache</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Cache for newPP. </p>

<p>Definition at line <a class="el" href="expr__transform_8h_source.html#l00045">45</a> of file <a class="el" href="expr__transform_8h_source.html">expr_transform.h</a>.</p>

<p>Referenced by <a class="el" href="expr__transform_8cpp_source.html#l00282">newPP()</a>, and <a class="el" href="expr__transform_8cpp_source.html#l00334">newPPrec()</a>.</p>

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

<p>Budget limit for newPP. </p>

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

<p>Referenced by <a class="el" href="expr__transform_8cpp_source.html#l00282">newPP()</a>, <a class="el" href="expr__transform_8cpp_source.html#l00334">newPPrec()</a>, and <a class="el" href="expr__transform_8cpp_source.html#l00079">preprocess()</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="expr__transform_8h_source.html">expr_transform.h</a></li>
<li><a class="el" href="bryant_8cpp_source.html">bryant.cpp</a></li>
<li><a class="el" href="expr__transform_8cpp_source.html">expr_transform.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>