svf-tools 1.0.905 → 1.0.906

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 (394) hide show
  1. package/SVF-doxygen/html/AbstractInterpretation_8cpp.html +217 -0
  2. package/SVF-doxygen/html/AbstractInterpretation_8cpp_source.html +2094 -0
  3. package/SVF-doxygen/html/AbstractInterpretation_8h.html +115 -0
  4. package/SVF-doxygen/html/AbstractInterpretation_8h_source.html +460 -0
  5. package/SVF-doxygen/html/AbstractState_8cpp.html +84 -0
  6. package/SVF-doxygen/html/AbstractState_8cpp_source.html +461 -0
  7. package/SVF-doxygen/html/AbstractState_8h.html +106 -0
  8. package/SVF-doxygen/html/AbstractState_8h_source.html +893 -0
  9. package/SVF-doxygen/html/AbstractValue_8h.html +3 -3
  10. package/SVF-doxygen/html/AbstractValue_8h_source.html +652 -62
  11. package/SVF-doxygen/html/AddressValue_8h.html +4 -4
  12. package/SVF-doxygen/html/AddressValue_8h_source.html +180 -177
  13. package/SVF-doxygen/html/BufOverflowChecker_8cpp_source.html +784 -778
  14. package/SVF-doxygen/html/BufOverflowChecker_8h.html +1 -1
  15. package/SVF-doxygen/html/BufOverflowChecker_8h_source.html +19 -19
  16. package/SVF-doxygen/html/CSC_8h_source.html +1 -1
  17. package/SVF-doxygen/html/ConsExeState_8cpp_source.html +1 -1
  18. package/SVF-doxygen/html/ConsExeState_8h_source.html +2 -2
  19. package/SVF-doxygen/html/ExeState_8cpp.html +1 -1
  20. package/SVF-doxygen/html/ExeState_8cpp_source.html +2 -2
  21. package/SVF-doxygen/html/ExeState_8h_source.html +8 -8
  22. package/SVF-doxygen/html/IntervalValue_8h.html +1 -2
  23. package/SVF-doxygen/html/IntervalValue_8h_source.html +937 -956
  24. package/SVF-doxygen/html/LLVMModule_8cpp_source.html +1 -1
  25. package/SVF-doxygen/html/MSSAMuChi_8h_source.html +1 -1
  26. package/SVF-doxygen/html/MemRegion_8cpp_source.html +1 -1
  27. package/SVF-doxygen/html/ObjTypeInference_8cpp_source.html +1 -1
  28. package/SVF-doxygen/html/PointsTo_8cpp_source.html +3 -3
  29. package/SVF-doxygen/html/PointsTo_8h_source.html +3 -3
  30. package/SVF-doxygen/html/RelExeState_8h_source.html +4 -4
  31. package/SVF-doxygen/html/RelationSolver_8cpp_source.html +68 -69
  32. package/SVF-doxygen/html/RelationSolver_8h.html +1 -1
  33. package/SVF-doxygen/html/RelationSolver_8h_source.html +17 -17
  34. package/SVF-doxygen/html/SVFIR2ConsExeState_8cpp_source.html +9 -8
  35. package/SVF-doxygen/html/SVFIR2ItvExeState_8cpp_source.html +920 -952
  36. package/SVF-doxygen/html/SVFIR2ItvExeState_8h.html +2 -3
  37. package/SVF-doxygen/html/SVFIR2ItvExeState_8h_source.html +202 -207
  38. package/SVF-doxygen/html/SVFIR2Relation_8cpp_source.html +62 -58
  39. package/SVF-doxygen/html/SVFType_8cpp_source.html +1 -1
  40. package/SVF-doxygen/html/SVFType_8h_source.html +1 -1
  41. package/SVF-doxygen/html/SVFValue_8h_source.html +1 -1
  42. package/SVF-doxygen/html/SparseBitVector_8h_source.html +3 -3
  43. package/SVF-doxygen/html/WorkList_8h_source.html +1 -1
  44. package/SVF-doxygen/html/ae_8cpp.html +57 -57
  45. package/SVF-doxygen/html/ae_8cpp_source.html +465 -469
  46. package/SVF-doxygen/html/annotated.html +349 -349
  47. package/SVF-doxygen/html/classSVF_1_1AEStat-members.html +2 -2
  48. package/SVF-doxygen/html/classSVF_1_1AEStat.html +184 -190
  49. package/SVF-doxygen/html/classSVF_1_1AbstractInterpretation-members.html +161 -0
  50. package/SVF-doxygen/html/classSVF_1_1AbstractInterpretation.html +4326 -0
  51. package/SVF-doxygen/html/classSVF_1_1AbstractInterpretation.png +0 -0
  52. package/SVF-doxygen/html/classSVF_1_1AbstractState-members.html +134 -0
  53. package/SVF-doxygen/html/classSVF_1_1AbstractState.html +2166 -0
  54. package/SVF-doxygen/html/classSVF_1_1AbstractState.png +0 -0
  55. package/SVF-doxygen/html/classSVF_1_1AddressValue-members.html +15 -28
  56. package/SVF-doxygen/html/classSVF_1_1AddressValue.html +171 -230
  57. package/SVF-doxygen/html/classSVF_1_1BufOverflowChecker-members.html +73 -73
  58. package/SVF-doxygen/html/classSVF_1_1BufOverflowChecker.html +578 -574
  59. package/SVF-doxygen/html/classSVF_1_1BufOverflowChecker.png +0 -0
  60. package/SVF-doxygen/html/classSVF_1_1ConsExeState.html +1 -1
  61. package/SVF-doxygen/html/classSVF_1_1ExeState.html +12 -14
  62. package/SVF-doxygen/html/classSVF_1_1ExeState.png +0 -0
  63. package/SVF-doxygen/html/classSVF_1_1FILOWorkList.html +3 -3
  64. package/SVF-doxygen/html/classSVF_1_1IntervalValue-members.html +50 -64
  65. package/SVF-doxygen/html/classSVF_1_1IntervalValue.html +397 -507
  66. package/SVF-doxygen/html/classSVF_1_1LLVMModuleSet.html +1 -1
  67. package/SVF-doxygen/html/classSVF_1_1ObjTypeInference.html +1 -1
  68. package/SVF-doxygen/html/classSVF_1_1RelExeState.html +3 -3
  69. package/SVF-doxygen/html/classSVF_1_1RelationSolver-members.html +8 -8
  70. package/SVF-doxygen/html/classSVF_1_1RelationSolver.html +107 -108
  71. package/SVF-doxygen/html/classSVF_1_1SVFIR2ConsExeState.html +5 -5
  72. package/SVF-doxygen/html/classSVF_1_1SVFIR2ItvExeState-members.html +56 -57
  73. package/SVF-doxygen/html/classSVF_1_1SVFIR2ItvExeState.html +1128 -1178
  74. package/SVF-doxygen/html/classSVF_1_1SparseAbstractState-members.html +157 -0
  75. package/SVF-doxygen/html/classSVF_1_1SparseAbstractState.html +1512 -0
  76. package/SVF-doxygen/html/classSVF_1_1SparseAbstractState.png +0 -0
  77. package/SVF-doxygen/html/classSymblicAbstractionTest-members.html +3 -3
  78. package/SVF-doxygen/html/classSymblicAbstractionTest.html +401 -405
  79. package/SVF-doxygen/html/classes.html +292 -292
  80. package/SVF-doxygen/html/dir_2c6fb801affc4b3efe6e1ed5974683f6.html +2 -2
  81. package/SVF-doxygen/html/dir_81caa96ab1d3de93b353e2bbe80e6067.html +1 -1
  82. package/SVF-doxygen/html/dir_9a8e7a56f4029a0d9f62b1c6d1f6e85b.html +2 -2
  83. package/SVF-doxygen/html/dir_fbec400583b4bd6c5f2e89c86c5943a6.html +1 -1
  84. package/SVF-doxygen/html/fastcluster__dm_8cpp_8inc_source.html +1 -1
  85. package/SVF-doxygen/html/files.html +13 -13
  86. package/SVF-doxygen/html/functions.html +31 -32
  87. package/SVF-doxygen/html/functions_a.html +29 -27
  88. package/SVF-doxygen/html/functions_b.html +6 -6
  89. package/SVF-doxygen/html/functions_c.html +36 -42
  90. package/SVF-doxygen/html/functions_d.html +7 -4
  91. package/SVF-doxygen/html/functions_e.html +10 -9
  92. package/SVF-doxygen/html/functions_enum.html +4 -4
  93. package/SVF-doxygen/html/functions_eval.html +2 -2
  94. package/SVF-doxygen/html/functions_eval_c.html +0 -3
  95. package/SVF-doxygen/html/functions_eval_i.html +4 -2
  96. package/SVF-doxygen/html/functions_eval_m.html +2 -2
  97. package/SVF-doxygen/html/functions_eval_s.html +2 -2
  98. package/SVF-doxygen/html/functions_eval_u.html +4 -1
  99. package/SVF-doxygen/html/functions_f.html +3 -3
  100. package/SVF-doxygen/html/functions_func.html +23 -20
  101. package/SVF-doxygen/html/functions_func_b.html +6 -6
  102. package/SVF-doxygen/html/functions_func_c.html +32 -35
  103. package/SVF-doxygen/html/functions_func_d.html +1 -1
  104. package/SVF-doxygen/html/functions_func_e.html +9 -8
  105. package/SVF-doxygen/html/functions_func_g.html +59 -61
  106. package/SVF-doxygen/html/functions_func_h.html +20 -20
  107. package/SVF-doxygen/html/functions_func_i.html +64 -51
  108. package/SVF-doxygen/html/functions_func_j.html +5 -4
  109. package/SVF-doxygen/html/functions_func_l.html +10 -10
  110. package/SVF-doxygen/html/functions_func_m.html +7 -6
  111. package/SVF-doxygen/html/functions_func_n.html +9 -8
  112. package/SVF-doxygen/html/functions_func_o.html +59 -33
  113. package/SVF-doxygen/html/functions_func_p.html +5 -5
  114. package/SVF-doxygen/html/functions_func_r.html +4 -4
  115. package/SVF-doxygen/html/functions_func_s.html +41 -33
  116. package/SVF-doxygen/html/functions_func_t.html +6 -4
  117. package/SVF-doxygen/html/functions_func_u.html +6 -5
  118. package/SVF-doxygen/html/functions_func_w.html +9 -8
  119. package/SVF-doxygen/html/functions_func_~.html +10 -10
  120. package/SVF-doxygen/html/functions_g.html +58 -60
  121. package/SVF-doxygen/html/functions_h.html +20 -20
  122. package/SVF-doxygen/html/functions_i.html +69 -51
  123. package/SVF-doxygen/html/functions_j.html +5 -4
  124. package/SVF-doxygen/html/functions_l.html +19 -19
  125. package/SVF-doxygen/html/functions_m.html +9 -8
  126. package/SVF-doxygen/html/functions_n.html +12 -11
  127. package/SVF-doxygen/html/functions_o.html +70 -58
  128. package/SVF-doxygen/html/functions_p.html +16 -16
  129. package/SVF-doxygen/html/functions_r.html +10 -14
  130. package/SVF-doxygen/html/functions_rela.html +2 -2
  131. package/SVF-doxygen/html/functions_rela_r.html +2 -2
  132. package/SVF-doxygen/html/functions_rela_s.html +3 -3
  133. package/SVF-doxygen/html/functions_s.html +44 -38
  134. package/SVF-doxygen/html/functions_t.html +12 -9
  135. package/SVF-doxygen/html/functions_type.html +0 -1
  136. package/SVF-doxygen/html/functions_type_c.html +1 -1
  137. package/SVF-doxygen/html/functions_type_l.html +3 -1
  138. package/SVF-doxygen/html/functions_type_v.html +3 -1
  139. package/SVF-doxygen/html/functions_u.html +8 -4
  140. package/SVF-doxygen/html/functions_v.html +6 -4
  141. package/SVF-doxygen/html/functions_vars.html +31 -32
  142. package/SVF-doxygen/html/functions_vars_a.html +3 -0
  143. package/SVF-doxygen/html/functions_vars_g.html +2 -2
  144. package/SVF-doxygen/html/functions_vars_i.html +3 -0
  145. package/SVF-doxygen/html/functions_vars_t.html +1 -0
  146. package/SVF-doxygen/html/functions_w.html +11 -10
  147. package/SVF-doxygen/html/functions_~.html +10 -10
  148. package/SVF-doxygen/html/globals.html +2 -2
  149. package/SVF-doxygen/html/globals_defs.html +1 -1
  150. package/SVF-doxygen/html/globals_s.html +1 -1
  151. package/SVF-doxygen/html/globals_vars.html +2 -2
  152. package/SVF-doxygen/html/hierarchy.html +639 -639
  153. package/SVF-doxygen/html/namespaceSVF.html +451 -450
  154. package/SVF-doxygen/html/search/all_0.js +29 -29
  155. package/SVF-doxygen/html/search/all_1.js +502 -499
  156. package/SVF-doxygen/html/search/all_10.js +326 -326
  157. package/SVF-doxygen/html/search/all_11.js +227 -227
  158. package/SVF-doxygen/html/search/all_12.js +575 -574
  159. package/SVF-doxygen/html/search/all_13.js +208 -208
  160. package/SVF-doxygen/html/search/all_14.js +74 -73
  161. package/SVF-doxygen/html/search/all_15.js +177 -176
  162. package/SVF-doxygen/html/search/all_16.js +77 -77
  163. package/SVF-doxygen/html/search/all_17.js +1 -1
  164. package/SVF-doxygen/html/search/all_18.js +1 -1
  165. package/SVF-doxygen/html/search/all_19.js +27 -27
  166. package/SVF-doxygen/html/search/all_1a.js +179 -179
  167. package/SVF-doxygen/html/search/all_2.js +182 -182
  168. package/SVF-doxygen/html/search/all_3.js +640 -642
  169. package/SVF-doxygen/html/search/all_4.js +237 -236
  170. package/SVF-doxygen/html/search/all_5.js +126 -126
  171. package/SVF-doxygen/html/search/all_6.js +236 -236
  172. package/SVF-doxygen/html/search/all_7.js +635 -637
  173. package/SVF-doxygen/html/search/all_8.js +24 -24
  174. package/SVF-doxygen/html/search/all_9.js +356 -354
  175. package/SVF-doxygen/html/search/all_a.js +46 -46
  176. package/SVF-doxygen/html/search/all_b.js +26 -26
  177. package/SVF-doxygen/html/search/all_c.js +116 -115
  178. package/SVF-doxygen/html/search/all_d.js +205 -205
  179. package/SVF-doxygen/html/search/all_e.js +209 -209
  180. package/SVF-doxygen/html/search/all_f.js +122 -122
  181. package/SVF-doxygen/html/search/classes_0.js +29 -28
  182. package/SVF-doxygen/html/search/classes_1.js +11 -11
  183. package/SVF-doxygen/html/search/classes_10.js +75 -74
  184. package/SVF-doxygen/html/search/classes_11.js +14 -14
  185. package/SVF-doxygen/html/search/classes_12.js +2 -2
  186. package/SVF-doxygen/html/search/classes_13.js +10 -10
  187. package/SVF-doxygen/html/search/classes_14.js +19 -19
  188. package/SVF-doxygen/html/search/classes_15.js +1 -1
  189. package/SVF-doxygen/html/search/classes_2.js +73 -73
  190. package/SVF-doxygen/html/search/classes_3.js +35 -35
  191. package/SVF-doxygen/html/search/classes_4.js +8 -8
  192. package/SVF-doxygen/html/search/classes_5.js +28 -28
  193. package/SVF-doxygen/html/search/classes_6.js +98 -98
  194. package/SVF-doxygen/html/search/classes_7.js +38 -38
  195. package/SVF-doxygen/html/search/classes_8.js +57 -59
  196. package/SVF-doxygen/html/search/classes_9.js +1 -1
  197. package/SVF-doxygen/html/search/classes_a.js +12 -12
  198. package/SVF-doxygen/html/search/classes_b.js +29 -29
  199. package/SVF-doxygen/html/search/classes_c.js +6 -6
  200. package/SVF-doxygen/html/search/classes_d.js +19 -19
  201. package/SVF-doxygen/html/search/classes_e.js +36 -36
  202. package/SVF-doxygen/html/search/classes_f.js +25 -25
  203. package/SVF-doxygen/html/search/defines_0.js +3 -3
  204. package/SVF-doxygen/html/search/defines_1.js +3 -3
  205. package/SVF-doxygen/html/search/defines_10.js +2 -2
  206. package/SVF-doxygen/html/search/defines_2.js +30 -30
  207. package/SVF-doxygen/html/search/defines_3.js +20 -20
  208. package/SVF-doxygen/html/search/defines_4.js +3 -3
  209. package/SVF-doxygen/html/search/defines_5.js +4 -4
  210. package/SVF-doxygen/html/search/defines_6.js +2 -2
  211. package/SVF-doxygen/html/search/defines_7.js +5 -5
  212. package/SVF-doxygen/html/search/defines_8.js +11 -11
  213. package/SVF-doxygen/html/search/defines_9.js +9 -9
  214. package/SVF-doxygen/html/search/defines_a.js +2 -2
  215. package/SVF-doxygen/html/search/defines_b.js +1 -1
  216. package/SVF-doxygen/html/search/defines_c.js +4 -4
  217. package/SVF-doxygen/html/search/defines_d.js +2 -2
  218. package/SVF-doxygen/html/search/defines_e.js +8 -8
  219. package/SVF-doxygen/html/search/defines_f.js +4 -4
  220. package/SVF-doxygen/html/search/enums_0.js +3 -4
  221. package/SVF-doxygen/html/search/enums_1.js +2 -2
  222. package/SVF-doxygen/html/search/enums_10.js +1 -1
  223. package/SVF-doxygen/html/search/enums_11.js +1 -1
  224. package/SVF-doxygen/html/search/enums_2.js +9 -9
  225. package/SVF-doxygen/html/search/enums_3.js +2 -1
  226. package/SVF-doxygen/html/search/enums_4.js +4 -4
  227. package/SVF-doxygen/html/search/enums_5.js +1 -1
  228. package/SVF-doxygen/html/search/enums_6.js +2 -2
  229. package/SVF-doxygen/html/search/enums_7.js +2 -2
  230. package/SVF-doxygen/html/search/enums_8.js +4 -4
  231. package/SVF-doxygen/html/search/enums_9.js +1 -1
  232. package/SVF-doxygen/html/search/enums_a.js +1 -1
  233. package/SVF-doxygen/html/search/enums_b.js +7 -7
  234. package/SVF-doxygen/html/search/enums_c.js +1 -1
  235. package/SVF-doxygen/html/search/enums_d.js +4 -4
  236. package/SVF-doxygen/html/search/enums_e.js +2 -2
  237. package/SVF-doxygen/html/search/enums_f.js +4 -4
  238. package/SVF-doxygen/html/search/enumvalues_0.js +15 -15
  239. package/SVF-doxygen/html/search/enumvalues_1.js +16 -16
  240. package/SVF-doxygen/html/search/enumvalues_10.js +36 -36
  241. package/SVF-doxygen/html/search/enumvalues_11.js +6 -5
  242. package/SVF-doxygen/html/search/enumvalues_12.js +10 -10
  243. package/SVF-doxygen/html/search/enumvalues_13.js +1 -1
  244. package/SVF-doxygen/html/search/enumvalues_14.js +1 -1
  245. package/SVF-doxygen/html/search/enumvalues_15.js +4 -4
  246. package/SVF-doxygen/html/search/enumvalues_2.js +36 -37
  247. package/SVF-doxygen/html/search/enumvalues_3.js +13 -13
  248. package/SVF-doxygen/html/search/enumvalues_4.js +2 -2
  249. package/SVF-doxygen/html/search/enumvalues_5.js +50 -50
  250. package/SVF-doxygen/html/search/enumvalues_6.js +6 -6
  251. package/SVF-doxygen/html/search/enumvalues_7.js +8 -8
  252. package/SVF-doxygen/html/search/enumvalues_8.js +25 -24
  253. package/SVF-doxygen/html/search/enumvalues_9.js +6 -6
  254. package/SVF-doxygen/html/search/enumvalues_a.js +17 -17
  255. package/SVF-doxygen/html/search/enumvalues_b.js +11 -11
  256. package/SVF-doxygen/html/search/enumvalues_c.js +5 -5
  257. package/SVF-doxygen/html/search/enumvalues_d.js +19 -19
  258. package/SVF-doxygen/html/search/enumvalues_e.js +9 -9
  259. package/SVF-doxygen/html/search/enumvalues_f.js +49 -49
  260. package/SVF-doxygen/html/search/files_0.js +18 -16
  261. package/SVF-doxygen/html/search/files_1.js +9 -9
  262. package/SVF-doxygen/html/search/files_10.js +8 -8
  263. package/SVF-doxygen/html/search/files_11.js +8 -8
  264. package/SVF-doxygen/html/search/files_12.js +2 -2
  265. package/SVF-doxygen/html/search/files_2.js +53 -53
  266. package/SVF-doxygen/html/search/files_3.js +14 -14
  267. package/SVF-doxygen/html/search/files_4.js +5 -5
  268. package/SVF-doxygen/html/search/files_5.js +13 -13
  269. package/SVF-doxygen/html/search/files_6.js +10 -10
  270. package/SVF-doxygen/html/search/files_7.js +15 -17
  271. package/SVF-doxygen/html/search/files_8.js +13 -13
  272. package/SVF-doxygen/html/search/files_9.js +18 -18
  273. package/SVF-doxygen/html/search/files_a.js +3 -3
  274. package/SVF-doxygen/html/search/files_b.js +4 -4
  275. package/SVF-doxygen/html/search/files_c.js +20 -20
  276. package/SVF-doxygen/html/search/files_d.js +4 -4
  277. package/SVF-doxygen/html/search/files_e.js +62 -62
  278. package/SVF-doxygen/html/search/files_f.js +8 -8
  279. package/SVF-doxygen/html/search/functions_0.js +13 -13
  280. package/SVF-doxygen/html/search/functions_1.js +369 -368
  281. package/SVF-doxygen/html/search/functions_10.js +140 -140
  282. package/SVF-doxygen/html/search/functions_11.js +140 -140
  283. package/SVF-doxygen/html/search/functions_12.js +300 -299
  284. package/SVF-doxygen/html/search/functions_13.js +73 -73
  285. package/SVF-doxygen/html/search/functions_14.js +41 -41
  286. package/SVF-doxygen/html/search/functions_15.js +72 -72
  287. package/SVF-doxygen/html/search/functions_16.js +38 -38
  288. package/SVF-doxygen/html/search/functions_17.js +3 -3
  289. package/SVF-doxygen/html/search/functions_18.js +179 -179
  290. package/SVF-doxygen/html/search/functions_2.js +94 -94
  291. package/SVF-doxygen/html/search/functions_3.js +260 -261
  292. package/SVF-doxygen/html/search/functions_4.js +85 -85
  293. package/SVF-doxygen/html/search/functions_5.js +57 -57
  294. package/SVF-doxygen/html/search/functions_6.js +65 -65
  295. package/SVF-doxygen/html/search/functions_7.js +870 -872
  296. package/SVF-doxygen/html/search/functions_8.js +162 -162
  297. package/SVF-doxygen/html/search/functions_9.js +448 -446
  298. package/SVF-doxygen/html/search/functions_a.js +30 -30
  299. package/SVF-doxygen/html/search/functions_b.js +2 -2
  300. package/SVF-doxygen/html/search/functions_c.js +25 -25
  301. package/SVF-doxygen/html/search/functions_d.js +82 -82
  302. package/SVF-doxygen/html/search/functions_e.js +36 -36
  303. package/SVF-doxygen/html/search/functions_f.js +58 -58
  304. package/SVF-doxygen/html/search/namespaces_0.js +1 -1
  305. package/SVF-doxygen/html/search/namespaces_1.js +7 -7
  306. package/SVF-doxygen/html/search/related_0.js +4 -4
  307. package/SVF-doxygen/html/search/related_1.js +2 -2
  308. package/SVF-doxygen/html/search/related_2.js +2 -2
  309. package/SVF-doxygen/html/search/related_3.js +2 -2
  310. package/SVF-doxygen/html/search/related_4.js +2 -2
  311. package/SVF-doxygen/html/search/related_5.js +1 -1
  312. package/SVF-doxygen/html/search/related_6.js +2 -2
  313. package/SVF-doxygen/html/search/related_7.js +5 -5
  314. package/SVF-doxygen/html/search/related_8.js +2 -2
  315. package/SVF-doxygen/html/search/related_9.js +4 -4
  316. package/SVF-doxygen/html/search/related_a.js +19 -19
  317. package/SVF-doxygen/html/search/related_b.js +4 -4
  318. package/SVF-doxygen/html/search/related_c.js +2 -2
  319. package/SVF-doxygen/html/search/related_d.js +12 -12
  320. package/SVF-doxygen/html/search/related_e.js +2 -2
  321. package/SVF-doxygen/html/search/related_f.js +2 -2
  322. package/SVF-doxygen/html/search/typedefs_0.js +19 -19
  323. package/SVF-doxygen/html/search/typedefs_1.js +27 -27
  324. package/SVF-doxygen/html/search/typedefs_10.js +65 -65
  325. package/SVF-doxygen/html/search/typedefs_11.js +13 -13
  326. package/SVF-doxygen/html/search/typedefs_12.js +13 -13
  327. package/SVF-doxygen/html/search/typedefs_13.js +41 -40
  328. package/SVF-doxygen/html/search/typedefs_14.js +11 -11
  329. package/SVF-doxygen/html/search/typedefs_2.js +125 -125
  330. package/SVF-doxygen/html/search/typedefs_3.js +39 -39
  331. package/SVF-doxygen/html/search/typedefs_4.js +17 -17
  332. package/SVF-doxygen/html/search/typedefs_5.js +42 -42
  333. package/SVF-doxygen/html/search/typedefs_6.js +54 -54
  334. package/SVF-doxygen/html/search/typedefs_7.js +47 -47
  335. package/SVF-doxygen/html/search/typedefs_8.js +1 -1
  336. package/SVF-doxygen/html/search/typedefs_9.js +6 -6
  337. package/SVF-doxygen/html/search/typedefs_a.js +30 -29
  338. package/SVF-doxygen/html/search/typedefs_b.js +29 -29
  339. package/SVF-doxygen/html/search/typedefs_c.js +41 -41
  340. package/SVF-doxygen/html/search/typedefs_d.js +15 -15
  341. package/SVF-doxygen/html/search/typedefs_e.js +52 -52
  342. package/SVF-doxygen/html/search/typedefs_f.js +14 -14
  343. package/SVF-doxygen/html/search/variables_0.js +177 -177
  344. package/SVF-doxygen/html/search/variables_1.js +78 -77
  345. package/SVF-doxygen/html/search/variables_10.js +98 -98
  346. package/SVF-doxygen/html/search/variables_11.js +47 -47
  347. package/SVF-doxygen/html/search/variables_12.js +93 -93
  348. package/SVF-doxygen/html/search/variables_13.js +76 -76
  349. package/SVF-doxygen/html/search/variables_14.js +14 -14
  350. package/SVF-doxygen/html/search/variables_15.js +49 -49
  351. package/SVF-doxygen/html/search/variables_16.js +11 -11
  352. package/SVF-doxygen/html/search/variables_17.js +1 -1
  353. package/SVF-doxygen/html/search/variables_18.js +17 -17
  354. package/SVF-doxygen/html/search/variables_2.js +40 -40
  355. package/SVF-doxygen/html/search/variables_3.js +143 -143
  356. package/SVF-doxygen/html/search/variables_4.js +51 -51
  357. package/SVF-doxygen/html/search/variables_5.js +39 -39
  358. package/SVF-doxygen/html/search/variables_6.js +66 -66
  359. package/SVF-doxygen/html/search/variables_7.js +34 -34
  360. package/SVF-doxygen/html/search/variables_8.js +8 -8
  361. package/SVF-doxygen/html/search/variables_9.js +80 -79
  362. package/SVF-doxygen/html/search/variables_a.js +4 -4
  363. package/SVF-doxygen/html/search/variables_b.js +10 -10
  364. package/SVF-doxygen/html/search/variables_c.js +44 -44
  365. package/SVF-doxygen/html/search/variables_d.js +58 -58
  366. package/SVF-doxygen/html/search/variables_e.js +123 -123
  367. package/SVF-doxygen/html/search/variables_f.js +31 -31
  368. package/SVF-doxygen/html/structSVF_1_1AbstractValue-members.html +164 -0
  369. package/SVF-doxygen/html/structSVF_1_1AbstractValue.html +2820 -0
  370. package/SVF-doxygen/html/structstd_1_1hash_3_01SVF_1_1SparseAbstractState_01_4-members.html +84 -0
  371. package/SVF-doxygen/html/structstd_1_1hash_3_01SVF_1_1SparseAbstractState_01_4.html +130 -0
  372. package/SVF-doxygen/html/svf-ex_8cpp.html +11 -11
  373. package/SVF-doxygen/html/svf-ex_8cpp_source.html +11 -11
  374. package/package.json +1 -1
  375. package/svf/include/AE/Core/AbstractState.h +750 -0
  376. package/svf/include/AE/Core/AbstractValue.h +514 -39
  377. package/svf/include/AE/Core/AddressValue.h +32 -25
  378. package/svf/include/AE/Core/ExeState.h +2 -2
  379. package/svf/include/AE/Core/IntervalValue.h +9 -24
  380. package/svf/include/AE/Core/RelationSolver.h +9 -9
  381. package/svf/include/AE/Svfexe/{AbstractExecution.h → AbstractInterpretation.h} +24 -22
  382. package/svf/include/AE/Svfexe/BufOverflowChecker.h +5 -5
  383. package/svf/include/AE/Svfexe/SVFIR2ItvExeState.h +23 -25
  384. package/svf/lib/AE/Core/AbstractState.cpp +357 -0
  385. package/svf/lib/AE/Core/ExeState.cpp +1 -1
  386. package/svf/lib/AE/Core/RelationSolver.cpp +31 -31
  387. package/svf/lib/AE/Core/SVFIR2Relation.cpp +6 -5
  388. package/svf/lib/AE/Svfexe/{AbstractExecution.cpp → AbstractInterpretation.cpp} +162 -152
  389. package/svf/lib/AE/Svfexe/BufOverflowChecker.cpp +51 -47
  390. package/svf/lib/AE/Svfexe/SVFIR2ConsExeState.cpp +2 -2
  391. package/svf/lib/AE/Svfexe/SVFIR2ItvExeState.cpp +194 -230
  392. package/svf-llvm/tools/AE/ae.cpp +105 -108
  393. package/svf/include/AE/Core/IntervalExeState.h +0 -650
  394. package/svf/lib/AE/Core/IntervalExeState.cpp +0 -329
@@ -79,30 +79,30 @@ $(function() {
79
79
  Public Member Functions</h2></td></tr>
80
80
  <tr class="memitem:aaee624b8260da9ba0de027d80b01d984"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1RelationSolver.html#aaee624b8260da9ba0de027d80b01d984">RelationSolver</a> ()=default</td></tr>
81
81
  <tr class="separator:aaee624b8260da9ba0de027d80b01d984"><td class="memSeparator" colspan="2">&#160;</td></tr>
82
- <tr class="memitem:af860063ccaeca043bac84eb9eb2cf80a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1RelationSolver.html#af860063ccaeca043bac84eb9eb2cf80a">gamma_hat</a> (const <a class="el" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> &amp;exeState) const</td></tr>
83
- <tr class="memdesc:af860063ccaeca043bac84eb9eb2cf80a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return <a class="el" href="classSVF_1_1Z3Expr.html">Z3Expr</a> according to valToValMap. <a href="classSVF_1_1RelationSolver.html#af860063ccaeca043bac84eb9eb2cf80a">More...</a><br /></td></tr>
84
- <tr class="separator:af860063ccaeca043bac84eb9eb2cf80a"><td class="memSeparator" colspan="2">&#160;</td></tr>
85
- <tr class="memitem:a93a034bb18001abc278d6986706024af"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1RelationSolver.html#a93a034bb18001abc278d6986706024af">gamma_hat</a> (const <a class="el" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> &amp;alpha, const <a class="el" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> &amp;exeState) const</td></tr>
86
- <tr class="memdesc:a93a034bb18001abc278d6986706024af"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return <a class="el" href="classSVF_1_1Z3Expr.html">Z3Expr</a> according to another valToValMap. <a href="classSVF_1_1RelationSolver.html#a93a034bb18001abc278d6986706024af">More...</a><br /></td></tr>
87
- <tr class="separator:a93a034bb18001abc278d6986706024af"><td class="memSeparator" colspan="2">&#160;</td></tr>
88
- <tr class="memitem:aff6752947e73cd0559b5a340547c9016"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1RelationSolver.html#aff6752947e73cd0559b5a340547c9016">gamma_hat</a> (<a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> id, const <a class="el" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> &amp;exeState) const</td></tr>
89
- <tr class="memdesc:aff6752947e73cd0559b5a340547c9016"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return <a class="el" href="classSVF_1_1Z3Expr.html">Z3Expr</a> from a NodeID. <a href="classSVF_1_1RelationSolver.html#aff6752947e73cd0559b5a340547c9016">More...</a><br /></td></tr>
90
- <tr class="separator:aff6752947e73cd0559b5a340547c9016"><td class="memSeparator" colspan="2">&#160;</td></tr>
91
- <tr class="memitem:a012d18ece2c66ba6e784ae9578171369"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1RelationSolver.html#a012d18ece2c66ba6e784ae9578171369">abstract_consequence</a> (const <a class="el" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> &amp;lower, const <a class="el" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> &amp;upper, const <a class="el" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> &amp;domain) const</td></tr>
92
- <tr class="separator:a012d18ece2c66ba6e784ae9578171369"><td class="memSeparator" colspan="2">&#160;</td></tr>
93
- <tr class="memitem:ac4abc5e1eb3b638710572c958162c22c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1RelationSolver.html#ac4abc5e1eb3b638710572c958162c22c">beta</a> (const <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>&lt; <a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>, <a class="el" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> &gt; &amp;sigma, const <a class="el" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> &amp;exeState) const</td></tr>
94
- <tr class="separator:ac4abc5e1eb3b638710572c958162c22c"><td class="memSeparator" colspan="2">&#160;</td></tr>
82
+ <tr class="memitem:a04f145c44a67ebda99ccc5a3081239ff"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1RelationSolver.html#a04f145c44a67ebda99ccc5a3081239ff">gamma_hat</a> (const <a class="el" href="classSVF_1_1AbstractState.html">AbstractState</a> &amp;exeState) const</td></tr>
83
+ <tr class="memdesc:a04f145c44a67ebda99ccc5a3081239ff"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return <a class="el" href="classSVF_1_1Z3Expr.html">Z3Expr</a> according to valToValMap. <a href="classSVF_1_1RelationSolver.html#a04f145c44a67ebda99ccc5a3081239ff">More...</a><br /></td></tr>
84
+ <tr class="separator:a04f145c44a67ebda99ccc5a3081239ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
85
+ <tr class="memitem:a84a60a6b89d86e38887192c56052dbe4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1RelationSolver.html#a84a60a6b89d86e38887192c56052dbe4">gamma_hat</a> (const <a class="el" href="classSVF_1_1AbstractState.html">AbstractState</a> &amp;alpha, const <a class="el" href="classSVF_1_1AbstractState.html">AbstractState</a> &amp;exeState) const</td></tr>
86
+ <tr class="memdesc:a84a60a6b89d86e38887192c56052dbe4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return <a class="el" href="classSVF_1_1Z3Expr.html">Z3Expr</a> according to another valToValMap. <a href="classSVF_1_1RelationSolver.html#a84a60a6b89d86e38887192c56052dbe4">More...</a><br /></td></tr>
87
+ <tr class="separator:a84a60a6b89d86e38887192c56052dbe4"><td class="memSeparator" colspan="2">&#160;</td></tr>
88
+ <tr class="memitem:abd0c8cd1b840799cc4c17c3476da6788"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1RelationSolver.html#abd0c8cd1b840799cc4c17c3476da6788">gamma_hat</a> (<a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> id, const <a class="el" href="classSVF_1_1AbstractState.html">AbstractState</a> &amp;exeState) const</td></tr>
89
+ <tr class="memdesc:abd0c8cd1b840799cc4c17c3476da6788"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return <a class="el" href="classSVF_1_1Z3Expr.html">Z3Expr</a> from a NodeID. <a href="classSVF_1_1RelationSolver.html#abd0c8cd1b840799cc4c17c3476da6788">More...</a><br /></td></tr>
90
+ <tr class="separator:abd0c8cd1b840799cc4c17c3476da6788"><td class="memSeparator" colspan="2">&#160;</td></tr>
91
+ <tr class="memitem:a575995a08ab7d186e03e9632398500ce"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1AbstractState.html">AbstractState</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1RelationSolver.html#a575995a08ab7d186e03e9632398500ce">abstract_consequence</a> (const <a class="el" href="classSVF_1_1AbstractState.html">AbstractState</a> &amp;lower, const <a class="el" href="classSVF_1_1AbstractState.html">AbstractState</a> &amp;upper, const <a class="el" href="classSVF_1_1AbstractState.html">AbstractState</a> &amp;domain) const</td></tr>
92
+ <tr class="separator:a575995a08ab7d186e03e9632398500ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
93
+ <tr class="memitem:a342d3c7d5192449fb10e9c3bab2de24f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1AbstractState.html">AbstractState</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1RelationSolver.html#a342d3c7d5192449fb10e9c3bab2de24f">beta</a> (const <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>&lt; <a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>, <a class="el" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> &gt; &amp;sigma, const <a class="el" href="classSVF_1_1AbstractState.html">AbstractState</a> &amp;exeState) const</td></tr>
94
+ <tr class="separator:a342d3c7d5192449fb10e9c3bab2de24f"><td class="memSeparator" colspan="2">&#160;</td></tr>
95
95
  <tr class="memitem:af621897ab66f6475d5ee043ef2e33623"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1RelationSolver.html#af621897ab66f6475d5ee043ef2e33623">toZ3Expr</a> (<a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> varId) const</td></tr>
96
96
  <tr class="memdesc:af621897ab66f6475d5ee043ef2e33623"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return Z3 expression lazily based on <a class="el" href="classSVF_1_1SVFVar.html">SVFVar</a> ID. <a href="classSVF_1_1RelationSolver.html#af621897ab66f6475d5ee043ef2e33623">More...</a><br /></td></tr>
97
97
  <tr class="separator:af621897ab66f6475d5ee043ef2e33623"><td class="memSeparator" colspan="2">&#160;</td></tr>
98
- <tr class="memitem:a0df88638c5e3f8cd56d34088b96199f1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1RelationSolver.html#a0df88638c5e3f8cd56d34088b96199f1">bilateral</a> (const <a class="el" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> &amp;domain, const <a class="el" href="classSVF_1_1Z3Expr.html">Z3Expr</a> &amp;phi, <a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> descend_check=0)</td></tr>
99
- <tr class="separator:a0df88638c5e3f8cd56d34088b96199f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
100
- <tr class="memitem:a657af041f883e7b1a3f9892453a2c4cf"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1RelationSolver.html#a657af041f883e7b1a3f9892453a2c4cf">RSY</a> (const <a class="el" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> &amp;domain, const <a class="el" href="classSVF_1_1Z3Expr.html">Z3Expr</a> &amp;phi)</td></tr>
101
- <tr class="separator:a657af041f883e7b1a3f9892453a2c4cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
98
+ <tr class="memitem:a23c59e437950b139dde49f11eb45b63a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1AbstractState.html">AbstractState</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1RelationSolver.html#a23c59e437950b139dde49f11eb45b63a">bilateral</a> (const <a class="el" href="classSVF_1_1AbstractState.html">AbstractState</a> &amp;domain, const <a class="el" href="classSVF_1_1Z3Expr.html">Z3Expr</a> &amp;phi, <a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> descend_check=0)</td></tr>
99
+ <tr class="separator:a23c59e437950b139dde49f11eb45b63a"><td class="memSeparator" colspan="2">&#160;</td></tr>
100
+ <tr class="memitem:a0bc76a5f96dab54e1c9678312579d51a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1AbstractState.html">AbstractState</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1RelationSolver.html#a0bc76a5f96dab54e1c9678312579d51a">RSY</a> (const <a class="el" href="classSVF_1_1AbstractState.html">AbstractState</a> &amp;domain, const <a class="el" href="classSVF_1_1Z3Expr.html">Z3Expr</a> &amp;phi)</td></tr>
101
+ <tr class="separator:a0bc76a5f96dab54e1c9678312579d51a"><td class="memSeparator" colspan="2">&#160;</td></tr>
102
102
  <tr class="memitem:aaae7ac9ed7d0e17f39948c37b867ada9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>&lt; <a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>, <a class="el" href="classSVF_1_1NumericLiteral.html">NumericLiteral</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1RelationSolver.html#aaae7ac9ed7d0e17f39948c37b867ada9">BoxedOptSolver</a> (const <a class="el" href="classSVF_1_1Z3Expr.html">Z3Expr</a> &amp;phi, <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>&lt; <a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>, <a class="el" href="classSVF_1_1NumericLiteral.html">NumericLiteral</a> &gt; &amp;ret, <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>&lt; <a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>, <a class="el" href="classSVF_1_1NumericLiteral.html">NumericLiteral</a> &gt; &amp;low_values, <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>&lt; <a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>, <a class="el" href="classSVF_1_1NumericLiteral.html">NumericLiteral</a> &gt; &amp;high_values)</td></tr>
103
103
  <tr class="separator:aaae7ac9ed7d0e17f39948c37b867ada9"><td class="memSeparator" colspan="2">&#160;</td></tr>
104
- <tr class="memitem:a7e827609a1d69c6517f1a3eee0326fc3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1RelationSolver.html#a7e827609a1d69c6517f1a3eee0326fc3">BS</a> (const <a class="el" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> &amp;domain, const <a class="el" href="classSVF_1_1Z3Expr.html">Z3Expr</a> &amp;phi)</td></tr>
105
- <tr class="separator:a7e827609a1d69c6517f1a3eee0326fc3"><td class="memSeparator" colspan="2">&#160;</td></tr>
104
+ <tr class="memitem:a98f7e3ae9f43aea178d77a58ac8e927f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1AbstractState.html">AbstractState</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1RelationSolver.html#a98f7e3ae9f43aea178d77a58ac8e927f">BS</a> (const <a class="el" href="classSVF_1_1AbstractState.html">AbstractState</a> &amp;domain, const <a class="el" href="classSVF_1_1Z3Expr.html">Z3Expr</a> &amp;phi)</td></tr>
105
+ <tr class="separator:a98f7e3ae9f43aea178d77a58ac8e927f"><td class="memSeparator" colspan="2">&#160;</td></tr>
106
106
  <tr class="memitem:af00aee55faf18a994dc5558ca4bf4932"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1RelationSolver.html#af00aee55faf18a994dc5558ca4bf4932">updateMap</a> (<a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>&lt; <a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>, <a class="el" href="classSVF_1_1NumericLiteral.html">NumericLiteral</a> &gt; &amp;map, <a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> key, const <a class="el" href="classSVF_1_1NumericLiteral.html">NumericLiteral</a> &amp;value)</td></tr>
107
107
  <tr class="separator:af00aee55faf18a994dc5558ca4bf4932"><td class="memSeparator" colspan="2">&#160;</td></tr>
108
108
  <tr class="memitem:a7ace50c6e53a79f0e329badb63570f92"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1RelationSolver.html#a7ace50c6e53a79f0e329badb63570f92">decide_cpa_ext</a> (const <a class="el" href="classSVF_1_1Z3Expr.html">Z3Expr</a> &amp;phi, <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>&lt; <a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>, <a class="el" href="classSVF_1_1Z3Expr.html">Z3Expr</a> &gt; &amp;, <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>&lt; <a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>, <a class="el" href="classSVF_1_1NumericLiteral.html">NumericLiteral</a> &gt; &amp;, <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>&lt; <a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>, <a class="el" href="classSVF_1_1NumericLiteral.html">NumericLiteral</a> &gt; &amp;, <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>&lt; <a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>, <a class="el" href="classSVF_1_1NumericLiteral.html">NumericLiteral</a> &gt; &amp;, <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>&lt; <a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>, <a class="el" href="classSVF_1_1NumericLiteral.html">NumericLiteral</a> &gt; &amp;)</td></tr>
@@ -138,28 +138,28 @@ Public Member Functions</h2></td></tr>
138
138
  </div>
139
139
  </div>
140
140
  <h2 class="groupheader">Member Function Documentation</h2>
141
- <a id="a012d18ece2c66ba6e784ae9578171369"></a>
142
- <h2 class="memtitle"><span class="permalink"><a href="#a012d18ece2c66ba6e784ae9578171369">&#9670;&nbsp;</a></span>abstract_consequence()</h2>
141
+ <a id="a575995a08ab7d186e03e9632398500ce"></a>
142
+ <h2 class="memtitle"><span class="permalink"><a href="#a575995a08ab7d186e03e9632398500ce">&#9670;&nbsp;</a></span>abstract_consequence()</h2>
143
143
 
144
144
  <div class="memitem">
145
145
  <div class="memproto">
146
146
  <table class="memname">
147
147
  <tr>
148
- <td class="memname"><a class="el" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> RelationSolver::abstract_consequence </td>
148
+ <td class="memname"><a class="el" href="classSVF_1_1AbstractState.html">AbstractState</a> RelationSolver::abstract_consequence </td>
149
149
  <td>(</td>
150
- <td class="paramtype">const <a class="el" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> &amp;&#160;</td>
150
+ <td class="paramtype">const <a class="el" href="classSVF_1_1AbstractState.html">AbstractState</a> &amp;&#160;</td>
151
151
  <td class="paramname"><em>lower</em>, </td>
152
152
  </tr>
153
153
  <tr>
154
154
  <td class="paramkey"></td>
155
155
  <td></td>
156
- <td class="paramtype">const <a class="el" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> &amp;&#160;</td>
156
+ <td class="paramtype">const <a class="el" href="classSVF_1_1AbstractState.html">AbstractState</a> &amp;&#160;</td>
157
157
  <td class="paramname"><em>upper</em>, </td>
158
158
  </tr>
159
159
  <tr>
160
160
  <td class="paramkey"></td>
161
161
  <td></td>
162
- <td class="paramtype">const <a class="el" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> &amp;&#160;</td>
162
+ <td class="paramtype">const <a class="el" href="classSVF_1_1AbstractState.html">AbstractState</a> &amp;&#160;</td>
163
163
  <td class="paramname"><em>domain</em>&#160;</td>
164
164
  </tr>
165
165
  <tr>
@@ -188,11 +188,11 @@ Public Member Functions</h2></td></tr>
188
188
  <div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;<span class="comment"> of the SMT solver in many cases. In certain cases, other choices for</span></div>
189
189
  <div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;<span class="comment"> the abstract consequence will lead to better algorithm performance.*/</span></div>
190
190
  <div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; </div>
191
- <div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> it = domain.<a class="code" href="classSVF_1_1IntervalESBase.html#a903797577ba99ef57879774a3849bbfe">getVarToVal</a>().begin();</div>
192
- <div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; it != domain.<a class="code" href="classSVF_1_1IntervalESBase.html#a903797577ba99ef57879774a3849bbfe">getVarToVal</a>().end(); ++it)</div>
191
+ <div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> it = domain.<a class="code" href="classSVF_1_1AbstractState.html#a4e4525823fd31c718216c698ed6e0a06">getVarToVal</a>().begin();</div>
192
+ <div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; it != domain.<a class="code" href="classSVF_1_1AbstractState.html#a4e4525823fd31c718216c698ed6e0a06">getVarToVal</a>().end(); ++it)</div>
193
193
  <div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; {</div>
194
- <div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> proposed = domain.<a class="code" href="classSVF_1_1IntervalESBase.html#a33fd0e4a654dd4f5b7762b0088e11674">top</a>(); </div>
195
- <div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; proposed.<a class="code" href="classSVF_1_1IntervalESBase.html#ad2288306aed7301ccd30e55410c7b428">_varToItvVal</a>[it-&gt;first] = lower.<a class="code" href="classSVF_1_1IntervalESBase.html#ad2288306aed7301ccd30e55410c7b428">_varToItvVal</a>.at(it-&gt;first);</div>
194
+ <div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a> proposed = domain.<a class="code" href="classSVF_1_1AbstractState.html#ac34dc4e111967507950bd5afe4a59ea0">top</a>(); </div>
195
+ <div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; proposed[it-&gt;first] = lower[it-&gt;first].getInterval();</div>
196
196
  <div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keywordflow">if</span> (!(proposed &gt;= upper)) </div>
197
197
  <div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; {</div>
198
198
  <div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keywordflow">return</span> proposed; </div>
@@ -203,14 +203,14 @@ Public Member Functions</h2></td></tr>
203
203
  </div><!-- fragment -->
204
204
  </div>
205
205
  </div>
206
- <a id="ac4abc5e1eb3b638710572c958162c22c"></a>
207
- <h2 class="memtitle"><span class="permalink"><a href="#ac4abc5e1eb3b638710572c958162c22c">&#9670;&nbsp;</a></span>beta()</h2>
206
+ <a id="a342d3c7d5192449fb10e9c3bab2de24f"></a>
207
+ <h2 class="memtitle"><span class="permalink"><a href="#a342d3c7d5192449fb10e9c3bab2de24f">&#9670;&nbsp;</a></span>beta()</h2>
208
208
 
209
209
  <div class="memitem">
210
210
  <div class="memproto">
211
211
  <table class="memname">
212
212
  <tr>
213
- <td class="memname"><a class="el" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> RelationSolver::beta </td>
213
+ <td class="memname"><a class="el" href="classSVF_1_1AbstractState.html">AbstractState</a> RelationSolver::beta </td>
214
214
  <td>(</td>
215
215
  <td class="paramtype">const <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>&lt; <a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>, <a class="el" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> &gt; &amp;&#160;</td>
216
216
  <td class="paramname"><em>sigma</em>, </td>
@@ -218,7 +218,7 @@ Public Member Functions</h2></td></tr>
218
218
  <tr>
219
219
  <td class="paramkey"></td>
220
220
  <td></td>
221
- <td class="paramtype">const <a class="el" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> &amp;&#160;</td>
221
+ <td class="paramtype">const <a class="el" href="classSVF_1_1AbstractState.html">AbstractState</a> &amp;&#160;</td>
222
222
  <td class="paramname"><em>exeState</em>&#160;</td>
223
223
  </tr>
224
224
  <tr>
@@ -231,27 +231,27 @@ Public Member Functions</h2></td></tr>
231
231
 
232
232
  <p class="definition">Definition at line <a class="el" href="RelationSolver_8cpp_source.html#l00244">244</a> of file <a class="el" href="RelationSolver_8cpp_source.html">RelationSolver.cpp</a>.</p>
233
233
  <div class="fragment"><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;{</div>
234
- <div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> res;</div>
235
- <div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>&amp; <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a> : exeState.<a class="code" href="classSVF_1_1IntervalESBase.html#a903797577ba99ef57879774a3849bbfe">getVarToVal</a>())</div>
234
+ <div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a> res;</div>
235
+ <div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>&amp; <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a> : exeState.<a class="code" href="classSVF_1_1AbstractState.html#a4e4525823fd31c718216c698ed6e0a06">getVarToVal</a>())</div>
236
236
  <div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; {</div>
237
- <div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; res.<a class="code" href="classSVF_1_1IntervalESBase.html#ad2288306aed7301ccd30e55410c7b428">_varToItvVal</a>[<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first] = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(</div>
238
- <div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; sigma.at(<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first), sigma.at(<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first));</div>
237
+ <div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; res[<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first] = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(</div>
238
+ <div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; sigma.at(<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first), sigma.at(<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first));</div>
239
239
  <div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; }</div>
240
240
  <div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="keywordflow">return</span> res;</div>
241
241
  <div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;}</div>
242
242
  </div><!-- fragment -->
243
243
  </div>
244
244
  </div>
245
- <a id="a0df88638c5e3f8cd56d34088b96199f1"></a>
246
- <h2 class="memtitle"><span class="permalink"><a href="#a0df88638c5e3f8cd56d34088b96199f1">&#9670;&nbsp;</a></span>bilateral()</h2>
245
+ <a id="a23c59e437950b139dde49f11eb45b63a"></a>
246
+ <h2 class="memtitle"><span class="permalink"><a href="#a23c59e437950b139dde49f11eb45b63a">&#9670;&nbsp;</a></span>bilateral()</h2>
247
247
 
248
248
  <div class="memitem">
249
249
  <div class="memproto">
250
250
  <table class="memname">
251
251
  <tr>
252
- <td class="memname"><a class="el" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> RelationSolver::bilateral </td>
252
+ <td class="memname"><a class="el" href="classSVF_1_1AbstractState.html">AbstractState</a> RelationSolver::bilateral </td>
253
253
  <td>(</td>
254
- <td class="paramtype">const <a class="el" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> &amp;&#160;</td>
254
+ <td class="paramtype">const <a class="el" href="classSVF_1_1AbstractState.html">AbstractState</a> &amp;&#160;</td>
255
255
  <td class="paramname"><em>domain</em>, </td>
256
256
  </tr>
257
257
  <tr>
@@ -283,14 +283,14 @@ Public Member Functions</h2></td></tr>
283
283
 
284
284
  <p class="definition">Definition at line <a class="el" href="RelationSolver_8cpp_source.html#l00036">36</a> of file <a class="el" href="RelationSolver_8cpp_source.html">RelationSolver.cpp</a>.</p>
285
285
  <div class="fragment"><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;{</div>
286
- <div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> upper = domain.<a class="code" href="classSVF_1_1IntervalESBase.html#a33fd0e4a654dd4f5b7762b0088e11674">top</a>();</div>
287
- <div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> lower = domain.<a class="code" href="classSVF_1_1IntervalESBase.html#a839e8ee927c1cad86aef3059b41ba2eb">bottom</a>();</div>
286
+ <div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a> upper = domain.<a class="code" href="classSVF_1_1AbstractState.html#ac34dc4e111967507950bd5afe4a59ea0">top</a>();</div>
287
+ <div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a> lower = domain.<a class="code" href="classSVF_1_1AbstractState.html#a325ac3691d7252d0dcef9aa5f774b4c4">bottom</a>();</div>
288
288
  <div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <a class="code" href="CommandLine_8h.html#a2429346d37bd4c40889bd7c6d319d9da">u32_t</a> meets_in_a_row = 0;</div>
289
289
  <div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; z3::solver solver = <a class="code" href="classSVF_1_1Z3Expr.html#a16721e960145864d0835eb95f2ae4681">Z3Expr::getSolver</a>();</div>
290
290
  <div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; z3::params <a class="code" href="cJSON_8cpp.html#a009ef1d888ab6dbe77e6b42b0b39f1ae">p</a>(<a class="code" href="classSVF_1_1Z3Expr.html#acfdff582a0188678c10939165a40df30">Z3Expr::getContext</a>());</div>
291
291
  <div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <a class="code" href="cJSON_8cpp.html#a009ef1d888ab6dbe77e6b42b0b39f1ae">p</a>.set(<span class="stringliteral">&quot;:timeout&quot;</span>, <span class="keyword">static_cast&lt;</span><span class="keywordtype">unsigned</span><span class="keyword">&gt;</span>(600)); <span class="comment">// in milliseconds</span></div>
292
292
  <div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; solver.set(<a class="code" href="cJSON_8cpp.html#a009ef1d888ab6dbe77e6b42b0b39f1ae">p</a>);</div>
293
- <div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> consequence;</div>
293
+ <div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a> consequence;</div>
294
294
  <div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; </div>
295
295
  <div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keywordflow">while</span> (lower != upper)</div>
296
296
  <div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; {</div>
@@ -300,9 +300,9 @@ Public Member Functions</h2></td></tr>
300
300
  <div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; }</div>
301
301
  <div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordflow">else</span></div>
302
302
  <div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; {</div>
303
- <div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; consequence = <a class="code" href="classSVF_1_1RelationSolver.html#a012d18ece2c66ba6e784ae9578171369">abstract_consequence</a>(lower, upper, domain);</div>
303
+ <div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; consequence = <a class="code" href="classSVF_1_1RelationSolver.html#a575995a08ab7d186e03e9632398500ce">abstract_consequence</a>(lower, upper, domain);</div>
304
304
  <div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; }</div>
305
- <div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> rhs = !(<a class="code" href="classSVF_1_1RelationSolver.html#af860063ccaeca043bac84eb9eb2cf80a">gamma_hat</a>(consequence, domain));</div>
305
+ <div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> rhs = !(<a class="code" href="classSVF_1_1RelationSolver.html#a04f145c44a67ebda99ccc5a3081239ff">gamma_hat</a>(consequence, domain));</div>
306
306
  <div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; solver.push();</div>
307
307
  <div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; solver.add(phi.<a class="code" href="classSVF_1_1Z3Expr.html#a57c199ba2c3c6a6d44a86e0b1429be55">getExpr</a>() &amp;&amp; rhs.<a class="code" href="classSVF_1_1Z3Expr.html#a57c199ba2c3c6a6d44a86e0b1429be55">getExpr</a>());</div>
308
308
  <div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;u32_t, s32_t&gt;</a> solution;</div>
@@ -319,7 +319,7 @@ Public Member Functions</h2></td></tr>
319
319
  <div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; solution.emplace(std::stoi(v.name().str()),</div>
320
320
  <div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; m.get_const_interp(v).get_numeral_int());</div>
321
321
  <div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; }</div>
322
- <div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>&amp; <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a> : domain.<a class="code" href="classSVF_1_1IntervalESBase.html#a903797577ba99ef57879774a3849bbfe">getVarToVal</a>())</div>
322
+ <div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>&amp; <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a> : domain.<a class="code" href="classSVF_1_1AbstractState.html#a4e4525823fd31c718216c698ed6e0a06">getVarToVal</a>())</div>
323
323
  <div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; {</div>
324
324
  <div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keywordflow">if</span> (solution.find(<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first) == solution.end())</div>
325
325
  <div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; {</div>
@@ -327,10 +327,10 @@ Public Member Functions</h2></td></tr>
327
327
  <div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; }</div>
328
328
  <div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; }</div>
329
329
  <div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; solver.pop();</div>
330
- <div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> newLower = domain.<a class="code" href="classSVF_1_1IntervalESBase.html#a839e8ee927c1cad86aef3059b41ba2eb">bottom</a>();</div>
331
- <div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; newLower.<a class="code" href="classSVF_1_1IntervalESBase.html#adc0db607e4c0f117760535df67b91fbd">joinWith</a>(lower);</div>
332
- <div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> rhs = <a class="code" href="classSVF_1_1RelationSolver.html#ac4abc5e1eb3b638710572c958162c22c">beta</a>(solution, domain);</div>
333
- <div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; newLower.<a class="code" href="classSVF_1_1IntervalESBase.html#adc0db607e4c0f117760535df67b91fbd">joinWith</a>(rhs);</div>
330
+ <div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a> newLower = domain.<a class="code" href="classSVF_1_1AbstractState.html#a325ac3691d7252d0dcef9aa5f774b4c4">bottom</a>();</div>
331
+ <div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; newLower.<a class="code" href="classSVF_1_1AbstractState.html#a413cb1d009e2a080960bb2432e193d0c">joinWith</a>(lower);</div>
332
+ <div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a> rhs = <a class="code" href="classSVF_1_1RelationSolver.html#a342d3c7d5192449fb10e9c3bab2de24f">beta</a>(solution, domain);</div>
333
+ <div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; newLower.<a class="code" href="classSVF_1_1AbstractState.html#a413cb1d009e2a080960bb2432e193d0c">joinWith</a>(rhs);</div>
334
334
  <div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; lower = newLower;</div>
335
335
  <div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; meets_in_a_row = 0;</div>
336
336
  <div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; }</div>
@@ -342,9 +342,9 @@ Public Member Functions</h2></td></tr>
342
342
  <div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordflow">if</span> (solver.reason_unknown() == <span class="stringliteral">&quot;timeout&quot;</span>)</div>
343
343
  <div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keywordflow">return</span> upper;</div>
344
344
  <div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; }</div>
345
- <div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> newUpper = domain.<a class="code" href="classSVF_1_1IntervalESBase.html#a33fd0e4a654dd4f5b7762b0088e11674">top</a>();</div>
346
- <div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; newUpper.<a class="code" href="classSVF_1_1IntervalESBase.html#a92a8531c7f12cc6f9117596aa5e534b6">meetWith</a>(upper);</div>
347
- <div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; newUpper.<a class="code" href="classSVF_1_1IntervalESBase.html#a92a8531c7f12cc6f9117596aa5e534b6">meetWith</a>(consequence);</div>
345
+ <div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a> newUpper = domain.<a class="code" href="classSVF_1_1AbstractState.html#ac34dc4e111967507950bd5afe4a59ea0">top</a>();</div>
346
+ <div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; newUpper.<a class="code" href="classSVF_1_1AbstractState.html#adec6191b9f1e51ed70a7620dd06153a9">meetWith</a>(upper);</div>
347
+ <div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; newUpper.<a class="code" href="classSVF_1_1AbstractState.html#adec6191b9f1e51ed70a7620dd06153a9">meetWith</a>(consequence);</div>
348
348
  <div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; upper = newUpper;</div>
349
349
  <div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; meets_in_a_row += 1;</div>
350
350
  <div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; }</div>
@@ -421,16 +421,16 @@ Public Member Functions</h2></td></tr>
421
421
  </div><!-- fragment -->
422
422
  </div>
423
423
  </div>
424
- <a id="a7e827609a1d69c6517f1a3eee0326fc3"></a>
425
- <h2 class="memtitle"><span class="permalink"><a href="#a7e827609a1d69c6517f1a3eee0326fc3">&#9670;&nbsp;</a></span>BS()</h2>
424
+ <a id="a98f7e3ae9f43aea178d77a58ac8e927f"></a>
425
+ <h2 class="memtitle"><span class="permalink"><a href="#a98f7e3ae9f43aea178d77a58ac8e927f">&#9670;&nbsp;</a></span>BS()</h2>
426
426
 
427
427
  <div class="memitem">
428
428
  <div class="memproto">
429
429
  <table class="memname">
430
430
  <tr>
431
- <td class="memname"><a class="el" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> RelationSolver::BS </td>
431
+ <td class="memname"><a class="el" href="classSVF_1_1AbstractState.html">AbstractState</a> RelationSolver::BS </td>
432
432
  <td>(</td>
433
- <td class="paramtype">const <a class="el" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> &amp;&#160;</td>
433
+ <td class="paramtype">const <a class="el" href="classSVF_1_1AbstractState.html">AbstractState</a> &amp;&#160;</td>
434
434
  <td class="paramname"><em>domain</em>, </td>
435
435
  </tr>
436
436
  <tr>
@@ -463,7 +463,7 @@ Public Member Functions</h2></td></tr>
463
463
  <div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;u32_t, NumericLiteral&gt;</a> ret;</div>
464
464
  <div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;u32_t, NumericLiteral&gt;</a> low_values, high_values;</div>
465
465
  <div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> new_phi = phi;</div>
466
- <div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>&amp; <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>: domain.<a class="code" href="classSVF_1_1IntervalESBase.html#a903797577ba99ef57879774a3849bbfe">getVarToVal</a>())</div>
466
+ <div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>&amp; <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>: domain.<a class="code" href="classSVF_1_1AbstractState.html#a4e4525823fd31c718216c698ed6e0a06">getVarToVal</a>())</div>
467
467
  <div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; {</div>
468
468
  <div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <a class="code" href="classSVF_1_1RelationSolver.html#af00aee55faf18a994dc5558ca4bf4932">updateMap</a>(ret, <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first, <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.second.ub());</div>
469
469
  <div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.second.lb().is_minus_infinity())</div>
@@ -477,7 +477,7 @@ Public Member Functions</h2></td></tr>
477
477
  <div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first &gt; bias)</div>
478
478
  <div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; bias = <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first + 1;</div>
479
479
  <div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; }</div>
480
- <div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>&amp; <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>: domain.<a class="code" href="classSVF_1_1IntervalESBase.html#a903797577ba99ef57879774a3849bbfe">getVarToVal</a>())</div>
480
+ <div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>&amp; <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>: domain.<a class="code" href="classSVF_1_1AbstractState.html#a4e4525823fd31c718216c698ed6e0a06">getVarToVal</a>())</div>
481
481
  <div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; {</div>
482
482
  <div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <a class="code" href="CommandLine_8h.html#a2429346d37bd4c40889bd7c6d319d9da">u32_t</a> reverse_key = <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first + bias;</div>
483
483
  <div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; <a class="code" href="classSVF_1_1RelationSolver.html#af00aee55faf18a994dc5558ca4bf4932">updateMap</a>(ret, reverse_key, -<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.second.lb());</div>
@@ -492,22 +492,22 @@ Public Member Functions</h2></td></tr>
492
492
  <div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; new_phi = (new_phi &amp;&amp; (<a class="code" href="classSVF_1_1RelationSolver.html#af621897ab66f6475d5ee043ef2e33623">toZ3Expr</a>(reverse_key) == -1 * <a class="code" href="classSVF_1_1RelationSolver.html#af621897ab66f6475d5ee043ef2e33623">toZ3Expr</a>(<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first)));</div>
493
493
  <div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; }</div>
494
494
  <div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; <a class="code" href="classSVF_1_1RelationSolver.html#aaae7ac9ed7d0e17f39948c37b867ada9">BoxedOptSolver</a>(new_phi.<a class="code" href="classSVF_1_1Z3Expr.html#afb3478316592a395c6d473791b5a0981">simplify</a>(), ret, low_values, high_values);</div>
495
- <div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> retInv;</div>
495
+ <div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a> retInv;</div>
496
496
  <div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>&amp; <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>: ret)</div>
497
497
  <div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; {</div>
498
498
  <div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first &gt;= bias)</div>
499
499
  <div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; {</div>
500
500
  <div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.second.equal(infinity))</div>
501
- <div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; retInv.<a class="code" href="classSVF_1_1IntervalESBase.html#ad2288306aed7301ccd30e55410c7b428">_varToItvVal</a>[<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first - bias].setLb(<a class="code" href="classSVF_1_1Z3Expr.html#acfdff582a0188678c10939165a40df30">Z3Expr::getContext</a>().int_const(<span class="stringliteral">&quot;-oo&quot;</span>));</div>
501
+ <div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; retInv[<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first - bias].getInterval().setLb(<a class="code" href="classSVF_1_1Z3Expr.html#acfdff582a0188678c10939165a40df30">Z3Expr::getContext</a>().int_const(<span class="stringliteral">&quot;-oo&quot;</span>));</div>
502
502
  <div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <span class="keywordflow">else</span></div>
503
- <div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; retInv.<a class="code" href="classSVF_1_1IntervalESBase.html#ad2288306aed7301ccd30e55410c7b428">_varToItvVal</a>[<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first - bias].setLb(-<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.second);</div>
503
+ <div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; retInv[<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first - bias].getInterval().setLb(-<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.second);</div>
504
504
  <div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; }</div>
505
505
  <div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; <span class="keywordflow">else</span></div>
506
506
  <div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; {</div>
507
507
  <div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.second.equal(infinity))</div>
508
- <div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; retInv.<a class="code" href="classSVF_1_1IntervalESBase.html#ad2288306aed7301ccd30e55410c7b428">_varToItvVal</a>[<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first].setUb(<a class="code" href="classSVF_1_1Z3Expr.html#acfdff582a0188678c10939165a40df30">Z3Expr::getContext</a>().int_const(<span class="stringliteral">&quot;+oo&quot;</span>));</div>
508
+ <div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; retInv[<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first].getInterval().setUb(<a class="code" href="classSVF_1_1Z3Expr.html#acfdff582a0188678c10939165a40df30">Z3Expr::getContext</a>().int_const(<span class="stringliteral">&quot;+oo&quot;</span>));</div>
509
509
  <div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <span class="keywordflow">else</span></div>
510
- <div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; retInv.<a class="code" href="classSVF_1_1IntervalESBase.html#ad2288306aed7301ccd30e55410c7b428">_varToItvVal</a>[<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first].setUb(<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.second);</div>
510
+ <div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; retInv[<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first].getInterval().setUb(<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.second);</div>
511
511
  <div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; }</div>
512
512
  <div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; }</div>
513
513
  <div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <span class="keywordflow">return</span> retInv;</div>
@@ -622,8 +622,8 @@ Public Member Functions</h2></td></tr>
622
622
  </div><!-- fragment -->
623
623
  </div>
624
624
  </div>
625
- <a id="a93a034bb18001abc278d6986706024af"></a>
626
- <h2 class="memtitle"><span class="permalink"><a href="#a93a034bb18001abc278d6986706024af">&#9670;&nbsp;</a></span>gamma_hat() <span class="overload">[1/3]</span></h2>
625
+ <a id="a84a60a6b89d86e38887192c56052dbe4"></a>
626
+ <h2 class="memtitle"><span class="permalink"><a href="#a84a60a6b89d86e38887192c56052dbe4">&#9670;&nbsp;</a></span>gamma_hat() <span class="overload">[1/3]</span></h2>
627
627
 
628
628
  <div class="memitem">
629
629
  <div class="memproto">
@@ -631,13 +631,13 @@ Public Member Functions</h2></td></tr>
631
631
  <tr>
632
632
  <td class="memname"><a class="el" href="classSVF_1_1Z3Expr.html">Z3Expr</a> RelationSolver::gamma_hat </td>
633
633
  <td>(</td>
634
- <td class="paramtype">const <a class="el" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> &amp;&#160;</td>
634
+ <td class="paramtype">const <a class="el" href="classSVF_1_1AbstractState.html">AbstractState</a> &amp;&#160;</td>
635
635
  <td class="paramname"><em>alpha</em>, </td>
636
636
  </tr>
637
637
  <tr>
638
638
  <td class="paramkey"></td>
639
639
  <td></td>
640
- <td class="paramtype">const <a class="el" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> &amp;&#160;</td>
640
+ <td class="paramtype">const <a class="el" href="classSVF_1_1AbstractState.html">AbstractState</a> &amp;&#160;</td>
641
641
  <td class="paramname"><em>exeState</em>&#160;</td>
642
642
  </tr>
643
643
  <tr>
@@ -653,12 +653,12 @@ Public Member Functions</h2></td></tr>
653
653
  <p class="definition">Definition at line <a class="el" href="RelationSolver_8cpp_source.html#l00215">215</a> of file <a class="el" href="RelationSolver_8cpp_source.html">RelationSolver.cpp</a>.</p>
654
654
  <div class="fragment"><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;{</div>
655
655
  <div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> res(<a class="code" href="classSVF_1_1Z3Expr.html#acfdff582a0188678c10939165a40df30">Z3Expr::getContext</a>().bool_val(<span class="keyword">true</span>));</div>
656
- <div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span>&amp; <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a> : exeState.<a class="code" href="classSVF_1_1IntervalESBase.html#a903797577ba99ef57879774a3849bbfe">getVarToVal</a>())</div>
656
+ <div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span>&amp; <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a> : exeState.<a class="code" href="classSVF_1_1AbstractState.html#a4e4525823fd31c718216c698ed6e0a06">getVarToVal</a>())</div>
657
657
  <div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; {</div>
658
- <div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> interval = alpha.<a class="code" href="classSVF_1_1IntervalESBase.html#ad2288306aed7301ccd30e55410c7b428">_varToItvVal</a>.at(<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first);</div>
659
- <div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="keywordflow">if</span> (interval.<a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>())</div>
658
+ <div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> interval = alpha[<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first].getInterval();</div>
659
+ <div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="keywordflow">if</span> (interval.<a class="code" href="classSVF_1_1IntervalValue.html#a674f9bb98053f8658e246863d6561072">isBottom</a>())</div>
660
660
  <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#acfdff582a0188678c10939165a40df30">Z3Expr::getContext</a>().bool_val(<span class="keyword">false</span>);</div>
661
- <div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keywordflow">if</span> (interval.<a class="code" href="classSVF_1_1IntervalValue.html#a977128211266b93e58e298a7ac29a059">isTop</a>())</div>
661
+ <div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keywordflow">if</span> (interval.<a class="code" href="classSVF_1_1IntervalValue.html#a1fc899db5c37229692782406ad56f34f">isTop</a>())</div>
662
662
  <div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keywordflow">continue</span>;</div>
663
663
  <div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> v = <a class="code" href="classSVF_1_1RelationSolver.html#af621897ab66f6475d5ee043ef2e33623">toZ3Expr</a>(<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first);</div>
664
664
  <div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; res = (res &amp;&amp; v &gt;= (int)interval.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>() &amp;&amp;</div>
@@ -669,8 +669,8 @@ Public Member Functions</h2></td></tr>
669
669
  </div><!-- fragment -->
670
670
  </div>
671
671
  </div>
672
- <a id="af860063ccaeca043bac84eb9eb2cf80a"></a>
673
- <h2 class="memtitle"><span class="permalink"><a href="#af860063ccaeca043bac84eb9eb2cf80a">&#9670;&nbsp;</a></span>gamma_hat() <span class="overload">[2/3]</span></h2>
672
+ <a id="a04f145c44a67ebda99ccc5a3081239ff"></a>
673
+ <h2 class="memtitle"><span class="permalink"><a href="#a04f145c44a67ebda99ccc5a3081239ff">&#9670;&nbsp;</a></span>gamma_hat() <span class="overload">[2/3]</span></h2>
674
674
 
675
675
  <div class="memitem">
676
676
  <div class="memproto">
@@ -678,7 +678,7 @@ Public Member Functions</h2></td></tr>
678
678
  <tr>
679
679
  <td class="memname"><a class="el" href="classSVF_1_1Z3Expr.html">Z3Expr</a> RelationSolver::gamma_hat </td>
680
680
  <td>(</td>
681
- <td class="paramtype">const <a class="el" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> &amp;&#160;</td>
681
+ <td class="paramtype">const <a class="el" href="classSVF_1_1AbstractState.html">AbstractState</a> &amp;&#160;</td>
682
682
  <td class="paramname"><em>exeState</em></td><td>)</td>
683
683
  <td> const</td>
684
684
  </tr>
@@ -690,7 +690,7 @@ Public Member Functions</h2></td></tr>
690
690
  <p class="definition">Definition at line <a class="el" href="RelationSolver_8cpp_source.html#l00199">199</a> of file <a class="el" href="RelationSolver_8cpp_source.html">RelationSolver.cpp</a>.</p>
691
691
  <div class="fragment"><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;{</div>
692
692
  <div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> res(<a class="code" href="classSVF_1_1Z3Expr.html#acfdff582a0188678c10939165a40df30">Z3Expr::getContext</a>().bool_val(<span class="keyword">true</span>));</div>
693
- <div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span>&amp; <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a> : exeState.<a class="code" href="classSVF_1_1IntervalESBase.html#a903797577ba99ef57879774a3849bbfe">getVarToVal</a>())</div>
693
+ <div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span>&amp; <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a> : exeState.<a class="code" href="classSVF_1_1AbstractState.html#a4e4525823fd31c718216c698ed6e0a06">getVarToVal</a>())</div>
694
694
  <div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; {</div>
695
695
  <div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.second.isBottom())</div>
696
696
  <div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1Z3Expr.html#acfdff582a0188678c10939165a40df30">Z3Expr::getContext</a>().bool_val(<span class="keyword">false</span>);</div>
@@ -705,8 +705,8 @@ Public Member Functions</h2></td></tr>
705
705
  </div><!-- fragment -->
706
706
  </div>
707
707
  </div>
708
- <a id="aff6752947e73cd0559b5a340547c9016"></a>
709
- <h2 class="memtitle"><span class="permalink"><a href="#aff6752947e73cd0559b5a340547c9016">&#9670;&nbsp;</a></span>gamma_hat() <span class="overload">[3/3]</span></h2>
708
+ <a id="abd0c8cd1b840799cc4c17c3476da6788"></a>
709
+ <h2 class="memtitle"><span class="permalink"><a href="#abd0c8cd1b840799cc4c17c3476da6788">&#9670;&nbsp;</a></span>gamma_hat() <span class="overload">[3/3]</span></h2>
710
710
 
711
711
  <div class="memitem">
712
712
  <div class="memproto">
@@ -720,7 +720,7 @@ Public Member Functions</h2></td></tr>
720
720
  <tr>
721
721
  <td class="paramkey"></td>
722
722
  <td></td>
723
- <td class="paramtype">const <a class="el" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> &amp;&#160;</td>
723
+ <td class="paramtype">const <a class="el" href="classSVF_1_1AbstractState.html">AbstractState</a> &amp;&#160;</td>
724
724
  <td class="paramname"><em>exeState</em>&#160;</td>
725
725
  </tr>
726
726
  <tr>
@@ -735,8 +735,8 @@ Public Member Functions</h2></td></tr>
735
735
 
736
736
  <p class="definition">Definition at line <a class="el" href="RelationSolver_8cpp_source.html#l00233">233</a> of file <a class="el" href="RelationSolver_8cpp_source.html">RelationSolver.cpp</a>.</p>
737
737
  <div class="fragment"><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;{</div>
738
- <div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keyword">auto</span> it = exeState.<a class="code" href="classSVF_1_1IntervalESBase.html#a903797577ba99ef57879774a3849bbfe">getVarToVal</a>().find(<span class="keywordtype">id</span>);</div>
739
- <div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; assert(it != exeState.<a class="code" href="classSVF_1_1IntervalESBase.html#a903797577ba99ef57879774a3849bbfe">getVarToVal</a>().end() &amp;&amp; <span class="stringliteral">&quot;id not in varToVal?&quot;</span>);</div>
738
+ <div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keyword">auto</span> it = exeState.<a class="code" href="classSVF_1_1AbstractState.html#a4e4525823fd31c718216c698ed6e0a06">getVarToVal</a>().find(<span class="keywordtype">id</span>);</div>
739
+ <div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; assert(it != exeState.<a class="code" href="classSVF_1_1AbstractState.html#a4e4525823fd31c718216c698ed6e0a06">getVarToVal</a>().end() &amp;&amp; <span class="stringliteral">&quot;id not in varToVal?&quot;</span>);</div>
740
740
  <div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> v = <a class="code" href="classSVF_1_1RelationSolver.html#af621897ab66f6475d5ee043ef2e33623">toZ3Expr</a>(<span class="keywordtype">id</span>);</div>
741
741
  <div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="comment">// Z3Expr v = Z3Expr::getContext().int_const(std::to_string(id).c_str());</span></div>
742
742
  <div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> res = (v &gt;= (int)it-&gt;second.lb().getNumeral() &amp;&amp;</div>
@@ -746,16 +746,16 @@ Public Member Functions</h2></td></tr>
746
746
  </div><!-- fragment -->
747
747
  </div>
748
748
  </div>
749
- <a id="a657af041f883e7b1a3f9892453a2c4cf"></a>
750
- <h2 class="memtitle"><span class="permalink"><a href="#a657af041f883e7b1a3f9892453a2c4cf">&#9670;&nbsp;</a></span>RSY()</h2>
749
+ <a id="a0bc76a5f96dab54e1c9678312579d51a"></a>
750
+ <h2 class="memtitle"><span class="permalink"><a href="#a0bc76a5f96dab54e1c9678312579d51a">&#9670;&nbsp;</a></span>RSY()</h2>
751
751
 
752
752
  <div class="memitem">
753
753
  <div class="memproto">
754
754
  <table class="memname">
755
755
  <tr>
756
- <td class="memname"><a class="el" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> RelationSolver::RSY </td>
756
+ <td class="memname"><a class="el" href="classSVF_1_1AbstractState.html">AbstractState</a> RelationSolver::RSY </td>
757
757
  <td>(</td>
758
- <td class="paramtype">const <a class="el" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> &amp;&#160;</td>
758
+ <td class="paramtype">const <a class="el" href="classSVF_1_1AbstractState.html">AbstractState</a> &amp;&#160;</td>
759
759
  <td class="paramname"><em>domain</em>, </td>
760
760
  </tr>
761
761
  <tr>
@@ -778,14 +778,14 @@ Public Member Functions</h2></td></tr>
778
778
 
779
779
  <p class="definition">Definition at line <a class="el" href="RelationSolver_8cpp_source.html#l00114">114</a> of file <a class="el" href="RelationSolver_8cpp_source.html">RelationSolver.cpp</a>.</p>
780
780
  <div class="fragment"><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;{</div>
781
- <div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> lower = domain.<a class="code" href="classSVF_1_1IntervalESBase.html#a839e8ee927c1cad86aef3059b41ba2eb">bottom</a>();</div>
781
+ <div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a> lower = domain.<a class="code" href="classSVF_1_1AbstractState.html#a325ac3691d7252d0dcef9aa5f774b4c4">bottom</a>();</div>
782
782
  <div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; z3::solver&amp; solver = <a class="code" href="classSVF_1_1Z3Expr.html#a16721e960145864d0835eb95f2ae4681">Z3Expr::getSolver</a>();</div>
783
783
  <div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; z3::params <a class="code" href="cJSON_8cpp.html#a009ef1d888ab6dbe77e6b42b0b39f1ae">p</a>(<a class="code" href="classSVF_1_1Z3Expr.html#acfdff582a0188678c10939165a40df30">Z3Expr::getContext</a>());</div>
784
784
  <div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <a class="code" href="cJSON_8cpp.html#a009ef1d888ab6dbe77e6b42b0b39f1ae">p</a>.set(<span class="stringliteral">&quot;:timeout&quot;</span>, <span class="keyword">static_cast&lt;</span><span class="keywordtype">unsigned</span><span class="keyword">&gt;</span>(600)); <span class="comment">// in milliseconds</span></div>
785
785
  <div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; solver.set(<a class="code" href="cJSON_8cpp.html#a009ef1d888ab6dbe77e6b42b0b39f1ae">p</a>);</div>
786
786
  <div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordflow">while</span> (1)</div>
787
787
  <div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; {</div>
788
- <div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> rhs = !(<a class="code" href="classSVF_1_1RelationSolver.html#af860063ccaeca043bac84eb9eb2cf80a">gamma_hat</a>(lower, domain));</div>
788
+ <div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> rhs = !(<a class="code" href="classSVF_1_1RelationSolver.html#a04f145c44a67ebda99ccc5a3081239ff">gamma_hat</a>(lower, domain));</div>
789
789
  <div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; solver.push();</div>
790
790
  <div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; solver.add(phi.<a class="code" href="classSVF_1_1Z3Expr.html#a57c199ba2c3c6a6d44a86e0b1429be55">getExpr</a>() &amp;&amp; rhs.<a class="code" href="classSVF_1_1Z3Expr.html#a57c199ba2c3c6a6d44a86e0b1429be55">getExpr</a>());</div>
791
791
  <div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;u32_t, s32_t&gt;</a> solution;</div>
@@ -802,7 +802,7 @@ Public Member Functions</h2></td></tr>
802
802
  <div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; solution.emplace(std::stoi(v.name().str()),</div>
803
803
  <div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; m.get_const_interp(v).get_numeral_int());</div>
804
804
  <div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; }</div>
805
- <div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>&amp; <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a> : domain.<a class="code" href="classSVF_1_1IntervalESBase.html#a903797577ba99ef57879774a3849bbfe">getVarToVal</a>())</div>
805
+ <div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>&amp; <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a> : domain.<a class="code" href="classSVF_1_1AbstractState.html#a4e4525823fd31c718216c698ed6e0a06">getVarToVal</a>())</div>
806
806
  <div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; {</div>
807
807
  <div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keywordflow">if</span> (solution.find(<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first) == solution.end())</div>
808
808
  <div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; {</div>
@@ -810,9 +810,9 @@ Public Member Functions</h2></td></tr>
810
810
  <div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; }</div>
811
811
  <div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; }</div>
812
812
  <div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; solver.pop();</div>
813
- <div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> newLower = domain.<a class="code" href="classSVF_1_1IntervalESBase.html#a839e8ee927c1cad86aef3059b41ba2eb">bottom</a>();</div>
814
- <div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; newLower.<a class="code" href="classSVF_1_1IntervalESBase.html#adc0db607e4c0f117760535df67b91fbd">joinWith</a>(lower);</div>
815
- <div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; newLower.<a class="code" href="classSVF_1_1IntervalESBase.html#adc0db607e4c0f117760535df67b91fbd">joinWith</a>(<a class="code" href="classSVF_1_1RelationSolver.html#ac4abc5e1eb3b638710572c958162c22c">beta</a>(solution, domain));</div>
813
+ <div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a> newLower = domain.<a class="code" href="classSVF_1_1AbstractState.html#a325ac3691d7252d0dcef9aa5f774b4c4">bottom</a>();</div>
814
+ <div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; newLower.<a class="code" href="classSVF_1_1AbstractState.html#a413cb1d009e2a080960bb2432e193d0c">joinWith</a>(lower);</div>
815
+ <div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; newLower.<a class="code" href="classSVF_1_1AbstractState.html#a413cb1d009e2a080960bb2432e193d0c">joinWith</a>(<a class="code" href="classSVF_1_1RelationSolver.html#a342d3c7d5192449fb10e9c3bab2de24f">beta</a>(solution, domain));</div>
816
816
  <div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; lower = newLower;</div>
817
817
  <div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; }</div>
818
818
  <div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keywordflow">else</span> </div>
@@ -821,7 +821,7 @@ Public Member Functions</h2></td></tr>
821
821
  <div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keywordflow">if</span> (checkRes == z3::unknown)</div>
822
822
  <div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; {</div>
823
823
  <div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keywordflow">if</span> (solver.reason_unknown() == <span class="stringliteral">&quot;timeout&quot;</span>)</div>
824
- <div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keywordflow">return</span> domain.<a class="code" href="classSVF_1_1IntervalESBase.html#a33fd0e4a654dd4f5b7762b0088e11674">top</a>();</div>
824
+ <div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keywordflow">return</span> domain.<a class="code" href="classSVF_1_1AbstractState.html#ac34dc4e111967507950bd5afe4a59ea0">top</a>();</div>
825
825
  <div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; }</div>
826
826
  <div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keywordflow">break</span>;</div>
827
827
  <div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; }</div>
@@ -919,35 +919,34 @@ Public Member Functions</h2></td></tr>
919
919
  <div class="ttc" id="aCommandLine_8h_html_a2429346d37bd4c40889bd7c6d319d9da"><div class="ttname"><a href="CommandLine_8h.html#a2429346d37bd4c40889bd7c6d319d9da">u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="CommandLine_8h_source.html#l00018">CommandLine.h:18</a></div></div>
920
920
  <div class="ttc" id="acJSON_8cpp_html_a009ef1d888ab6dbe77e6b42b0b39f1ae"><div class="ttname"><a href="cJSON_8cpp.html#a009ef1d888ab6dbe77e6b42b0b39f1ae">p</a></div><div class="ttdeci">cJSON * p</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l02559">cJSON.cpp:2559</a></div></div>
921
921
  <div class="ttc" id="aclassSVF_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#l00086">Z3Expr.h:86</a></div></div>
922
- <div class="ttc" id="aclassSVF_1_1IntervalValue_html_a0df07a2659cbf3a918de5b0d7c407264"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">SVF::IntervalValue::lb</a></div><div class="ttdeci">const NumericLiteral &amp; lb() const</div><div class="ttdoc">Return the lower bound.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00220">IntervalValue.h:220</a></div></div>
922
+ <div class="ttc" id="aclassSVF_1_1IntervalValue_html_a0df07a2659cbf3a918de5b0d7c407264"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">SVF::IntervalValue::lb</a></div><div class="ttdeci">const NumericLiteral &amp; lb() const</div><div class="ttdoc">Return the lower bound.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00205">IntervalValue.h:205</a></div></div>
923
+ <div class="ttc" id="aclassSVF_1_1AbstractState_html_a325ac3691d7252d0dcef9aa5f774b4c4"><div class="ttname"><a href="classSVF_1_1AbstractState.html#a325ac3691d7252d0dcef9aa5f774b4c4">SVF::AbstractState::bottom</a></div><div class="ttdeci">AbstractState bottom() const</div><div class="ttdoc">Set all value bottom.</div><div class="ttdef"><b>Definition:</b> <a href="AbstractState_8h_source.html#l00133">AbstractState.h:133</a></div></div>
923
924
  <div class="ttc" id="aclassSVF_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>
924
925
  <div class="ttc" id="aclassSVF_1_1RelationSolver_html_aaae7ac9ed7d0e17f39948c37b867ada9"><div class="ttname"><a href="classSVF_1_1RelationSolver.html#aaae7ac9ed7d0e17f39948c37b867ada9">SVF::RelationSolver::BoxedOptSolver</a></div><div class="ttdeci">Map&lt; u32_t, NumericLiteral &gt; BoxedOptSolver(const Z3Expr &amp;phi, Map&lt; u32_t, NumericLiteral &gt; &amp;ret, Map&lt; u32_t, NumericLiteral &gt; &amp;low_values, Map&lt; u32_t, NumericLiteral &gt; &amp;high_values)</div><div class="ttdef"><b>Definition:</b> <a href="RelationSolver_8cpp_source.html#l00336">RelationSolver.cpp:336</a></div></div>
925
- <div class="ttc" id="aclassSVF_1_1IntervalValue_html_af8be90fc1b61103187908dce4ba68001"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">SVF::IntervalValue::isBottom</a></div><div class="ttdeci">bool isBottom() const override</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00060">IntervalValue.h:60</a></div></div>
926
+ <div class="ttc" id="aclassSVF_1_1IntervalValue_html_a1fc899db5c37229692782406ad56f34f"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#a1fc899db5c37229692782406ad56f34f">SVF::IntervalValue::isTop</a></div><div class="ttdeci">bool isTop() const</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00054">IntervalValue.h:54</a></div></div>
926
927
  <div class="ttc" id="aclassSVF_1_1RelationSolver_html_a7ace50c6e53a79f0e329badb63570f92"><div class="ttname"><a href="classSVF_1_1RelationSolver.html#a7ace50c6e53a79f0e329badb63570f92">SVF::RelationSolver::decide_cpa_ext</a></div><div class="ttdeci">void decide_cpa_ext(const Z3Expr &amp;phi, Map&lt; u32_t, Z3Expr &gt; &amp;, Map&lt; u32_t, NumericLiteral &gt; &amp;, Map&lt; u32_t, NumericLiteral &gt; &amp;, Map&lt; u32_t, NumericLiteral &gt; &amp;, Map&lt; u32_t, NumericLiteral &gt; &amp;)</div><div class="ttdef"><b>Definition:</b> <a href="RelationSolver_8cpp_source.html#l00364">RelationSolver.cpp:364</a></div></div>
928
+ <div class="ttc" id="aclassSVF_1_1AbstractState_html_ac34dc4e111967507950bd5afe4a59ea0"><div class="ttname"><a href="classSVF_1_1AbstractState.html#ac34dc4e111967507950bd5afe4a59ea0">SVF::AbstractState::top</a></div><div class="ttdeci">AbstractState top() const</div><div class="ttdoc">Set all value top.</div><div class="ttdef"><b>Definition:</b> <a href="AbstractState_8h_source.html#l00145">AbstractState.h:145</a></div></div>
927
929
  <div class="ttc" id="aclassSVF_1_1Z3Expr_html"><div class="ttname"><a href="classSVF_1_1Z3Expr.html">SVF::Z3Expr</a></div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00038">Z3Expr.h:38</a></div></div>
928
930
  <div class="ttc" id="aclassSVF_1_1NumericLiteral_html_a4181e5e15e10304ea524e5f8b2a3f576"><div class="ttname"><a href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">SVF::NumericLiteral::getNumeral</a></div><div class="ttdeci">s64_t getNumeral() const</div><div class="ttdoc">Return Numeral, default type is double in case to support both int and float.</div><div class="ttdef"><b>Definition:</b> <a href="NumericLiteral_8h_source.html#l00132">NumericLiteral.h:132</a></div></div>
929
- <div class="ttc" id="aclassSVF_1_1IntervalESBase_html"><div class="ttname"><a href="classSVF_1_1IntervalESBase.html">SVF::IntervalESBase</a></div><div class="ttdef"><b>Definition:</b> <a href="IntervalExeState_8h_source.html#l00054">IntervalExeState.h:54</a></div></div>
930
- <div class="ttc" id="aclassSVF_1_1RelationSolver_html_af860063ccaeca043bac84eb9eb2cf80a"><div class="ttname"><a href="classSVF_1_1RelationSolver.html#af860063ccaeca043bac84eb9eb2cf80a">SVF::RelationSolver::gamma_hat</a></div><div class="ttdeci">Z3Expr gamma_hat(const IntervalESBase &amp;exeState) const</div><div class="ttdoc">Return Z3Expr according to valToValMap.</div><div class="ttdef"><b>Definition:</b> <a href="RelationSolver_8cpp_source.html#l00199">RelationSolver.cpp:199</a></div></div>
931
931
  <div class="ttc" id="aclassSVF_1_1RelationSolver_html_af621897ab66f6475d5ee043ef2e33623"><div class="ttname"><a href="classSVF_1_1RelationSolver.html#af621897ab66f6475d5ee043ef2e33623">SVF::RelationSolver::toZ3Expr</a></div><div class="ttdeci">virtual Z3Expr toZ3Expr(u32_t varId) const</div><div class="ttdoc">Return Z3 expression lazily based on SVFVar ID.</div><div class="ttdef"><b>Definition:</b> <a href="RelationSolver_8h_source.html#l00061">RelationSolver.h:61</a></div></div>
932
- <div class="ttc" id="aclassSVF_1_1IntervalValue_html_adac2dc2c9f744a071ad3f0175ed40cd9"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">SVF::IntervalValue::ub</a></div><div class="ttdeci">const NumericLiteral &amp; ub() const</div><div class="ttdoc">Return the upper bound.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00227">IntervalValue.h:227</a></div></div>
933
- <div class="ttc" id="aclassSVF_1_1IntervalESBase_html_a92a8531c7f12cc6f9117596aa5e534b6"><div class="ttname"><a href="classSVF_1_1IntervalESBase.html#a92a8531c7f12cc6f9117596aa5e534b6">SVF::IntervalESBase::meetWith</a></div><div class="ttdeci">void meetWith(const IntervalESBase &amp;other)</div><div class="ttdoc">domain meet with other, important! other widen this.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalExeState_8cpp_source.html#l00164">IntervalExeState.cpp:164</a></div></div>
934
- <div class="ttc" id="aclassSVF_1_1IntervalESBase_html_ad2288306aed7301ccd30e55410c7b428"><div class="ttname"><a href="classSVF_1_1IntervalESBase.html#ad2288306aed7301ccd30e55410c7b428">SVF::IntervalESBase::_varToItvVal</a></div><div class="ttdeci">VarToValMap _varToItvVal</div><div class="ttdoc">Map a variable (symbol) to its interval value.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalExeState_8h_source.html#l00147">IntervalExeState.h:147</a></div></div>
935
- <div class="ttc" id="aclassSVF_1_1IntervalValue_html"><div class="ttname"><a href="classSVF_1_1IntervalValue.html">SVF::IntervalValue</a></div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00043">IntervalValue.h:43</a></div></div>
932
+ <div class="ttc" id="aclassSVF_1_1IntervalValue_html_adac2dc2c9f744a071ad3f0175ed40cd9"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">SVF::IntervalValue::ub</a></div><div class="ttdeci">const NumericLiteral &amp; ub() const</div><div class="ttdoc">Return the upper bound.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00212">IntervalValue.h:212</a></div></div>
933
+ <div class="ttc" id="aclassSVF_1_1IntervalValue_html"><div class="ttname"><a href="classSVF_1_1IntervalValue.html">SVF::IntervalValue</a></div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00042">IntervalValue.h:42</a></div></div>
934
+ <div class="ttc" id="aclassSVF_1_1RelationSolver_html_a342d3c7d5192449fb10e9c3bab2de24f"><div class="ttname"><a href="classSVF_1_1RelationSolver.html#a342d3c7d5192449fb10e9c3bab2de24f">SVF::RelationSolver::beta</a></div><div class="ttdeci">AbstractState beta(const Map&lt; u32_t, s32_t &gt; &amp;sigma, const AbstractState &amp;exeState) const</div><div class="ttdef"><b>Definition:</b> <a href="RelationSolver_8cpp_source.html#l00244">RelationSolver.cpp:244</a></div></div>
935
+ <div class="ttc" id="aclassSVF_1_1AbstractState_html"><div class="ttname"><a href="classSVF_1_1AbstractState.html">SVF::AbstractState</a></div><div class="ttdef"><b>Definition:</b> <a href="AbstractState_8h_source.html#l00055">AbstractState.h:55</a></div></div>
936
936
  <div class="ttc" id="anamespaceSVF_html_a9b707002523ece2ac54ca893ee9a2d4e"><div class="ttname"><a href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">SVF::s32_t</a></div><div class="ttdeci">signed s32_t</div><div class="ttdef"><b>Definition:</b> <a href="GeneralType_8h_source.html#l00047">GeneralType.h:47</a></div></div>
937
+ <div class="ttc" id="aclassSVF_1_1AbstractState_html_a4e4525823fd31c718216c698ed6e0a06"><div class="ttname"><a href="classSVF_1_1AbstractState.html#a4e4525823fd31c718216c698ed6e0a06">SVF::AbstractState::getVarToVal</a></div><div class="ttdeci">const VarToAbsValMap &amp; getVarToVal() const</div><div class="ttdoc">get var2val map</div><div class="ttdef"><b>Definition:</b> <a href="AbstractState_8h_source.html#l00239">AbstractState.h:239</a></div></div>
937
938
  <div class="ttc" id="aclassSVF_1_1RelationSolver_html_af00aee55faf18a994dc5558ca4bf4932"><div class="ttname"><a href="classSVF_1_1RelationSolver.html#af00aee55faf18a994dc5558ca4bf4932">SVF::RelationSolver::updateMap</a></div><div class="ttdeci">void updateMap(Map&lt; u32_t, NumericLiteral &gt; &amp;map, u32_t key, const NumericLiteral &amp;value)</div><div class="ttdef"><b>Definition:</b> <a href="RelationSolver_8cpp_source.html#l00256">RelationSolver.cpp:256</a></div></div>
938
- <div class="ttc" id="aclassSVF_1_1IntervalESBase_html_a839e8ee927c1cad86aef3059b41ba2eb"><div class="ttname"><a href="classSVF_1_1IntervalESBase.html#a839e8ee927c1cad86aef3059b41ba2eb">SVF::IntervalESBase::bottom</a></div><div class="ttdeci">IntervalESBase bottom() const</div><div class="ttdoc">Set all value bottom.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalExeState_8h_source.html#l00113">IntervalExeState.h:113</a></div></div>
939
+ <div class="ttc" id="aclassSVF_1_1IntervalValue_html_a674f9bb98053f8658e246863d6561072"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#a674f9bb98053f8658e246863d6561072">SVF::IntervalValue::isBottom</a></div><div class="ttdeci">bool isBottom() const</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00059">IntervalValue.h:59</a></div></div>
940
+ <div class="ttc" id="aclassSVF_1_1AbstractState_html_a413cb1d009e2a080960bb2432e193d0c"><div class="ttname"><a href="classSVF_1_1AbstractState.html#a413cb1d009e2a080960bb2432e193d0c">SVF::AbstractState::joinWith</a></div><div class="ttdeci">void joinWith(const AbstractState &amp;other)</div><div class="ttdoc">domain join with other, important! other widen this.</div><div class="ttdef"><b>Definition:</b> <a href="AbstractState_8cpp_source.html#l00120">AbstractState.cpp:120</a></div></div>
939
941
  <div class="ttc" id="aclassSVF_1_1Z3Expr_html_afb3478316592a395c6d473791b5a0981"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#afb3478316592a395c6d473791b5a0981">SVF::Z3Expr::simplify</a></div><div class="ttdeci">Z3Expr simplify() const</div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00137">Z3Expr.h:137</a></div></div>
940
942
  <div class="ttc" id="acJSON_8h_html_ac76cea59d438ba893d2f82aabb367d14"><div class="ttname"><a href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a></div><div class="ttdeci">cJSON * item</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00222">cJSON.h:222</a></div></div>
941
- <div class="ttc" id="aclassSVF_1_1IntervalValue_html_a977128211266b93e58e298a7ac29a059"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#a977128211266b93e58e298a7ac29a059">SVF::IntervalValue::isTop</a></div><div class="ttdeci">bool isTop() const override</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00055">IntervalValue.h:55</a></div></div>
943
+ <div class="ttc" id="aclassSVF_1_1AbstractState_html_adec6191b9f1e51ed70a7620dd06153a9"><div class="ttname"><a href="classSVF_1_1AbstractState.html#adec6191b9f1e51ed70a7620dd06153a9">SVF::AbstractState::meetWith</a></div><div class="ttdeci">void meetWith(const AbstractState &amp;other)</div><div class="ttdoc">domain meet with other, important! other widen this.</div><div class="ttdef"><b>Definition:</b> <a href="AbstractState_8cpp_source.html#l00194">AbstractState.cpp:194</a></div></div>
942
944
  <div class="ttc" id="aclassSVF_1_1NumericLiteral_html"><div class="ttname"><a href="classSVF_1_1NumericLiteral.html">SVF::NumericLiteral</a></div><div class="ttdef"><b>Definition:</b> <a href="NumericLiteral_8h_source.html#l00038">NumericLiteral.h:38</a></div></div>
943
- <div class="ttc" id="aclassSVF_1_1IntervalESBase_html_a903797577ba99ef57879774a3849bbfe"><div class="ttname"><a href="classSVF_1_1IntervalESBase.html#a903797577ba99ef57879774a3849bbfe">SVF::IntervalESBase::getVarToVal</a></div><div class="ttdeci">const VarToValMap &amp; getVarToVal() const</div><div class="ttdoc">get var2val map</div><div class="ttdef"><b>Definition:</b> <a href="IntervalExeState_8h_source.html#l00189">IntervalExeState.h:189</a></div></div>
944
- <div class="ttc" id="aclassSVF_1_1RelationSolver_html_ac4abc5e1eb3b638710572c958162c22c"><div class="ttname"><a href="classSVF_1_1RelationSolver.html#ac4abc5e1eb3b638710572c958162c22c">SVF::RelationSolver::beta</a></div><div class="ttdeci">IntervalESBase beta(const Map&lt; u32_t, s32_t &gt; &amp;sigma, const IntervalESBase &amp;exeState) const</div><div class="ttdef"><b>Definition:</b> <a href="RelationSolver_8cpp_source.html#l00244">RelationSolver.cpp:244</a></div></div>
945
945
  <div class="ttc" id="anamespaceSVF_html_a8234d4b959abc9123993bcff4eee34c1"><div class="ttname"><a href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">SVF::Map</a></div><div class="ttdeci">std::unordered_map&lt; Key, Value, Hash, KeyEqual, Allocator &gt; Map</div><div class="ttdef"><b>Definition:</b> <a href="GeneralType_8h_source.html#l00101">GeneralType.h:101</a></div></div>
946
- <div class="ttc" id="aclassSVF_1_1RelationSolver_html_a012d18ece2c66ba6e784ae9578171369"><div class="ttname"><a href="classSVF_1_1RelationSolver.html#a012d18ece2c66ba6e784ae9578171369">SVF::RelationSolver::abstract_consequence</a></div><div class="ttdeci">IntervalESBase abstract_consequence(const IntervalESBase &amp;lower, const IntervalESBase &amp;upper, const IntervalESBase &amp;domain) const</div><div class="ttdef"><b>Definition:</b> <a href="RelationSolver_8cpp_source.html#l00170">RelationSolver.cpp:170</a></div></div>
947
- <div class="ttc" id="aclassSVF_1_1IntervalESBase_html_a33fd0e4a654dd4f5b7762b0088e11674"><div class="ttname"><a href="classSVF_1_1IntervalESBase.html#a33fd0e4a654dd4f5b7762b0088e11674">SVF::IntervalESBase::top</a></div><div class="ttdeci">IntervalESBase top() const</div><div class="ttdoc">Set all value top.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalExeState_8h_source.html#l00124">IntervalExeState.h:124</a></div></div>
946
+ <div class="ttc" id="aclassSVF_1_1RelationSolver_html_a575995a08ab7d186e03e9632398500ce"><div class="ttname"><a href="classSVF_1_1RelationSolver.html#a575995a08ab7d186e03e9632398500ce">SVF::RelationSolver::abstract_consequence</a></div><div class="ttdeci">AbstractState abstract_consequence(const AbstractState &amp;lower, const AbstractState &amp;upper, const AbstractState &amp;domain) const</div><div class="ttdef"><b>Definition:</b> <a href="RelationSolver_8cpp_source.html#l00170">RelationSolver.cpp:170</a></div></div>
948
947
  <div class="ttc" id="aclassSVF_1_1NumericLiteral_html_ac2994e13c3572b114c57a9bb4f155d67"><div class="ttname"><a href="classSVF_1_1NumericLiteral.html#ac2994e13c3572b114c57a9bb4f155d67">SVF::NumericLiteral::getExpr</a></div><div class="ttdeci">Z3Expr getExpr() const</div><div class="ttdoc">Return Expr.</div><div class="ttdef"><b>Definition:</b> <a href="NumericLiteral_8h_source.html#l00138">NumericLiteral.h:138</a></div></div>
949
- <div class="ttc" id="aclassSVF_1_1IntervalESBase_html_adc0db607e4c0f117760535df67b91fbd"><div class="ttname"><a href="classSVF_1_1IntervalESBase.html#adc0db607e4c0f117760535df67b91fbd">SVF::IntervalESBase::joinWith</a></div><div class="ttdeci">void joinWith(const IntervalESBase &amp;other)</div><div class="ttdoc">domain join with other, important! other widen this.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalExeState_8cpp_source.html#l00113">IntervalExeState.cpp:113</a></div></div>
950
948
  <div class="ttc" id="aclassSVF_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>
949
+ <div class="ttc" id="aclassSVF_1_1RelationSolver_html_a04f145c44a67ebda99ccc5a3081239ff"><div class="ttname"><a href="classSVF_1_1RelationSolver.html#a04f145c44a67ebda99ccc5a3081239ff">SVF::RelationSolver::gamma_hat</a></div><div class="ttdeci">Z3Expr gamma_hat(const AbstractState &amp;exeState) const</div><div class="ttdoc">Return Z3Expr according to valToValMap.</div><div class="ttdef"><b>Definition:</b> <a href="RelationSolver_8cpp_source.html#l00199">RelationSolver.cpp:199</a></div></div>
951
950
  <!-- start footer part -->
952
951
  <hr class="footer"/><address class="footer"><small>
953
952
  Generated by &#160;<a href="http://www.doxygen.org/index.html">