svf-tools 1.0.905 → 1.0.907

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 (438) hide show
  1. package/SVF-doxygen/html/AbstractInterpretation_8cpp.html +217 -0
  2. package/SVF-doxygen/html/AbstractInterpretation_8cpp_source.html +2093 -0
  3. package/SVF-doxygen/html/AbstractInterpretation_8h.html +115 -0
  4. package/SVF-doxygen/html/AbstractInterpretation_8h_source.html +459 -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 +105 -0
  8. package/SVF-doxygen/html/AbstractState_8h_source.html +891 -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 +782 -776
  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/CFLGraph_8h_source.html +3 -3
  17. package/SVF-doxygen/html/CSC_8h_source.html +1 -1
  18. package/SVF-doxygen/html/ConsExeState_8cpp_source.html +1 -1
  19. package/SVF-doxygen/html/ConsExeState_8h_source.html +2 -2
  20. package/SVF-doxygen/html/ExeState_8cpp.html +1 -1
  21. package/SVF-doxygen/html/ExeState_8cpp_source.html +2 -2
  22. package/SVF-doxygen/html/ExeState_8h_source.html +8 -8
  23. package/SVF-doxygen/html/ICFGSimplification_8h.html +2 -2
  24. package/SVF-doxygen/html/ICFGSimplification_8h_source.html +17 -18
  25. package/SVF-doxygen/html/ICFG_8h_source.html +1 -1
  26. package/SVF-doxygen/html/IntervalValue_8h.html +2 -2
  27. package/SVF-doxygen/html/IntervalValue_8h_source.html +846 -864
  28. package/SVF-doxygen/html/LLVMModule_8cpp_source.html +1 -1
  29. package/SVF-doxygen/html/MSSAMuChi_8h_source.html +1 -1
  30. package/SVF-doxygen/html/MemRegion_8cpp_source.html +1 -1
  31. package/SVF-doxygen/html/ObjTypeInference_8cpp_source.html +1 -1
  32. package/SVF-doxygen/html/PointsTo_8cpp_source.html +3 -3
  33. package/SVF-doxygen/html/PointsTo_8h_source.html +3 -3
  34. package/SVF-doxygen/html/RelExeState_8h_source.html +5 -5
  35. package/SVF-doxygen/html/RelationSolver_8cpp_source.html +67 -68
  36. package/SVF-doxygen/html/RelationSolver_8h.html +1 -1
  37. package/SVF-doxygen/html/RelationSolver_8h_source.html +17 -17
  38. package/SVF-doxygen/html/SVFIR2AbsState_8cpp.html +84 -0
  39. package/SVF-doxygen/html/SVFIR2AbsState_8cpp_source.html +1348 -0
  40. package/SVF-doxygen/html/SVFIR2AbsState_8h.html +100 -0
  41. package/SVF-doxygen/html/SVFIR2AbsState_8h_source.html +378 -0
  42. package/SVF-doxygen/html/SVFIR2ConsExeState_8cpp_source.html +9 -8
  43. package/SVF-doxygen/html/SVFIR2ItvExeState_8cpp_source.html +920 -952
  44. package/SVF-doxygen/html/SVFIR2ItvExeState_8h.html +2 -3
  45. package/SVF-doxygen/html/SVFIR2ItvExeState_8h_source.html +202 -207
  46. package/SVF-doxygen/html/SVFIR2Relation_8cpp.html +1 -1
  47. package/SVF-doxygen/html/SVFIR2Relation_8cpp_source.html +76 -72
  48. package/SVF-doxygen/html/SVFType_8cpp_source.html +1 -1
  49. package/SVF-doxygen/html/SVFType_8h_source.html +1 -1
  50. package/SVF-doxygen/html/SVFValue_8h_source.html +1 -1
  51. package/SVF-doxygen/html/SparseBitVector_8h_source.html +3 -3
  52. package/SVF-doxygen/html/WorkList_8h_source.html +1 -1
  53. package/SVF-doxygen/html/ae_8cpp.html +57 -57
  54. package/SVF-doxygen/html/ae_8cpp_source.html +462 -466
  55. package/SVF-doxygen/html/annotated.html +409 -418
  56. package/SVF-doxygen/html/classSVF_1_1AEStat-members.html +2 -2
  57. package/SVF-doxygen/html/classSVF_1_1AEStat.html +184 -190
  58. package/SVF-doxygen/html/classSVF_1_1AbstractInterpretation-members.html +161 -0
  59. package/SVF-doxygen/html/classSVF_1_1AbstractInterpretation.html +4325 -0
  60. package/SVF-doxygen/html/classSVF_1_1AbstractInterpretation.png +0 -0
  61. package/SVF-doxygen/html/classSVF_1_1AbstractState-members.html +134 -0
  62. package/SVF-doxygen/html/classSVF_1_1AbstractState.html +2166 -0
  63. package/SVF-doxygen/html/classSVF_1_1AbstractState.png +0 -0
  64. package/SVF-doxygen/html/classSVF_1_1AddressValue-members.html +15 -28
  65. package/SVF-doxygen/html/classSVF_1_1AddressValue.html +171 -230
  66. package/SVF-doxygen/html/classSVF_1_1BoundedZ3Expr.html +0 -1
  67. package/SVF-doxygen/html/classSVF_1_1BoundedZ3Expr.png +0 -0
  68. package/SVF-doxygen/html/classSVF_1_1BufOverflowChecker-members.html +73 -73
  69. package/SVF-doxygen/html/classSVF_1_1BufOverflowChecker.html +578 -574
  70. package/SVF-doxygen/html/classSVF_1_1BufOverflowChecker.png +0 -0
  71. package/SVF-doxygen/html/classSVF_1_1CFLNode-members.html +48 -49
  72. package/SVF-doxygen/html/classSVF_1_1CFLNode.html +25 -25
  73. package/SVF-doxygen/html/classSVF_1_1ConsExeState.html +1 -1
  74. package/SVF-doxygen/html/classSVF_1_1ExeState.html +12 -14
  75. package/SVF-doxygen/html/classSVF_1_1ExeState.png +0 -0
  76. package/SVF-doxygen/html/classSVF_1_1FILOWorkList.html +3 -3
  77. package/SVF-doxygen/html/classSVF_1_1GenericNode.html +22 -8
  78. package/SVF-doxygen/html/classSVF_1_1GenericNode.png +0 -0
  79. package/SVF-doxygen/html/classSVF_1_1ICFGSimplification.html +1 -1
  80. package/SVF-doxygen/html/classSVF_1_1IntervalValue-members.html +50 -64
  81. package/SVF-doxygen/html/classSVF_1_1IntervalValue.html +349 -459
  82. package/SVF-doxygen/html/classSVF_1_1LLVMModuleSet.html +1 -1
  83. package/SVF-doxygen/html/classSVF_1_1ObjTypeInference.html +1 -1
  84. package/SVF-doxygen/html/classSVF_1_1RelExeState-members.html +1 -1
  85. package/SVF-doxygen/html/classSVF_1_1RelExeState.html +8 -8
  86. package/SVF-doxygen/html/classSVF_1_1RelationSolver-members.html +8 -8
  87. package/SVF-doxygen/html/classSVF_1_1RelationSolver.html +106 -107
  88. package/SVF-doxygen/html/classSVF_1_1SVFIR2AbsState-members.html +141 -0
  89. package/SVF-doxygen/html/classSVF_1_1SVFIR2AbsState.html +3137 -0
  90. package/SVF-doxygen/html/classSVF_1_1SVFIR2ConsExeState.html +5 -5
  91. package/SVF-doxygen/html/classSVF_1_1SVFIR2ItvExeState-members.html +56 -57
  92. package/SVF-doxygen/html/classSVF_1_1SVFIR2ItvExeState.html +1128 -1178
  93. package/SVF-doxygen/html/classSVF_1_1SVFStat.html +1 -1
  94. package/SVF-doxygen/html/classSVF_1_1SparseAbstractState-members.html +157 -0
  95. package/SVF-doxygen/html/classSVF_1_1SparseAbstractState.html +1512 -0
  96. package/SVF-doxygen/html/classSVF_1_1SparseAbstractState.png +0 -0
  97. package/SVF-doxygen/html/classSVF_1_1Z3Expr.html +0 -1
  98. package/SVF-doxygen/html/classSVF_1_1Z3Expr.png +0 -0
  99. package/SVF-doxygen/html/classSymblicAbstractionTest-members.html +3 -3
  100. package/SVF-doxygen/html/classSymblicAbstractionTest.html +400 -404
  101. package/SVF-doxygen/html/classes.html +326 -336
  102. package/SVF-doxygen/html/dir_2c6fb801affc4b3efe6e1ed5974683f6.html +2 -10
  103. package/SVF-doxygen/html/dir_81caa96ab1d3de93b353e2bbe80e6067.html +2 -4
  104. package/SVF-doxygen/html/dir_9a8e7a56f4029a0d9f62b1c6d1f6e85b.html +2 -8
  105. package/SVF-doxygen/html/dir_fbec400583b4bd6c5f2e89c86c5943a6.html +2 -4
  106. package/SVF-doxygen/html/fastcluster__dm_8cpp_8inc_source.html +1 -1
  107. package/SVF-doxygen/html/files.html +18 -27
  108. package/SVF-doxygen/html/functions.html +33 -56
  109. package/SVF-doxygen/html/functions_a.html +29 -42
  110. package/SVF-doxygen/html/functions_b.html +14 -21
  111. package/SVF-doxygen/html/functions_c.html +42 -52
  112. package/SVF-doxygen/html/functions_d.html +7 -4
  113. package/SVF-doxygen/html/functions_e.html +7 -21
  114. package/SVF-doxygen/html/functions_enum.html +4 -7
  115. package/SVF-doxygen/html/functions_eval.html +2 -2
  116. package/SVF-doxygen/html/functions_eval_c.html +0 -3
  117. package/SVF-doxygen/html/functions_eval_i.html +2 -3
  118. package/SVF-doxygen/html/functions_eval_m.html +2 -2
  119. package/SVF-doxygen/html/functions_eval_s.html +2 -5
  120. package/SVF-doxygen/html/functions_eval_u.html +4 -1
  121. package/SVF-doxygen/html/functions_f.html +6 -6
  122. package/SVF-doxygen/html/functions_func.html +24 -31
  123. package/SVF-doxygen/html/functions_func_b.html +10 -16
  124. package/SVF-doxygen/html/functions_func_c.html +30 -39
  125. package/SVF-doxygen/html/functions_func_d.html +1 -1
  126. package/SVF-doxygen/html/functions_func_e.html +7 -17
  127. package/SVF-doxygen/html/functions_func_g.html +61 -115
  128. package/SVF-doxygen/html/functions_func_h.html +22 -24
  129. package/SVF-doxygen/html/functions_func_i.html +64 -94
  130. package/SVF-doxygen/html/functions_func_j.html +4 -6
  131. package/SVF-doxygen/html/functions_func_l.html +9 -23
  132. package/SVF-doxygen/html/functions_func_m.html +7 -8
  133. package/SVF-doxygen/html/functions_func_n.html +8 -13
  134. package/SVF-doxygen/html/functions_func_o.html +57 -48
  135. package/SVF-doxygen/html/functions_func_p.html +6 -11
  136. package/SVF-doxygen/html/functions_func_r.html +4 -4
  137. package/SVF-doxygen/html/functions_func_s.html +35 -50
  138. package/SVF-doxygen/html/functions_func_t.html +26 -40
  139. package/SVF-doxygen/html/functions_func_u.html +6 -5
  140. package/SVF-doxygen/html/functions_func_v.html +2 -9
  141. package/SVF-doxygen/html/functions_func_w.html +9 -8
  142. package/SVF-doxygen/html/functions_func_z.html +1 -2
  143. package/SVF-doxygen/html/functions_func_~.html +10 -22
  144. package/SVF-doxygen/html/functions_g.html +61 -118
  145. package/SVF-doxygen/html/functions_h.html +21 -23
  146. package/SVF-doxygen/html/functions_i.html +76 -106
  147. package/SVF-doxygen/html/functions_j.html +4 -6
  148. package/SVF-doxygen/html/functions_k.html +0 -6
  149. package/SVF-doxygen/html/functions_l.html +11 -25
  150. package/SVF-doxygen/html/functions_m.html +8 -9
  151. package/SVF-doxygen/html/functions_n.html +14 -17
  152. package/SVF-doxygen/html/functions_o.html +71 -90
  153. package/SVF-doxygen/html/functions_p.html +31 -30
  154. package/SVF-doxygen/html/functions_r.html +11 -15
  155. package/SVF-doxygen/html/functions_rela.html +2 -3
  156. package/SVF-doxygen/html/functions_rela_b.html +0 -1
  157. package/SVF-doxygen/html/functions_rela_e.html +0 -1
  158. package/SVF-doxygen/html/functions_rela_i.html +0 -2
  159. package/SVF-doxygen/html/functions_rela_l.html +0 -1
  160. package/SVF-doxygen/html/functions_rela_o.html +0 -18
  161. package/SVF-doxygen/html/functions_rela_r.html +2 -2
  162. package/SVF-doxygen/html/functions_rela_s.html +4 -9
  163. package/SVF-doxygen/html/functions_s.html +45 -70
  164. package/SVF-doxygen/html/functions_t.html +29 -45
  165. package/SVF-doxygen/html/functions_type.html +0 -5
  166. package/SVF-doxygen/html/functions_type_c.html +1 -1
  167. package/SVF-doxygen/html/functions_type_k.html +0 -6
  168. package/SVF-doxygen/html/functions_type_l.html +4 -3
  169. package/SVF-doxygen/html/functions_type_t.html +0 -3
  170. package/SVF-doxygen/html/functions_type_v.html +3 -5
  171. package/SVF-doxygen/html/functions_u.html +8 -4
  172. package/SVF-doxygen/html/functions_v.html +11 -20
  173. package/SVF-doxygen/html/functions_vars.html +33 -56
  174. package/SVF-doxygen/html/functions_vars_a.html +3 -0
  175. package/SVF-doxygen/html/functions_vars_g.html +2 -5
  176. package/SVF-doxygen/html/functions_vars_i.html +3 -0
  177. package/SVF-doxygen/html/functions_vars_t.html +1 -0
  178. package/SVF-doxygen/html/functions_w.html +11 -10
  179. package/SVF-doxygen/html/functions_z.html +1 -2
  180. package/SVF-doxygen/html/functions_~.html +10 -22
  181. package/SVF-doxygen/html/globals.html +2 -2
  182. package/SVF-doxygen/html/globals_defs.html +1 -4
  183. package/SVF-doxygen/html/globals_n.html +2 -5
  184. package/SVF-doxygen/html/globals_s.html +1 -1
  185. package/SVF-doxygen/html/globals_vars.html +5 -5
  186. package/SVF-doxygen/html/globals_z.html +3 -3
  187. package/SVF-doxygen/html/hierarchy.html +622 -631
  188. package/SVF-doxygen/html/namespaceSVF.html +449 -458
  189. package/SVF-doxygen/html/search/all_0.js +155 -161
  190. package/SVF-doxygen/html/search/all_1.js +502 -503
  191. package/SVF-doxygen/html/search/all_10.js +325 -326
  192. package/SVF-doxygen/html/search/all_11.js +227 -227
  193. package/SVF-doxygen/html/search/all_12.js +563 -574
  194. package/SVF-doxygen/html/search/all_13.js +206 -208
  195. package/SVF-doxygen/html/search/all_14.js +74 -73
  196. package/SVF-doxygen/html/search/all_15.js +175 -176
  197. package/SVF-doxygen/html/search/all_16.js +77 -77
  198. package/SVF-doxygen/html/search/all_17.js +1 -1
  199. package/SVF-doxygen/html/search/all_18.js +1 -1
  200. package/SVF-doxygen/html/search/all_19.js +27 -27
  201. package/SVF-doxygen/html/search/all_1a.js +175 -179
  202. package/SVF-doxygen/html/search/all_2.js +180 -182
  203. package/SVF-doxygen/html/search/all_3.js +636 -642
  204. package/SVF-doxygen/html/search/all_4.js +237 -236
  205. package/SVF-doxygen/html/search/all_5.js +120 -126
  206. package/SVF-doxygen/html/search/all_6.js +236 -236
  207. package/SVF-doxygen/html/search/all_7.js +1040 -1056
  208. package/SVF-doxygen/html/search/all_8.js +211 -215
  209. package/SVF-doxygen/html/search/all_9.js +631 -638
  210. package/SVF-doxygen/html/search/all_a.js +46 -46
  211. package/SVF-doxygen/html/search/all_b.js +24 -26
  212. package/SVF-doxygen/html/search/all_c.js +113 -115
  213. package/SVF-doxygen/html/search/all_d.js +205 -205
  214. package/SVF-doxygen/html/search/all_e.js +207 -209
  215. package/SVF-doxygen/html/search/all_f.js +122 -122
  216. package/SVF-doxygen/html/search/classes_0.js +29 -28
  217. package/SVF-doxygen/html/search/classes_1.js +11 -11
  218. package/SVF-doxygen/html/search/classes_10.js +72 -74
  219. package/SVF-doxygen/html/search/classes_11.js +14 -14
  220. package/SVF-doxygen/html/search/classes_12.js +2 -2
  221. package/SVF-doxygen/html/search/classes_13.js +10 -10
  222. package/SVF-doxygen/html/search/classes_14.js +19 -19
  223. package/SVF-doxygen/html/search/classes_15.js +1 -1
  224. package/SVF-doxygen/html/search/classes_2.js +72 -73
  225. package/SVF-doxygen/html/search/classes_3.js +35 -35
  226. package/SVF-doxygen/html/search/classes_4.js +7 -8
  227. package/SVF-doxygen/html/search/classes_5.js +28 -28
  228. package/SVF-doxygen/html/search/classes_6.js +98 -98
  229. package/SVF-doxygen/html/search/classes_7.js +34 -38
  230. package/SVF-doxygen/html/search/classes_8.js +57 -59
  231. package/SVF-doxygen/html/search/classes_9.js +1 -1
  232. package/SVF-doxygen/html/search/classes_a.js +12 -12
  233. package/SVF-doxygen/html/search/classes_b.js +29 -29
  234. package/SVF-doxygen/html/search/classes_c.js +6 -6
  235. package/SVF-doxygen/html/search/classes_d.js +19 -19
  236. package/SVF-doxygen/html/search/classes_e.js +36 -36
  237. package/SVF-doxygen/html/search/classes_f.js +25 -25
  238. package/SVF-doxygen/html/search/defines_0.js +3 -3
  239. package/SVF-doxygen/html/search/defines_1.js +3 -3
  240. package/SVF-doxygen/html/search/defines_10.js +2 -2
  241. package/SVF-doxygen/html/search/defines_2.js +30 -30
  242. package/SVF-doxygen/html/search/defines_3.js +20 -20
  243. package/SVF-doxygen/html/search/defines_4.js +3 -3
  244. package/SVF-doxygen/html/search/defines_5.js +4 -4
  245. package/SVF-doxygen/html/search/defines_6.js +2 -2
  246. package/SVF-doxygen/html/search/defines_7.js +5 -5
  247. package/SVF-doxygen/html/search/defines_8.js +11 -11
  248. package/SVF-doxygen/html/search/defines_9.js +9 -9
  249. package/SVF-doxygen/html/search/defines_a.js +2 -2
  250. package/SVF-doxygen/html/search/defines_b.js +1 -1
  251. package/SVF-doxygen/html/search/defines_c.js +3 -4
  252. package/SVF-doxygen/html/search/defines_d.js +2 -2
  253. package/SVF-doxygen/html/search/defines_e.js +8 -8
  254. package/SVF-doxygen/html/search/defines_f.js +4 -4
  255. package/SVF-doxygen/html/search/enums_0.js +3 -4
  256. package/SVF-doxygen/html/search/enums_1.js +2 -2
  257. package/SVF-doxygen/html/search/enums_10.js +1 -1
  258. package/SVF-doxygen/html/search/enums_11.js +1 -1
  259. package/SVF-doxygen/html/search/enums_2.js +9 -9
  260. package/SVF-doxygen/html/search/enums_3.js +2 -1
  261. package/SVF-doxygen/html/search/enums_4.js +3 -4
  262. package/SVF-doxygen/html/search/enums_5.js +1 -1
  263. package/SVF-doxygen/html/search/enums_6.js +2 -2
  264. package/SVF-doxygen/html/search/enums_7.js +2 -2
  265. package/SVF-doxygen/html/search/enums_8.js +4 -4
  266. package/SVF-doxygen/html/search/enums_9.js +1 -1
  267. package/SVF-doxygen/html/search/enums_a.js +1 -1
  268. package/SVF-doxygen/html/search/enums_b.js +7 -7
  269. package/SVF-doxygen/html/search/enums_c.js +1 -1
  270. package/SVF-doxygen/html/search/enums_d.js +4 -4
  271. package/SVF-doxygen/html/search/enums_e.js +2 -2
  272. package/SVF-doxygen/html/search/enums_f.js +4 -4
  273. package/SVF-doxygen/html/search/enumvalues_0.js +15 -15
  274. package/SVF-doxygen/html/search/enumvalues_1.js +16 -16
  275. package/SVF-doxygen/html/search/enumvalues_10.js +36 -36
  276. package/SVF-doxygen/html/search/enumvalues_11.js +6 -5
  277. package/SVF-doxygen/html/search/enumvalues_12.js +10 -10
  278. package/SVF-doxygen/html/search/enumvalues_13.js +1 -1
  279. package/SVF-doxygen/html/search/enumvalues_14.js +1 -1
  280. package/SVF-doxygen/html/search/enumvalues_15.js +4 -4
  281. package/SVF-doxygen/html/search/enumvalues_2.js +36 -37
  282. package/SVF-doxygen/html/search/enumvalues_3.js +13 -13
  283. package/SVF-doxygen/html/search/enumvalues_4.js +2 -2
  284. package/SVF-doxygen/html/search/enumvalues_5.js +50 -50
  285. package/SVF-doxygen/html/search/enumvalues_6.js +6 -6
  286. package/SVF-doxygen/html/search/enumvalues_7.js +8 -8
  287. package/SVF-doxygen/html/search/enumvalues_8.js +24 -24
  288. package/SVF-doxygen/html/search/enumvalues_9.js +6 -6
  289. package/SVF-doxygen/html/search/enumvalues_a.js +17 -17
  290. package/SVF-doxygen/html/search/enumvalues_b.js +11 -11
  291. package/SVF-doxygen/html/search/enumvalues_c.js +5 -5
  292. package/SVF-doxygen/html/search/enumvalues_d.js +19 -19
  293. package/SVF-doxygen/html/search/enumvalues_e.js +9 -9
  294. package/SVF-doxygen/html/search/enumvalues_f.js +48 -49
  295. package/SVF-doxygen/html/search/files_0.js +18 -16
  296. package/SVF-doxygen/html/search/files_1.js +9 -9
  297. package/SVF-doxygen/html/search/files_10.js +8 -8
  298. package/SVF-doxygen/html/search/files_11.js +8 -8
  299. package/SVF-doxygen/html/search/files_12.js +2 -2
  300. package/SVF-doxygen/html/search/files_2.js +51 -53
  301. package/SVF-doxygen/html/search/files_3.js +14 -14
  302. package/SVF-doxygen/html/search/files_4.js +3 -5
  303. package/SVF-doxygen/html/search/files_5.js +13 -13
  304. package/SVF-doxygen/html/search/files_6.js +10 -10
  305. package/SVF-doxygen/html/search/files_7.js +15 -17
  306. package/SVF-doxygen/html/search/files_8.js +13 -13
  307. package/SVF-doxygen/html/search/files_9.js +18 -18
  308. package/SVF-doxygen/html/search/files_a.js +3 -3
  309. package/SVF-doxygen/html/search/files_b.js +4 -4
  310. package/SVF-doxygen/html/search/files_c.js +20 -20
  311. package/SVF-doxygen/html/search/files_d.js +4 -4
  312. package/SVF-doxygen/html/search/files_e.js +57 -62
  313. package/SVF-doxygen/html/search/files_f.js +8 -8
  314. package/SVF-doxygen/html/search/functions_0.js +13 -13
  315. package/SVF-doxygen/html/search/functions_1.js +366 -368
  316. package/SVF-doxygen/html/search/functions_10.js +139 -140
  317. package/SVF-doxygen/html/search/functions_11.js +140 -140
  318. package/SVF-doxygen/html/search/functions_12.js +294 -299
  319. package/SVF-doxygen/html/search/functions_13.js +72 -73
  320. package/SVF-doxygen/html/search/functions_14.js +41 -41
  321. package/SVF-doxygen/html/search/functions_15.js +70 -72
  322. package/SVF-doxygen/html/search/functions_16.js +38 -38
  323. package/SVF-doxygen/html/search/functions_17.js +3 -3
  324. package/SVF-doxygen/html/search/functions_18.js +175 -179
  325. package/SVF-doxygen/html/search/functions_2.js +92 -94
  326. package/SVF-doxygen/html/search/functions_3.js +258 -261
  327. package/SVF-doxygen/html/search/functions_4.js +85 -85
  328. package/SVF-doxygen/html/search/functions_5.js +54 -57
  329. package/SVF-doxygen/html/search/functions_6.js +65 -65
  330. package/SVF-doxygen/html/search/functions_7.js +857 -872
  331. package/SVF-doxygen/html/search/functions_8.js +162 -162
  332. package/SVF-doxygen/html/search/functions_9.js +440 -446
  333. package/SVF-doxygen/html/search/functions_a.js +30 -30
  334. package/SVF-doxygen/html/search/functions_b.js +2 -2
  335. package/SVF-doxygen/html/search/functions_c.js +22 -25
  336. package/SVF-doxygen/html/search/functions_d.js +82 -82
  337. package/SVF-doxygen/html/search/functions_e.js +34 -36
  338. package/SVF-doxygen/html/search/functions_f.js +58 -58
  339. package/SVF-doxygen/html/search/namespaces_0.js +1 -1
  340. package/SVF-doxygen/html/search/namespaces_1.js +7 -7
  341. package/SVF-doxygen/html/search/related_0.js +4 -4
  342. package/SVF-doxygen/html/search/related_1.js +2 -2
  343. package/SVF-doxygen/html/search/related_2.js +2 -2
  344. package/SVF-doxygen/html/search/related_3.js +2 -2
  345. package/SVF-doxygen/html/search/related_4.js +2 -2
  346. package/SVF-doxygen/html/search/related_5.js +1 -1
  347. package/SVF-doxygen/html/search/related_6.js +2 -2
  348. package/SVF-doxygen/html/search/related_7.js +5 -5
  349. package/SVF-doxygen/html/search/related_8.js +2 -2
  350. package/SVF-doxygen/html/search/related_9.js +4 -4
  351. package/SVF-doxygen/html/search/related_a.js +19 -19
  352. package/SVF-doxygen/html/search/related_b.js +4 -4
  353. package/SVF-doxygen/html/search/related_c.js +2 -2
  354. package/SVF-doxygen/html/search/related_d.js +11 -12
  355. package/SVF-doxygen/html/search/related_e.js +2 -2
  356. package/SVF-doxygen/html/search/related_f.js +2 -2
  357. package/SVF-doxygen/html/search/typedefs_0.js +18 -19
  358. package/SVF-doxygen/html/search/typedefs_1.js +27 -27
  359. package/SVF-doxygen/html/search/typedefs_10.js +65 -65
  360. package/SVF-doxygen/html/search/typedefs_11.js +12 -13
  361. package/SVF-doxygen/html/search/typedefs_12.js +13 -13
  362. package/SVF-doxygen/html/search/typedefs_13.js +40 -40
  363. package/SVF-doxygen/html/search/typedefs_14.js +11 -11
  364. package/SVF-doxygen/html/search/typedefs_2.js +125 -125
  365. package/SVF-doxygen/html/search/typedefs_3.js +39 -39
  366. package/SVF-doxygen/html/search/typedefs_4.js +17 -17
  367. package/SVF-doxygen/html/search/typedefs_5.js +42 -42
  368. package/SVF-doxygen/html/search/typedefs_6.js +54 -54
  369. package/SVF-doxygen/html/search/typedefs_7.js +47 -47
  370. package/SVF-doxygen/html/search/typedefs_8.js +1 -1
  371. package/SVF-doxygen/html/search/typedefs_9.js +4 -6
  372. package/SVF-doxygen/html/search/typedefs_a.js +30 -29
  373. package/SVF-doxygen/html/search/typedefs_b.js +29 -29
  374. package/SVF-doxygen/html/search/typedefs_c.js +41 -41
  375. package/SVF-doxygen/html/search/typedefs_d.js +15 -15
  376. package/SVF-doxygen/html/search/typedefs_e.js +52 -52
  377. package/SVF-doxygen/html/search/typedefs_f.js +14 -14
  378. package/SVF-doxygen/html/search/variables_0.js +171 -177
  379. package/SVF-doxygen/html/search/variables_1.js +78 -77
  380. package/SVF-doxygen/html/search/variables_10.js +98 -98
  381. package/SVF-doxygen/html/search/variables_11.js +47 -47
  382. package/SVF-doxygen/html/search/variables_12.js +93 -93
  383. package/SVF-doxygen/html/search/variables_13.js +76 -76
  384. package/SVF-doxygen/html/search/variables_14.js +14 -14
  385. package/SVF-doxygen/html/search/variables_15.js +49 -49
  386. package/SVF-doxygen/html/search/variables_16.js +11 -11
  387. package/SVF-doxygen/html/search/variables_17.js +1 -1
  388. package/SVF-doxygen/html/search/variables_18.js +17 -17
  389. package/SVF-doxygen/html/search/variables_2.js +40 -40
  390. package/SVF-doxygen/html/search/variables_3.js +143 -143
  391. package/SVF-doxygen/html/search/variables_4.js +51 -51
  392. package/SVF-doxygen/html/search/variables_5.js +39 -39
  393. package/SVF-doxygen/html/search/variables_6.js +66 -66
  394. package/SVF-doxygen/html/search/variables_7.js +33 -34
  395. package/SVF-doxygen/html/search/variables_8.js +8 -8
  396. package/SVF-doxygen/html/search/variables_9.js +80 -79
  397. package/SVF-doxygen/html/search/variables_a.js +4 -4
  398. package/SVF-doxygen/html/search/variables_b.js +10 -10
  399. package/SVF-doxygen/html/search/variables_c.js +44 -44
  400. package/SVF-doxygen/html/search/variables_d.js +58 -58
  401. package/SVF-doxygen/html/search/variables_e.js +123 -123
  402. package/SVF-doxygen/html/search/variables_f.js +31 -31
  403. package/SVF-doxygen/html/structSVF_1_1AbstractValue-members.html +164 -0
  404. package/SVF-doxygen/html/structSVF_1_1AbstractValue.html +2820 -0
  405. package/SVF-doxygen/html/structstd_1_1hash_3_01SVF_1_1SparseAbstractState_01_4-members.html +84 -0
  406. package/SVF-doxygen/html/structstd_1_1hash_3_01SVF_1_1SparseAbstractState_01_4.html +130 -0
  407. package/SVF-doxygen/html/svf-ex_8cpp.html +25 -25
  408. package/SVF-doxygen/html/svf-ex_8cpp_source.html +26 -26
  409. package/package.json +1 -1
  410. package/svf/include/AE/Core/AbstractState.h +749 -0
  411. package/svf/include/AE/Core/AbstractValue.h +514 -39
  412. package/svf/include/AE/Core/AddressValue.h +32 -25
  413. package/svf/include/AE/Core/IntervalValue.h +10 -24
  414. package/svf/include/AE/Core/RelExeState.h +1 -1
  415. package/svf/include/AE/Core/RelationSolver.h +9 -9
  416. package/svf/include/AE/Svfexe/{AbstractExecution.h → AbstractInterpretation.h} +27 -26
  417. package/svf/include/AE/Svfexe/BufOverflowChecker.h +5 -5
  418. package/svf/include/AE/Svfexe/ICFGSimplification.h +1 -2
  419. package/svf/include/AE/Svfexe/{SVFIR2ItvExeState.h → SVFIR2AbsState.h} +30 -33
  420. package/svf/lib/AE/Core/AbstractState.cpp +357 -0
  421. package/svf/lib/AE/Core/RelationSolver.cpp +31 -31
  422. package/svf/lib/AE/Core/SVFIR2Relation.cpp +17 -16
  423. package/svf/lib/AE/Svfexe/{AbstractExecution.cpp → AbstractInterpretation.cpp} +166 -156
  424. package/svf/lib/AE/Svfexe/BufOverflowChecker.cpp +51 -47
  425. package/svf/lib/AE/Svfexe/{SVFIR2ItvExeState.cpp → SVFIR2AbsState.cpp} +211 -247
  426. package/svf-llvm/tools/AE/ae.cpp +105 -108
  427. package/svf-llvm/tools/Example/svf-ex.cpp +2 -2
  428. package/svf/include/AE/Core/ConsExeState.h +0 -453
  429. package/svf/include/AE/Core/ExeState.h +0 -304
  430. package/svf/include/AE/Core/IntervalExeState.h +0 -650
  431. package/svf/include/AE/Core/SingleAbsValue.h +0 -477
  432. package/svf/include/AE/Core/SymState.h +0 -221
  433. package/svf/include/AE/Svfexe/SVFIR2ConsExeState.h +0 -148
  434. package/svf/lib/AE/Core/ConsExeState.cpp +0 -603
  435. package/svf/lib/AE/Core/ExeState.cpp +0 -117
  436. package/svf/lib/AE/Core/IntervalExeState.cpp +0 -329
  437. package/svf/lib/AE/Core/SymState.cpp +0 -37
  438. package/svf/lib/AE/Svfexe/SVFIR2ConsExeState.cpp +0 -772
@@ -104,17 +104,17 @@ $(function() {
104
104
  <div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespaceSVF.html">SVF</a>;</div>
105
105
  <div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="keyword">using namespace </span>SVFUtil;</div>
106
106
  <div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; </div>
107
- <div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="classSVF_1_1RelationSolver.html#a0df88638c5e3f8cd56d34088b96199f1"> 36</a></span>&#160;<a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> <a class="code" href="classSVF_1_1RelationSolver.html#a0df88638c5e3f8cd56d34088b96199f1">RelationSolver::bilateral</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> &amp;domain, <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&amp; phi,</div>
108
- <div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> descend_check)</div>
107
+ <div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="classSVF_1_1RelationSolver.html#a23c59e437950b139dde49f11eb45b63a"> 36</a></span>&#160;<a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a> <a class="code" href="classSVF_1_1RelationSolver.html#a23c59e437950b139dde49f11eb45b63a">RelationSolver::bilateral</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a>&amp;domain, <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&amp; phi,</div>
108
+ <div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> descend_check)</div>
109
109
  <div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;{</div>
110
- <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>
111
- <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>
110
+ <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>
111
+ <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>
112
112
  <div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> meets_in_a_row = 0;</div>
113
113
  <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>
114
114
  <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>
115
115
  <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>
116
116
  <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>
117
- <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>
117
+ <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>
118
118
  <div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; </div>
119
119
  <div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keywordflow">while</span> (lower != upper)</div>
120
120
  <div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; {</div>
@@ -143,7 +143,7 @@ $(function() {
143
143
  <div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; solution.emplace(std::stoi(v.name().str()),</div>
144
144
  <div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; m.get_const_interp(v).get_numeral_int());</div>
145
145
  <div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; }</div>
146
- <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>
146
+ <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>
147
147
  <div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; {</div>
148
148
  <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>
149
149
  <div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; {</div>
@@ -151,10 +151,10 @@ $(function() {
151
151
  <div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; }</div>
152
152
  <div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; }</div>
153
153
  <div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; solver.pop();</div>
154
- <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>
155
- <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>
156
- <div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> rhs = beta(solution, domain);</div>
157
- <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>
154
+ <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>
155
+ <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>
156
+ <div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a> rhs = beta(solution, domain);</div>
157
+ <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>
158
158
  <div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; lower = newLower;</div>
159
159
  <div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; meets_in_a_row = 0;</div>
160
160
  <div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; }</div>
@@ -166,9 +166,9 @@ $(function() {
166
166
  <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>
167
167
  <div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keywordflow">return</span> upper;</div>
168
168
  <div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; }</div>
169
- <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>
170
- <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>
171
- <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>
169
+ <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>
170
+ <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>
171
+ <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>
172
172
  <div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; upper = newUpper;</div>
173
173
  <div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; meets_in_a_row += 1;</div>
174
174
  <div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; }</div>
@@ -176,9 +176,9 @@ $(function() {
176
176
  <div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keywordflow">return</span> upper;</div>
177
177
  <div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;}</div>
178
178
  <div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; </div>
179
- <div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="classSVF_1_1RelationSolver.html#a657af041f883e7b1a3f9892453a2c4cf"> 114</a></span>&#160;<a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> <a class="code" href="classSVF_1_1RelationSolver.html#a657af041f883e7b1a3f9892453a2c4cf">RelationSolver::RSY</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a>&amp; domain, <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&amp; phi)</div>
179
+ <div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="classSVF_1_1RelationSolver.html#a0bc76a5f96dab54e1c9678312579d51a"> 114</a></span>&#160;<a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a> <a class="code" href="classSVF_1_1RelationSolver.html#a0bc76a5f96dab54e1c9678312579d51a">RelationSolver::RSY</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a>&amp; domain, <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&amp; phi)</div>
180
180
  <div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;{</div>
181
- <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>
181
+ <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>
182
182
  <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>
183
183
  <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>
184
184
  <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>
@@ -202,7 +202,7 @@ $(function() {
202
202
  <div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; solution.emplace(std::stoi(v.name().str()),</div>
203
203
  <div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; m.get_const_interp(v).get_numeral_int());</div>
204
204
  <div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; }</div>
205
- <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>
205
+ <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>
206
206
  <div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; {</div>
207
207
  <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>
208
208
  <div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; {</div>
@@ -210,9 +210,9 @@ $(function() {
210
210
  <div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; }</div>
211
211
  <div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; }</div>
212
212
  <div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; solver.pop();</div>
213
- <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>
214
- <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>
215
- <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>(beta(solution, domain));</div>
213
+ <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>
214
+ <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>
215
+ <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>(beta(solution, domain));</div>
216
216
  <div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; lower = newLower;</div>
217
217
  <div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; }</div>
218
218
  <div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keywordflow">else</span> </div>
@@ -221,7 +221,7 @@ $(function() {
221
221
  <div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keywordflow">if</span> (checkRes == z3::unknown)</div>
222
222
  <div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; {</div>
223
223
  <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>
224
- <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>
224
+ <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>
225
225
  <div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; }</div>
226
226
  <div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keywordflow">break</span>;</div>
227
227
  <div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; }</div>
@@ -229,8 +229,8 @@ $(function() {
229
229
  <div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keywordflow">return</span> lower;</div>
230
230
  <div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;}</div>
231
231
  <div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; </div>
232
- <div class="line"><a name="l00170"></a><span class="lineno"><a class="line" href="classSVF_1_1RelationSolver.html#a012d18ece2c66ba6e784ae9578171369"> 170</a></span>&#160;<a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> <a class="code" href="classSVF_1_1RelationSolver.html#a012d18ece2c66ba6e784ae9578171369">RelationSolver::abstract_consequence</a>(</div>
233
- <div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a>&amp; lower, <span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a>&amp; upper, <span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a>&amp; domain)<span class="keyword"> const</span></div>
232
+ <div class="line"><a name="l00170"></a><span class="lineno"><a class="line" href="classSVF_1_1RelationSolver.html#a575995a08ab7d186e03e9632398500ce"> 170</a></span>&#160;<a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a> <a class="code" href="classSVF_1_1RelationSolver.html#a575995a08ab7d186e03e9632398500ce">RelationSolver::abstract_consequence</a>(</div>
233
+ <div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a>&amp; lower, <span class="keyword">const</span> <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a>&amp; upper, <span class="keyword">const</span> <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a>&amp; domain)<span class="keyword"> const</span></div>
234
234
  <div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;<span class="keyword"></span>{</div>
235
235
  <div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="comment">/*Returns the &quot;abstract consequence&quot; of lower and upper.</span></div>
236
236
  <div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;<span class="comment"></span> </div>
@@ -242,11 +242,11 @@ $(function() {
242
242
  <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>
243
243
  <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>
244
244
  <div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; </div>
245
- <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>
246
- <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>
245
+ <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>
246
+ <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>
247
247
  <div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; {</div>
248
- <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>
249
- <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>
248
+ <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>
249
+ <div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; proposed[it-&gt;first] = lower[it-&gt;first].getInterval();</div>
250
250
  <div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keywordflow">if</span> (!(proposed &gt;= upper)) </div>
251
251
  <div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; {</div>
252
252
  <div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keywordflow">return</span> proposed; </div>
@@ -255,10 +255,10 @@ $(function() {
255
255
  <div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keywordflow">return</span> lower; </div>
256
256
  <div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;}</div>
257
257
  <div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; </div>
258
- <div class="line"><a name="l00199"></a><span class="lineno"><a class="line" href="classSVF_1_1RelationSolver.html#af860063ccaeca043bac84eb9eb2cf80a"> 199</a></span>&#160;<a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> <a class="code" href="classSVF_1_1RelationSolver.html#af860063ccaeca043bac84eb9eb2cf80a">RelationSolver::gamma_hat</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a>&amp; exeState)<span class="keyword"> const</span></div>
258
+ <div class="line"><a name="l00199"></a><span class="lineno"><a class="line" href="classSVF_1_1RelationSolver.html#a04f145c44a67ebda99ccc5a3081239ff"> 199</a></span>&#160;<a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> <a class="code" href="classSVF_1_1RelationSolver.html#a04f145c44a67ebda99ccc5a3081239ff">RelationSolver::gamma_hat</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a>&amp; exeState)<span class="keyword"> const</span></div>
259
259
  <div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;<span class="keyword"></span>{</div>
260
260
  <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>
261
- <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>
261
+ <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>
262
262
  <div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; {</div>
263
263
  <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>
264
264
  <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>
@@ -271,16 +271,16 @@ $(function() {
271
271
  <div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keywordflow">return</span> res;</div>
272
272
  <div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;}</div>
273
273
  <div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; </div>
274
- <div class="line"><a name="l00215"></a><span class="lineno"><a class="line" href="classSVF_1_1RelationSolver.html#a93a034bb18001abc278d6986706024af"> 215</a></span>&#160;<a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> <a class="code" href="classSVF_1_1RelationSolver.html#af860063ccaeca043bac84eb9eb2cf80a">RelationSolver::gamma_hat</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a>&amp; alpha,</div>
275
- <div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a>&amp; exeState)<span class="keyword"> const</span></div>
274
+ <div class="line"><a name="l00215"></a><span class="lineno"><a class="line" href="classSVF_1_1RelationSolver.html#a84a60a6b89d86e38887192c56052dbe4"> 215</a></span>&#160;<a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> <a class="code" href="classSVF_1_1RelationSolver.html#a04f145c44a67ebda99ccc5a3081239ff">RelationSolver::gamma_hat</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a>&amp; alpha,</div>
275
+ <div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a>&amp; exeState)<span class="keyword"> const</span></div>
276
276
  <div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;<span class="keyword"></span>{</div>
277
277
  <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>
278
- <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>
278
+ <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>
279
279
  <div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; {</div>
280
- <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>
281
- <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>
280
+ <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>
281
+ <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>
282
282
  <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>
283
- <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>
283
+ <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>
284
284
  <div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keywordflow">continue</span>;</div>
285
285
  <div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> v = toZ3Expr(<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first);</div>
286
286
  <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>
@@ -289,10 +289,10 @@ $(function() {
289
289
  <div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keywordflow">return</span> res;</div>
290
290
  <div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;}</div>
291
291
  <div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; </div>
292
- <div class="line"><a name="l00233"></a><span class="lineno"><a class="line" href="classSVF_1_1RelationSolver.html#aff6752947e73cd0559b5a340547c9016"> 233</a></span>&#160;<a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> <a class="code" href="classSVF_1_1RelationSolver.html#af860063ccaeca043bac84eb9eb2cf80a">RelationSolver::gamma_hat</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <span class="keywordtype">id</span>, <span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a>&amp; exeState)<span class="keyword"> const</span></div>
292
+ <div class="line"><a name="l00233"></a><span class="lineno"><a class="line" href="classSVF_1_1RelationSolver.html#abd0c8cd1b840799cc4c17c3476da6788"> 233</a></span>&#160;<a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> <a class="code" href="classSVF_1_1RelationSolver.html#a04f145c44a67ebda99ccc5a3081239ff">RelationSolver::gamma_hat</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <span class="keywordtype">id</span>, <span class="keyword">const</span> <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a>&amp; exeState)<span class="keyword"> const</span></div>
293
293
  <div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;<span class="keyword"></span>{</div>
294
- <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>
295
- <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>
294
+ <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>
295
+ <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>
296
296
  <div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> v = toZ3Expr(<span class="keywordtype">id</span>);</div>
297
297
  <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>
298
298
  <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>
@@ -300,14 +300,14 @@ $(function() {
300
300
  <div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="keywordflow">return</span> res;</div>
301
301
  <div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;}</div>
302
302
  <div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; </div>
303
- <div class="line"><a name="l00244"></a><span class="lineno"><a class="line" href="classSVF_1_1RelationSolver.html#ac4abc5e1eb3b638710572c958162c22c"> 244</a></span>&#160;<a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> <a class="code" href="classSVF_1_1RelationSolver.html#ac4abc5e1eb3b638710572c958162c22c">RelationSolver::beta</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;u32_t, s32_t&gt;</a>&amp; sigma,</div>
304
- <div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a>&amp; exeState)<span class="keyword"> const</span></div>
303
+ <div class="line"><a name="l00244"></a><span class="lineno"><a class="line" href="classSVF_1_1RelationSolver.html#a342d3c7d5192449fb10e9c3bab2de24f"> 244</a></span>&#160;<a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a> <a class="code" href="classSVF_1_1RelationSolver.html#a342d3c7d5192449fb10e9c3bab2de24f">RelationSolver::beta</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;u32_t, s32_t&gt;</a>&amp; sigma,</div>
304
+ <div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a>&amp; exeState)<span class="keyword"> const</span></div>
305
305
  <div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;<span class="keyword"></span>{</div>
306
- <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>
307
- <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>
306
+ <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>
307
+ <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>
308
308
  <div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; {</div>
309
- <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>
310
- <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>
309
+ <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>
310
+ <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>
311
311
  <div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; }</div>
312
312
  <div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="keywordflow">return</span> res;</div>
313
313
  <div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;}</div>
@@ -325,7 +325,7 @@ $(function() {
325
325
  <div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; }</div>
326
326
  <div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;}</div>
327
327
  <div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; </div>
328
- <div class="line"><a name="l00269"></a><span class="lineno"><a class="line" href="classSVF_1_1RelationSolver.html#a7e827609a1d69c6517f1a3eee0326fc3"> 269</a></span>&#160;<a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> <a class="code" href="classSVF_1_1RelationSolver.html#a7e827609a1d69c6517f1a3eee0326fc3">RelationSolver::BS</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a>&amp; domain, <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> &amp;phi)</div>
328
+ <div class="line"><a name="l00269"></a><span class="lineno"><a class="line" href="classSVF_1_1RelationSolver.html#a98f7e3ae9f43aea178d77a58ac8e927f"> 269</a></span>&#160;<a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a> <a class="code" href="classSVF_1_1RelationSolver.html#a98f7e3ae9f43aea178d77a58ac8e927f">RelationSolver::BS</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a>&amp; domain, <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> &amp;phi)</div>
329
329
  <div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;{</div>
330
330
  <div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> bias = 0;</div>
331
331
  <div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> infinity = INT32_MAX - 1;</div>
@@ -335,7 +335,7 @@ $(function() {
335
335
  <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>
336
336
  <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>
337
337
  <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>
338
- <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>
338
+ <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>
339
339
  <div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; {</div>
340
340
  <div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; updateMap(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>
341
341
  <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>
@@ -349,7 +349,7 @@ $(function() {
349
349
  <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>
350
350
  <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>
351
351
  <div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; }</div>
352
- <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>
352
+ <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>
353
353
  <div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; {</div>
354
354
  <div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> reverse_key = <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first + bias;</div>
355
355
  <div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; updateMap(ret, reverse_key, -<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.second.lb());</div>
@@ -364,22 +364,22 @@ $(function() {
364
364
  <div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; new_phi = (new_phi &amp;&amp; (toZ3Expr(reverse_key) == -1 * toZ3Expr(<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first)));</div>
365
365
  <div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; }</div>
366
366
  <div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; BoxedOptSolver(new_phi.<a class="code" href="classSVF_1_1Z3Expr.html#afb3478316592a395c6d473791b5a0981">simplify</a>(), ret, low_values, high_values);</div>
367
- <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>
367
+ <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>
368
368
  <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>
369
369
  <div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; {</div>
370
370
  <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>
371
371
  <div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; {</div>
372
372
  <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>
373
- <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>
373
+ <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>
374
374
  <div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <span class="keywordflow">else</span></div>
375
- <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>
375
+ <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>
376
376
  <div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; }</div>
377
377
  <div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; <span class="keywordflow">else</span></div>
378
378
  <div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; {</div>
379
379
  <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>
380
- <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>
380
+ <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>
381
381
  <div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <span class="keywordflow">else</span></div>
382
- <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>
382
+ <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>
383
383
  <div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; }</div>
384
384
  <div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; }</div>
385
385
  <div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <span class="keywordflow">return</span> retInv;</div>
@@ -470,42 +470,41 @@ $(function() {
470
470
  <div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160;}</div>
471
471
  </div><!-- fragment --></div><!-- contents -->
472
472
  <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>
473
- <div class="ttc" id="aclassSVF_1_1RelationSolver_html_a0df88638c5e3f8cd56d34088b96199f1"><div class="ttname"><a href="classSVF_1_1RelationSolver.html#a0df88638c5e3f8cd56d34088b96199f1">SVF::RelationSolver::bilateral</a></div><div class="ttdeci">IntervalESBase bilateral(const IntervalESBase &amp;domain, const Z3Expr &amp;phi, u32_t descend_check=0)</div><div class="ttdef"><b>Definition:</b> <a href="RelationSolver_8cpp_source.html#l00036">RelationSolver.cpp:36</a></div></div>
474
473
  <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>
475
- <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>
474
+ <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#l00206">IntervalValue.h:206</a></div></div>
476
475
  <div class="ttc" id="anamespaceSVF_html"><div class="ttname"><a href="namespaceSVF.html">SVF</a></div><div class="ttdoc">for isBitcode</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00067">BasicTypes.h:67</a></div></div>
477
- <div class="ttc" id="aclassSVF_1_1RelationSolver_html_a7e827609a1d69c6517f1a3eee0326fc3"><div class="ttname"><a href="classSVF_1_1RelationSolver.html#a7e827609a1d69c6517f1a3eee0326fc3">SVF::RelationSolver::BS</a></div><div class="ttdeci">IntervalESBase BS(const IntervalESBase &amp;domain, const Z3Expr &amp;phi)</div><div class="ttdef"><b>Definition:</b> <a href="RelationSolver_8cpp_source.html#l00269">RelationSolver.cpp:269</a></div></div>
476
+ <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#l00132">AbstractState.h:132</a></div></div>
477
+ <div class="ttc" id="aclassSVF_1_1RelationSolver_html_a0bc76a5f96dab54e1c9678312579d51a"><div class="ttname"><a href="classSVF_1_1RelationSolver.html#a0bc76a5f96dab54e1c9678312579d51a">SVF::RelationSolver::RSY</a></div><div class="ttdeci">AbstractState RSY(const AbstractState &amp;domain, const Z3Expr &amp;phi)</div><div class="ttdef"><b>Definition:</b> <a href="RelationSolver_8cpp_source.html#l00114">RelationSolver.cpp:114</a></div></div>
478
478
  <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>
479
479
  <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>
480
- <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>
480
+ <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#l00055">IntervalValue.h:55</a></div></div>
481
481
  <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>
482
+ <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#l00144">AbstractState.h:144</a></div></div>
482
483
  <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>
483
484
  <div class="ttc" id="aOptions_8h_html"><div class="ttname"><a href="Options_8h.html">Options.h</a></div></div>
484
485
  <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>
485
- <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>
486
486
  <div class="ttc" id="aRelationSolver_8h_html"><div class="ttname"><a href="RelationSolver_8h.html">RelationSolver.h</a></div></div>
487
- <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>
488
- <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>
489
- <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>
490
- <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>
487
+ <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#l00213">IntervalValue.h:213</a></div></div>
491
488
  <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>
492
- <div class="ttc" id="aclassSVF_1_1RelationSolver_html_a657af041f883e7b1a3f9892453a2c4cf"><div class="ttname"><a href="classSVF_1_1RelationSolver.html#a657af041f883e7b1a3f9892453a2c4cf">SVF::RelationSolver::RSY</a></div><div class="ttdeci">IntervalESBase RSY(const IntervalESBase &amp;domain, const Z3Expr &amp;phi)</div><div class="ttdef"><b>Definition:</b> <a href="RelationSolver_8cpp_source.html#l00114">RelationSolver.cpp:114</a></div></div>
489
+ <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>
490
+ <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#l00054">AbstractState.h:54</a></div></div>
493
491
  <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>
492
+ <div class="ttc" id="aclassSVF_1_1RelationSolver_html_a98f7e3ae9f43aea178d77a58ac8e927f"><div class="ttname"><a href="classSVF_1_1RelationSolver.html#a98f7e3ae9f43aea178d77a58ac8e927f">SVF::RelationSolver::BS</a></div><div class="ttdeci">AbstractState BS(const AbstractState &amp;domain, const Z3Expr &amp;phi)</div><div class="ttdef"><b>Definition:</b> <a href="RelationSolver_8cpp_source.html#l00269">RelationSolver.cpp:269</a></div></div>
493
+ <div class="ttc" id="aclassSVF_1_1RelationSolver_html_a23c59e437950b139dde49f11eb45b63a"><div class="ttname"><a href="classSVF_1_1RelationSolver.html#a23c59e437950b139dde49f11eb45b63a">SVF::RelationSolver::bilateral</a></div><div class="ttdeci">AbstractState bilateral(const AbstractState &amp;domain, const Z3Expr &amp;phi, u32_t descend_check=0)</div><div class="ttdef"><b>Definition:</b> <a href="RelationSolver_8cpp_source.html#l00036">RelationSolver.cpp:36</a></div></div>
494
+ <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#l00238">AbstractState.h:238</a></div></div>
494
495
  <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>
495
- <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>
496
+ <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#l00060">IntervalValue.h:60</a></div></div>
497
+ <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>
496
498
  <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>
497
499
  <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>
498
- <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>
500
+ <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>
499
501
  <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>
500
- <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>
501
- <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>
502
502
  <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>
503
- <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>
504
- <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>
503
+ <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>
505
504
  <div class="ttc" id="anamespaceSVF_html_ad42bff8d0a7d60a085aa32d10f4955af"><div class="ttname"><a href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">SVF::u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="GeneralType_8h_source.html#l00046">GeneralType.h:46</a></div></div>
506
505
  <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>
507
- <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>
508
506
  <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>
507
+ <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>
509
508
  <!-- start footer part -->
510
509
  <hr class="footer"/><address class="footer"><small>
511
510
  Generated by &#160;<a href="http://www.doxygen.org/index.html">
@@ -72,7 +72,7 @@ $(function() {
72
72
  <div class="title">RelationSolver.h File Reference</div> </div>
73
73
  </div><!--header-->
74
74
  <div class="contents">
75
- <div class="textblock"><code>#include &quot;<a class="el" href="IntervalExeState_8h_source.html">AE/Core/IntervalExeState.h</a>&quot;</code><br />
75
+ <div class="textblock"><code>#include &quot;<a class="el" href="AbstractState_8h_source.html">AE/Core/AbstractState.h</a>&quot;</code><br />
76
76
  <code>#include &quot;<a class="el" href="Z3Expr_8h_source.html">Util/Z3Expr.h</a>&quot;</code><br />
77
77
  </div>
78
78
  <p><a href="RelationSolver_8h_source.html">Go to the source code of this file.</a></p>