svf-tools 1.0.507 → 1.0.508

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/SVF-doxygen/html/html/ExeState_8cpp_source.html +14 -15
  2. package/SVF-doxygen/html/html/ExeState_8h_source.html +16 -16
  3. package/SVF-doxygen/html/html/ProgSlice_8h_source.html +4 -4
  4. package/SVF-doxygen/html/html/SaberCondAllocator_8cpp_source.html +28 -30
  5. package/SVF-doxygen/html/html/SaberCondAllocator_8h_source.html +33 -33
  6. package/SVF-doxygen/html/html/Z3Expr_8cpp_source.html +13 -12
  7. package/SVF-doxygen/html/html/Z3Expr_8h_source.html +48 -47
  8. package/SVF-doxygen/html/html/classSVF_1_1ExeState.html +33 -33
  9. package/SVF-doxygen/html/html/classSVF_1_1ProgSlice.html +4 -4
  10. package/SVF-doxygen/html/html/classSVF_1_1SaberCondAllocator.html +91 -91
  11. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +1 -1
  12. package/SVF-doxygen/html/html/classSVF_1_1Z3Expr-members.html +13 -12
  13. package/SVF-doxygen/html/html/classSVF_1_1Z3Expr.html +148 -115
  14. package/SVF-doxygen/html/html/functions_c.html +1 -1
  15. package/SVF-doxygen/html/html/functions_func_r.html +6 -3
  16. package/SVF-doxygen/html/html/functions_o.html +3 -3
  17. package/SVF-doxygen/html/html/functions_p.html +10 -6
  18. package/SVF-doxygen/html/html/functions_r.html +10 -11
  19. package/SVF-doxygen/html/html/functions_s.html +8 -10
  20. package/SVF-doxygen/html/html/functions_t.html +10 -8
  21. package/SVF-doxygen/html/html/functions_v.html +3 -3
  22. package/SVF-doxygen/html/html/functions_vars_c.html +1 -1
  23. package/SVF-doxygen/html/html/functions_vars_s.html +1 -1
  24. package/SVF-doxygen/html/html/search/all_10.js +4 -4
  25. package/SVF-doxygen/html/html/search/all_11.js +4 -3
  26. package/SVF-doxygen/html/html/search/all_12.js +6 -6
  27. package/SVF-doxygen/html/html/search/all_13.js +4 -4
  28. package/SVF-doxygen/html/html/search/all_14.js +1 -1
  29. package/SVF-doxygen/html/html/search/all_15.js +2 -2
  30. package/SVF-doxygen/html/html/search/all_16.js +1 -1
  31. package/SVF-doxygen/html/html/search/all_3.js +1 -1
  32. package/SVF-doxygen/html/html/search/all_9.js +1 -1
  33. package/SVF-doxygen/html/html/search/all_b.js +1 -1
  34. package/SVF-doxygen/html/html/search/all_c.js +1 -1
  35. package/SVF-doxygen/html/html/search/all_e.js +1 -1
  36. package/SVF-doxygen/html/html/search/all_f.js +1 -1
  37. package/SVF-doxygen/html/html/search/functions_10.js +1 -0
  38. package/SVF-doxygen/html/html/search/functions_f.js +1 -1
  39. package/SVF-doxygen/html/html/search/variables_12.js +1 -1
  40. package/SVF-doxygen/html/html/search/variables_13.js +2 -2
  41. package/SVF-doxygen/html/html/search/variables_14.js +1 -1
  42. package/SVF-doxygen/html/html/search/variables_3.js +1 -1
  43. package/SVF-doxygen/html/html/search/variables_9.js +1 -1
  44. package/SVF-doxygen/html/html/search/variables_c.js +1 -1
  45. package/SVF-doxygen/html/html/search/variables_e.js +1 -1
  46. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1ExeState_01_4.html +1 -1
  47. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1Z3Expr_01_4.html +3 -3
  48. package/include/Util/Z3Expr.h +4 -1
  49. package/lib/SABER/SaberCondAllocator.cpp +0 -2
  50. package/lib/Util/ExeState.cpp +0 -1
  51. package/lib/Util/Z3Expr.cpp +15 -1
  52. package/package.json +1 -1
@@ -125,6 +125,9 @@ Static Public Member Functions</h2></td></tr>
125
125
  <tr class="memitem:a9da409a05cfd85d966d887b33dd1cc94"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1Z3Expr.html#a9da409a05cfd85d966d887b33dd1cc94">releaseContext</a> ()</td></tr>
126
126
  <tr class="memdesc:a9da409a05cfd85d966d887b33dd1cc94"><td class="mdescLeft">&#160;</td><td class="mdescRight">release z3 context <a href="#a9da409a05cfd85d966d887b33dd1cc94">More...</a><br /></td></tr>
127
127
  <tr class="separator:a9da409a05cfd85d966d887b33dd1cc94"><td class="memSeparator" colspan="2">&#160;</td></tr>
128
+ <tr class="memitem:a9cf1997ee2d22542f7288506ed0f4733"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1Z3Expr.html#a9cf1997ee2d22542f7288506ed0f4733">releaseSolver</a> ()</td></tr>
129
+ <tr class="memdesc:a9cf1997ee2d22542f7288506ed0f4733"><td class="mdescLeft">&#160;</td><td class="mdescRight">release z3 solver <a href="#a9cf1997ee2d22542f7288506ed0f4733">More...</a><br /></td></tr>
130
+ <tr class="separator:a9cf1997ee2d22542f7288506ed0f4733"><td class="memSeparator" colspan="2">&#160;</td></tr>
128
131
  <tr class="memitem:a9aa800372d57db519d484cc32ea1c5dc"><td class="memItemLeft" align="right" valign="top">static z3::expr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1Z3Expr.html#a9aa800372d57db519d484cc32ea1c5dc">nullExpr</a> ()</td></tr>
129
132
  <tr class="memdesc:a9aa800372d57db519d484cc32ea1c5dc"><td class="mdescLeft">&#160;</td><td class="mdescRight">null expression <a href="#a9aa800372d57db519d484cc32ea1c5dc">More...</a><br /></td></tr>
130
133
  <tr class="separator:a9aa800372d57db519d484cc32ea1c5dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -152,10 +155,10 @@ Static Public Member Functions</h2></td></tr>
152
155
  </table><table class="memberdecls">
153
156
  <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-attribs"></a>
154
157
  Static Public Attributes</h2></td></tr>
155
- <tr class="memitem:a7dce19d65c7a0b50d21127a07aa51bf8"><td class="memItemLeft" align="right" valign="top">static z3::context *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1Z3Expr.html#a7dce19d65c7a0b50d21127a07aa51bf8">ctx</a> = nullptr</td></tr>
156
- <tr class="separator:a7dce19d65c7a0b50d21127a07aa51bf8"><td class="memSeparator" colspan="2">&#160;</td></tr>
157
- <tr class="memitem:a0c43c8779505361eaeb0c8bcba9686b0"><td class="memItemLeft" align="right" valign="top">static std::unique_ptr&lt; z3::solver &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1Z3Expr.html#a0c43c8779505361eaeb0c8bcba9686b0">solver</a> = nullptr</td></tr>
158
- <tr class="separator:a0c43c8779505361eaeb0c8bcba9686b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
158
+ <tr class="memitem:af02935097a8db09812781ac8c42d93e5"><td class="memItemLeft" align="right" valign="top">static z3::context *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1Z3Expr.html#af02935097a8db09812781ac8c42d93e5">ctx</a> = nullptr</td></tr>
159
+ <tr class="separator:af02935097a8db09812781ac8c42d93e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
160
+ <tr class="memitem:a2f0cf6549d9bc6fc1d4be46976ad0f0e"><td class="memItemLeft" align="right" valign="top">static z3::solver *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1Z3Expr.html#a2f0cf6549d9bc6fc1d4be46976ad0f0e">solver</a> = nullptr</td></tr>
161
+ <tr class="separator:a2f0cf6549d9bc6fc1d4be46976ad0f0e"><td class="memSeparator" colspan="2">&#160;</td></tr>
159
162
  </table><table class="memberdecls">
160
163
  <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-methods"></a>
161
164
  Private Member Functions</h2></td></tr>
@@ -301,7 +304,7 @@ Friends</h2></td></tr>
301
304
 
302
305
  <p class="definition">Definition at line <a class="el" href="Z3Expr_8h_source.html#l00052">52</a> of file <a class="el" href="Z3Expr_8h_source.html">Z3Expr.h</a>.</p>
303
306
  <div class="fragment"><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; : <a class="code" href="classSVF_1_1Z3Expr.html#ae14d9fa0613b196420b90d20cc8df041">e</a>(<a class="code" href="classSVF_1_1Z3Expr.html#a9aa800372d57db519d484cc32ea1c5dc">nullExpr</a>())</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; {</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; }</div><div class="ttc" id="classSVF_1_1Z3Expr_html_ae14d9fa0613b196420b90d20cc8df041"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#ae14d9fa0613b196420b90d20cc8df041">SVF::Z3Expr::e</a></div><div class="ttdeci">z3::expr e</div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00045">Z3Expr.h:45</a></div></div>
304
- <div class="ttc" id="classSVF_1_1Z3Expr_html_a9aa800372d57db519d484cc32ea1c5dc"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#a9aa800372d57db519d484cc32ea1c5dc">SVF::Z3Expr::nullExpr</a></div><div class="ttdeci">static z3::expr nullExpr()</div><div class="ttdoc">null expression </div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00095">Z3Expr.h:95</a></div></div>
307
+ <div class="ttc" id="classSVF_1_1Z3Expr_html_a9aa800372d57db519d484cc32ea1c5dc"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#a9aa800372d57db519d484cc32ea1c5dc">SVF::Z3Expr::nullExpr</a></div><div class="ttdeci">static z3::expr nullExpr()</div><div class="ttdoc">null expression </div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00098">Z3Expr.h:98</a></div></div>
305
308
  </div><!-- fragment -->
306
309
  </div>
307
310
  </div>
@@ -359,7 +362,7 @@ Friends</h2></td></tr>
359
362
  </div><div class="memdoc">
360
363
 
361
364
  <p class="definition">Definition at line <a class="el" href="Z3Expr_8h_source.html#l00060">60</a> of file <a class="el" href="Z3Expr_8h_source.html">Z3Expr.h</a>.</p>
362
- <div class="fragment"><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; : <a class="code" href="classSVF_1_1Z3Expr.html#ae14d9fa0613b196420b90d20cc8df041">e</a>(<a class="code" href="classSVF_1_1Z3Expr.html#acfdff582a0188678c10939165a40df30">getContext</a>().int_val(i))</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; {</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; }</div><div class="ttc" id="classSVF_1_1Z3Expr_html_acfdff582a0188678c10939165a40df30"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#acfdff582a0188678c10939165a40df30">SVF::Z3Expr::getContext</a></div><div class="ttdeci">static z3::context &amp; getContext()</div><div class="ttdoc">Get z3 context, singleton design here to make sure we only have one context. </div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8cpp_source.html#l00052">Z3Expr.cpp:52</a></div></div>
365
+ <div class="fragment"><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; : <a class="code" href="classSVF_1_1Z3Expr.html#ae14d9fa0613b196420b90d20cc8df041">e</a>(<a class="code" href="classSVF_1_1Z3Expr.html#acfdff582a0188678c10939165a40df30">getContext</a>().int_val(i))</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; {</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; }</div><div class="ttc" id="classSVF_1_1Z3Expr_html_acfdff582a0188678c10939165a40df30"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#acfdff582a0188678c10939165a40df30">SVF::Z3Expr::getContext</a></div><div class="ttdeci">static z3::context &amp; getContext()</div><div class="ttdoc">Get z3 context, singleton design here to make sure we only have one context. </div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8cpp_source.html#l00066">Z3Expr.cpp:66</a></div></div>
363
366
  <div class="ttc" id="classSVF_1_1Z3Expr_html_ae14d9fa0613b196420b90d20cc8df041"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#ae14d9fa0613b196420b90d20cc8df041">SVF::Z3Expr::e</a></div><div class="ttdeci">z3::expr e</div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00045">Z3Expr.h:45</a></div></div>
364
367
  </div><!-- fragment -->
365
368
  </div>
@@ -455,14 +458,14 @@ Friends</h2></td></tr>
455
458
 
456
459
  <p>compute AND, used for branch condition </p>
457
460
 
458
- <p class="definition">Definition at line <a class="el" href="Z3Expr_8cpp_source.html#l00078">78</a> of file <a class="el" href="Z3Expr_8cpp_source.html">Z3Expr.cpp</a>.</p>
459
- <div class="fragment"><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;{</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Z3Expr.html#ac50b99fca5e04e9c0d134e6371797402">eq</a>(lhs, <a class="code" href="classSVF_1_1Z3Expr.html#af541505af93ccebf57543793658cf495">Z3Expr::getFalseCond</a>()) || <a class="code" href="classSVF_1_1Z3Expr.html#ac50b99fca5e04e9c0d134e6371797402">eq</a>(rhs, <a class="code" href="classSVF_1_1Z3Expr.html#af541505af93ccebf57543793658cf495">Z3Expr::getFalseCond</a>()))</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; {</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1Z3Expr.html#af541505af93ccebf57543793658cf495">Z3Expr::getFalseCond</a>();</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; }</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Z3Expr.html#ac50b99fca5e04e9c0d134e6371797402">eq</a>(lhs, <a class="code" href="classSVF_1_1Z3Expr.html#aaa0c9122f34208235a2d830432665752">Z3Expr::getTrueCond</a>()))</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; {</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keywordflow">return</span> rhs;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; }</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Z3Expr.html#ac50b99fca5e04e9c0d134e6371797402">eq</a>(rhs, <a class="code" href="classSVF_1_1Z3Expr.html#aaa0c9122f34208235a2d830432665752">Z3Expr::getTrueCond</a>()))</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; {</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordflow">return</span> lhs;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; }</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; {</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <a class="code" href="classSVF_1_1Z3Expr.html#abda8e52003e163cda25d75a4cb520290">Z3Expr</a> expr = lhs &amp;&amp; rhs;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="comment">// check subexpression size and option limit</span></div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Z3Expr.html#a7cf1481ad29951ca46c1d4418f28c91e">Z3Expr::getExprSize</a>(expr) &gt; <a class="code" href="classSVF_1_1Options.html#a389c1868083100ad8ebfbf935a85a1e1">Options::MaxZ3Size</a>)</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; {</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <a class="code" href="classSVF_1_1Z3Expr.html#a16721e960145864d0835eb95f2ae4681">getSolver</a>().push();</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <a class="code" href="classSVF_1_1Z3Expr.html#a16721e960145864d0835eb95f2ae4681">getSolver</a>().add(expr.getExpr());</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; z3::check_result res = <a class="code" href="classSVF_1_1Z3Expr.html#a16721e960145864d0835eb95f2ae4681">getSolver</a>().check();</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <a class="code" href="classSVF_1_1Z3Expr.html#a16721e960145864d0835eb95f2ae4681">getSolver</a>().pop();</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keywordflow">if</span> (res != z3::unsat)</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; {</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keywordflow">return</span> lhs;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; }</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; {</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1Z3Expr.html#af541505af93ccebf57543793658cf495">Z3Expr::getFalseCond</a>();</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; }</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; }</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keywordflow">return</span> expr;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; }</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;}</div><div class="ttc" id="classSVF_1_1Z3Expr_html_abda8e52003e163cda25d75a4cb520290"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#abda8e52003e163cda25d75a4cb520290">SVF::Z3Expr::Z3Expr</a></div><div class="ttdeci">Z3Expr()</div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00052">Z3Expr.h:52</a></div></div>
460
- <div class="ttc" id="classSVF_1_1Z3Expr_html_a7cf1481ad29951ca46c1d4418f28c91e"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#a7cf1481ad29951ca46c1d4418f28c91e">SVF::Z3Expr::getExprSize</a></div><div class="ttdeci">static u32_t getExprSize(const Z3Expr &amp;z3Expr)</div><div class="ttdoc">get the number of subexpression of a Z3 expression </div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8cpp_source.html#l00062">Z3Expr.cpp:62</a></div></div>
461
+ <p class="definition">Definition at line <a class="el" href="Z3Expr_8cpp_source.html#l00092">92</a> of file <a class="el" href="Z3Expr_8cpp_source.html">Z3Expr.cpp</a>.</p>
462
+ <div class="fragment"><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;{</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Z3Expr.html#ac50b99fca5e04e9c0d134e6371797402">eq</a>(lhs, <a class="code" href="classSVF_1_1Z3Expr.html#af541505af93ccebf57543793658cf495">Z3Expr::getFalseCond</a>()) || <a class="code" href="classSVF_1_1Z3Expr.html#ac50b99fca5e04e9c0d134e6371797402">eq</a>(rhs, <a class="code" href="classSVF_1_1Z3Expr.html#af541505af93ccebf57543793658cf495">Z3Expr::getFalseCond</a>()))</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; {</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1Z3Expr.html#af541505af93ccebf57543793658cf495">Z3Expr::getFalseCond</a>();</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; }</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Z3Expr.html#ac50b99fca5e04e9c0d134e6371797402">eq</a>(lhs, <a class="code" href="classSVF_1_1Z3Expr.html#aaa0c9122f34208235a2d830432665752">Z3Expr::getTrueCond</a>()))</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; {</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keywordflow">return</span> rhs;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; }</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Z3Expr.html#ac50b99fca5e04e9c0d134e6371797402">eq</a>(rhs, <a class="code" href="classSVF_1_1Z3Expr.html#aaa0c9122f34208235a2d830432665752">Z3Expr::getTrueCond</a>()))</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; {</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keywordflow">return</span> lhs;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; }</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; {</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <a class="code" href="classSVF_1_1Z3Expr.html#abda8e52003e163cda25d75a4cb520290">Z3Expr</a> expr = lhs &amp;&amp; rhs;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="comment">// check subexpression size and option limit</span></div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Z3Expr.html#a7cf1481ad29951ca46c1d4418f28c91e">Z3Expr::getExprSize</a>(expr) &gt; <a class="code" href="classSVF_1_1Options.html#a389c1868083100ad8ebfbf935a85a1e1">Options::MaxZ3Size</a>)</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; {</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <a class="code" href="classSVF_1_1Z3Expr.html#a16721e960145864d0835eb95f2ae4681">getSolver</a>().push();</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <a class="code" href="classSVF_1_1Z3Expr.html#a16721e960145864d0835eb95f2ae4681">getSolver</a>().add(expr.getExpr());</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; z3::check_result res = <a class="code" href="classSVF_1_1Z3Expr.html#a16721e960145864d0835eb95f2ae4681">getSolver</a>().check();</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <a class="code" href="classSVF_1_1Z3Expr.html#a16721e960145864d0835eb95f2ae4681">getSolver</a>().pop();</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordflow">if</span> (res != z3::unsat)</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; {</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordflow">return</span> lhs;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; }</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; {</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1Z3Expr.html#af541505af93ccebf57543793658cf495">Z3Expr::getFalseCond</a>();</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; }</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; }</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keywordflow">return</span> expr;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; }</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;}</div><div class="ttc" id="classSVF_1_1Z3Expr_html_abda8e52003e163cda25d75a4cb520290"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#abda8e52003e163cda25d75a4cb520290">SVF::Z3Expr::Z3Expr</a></div><div class="ttdeci">Z3Expr()</div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00052">Z3Expr.h:52</a></div></div>
463
+ <div class="ttc" id="classSVF_1_1Z3Expr_html_a7cf1481ad29951ca46c1d4418f28c91e"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#a7cf1481ad29951ca46c1d4418f28c91e">SVF::Z3Expr::getExprSize</a></div><div class="ttdeci">static u32_t getExprSize(const Z3Expr &amp;z3Expr)</div><div class="ttdoc">get the number of subexpression of a Z3 expression </div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8cpp_source.html#l00076">Z3Expr.cpp:76</a></div></div>
461
464
  <div class="ttc" id="classSVF_1_1Options_html_a389c1868083100ad8ebfbf935a85a1e1"><div class="ttname"><a href="classSVF_1_1Options.html#a389c1868083100ad8ebfbf935a85a1e1">SVF::Options::MaxZ3Size</a></div><div class="ttdeci">static const llvm::cl::opt&lt; unsigned &gt; MaxZ3Size</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00221">Options.h:221</a></div></div>
462
- <div class="ttc" id="classSVF_1_1Z3Expr_html_af541505af93ccebf57543793658cf495"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#af541505af93ccebf57543793658cf495">SVF::Z3Expr::getFalseCond</a></div><div class="ttdeci">static Z3Expr getFalseCond()</div><div class="ttdoc">Return the unique false condition. </div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00285">Z3Expr.h:285</a></div></div>
463
- <div class="ttc" id="classSVF_1_1Z3Expr_html_ac50b99fca5e04e9c0d134e6371797402"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#ac50b99fca5e04e9c0d134e6371797402">SVF::Z3Expr::eq</a></div><div class="ttdeci">friend bool eq(const Z3Expr &amp;lhs, const Z3Expr &amp;rhs)</div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00259">Z3Expr.h:259</a></div></div>
464
- <div class="ttc" id="classSVF_1_1Z3Expr_html_a16721e960145864d0835eb95f2ae4681"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#a16721e960145864d0835eb95f2ae4681">SVF::Z3Expr::getSolver</a></div><div class="ttdeci">static z3::solver &amp; getSolver()</div><div class="ttdoc">Get z3 solver, singleton design here to make sure we only have one context. </div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8cpp_source.html#l00042">Z3Expr.cpp:42</a></div></div>
465
- <div class="ttc" id="classSVF_1_1Z3Expr_html_aaa0c9122f34208235a2d830432665752"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#aaa0c9122f34208235a2d830432665752">SVF::Z3Expr::getTrueCond</a></div><div class="ttdeci">static Z3Expr getTrueCond()</div><div class="ttdoc">Return the unique true condition. </div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00278">Z3Expr.h:278</a></div></div>
465
+ <div class="ttc" id="classSVF_1_1Z3Expr_html_af541505af93ccebf57543793658cf495"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#af541505af93ccebf57543793658cf495">SVF::Z3Expr::getFalseCond</a></div><div class="ttdeci">static Z3Expr getFalseCond()</div><div class="ttdoc">Return the unique false condition. </div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00288">Z3Expr.h:288</a></div></div>
466
+ <div class="ttc" id="classSVF_1_1Z3Expr_html_ac50b99fca5e04e9c0d134e6371797402"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#ac50b99fca5e04e9c0d134e6371797402">SVF::Z3Expr::eq</a></div><div class="ttdeci">friend bool eq(const Z3Expr &amp;lhs, const Z3Expr &amp;rhs)</div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00262">Z3Expr.h:262</a></div></div>
467
+ <div class="ttc" id="classSVF_1_1Z3Expr_html_a16721e960145864d0835eb95f2ae4681"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#a16721e960145864d0835eb95f2ae4681">SVF::Z3Expr::getSolver</a></div><div class="ttdeci">static z3::solver &amp; getSolver()</div><div class="ttdoc">Get z3 solver, singleton design here to make sure we only have one context. </div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8cpp_source.html#l00056">Z3Expr.cpp:56</a></div></div>
468
+ <div class="ttc" id="classSVF_1_1Z3Expr_html_aaa0c9122f34208235a2d830432665752"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#aaa0c9122f34208235a2d830432665752">SVF::Z3Expr::getTrueCond</a></div><div class="ttdeci">static Z3Expr getTrueCond()</div><div class="ttdoc">Return the unique true condition. </div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00281">Z3Expr.h:281</a></div></div>
466
469
  </div><!-- fragment -->
467
470
  </div>
468
471
  </div>
@@ -492,8 +495,8 @@ Friends</h2></td></tr>
492
495
 
493
496
  <p>output Z3 expression as a string </p>
494
497
 
495
- <p class="definition">Definition at line <a class="el" href="Z3Expr_8cpp_source.html#l00154">154</a> of file <a class="el" href="Z3Expr_8cpp_source.html">Z3Expr.cpp</a>.</p>
496
- <div class="fragment"><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;{</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; std::ostringstream out;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; out &lt;&lt; z3Expr.getExpr();</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keywordflow">return</span> out.str();</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;}</div></div><!-- fragment -->
498
+ <p class="definition">Definition at line <a class="el" href="Z3Expr_8cpp_source.html#l00168">168</a> of file <a class="el" href="Z3Expr_8cpp_source.html">Z3Expr.cpp</a>.</p>
499
+ <div class="fragment"><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;{</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; std::ostringstream out;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; out &lt;&lt; z3Expr.getExpr();</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keywordflow">return</span> out.str();</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;}</div></div><!-- fragment -->
497
500
  </div>
498
501
  </div>
499
502
  <a id="aa6c7fee4f418817dfa7458d830303f6e"></a>
@@ -519,8 +522,8 @@ Friends</h2></td></tr>
519
522
  </table>
520
523
  </div><div class="memdoc">
521
524
 
522
- <p class="definition">Definition at line <a class="el" href="Z3Expr_8h_source.html#l00137">137</a> of file <a class="el" href="Z3Expr_8h_source.html">Z3Expr.h</a>.</p>
523
- <div class="fragment"><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; {</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1Z3Expr.html#ae14d9fa0613b196420b90d20cc8df041">e</a>.get_numeral_int();</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; }</div><div class="ttc" id="classSVF_1_1Z3Expr_html_ae14d9fa0613b196420b90d20cc8df041"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#ae14d9fa0613b196420b90d20cc8df041">SVF::Z3Expr::e</a></div><div class="ttdeci">z3::expr e</div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00045">Z3Expr.h:45</a></div></div>
525
+ <p class="definition">Definition at line <a class="el" href="Z3Expr_8h_source.html#l00140">140</a> of file <a class="el" href="Z3Expr_8h_source.html">Z3Expr.h</a>.</p>
526
+ <div class="fragment"><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; {</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1Z3Expr.html#ae14d9fa0613b196420b90d20cc8df041">e</a>.get_numeral_int();</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; }</div><div class="ttc" id="classSVF_1_1Z3Expr_html_ae14d9fa0613b196420b90d20cc8df041"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#ae14d9fa0613b196420b90d20cc8df041">SVF::Z3Expr::e</a></div><div class="ttdeci">z3::expr e</div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00045">Z3Expr.h:45</a></div></div>
524
527
  </div><!-- fragment -->
525
528
  </div>
526
529
  </div>
@@ -547,8 +550,8 @@ Friends</h2></td></tr>
547
550
  </table>
548
551
  </div><div class="memdoc">
549
552
 
550
- <p class="definition">Definition at line <a class="el" href="Z3Expr_8h_source.html#l00132">132</a> of file <a class="el" href="Z3Expr_8h_source.html">Z3Expr.h</a>.</p>
551
- <div class="fragment"><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; {</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1Z3Expr.html#ae14d9fa0613b196420b90d20cc8df041">e</a>.get_numeral_int64();</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; }</div><div class="ttc" id="classSVF_1_1Z3Expr_html_ae14d9fa0613b196420b90d20cc8df041"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#ae14d9fa0613b196420b90d20cc8df041">SVF::Z3Expr::e</a></div><div class="ttdeci">z3::expr e</div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00045">Z3Expr.h:45</a></div></div>
553
+ <p class="definition">Definition at line <a class="el" href="Z3Expr_8h_source.html#l00135">135</a> of file <a class="el" href="Z3Expr_8h_source.html">Z3Expr.h</a>.</p>
554
+ <div class="fragment"><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; {</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1Z3Expr.html#ae14d9fa0613b196420b90d20cc8df041">e</a>.get_numeral_int64();</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; }</div><div class="ttc" id="classSVF_1_1Z3Expr_html_ae14d9fa0613b196420b90d20cc8df041"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#ae14d9fa0613b196420b90d20cc8df041">SVF::Z3Expr::e</a></div><div class="ttdeci">z3::expr e</div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00045">Z3Expr.h:45</a></div></div>
552
555
  </div><!-- fragment -->
553
556
  </div>
554
557
  </div>
@@ -575,8 +578,8 @@ Friends</h2></td></tr>
575
578
  </table>
576
579
  </div><div class="memdoc">
577
580
 
578
- <p class="definition">Definition at line <a class="el" href="Z3Expr_8h_source.html#l00264">264</a> of file <a class="el" href="Z3Expr_8h_source.html">Z3Expr.h</a>.</p>
579
- <div class="fragment"><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; {</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1Z3Expr.html#a57c199ba2c3c6a6d44a86e0b1429be55">getExpr</a>().get_sort();</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; }</div><div class="ttc" id="classSVF_1_1Z3Expr_html_a57c199ba2c3c6a6d44a86e0b1429be55"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#a57c199ba2c3c6a6d44a86e0b1429be55">SVF::Z3Expr::getExpr</a></div><div class="ttdeci">const z3::expr &amp; getExpr() const</div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00079">Z3Expr.h:79</a></div></div>
581
+ <p class="definition">Definition at line <a class="el" href="Z3Expr_8h_source.html#l00267">267</a> of file <a class="el" href="Z3Expr_8h_source.html">Z3Expr.h</a>.</p>
582
+ <div class="fragment"><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; {</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1Z3Expr.html#a57c199ba2c3c6a6d44a86e0b1429be55">getExpr</a>().get_sort();</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; }</div><div class="ttc" id="classSVF_1_1Z3Expr_html_a57c199ba2c3c6a6d44a86e0b1429be55"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#a57c199ba2c3c6a6d44a86e0b1429be55">SVF::Z3Expr::getExpr</a></div><div class="ttdeci">const z3::expr &amp; getExpr() const</div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00079">Z3Expr.h:79</a></div></div>
580
583
  </div><!-- fragment -->
581
584
  </div>
582
585
  </div>
@@ -605,8 +608,8 @@ Friends</h2></td></tr>
605
608
 
606
609
  <p>Get z3 context, singleton design here to make sure we only have one context. </p>
607
610
 
608
- <p class="definition">Definition at line <a class="el" href="Z3Expr_8cpp_source.html#l00052">52</a> of file <a class="el" href="Z3Expr_8cpp_source.html">Z3Expr.cpp</a>.</p>
609
- <div class="fragment"><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;{</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Z3Expr.html#a7dce19d65c7a0b50d21127a07aa51bf8">ctx</a> == <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; {</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <a class="code" href="classSVF_1_1Z3Expr.html#a7dce19d65c7a0b50d21127a07aa51bf8">ctx</a> = <span class="keyword">new</span> z3::context();</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; }</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keywordflow">return</span> *<a class="code" href="classSVF_1_1Z3Expr.html#a7dce19d65c7a0b50d21127a07aa51bf8">ctx</a>;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;}</div><div class="ttc" id="classSVF_1_1Z3Expr_html_a7dce19d65c7a0b50d21127a07aa51bf8"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#a7dce19d65c7a0b50d21127a07aa51bf8">SVF::Z3Expr::ctx</a></div><div class="ttdeci">static z3::context * ctx</div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00041">Z3Expr.h:41</a></div></div>
611
+ <p class="definition">Definition at line <a class="el" href="Z3Expr_8cpp_source.html#l00066">66</a> of file <a class="el" href="Z3Expr_8cpp_source.html">Z3Expr.cpp</a>.</p>
612
+ <div class="fragment"><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;{</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Z3Expr.html#af02935097a8db09812781ac8c42d93e5">ctx</a> == <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; {</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <a class="code" href="classSVF_1_1Z3Expr.html#af02935097a8db09812781ac8c42d93e5">ctx</a> = <span class="keyword">new</span> z3::context();</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; }</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keywordflow">return</span> *<a class="code" href="classSVF_1_1Z3Expr.html#af02935097a8db09812781ac8c42d93e5">ctx</a>;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;}</div><div class="ttc" id="classSVF_1_1Z3Expr_html_af02935097a8db09812781ac8c42d93e5"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#af02935097a8db09812781ac8c42d93e5">SVF::Z3Expr::ctx</a></div><div class="ttdeci">static z3::context * ctx</div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00041">Z3Expr.h:41</a></div></div>
610
613
  </div><!-- fragment -->
611
614
  </div>
612
615
  </div>
@@ -664,10 +667,10 @@ Friends</h2></td></tr>
664
667
 
665
668
  <p>get the number of subexpression of a Z3 expression </p>
666
669
 
667
- <p class="definition">Definition at line <a class="el" href="Z3Expr_8cpp_source.html#l00062">62</a> of file <a class="el" href="Z3Expr_8cpp_source.html">Z3Expr.cpp</a>.</p>
668
- <div class="fragment"><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;{</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> res = 1;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keywordflow">if</span> (z3Expr.getExpr().num_args() == 0)</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; {</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keywordflow">return</span> 1;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; }</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i = 0; i &lt; z3Expr.getExpr().num_args(); ++i)</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; {</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <a class="code" href="classSVF_1_1Z3Expr.html#abda8e52003e163cda25d75a4cb520290">Z3Expr</a> expr = z3Expr.getExpr().arg(i);</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; res += <a class="code" href="classSVF_1_1Z3Expr.html#a7cf1481ad29951ca46c1d4418f28c91e">getExprSize</a>(expr);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; }</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keywordflow">return</span> res;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_ad42bff8d0a7d60a085aa32d10f4955af"><div class="ttname"><a href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">SVF::u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00085">SVFBasicTypes.h:85</a></div></div>
670
+ <p class="definition">Definition at line <a class="el" href="Z3Expr_8cpp_source.html#l00076">76</a> of file <a class="el" href="Z3Expr_8cpp_source.html">Z3Expr.cpp</a>.</p>
671
+ <div class="fragment"><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;{</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> res = 1;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordflow">if</span> (z3Expr.getExpr().num_args() == 0)</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; {</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keywordflow">return</span> 1;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; }</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i = 0; i &lt; z3Expr.getExpr().num_args(); ++i)</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; {</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <a class="code" href="classSVF_1_1Z3Expr.html#abda8e52003e163cda25d75a4cb520290">Z3Expr</a> expr = z3Expr.getExpr().arg(i);</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; res += <a class="code" href="classSVF_1_1Z3Expr.html#a7cf1481ad29951ca46c1d4418f28c91e">getExprSize</a>(expr);</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; }</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keywordflow">return</span> res;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_ad42bff8d0a7d60a085aa32d10f4955af"><div class="ttname"><a href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">SVF::u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00085">SVFBasicTypes.h:85</a></div></div>
669
672
  <div class="ttc" id="classSVF_1_1Z3Expr_html_abda8e52003e163cda25d75a4cb520290"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#abda8e52003e163cda25d75a4cb520290">SVF::Z3Expr::Z3Expr</a></div><div class="ttdeci">Z3Expr()</div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00052">Z3Expr.h:52</a></div></div>
670
- <div class="ttc" id="classSVF_1_1Z3Expr_html_a7cf1481ad29951ca46c1d4418f28c91e"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#a7cf1481ad29951ca46c1d4418f28c91e">SVF::Z3Expr::getExprSize</a></div><div class="ttdeci">static u32_t getExprSize(const Z3Expr &amp;z3Expr)</div><div class="ttdoc">get the number of subexpression of a Z3 expression </div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8cpp_source.html#l00062">Z3Expr.cpp:62</a></div></div>
673
+ <div class="ttc" id="classSVF_1_1Z3Expr_html_a7cf1481ad29951ca46c1d4418f28c91e"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#a7cf1481ad29951ca46c1d4418f28c91e">SVF::Z3Expr::getExprSize</a></div><div class="ttdeci">static u32_t getExprSize(const Z3Expr &amp;z3Expr)</div><div class="ttdoc">get the number of subexpression of a Z3 expression </div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8cpp_source.html#l00076">Z3Expr.cpp:76</a></div></div>
671
674
  </div><!-- fragment -->
672
675
  </div>
673
676
  </div>
@@ -696,8 +699,8 @@ Friends</h2></td></tr>
696
699
 
697
700
  <p>Return the unique false condition. </p>
698
701
 
699
- <p class="definition">Definition at line <a class="el" href="Z3Expr_8h_source.html#l00285">285</a> of file <a class="el" href="Z3Expr_8h_source.html">Z3Expr.h</a>.</p>
700
- <div class="fragment"><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; {</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1Z3Expr.html#acfdff582a0188678c10939165a40df30">getContext</a>().bool_val(<span class="keyword">false</span>);</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; }</div><div class="ttc" id="classSVF_1_1Z3Expr_html_acfdff582a0188678c10939165a40df30"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#acfdff582a0188678c10939165a40df30">SVF::Z3Expr::getContext</a></div><div class="ttdeci">static z3::context &amp; getContext()</div><div class="ttdoc">Get z3 context, singleton design here to make sure we only have one context. </div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8cpp_source.html#l00052">Z3Expr.cpp:52</a></div></div>
702
+ <p class="definition">Definition at line <a class="el" href="Z3Expr_8h_source.html#l00288">288</a> of file <a class="el" href="Z3Expr_8h_source.html">Z3Expr.h</a>.</p>
703
+ <div class="fragment"><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; {</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1Z3Expr.html#acfdff582a0188678c10939165a40df30">getContext</a>().bool_val(<span class="keyword">false</span>);</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; }</div><div class="ttc" id="classSVF_1_1Z3Expr_html_acfdff582a0188678c10939165a40df30"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#acfdff582a0188678c10939165a40df30">SVF::Z3Expr::getContext</a></div><div class="ttdeci">static z3::context &amp; getContext()</div><div class="ttdoc">Get z3 context, singleton design here to make sure we only have one context. </div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8cpp_source.html#l00066">Z3Expr.cpp:66</a></div></div>
701
704
  </div><!-- fragment -->
702
705
  </div>
703
706
  </div>
@@ -726,9 +729,9 @@ Friends</h2></td></tr>
726
729
 
727
730
  <p>Get z3 solver, singleton design here to make sure we only have one context. </p>
728
731
 
729
- <p class="definition">Definition at line <a class="el" href="Z3Expr_8cpp_source.html#l00042">42</a> of file <a class="el" href="Z3Expr_8cpp_source.html">Z3Expr.cpp</a>.</p>
730
- <div class="fragment"><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;{</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Z3Expr.html#a0c43c8779505361eaeb0c8bcba9686b0">solver</a> == <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; {</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <a class="code" href="classSVF_1_1Z3Expr.html#a0c43c8779505361eaeb0c8bcba9686b0">solver</a> = std::make_unique&lt;z3::solver&gt;(<a class="code" href="classSVF_1_1Z3Expr.html#acfdff582a0188678c10939165a40df30">getContext</a>());</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; }</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keywordflow">return</span> *<a class="code" href="classSVF_1_1Z3Expr.html#a0c43c8779505361eaeb0c8bcba9686b0">solver</a>;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;}</div><div class="ttc" id="classSVF_1_1Z3Expr_html_a0c43c8779505361eaeb0c8bcba9686b0"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#a0c43c8779505361eaeb0c8bcba9686b0">SVF::Z3Expr::solver</a></div><div class="ttdeci">static std::unique_ptr&lt; z3::solver &gt; solver</div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00042">Z3Expr.h:42</a></div></div>
731
- <div class="ttc" id="classSVF_1_1Z3Expr_html_acfdff582a0188678c10939165a40df30"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#acfdff582a0188678c10939165a40df30">SVF::Z3Expr::getContext</a></div><div class="ttdeci">static z3::context &amp; getContext()</div><div class="ttdoc">Get z3 context, singleton design here to make sure we only have one context. </div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8cpp_source.html#l00052">Z3Expr.cpp:52</a></div></div>
732
+ <p class="definition">Definition at line <a class="el" href="Z3Expr_8cpp_source.html#l00056">56</a> of file <a class="el" href="Z3Expr_8cpp_source.html">Z3Expr.cpp</a>.</p>
733
+ <div class="fragment"><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;{</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Z3Expr.html#a2f0cf6549d9bc6fc1d4be46976ad0f0e">solver</a> == <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; {</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <a class="code" href="classSVF_1_1Z3Expr.html#a2f0cf6549d9bc6fc1d4be46976ad0f0e">solver</a> = <span class="keyword">new</span> z3::solver(<a class="code" href="classSVF_1_1Z3Expr.html#acfdff582a0188678c10939165a40df30">getContext</a>());</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; }</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keywordflow">return</span> *<a class="code" href="classSVF_1_1Z3Expr.html#a2f0cf6549d9bc6fc1d4be46976ad0f0e">solver</a>;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;}</div><div class="ttc" id="classSVF_1_1Z3Expr_html_acfdff582a0188678c10939165a40df30"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#acfdff582a0188678c10939165a40df30">SVF::Z3Expr::getContext</a></div><div class="ttdeci">static z3::context &amp; getContext()</div><div class="ttdoc">Get z3 context, singleton design here to make sure we only have one context. </div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8cpp_source.html#l00066">Z3Expr.cpp:66</a></div></div>
734
+ <div class="ttc" id="classSVF_1_1Z3Expr_html_a2f0cf6549d9bc6fc1d4be46976ad0f0e"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#a2f0cf6549d9bc6fc1d4be46976ad0f0e">SVF::Z3Expr::solver</a></div><div class="ttdeci">static z3::solver * solver</div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00042">Z3Expr.h:42</a></div></div>
732
735
  </div><!-- fragment -->
733
736
  </div>
734
737
  </div>
@@ -757,8 +760,8 @@ Friends</h2></td></tr>
757
760
 
758
761
  <p>Return the unique true condition. </p>
759
762
 
760
- <p class="definition">Definition at line <a class="el" href="Z3Expr_8h_source.html#l00278">278</a> of file <a class="el" href="Z3Expr_8h_source.html">Z3Expr.h</a>.</p>
761
- <div class="fragment"><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; {</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1Z3Expr.html#acfdff582a0188678c10939165a40df30">getContext</a>().bool_val(<span class="keyword">true</span>);</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; }</div><div class="ttc" id="classSVF_1_1Z3Expr_html_acfdff582a0188678c10939165a40df30"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#acfdff582a0188678c10939165a40df30">SVF::Z3Expr::getContext</a></div><div class="ttdeci">static z3::context &amp; getContext()</div><div class="ttdoc">Get z3 context, singleton design here to make sure we only have one context. </div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8cpp_source.html#l00052">Z3Expr.cpp:52</a></div></div>
763
+ <p class="definition">Definition at line <a class="el" href="Z3Expr_8h_source.html#l00281">281</a> of file <a class="el" href="Z3Expr_8h_source.html">Z3Expr.h</a>.</p>
764
+ <div class="fragment"><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; {</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1Z3Expr.html#acfdff582a0188678c10939165a40df30">getContext</a>().bool_val(<span class="keyword">true</span>);</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; }</div><div class="ttc" id="classSVF_1_1Z3Expr_html_acfdff582a0188678c10939165a40df30"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#acfdff582a0188678c10939165a40df30">SVF::Z3Expr::getContext</a></div><div class="ttdeci">static z3::context &amp; getContext()</div><div class="ttdoc">Get z3 context, singleton design here to make sure we only have one context. </div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8cpp_source.html#l00066">Z3Expr.cpp:66</a></div></div>
762
765
  </div><!-- fragment -->
763
766
  </div>
764
767
  </div>
@@ -788,8 +791,8 @@ Friends</h2></td></tr>
788
791
 
789
792
  <p>get hash id </p>
790
793
 
791
- <p class="definition">Definition at line <a class="el" href="Z3Expr_8h_source.html#l00107">107</a> of file <a class="el" href="Z3Expr_8h_source.html">Z3Expr.h</a>.</p>
792
- <div class="fragment"><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; {</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1Z3Expr.html#ae14d9fa0613b196420b90d20cc8df041">e</a>.hash();</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; }</div><div class="ttc" id="classSVF_1_1Z3Expr_html_ae14d9fa0613b196420b90d20cc8df041"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#ae14d9fa0613b196420b90d20cc8df041">SVF::Z3Expr::e</a></div><div class="ttdeci">z3::expr e</div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00045">Z3Expr.h:45</a></div></div>
794
+ <p class="definition">Definition at line <a class="el" href="Z3Expr_8h_source.html#l00110">110</a> of file <a class="el" href="Z3Expr_8h_source.html">Z3Expr.h</a>.</p>
795
+ <div class="fragment"><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; {</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1Z3Expr.html#ae14d9fa0613b196420b90d20cc8df041">e</a>.hash();</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; }</div><div class="ttc" id="classSVF_1_1Z3Expr_html_ae14d9fa0613b196420b90d20cc8df041"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#ae14d9fa0613b196420b90d20cc8df041">SVF::Z3Expr::e</a></div><div class="ttdeci">z3::expr e</div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00045">Z3Expr.h:45</a></div></div>
793
796
  </div><!-- fragment -->
794
797
  </div>
795
798
  </div>
@@ -818,8 +821,8 @@ Friends</h2></td></tr>
818
821
 
819
822
  <p>get id </p>
820
823
 
821
- <p class="definition">Definition at line <a class="el" href="Z3Expr_8h_source.html#l00101">101</a> of file <a class="el" href="Z3Expr_8h_source.html">Z3Expr.h</a>.</p>
822
- <div class="fragment"><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; {</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1Z3Expr.html#ae14d9fa0613b196420b90d20cc8df041">e</a>.id();</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; }</div><div class="ttc" id="classSVF_1_1Z3Expr_html_ae14d9fa0613b196420b90d20cc8df041"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#ae14d9fa0613b196420b90d20cc8df041">SVF::Z3Expr::e</a></div><div class="ttdeci">z3::expr e</div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00045">Z3Expr.h:45</a></div></div>
824
+ <p class="definition">Definition at line <a class="el" href="Z3Expr_8h_source.html#l00104">104</a> of file <a class="el" href="Z3Expr_8h_source.html">Z3Expr.h</a>.</p>
825
+ <div class="fragment"><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; {</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1Z3Expr.html#ae14d9fa0613b196420b90d20cc8df041">e</a>.id();</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; }</div><div class="ttc" id="classSVF_1_1Z3Expr_html_ae14d9fa0613b196420b90d20cc8df041"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#ae14d9fa0613b196420b90d20cc8df041">SVF::Z3Expr::e</a></div><div class="ttdeci">z3::expr e</div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00045">Z3Expr.h:45</a></div></div>
823
826
  </div><!-- fragment -->
824
827
  </div>
825
828
  </div>
@@ -846,8 +849,8 @@ Friends</h2></td></tr>
846
849
  </table>
847
850
  </div><div class="memdoc">
848
851
 
849
- <p class="definition">Definition at line <a class="el" href="Z3Expr_8h_source.html#l00122">122</a> of file <a class="el" href="Z3Expr_8h_source.html">Z3Expr.h</a>.</p>
850
- <div class="fragment"><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; {</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1Z3Expr.html#ae14d9fa0613b196420b90d20cc8df041">e</a>.is_bool();</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; }</div><div class="ttc" id="classSVF_1_1Z3Expr_html_ae14d9fa0613b196420b90d20cc8df041"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#ae14d9fa0613b196420b90d20cc8df041">SVF::Z3Expr::e</a></div><div class="ttdeci">z3::expr e</div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00045">Z3Expr.h:45</a></div></div>
852
+ <p class="definition">Definition at line <a class="el" href="Z3Expr_8h_source.html#l00125">125</a> of file <a class="el" href="Z3Expr_8h_source.html">Z3Expr.h</a>.</p>
853
+ <div class="fragment"><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; {</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1Z3Expr.html#ae14d9fa0613b196420b90d20cc8df041">e</a>.is_bool();</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; }</div><div class="ttc" id="classSVF_1_1Z3Expr_html_ae14d9fa0613b196420b90d20cc8df041"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#ae14d9fa0613b196420b90d20cc8df041">SVF::Z3Expr::e</a></div><div class="ttdeci">z3::expr e</div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00045">Z3Expr.h:45</a></div></div>
851
854
  </div><!-- fragment -->
852
855
  </div>
853
856
  </div>
@@ -874,8 +877,8 @@ Friends</h2></td></tr>
874
877
  </table>
875
878
  </div><div class="memdoc">
876
879
 
877
- <p class="definition">Definition at line <a class="el" href="Z3Expr_8h_source.html#l00117">117</a> of file <a class="el" href="Z3Expr_8h_source.html">Z3Expr.h</a>.</p>
878
- <div class="fragment"><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; {</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1Z3Expr.html#ae14d9fa0613b196420b90d20cc8df041">e</a>.is_numeral();</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; }</div><div class="ttc" id="classSVF_1_1Z3Expr_html_ae14d9fa0613b196420b90d20cc8df041"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#ae14d9fa0613b196420b90d20cc8df041">SVF::Z3Expr::e</a></div><div class="ttdeci">z3::expr e</div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00045">Z3Expr.h:45</a></div></div>
880
+ <p class="definition">Definition at line <a class="el" href="Z3Expr_8h_source.html#l00120">120</a> of file <a class="el" href="Z3Expr_8h_source.html">Z3Expr.h</a>.</p>
881
+ <div class="fragment"><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; {</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1Z3Expr.html#ae14d9fa0613b196420b90d20cc8df041">e</a>.is_numeral();</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; }</div><div class="ttc" id="classSVF_1_1Z3Expr_html_ae14d9fa0613b196420b90d20cc8df041"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#ae14d9fa0613b196420b90d20cc8df041">SVF::Z3Expr::e</a></div><div class="ttdeci">z3::expr e</div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00045">Z3Expr.h:45</a></div></div>
879
882
  </div><!-- fragment -->
880
883
  </div>
881
884
  </div>
@@ -905,8 +908,8 @@ Friends</h2></td></tr>
905
908
 
906
909
  <p>compute NEG </p>
907
910
 
908
- <p class="definition">Definition at line <a class="el" href="Z3Expr_8h_source.html#l00291">291</a> of file <a class="el" href="Z3Expr_8h_source.html">Z3Expr.h</a>.</p>
909
- <div class="fragment"><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; {</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <span class="keywordflow">return</span> !z3Expr;</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; }</div></div><!-- fragment -->
911
+ <p class="definition">Definition at line <a class="el" href="Z3Expr_8h_source.html#l00294">294</a> of file <a class="el" href="Z3Expr_8h_source.html">Z3Expr.h</a>.</p>
912
+ <div class="fragment"><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; {</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="keywordflow">return</span> !z3Expr;</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; }</div></div><!-- fragment -->
910
913
  </div>
911
914
  </div>
912
915
  <a id="a9aa800372d57db519d484cc32ea1c5dc"></a>
@@ -934,8 +937,8 @@ Friends</h2></td></tr>
934
937
 
935
938
  <p>null expression </p>
936
939
 
937
- <p class="definition">Definition at line <a class="el" href="Z3Expr_8h_source.html#l00095">95</a> of file <a class="el" href="Z3Expr_8h_source.html">Z3Expr.h</a>.</p>
938
- <div class="fragment"><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; {</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1Z3Expr.html#acfdff582a0188678c10939165a40df30">getContext</a>().int_const(<span class="stringliteral">&quot;null&quot;</span>);</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; }</div><div class="ttc" id="classSVF_1_1Z3Expr_html_acfdff582a0188678c10939165a40df30"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#acfdff582a0188678c10939165a40df30">SVF::Z3Expr::getContext</a></div><div class="ttdeci">static z3::context &amp; getContext()</div><div class="ttdoc">Get z3 context, singleton design here to make sure we only have one context. </div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8cpp_source.html#l00052">Z3Expr.cpp:52</a></div></div>
940
+ <p class="definition">Definition at line <a class="el" href="Z3Expr_8h_source.html#l00098">98</a> of file <a class="el" href="Z3Expr_8h_source.html">Z3Expr.h</a>.</p>
941
+ <div class="fragment"><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; {</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1Z3Expr.html#acfdff582a0188678c10939165a40df30">getContext</a>().int_const(<span class="stringliteral">&quot;null&quot;</span>);</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; }</div><div class="ttc" id="classSVF_1_1Z3Expr_html_acfdff582a0188678c10939165a40df30"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#acfdff582a0188678c10939165a40df30">SVF::Z3Expr::getContext</a></div><div class="ttdeci">static z3::context &amp; getContext()</div><div class="ttdoc">Get z3 context, singleton design here to make sure we only have one context. </div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8cpp_source.html#l00066">Z3Expr.cpp:66</a></div></div>
939
942
  </div><!-- fragment -->
940
943
  </div>
941
944
  </div>
@@ -1004,14 +1007,14 @@ Friends</h2></td></tr>
1004
1007
 
1005
1008
  <p>compute OR, used for branch condition </p>
1006
1009
 
1007
- <p class="definition">Definition at line <a class="el" href="Z3Expr_8cpp_source.html#l00116">116</a> of file <a class="el" href="Z3Expr_8cpp_source.html">Z3Expr.cpp</a>.</p>
1008
- <div class="fragment"><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;{</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Z3Expr.html#ac50b99fca5e04e9c0d134e6371797402">eq</a>(lhs, <a class="code" href="classSVF_1_1Z3Expr.html#aaa0c9122f34208235a2d830432665752">Z3Expr::getTrueCond</a>()) || <a class="code" href="classSVF_1_1Z3Expr.html#ac50b99fca5e04e9c0d134e6371797402">eq</a>(rhs, <a class="code" href="classSVF_1_1Z3Expr.html#aaa0c9122f34208235a2d830432665752">Z3Expr::getTrueCond</a>()))</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; {</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1Z3Expr.html#aaa0c9122f34208235a2d830432665752">Z3Expr::getTrueCond</a>();</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; }</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Z3Expr.html#ac50b99fca5e04e9c0d134e6371797402">eq</a>(lhs, <a class="code" href="classSVF_1_1Z3Expr.html#af541505af93ccebf57543793658cf495">Z3Expr::getFalseCond</a>()))</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; {</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keywordflow">return</span> rhs;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; }</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Z3Expr.html#ac50b99fca5e04e9c0d134e6371797402">eq</a>(rhs, <a class="code" href="classSVF_1_1Z3Expr.html#af541505af93ccebf57543793658cf495">Z3Expr::getFalseCond</a>()))</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; {</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keywordflow">return</span> lhs;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; }</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; {</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <a class="code" href="classSVF_1_1Z3Expr.html#abda8e52003e163cda25d75a4cb520290">Z3Expr</a> expr = lhs || rhs;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="comment">// check subexpression size and option limit</span></div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Z3Expr.html#a7cf1481ad29951ca46c1d4418f28c91e">Z3Expr::getExprSize</a>(expr) &gt; <a class="code" href="classSVF_1_1Options.html#a389c1868083100ad8ebfbf935a85a1e1">Options::MaxZ3Size</a>)</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; {</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <a class="code" href="classSVF_1_1Z3Expr.html#a16721e960145864d0835eb95f2ae4681">getSolver</a>().push();</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <a class="code" href="classSVF_1_1Z3Expr.html#a16721e960145864d0835eb95f2ae4681">getSolver</a>().add(expr.getExpr());</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; z3::check_result res = <a class="code" href="classSVF_1_1Z3Expr.html#a16721e960145864d0835eb95f2ae4681">getSolver</a>().check();</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <a class="code" href="classSVF_1_1Z3Expr.html#a16721e960145864d0835eb95f2ae4681">getSolver</a>().pop();</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keywordflow">if</span> (res != z3::unsat)</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; {</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1Z3Expr.html#aaa0c9122f34208235a2d830432665752">Z3Expr::getTrueCond</a>();</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; }</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; {</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1Z3Expr.html#af541505af93ccebf57543793658cf495">Z3Expr::getFalseCond</a>();</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; }</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; }</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keywordflow">return</span> expr;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; }</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;}</div><div class="ttc" id="classSVF_1_1Z3Expr_html_abda8e52003e163cda25d75a4cb520290"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#abda8e52003e163cda25d75a4cb520290">SVF::Z3Expr::Z3Expr</a></div><div class="ttdeci">Z3Expr()</div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00052">Z3Expr.h:52</a></div></div>
1009
- <div class="ttc" id="classSVF_1_1Z3Expr_html_a7cf1481ad29951ca46c1d4418f28c91e"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#a7cf1481ad29951ca46c1d4418f28c91e">SVF::Z3Expr::getExprSize</a></div><div class="ttdeci">static u32_t getExprSize(const Z3Expr &amp;z3Expr)</div><div class="ttdoc">get the number of subexpression of a Z3 expression </div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8cpp_source.html#l00062">Z3Expr.cpp:62</a></div></div>
1010
+ <p class="definition">Definition at line <a class="el" href="Z3Expr_8cpp_source.html#l00130">130</a> of file <a class="el" href="Z3Expr_8cpp_source.html">Z3Expr.cpp</a>.</p>
1011
+ <div class="fragment"><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;{</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Z3Expr.html#ac50b99fca5e04e9c0d134e6371797402">eq</a>(lhs, <a class="code" href="classSVF_1_1Z3Expr.html#aaa0c9122f34208235a2d830432665752">Z3Expr::getTrueCond</a>()) || <a class="code" href="classSVF_1_1Z3Expr.html#ac50b99fca5e04e9c0d134e6371797402">eq</a>(rhs, <a class="code" href="classSVF_1_1Z3Expr.html#aaa0c9122f34208235a2d830432665752">Z3Expr::getTrueCond</a>()))</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; {</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1Z3Expr.html#aaa0c9122f34208235a2d830432665752">Z3Expr::getTrueCond</a>();</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; }</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Z3Expr.html#ac50b99fca5e04e9c0d134e6371797402">eq</a>(lhs, <a class="code" href="classSVF_1_1Z3Expr.html#af541505af93ccebf57543793658cf495">Z3Expr::getFalseCond</a>()))</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; {</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordflow">return</span> rhs;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; }</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Z3Expr.html#ac50b99fca5e04e9c0d134e6371797402">eq</a>(rhs, <a class="code" href="classSVF_1_1Z3Expr.html#af541505af93ccebf57543793658cf495">Z3Expr::getFalseCond</a>()))</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; {</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordflow">return</span> lhs;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; }</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; {</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <a class="code" href="classSVF_1_1Z3Expr.html#abda8e52003e163cda25d75a4cb520290">Z3Expr</a> expr = lhs || rhs;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="comment">// check subexpression size and option limit</span></div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Z3Expr.html#a7cf1481ad29951ca46c1d4418f28c91e">Z3Expr::getExprSize</a>(expr) &gt; <a class="code" href="classSVF_1_1Options.html#a389c1868083100ad8ebfbf935a85a1e1">Options::MaxZ3Size</a>)</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; {</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <a class="code" href="classSVF_1_1Z3Expr.html#a16721e960145864d0835eb95f2ae4681">getSolver</a>().push();</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <a class="code" href="classSVF_1_1Z3Expr.html#a16721e960145864d0835eb95f2ae4681">getSolver</a>().add(expr.getExpr());</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; z3::check_result res = <a class="code" href="classSVF_1_1Z3Expr.html#a16721e960145864d0835eb95f2ae4681">getSolver</a>().check();</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <a class="code" href="classSVF_1_1Z3Expr.html#a16721e960145864d0835eb95f2ae4681">getSolver</a>().pop();</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keywordflow">if</span> (res != z3::unsat)</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; {</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1Z3Expr.html#aaa0c9122f34208235a2d830432665752">Z3Expr::getTrueCond</a>();</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; }</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; {</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1Z3Expr.html#af541505af93ccebf57543793658cf495">Z3Expr::getFalseCond</a>();</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; }</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; }</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keywordflow">return</span> expr;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; }</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;}</div><div class="ttc" id="classSVF_1_1Z3Expr_html_abda8e52003e163cda25d75a4cb520290"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#abda8e52003e163cda25d75a4cb520290">SVF::Z3Expr::Z3Expr</a></div><div class="ttdeci">Z3Expr()</div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00052">Z3Expr.h:52</a></div></div>
1012
+ <div class="ttc" id="classSVF_1_1Z3Expr_html_a7cf1481ad29951ca46c1d4418f28c91e"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#a7cf1481ad29951ca46c1d4418f28c91e">SVF::Z3Expr::getExprSize</a></div><div class="ttdeci">static u32_t getExprSize(const Z3Expr &amp;z3Expr)</div><div class="ttdoc">get the number of subexpression of a Z3 expression </div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8cpp_source.html#l00076">Z3Expr.cpp:76</a></div></div>
1010
1013
  <div class="ttc" id="classSVF_1_1Options_html_a389c1868083100ad8ebfbf935a85a1e1"><div class="ttname"><a href="classSVF_1_1Options.html#a389c1868083100ad8ebfbf935a85a1e1">SVF::Options::MaxZ3Size</a></div><div class="ttdeci">static const llvm::cl::opt&lt; unsigned &gt; MaxZ3Size</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00221">Options.h:221</a></div></div>
1011
- <div class="ttc" id="classSVF_1_1Z3Expr_html_af541505af93ccebf57543793658cf495"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#af541505af93ccebf57543793658cf495">SVF::Z3Expr::getFalseCond</a></div><div class="ttdeci">static Z3Expr getFalseCond()</div><div class="ttdoc">Return the unique false condition. </div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00285">Z3Expr.h:285</a></div></div>
1012
- <div class="ttc" id="classSVF_1_1Z3Expr_html_ac50b99fca5e04e9c0d134e6371797402"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#ac50b99fca5e04e9c0d134e6371797402">SVF::Z3Expr::eq</a></div><div class="ttdeci">friend bool eq(const Z3Expr &amp;lhs, const Z3Expr &amp;rhs)</div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00259">Z3Expr.h:259</a></div></div>
1013
- <div class="ttc" id="classSVF_1_1Z3Expr_html_a16721e960145864d0835eb95f2ae4681"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#a16721e960145864d0835eb95f2ae4681">SVF::Z3Expr::getSolver</a></div><div class="ttdeci">static z3::solver &amp; getSolver()</div><div class="ttdoc">Get z3 solver, singleton design here to make sure we only have one context. </div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8cpp_source.html#l00042">Z3Expr.cpp:42</a></div></div>
1014
- <div class="ttc" id="classSVF_1_1Z3Expr_html_aaa0c9122f34208235a2d830432665752"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#aaa0c9122f34208235a2d830432665752">SVF::Z3Expr::getTrueCond</a></div><div class="ttdeci">static Z3Expr getTrueCond()</div><div class="ttdoc">Return the unique true condition. </div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00278">Z3Expr.h:278</a></div></div>
1014
+ <div class="ttc" id="classSVF_1_1Z3Expr_html_af541505af93ccebf57543793658cf495"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#af541505af93ccebf57543793658cf495">SVF::Z3Expr::getFalseCond</a></div><div class="ttdeci">static Z3Expr getFalseCond()</div><div class="ttdoc">Return the unique false condition. </div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00288">Z3Expr.h:288</a></div></div>
1015
+ <div class="ttc" id="classSVF_1_1Z3Expr_html_ac50b99fca5e04e9c0d134e6371797402"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#ac50b99fca5e04e9c0d134e6371797402">SVF::Z3Expr::eq</a></div><div class="ttdeci">friend bool eq(const Z3Expr &amp;lhs, const Z3Expr &amp;rhs)</div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00262">Z3Expr.h:262</a></div></div>
1016
+ <div class="ttc" id="classSVF_1_1Z3Expr_html_a16721e960145864d0835eb95f2ae4681"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#a16721e960145864d0835eb95f2ae4681">SVF::Z3Expr::getSolver</a></div><div class="ttdeci">static z3::solver &amp; getSolver()</div><div class="ttdoc">Get z3 solver, singleton design here to make sure we only have one context. </div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8cpp_source.html#l00056">Z3Expr.cpp:56</a></div></div>
1017
+ <div class="ttc" id="classSVF_1_1Z3Expr_html_aaa0c9122f34208235a2d830432665752"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#aaa0c9122f34208235a2d830432665752">SVF::Z3Expr::getTrueCond</a></div><div class="ttdeci">static Z3Expr getTrueCond()</div><div class="ttdoc">Return the unique true condition. </div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00281">Z3Expr.h:281</a></div></div>
1015
1018
  </div><!-- fragment -->
1016
1019
  </div>
1017
1020
  </div>
@@ -1040,8 +1043,40 @@ Friends</h2></td></tr>
1040
1043
 
1041
1044
  <p>release z3 context </p>
1042
1045
 
1043
- <p class="definition">Definition at line <a class="el" href="Z3Expr_8cpp_source.html#l00035">35</a> of file <a class="el" href="Z3Expr_8cpp_source.html">Z3Expr.cpp</a>.</p>
1044
- <div class="fragment"><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;{</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keyword">delete</span> <a class="code" href="classSVF_1_1Z3Expr.html#a7dce19d65c7a0b50d21127a07aa51bf8">ctx</a>;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <a class="code" href="classSVF_1_1Z3Expr.html#a7dce19d65c7a0b50d21127a07aa51bf8">ctx</a> = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;}</div><div class="ttc" id="classSVF_1_1Z3Expr_html_a7dce19d65c7a0b50d21127a07aa51bf8"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#a7dce19d65c7a0b50d21127a07aa51bf8">SVF::Z3Expr::ctx</a></div><div class="ttdeci">static z3::context * ctx</div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00041">Z3Expr.h:41</a></div></div>
1046
+ <p class="definition">Definition at line <a class="el" href="Z3Expr_8cpp_source.html#l00040">40</a> of file <a class="el" href="Z3Expr_8cpp_source.html">Z3Expr.cpp</a>.</p>
1047
+ <div class="fragment"><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1Z3Expr.html#a2f0cf6549d9bc6fc1d4be46976ad0f0e">solver</a>)</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <a class="code" href="classSVF_1_1Z3Expr.html#a9cf1997ee2d22542f7288506ed0f4733">releaseSolver</a>();</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">delete</span> <a class="code" href="classSVF_1_1Z3Expr.html#af02935097a8db09812781ac8c42d93e5">ctx</a>;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <a class="code" href="classSVF_1_1Z3Expr.html#af02935097a8db09812781ac8c42d93e5">ctx</a> = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;}</div><div class="ttc" id="classSVF_1_1Z3Expr_html_a2f0cf6549d9bc6fc1d4be46976ad0f0e"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#a2f0cf6549d9bc6fc1d4be46976ad0f0e">SVF::Z3Expr::solver</a></div><div class="ttdeci">static z3::solver * solver</div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00042">Z3Expr.h:42</a></div></div>
1048
+ <div class="ttc" id="classSVF_1_1Z3Expr_html_a9cf1997ee2d22542f7288506ed0f4733"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#a9cf1997ee2d22542f7288506ed0f4733">SVF::Z3Expr::releaseSolver</a></div><div class="ttdeci">static void releaseSolver()</div><div class="ttdoc">release z3 solver </div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8cpp_source.html#l00049">Z3Expr.cpp:49</a></div></div>
1049
+ <div class="ttc" id="classSVF_1_1Z3Expr_html_af02935097a8db09812781ac8c42d93e5"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#af02935097a8db09812781ac8c42d93e5">SVF::Z3Expr::ctx</a></div><div class="ttdeci">static z3::context * ctx</div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00041">Z3Expr.h:41</a></div></div>
1050
+ </div><!-- fragment -->
1051
+ </div>
1052
+ </div>
1053
+ <a id="a9cf1997ee2d22542f7288506ed0f4733"></a>
1054
+ <h2 class="memtitle"><span class="permalink"><a href="#a9cf1997ee2d22542f7288506ed0f4733">&#9670;&nbsp;</a></span>releaseSolver()</h2>
1055
+
1056
+ <div class="memitem">
1057
+ <div class="memproto">
1058
+ <table class="mlabels">
1059
+ <tr>
1060
+ <td class="mlabels-left">
1061
+ <table class="memname">
1062
+ <tr>
1063
+ <td class="memname">void SVF::Z3Expr::releaseSolver </td>
1064
+ <td>(</td>
1065
+ <td class="paramname"></td><td>)</td>
1066
+ <td></td>
1067
+ </tr>
1068
+ </table>
1069
+ </td>
1070
+ <td class="mlabels-right">
1071
+ <span class="mlabels"><span class="mlabel">static</span></span> </td>
1072
+ </tr>
1073
+ </table>
1074
+ </div><div class="memdoc">
1075
+
1076
+ <p>release z3 solver </p>
1077
+
1078
+ <p class="definition">Definition at line <a class="el" href="Z3Expr_8cpp_source.html#l00049">49</a> of file <a class="el" href="Z3Expr_8cpp_source.html">Z3Expr.cpp</a>.</p>
1079
+ <div class="fragment"><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;{</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keyword">delete</span> <a class="code" href="classSVF_1_1Z3Expr.html#a2f0cf6549d9bc6fc1d4be46976ad0f0e">solver</a>;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <a class="code" href="classSVF_1_1Z3Expr.html#a2f0cf6549d9bc6fc1d4be46976ad0f0e">solver</a> = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;}</div><div class="ttc" id="classSVF_1_1Z3Expr_html_a2f0cf6549d9bc6fc1d4be46976ad0f0e"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#a2f0cf6549d9bc6fc1d4be46976ad0f0e">SVF::Z3Expr::solver</a></div><div class="ttdeci">static z3::solver * solver</div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00042">Z3Expr.h:42</a></div></div>
1045
1080
  </div><!-- fragment -->
1046
1081
  </div>
1047
1082
  </div>
@@ -1068,8 +1103,8 @@ Friends</h2></td></tr>
1068
1103
  </table>
1069
1104
  </div><div class="memdoc">
1070
1105
 
1071
- <p class="definition">Definition at line <a class="el" href="Z3Expr_8h_source.html#l00127">127</a> of file <a class="el" href="Z3Expr_8h_source.html">Z3Expr.h</a>.</p>
1072
- <div class="fragment"><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; {</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1Z3Expr.html#ae14d9fa0613b196420b90d20cc8df041">e</a>.simplify();</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; }</div><div class="ttc" id="classSVF_1_1Z3Expr_html_ae14d9fa0613b196420b90d20cc8df041"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#ae14d9fa0613b196420b90d20cc8df041">SVF::Z3Expr::e</a></div><div class="ttdeci">z3::expr e</div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00045">Z3Expr.h:45</a></div></div>
1106
+ <p class="definition">Definition at line <a class="el" href="Z3Expr_8h_source.html#l00130">130</a> of file <a class="el" href="Z3Expr_8h_source.html">Z3Expr.h</a>.</p>
1107
+ <div class="fragment"><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; {</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1Z3Expr.html#ae14d9fa0613b196420b90d20cc8df041">e</a>.simplify();</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; }</div><div class="ttc" id="classSVF_1_1Z3Expr_html_ae14d9fa0613b196420b90d20cc8df041"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#ae14d9fa0613b196420b90d20cc8df041">SVF::Z3Expr::e</a></div><div class="ttdeci">z3::expr e</div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00045">Z3Expr.h:45</a></div></div>
1073
1108
  </div><!-- fragment -->
1074
1109
  </div>
1075
1110
  </div>
@@ -1096,8 +1131,8 @@ Friends</h2></td></tr>
1096
1131
  </table>
1097
1132
  </div><div class="memdoc">
1098
1133
 
1099
- <p class="definition">Definition at line <a class="el" href="Z3Expr_8h_source.html#l00112">112</a> of file <a class="el" href="Z3Expr_8h_source.html">Z3Expr.h</a>.</p>
1100
- <div class="fragment"><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; {</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1Z3Expr.html#ae14d9fa0613b196420b90d20cc8df041">e</a>.to_string();</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; }</div><div class="ttc" id="classSVF_1_1Z3Expr_html_ae14d9fa0613b196420b90d20cc8df041"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#ae14d9fa0613b196420b90d20cc8df041">SVF::Z3Expr::e</a></div><div class="ttdeci">z3::expr e</div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00045">Z3Expr.h:45</a></div></div>
1134
+ <p class="definition">Definition at line <a class="el" href="Z3Expr_8h_source.html#l00115">115</a> of file <a class="el" href="Z3Expr_8h_source.html">Z3Expr.h</a>.</p>
1135
+ <div class="fragment"><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; {</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1Z3Expr.html#ae14d9fa0613b196420b90d20cc8df041">e</a>.to_string();</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; }</div><div class="ttc" id="classSVF_1_1Z3Expr_html_ae14d9fa0613b196420b90d20cc8df041"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#ae14d9fa0613b196420b90d20cc8df041">SVF::Z3Expr::e</a></div><div class="ttdeci">z3::expr e</div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00045">Z3Expr.h:45</a></div></div>
1101
1136
  </div><!-- fragment -->
1102
1137
  </div>
1103
1138
  </div>
@@ -1136,8 +1171,8 @@ Friends</h2></td></tr>
1136
1171
  </table>
1137
1172
  </div><div class="memdoc">
1138
1173
 
1139
- <p class="definition">Definition at line <a class="el" href="Z3Expr_8h_source.html#l00213">213</a> of file <a class="el" href="Z3Expr_8h_source.html">Z3Expr.h</a>.</p>
1140
- <div class="fragment"><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; {</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1Z3Expr.html#a5c3347a21592e43e36d421ea5cae6bc9">ashr</a>(lhs.getExpr(), rhs.getExpr());</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; }</div><div class="ttc" id="classSVF_1_1Z3Expr_html_a5c3347a21592e43e36d421ea5cae6bc9"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#a5c3347a21592e43e36d421ea5cae6bc9">SVF::Z3Expr::ashr</a></div><div class="ttdeci">friend Z3Expr ashr(const Z3Expr &amp;lhs, const Z3Expr &amp;rhs)</div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00213">Z3Expr.h:213</a></div></div>
1174
+ <p class="definition">Definition at line <a class="el" href="Z3Expr_8h_source.html#l00216">216</a> of file <a class="el" href="Z3Expr_8h_source.html">Z3Expr.h</a>.</p>
1175
+ <div class="fragment"><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; {</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1Z3Expr.html#a5c3347a21592e43e36d421ea5cae6bc9">ashr</a>(lhs.getExpr(), rhs.getExpr());</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; }</div><div class="ttc" id="classSVF_1_1Z3Expr_html_a5c3347a21592e43e36d421ea5cae6bc9"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#a5c3347a21592e43e36d421ea5cae6bc9">SVF::Z3Expr::ashr</a></div><div class="ttdeci">friend Z3Expr ashr(const Z3Expr &amp;lhs, const Z3Expr &amp;rhs)</div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00216">Z3Expr.h:216</a></div></div>
1141
1176
  </div><!-- fragment -->
1142
1177
  </div>
1143
1178
  </div>
@@ -1175,8 +1210,8 @@ Friends</h2></td></tr>
1175
1210
  </table>
1176
1211
  </div><div class="memdoc">
1177
1212
 
1178
- <p class="definition">Definition at line <a class="el" href="Z3Expr_8h_source.html#l00228">228</a> of file <a class="el" href="Z3Expr_8h_source.html">Z3Expr.h</a>.</p>
1179
- <div class="fragment"><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; {</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keywordflow">return</span> z3::bv2int(<a class="code" href="classSVF_1_1Z3Expr.html#ae14d9fa0613b196420b90d20cc8df041">e</a>.getExpr(), isSigned);</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; }</div><div class="ttc" id="classSVF_1_1Z3Expr_html_ae14d9fa0613b196420b90d20cc8df041"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#ae14d9fa0613b196420b90d20cc8df041">SVF::Z3Expr::e</a></div><div class="ttdeci">z3::expr e</div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00045">Z3Expr.h:45</a></div></div>
1213
+ <p class="definition">Definition at line <a class="el" href="Z3Expr_8h_source.html#l00231">231</a> of file <a class="el" href="Z3Expr_8h_source.html">Z3Expr.h</a>.</p>
1214
+ <div class="fragment"><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; {</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keywordflow">return</span> z3::bv2int(<a class="code" href="classSVF_1_1Z3Expr.html#ae14d9fa0613b196420b90d20cc8df041">e</a>.getExpr(), isSigned);</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; }</div><div class="ttc" id="classSVF_1_1Z3Expr_html_ae14d9fa0613b196420b90d20cc8df041"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#ae14d9fa0613b196420b90d20cc8df041">SVF::Z3Expr::e</a></div><div class="ttdeci">z3::expr e</div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00045">Z3Expr.h:45</a></div></div>
1180
1215
  </div><!-- fragment -->
1181
1216
  </div>
1182
1217
  </div>
@@ -1214,8 +1249,8 @@ Friends</h2></td></tr>
1214
1249
  </table>
1215
1250
  </div><div class="memdoc">
1216
1251
 
1217
- <p class="definition">Definition at line <a class="el" href="Z3Expr_8h_source.html#l00259">259</a> of file <a class="el" href="Z3Expr_8h_source.html">Z3Expr.h</a>.</p>
1218
- <div class="fragment"><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; {</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1Z3Expr.html#ac50b99fca5e04e9c0d134e6371797402">eq</a>(lhs.getExpr(), rhs.getExpr());</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; }</div><div class="ttc" id="classSVF_1_1Z3Expr_html_ac50b99fca5e04e9c0d134e6371797402"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#ac50b99fca5e04e9c0d134e6371797402">SVF::Z3Expr::eq</a></div><div class="ttdeci">friend bool eq(const Z3Expr &amp;lhs, const Z3Expr &amp;rhs)</div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00259">Z3Expr.h:259</a></div></div>
1252
+ <p class="definition">Definition at line <a class="el" href="Z3Expr_8h_source.html#l00262">262</a> of file <a class="el" href="Z3Expr_8h_source.html">Z3Expr.h</a>.</p>
1253
+ <div class="fragment"><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; {</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1Z3Expr.html#ac50b99fca5e04e9c0d134e6371797402">eq</a>(lhs.getExpr(), rhs.getExpr());</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; }</div><div class="ttc" id="classSVF_1_1Z3Expr_html_ac50b99fca5e04e9c0d134e6371797402"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#ac50b99fca5e04e9c0d134e6371797402">SVF::Z3Expr::eq</a></div><div class="ttdeci">friend bool eq(const Z3Expr &amp;lhs, const Z3Expr &amp;rhs)</div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00262">Z3Expr.h:262</a></div></div>
1219
1254
  </div><!-- fragment -->
1220
1255
  </div>
1221
1256
  </div>
@@ -1253,10 +1288,10 @@ Friends</h2></td></tr>
1253
1288
  </table>
1254
1289
  </div><div class="memdoc">
1255
1290
 
1256
- <p class="definition">Definition at line <a class="el" href="Z3Expr_8h_source.html#l00223">223</a> of file <a class="el" href="Z3Expr_8h_source.html">Z3Expr.h</a>.</p>
1257
- <div class="fragment"><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; {</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1Z3Expr.html#acd9b5e77162c26753085386661b40517">int2bv</a>(<a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>, <a class="code" href="classSVF_1_1Z3Expr.html#ae14d9fa0613b196420b90d20cc8df041">e</a>.getExpr());</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; }</div><div class="ttc" id="cJSON_8cpp_html_ab6e2ea6dc7bd57d1483413449998230a"><div class="ttname"><a href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a></div><div class="ttdeci">cJSON * n</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l02558">cJSON.cpp:2558</a></div></div>
1291
+ <p class="definition">Definition at line <a class="el" href="Z3Expr_8h_source.html#l00226">226</a> of file <a class="el" href="Z3Expr_8h_source.html">Z3Expr.h</a>.</p>
1292
+ <div class="fragment"><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; {</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1Z3Expr.html#acd9b5e77162c26753085386661b40517">int2bv</a>(<a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>, <a class="code" href="classSVF_1_1Z3Expr.html#ae14d9fa0613b196420b90d20cc8df041">e</a>.getExpr());</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; }</div><div class="ttc" id="cJSON_8cpp_html_ab6e2ea6dc7bd57d1483413449998230a"><div class="ttname"><a href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a></div><div class="ttdeci">cJSON * n</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l02558">cJSON.cpp:2558</a></div></div>
1258
1293
  <div class="ttc" id="classSVF_1_1Z3Expr_html_ae14d9fa0613b196420b90d20cc8df041"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#ae14d9fa0613b196420b90d20cc8df041">SVF::Z3Expr::e</a></div><div class="ttdeci">z3::expr e</div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00045">Z3Expr.h:45</a></div></div>
1259
- <div class="ttc" id="classSVF_1_1Z3Expr_html_acd9b5e77162c26753085386661b40517"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#acd9b5e77162c26753085386661b40517">SVF::Z3Expr::int2bv</a></div><div class="ttdeci">friend Z3Expr int2bv(u32_t n, const Z3Expr &amp;e)</div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00223">Z3Expr.h:223</a></div></div>
1294
+ <div class="ttc" id="classSVF_1_1Z3Expr_html_acd9b5e77162c26753085386661b40517"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#acd9b5e77162c26753085386661b40517">SVF::Z3Expr::int2bv</a></div><div class="ttdeci">friend Z3Expr int2bv(u32_t n, const Z3Expr &amp;e)</div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00226">Z3Expr.h:226</a></div></div>
1260
1295
  </div><!-- fragment -->
1261
1296
  </div>
1262
1297
  </div>
@@ -1300,8 +1335,8 @@ Friends</h2></td></tr>
1300
1335
  </table>
1301
1336
  </div><div class="memdoc">
1302
1337
 
1303
- <p class="definition">Definition at line <a class="el" href="Z3Expr_8h_source.html#l00248">248</a> of file <a class="el" href="Z3Expr_8h_source.html">Z3Expr.h</a>.</p>
1304
- <div class="fragment"><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; {</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1Z3Expr.html#a93492128e2c619ef9e5b15a7d022bc45">ite</a>(cond.getExpr(), lhs.getExpr(), rhs.getExpr());</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; }</div><div class="ttc" id="classSVF_1_1Z3Expr_html_a93492128e2c619ef9e5b15a7d022bc45"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#a93492128e2c619ef9e5b15a7d022bc45">SVF::Z3Expr::ite</a></div><div class="ttdeci">friend Z3Expr ite(const Z3Expr &amp;cond, const Z3Expr &amp;lhs, const Z3Expr &amp;rhs)</div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00248">Z3Expr.h:248</a></div></div>
1338
+ <p class="definition">Definition at line <a class="el" href="Z3Expr_8h_source.html#l00251">251</a> of file <a class="el" href="Z3Expr_8h_source.html">Z3Expr.h</a>.</p>
1339
+ <div class="fragment"><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; {</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1Z3Expr.html#a93492128e2c619ef9e5b15a7d022bc45">ite</a>(cond.getExpr(), lhs.getExpr(), rhs.getExpr());</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; }</div><div class="ttc" id="classSVF_1_1Z3Expr_html_a93492128e2c619ef9e5b15a7d022bc45"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#a93492128e2c619ef9e5b15a7d022bc45">SVF::Z3Expr::ite</a></div><div class="ttdeci">friend Z3Expr ite(const Z3Expr &amp;cond, const Z3Expr &amp;lhs, const Z3Expr &amp;rhs)</div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00251">Z3Expr.h:251</a></div></div>
1305
1340
  </div><!-- fragment -->
1306
1341
  </div>
1307
1342
  </div>
@@ -1339,8 +1374,8 @@ Friends</h2></td></tr>
1339
1374
  </table>
1340
1375
  </div><div class="memdoc">
1341
1376
 
1342
- <p class="definition">Definition at line <a class="el" href="Z3Expr_8h_source.html#l00203">203</a> of file <a class="el" href="Z3Expr_8h_source.html">Z3Expr.h</a>.</p>
1343
- <div class="fragment"><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; {</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keywordflow">return</span> lhs.getExpr() &amp; rhs.getExpr();</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; }</div></div><!-- fragment -->
1377
+ <p class="definition">Definition at line <a class="el" href="Z3Expr_8h_source.html#l00206">206</a> of file <a class="el" href="Z3Expr_8h_source.html">Z3Expr.h</a>.</p>
1378
+ <div class="fragment"><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; {</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keywordflow">return</span> lhs.getExpr() &amp; rhs.getExpr();</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; }</div></div><!-- fragment -->
1344
1379
  </div>
1345
1380
  </div>
1346
1381
  <a id="af8529f1d313f1e702adc76612f9d86ad"></a>
@@ -1377,8 +1412,8 @@ Friends</h2></td></tr>
1377
1412
  </table>
1378
1413
  </div><div class="memdoc">
1379
1414
 
1380
- <p class="definition">Definition at line <a class="el" href="Z3Expr_8h_source.html#l00233">233</a> of file <a class="el" href="Z3Expr_8h_source.html">Z3Expr.h</a>.</p>
1381
- <div class="fragment"><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; {</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keywordflow">return</span> lhs.getExpr() &amp;&amp; rhs.getExpr();</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; }</div></div><!-- fragment -->
1415
+ <p class="definition">Definition at line <a class="el" href="Z3Expr_8h_source.html#l00236">236</a> of file <a class="el" href="Z3Expr_8h_source.html">Z3Expr.h</a>.</p>
1416
+ <div class="fragment"><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; {</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="keywordflow">return</span> lhs.getExpr() &amp;&amp; rhs.getExpr();</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; }</div></div><!-- fragment -->
1382
1417
  </div>
1383
1418
  </div>
1384
1419
  <a id="ac2b4e7b63f15e6780d25107b61f208ca"></a>
@@ -1405,8 +1440,8 @@ Friends</h2></td></tr>
1405
1440
  </table>
1406
1441
  </div><div class="memdoc">
1407
1442
 
1408
- <p class="definition">Definition at line <a class="el" href="Z3Expr_8h_source.html#l00243">243</a> of file <a class="el" href="Z3Expr_8h_source.html">Z3Expr.h</a>.</p>
1409
- <div class="fragment"><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; {</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keywordflow">return</span> !lhs.getExpr();</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; }</div></div><!-- fragment -->
1443
+ <p class="definition">Definition at line <a class="el" href="Z3Expr_8h_source.html#l00246">246</a> of file <a class="el" href="Z3Expr_8h_source.html">Z3Expr.h</a>.</p>
1444
+ <div class="fragment"><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; {</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keywordflow">return</span> !lhs.getExpr();</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; }</div></div><!-- fragment -->
1410
1445
  </div>
1411
1446
  </div>
1412
1447
  <a id="a180b9776e8388839bf321be33b8c0cb3"></a>
@@ -1443,8 +1478,8 @@ Friends</h2></td></tr>
1443
1478
  </table>
1444
1479
  </div><div class="memdoc">
1445
1480
 
1446
- <p class="definition">Definition at line <a class="el" href="Z3Expr_8h_source.html#l00148">148</a> of file <a class="el" href="Z3Expr_8h_source.html">Z3Expr.h</a>.</p>
1447
- <div class="fragment"><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; {</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keywordflow">return</span> lhs.getExpr() != rhs.getExpr();</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; }</div></div><!-- fragment -->
1481
+ <p class="definition">Definition at line <a class="el" href="Z3Expr_8h_source.html#l00151">151</a> of file <a class="el" href="Z3Expr_8h_source.html">Z3Expr.h</a>.</p>
1482
+ <div class="fragment"><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; {</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keywordflow">return</span> lhs.getExpr() != rhs.getExpr();</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; }</div></div><!-- fragment -->
1448
1483
  </div>
1449
1484
  </div>
1450
1485
  <a id="a2abad89a9cfb36d8b782a099931501ad"></a>
@@ -1481,8 +1516,8 @@ Friends</h2></td></tr>
1481
1516
  </table>
1482
1517
  </div><div class="memdoc">
1483
1518
 
1484
- <p class="definition">Definition at line <a class="el" href="Z3Expr_8h_source.html#l00193">193</a> of file <a class="el" href="Z3Expr_8h_source.html">Z3Expr.h</a>.</p>
1485
- <div class="fragment"><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; {</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keywordflow">return</span> lhs.getExpr() % rhs.getExpr();</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; }</div></div><!-- fragment -->
1519
+ <p class="definition">Definition at line <a class="el" href="Z3Expr_8h_source.html#l00196">196</a> of file <a class="el" href="Z3Expr_8h_source.html">Z3Expr.h</a>.</p>
1520
+ <div class="fragment"><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; {</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keywordflow">return</span> lhs.getExpr() % rhs.getExpr();</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; }</div></div><!-- fragment -->
1486
1521
  </div>
1487
1522
  </div>
1488
1523
  <a id="a6732f9ac81422756d10b5fdd6ffaab3e"></a>
@@ -1519,8 +1554,8 @@ Friends</h2></td></tr>
1519
1554
  </table>
1520
1555
  </div><div class="memdoc">
1521
1556
 
1522
- <p class="definition">Definition at line <a class="el" href="Z3Expr_8h_source.html#l00183">183</a> of file <a class="el" href="Z3Expr_8h_source.html">Z3Expr.h</a>.</p>
1523
- <div class="fragment"><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; {</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keywordflow">return</span> lhs.getExpr() * rhs.getExpr();</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; }</div></div><!-- fragment -->
1557
+ <p class="definition">Definition at line <a class="el" href="Z3Expr_8h_source.html#l00186">186</a> of file <a class="el" href="Z3Expr_8h_source.html">Z3Expr.h</a>.</p>
1558
+ <div class="fragment"><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; {</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keywordflow">return</span> lhs.getExpr() * rhs.getExpr();</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; }</div></div><!-- fragment -->
1524
1559
  </div>
1525
1560
  </div>
1526
1561
  <a id="af86e0c01602b78f64933b06e43a48e06"></a>
@@ -1557,8 +1592,8 @@ Friends</h2></td></tr>
1557
1592
  </table>
1558
1593
  </div><div class="memdoc">
1559
1594
 
1560
- <p class="definition">Definition at line <a class="el" href="Z3Expr_8h_source.html#l00173">173</a> of file <a class="el" href="Z3Expr_8h_source.html">Z3Expr.h</a>.</p>
1561
- <div class="fragment"><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; {</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keywordflow">return</span> lhs.getExpr() + rhs.getExpr();</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; }</div></div><!-- fragment -->
1595
+ <p class="definition">Definition at line <a class="el" href="Z3Expr_8h_source.html#l00176">176</a> of file <a class="el" href="Z3Expr_8h_source.html">Z3Expr.h</a>.</p>
1596
+ <div class="fragment"><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; {</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keywordflow">return</span> lhs.getExpr() + rhs.getExpr();</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; }</div></div><!-- fragment -->
1562
1597
  </div>
1563
1598
  </div>
1564
1599
  <a id="aea407969f346ed1692cac584e9d8d265"></a>
@@ -1595,8 +1630,8 @@ Friends</h2></td></tr>
1595
1630
  </table>
1596
1631
  </div><div class="memdoc">
1597
1632
 
1598
- <p class="definition">Definition at line <a class="el" href="Z3Expr_8h_source.html#l00178">178</a> of file <a class="el" href="Z3Expr_8h_source.html">Z3Expr.h</a>.</p>
1599
- <div class="fragment"><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; {</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keywordflow">return</span> lhs.getExpr() - rhs.getExpr();</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; }</div></div><!-- fragment -->
1633
+ <p class="definition">Definition at line <a class="el" href="Z3Expr_8h_source.html#l00181">181</a> of file <a class="el" href="Z3Expr_8h_source.html">Z3Expr.h</a>.</p>
1634
+ <div class="fragment"><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; {</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keywordflow">return</span> lhs.getExpr() - rhs.getExpr();</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; }</div></div><!-- fragment -->
1600
1635
  </div>
1601
1636
  </div>
1602
1637
  <a id="a978668e0c0cc3b1fd261e02b5d7d96d4"></a>
@@ -1633,8 +1668,8 @@ Friends</h2></td></tr>
1633
1668
  </table>
1634
1669
  </div><div class="memdoc">
1635
1670
 
1636
- <p class="definition">Definition at line <a class="el" href="Z3Expr_8h_source.html#l00188">188</a> of file <a class="el" href="Z3Expr_8h_source.html">Z3Expr.h</a>.</p>
1637
- <div class="fragment"><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; {</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keywordflow">return</span> lhs.getExpr() / rhs.getExpr();</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; }</div></div><!-- fragment -->
1671
+ <p class="definition">Definition at line <a class="el" href="Z3Expr_8h_source.html#l00191">191</a> of file <a class="el" href="Z3Expr_8h_source.html">Z3Expr.h</a>.</p>
1672
+ <div class="fragment"><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; {</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keywordflow">return</span> lhs.getExpr() / rhs.getExpr();</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; }</div></div><!-- fragment -->
1638
1673
  </div>
1639
1674
  </div>
1640
1675
  <a id="a9bc83c762453afc4602b1fef8ea8725d"></a>
@@ -1671,8 +1706,8 @@ Friends</h2></td></tr>
1671
1706
  </table>
1672
1707
  </div><div class="memdoc">
1673
1708
 
1674
- <p class="definition">Definition at line <a class="el" href="Z3Expr_8h_source.html#l00158">158</a> of file <a class="el" href="Z3Expr_8h_source.html">Z3Expr.h</a>.</p>
1675
- <div class="fragment"><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; {</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keywordflow">return</span> lhs.getExpr() &lt; rhs.getExpr();</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; }</div></div><!-- fragment -->
1709
+ <p class="definition">Definition at line <a class="el" href="Z3Expr_8h_source.html#l00161">161</a> of file <a class="el" href="Z3Expr_8h_source.html">Z3Expr.h</a>.</p>
1710
+ <div class="fragment"><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; {</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keywordflow">return</span> lhs.getExpr() &lt; rhs.getExpr();</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; }</div></div><!-- fragment -->
1676
1711
  </div>
1677
1712
  </div>
1678
1713
  <a id="aba8287dde6649b0c039539f71e8a7886"></a>
@@ -1709,8 +1744,8 @@ Friends</h2></td></tr>
1709
1744
  </table>
1710
1745
  </div><div class="memdoc">
1711
1746
 
1712
- <p class="definition">Definition at line <a class="el" href="Z3Expr_8h_source.html#l00253">253</a> of file <a class="el" href="Z3Expr_8h_source.html">Z3Expr.h</a>.</p>
1713
- <div class="fragment"><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; {</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; out &lt;&lt; expr.getExpr();</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="keywordflow">return</span> out;</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; }</div></div><!-- fragment -->
1747
+ <p class="definition">Definition at line <a class="el" href="Z3Expr_8h_source.html#l00256">256</a> of file <a class="el" href="Z3Expr_8h_source.html">Z3Expr.h</a>.</p>
1748
+ <div class="fragment"><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; {</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; out &lt;&lt; expr.getExpr();</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="keywordflow">return</span> out;</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; }</div></div><!-- fragment -->
1714
1749
  </div>
1715
1750
  </div>
1716
1751
  <a id="a979529cf9531d2331d02b5db4b27535f"></a>
@@ -1747,8 +1782,8 @@ Friends</h2></td></tr>
1747
1782
  </table>
1748
1783
  </div><div class="memdoc">
1749
1784
 
1750
- <p class="definition">Definition at line <a class="el" href="Z3Expr_8h_source.html#l00163">163</a> of file <a class="el" href="Z3Expr_8h_source.html">Z3Expr.h</a>.</p>
1751
- <div class="fragment"><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; {</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keywordflow">return</span> lhs.getExpr() &lt;= rhs.getExpr();</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; }</div></div><!-- fragment -->
1785
+ <p class="definition">Definition at line <a class="el" href="Z3Expr_8h_source.html#l00166">166</a> of file <a class="el" href="Z3Expr_8h_source.html">Z3Expr.h</a>.</p>
1786
+ <div class="fragment"><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; {</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keywordflow">return</span> lhs.getExpr() &lt;= rhs.getExpr();</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; }</div></div><!-- fragment -->
1752
1787
  </div>
1753
1788
  </div>
1754
1789
  <a id="a900309288fa5d43376d80e414f85dc45"></a>
@@ -1785,8 +1820,8 @@ Friends</h2></td></tr>
1785
1820
  </table>
1786
1821
  </div><div class="memdoc">
1787
1822
 
1788
- <p class="definition">Definition at line <a class="el" href="Z3Expr_8h_source.html#l00143">143</a> of file <a class="el" href="Z3Expr_8h_source.html">Z3Expr.h</a>.</p>
1789
- <div class="fragment"><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; {</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keywordflow">return</span> lhs.getExpr() == rhs.getExpr();</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; }</div></div><!-- fragment -->
1823
+ <p class="definition">Definition at line <a class="el" href="Z3Expr_8h_source.html#l00146">146</a> of file <a class="el" href="Z3Expr_8h_source.html">Z3Expr.h</a>.</p>
1824
+ <div class="fragment"><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; {</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keywordflow">return</span> lhs.getExpr() == rhs.getExpr();</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; }</div></div><!-- fragment -->
1790
1825
  </div>
1791
1826
  </div>
1792
1827
  <a id="a20cbf950bacc51e56c74918af268ed76"></a>
@@ -1823,8 +1858,8 @@ Friends</h2></td></tr>
1823
1858
  </table>
1824
1859
  </div><div class="memdoc">
1825
1860
 
1826
- <p class="definition">Definition at line <a class="el" href="Z3Expr_8h_source.html#l00153">153</a> of file <a class="el" href="Z3Expr_8h_source.html">Z3Expr.h</a>.</p>
1827
- <div class="fragment"><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; {</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keywordflow">return</span> lhs.getExpr() &gt; rhs.getExpr();</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; }</div></div><!-- fragment -->
1861
+ <p class="definition">Definition at line <a class="el" href="Z3Expr_8h_source.html#l00156">156</a> of file <a class="el" href="Z3Expr_8h_source.html">Z3Expr.h</a>.</p>
1862
+ <div class="fragment"><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; {</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keywordflow">return</span> lhs.getExpr() &gt; rhs.getExpr();</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; }</div></div><!-- fragment -->
1828
1863
  </div>
1829
1864
  </div>
1830
1865
  <a id="a707735e67c852191e4e2a689a1a84858"></a>
@@ -1861,8 +1896,8 @@ Friends</h2></td></tr>
1861
1896
  </table>
1862
1897
  </div><div class="memdoc">
1863
1898
 
1864
- <p class="definition">Definition at line <a class="el" href="Z3Expr_8h_source.html#l00168">168</a> of file <a class="el" href="Z3Expr_8h_source.html">Z3Expr.h</a>.</p>
1865
- <div class="fragment"><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; {</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keywordflow">return</span> lhs.getExpr() &gt;= rhs.getExpr();</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; }</div></div><!-- fragment -->
1899
+ <p class="definition">Definition at line <a class="el" href="Z3Expr_8h_source.html#l00171">171</a> of file <a class="el" href="Z3Expr_8h_source.html">Z3Expr.h</a>.</p>
1900
+ <div class="fragment"><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; {</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keywordflow">return</span> lhs.getExpr() &gt;= rhs.getExpr();</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; }</div></div><!-- fragment -->
1866
1901
  </div>
1867
1902
  </div>
1868
1903
  <a id="ae6419d6772044a2db7faf0ea0b848d12"></a>
@@ -1899,8 +1934,8 @@ Friends</h2></td></tr>
1899
1934
  </table>
1900
1935
  </div><div class="memdoc">
1901
1936
 
1902
- <p class="definition">Definition at line <a class="el" href="Z3Expr_8h_source.html#l00198">198</a> of file <a class="el" href="Z3Expr_8h_source.html">Z3Expr.h</a>.</p>
1903
- <div class="fragment"><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; {</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keywordflow">return</span> lhs.getExpr() ^ rhs.getExpr();</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; }</div></div><!-- fragment -->
1937
+ <p class="definition">Definition at line <a class="el" href="Z3Expr_8h_source.html#l00201">201</a> of file <a class="el" href="Z3Expr_8h_source.html">Z3Expr.h</a>.</p>
1938
+ <div class="fragment"><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; {</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keywordflow">return</span> lhs.getExpr() ^ rhs.getExpr();</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; }</div></div><!-- fragment -->
1904
1939
  </div>
1905
1940
  </div>
1906
1941
  <a id="a1f29d0ff58e6969e394f5b06017138de"></a>
@@ -1937,8 +1972,8 @@ Friends</h2></td></tr>
1937
1972
  </table>
1938
1973
  </div><div class="memdoc">
1939
1974
 
1940
- <p class="definition">Definition at line <a class="el" href="Z3Expr_8h_source.html#l00208">208</a> of file <a class="el" href="Z3Expr_8h_source.html">Z3Expr.h</a>.</p>
1941
- <div class="fragment"><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; {</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="keywordflow">return</span> lhs.getExpr() | rhs.getExpr();</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; }</div></div><!-- fragment -->
1975
+ <p class="definition">Definition at line <a class="el" href="Z3Expr_8h_source.html#l00211">211</a> of file <a class="el" href="Z3Expr_8h_source.html">Z3Expr.h</a>.</p>
1976
+ <div class="fragment"><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; {</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="keywordflow">return</span> lhs.getExpr() | rhs.getExpr();</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; }</div></div><!-- fragment -->
1942
1977
  </div>
1943
1978
  </div>
1944
1979
  <a id="a31327900a231526ff8f62be87c5f309d"></a>
@@ -1975,8 +2010,8 @@ Friends</h2></td></tr>
1975
2010
  </table>
1976
2011
  </div><div class="memdoc">
1977
2012
 
1978
- <p class="definition">Definition at line <a class="el" href="Z3Expr_8h_source.html#l00238">238</a> of file <a class="el" href="Z3Expr_8h_source.html">Z3Expr.h</a>.</p>
1979
- <div class="fragment"><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; {</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="keywordflow">return</span> lhs.getExpr() || rhs.getExpr();</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; }</div></div><!-- fragment -->
2013
+ <p class="definition">Definition at line <a class="el" href="Z3Expr_8h_source.html#l00241">241</a> of file <a class="el" href="Z3Expr_8h_source.html">Z3Expr.h</a>.</p>
2014
+ <div class="fragment"><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; {</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keywordflow">return</span> lhs.getExpr() || rhs.getExpr();</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; }</div></div><!-- fragment -->
1980
2015
  </div>
1981
2016
  </div>
1982
2017
  <a id="a7b6e7cd3b0b8681a4f4885e658632dce"></a>
@@ -2013,14 +2048,14 @@ Friends</h2></td></tr>
2013
2048
  </table>
2014
2049
  </div><div class="memdoc">
2015
2050
 
2016
- <p class="definition">Definition at line <a class="el" href="Z3Expr_8h_source.html#l00218">218</a> of file <a class="el" href="Z3Expr_8h_source.html">Z3Expr.h</a>.</p>
2017
- <div class="fragment"><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; {</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1Z3Expr.html#a7b6e7cd3b0b8681a4f4885e658632dce">shl</a>(lhs.getExpr(), rhs.getExpr());</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; }</div><div class="ttc" id="classSVF_1_1Z3Expr_html_a7b6e7cd3b0b8681a4f4885e658632dce"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#a7b6e7cd3b0b8681a4f4885e658632dce">SVF::Z3Expr::shl</a></div><div class="ttdeci">friend Z3Expr shl(const Z3Expr &amp;lhs, const Z3Expr &amp;rhs)</div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00218">Z3Expr.h:218</a></div></div>
2051
+ <p class="definition">Definition at line <a class="el" href="Z3Expr_8h_source.html#l00221">221</a> of file <a class="el" href="Z3Expr_8h_source.html">Z3Expr.h</a>.</p>
2052
+ <div class="fragment"><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; {</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1Z3Expr.html#a7b6e7cd3b0b8681a4f4885e658632dce">shl</a>(lhs.getExpr(), rhs.getExpr());</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; }</div><div class="ttc" id="classSVF_1_1Z3Expr_html_a7b6e7cd3b0b8681a4f4885e658632dce"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#a7b6e7cd3b0b8681a4f4885e658632dce">SVF::Z3Expr::shl</a></div><div class="ttdeci">friend Z3Expr shl(const Z3Expr &amp;lhs, const Z3Expr &amp;rhs)</div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00221">Z3Expr.h:221</a></div></div>
2018
2053
  </div><!-- fragment -->
2019
2054
  </div>
2020
2055
  </div>
2021
2056
  <h2 class="groupheader">Member Data Documentation</h2>
2022
- <a id="a7dce19d65c7a0b50d21127a07aa51bf8"></a>
2023
- <h2 class="memtitle"><span class="permalink"><a href="#a7dce19d65c7a0b50d21127a07aa51bf8">&#9670;&nbsp;</a></span>ctx</h2>
2057
+ <a id="af02935097a8db09812781ac8c42d93e5"></a>
2058
+ <h2 class="memtitle"><span class="permalink"><a href="#af02935097a8db09812781ac8c42d93e5">&#9670;&nbsp;</a></span>ctx</h2>
2024
2059
 
2025
2060
  <div class="memitem">
2026
2061
  <div class="memproto">
@@ -2029,7 +2064,7 @@ Friends</h2></td></tr>
2029
2064
  <td class="mlabels-left">
2030
2065
  <table class="memname">
2031
2066
  <tr>
2032
- <td class="memname">z3::context * Z3Expr::ctx = nullptr</td>
2067
+ <td class="memname">z3::context * SVF::Z3Expr::ctx = nullptr</td>
2033
2068
  </tr>
2034
2069
  </table>
2035
2070
  </td>
@@ -2067,8 +2102,8 @@ Friends</h2></td></tr>
2067
2102
 
2068
2103
  </div>
2069
2104
  </div>
2070
- <a id="a0c43c8779505361eaeb0c8bcba9686b0"></a>
2071
- <h2 class="memtitle"><span class="permalink"><a href="#a0c43c8779505361eaeb0c8bcba9686b0">&#9670;&nbsp;</a></span>solver</h2>
2105
+ <a id="a2f0cf6549d9bc6fc1d4be46976ad0f0e"></a>
2106
+ <h2 class="memtitle"><span class="permalink"><a href="#a2f0cf6549d9bc6fc1d4be46976ad0f0e">&#9670;&nbsp;</a></span>solver</h2>
2072
2107
 
2073
2108
  <div class="memitem">
2074
2109
  <div class="memproto">
@@ -2077,7 +2112,7 @@ Friends</h2></td></tr>
2077
2112
  <td class="mlabels-left">
2078
2113
  <table class="memname">
2079
2114
  <tr>
2080
- <td class="memname">unique_ptr&lt; z3::solver &gt; SaberCondAllocator::Condition::solver = nullptr</td>
2115
+ <td class="memname">z3::solver * SVF::Z3Expr::solver = nullptr</td>
2081
2116
  </tr>
2082
2117
  </table>
2083
2118
  </td>
@@ -2093,8 +2128,6 @@ Friends</h2></td></tr>
2093
2128
  </div>
2094
2129
  <hr/>The documentation for this class was generated from the following files:<ul>
2095
2130
  <li>/home/runner/work/SVF/SVF/include/Util/<a class="el" href="Z3Expr_8h_source.html">Z3Expr.h</a></li>
2096
- <li>/home/runner/work/SVF/SVF/lib/SABER/<a class="el" href="SaberCondAllocator_8cpp_source.html">SaberCondAllocator.cpp</a></li>
2097
- <li>/home/runner/work/SVF/SVF/lib/Util/<a class="el" href="ExeState_8cpp_source.html">ExeState.cpp</a></li>
2098
2131
  <li>/home/runner/work/SVF/SVF/lib/Util/<a class="el" href="Z3Expr_8cpp_source.html">Z3Expr.cpp</a></li>
2099
2132
  </ul>
2100
2133
  </div><!-- contents -->