svf-tools 1.0.874 → 1.0.875

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 (796) hide show
  1. package/SVF-doxygen/html/AE_8cpp.html +218 -0
  2. package/SVF-doxygen/html/AE_8cpp_source.html +2124 -0
  3. package/SVF-doxygen/html/AE_8h.html +118 -0
  4. package/SVF-doxygen/html/AE_8h_source.html +513 -0
  5. package/SVF-doxygen/html/AbstractPointsToDS_8h_source.html +1 -1
  6. package/SVF-doxygen/html/AbstractValue_8h.html +2 -3
  7. package/SVF-doxygen/html/AbstractValue_8h_source.html +50 -52
  8. package/SVF-doxygen/html/AccessPath_8cpp_source.html +9 -9
  9. package/SVF-doxygen/html/AccessPath_8h_source.html +5 -5
  10. package/SVF-doxygen/html/AddressValue_8h.html +22 -4
  11. package/SVF-doxygen/html/AddressValue_8h_source.html +213 -211
  12. package/SVF-doxygen/html/AndersenPWC_8h_source.html +4 -4
  13. package/SVF-doxygen/html/AndersenSCD_8cpp_source.html +4 -4
  14. package/SVF-doxygen/html/AndersenSFR_8cpp_source.html +4 -4
  15. package/SVF-doxygen/html/AndersenStat_8cpp_source.html +9 -8
  16. package/SVF-doxygen/html/AndersenWaveDiff_8cpp_source.html +2 -2
  17. package/SVF-doxygen/html/Andersen_8cpp_source.html +21 -21
  18. package/SVF-doxygen/html/Andersen_8h_source.html +4 -4
  19. package/SVF-doxygen/html/BoundedZ3Expr_8cpp.html +3 -3
  20. package/SVF-doxygen/html/BoundedZ3Expr_8cpp_source.html +4 -4
  21. package/SVF-doxygen/html/BoundedZ3Expr_8h.html +2 -2
  22. package/SVF-doxygen/html/BoundedZ3Expr_8h_source.html +5 -5
  23. package/SVF-doxygen/html/BreakConstantExpr_8cpp.html +3 -3
  24. package/SVF-doxygen/html/BreakConstantExpr_8cpp_source.html +4 -3
  25. package/SVF-doxygen/html/BufOverflowChecker_8cpp.html +101 -0
  26. package/SVF-doxygen/html/BufOverflowChecker_8cpp_source.html +1040 -0
  27. package/SVF-doxygen/html/BufOverflowChecker_8h.html +102 -0
  28. package/SVF-doxygen/html/BufOverflowChecker_8h_source.html +300 -0
  29. package/SVF-doxygen/html/CDGBuilder_8cpp_source.html +3 -3
  30. package/SVF-doxygen/html/CDGBuilder_8h_source.html +3 -3
  31. package/SVF-doxygen/html/CDG_8cpp_source.html +1 -1
  32. package/SVF-doxygen/html/CDG_8h_source.html +3 -3
  33. package/SVF-doxygen/html/CFBasicBlockGBuilder_8cpp_source.html +7 -7
  34. package/SVF-doxygen/html/CFBasicBlockGBuilder_8h_source.html +25 -19
  35. package/SVF-doxygen/html/CFBasicBlockGWTO_8h.html +2 -2
  36. package/SVF-doxygen/html/CFBasicBlockGWTO_8h_source.html +37 -34
  37. package/SVF-doxygen/html/CFBasicBlockG_8cpp_source.html +3 -3
  38. package/SVF-doxygen/html/CFBasicBlockG_8h_source.html +501 -494
  39. package/SVF-doxygen/html/CFGNormalizer_8cpp_source.html +5 -5
  40. package/SVF-doxygen/html/CFGNormalizer_8h_source.html +3 -3
  41. package/SVF-doxygen/html/CFGrammar_8cpp_source.html +3 -3
  42. package/SVF-doxygen/html/CFGrammar_8h_source.html +21 -21
  43. package/SVF-doxygen/html/CFLAlias_8cpp_source.html +4 -4
  44. package/SVF-doxygen/html/CFLAlias_8h_source.html +5 -5
  45. package/SVF-doxygen/html/CFLBase_8cpp_source.html +1 -1
  46. package/SVF-doxygen/html/CFLGraphBuilder_8cpp_source.html +2 -2
  47. package/SVF-doxygen/html/CFLGraphBuilder_8h_source.html +2 -2
  48. package/SVF-doxygen/html/CFLGraph_8h_source.html +1 -1
  49. package/SVF-doxygen/html/CFLSVFGBuilder_8cpp_source.html +3 -3
  50. package/SVF-doxygen/html/CFLSVFGBuilder_8h_source.html +2 -2
  51. package/SVF-doxygen/html/CFLSolver_8h_source.html +1 -1
  52. package/SVF-doxygen/html/CHGBuilder_8cpp_source.html +6 -6
  53. package/SVF-doxygen/html/CHG_8cpp.html +2 -2
  54. package/SVF-doxygen/html/CHG_8cpp_source.html +3 -2
  55. package/SVF-doxygen/html/CHG_8h_source.html +3 -3
  56. package/SVF-doxygen/html/CSC_8cpp_source.html +3 -3
  57. package/SVF-doxygen/html/CSC_8h_source.html +4 -4
  58. package/SVF-doxygen/html/ConditionalPT_8h_source.html +5 -5
  59. package/SVF-doxygen/html/ConsExeState_8cpp.html +4 -4
  60. package/SVF-doxygen/html/ConsExeState_8cpp_source.html +552 -555
  61. package/SVF-doxygen/html/ConsExeState_8h.html +28 -5
  62. package/SVF-doxygen/html/ConsExeState_8h_source.html +439 -438
  63. package/SVF-doxygen/html/ConsGEdge_8h_source.html +2 -2
  64. package/SVF-doxygen/html/ConsGNode_8h_source.html +5 -5
  65. package/SVF-doxygen/html/ConsG_8cpp_source.html +3 -3
  66. package/SVF-doxygen/html/ConsG_8h_source.html +4 -4
  67. package/SVF-doxygen/html/ContextDDA_8cpp_source.html +6 -6
  68. package/SVF-doxygen/html/ContextDDA_8h_source.html +4 -4
  69. package/SVF-doxygen/html/CoreBitVector_8cpp_source.html +1 -1
  70. package/SVF-doxygen/html/CoreBitVector_8h_source.html +2 -2
  71. package/SVF-doxygen/html/CppUtil_8cpp.html +5 -5
  72. package/SVF-doxygen/html/CppUtil_8cpp_source.html +10 -9
  73. package/SVF-doxygen/html/CppUtil_8h_source.html +2 -2
  74. package/SVF-doxygen/html/CxtStmt_8h_source.html +1 -1
  75. package/SVF-doxygen/html/DCHG_8cpp_source.html +3 -3
  76. package/SVF-doxygen/html/DCHG_8h_source.html +3 -3
  77. package/SVF-doxygen/html/DDAClient_8cpp_source.html +7 -7
  78. package/SVF-doxygen/html/DDAClient_8h_source.html +3 -3
  79. package/SVF-doxygen/html/DDAPass_8cpp_source.html +5 -5
  80. package/SVF-doxygen/html/DDAPass_8h_source.html +3 -3
  81. package/SVF-doxygen/html/DDAStat_8cpp_source.html +2 -2
  82. package/SVF-doxygen/html/DDAStat_8h_source.html +2 -2
  83. package/SVF-doxygen/html/DDAVFSolver_8h_source.html +6 -6
  84. package/SVF-doxygen/html/DPItem_8h_source.html +4 -4
  85. package/SVF-doxygen/html/ExeState_8cpp.html +4 -4
  86. package/SVF-doxygen/html/ExeState_8cpp_source.html +12 -12
  87. package/SVF-doxygen/html/ExeState_8h.html +5 -4
  88. package/SVF-doxygen/html/ExeState_8h_source.html +296 -294
  89. package/SVF-doxygen/html/ExtAPI_8cpp_source.html +1 -1
  90. package/SVF-doxygen/html/ExtAPI_8h_source.html +1 -1
  91. package/SVF-doxygen/html/FSMPTA_8cpp_source.html +8 -8
  92. package/SVF-doxygen/html/FSMPTA_8h_source.html +3 -3
  93. package/SVF-doxygen/html/FlowDDA_8cpp_source.html +6 -6
  94. package/SVF-doxygen/html/FlowDDA_8h_source.html +3 -3
  95. package/SVF-doxygen/html/FlowSensitiveStat_8cpp_source.html +4 -4
  96. package/SVF-doxygen/html/FlowSensitive_8cpp_source.html +8 -8
  97. package/SVF-doxygen/html/FlowSensitive_8h_source.html +3 -3
  98. package/SVF-doxygen/html/GeneralType_8h.html +186 -0
  99. package/SVF-doxygen/html/GeneralType_8h_source.html +244 -0
  100. package/SVF-doxygen/html/GenericGraph_8h_source.html +5 -5
  101. package/SVF-doxygen/html/GrammarBuilder_8h_source.html +1 -1
  102. package/SVF-doxygen/html/GraphPrinter_8h_source.html +1 -1
  103. package/SVF-doxygen/html/GraphTraits_8h_source.html +1 -1
  104. package/SVF-doxygen/html/ICFGBuilder_8cpp_source.html +4 -4
  105. package/SVF-doxygen/html/ICFGBuilder_8h_source.html +1 -1
  106. package/SVF-doxygen/html/ICFGEdge_8h_source.html +3 -3
  107. package/SVF-doxygen/html/ICFGNode_8h_source.html +2 -2
  108. package/SVF-doxygen/html/ICFGStat_8h_source.html +1 -1
  109. package/SVF-doxygen/html/ICFGWTO_8h.html +2 -2
  110. package/SVF-doxygen/html/ICFGWTO_8h_source.html +2 -2
  111. package/SVF-doxygen/html/ICFG_8cpp_source.html +3 -3
  112. package/SVF-doxygen/html/ICFG_8h_source.html +3 -3
  113. package/SVF-doxygen/html/IRGraph_8cpp_source.html +2 -2
  114. package/SVF-doxygen/html/IRGraph_8h_source.html +3 -3
  115. package/SVF-doxygen/html/IntervalExeState_8cpp.html +3 -3
  116. package/SVF-doxygen/html/IntervalExeState_8cpp_source.html +9 -9
  117. package/SVF-doxygen/html/IntervalExeState_8h.html +4 -4
  118. package/SVF-doxygen/html/IntervalExeState_8h_source.html +19 -19
  119. package/SVF-doxygen/html/IntervalValue_8h.html +4 -4
  120. package/SVF-doxygen/html/IntervalValue_8h_source.html +25 -25
  121. package/SVF-doxygen/html/LLVMLoopAnalysis_8cpp_source.html +3 -3
  122. package/SVF-doxygen/html/LLVMModule_8cpp_source.html +24 -24
  123. package/SVF-doxygen/html/LLVMModule_8h_source.html +4 -4
  124. package/SVF-doxygen/html/LLVMUtil_8cpp_source.html +6 -6
  125. package/SVF-doxygen/html/LLVMUtil_8h.html +4 -4
  126. package/SVF-doxygen/html/LLVMUtil_8h_source.html +3 -3
  127. package/SVF-doxygen/html/LeakChecker_8cpp_source.html +1 -1
  128. package/SVF-doxygen/html/LeakChecker_8h_source.html +1 -1
  129. package/SVF-doxygen/html/LockAnalysis_8cpp_source.html +7 -7
  130. package/SVF-doxygen/html/LockAnalysis_8h_source.html +6 -6
  131. package/SVF-doxygen/html/LockResultValidator_8cpp_source.html +1 -1
  132. package/SVF-doxygen/html/LockResultValidator_8h_source.html +2 -2
  133. package/SVF-doxygen/html/MHP_8cpp_source.html +8 -8
  134. package/SVF-doxygen/html/MHP_8h_source.html +4 -4
  135. package/SVF-doxygen/html/MSSAMuChi_8h_source.html +2 -2
  136. package/SVF-doxygen/html/MTAAnnotator_8cpp_source.html +2 -2
  137. package/SVF-doxygen/html/MTAAnnotator_8h_source.html +2 -2
  138. package/SVF-doxygen/html/MTAResultValidator_8cpp_source.html +5 -5
  139. package/SVF-doxygen/html/MTAStat_8cpp_source.html +2 -2
  140. package/SVF-doxygen/html/MTAStat_8h_source.html +1 -1
  141. package/SVF-doxygen/html/MTA_8cpp_source.html +6 -6
  142. package/SVF-doxygen/html/MTA_8h_source.html +1 -1
  143. package/SVF-doxygen/html/MemPartition_8h_source.html +2 -2
  144. package/SVF-doxygen/html/MemRegion_8cpp_source.html +11 -11
  145. package/SVF-doxygen/html/MemRegion_8h_source.html +5 -5
  146. package/SVF-doxygen/html/MemSSA_8cpp_source.html +7 -7
  147. package/SVF-doxygen/html/MemSSA_8h_source.html +5 -5
  148. package/SVF-doxygen/html/MutablePointsToDS_8h_source.html +2 -2
  149. package/SVF-doxygen/html/NodeIDAllocator_8cpp_source.html +6 -6
  150. package/SVF-doxygen/html/NodeIDAllocator_8h_source.html +3 -3
  151. package/SVF-doxygen/html/NumericLiteral_8h.html +4 -5
  152. package/SVF-doxygen/html/NumericLiteral_8h_source.html +440 -442
  153. package/SVF-doxygen/html/ObjTypeInference_8cpp_source.html +4 -4
  154. package/SVF-doxygen/html/ObjTypeInference_8h_source.html +3 -3
  155. package/SVF-doxygen/html/Options_8cpp_source.html +20 -1
  156. package/SVF-doxygen/html/Options_8h_source.html +17 -4
  157. package/SVF-doxygen/html/PAGBuilderFromFile_8cpp.html +2 -2
  158. package/SVF-doxygen/html/PAGBuilderFromFile_8cpp_source.html +4 -3
  159. package/SVF-doxygen/html/PAGBuilderFromFile_8h_source.html +1 -1
  160. package/SVF-doxygen/html/PCG_8cpp_source.html +3 -3
  161. package/SVF-doxygen/html/PCG_8h_source.html +1 -1
  162. package/SVF-doxygen/html/PTACallGraph_8cpp_source.html +1 -1
  163. package/SVF-doxygen/html/PTACallGraph_8h_source.html +6 -6
  164. package/SVF-doxygen/html/PTAStat_8cpp_source.html +2 -2
  165. package/SVF-doxygen/html/PTAStat_8h_source.html +1 -1
  166. package/SVF-doxygen/html/PersistentPointsToCache_8h_source.html +3 -3
  167. package/SVF-doxygen/html/PersistentPointsToDS_8h_source.html +2 -2
  168. package/SVF-doxygen/html/PointerAnalysisImpl_8cpp_source.html +5 -5
  169. package/SVF-doxygen/html/PointerAnalysisImpl_8h_source.html +7 -7
  170. package/SVF-doxygen/html/PointerAnalysis_8cpp_source.html +7 -7
  171. package/SVF-doxygen/html/PointerAnalysis_8h_source.html +7 -7
  172. package/SVF-doxygen/html/PointsTo_8cpp_source.html +1 -1
  173. package/SVF-doxygen/html/PointsTo_8h_source.html +1 -1
  174. package/SVF-doxygen/html/ProgSlice_8cpp_source.html +4 -4
  175. package/SVF-doxygen/html/ProgSlice_8h_source.html +3 -3
  176. package/SVF-doxygen/html/RelExeState_8cpp.html +5 -4
  177. package/SVF-doxygen/html/RelExeState_8cpp_source.html +161 -159
  178. package/SVF-doxygen/html/RelExeState_8h.html +4 -4
  179. package/SVF-doxygen/html/RelExeState_8h_source.html +23 -23
  180. package/SVF-doxygen/html/RelationSolver_8cpp.html +3 -3
  181. package/SVF-doxygen/html/RelationSolver_8cpp_source.html +7 -7
  182. package/SVF-doxygen/html/RelationSolver_8h.html +3 -3
  183. package/SVF-doxygen/html/RelationSolver_8h_source.html +6 -6
  184. package/SVF-doxygen/html/SCC_8h_source.html +2 -2
  185. package/SVF-doxygen/html/SVFBugReport_8h_source.html +3 -3
  186. package/SVF-doxygen/html/SVFFileSystem_8cpp_source.html +18 -18
  187. package/SVF-doxygen/html/SVFFileSystem_8h.html +1 -1
  188. package/SVF-doxygen/html/SVFFileSystem_8h_source.html +14 -14
  189. package/SVF-doxygen/html/SVFGBuilder_8cpp_source.html +2 -2
  190. package/SVF-doxygen/html/SVFGEdge_8h_source.html +2 -2
  191. package/SVF-doxygen/html/SVFGNode_8h_source.html +3 -3
  192. package/SVF-doxygen/html/SVFGOPT_8cpp_source.html +3 -3
  193. package/SVF-doxygen/html/SVFGOPT_8h_source.html +3 -3
  194. package/SVF-doxygen/html/SVFGReadWrite_8cpp_source.html +2 -2
  195. package/SVF-doxygen/html/SVFGStat_8cpp_source.html +3 -3
  196. package/SVF-doxygen/html/SVFGStat_8h_source.html +4 -4
  197. package/SVF-doxygen/html/SVFG_8cpp_source.html +3 -3
  198. package/SVF-doxygen/html/SVFG_8h_source.html +3 -3
  199. package/SVF-doxygen/html/SVFIR2ConsExeState_8cpp.html +3 -3
  200. package/SVF-doxygen/html/SVFIR2ConsExeState_8cpp_source.html +22 -22
  201. package/SVF-doxygen/html/SVFIR2ConsExeState_8h.html +3 -3
  202. package/SVF-doxygen/html/SVFIR2ConsExeState_8h_source.html +14 -14
  203. package/SVF-doxygen/html/SVFIR2ItvExeState_8cpp.html +3 -3
  204. package/SVF-doxygen/html/SVFIR2ItvExeState_8cpp_source.html +26 -26
  205. package/SVF-doxygen/html/SVFIR2ItvExeState_8h.html +7 -7
  206. package/SVF-doxygen/html/SVFIR2ItvExeState_8h_source.html +15 -15
  207. package/SVF-doxygen/html/SVFIR2Relation_8cpp.html +3 -3
  208. package/SVF-doxygen/html/SVFIR2Relation_8cpp_source.html +4 -4
  209. package/SVF-doxygen/html/SVFIRBuilder_8cpp_source.html +9 -9
  210. package/SVF-doxygen/html/SVFIRBuilder_8h_source.html +3 -3
  211. package/SVF-doxygen/html/SVFIRExtAPI_8cpp_source.html +4 -4
  212. package/SVF-doxygen/html/SVFIR_8cpp_source.html +3 -3
  213. package/SVF-doxygen/html/SVFIR_8h_source.html +7 -7
  214. package/SVF-doxygen/html/SVFLoop_8h_source.html +2 -2
  215. package/SVF-doxygen/html/SVFStat_8cpp_source.html +4 -4
  216. package/SVF-doxygen/html/SVFStat_8h_source.html +1 -1
  217. package/SVF-doxygen/html/SVFStatements_8cpp_source.html +2 -2
  218. package/SVF-doxygen/html/SVFStatements_8h_source.html +7 -7
  219. package/SVF-doxygen/html/SVFType_8cpp_source.html +8 -8
  220. package/SVF-doxygen/html/SVFType_8h.html +24 -113
  221. package/SVF-doxygen/html/SVFType_8h_source.html +580 -698
  222. package/SVF-doxygen/html/SVFUtil_8cpp_source.html +2 -2
  223. package/SVF-doxygen/html/SVFUtil_8h.html +1 -1
  224. package/SVF-doxygen/html/SVFUtil_8h_source.html +5 -5
  225. package/SVF-doxygen/html/SVFValue_8cpp.html +6 -6
  226. package/SVF-doxygen/html/SVFValue_8cpp_source.html +6 -5
  227. package/SVF-doxygen/html/SVFValue_8h_source.html +10 -10
  228. package/SVF-doxygen/html/SVFVariables_8cpp_source.html +1 -1
  229. package/SVF-doxygen/html/SVFVariables_8h_source.html +3 -3
  230. package/SVF-doxygen/html/SaberCheckerAPI_8h_source.html +1 -1
  231. package/SVF-doxygen/html/SaberCondAllocator_8cpp_source.html +12 -11
  232. package/SVF-doxygen/html/SaberCondAllocator_8h_source.html +3 -3
  233. package/SVF-doxygen/html/SaberSVFGBuilder_8cpp_source.html +4 -4
  234. package/SVF-doxygen/html/SaberSVFGBuilder_8h_source.html +2 -2
  235. package/SVF-doxygen/html/SingleAbsValue_8h.html +3 -3
  236. package/SVF-doxygen/html/SingleAbsValue_8h_source.html +5 -5
  237. package/SVF-doxygen/html/SrcSnkDDA_8cpp_source.html +5 -5
  238. package/SVF-doxygen/html/SrcSnkDDA_8h_source.html +2 -2
  239. package/SVF-doxygen/html/Steensgaard_8cpp_source.html +6 -6
  240. package/SVF-doxygen/html/Steensgaard_8h_source.html +4 -4
  241. package/SVF-doxygen/html/SymState_8cpp.html +3 -3
  242. package/SVF-doxygen/html/SymState_8cpp_source.html +4 -4
  243. package/SVF-doxygen/html/SymState_8h.html +3 -3
  244. package/SVF-doxygen/html/SymState_8h_source.html +7 -7
  245. package/SVF-doxygen/html/SymbolTableBuilder_8cpp_source.html +9 -9
  246. package/SVF-doxygen/html/SymbolTableBuilder_8h_source.html +3 -3
  247. package/SVF-doxygen/html/SymbolTableInfo_8cpp_source.html +17 -17
  248. package/SVF-doxygen/html/SymbolTableInfo_8h_source.html +8 -8
  249. package/SVF-doxygen/html/TCT_8cpp_source.html +5 -5
  250. package/SVF-doxygen/html/TCT_8h_source.html +5 -5
  251. package/SVF-doxygen/html/ThreadAPI_8cpp_source.html +1 -1
  252. package/SVF-doxygen/html/ThreadAPI_8h_source.html +1 -1
  253. package/SVF-doxygen/html/ThreadCallGraph_8cpp_source.html +3 -3
  254. package/SVF-doxygen/html/ThreadCallGraph_8h_source.html +4 -4
  255. package/SVF-doxygen/html/TypeAnalysis_8cpp_source.html +1 -1
  256. package/SVF-doxygen/html/VFGEdge_8h_source.html +2 -2
  257. package/SVF-doxygen/html/VFGNode_8h_source.html +4 -4
  258. package/SVF-doxygen/html/VFG_8cpp_source.html +4 -4
  259. package/SVF-doxygen/html/VFG_8h_source.html +5 -5
  260. package/SVF-doxygen/html/VersionedFlowSensitiveStat_8cpp_source.html +5 -5
  261. package/SVF-doxygen/html/VersionedFlowSensitive_8cpp_source.html +6 -6
  262. package/SVF-doxygen/html/VersionedFlowSensitive_8h_source.html +5 -5
  263. package/SVF-doxygen/html/WPAFSSolver_8h_source.html +1 -1
  264. package/SVF-doxygen/html/WPAPass_8cpp_source.html +5 -5
  265. package/SVF-doxygen/html/WPAPass_8h_source.html +3 -3
  266. package/SVF-doxygen/html/WPASolver_8h_source.html +3 -3
  267. package/SVF-doxygen/html/WPAStat_8h_source.html +1 -1
  268. package/SVF-doxygen/html/WTO_8h_source.html +3 -3
  269. package/SVF-doxygen/html/WorkList_8h_source.html +2 -2
  270. package/SVF-doxygen/html/Z3Expr_8cpp_source.html +1 -1
  271. package/SVF-doxygen/html/Z3Expr_8h_source.html +1 -1
  272. package/SVF-doxygen/html/ae_8cpp.html +70 -21
  273. package/SVF-doxygen/html/ae_8cpp_source.html +715 -631
  274. package/SVF-doxygen/html/annotated.html +446 -440
  275. package/SVF-doxygen/html/classSVF_1_1AE-members.html +137 -0
  276. package/SVF-doxygen/html/classSVF_1_1AE.html +2884 -0
  277. package/SVF-doxygen/html/classSVF_1_1AE.png +0 -0
  278. package/SVF-doxygen/html/classSVF_1_1AEAPI-members.html +119 -0
  279. package/SVF-doxygen/html/classSVF_1_1AEAPI.html +1947 -0
  280. package/SVF-doxygen/html/classSVF_1_1AEAPI.png +0 -0
  281. package/SVF-doxygen/html/classSVF_1_1AEStat-members.html +123 -0
  282. package/SVF-doxygen/html/classSVF_1_1AEStat.html +707 -0
  283. package/SVF-doxygen/html/classSVF_1_1AEStat.png +0 -0
  284. package/SVF-doxygen/html/classSVF_1_1AbstractValue.html +17 -17
  285. package/SVF-doxygen/html/classSVF_1_1AccessPath.html +16 -15
  286. package/SVF-doxygen/html/classSVF_1_1AddressValue.html +146 -147
  287. package/SVF-doxygen/html/classSVF_1_1AliasCFLGraphBuilder.html +1 -1
  288. package/SVF-doxygen/html/classSVF_1_1AliasDDAClient.html +1 -1
  289. package/SVF-doxygen/html/classSVF_1_1Andersen.html +9 -9
  290. package/SVF-doxygen/html/classSVF_1_1AndersenBase.html +3 -3
  291. package/SVF-doxygen/html/classSVF_1_1AndersenSCD.html +4 -4
  292. package/SVF-doxygen/html/classSVF_1_1AndersenSFR.html +6 -6
  293. package/SVF-doxygen/html/classSVF_1_1AndersenStat.html +34 -34
  294. package/SVF-doxygen/html/classSVF_1_1AndersenWaveDiff.html +2 -2
  295. package/SVF-doxygen/html/classSVF_1_1BVDataPTAImpl.html +4 -4
  296. package/SVF-doxygen/html/classSVF_1_1BoundedZ3Expr.html +3 -3
  297. package/SVF-doxygen/html/classSVF_1_1BranchStmt.html +2 -2
  298. package/SVF-doxygen/html/classSVF_1_1BranchVFGNode.html +1 -1
  299. package/SVF-doxygen/html/classSVF_1_1BreakConstantGEPs.html +5 -5
  300. package/SVF-doxygen/html/classSVF_1_1BufOverflowChecker-members.html +139 -0
  301. package/SVF-doxygen/html/classSVF_1_1BufOverflowChecker.html +619 -0
  302. package/SVF-doxygen/html/classSVF_1_1BufOverflowChecker.png +0 -0
  303. package/SVF-doxygen/html/classSVF_1_1BufOverflowCheckerAPI-members.html +127 -0
  304. package/SVF-doxygen/html/classSVF_1_1BufOverflowCheckerAPI.html +984 -0
  305. package/SVF-doxygen/html/classSVF_1_1BufOverflowCheckerAPI.png +0 -0
  306. package/SVF-doxygen/html/classSVF_1_1CDGBuilder.html +3 -3
  307. package/SVF-doxygen/html/classSVF_1_1CFBasicBlockGBuilder-members.html +1 -0
  308. package/SVF-doxygen/html/classSVF_1_1CFBasicBlockGBuilder.html +38 -6
  309. package/SVF-doxygen/html/classSVF_1_1CFBasicBlockGWTO-members.html +2 -1
  310. package/SVF-doxygen/html/classSVF_1_1CFBasicBlockGWTO.html +50 -23
  311. package/SVF-doxygen/html/classSVF_1_1CFBasicBlockGraph.html +92 -92
  312. package/SVF-doxygen/html/classSVF_1_1CFBasicBlockNode-members.html +2 -1
  313. package/SVF-doxygen/html/classSVF_1_1CFBasicBlockNode.html +189 -156
  314. package/SVF-doxygen/html/classSVF_1_1CFGNormalizer.html +5 -5
  315. package/SVF-doxygen/html/classSVF_1_1CFLAlias.html +6 -6
  316. package/SVF-doxygen/html/classSVF_1_1CFLBase.html +1 -1
  317. package/SVF-doxygen/html/classSVF_1_1CFLGraphBuilder.html +2 -2
  318. package/SVF-doxygen/html/classSVF_1_1CFLSVFGBuilder.html +3 -3
  319. package/SVF-doxygen/html/classSVF_1_1CHGBuilder.html +9 -9
  320. package/SVF-doxygen/html/classSVF_1_1CSC.html +3 -3
  321. package/SVF-doxygen/html/classSVF_1_1CondPTAImpl.html +4 -4
  322. package/SVF-doxygen/html/classSVF_1_1ConsExeState.html +783 -785
  323. package/SVF-doxygen/html/classSVF_1_1ConstraintGraph.html +6 -6
  324. package/SVF-doxygen/html/classSVF_1_1ConstraintNode-members.html +34 -34
  325. package/SVF-doxygen/html/classSVF_1_1ConstraintNode.html +65 -25
  326. package/SVF-doxygen/html/classSVF_1_1ContextDDA.html +7 -7
  327. package/SVF-doxygen/html/classSVF_1_1DCHGraph.html +3 -3
  328. package/SVF-doxygen/html/classSVF_1_1DDAClient.html +7 -7
  329. package/SVF-doxygen/html/classSVF_1_1DDAPass.html +6 -6
  330. package/SVF-doxygen/html/classSVF_1_1DDAStat.html +9 -9
  331. package/SVF-doxygen/html/classSVF_1_1DDAVFSolver.html +5 -5
  332. package/SVF-doxygen/html/classSVF_1_1ExeState.html +195 -195
  333. package/SVF-doxygen/html/classSVF_1_1FlowDDA.html +5 -5
  334. package/SVF-doxygen/html/classSVF_1_1FlowSensitive.html +7 -7
  335. package/SVF-doxygen/html/classSVF_1_1FlowSensitiveStat.html +12 -12
  336. package/SVF-doxygen/html/classSVF_1_1ForkJoinAnalysis.html +5 -5
  337. package/SVF-doxygen/html/classSVF_1_1FunptrDDAClient.html +8 -8
  338. package/SVF-doxygen/html/classSVF_1_1GenericNode.html +10 -9
  339. package/SVF-doxygen/html/classSVF_1_1GenericNode.png +0 -0
  340. package/SVF-doxygen/html/classSVF_1_1GrammarBase.html +2 -2
  341. package/SVF-doxygen/html/classSVF_1_1GrammarBase_1_1SymbolHash.html +1 -1
  342. package/SVF-doxygen/html/classSVF_1_1ICFG.html +3 -3
  343. package/SVF-doxygen/html/classSVF_1_1ICFGBuilder.html +5 -5
  344. package/SVF-doxygen/html/classSVF_1_1ICFGWTO.html +1 -1
  345. package/SVF-doxygen/html/classSVF_1_1IRGraph.html +2 -2
  346. package/SVF-doxygen/html/classSVF_1_1IntervalESBase.html +20 -21
  347. package/SVF-doxygen/html/classSVF_1_1IntervalExeState.html +11 -11
  348. package/SVF-doxygen/html/classSVF_1_1IntervalValue.html +15 -15
  349. package/SVF-doxygen/html/classSVF_1_1LLVMLoopAnalysis.html +3 -3
  350. package/SVF-doxygen/html/classSVF_1_1LLVMModuleSet.html +43 -44
  351. package/SVF-doxygen/html/classSVF_1_1LeakChecker.html +1 -1
  352. package/SVF-doxygen/html/classSVF_1_1LockAnalysis.html +7 -7
  353. package/SVF-doxygen/html/classSVF_1_1LockResultValidator.html +1 -1
  354. package/SVF-doxygen/html/classSVF_1_1MHP.html +7 -7
  355. package/SVF-doxygen/html/classSVF_1_1MRGenerator.html +7 -7
  356. package/SVF-doxygen/html/classSVF_1_1MTA.html +5 -5
  357. package/SVF-doxygen/html/classSVF_1_1MTAAnnotator.html +2 -2
  358. package/SVF-doxygen/html/classSVF_1_1MTAResultValidator.html +4 -4
  359. package/SVF-doxygen/html/classSVF_1_1MTASVFGBuilder.html +4 -4
  360. package/SVF-doxygen/html/classSVF_1_1MTAStat.html +6 -6
  361. package/SVF-doxygen/html/classSVF_1_1MemSSA.html +14 -14
  362. package/SVF-doxygen/html/classSVF_1_1MemSSAStat.html +6 -6
  363. package/SVF-doxygen/html/classSVF_1_1MutableDFPTData.html +1 -1
  364. package/SVF-doxygen/html/classSVF_1_1NodeIDAllocator_1_1Clusterer.html +4 -4
  365. package/SVF-doxygen/html/classSVF_1_1NumericLiteral.html +326 -326
  366. package/SVF-doxygen/html/classSVF_1_1ObjTypeInference.html +12 -12
  367. package/SVF-doxygen/html/classSVF_1_1Options-members.html +79 -73
  368. package/SVF-doxygen/html/classSVF_1_1Options.html +168 -0
  369. package/SVF-doxygen/html/classSVF_1_1PAGBuilderFromFile.html +5 -5
  370. package/SVF-doxygen/html/classSVF_1_1PCG.html +3 -3
  371. package/SVF-doxygen/html/classSVF_1_1POCRSolver.html +1 -1
  372. package/SVF-doxygen/html/classSVF_1_1PTACallGraph.html +1 -1
  373. package/SVF-doxygen/html/classSVF_1_1PTAStat.html +6 -6
  374. package/SVF-doxygen/html/classSVF_1_1PersistentDFPTData.html +1 -1
  375. package/SVF-doxygen/html/classSVF_1_1PersistentDiffPTData.html +1 -1
  376. package/SVF-doxygen/html/classSVF_1_1PersistentPTData.html +1 -1
  377. package/SVF-doxygen/html/classSVF_1_1PersistentPointsToCache.html +1 -1
  378. package/SVF-doxygen/html/classSVF_1_1PhiStmt.html +2 -2
  379. package/SVF-doxygen/html/classSVF_1_1PointerAnalysis.html +7 -7
  380. package/SVF-doxygen/html/classSVF_1_1PointsTo.html +1 -1
  381. package/SVF-doxygen/html/classSVF_1_1ProgSlice.html +6 -6
  382. package/SVF-doxygen/html/classSVF_1_1RelExeState.html +140 -140
  383. package/SVF-doxygen/html/classSVF_1_1RelationSolver.html +12 -12
  384. package/SVF-doxygen/html/classSVF_1_1SVFArrayType.html +29 -29
  385. package/SVF-doxygen/html/classSVF_1_1SVFBasicBlock.html +5 -5
  386. package/SVF-doxygen/html/classSVF_1_1SVFFunction.html +1 -1
  387. package/SVF-doxygen/html/classSVF_1_1SVFFunctionType.html +19 -19
  388. package/SVF-doxygen/html/classSVF_1_1SVFG.html +4 -4
  389. package/SVF-doxygen/html/classSVF_1_1SVFGBuilder.html +2 -2
  390. package/SVF-doxygen/html/classSVF_1_1SVFGOPT.html +3 -3
  391. package/SVF-doxygen/html/classSVF_1_1SVFGStat.html +5 -5
  392. package/SVF-doxygen/html/classSVF_1_1SVFIR.html +1 -1
  393. package/SVF-doxygen/html/classSVF_1_1SVFIR2ConsExeState.html +55 -55
  394. package/SVF-doxygen/html/classSVF_1_1SVFIR2ItvExeState.html +69 -69
  395. package/SVF-doxygen/html/classSVF_1_1SVFIRBuilder.html +32 -32
  396. package/SVF-doxygen/html/classSVF_1_1SVFIRReader.html +2 -2
  397. package/SVF-doxygen/html/classSVF_1_1SVFIntegerType.html +21 -21
  398. package/SVF-doxygen/html/classSVF_1_1SVFLoopAndDomInfo.html +1 -1
  399. package/SVF-doxygen/html/classSVF_1_1SVFOtherType.html +25 -25
  400. package/SVF-doxygen/html/classSVF_1_1SVFPointerType.html +13 -13
  401. package/SVF-doxygen/html/classSVF_1_1SVFStat.html +31 -30
  402. package/SVF-doxygen/html/classSVF_1_1SVFStat.png +0 -0
  403. package/SVF-doxygen/html/classSVF_1_1SVFStmt.html +1 -1
  404. package/SVF-doxygen/html/classSVF_1_1SVFStructType.html +25 -25
  405. package/SVF-doxygen/html/classSVF_1_1SVFType.html +89 -89
  406. package/SVF-doxygen/html/classSVF_1_1SVFVar.html +1 -1
  407. package/SVF-doxygen/html/classSVF_1_1SaberCondAllocator.html +17 -17
  408. package/SVF-doxygen/html/classSVF_1_1SaberSVFGBuilder.html +4 -4
  409. package/SVF-doxygen/html/classSVF_1_1SingleAbsValue.html +1 -1
  410. package/SVF-doxygen/html/classSVF_1_1SrcSnkDDA.html +6 -6
  411. package/SVF-doxygen/html/classSVF_1_1StInfo.html +73 -73
  412. package/SVF-doxygen/html/classSVF_1_1Steensgaard.html +6 -6
  413. package/SVF-doxygen/html/classSVF_1_1SymState.html +4 -4
  414. package/SVF-doxygen/html/classSVF_1_1SymbolTableBuilder.html +24 -24
  415. package/SVF-doxygen/html/classSVF_1_1SymbolTableInfo.html +20 -20
  416. package/SVF-doxygen/html/classSVF_1_1TCT.html +6 -6
  417. package/SVF-doxygen/html/classSVF_1_1ThreadAPI.html +1 -1
  418. package/SVF-doxygen/html/classSVF_1_1ThreadCallGraph.html +3 -3
  419. package/SVF-doxygen/html/classSVF_1_1TypeAnalysis.html +4 -4
  420. package/SVF-doxygen/html/classSVF_1_1VFCFLGraphBuilder.html +1 -1
  421. package/SVF-doxygen/html/classSVF_1_1VFG.html +3 -3
  422. package/SVF-doxygen/html/classSVF_1_1VersionedFlowSensitive.html +8 -8
  423. package/SVF-doxygen/html/classSVF_1_1VersionedFlowSensitiveStat.html +11 -11
  424. package/SVF-doxygen/html/classSVF_1_1WPAFSSolver.html +2 -2
  425. package/SVF-doxygen/html/classSVF_1_1WPAMinimumSolver.html +2 -2
  426. package/SVF-doxygen/html/classSVF_1_1WPAPass.html +5 -5
  427. package/SVF-doxygen/html/classSVF_1_1WPASCCSolver.html +2 -2
  428. package/SVF-doxygen/html/classSVF_1_1WPASolver.html +1 -1
  429. package/SVF-doxygen/html/classSymblicAbstractionTest.html +564 -564
  430. package/SVF-doxygen/html/classes.html +454 -446
  431. package/SVF-doxygen/html/dir_2c6fb801affc4b3efe6e1ed5974683f6.html +112 -0
  432. package/SVF-doxygen/html/dir_390f2a6be5eff59a6919ecbd9cc9f31d.html +1 -1
  433. package/SVF-doxygen/html/dir_445b24f35a8ddd2effd3d23ee1278e0a.html +2 -0
  434. package/SVF-doxygen/html/dir_53d761ae38d6f143a0d195c719804439.html +88 -0
  435. package/SVF-doxygen/html/dir_7e02b97230e2801c6749b0b00985526f.html +88 -0
  436. package/SVF-doxygen/html/dir_81caa96ab1d3de93b353e2bbe80e6067.html +92 -0
  437. package/SVF-doxygen/html/dir_946e55d8e7afdb1629c1e1d7cdc5486a.html +1 -1
  438. package/SVF-doxygen/html/dir_9a8e7a56f4029a0d9f62b1c6d1f6e85b.html +100 -0
  439. package/SVF-doxygen/html/dir_fbec400583b4bd6c5f2e89c86c5943a6.html +92 -0
  440. package/SVF-doxygen/html/files.html +51 -42
  441. package/SVF-doxygen/html/functions.html +90 -2
  442. package/SVF-doxygen/html/functions_a.html +41 -11
  443. package/SVF-doxygen/html/functions_b.html +20 -4
  444. package/SVF-doxygen/html/functions_c.html +47 -31
  445. package/SVF-doxygen/html/functions_d.html +14 -2
  446. package/SVF-doxygen/html/functions_e.html +7 -1
  447. package/SVF-doxygen/html/functions_enum.html +3 -0
  448. package/SVF-doxygen/html/functions_eval_m.html +6 -0
  449. package/SVF-doxygen/html/functions_eval_s.html +6 -0
  450. package/SVF-doxygen/html/functions_eval_u.html +3 -0
  451. package/SVF-doxygen/html/functions_f.html +15 -12
  452. package/SVF-doxygen/html/functions_func.html +37 -10
  453. package/SVF-doxygen/html/functions_func_b.html +11 -2
  454. package/SVF-doxygen/html/functions_func_c.html +43 -27
  455. package/SVF-doxygen/html/functions_func_d.html +13 -1
  456. package/SVF-doxygen/html/functions_func_e.html +4 -1
  457. package/SVF-doxygen/html/functions_func_f.html +6 -3
  458. package/SVF-doxygen/html/functions_func_g.html +53 -17
  459. package/SVF-doxygen/html/functions_func_h.html +52 -1
  460. package/SVF-doxygen/html/functions_func_i.html +38 -8
  461. package/SVF-doxygen/html/functions_func_m.html +5 -2
  462. package/SVF-doxygen/html/functions_func_n.html +5 -2
  463. package/SVF-doxygen/html/functions_func_o.html +3 -3
  464. package/SVF-doxygen/html/functions_func_p.html +6 -5
  465. package/SVF-doxygen/html/functions_func_r.html +13 -8
  466. package/SVF-doxygen/html/functions_func_s.html +48 -26
  467. package/SVF-doxygen/html/functions_func_t.html +3 -0
  468. package/SVF-doxygen/html/functions_func_w.html +9 -3
  469. package/SVF-doxygen/html/functions_func_~.html +18 -0
  470. package/SVF-doxygen/html/functions_g.html +57 -18
  471. package/SVF-doxygen/html/functions_h.html +55 -4
  472. package/SVF-doxygen/html/functions_i.html +41 -11
  473. package/SVF-doxygen/html/functions_m.html +17 -2
  474. package/SVF-doxygen/html/functions_n.html +8 -5
  475. package/SVF-doxygen/html/functions_o.html +19 -16
  476. package/SVF-doxygen/html/functions_p.html +17 -18
  477. package/SVF-doxygen/html/functions_r.html +17 -7
  478. package/SVF-doxygen/html/functions_rela.html +6 -0
  479. package/SVF-doxygen/html/functions_s.html +51 -23
  480. package/SVF-doxygen/html/functions_t.html +10 -4
  481. package/SVF-doxygen/html/functions_type.html +2 -1
  482. package/SVF-doxygen/html/functions_type_c.html +2 -1
  483. package/SVF-doxygen/html/functions_u.html +5 -2
  484. package/SVF-doxygen/html/functions_v.html +3 -1
  485. package/SVF-doxygen/html/functions_vars.html +90 -2
  486. package/SVF-doxygen/html/functions_vars_b.html +9 -0
  487. package/SVF-doxygen/html/functions_vars_c.html +3 -0
  488. package/SVF-doxygen/html/functions_vars_g.html +3 -0
  489. package/SVF-doxygen/html/functions_vars_m.html +6 -0
  490. package/SVF-doxygen/html/functions_vars_o.html +3 -0
  491. package/SVF-doxygen/html/functions_vars_r.html +3 -0
  492. package/SVF-doxygen/html/functions_vars_t.html +3 -0
  493. package/SVF-doxygen/html/functions_vars_w.html +3 -0
  494. package/SVF-doxygen/html/functions_w.html +19 -14
  495. package/SVF-doxygen/html/functions_~.html +18 -0
  496. package/SVF-doxygen/html/globals.html +8 -2
  497. package/SVF-doxygen/html/globals_b.html +3 -0
  498. package/SVF-doxygen/html/globals_defs.html +9 -0
  499. package/SVF-doxygen/html/globals_n.html +5 -2
  500. package/SVF-doxygen/html/globals_s.html +5 -2
  501. package/SVF-doxygen/html/globals_vars.html +9 -3
  502. package/SVF-doxygen/html/globals_z.html +3 -3
  503. package/SVF-doxygen/html/hierarchy.html +647 -640
  504. package/SVF-doxygen/html/namespaceSVF.html +166 -70
  505. package/SVF-doxygen/html/namespaceSVF_1_1LLVMUtil.html +8 -8
  506. package/SVF-doxygen/html/namespaceSVF_1_1SVFUtil.html +4 -4
  507. package/SVF-doxygen/html/namespaceSVF_1_1cppUtil.html +6 -6
  508. package/SVF-doxygen/html/namespacemembers_a.html +3 -0
  509. package/SVF-doxygen/html/namespacemembers_enum.html +3 -0
  510. package/SVF-doxygen/html/namespacemembers_func_i.html +8 -5
  511. package/SVF-doxygen/html/namespacemembers_i.html +10 -7
  512. package/SVF-doxygen/html/search/all_0.js +182 -154
  513. package/SVF-doxygen/html/search/all_1.js +507 -496
  514. package/SVF-doxygen/html/search/all_10.js +325 -325
  515. package/SVF-doxygen/html/search/all_11.js +228 -226
  516. package/SVF-doxygen/html/search/all_12.js +569 -559
  517. package/SVF-doxygen/html/search/all_13.js +208 -206
  518. package/SVF-doxygen/html/search/all_14.js +69 -68
  519. package/SVF-doxygen/html/search/all_15.js +176 -176
  520. package/SVF-doxygen/html/search/all_16.js +78 -75
  521. package/SVF-doxygen/html/search/all_17.js +1 -1
  522. package/SVF-doxygen/html/search/all_18.js +1 -1
  523. package/SVF-doxygen/html/search/all_19.js +26 -26
  524. package/SVF-doxygen/html/search/all_1a.js +182 -176
  525. package/SVF-doxygen/html/search/all_2.js +182 -174
  526. package/SVF-doxygen/html/search/all_3.js +654 -650
  527. package/SVF-doxygen/html/search/all_4.js +237 -233
  528. package/SVF-doxygen/html/search/all_5.js +128 -126
  529. package/SVF-doxygen/html/search/all_6.js +232 -231
  530. package/SVF-doxygen/html/search/all_7.js +1060 -1047
  531. package/SVF-doxygen/html/search/all_8.js +217 -201
  532. package/SVF-doxygen/html/search/all_9.js +628 -619
  533. package/SVF-doxygen/html/search/all_a.js +46 -46
  534. package/SVF-doxygen/html/search/all_b.js +26 -26
  535. package/SVF-doxygen/html/search/all_c.js +115 -115
  536. package/SVF-doxygen/html/search/all_d.js +203 -198
  537. package/SVF-doxygen/html/search/all_e.js +209 -207
  538. package/SVF-doxygen/html/search/all_f.js +121 -120
  539. package/SVF-doxygen/html/search/classes_0.js +29 -26
  540. package/SVF-doxygen/html/search/classes_1.js +12 -9
  541. package/SVF-doxygen/html/search/classes_10.js +74 -74
  542. package/SVF-doxygen/html/search/classes_11.js +14 -14
  543. package/SVF-doxygen/html/search/classes_12.js +2 -2
  544. package/SVF-doxygen/html/search/classes_13.js +10 -10
  545. package/SVF-doxygen/html/search/classes_14.js +20 -20
  546. package/SVF-doxygen/html/search/classes_15.js +1 -1
  547. package/SVF-doxygen/html/search/classes_2.js +78 -78
  548. package/SVF-doxygen/html/search/classes_3.js +37 -37
  549. package/SVF-doxygen/html/search/classes_4.js +9 -9
  550. package/SVF-doxygen/html/search/classes_5.js +28 -28
  551. package/SVF-doxygen/html/search/classes_6.js +104 -104
  552. package/SVF-doxygen/html/search/classes_7.js +38 -38
  553. package/SVF-doxygen/html/search/classes_8.js +58 -58
  554. package/SVF-doxygen/html/search/classes_9.js +1 -1
  555. package/SVF-doxygen/html/search/classes_a.js +12 -12
  556. package/SVF-doxygen/html/search/classes_b.js +29 -29
  557. package/SVF-doxygen/html/search/classes_c.js +6 -6
  558. package/SVF-doxygen/html/search/classes_d.js +19 -19
  559. package/SVF-doxygen/html/search/classes_e.js +36 -36
  560. package/SVF-doxygen/html/search/classes_f.js +25 -25
  561. package/SVF-doxygen/html/search/defines_0.js +3 -3
  562. package/SVF-doxygen/html/search/defines_1.js +3 -2
  563. package/SVF-doxygen/html/search/defines_10.js +2 -2
  564. package/SVF-doxygen/html/search/defines_2.js +30 -30
  565. package/SVF-doxygen/html/search/defines_3.js +20 -20
  566. package/SVF-doxygen/html/search/defines_4.js +3 -3
  567. package/SVF-doxygen/html/search/defines_5.js +4 -4
  568. package/SVF-doxygen/html/search/defines_6.js +2 -2
  569. package/SVF-doxygen/html/search/defines_7.js +5 -5
  570. package/SVF-doxygen/html/search/defines_8.js +11 -11
  571. package/SVF-doxygen/html/search/defines_9.js +9 -9
  572. package/SVF-doxygen/html/search/defines_a.js +2 -2
  573. package/SVF-doxygen/html/search/defines_b.js +1 -1
  574. package/SVF-doxygen/html/search/defines_c.js +4 -3
  575. package/SVF-doxygen/html/search/defines_d.js +2 -2
  576. package/SVF-doxygen/html/search/defines_e.js +8 -7
  577. package/SVF-doxygen/html/search/defines_f.js +4 -4
  578. package/SVF-doxygen/html/search/enums_0.js +4 -3
  579. package/SVF-doxygen/html/search/enums_1.js +2 -2
  580. package/SVF-doxygen/html/search/enums_10.js +1 -1
  581. package/SVF-doxygen/html/search/enums_11.js +1 -1
  582. package/SVF-doxygen/html/search/enums_2.js +8 -8
  583. package/SVF-doxygen/html/search/enums_3.js +1 -1
  584. package/SVF-doxygen/html/search/enums_4.js +4 -3
  585. package/SVF-doxygen/html/search/enums_5.js +1 -1
  586. package/SVF-doxygen/html/search/enums_6.js +2 -2
  587. package/SVF-doxygen/html/search/enums_7.js +2 -2
  588. package/SVF-doxygen/html/search/enums_8.js +4 -4
  589. package/SVF-doxygen/html/search/enums_9.js +1 -1
  590. package/SVF-doxygen/html/search/enums_a.js +1 -1
  591. package/SVF-doxygen/html/search/enums_b.js +7 -7
  592. package/SVF-doxygen/html/search/enums_c.js +1 -1
  593. package/SVF-doxygen/html/search/enums_d.js +4 -4
  594. package/SVF-doxygen/html/search/enums_e.js +2 -2
  595. package/SVF-doxygen/html/search/enums_f.js +4 -4
  596. package/SVF-doxygen/html/search/enumvalues_0.js +15 -14
  597. package/SVF-doxygen/html/search/enumvalues_1.js +15 -14
  598. package/SVF-doxygen/html/search/enumvalues_10.js +35 -35
  599. package/SVF-doxygen/html/search/enumvalues_11.js +4 -3
  600. package/SVF-doxygen/html/search/enumvalues_12.js +10 -10
  601. package/SVF-doxygen/html/search/enumvalues_13.js +1 -1
  602. package/SVF-doxygen/html/search/enumvalues_14.js +1 -1
  603. package/SVF-doxygen/html/search/enumvalues_15.js +3 -3
  604. package/SVF-doxygen/html/search/enumvalues_2.js +36 -36
  605. package/SVF-doxygen/html/search/enumvalues_3.js +13 -13
  606. package/SVF-doxygen/html/search/enumvalues_4.js +2 -2
  607. package/SVF-doxygen/html/search/enumvalues_5.js +47 -47
  608. package/SVF-doxygen/html/search/enumvalues_6.js +6 -6
  609. package/SVF-doxygen/html/search/enumvalues_7.js +8 -8
  610. package/SVF-doxygen/html/search/enumvalues_8.js +23 -23
  611. package/SVF-doxygen/html/search/enumvalues_9.js +6 -6
  612. package/SVF-doxygen/html/search/enumvalues_a.js +17 -15
  613. package/SVF-doxygen/html/search/enumvalues_b.js +11 -11
  614. package/SVF-doxygen/html/search/enumvalues_c.js +5 -5
  615. package/SVF-doxygen/html/search/enumvalues_d.js +18 -18
  616. package/SVF-doxygen/html/search/enumvalues_e.js +9 -9
  617. package/SVF-doxygen/html/search/enumvalues_f.js +47 -45
  618. package/SVF-doxygen/html/search/files_0.js +15 -14
  619. package/SVF-doxygen/html/search/files_1.js +9 -7
  620. package/SVF-doxygen/html/search/files_10.js +8 -8
  621. package/SVF-doxygen/html/search/files_11.js +8 -8
  622. package/SVF-doxygen/html/search/files_12.js +2 -2
  623. package/SVF-doxygen/html/search/files_2.js +58 -58
  624. package/SVF-doxygen/html/search/files_3.js +14 -14
  625. package/SVF-doxygen/html/search/files_4.js +5 -5
  626. package/SVF-doxygen/html/search/files_5.js +13 -13
  627. package/SVF-doxygen/html/search/files_6.js +10 -9
  628. package/SVF-doxygen/html/search/files_7.js +15 -15
  629. package/SVF-doxygen/html/search/files_8.js +13 -13
  630. package/SVF-doxygen/html/search/files_9.js +18 -18
  631. package/SVF-doxygen/html/search/files_a.js +3 -3
  632. package/SVF-doxygen/html/search/files_b.js +4 -4
  633. package/SVF-doxygen/html/search/files_c.js +20 -20
  634. package/SVF-doxygen/html/search/files_d.js +4 -4
  635. package/SVF-doxygen/html/search/files_e.js +62 -62
  636. package/SVF-doxygen/html/search/files_f.js +8 -8
  637. package/SVF-doxygen/html/search/functions_0.js +13 -13
  638. package/SVF-doxygen/html/search/functions_1.js +374 -365
  639. package/SVF-doxygen/html/search/functions_10.js +140 -140
  640. package/SVF-doxygen/html/search/functions_11.js +142 -141
  641. package/SVF-doxygen/html/search/functions_12.js +298 -291
  642. package/SVF-doxygen/html/search/functions_13.js +74 -73
  643. package/SVF-doxygen/html/search/functions_14.js +40 -40
  644. package/SVF-doxygen/html/search/functions_15.js +72 -72
  645. package/SVF-doxygen/html/search/functions_16.js +38 -36
  646. package/SVF-doxygen/html/search/functions_17.js +3 -3
  647. package/SVF-doxygen/html/search/functions_18.js +182 -176
  648. package/SVF-doxygen/html/search/functions_2.js +95 -92
  649. package/SVF-doxygen/html/search/functions_3.js +266 -262
  650. package/SVF-doxygen/html/search/functions_4.js +84 -80
  651. package/SVF-doxygen/html/search/functions_5.js +57 -56
  652. package/SVF-doxygen/html/search/functions_6.js +65 -64
  653. package/SVF-doxygen/html/search/functions_7.js +867 -856
  654. package/SVF-doxygen/html/search/functions_8.js +164 -148
  655. package/SVF-doxygen/html/search/functions_9.js +440 -431
  656. package/SVF-doxygen/html/search/functions_a.js +30 -30
  657. package/SVF-doxygen/html/search/functions_b.js +2 -2
  658. package/SVF-doxygen/html/search/functions_c.js +25 -25
  659. package/SVF-doxygen/html/search/functions_d.js +81 -80
  660. package/SVF-doxygen/html/search/functions_e.js +36 -35
  661. package/SVF-doxygen/html/search/functions_f.js +58 -58
  662. package/SVF-doxygen/html/search/namespaces_0.js +1 -1
  663. package/SVF-doxygen/html/search/namespaces_1.js +7 -7
  664. package/SVF-doxygen/html/search/related_0.js +4 -2
  665. package/SVF-doxygen/html/search/related_1.js +2 -2
  666. package/SVF-doxygen/html/search/related_2.js +3 -3
  667. package/SVF-doxygen/html/search/related_3.js +2 -2
  668. package/SVF-doxygen/html/search/related_4.js +2 -2
  669. package/SVF-doxygen/html/search/related_5.js +1 -1
  670. package/SVF-doxygen/html/search/related_6.js +2 -2
  671. package/SVF-doxygen/html/search/related_7.js +4 -4
  672. package/SVF-doxygen/html/search/related_8.js +2 -2
  673. package/SVF-doxygen/html/search/related_9.js +4 -4
  674. package/SVF-doxygen/html/search/related_a.js +19 -19
  675. package/SVF-doxygen/html/search/related_b.js +4 -4
  676. package/SVF-doxygen/html/search/related_c.js +2 -2
  677. package/SVF-doxygen/html/search/related_d.js +12 -12
  678. package/SVF-doxygen/html/search/related_e.js +2 -2
  679. package/SVF-doxygen/html/search/related_f.js +2 -2
  680. package/SVF-doxygen/html/search/typedefs_0.js +20 -20
  681. package/SVF-doxygen/html/search/typedefs_1.js +27 -27
  682. package/SVF-doxygen/html/search/typedefs_10.js +63 -63
  683. package/SVF-doxygen/html/search/typedefs_11.js +13 -13
  684. package/SVF-doxygen/html/search/typedefs_12.js +11 -11
  685. package/SVF-doxygen/html/search/typedefs_13.js +40 -40
  686. package/SVF-doxygen/html/search/typedefs_14.js +11 -11
  687. package/SVF-doxygen/html/search/typedefs_2.js +129 -129
  688. package/SVF-doxygen/html/search/typedefs_3.js +39 -39
  689. package/SVF-doxygen/html/search/typedefs_4.js +18 -18
  690. package/SVF-doxygen/html/search/typedefs_5.js +42 -42
  691. package/SVF-doxygen/html/search/typedefs_6.js +57 -57
  692. package/SVF-doxygen/html/search/typedefs_7.js +47 -47
  693. package/SVF-doxygen/html/search/typedefs_8.js +1 -1
  694. package/SVF-doxygen/html/search/typedefs_9.js +6 -6
  695. package/SVF-doxygen/html/search/typedefs_a.js +29 -29
  696. package/SVF-doxygen/html/search/typedefs_b.js +29 -29
  697. package/SVF-doxygen/html/search/typedefs_c.js +41 -41
  698. package/SVF-doxygen/html/search/typedefs_d.js +14 -14
  699. package/SVF-doxygen/html/search/typedefs_e.js +52 -52
  700. package/SVF-doxygen/html/search/typedefs_f.js +14 -14
  701. package/SVF-doxygen/html/search/variables_0.js +182 -154
  702. package/SVF-doxygen/html/search/variables_1.js +76 -76
  703. package/SVF-doxygen/html/search/variables_10.js +98 -98
  704. package/SVF-doxygen/html/search/variables_11.js +46 -45
  705. package/SVF-doxygen/html/search/variables_12.js +93 -93
  706. package/SVF-doxygen/html/search/variables_13.js +76 -75
  707. package/SVF-doxygen/html/search/variables_14.js +14 -14
  708. package/SVF-doxygen/html/search/variables_15.js +49 -49
  709. package/SVF-doxygen/html/search/variables_16.js +11 -10
  710. package/SVF-doxygen/html/search/variables_17.js +1 -1
  711. package/SVF-doxygen/html/search/variables_18.js +17 -17
  712. package/SVF-doxygen/html/search/variables_2.js +41 -38
  713. package/SVF-doxygen/html/search/variables_3.js +142 -142
  714. package/SVF-doxygen/html/search/variables_4.js +51 -51
  715. package/SVF-doxygen/html/search/variables_5.js +39 -39
  716. package/SVF-doxygen/html/search/variables_6.js +66 -66
  717. package/SVF-doxygen/html/search/variables_7.js +34 -33
  718. package/SVF-doxygen/html/search/variables_8.js +8 -8
  719. package/SVF-doxygen/html/search/variables_9.js +78 -78
  720. package/SVF-doxygen/html/search/variables_a.js +4 -4
  721. package/SVF-doxygen/html/search/variables_b.js +10 -10
  722. package/SVF-doxygen/html/search/variables_c.js +45 -45
  723. package/SVF-doxygen/html/search/variables_d.js +57 -55
  724. package/SVF-doxygen/html/search/variables_e.js +123 -123
  725. package/SVF-doxygen/html/search/variables_f.js +31 -30
  726. package/SVF-doxygen/html/structSVF_1_1BufOverflowException-members.html +100 -0
  727. package/SVF-doxygen/html/structSVF_1_1BufOverflowException.html +663 -0
  728. package/SVF-doxygen/html/structSVF_1_1BufOverflowException.png +0 -0
  729. package/SVF-doxygen/html/structSVF_1_1DOTGraphTraits_3_01SVF_1_1CFBasicBlockGraph_01_5_01_4.html +102 -102
  730. package/SVF-doxygen/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1CFBasicBlockNode_01_5_01_4_01_4.html +1 -1
  731. package/SVF-doxygen/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1CFBasicBlockGraph_01_5_01_4.html +2 -2
  732. package/SVF-doxygen/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1CFBasicBlockNode_01_5_01_4.html +1 -1
  733. package/SVF-doxygen/html/structSVF_1_1GrammarBase_1_1Symbol.html +1 -1
  734. package/SVF-doxygen/html/structSVF_1_1Hash.html +8 -8
  735. package/SVF-doxygen/html/structSVF_1_1Hash_3_01NodePair_01_4.html +11 -11
  736. package/SVF-doxygen/html/structSVF_1_1Hash_3_01std_1_1pair_3_01S_00_01T_01_4_01_4.html +14 -14
  737. package/SVF-doxygen/html/structstd_1_1hash_3_01SVF_1_1AccessPath_01_4.html +1 -1
  738. package/SVF-doxygen/html/structstd_1_1hash_3_01SVF_1_1BoundedZ3Expr_01_4.html +1 -1
  739. package/SVF-doxygen/html/structstd_1_1hash_3_01SVF_1_1CondStdSet_3_01Element_01_4_01_4.html +1 -1
  740. package/SVF-doxygen/html/structstd_1_1hash_3_01SVF_1_1ConsExeState_01_4.html +7 -7
  741. package/SVF-doxygen/html/structstd_1_1hash_3_01SVF_1_1CxtDPItem_01_4.html +1 -1
  742. package/SVF-doxygen/html/structstd_1_1hash_3_01SVF_1_1CxtStmtDPItem_3_01LocCond_01_4_01_4.html +1 -1
  743. package/SVF-doxygen/html/structstd_1_1hash_3_01SVF_1_1ExeState_01_4.html +6 -6
  744. package/SVF-doxygen/html/structstd_1_1hash_3_01SVF_1_1IntervalExeState_01_4.html +1 -1
  745. package/SVF-doxygen/html/structstd_1_1hash_3_01SVF_1_1NodePair_01_4.html +11 -11
  746. package/SVF-doxygen/html/structstd_1_1hash_3_01SVF_1_1NumericLiteral_01_4.html +6 -6
  747. package/SVF-doxygen/html/structstd_1_1hash_3_01SVF_1_1RelExeState_01_4.html +1 -1
  748. package/SVF-doxygen/html/structstd_1_1hash_3_01SVF_1_1SingleAbsValue_01_4.html +1 -1
  749. package/SVF-doxygen/html/structstd_1_1hash_3_01SVF_1_1SparseBitVector_3_01N_01_4_01_4.html +8 -8
  750. package/SVF-doxygen/html/structstd_1_1hash_3_01SVF_1_1StmtDPItem_3_01LocCond_01_4_01_4.html +1 -1
  751. package/SVF-doxygen/html/structstd_1_1hash_3_01SVF_1_1SymState_01_4.html +2 -2
  752. package/SVF-doxygen/html/structstd_1_1hash_3_01std_1_1vector_3_01T_01_4_01_4.html +15 -15
  753. package/SVF-doxygen/html/svf-ex_8cpp.html +193 -193
  754. package/SVF-doxygen/html/svf-ex_8cpp_source.html +212 -213
  755. package/SVF-doxygen/html/svf-llvm_2tools_2MTA_2MTAResultValidator_8h_source.html +2 -2
  756. package/SVF-doxygen/html/svf_2include_2MTA_2MTAResultValidator_8h_source.html +2 -2
  757. package/package.json +1 -1
  758. package/svf/include/{AbstractExecution → AE/Core}/AbstractValue.h +0 -1
  759. package/svf/include/{AbstractExecution → AE/Core}/AddressValue.h +6 -4
  760. package/svf/include/{AbstractExecution → AE/Core}/CFBasicBlockGWTO.h +2 -0
  761. package/svf/include/{AbstractExecution → AE/Core}/ConsExeState.h +5 -3
  762. package/svf/include/{AbstractExecution → AE/Core}/ExeState.h +3 -2
  763. package/svf/include/{AbstractExecution → AE/Core}/IntervalExeState.h +2 -2
  764. package/svf/include/{AbstractExecution → AE/Core}/IntervalValue.h +2 -2
  765. package/svf/include/{AbstractExecution → AE/Core}/NumericLiteral.h +2 -4
  766. package/svf/include/{AbstractExecution → AE/Core}/RelExeState.h +1 -1
  767. package/svf/include/{AbstractExecution → AE/Core}/RelationSolver.h +1 -1
  768. package/svf/include/{AbstractExecution → AE/Core}/SingleAbsValue.h +1 -1
  769. package/svf/include/{AbstractExecution → AE/Core}/SymState.h +1 -1
  770. package/svf/include/AE/Svfexe/AE.h +434 -0
  771. package/svf/include/AE/Svfexe/BufOverflowChecker.h +223 -0
  772. package/svf/include/{AbstractExecution → AE/Svfexe}/SVFIR2ConsExeState.h +1 -1
  773. package/svf/include/{AbstractExecution → AE/Svfexe}/SVFIR2ItvExeState.h +4 -4
  774. package/svf/include/Graphs/CFBasicBlockG.h +6 -0
  775. package/svf/include/SVFIR/SVFType.h +2 -88
  776. package/svf/include/Util/CFBasicBlockGBuilder.h +5 -0
  777. package/svf/include/Util/GeneralType.h +123 -0
  778. package/svf/include/Util/Options.h +11 -0
  779. package/svf/lib/{AbstractExecution → AE/Core}/BoundedZ3Expr.cpp +1 -1
  780. package/svf/lib/{AbstractExecution → AE/Core}/ConsExeState.cpp +2 -5
  781. package/svf/lib/{AbstractExecution → AE/Core}/ExeState.cpp +2 -2
  782. package/svf/lib/{AbstractExecution → AE/Core}/IntervalExeState.cpp +1 -1
  783. package/svf/lib/{AbstractExecution → AE/Core}/RelExeState.cpp +3 -2
  784. package/svf/lib/{AbstractExecution → AE/Core}/RelationSolver.cpp +1 -1
  785. package/svf/lib/{AbstractExecution → AE/Core}/SVFIR2Relation.cpp +1 -1
  786. package/svf/lib/{AbstractExecution → AE/Core}/SymState.cpp +1 -1
  787. package/svf/lib/AE/Svfexe/AE.cpp +1833 -0
  788. package/svf/lib/AE/Svfexe/BufOverflowChecker.cpp +839 -0
  789. package/svf/lib/{AbstractExecution → AE/Svfexe}/SVFIR2ConsExeState.cpp +1 -1
  790. package/svf/lib/{AbstractExecution → AE/Svfexe}/SVFIR2ItvExeState.cpp +1 -1
  791. package/svf/lib/Util/Options.cpp +13 -0
  792. package/svf-llvm/tools/AE/CMakeLists.txt +1 -0
  793. package/svf-llvm/tools/AE/ae.cpp +91 -26
  794. package/svf-llvm/tools/Example/svf-ex.cpp +3 -4
  795. /package/svf/include/{AbstractExecution → AE/Core}/BoundedZ3Expr.h +0 -0
  796. /package/svf/include/{AbstractExecution → AE/Core}/ICFGWTO.h +0 -0
@@ -118,7 +118,7 @@ Static Public Member Functions</h2></td></tr>
118
118
  </table>
119
119
  <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
120
120
  <div class="textblock">
121
- <p class="definition">Definition at line <a class="el" href="ae_8cpp_source.html#l00021">21</a> of file <a class="el" href="ae_8cpp_source.html">ae.cpp</a>.</p>
121
+ <p class="definition">Definition at line <a class="el" href="ae_8cpp_source.html#l00047">47</a> of file <a class="el" href="ae_8cpp_source.html">ae.cpp</a>.</p>
122
122
  </div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
123
123
  <a id="a257f62679b2ee86ffbadf33ca5031ed1"></a>
124
124
  <h2 class="memtitle"><span class="permalink"><a href="#a257f62679b2ee86ffbadf33ca5031ed1">&#9670;&nbsp;</a></span>SymblicAbstractionTest()</h2>
@@ -211,17 +211,17 @@ Static Public Member Functions</h2></td></tr>
211
211
  </table>
212
212
  </div><div class="memdoc">
213
213
 
214
- <p class="definition">Definition at line <a class="el" href="ae_8cpp_source.html#l00050">50</a> of file <a class="el" href="ae_8cpp_source.html">ae.cpp</a>.</p>
215
- <div class="fragment"><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; {</div>
216
- <div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keyword">auto</span> start_time = std::chrono::high_resolution_clock::now();</div>
217
- <div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> resBilateral = rs.<a class="code" href="classSVF_1_1RelationSolver.html#a0df88638c5e3f8cd56d34088b96199f1">bilateral</a>(inv, phi);</div>
218
- <div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keyword">auto</span> end_time = std::chrono::high_resolution_clock::now();</div>
219
- <div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keyword">auto</span> duration = std::chrono::duration_cast&lt;std::chrono::microseconds&gt;(</div>
220
- <div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; end_time - start_time);</div>
221
- <div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;running time of Bilateral: &quot;</span> &lt;&lt; duration.count()</div>
222
- <div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; &lt;&lt; <span class="stringliteral">&quot; microseconds\n&quot;</span>;</div>
223
- <div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordflow">return</span> resBilateral;</div>
224
- <div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; }</div>
214
+ <p class="definition">Definition at line <a class="el" href="ae_8cpp_source.html#l00076">76</a> of file <a class="el" href="ae_8cpp_source.html">ae.cpp</a>.</p>
215
+ <div class="fragment"><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; {</div>
216
+ <div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keyword">auto</span> start_time = std::chrono::high_resolution_clock::now();</div>
217
+ <div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> resBilateral = rs.<a class="code" href="classSVF_1_1RelationSolver.html#a0df88638c5e3f8cd56d34088b96199f1">bilateral</a>(inv, phi);</div>
218
+ <div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keyword">auto</span> end_time = std::chrono::high_resolution_clock::now();</div>
219
+ <div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keyword">auto</span> duration = std::chrono::duration_cast&lt;std::chrono::microseconds&gt;(</div>
220
+ <div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; end_time - start_time);</div>
221
+ <div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;running time of Bilateral: &quot;</span> &lt;&lt; duration.count()</div>
222
+ <div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; &lt;&lt; <span class="stringliteral">&quot; microseconds\n&quot;</span>;</div>
223
+ <div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keywordflow">return</span> resBilateral;</div>
224
+ <div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; }</div>
225
225
  </div><!-- fragment -->
226
226
  </div>
227
227
  </div>
@@ -265,17 +265,17 @@ Static Public Member Functions</h2></td></tr>
265
265
  </table>
266
266
  </div><div class="memdoc">
267
267
 
268
- <p class="definition">Definition at line <a class="el" href="ae_8cpp_source.html#l00062">62</a> of file <a class="el" href="ae_8cpp_source.html">ae.cpp</a>.</p>
269
- <div class="fragment"><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; {</div>
270
- <div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">auto</span> start_time = std::chrono::high_resolution_clock::now();</div>
271
- <div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> resBS = rs.<a class="code" href="classSVF_1_1RelationSolver.html#a7e827609a1d69c6517f1a3eee0326fc3">BS</a>(inv, phi);</div>
272
- <div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keyword">auto</span> end_time = std::chrono::high_resolution_clock::now();</div>
273
- <div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keyword">auto</span> duration = std::chrono::duration_cast&lt;std::chrono::microseconds&gt;(</div>
274
- <div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; end_time - start_time);</div>
275
- <div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;running time of BS : &quot;</span> &lt;&lt; duration.count()</div>
276
- <div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; &lt;&lt; <span class="stringliteral">&quot; microseconds\n&quot;</span>;</div>
277
- <div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keywordflow">return</span> resBS;</div>
278
- <div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; }</div>
268
+ <p class="definition">Definition at line <a class="el" href="ae_8cpp_source.html#l00088">88</a> of file <a class="el" href="ae_8cpp_source.html">ae.cpp</a>.</p>
269
+ <div class="fragment"><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; {</div>
270
+ <div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keyword">auto</span> start_time = std::chrono::high_resolution_clock::now();</div>
271
+ <div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> resBS = rs.<a class="code" href="classSVF_1_1RelationSolver.html#a7e827609a1d69c6517f1a3eee0326fc3">BS</a>(inv, phi);</div>
272
+ <div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keyword">auto</span> end_time = std::chrono::high_resolution_clock::now();</div>
273
+ <div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keyword">auto</span> duration = std::chrono::duration_cast&lt;std::chrono::microseconds&gt;(</div>
274
+ <div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; end_time - start_time);</div>
275
+ <div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;running time of BS : &quot;</span> &lt;&lt; duration.count()</div>
276
+ <div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; &lt;&lt; <span class="stringliteral">&quot; microseconds\n&quot;</span>;</div>
277
+ <div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordflow">return</span> resBS;</div>
278
+ <div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; }</div>
279
279
  </div><!-- fragment -->
280
280
  </div>
281
281
  </div>
@@ -302,10 +302,10 @@ Static Public Member Functions</h2></td></tr>
302
302
  </table>
303
303
  </div><div class="memdoc">
304
304
 
305
- <p class="definition">Definition at line <a class="el" href="ae_8cpp_source.html#l00028">28</a> of file <a class="el" href="ae_8cpp_source.html">ae.cpp</a>.</p>
306
- <div class="fragment"><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; {</div>
307
- <div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keywordflow">return</span> Z3Expr::getContext();</div>
308
- <div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; }</div>
305
+ <p class="definition">Definition at line <a class="el" href="ae_8cpp_source.html#l00054">54</a> of file <a class="el" href="ae_8cpp_source.html">ae.cpp</a>.</p>
306
+ <div class="fragment"><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; {</div>
307
+ <div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keywordflow">return</span> Z3Expr::getContext();</div>
308
+ <div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; }</div>
309
309
  </div><!-- fragment -->
310
310
  </div>
311
311
  </div>
@@ -349,17 +349,17 @@ Static Public Member Functions</h2></td></tr>
349
349
  </table>
350
350
  </div><div class="memdoc">
351
351
 
352
- <p class="definition">Definition at line <a class="el" href="ae_8cpp_source.html#l00038">38</a> of file <a class="el" href="ae_8cpp_source.html">ae.cpp</a>.</p>
353
- <div class="fragment"><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; {</div>
354
- <div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keyword">auto</span> start_time = std::chrono::high_resolution_clock::now();</div>
355
- <div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> resRSY = rs.<a class="code" href="classSVF_1_1RelationSolver.html#a657af041f883e7b1a3f9892453a2c4cf">RSY</a>(inv, phi);</div>
356
- <div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keyword">auto</span> end_time = std::chrono::high_resolution_clock::now();</div>
357
- <div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">auto</span> duration = std::chrono::duration_cast&lt;std::chrono::microseconds&gt;(</div>
358
- <div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; end_time - start_time);</div>
359
- <div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;running time of RSY : &quot;</span> &lt;&lt; duration.count()</div>
360
- <div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; &lt;&lt; <span class="stringliteral">&quot; microseconds\n&quot;</span>;</div>
361
- <div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keywordflow">return</span> resRSY;</div>
362
- <div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; }</div>
352
+ <p class="definition">Definition at line <a class="el" href="ae_8cpp_source.html#l00064">64</a> of file <a class="el" href="ae_8cpp_source.html">ae.cpp</a>.</p>
353
+ <div class="fragment"><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; {</div>
354
+ <div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keyword">auto</span> start_time = std::chrono::high_resolution_clock::now();</div>
355
+ <div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> resRSY = rs.<a class="code" href="classSVF_1_1RelationSolver.html#a657af041f883e7b1a3f9892453a2c4cf">RSY</a>(inv, phi);</div>
356
+ <div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keyword">auto</span> end_time = std::chrono::high_resolution_clock::now();</div>
357
+ <div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keyword">auto</span> duration = std::chrono::duration_cast&lt;std::chrono::microseconds&gt;(</div>
358
+ <div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; end_time - start_time);</div>
359
+ <div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;running time of RSY : &quot;</span> &lt;&lt; duration.count()</div>
360
+ <div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; &lt;&lt; <span class="stringliteral">&quot; microseconds\n&quot;</span>;</div>
361
+ <div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keywordflow">return</span> resRSY;</div>
362
+ <div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; }</div>
363
363
  </div><!-- fragment -->
364
364
  </div>
365
365
  </div>
@@ -386,10 +386,10 @@ Static Public Member Functions</h2></td></tr>
386
386
  </table>
387
387
  </div><div class="memdoc">
388
388
 
389
- <p class="definition">Definition at line <a class="el" href="ae_8cpp_source.html#l00033">33</a> of file <a class="el" href="ae_8cpp_source.html">ae.cpp</a>.</p>
390
- <div class="fragment"><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; {</div>
391
- <div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() &lt;&lt; <span class="stringliteral">&quot;hello print\n&quot;</span>;</div>
392
- <div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; }</div>
389
+ <p class="definition">Definition at line <a class="el" href="ae_8cpp_source.html#l00059">59</a> of file <a class="el" href="ae_8cpp_source.html">ae.cpp</a>.</p>
390
+ <div class="fragment"><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; {</div>
391
+ <div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;hello print\n&quot;</span>;</div>
392
+ <div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; }</div>
393
393
  </div><!-- fragment -->
394
394
  </div>
395
395
  </div>
@@ -416,39 +416,39 @@ Static Public Member Functions</h2></td></tr>
416
416
  </table>
417
417
  </div><div class="memdoc">
418
418
 
419
- <p class="definition">Definition at line <a class="el" href="ae_8cpp_source.html#l00075">75</a> of file <a class="el" href="ae_8cpp_source.html">ae.cpp</a>.</p>
420
- <div class="fragment"><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; {</div>
421
- <div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a05dc00b2bd9a8176aae31b6cfffe725d">sucMsg</a>(<span class="stringliteral">&quot;\t SUCCESS :&quot;</span>) &lt;&lt; <span class="stringliteral">&quot;test1_1 start\n&quot;</span>;</div>
422
- <div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> itv;</div>
423
- <div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <a class="code" href="classSVF_1_1RelExeState.html">RelExeState</a> relation;</div>
424
- <div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="comment">// var0 := [0, 1];</span></div>
425
- <div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; itv[0] = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 1);</div>
426
- <div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; relation[0] = <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;0&quot;</span>);</div>
427
- <div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="comment">// var1 := var0 + 1;</span></div>
428
- <div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; relation[1] =</div>
429
- <div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;1&quot;</span>) == <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;0&quot;</span>) + 1;</div>
430
- <div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; itv[1] = itv[0] + <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1);</div>
431
- <div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="comment">// Test extract sub vars</span></div>
432
- <div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;u32_t&gt;</a> res;</div>
433
- <div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; relation.<a class="code" href="classSVF_1_1RelExeState.html#a3393f160508c33e68ebedd042d1d296f">extractSubVars</a>(relation[1], res);</div>
434
- <div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; assert(res == <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;u32_t&gt;</a>({0, 1}) &amp;&amp; <span class="stringliteral">&quot;inconsistency occurs&quot;</span>);</div>
435
- <div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> inv = itv.<a class="code" href="classSVF_1_1IntervalESBase.html#a2c15de9b10a74fbcb171ff2f328ce7f2">sliceState</a>(res);</div>
436
- <div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <a class="code" href="classSVF_1_1RelationSolver.html">RelationSolver</a> rs;</div>
437
- <div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&amp; relExpr = relation[1];</div>
438
- <div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&amp; initExpr = rs.<a class="code" href="classSVF_1_1RelationSolver.html#af860063ccaeca043bac84eb9eb2cf80a">gamma_hat</a>(inv);</div>
439
- <div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&amp; phi = (relExpr &amp;&amp; initExpr).simplify();</div>
440
- <div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> resRSY = rs.<a class="code" href="classSVF_1_1RelationSolver.html#a657af041f883e7b1a3f9892453a2c4cf">RSY</a>(inv, phi);</div>
441
- <div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> resBilateral = rs.<a class="code" href="classSVF_1_1RelationSolver.html#a0df88638c5e3f8cd56d34088b96199f1">bilateral</a>(inv, phi);</div>
442
- <div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> resBS = rs.<a class="code" href="classSVF_1_1RelationSolver.html#a7e827609a1d69c6517f1a3eee0326fc3">BS</a>(inv, phi);</div>
443
- <div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="comment">// 0:[0,1] 1:[1,2]</span></div>
444
- <div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; assert(resRSY == resBS &amp;&amp; resBS == resBilateral &amp;&amp; <span class="stringliteral">&quot;inconsistency occurs&quot;</span>);</div>
445
- <div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> r : resRSY.<a class="code" href="classSVF_1_1IntervalESBase.html#a903797577ba99ef57879774a3849bbfe">getVarToVal</a>())</div>
446
- <div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; {</div>
447
- <div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; r.first &lt;&lt; <span class="stringliteral">&quot; &quot;</span> &lt;&lt; r.second &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
448
- <div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; }</div>
449
- <div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html#a02e3d5f7074c4f77338edc9a7add95d8">IntervalESBase::VarToValMap</a> intendedRes = {{0, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 1)}, {1, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1, 2)}};</div>
450
- <div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; assert(IntervalESBase::eqVarToValMap(resBS.<a class="code" href="classSVF_1_1IntervalESBase.html#a903797577ba99ef57879774a3849bbfe">getVarToVal</a>(), intendedRes) &amp;&amp; <span class="stringliteral">&quot;inconsistency occurs&quot;</span>);</div>
451
- <div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; }</div>
419
+ <p class="definition">Definition at line <a class="el" href="ae_8cpp_source.html#l00101">101</a> of file <a class="el" href="ae_8cpp_source.html">ae.cpp</a>.</p>
420
+ <div class="fragment"><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; {</div>
421
+ <div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a05dc00b2bd9a8176aae31b6cfffe725d">sucMsg</a>(<span class="stringliteral">&quot;\t SUCCESS :&quot;</span>) &lt;&lt; <span class="stringliteral">&quot;test1_1 start\n&quot;</span>;</div>
422
+ <div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> itv;</div>
423
+ <div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <a class="code" href="classSVF_1_1RelExeState.html">RelExeState</a> relation;</div>
424
+ <div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="comment">// var0 := [0, 1];</span></div>
425
+ <div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; itv[0] = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 1);</div>
426
+ <div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; relation[0] = <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;0&quot;</span>);</div>
427
+ <div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="comment">// var1 := var0 + 1;</span></div>
428
+ <div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; relation[1] =</div>
429
+ <div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;1&quot;</span>) == <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;0&quot;</span>) + 1;</div>
430
+ <div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; itv[1] = itv[0] + <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1);</div>
431
+ <div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="comment">// Test extract sub vars</span></div>
432
+ <div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;u32_t&gt;</a> res;</div>
433
+ <div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; relation.<a class="code" href="classSVF_1_1RelExeState.html#a3393f160508c33e68ebedd042d1d296f">extractSubVars</a>(relation[1], res);</div>
434
+ <div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; assert(res == <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;u32_t&gt;</a>({0, 1}) &amp;&amp; <span class="stringliteral">&quot;inconsistency occurs&quot;</span>);</div>
435
+ <div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> inv = itv.<a class="code" href="classSVF_1_1IntervalESBase.html#a2c15de9b10a74fbcb171ff2f328ce7f2">sliceState</a>(res);</div>
436
+ <div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <a class="code" href="classSVF_1_1RelationSolver.html">RelationSolver</a> rs;</div>
437
+ <div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&amp; relExpr = relation[1];</div>
438
+ <div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&amp; initExpr = rs.<a class="code" href="classSVF_1_1RelationSolver.html#af860063ccaeca043bac84eb9eb2cf80a">gamma_hat</a>(inv);</div>
439
+ <div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&amp; phi = (relExpr &amp;&amp; initExpr).simplify();</div>
440
+ <div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> resRSY = rs.<a class="code" href="classSVF_1_1RelationSolver.html#a657af041f883e7b1a3f9892453a2c4cf">RSY</a>(inv, phi);</div>
441
+ <div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> resBilateral = rs.<a class="code" href="classSVF_1_1RelationSolver.html#a0df88638c5e3f8cd56d34088b96199f1">bilateral</a>(inv, phi);</div>
442
+ <div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> resBS = rs.<a class="code" href="classSVF_1_1RelationSolver.html#a7e827609a1d69c6517f1a3eee0326fc3">BS</a>(inv, phi);</div>
443
+ <div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="comment">// 0:[0,1] 1:[1,2]</span></div>
444
+ <div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; assert(resRSY == resBS &amp;&amp; resBS == resBilateral &amp;&amp; <span class="stringliteral">&quot;inconsistency occurs&quot;</span>);</div>
445
+ <div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> r : resRSY.<a class="code" href="classSVF_1_1IntervalESBase.html#a903797577ba99ef57879774a3849bbfe">getVarToVal</a>())</div>
446
+ <div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; {</div>
447
+ <div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; r.first &lt;&lt; <span class="stringliteral">&quot; &quot;</span> &lt;&lt; r.second &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
448
+ <div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; }</div>
449
+ <div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html#a02e3d5f7074c4f77338edc9a7add95d8">IntervalESBase::VarToValMap</a> intendedRes = {{0, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 1)}, {1, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1, 2)}};</div>
450
+ <div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; assert(IntervalESBase::eqVarToValMap(resBS.<a class="code" href="classSVF_1_1IntervalESBase.html#a903797577ba99ef57879774a3849bbfe">getVarToVal</a>(), intendedRes) &amp;&amp; <span class="stringliteral">&quot;inconsistency occurs&quot;</span>);</div>
451
+ <div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; }</div>
452
452
  </div><!-- fragment -->
453
453
  </div>
454
454
  </div>
@@ -475,40 +475,40 @@ Static Public Member Functions</h2></td></tr>
475
475
  </table>
476
476
  </div><div class="memdoc">
477
477
 
478
- <p class="definition">Definition at line <a class="el" href="ae_8cpp_source.html#l00109">109</a> of file <a class="el" href="ae_8cpp_source.html">ae.cpp</a>.</p>
479
- <div class="fragment"><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; {</div>
480
- <div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() &lt;&lt; <span class="stringliteral">&quot;test1_2 start\n&quot;</span>;</div>
481
- <div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> itv;</div>
482
- <div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <a class="code" href="classSVF_1_1RelExeState.html">RelExeState</a> relation;</div>
483
- <div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="comment">// var0 := [0, 1];</span></div>
484
- <div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; relation[0] = <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;0&quot;</span>);</div>
485
- <div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; itv[0] = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 1);</div>
486
- <div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="comment">// var1 := var0 + 1;</span></div>
487
- <div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; relation[1] =</div>
488
- <div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;1&quot;</span>) == <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;0&quot;</span>) * 2;</div>
489
- <div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; itv[1] = itv[0] * <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(2);</div>
490
- <div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; </div>
491
- <div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="comment">// Test extract sub vars</span></div>
492
- <div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;u32_t&gt;</a> res;</div>
493
- <div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; relation.<a class="code" href="classSVF_1_1RelExeState.html#a3393f160508c33e68ebedd042d1d296f">extractSubVars</a>(relation[1], res);</div>
494
- <div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; assert(res == <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;u32_t&gt;</a>({0, 1}) &amp;&amp; <span class="stringliteral">&quot;inconsistency occurs&quot;</span>);</div>
495
- <div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> inv = itv.<a class="code" href="classSVF_1_1IntervalESBase.html#a2c15de9b10a74fbcb171ff2f328ce7f2">sliceState</a>(res);</div>
496
- <div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <a class="code" href="classSVF_1_1RelationSolver.html">RelationSolver</a> rs;</div>
497
- <div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&amp; relExpr = relation[1];</div>
498
- <div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&amp; initExpr = rs.<a class="code" href="classSVF_1_1RelationSolver.html#af860063ccaeca043bac84eb9eb2cf80a">gamma_hat</a>(inv);</div>
499
- <div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&amp; phi = (relExpr &amp;&amp; initExpr).simplify();</div>
500
- <div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> resRSY = rs.<a class="code" href="classSVF_1_1RelationSolver.html#a657af041f883e7b1a3f9892453a2c4cf">RSY</a>(inv, phi);</div>
501
- <div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> resBilateral = rs.<a class="code" href="classSVF_1_1RelationSolver.html#a0df88638c5e3f8cd56d34088b96199f1">bilateral</a>(inv, phi);</div>
502
- <div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> resBS = rs.<a class="code" href="classSVF_1_1RelationSolver.html#a7e827609a1d69c6517f1a3eee0326fc3">BS</a>(inv, phi);</div>
503
- <div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="comment">// 0:[0,1] 1:[0,2]</span></div>
504
- <div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; assert(resRSY == resBS &amp;&amp; resBS == resBilateral &amp;&amp; <span class="stringliteral">&quot;inconsistency occurs&quot;</span>);</div>
505
- <div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> r : resRSY.<a class="code" href="classSVF_1_1IntervalESBase.html#a903797577ba99ef57879774a3849bbfe">getVarToVal</a>())</div>
506
- <div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; {</div>
507
- <div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; r.first &lt;&lt; <span class="stringliteral">&quot; &quot;</span> &lt;&lt; r.second &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
508
- <div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; }</div>
509
- <div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html#a02e3d5f7074c4f77338edc9a7add95d8">IntervalESBase::VarToValMap</a> intendedRes = {{0, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 1)}, {1, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 2)}};</div>
510
- <div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; assert(IntervalESBase::eqVarToValMap(resBS.<a class="code" href="classSVF_1_1IntervalESBase.html#a903797577ba99ef57879774a3849bbfe">getVarToVal</a>(), intendedRes) &amp;&amp; <span class="stringliteral">&quot;inconsistency occurs&quot;</span>);</div>
511
- <div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; }</div>
478
+ <p class="definition">Definition at line <a class="el" href="ae_8cpp_source.html#l00135">135</a> of file <a class="el" href="ae_8cpp_source.html">ae.cpp</a>.</p>
479
+ <div class="fragment"><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; {</div>
480
+ <div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;test1_2 start\n&quot;</span>;</div>
481
+ <div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> itv;</div>
482
+ <div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <a class="code" href="classSVF_1_1RelExeState.html">RelExeState</a> relation;</div>
483
+ <div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="comment">// var0 := [0, 1];</span></div>
484
+ <div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; relation[0] = <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;0&quot;</span>);</div>
485
+ <div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; itv[0] = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 1);</div>
486
+ <div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="comment">// var1 := var0 + 1;</span></div>
487
+ <div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; relation[1] =</div>
488
+ <div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;1&quot;</span>) == <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;0&quot;</span>) * 2;</div>
489
+ <div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; itv[1] = itv[0] * <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(2);</div>
490
+ <div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; </div>
491
+ <div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="comment">// Test extract sub vars</span></div>
492
+ <div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;u32_t&gt;</a> res;</div>
493
+ <div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; relation.<a class="code" href="classSVF_1_1RelExeState.html#a3393f160508c33e68ebedd042d1d296f">extractSubVars</a>(relation[1], res);</div>
494
+ <div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; assert(res == <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;u32_t&gt;</a>({0, 1}) &amp;&amp; <span class="stringliteral">&quot;inconsistency occurs&quot;</span>);</div>
495
+ <div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> inv = itv.<a class="code" href="classSVF_1_1IntervalESBase.html#a2c15de9b10a74fbcb171ff2f328ce7f2">sliceState</a>(res);</div>
496
+ <div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <a class="code" href="classSVF_1_1RelationSolver.html">RelationSolver</a> rs;</div>
497
+ <div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&amp; relExpr = relation[1];</div>
498
+ <div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&amp; initExpr = rs.<a class="code" href="classSVF_1_1RelationSolver.html#af860063ccaeca043bac84eb9eb2cf80a">gamma_hat</a>(inv);</div>
499
+ <div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&amp; phi = (relExpr &amp;&amp; initExpr).simplify();</div>
500
+ <div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> resRSY = rs.<a class="code" href="classSVF_1_1RelationSolver.html#a657af041f883e7b1a3f9892453a2c4cf">RSY</a>(inv, phi);</div>
501
+ <div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> resBilateral = rs.<a class="code" href="classSVF_1_1RelationSolver.html#a0df88638c5e3f8cd56d34088b96199f1">bilateral</a>(inv, phi);</div>
502
+ <div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> resBS = rs.<a class="code" href="classSVF_1_1RelationSolver.html#a7e827609a1d69c6517f1a3eee0326fc3">BS</a>(inv, phi);</div>
503
+ <div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="comment">// 0:[0,1] 1:[0,2]</span></div>
504
+ <div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; assert(resRSY == resBS &amp;&amp; resBS == resBilateral &amp;&amp; <span class="stringliteral">&quot;inconsistency occurs&quot;</span>);</div>
505
+ <div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> r : resRSY.<a class="code" href="classSVF_1_1IntervalESBase.html#a903797577ba99ef57879774a3849bbfe">getVarToVal</a>())</div>
506
+ <div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; {</div>
507
+ <div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; r.first &lt;&lt; <span class="stringliteral">&quot; &quot;</span> &lt;&lt; r.second &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
508
+ <div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; }</div>
509
+ <div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html#a02e3d5f7074c4f77338edc9a7add95d8">IntervalESBase::VarToValMap</a> intendedRes = {{0, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 1)}, {1, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 2)}};</div>
510
+ <div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; assert(IntervalESBase::eqVarToValMap(resBS.<a class="code" href="classSVF_1_1IntervalESBase.html#a903797577ba99ef57879774a3849bbfe">getVarToVal</a>(), intendedRes) &amp;&amp; <span class="stringliteral">&quot;inconsistency occurs&quot;</span>);</div>
511
+ <div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; }</div>
512
512
  </div><!-- fragment -->
513
513
  </div>
514
514
  </div>
@@ -535,47 +535,47 @@ Static Public Member Functions</h2></td></tr>
535
535
  </table>
536
536
  </div><div class="memdoc">
537
537
 
538
- <p class="definition">Definition at line <a class="el" href="ae_8cpp_source.html#l00144">144</a> of file <a class="el" href="ae_8cpp_source.html">ae.cpp</a>.</p>
539
- <div class="fragment"><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; {</div>
540
- <div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() &lt;&lt; <span class="stringliteral">&quot;test2_1 start\n&quot;</span>;</div>
541
- <div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> itv;</div>
542
- <div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <a class="code" href="classSVF_1_1RelExeState.html">RelExeState</a> relation;</div>
543
- <div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="comment">// var0 := [0, 10];</span></div>
544
- <div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; relation[0] = <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;0&quot;</span>);</div>
545
- <div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; itv[0] = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 10);</div>
546
- <div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="comment">// var1 := var0;</span></div>
547
- <div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; relation[1] =</div>
548
- <div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;1&quot;</span>) == <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;0&quot;</span>);</div>
549
- <div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; itv[1] = itv[0];</div>
550
- <div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="comment">// var2 := var1 - var0;</span></div>
551
- <div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; relation[2] = <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;2&quot;</span>) ==</div>
552
- <div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;1&quot;</span>) - <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;0&quot;</span>);</div>
553
- <div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; itv[2] = itv[1] - itv[0];</div>
554
- <div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="comment">// Test extract sub vars</span></div>
555
- <div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;u32_t&gt;</a> res;</div>
556
- <div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; relation.<a class="code" href="classSVF_1_1RelExeState.html#a3393f160508c33e68ebedd042d1d296f">extractSubVars</a>(relation[2], res);</div>
557
- <div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; assert(res == <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;u32_t&gt;</a>({0, 1, 2}) &amp;&amp; <span class="stringliteral">&quot;inconsistency occurs&quot;</span>);</div>
558
- <div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> inv = itv.<a class="code" href="classSVF_1_1IntervalESBase.html#a2c15de9b10a74fbcb171ff2f328ce7f2">sliceState</a>(res);</div>
559
- <div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <a class="code" href="classSVF_1_1RelationSolver.html">RelationSolver</a> rs;</div>
560
- <div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&amp; relExpr = relation[2] &amp;&amp; relation[1];</div>
561
- <div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&amp; initExpr = rs.<a class="code" href="classSVF_1_1RelationSolver.html#af860063ccaeca043bac84eb9eb2cf80a">gamma_hat</a>(inv);</div>
562
- <div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&amp; phi = (relExpr &amp;&amp; initExpr).simplify();</div>
563
- <div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> resRSY = rs.<a class="code" href="classSVF_1_1RelationSolver.html#a657af041f883e7b1a3f9892453a2c4cf">RSY</a>(inv, phi);</div>
564
- <div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> resBilateral = rs.<a class="code" href="classSVF_1_1RelationSolver.html#a0df88638c5e3f8cd56d34088b96199f1">bilateral</a>(inv, phi);</div>
565
- <div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> resBS = rs.<a class="code" href="classSVF_1_1RelationSolver.html#a7e827609a1d69c6517f1a3eee0326fc3">BS</a>(inv, phi);</div>
566
- <div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="comment">// 0:[0,10] 1:[0,10] 2:[0,0]</span></div>
567
- <div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; assert(resRSY == resBS &amp;&amp; resBS == resBilateral &amp;&amp; <span class="stringliteral">&quot;inconsistency occurs&quot;</span>);</div>
568
- <div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> r : resRSY.<a class="code" href="classSVF_1_1IntervalESBase.html#a903797577ba99ef57879774a3849bbfe">getVarToVal</a>())</div>
569
- <div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; {</div>
570
- <div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; r.first &lt;&lt; <span class="stringliteral">&quot; &quot;</span> &lt;&lt; r.second &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
571
- <div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; }</div>
572
- <div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="comment">// ground truth</span></div>
573
- <div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html#a02e3d5f7074c4f77338edc9a7add95d8">IntervalESBase::VarToValMap</a> intendedRes = {{0, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 10)},</div>
574
- <div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; {1, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 10)},</div>
575
- <div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; {2, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 0)}</div>
576
- <div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; };</div>
577
- <div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; assert(IntervalESBase::eqVarToValMap(resBS.<a class="code" href="classSVF_1_1IntervalESBase.html#a903797577ba99ef57879774a3849bbfe">getVarToVal</a>(), intendedRes) &amp;&amp; <span class="stringliteral">&quot;inconsistency occurs&quot;</span>);</div>
578
- <div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; }</div>
538
+ <p class="definition">Definition at line <a class="el" href="ae_8cpp_source.html#l00170">170</a> of file <a class="el" href="ae_8cpp_source.html">ae.cpp</a>.</p>
539
+ <div class="fragment"><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; {</div>
540
+ <div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;test2_1 start\n&quot;</span>;</div>
541
+ <div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> itv;</div>
542
+ <div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <a class="code" href="classSVF_1_1RelExeState.html">RelExeState</a> relation;</div>
543
+ <div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="comment">// var0 := [0, 10];</span></div>
544
+ <div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; relation[0] = <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;0&quot;</span>);</div>
545
+ <div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; itv[0] = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 10);</div>
546
+ <div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="comment">// var1 := var0;</span></div>
547
+ <div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; relation[1] =</div>
548
+ <div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;1&quot;</span>) == <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;0&quot;</span>);</div>
549
+ <div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; itv[1] = itv[0];</div>
550
+ <div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="comment">// var2 := var1 - var0;</span></div>
551
+ <div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; relation[2] = <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;2&quot;</span>) ==</div>
552
+ <div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;1&quot;</span>) - <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;0&quot;</span>);</div>
553
+ <div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; itv[2] = itv[1] - itv[0];</div>
554
+ <div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="comment">// Test extract sub vars</span></div>
555
+ <div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;u32_t&gt;</a> res;</div>
556
+ <div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; relation.<a class="code" href="classSVF_1_1RelExeState.html#a3393f160508c33e68ebedd042d1d296f">extractSubVars</a>(relation[2], res);</div>
557
+ <div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; assert(res == <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;u32_t&gt;</a>({0, 1, 2}) &amp;&amp; <span class="stringliteral">&quot;inconsistency occurs&quot;</span>);</div>
558
+ <div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> inv = itv.<a class="code" href="classSVF_1_1IntervalESBase.html#a2c15de9b10a74fbcb171ff2f328ce7f2">sliceState</a>(res);</div>
559
+ <div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <a class="code" href="classSVF_1_1RelationSolver.html">RelationSolver</a> rs;</div>
560
+ <div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&amp; relExpr = relation[2] &amp;&amp; relation[1];</div>
561
+ <div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&amp; initExpr = rs.<a class="code" href="classSVF_1_1RelationSolver.html#af860063ccaeca043bac84eb9eb2cf80a">gamma_hat</a>(inv);</div>
562
+ <div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&amp; phi = (relExpr &amp;&amp; initExpr).simplify();</div>
563
+ <div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> resRSY = rs.<a class="code" href="classSVF_1_1RelationSolver.html#a657af041f883e7b1a3f9892453a2c4cf">RSY</a>(inv, phi);</div>
564
+ <div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> resBilateral = rs.<a class="code" href="classSVF_1_1RelationSolver.html#a0df88638c5e3f8cd56d34088b96199f1">bilateral</a>(inv, phi);</div>
565
+ <div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> resBS = rs.<a class="code" href="classSVF_1_1RelationSolver.html#a7e827609a1d69c6517f1a3eee0326fc3">BS</a>(inv, phi);</div>
566
+ <div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="comment">// 0:[0,10] 1:[0,10] 2:[0,0]</span></div>
567
+ <div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; assert(resRSY == resBS &amp;&amp; resBS == resBilateral &amp;&amp; <span class="stringliteral">&quot;inconsistency occurs&quot;</span>);</div>
568
+ <div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> r : resRSY.<a class="code" href="classSVF_1_1IntervalESBase.html#a903797577ba99ef57879774a3849bbfe">getVarToVal</a>())</div>
569
+ <div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; {</div>
570
+ <div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; r.first &lt;&lt; <span class="stringliteral">&quot; &quot;</span> &lt;&lt; r.second &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
571
+ <div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; }</div>
572
+ <div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="comment">// ground truth</span></div>
573
+ <div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html#a02e3d5f7074c4f77338edc9a7add95d8">IntervalESBase::VarToValMap</a> intendedRes = {{0, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 10)},</div>
574
+ <div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; {1, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 10)},</div>
575
+ <div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; {2, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 0)}</div>
576
+ <div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; };</div>
577
+ <div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; assert(IntervalESBase::eqVarToValMap(resBS.<a class="code" href="classSVF_1_1IntervalESBase.html#a903797577ba99ef57879774a3849bbfe">getVarToVal</a>(), intendedRes) &amp;&amp; <span class="stringliteral">&quot;inconsistency occurs&quot;</span>);</div>
578
+ <div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; }</div>
579
579
  </div><!-- fragment -->
580
580
  </div>
581
581
  </div>
@@ -602,48 +602,48 @@ Static Public Member Functions</h2></td></tr>
602
602
  </table>
603
603
  </div><div class="memdoc">
604
604
 
605
- <p class="definition">Definition at line <a class="el" href="ae_8cpp_source.html#l00186">186</a> of file <a class="el" href="ae_8cpp_source.html">ae.cpp</a>.</p>
606
- <div class="fragment"><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; {</div>
607
- <div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() &lt;&lt; <span class="stringliteral">&quot;test2_2 start\n&quot;</span>;</div>
608
- <div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> itv;</div>
609
- <div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <a class="code" href="classSVF_1_1RelExeState.html">RelExeState</a> relation;</div>
610
- <div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="comment">// var0 := [0, 100];</span></div>
611
- <div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; relation[0] = <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;0&quot;</span>);</div>
612
- <div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; itv[0] = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 100);</div>
613
- <div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="comment">// var1 := var0;</span></div>
614
- <div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; relation[1] =</div>
615
- <div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;1&quot;</span>) == <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;0&quot;</span>);</div>
616
- <div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; itv[1] = itv[0];</div>
617
- <div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="comment">// var2 := var1 - var0;</span></div>
618
- <div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; relation[2] = <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;2&quot;</span>) ==</div>
619
- <div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;1&quot;</span>) - <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;0&quot;</span>);</div>
620
- <div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; itv[2] = itv[1] - itv[0];</div>
621
- <div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; </div>
622
- <div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="comment">// Test extract sub vars</span></div>
623
- <div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;u32_t&gt;</a> res;</div>
624
- <div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; relation.<a class="code" href="classSVF_1_1RelExeState.html#a3393f160508c33e68ebedd042d1d296f">extractSubVars</a>(relation[2], res);</div>
625
- <div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; assert(res == <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;u32_t&gt;</a>({0, 1, 2}) &amp;&amp; <span class="stringliteral">&quot;inconsistency occurs&quot;</span>);</div>
626
- <div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> inv = itv.<a class="code" href="classSVF_1_1IntervalESBase.html#a2c15de9b10a74fbcb171ff2f328ce7f2">sliceState</a>(res);</div>
627
- <div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <a class="code" href="classSVF_1_1RelationSolver.html">RelationSolver</a> rs;</div>
628
- <div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&amp; relExpr = relation[2] &amp;&amp; relation[1];</div>
629
- <div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&amp; initExpr = rs.<a class="code" href="classSVF_1_1RelationSolver.html#af860063ccaeca043bac84eb9eb2cf80a">gamma_hat</a>(inv);</div>
630
- <div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&amp; phi = (relExpr &amp;&amp; initExpr).simplify();</div>
631
- <div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> resRSY = rs.<a class="code" href="classSVF_1_1RelationSolver.html#a657af041f883e7b1a3f9892453a2c4cf">RSY</a>(inv, phi);</div>
632
- <div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> resBilateral = rs.<a class="code" href="classSVF_1_1RelationSolver.html#a0df88638c5e3f8cd56d34088b96199f1">bilateral</a>(inv, phi);</div>
633
- <div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> resBS = rs.<a class="code" href="classSVF_1_1RelationSolver.html#a7e827609a1d69c6517f1a3eee0326fc3">BS</a>(inv, phi);</div>
634
- <div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="comment">// 0:[0,100] 1:[0,100] 2:[0,0]</span></div>
635
- <div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; assert(resRSY == resBS &amp;&amp; resBS == resBilateral &amp;&amp; <span class="stringliteral">&quot;inconsistency occurs&quot;</span>);</div>
636
- <div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> r : resRSY.<a class="code" href="classSVF_1_1IntervalESBase.html#a903797577ba99ef57879774a3849bbfe">getVarToVal</a>())</div>
637
- <div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; {</div>
638
- <div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; r.first &lt;&lt; <span class="stringliteral">&quot; &quot;</span> &lt;&lt; r.second &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
639
- <div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; }</div>
640
- <div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="comment">// ground truth</span></div>
641
- <div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html#a02e3d5f7074c4f77338edc9a7add95d8">IntervalESBase::VarToValMap</a> intendedRes = {{0, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 100)},</div>
642
- <div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; {1, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 100)},</div>
643
- <div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; {2, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 0)}</div>
644
- <div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; };</div>
645
- <div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; assert(IntervalESBase::eqVarToValMap(resBS.<a class="code" href="classSVF_1_1IntervalESBase.html#a903797577ba99ef57879774a3849bbfe">getVarToVal</a>(), intendedRes) &amp;&amp; <span class="stringliteral">&quot;inconsistency occurs&quot;</span>);</div>
646
- <div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; }</div>
605
+ <p class="definition">Definition at line <a class="el" href="ae_8cpp_source.html#l00212">212</a> of file <a class="el" href="ae_8cpp_source.html">ae.cpp</a>.</p>
606
+ <div class="fragment"><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; {</div>
607
+ <div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;test2_2 start\n&quot;</span>;</div>
608
+ <div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> itv;</div>
609
+ <div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <a class="code" href="classSVF_1_1RelExeState.html">RelExeState</a> relation;</div>
610
+ <div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="comment">// var0 := [0, 100];</span></div>
611
+ <div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; relation[0] = <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;0&quot;</span>);</div>
612
+ <div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; itv[0] = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 100);</div>
613
+ <div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="comment">// var1 := var0;</span></div>
614
+ <div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; relation[1] =</div>
615
+ <div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;1&quot;</span>) == <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;0&quot;</span>);</div>
616
+ <div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; itv[1] = itv[0];</div>
617
+ <div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="comment">// var2 := var1 - var0;</span></div>
618
+ <div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; relation[2] = <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;2&quot;</span>) ==</div>
619
+ <div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;1&quot;</span>) - <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;0&quot;</span>);</div>
620
+ <div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; itv[2] = itv[1] - itv[0];</div>
621
+ <div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; </div>
622
+ <div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="comment">// Test extract sub vars</span></div>
623
+ <div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;u32_t&gt;</a> res;</div>
624
+ <div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; relation.<a class="code" href="classSVF_1_1RelExeState.html#a3393f160508c33e68ebedd042d1d296f">extractSubVars</a>(relation[2], res);</div>
625
+ <div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; assert(res == <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;u32_t&gt;</a>({0, 1, 2}) &amp;&amp; <span class="stringliteral">&quot;inconsistency occurs&quot;</span>);</div>
626
+ <div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> inv = itv.<a class="code" href="classSVF_1_1IntervalESBase.html#a2c15de9b10a74fbcb171ff2f328ce7f2">sliceState</a>(res);</div>
627
+ <div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <a class="code" href="classSVF_1_1RelationSolver.html">RelationSolver</a> rs;</div>
628
+ <div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&amp; relExpr = relation[2] &amp;&amp; relation[1];</div>
629
+ <div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&amp; initExpr = rs.<a class="code" href="classSVF_1_1RelationSolver.html#af860063ccaeca043bac84eb9eb2cf80a">gamma_hat</a>(inv);</div>
630
+ <div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&amp; phi = (relExpr &amp;&amp; initExpr).simplify();</div>
631
+ <div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> resRSY = rs.<a class="code" href="classSVF_1_1RelationSolver.html#a657af041f883e7b1a3f9892453a2c4cf">RSY</a>(inv, phi);</div>
632
+ <div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> resBilateral = rs.<a class="code" href="classSVF_1_1RelationSolver.html#a0df88638c5e3f8cd56d34088b96199f1">bilateral</a>(inv, phi);</div>
633
+ <div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> resBS = rs.<a class="code" href="classSVF_1_1RelationSolver.html#a7e827609a1d69c6517f1a3eee0326fc3">BS</a>(inv, phi);</div>
634
+ <div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="comment">// 0:[0,100] 1:[0,100] 2:[0,0]</span></div>
635
+ <div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; assert(resRSY == resBS &amp;&amp; resBS == resBilateral &amp;&amp; <span class="stringliteral">&quot;inconsistency occurs&quot;</span>);</div>
636
+ <div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> r : resRSY.<a class="code" href="classSVF_1_1IntervalESBase.html#a903797577ba99ef57879774a3849bbfe">getVarToVal</a>())</div>
637
+ <div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; {</div>
638
+ <div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; r.first &lt;&lt; <span class="stringliteral">&quot; &quot;</span> &lt;&lt; r.second &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
639
+ <div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; }</div>
640
+ <div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="comment">// ground truth</span></div>
641
+ <div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html#a02e3d5f7074c4f77338edc9a7add95d8">IntervalESBase::VarToValMap</a> intendedRes = {{0, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 100)},</div>
642
+ <div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; {1, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 100)},</div>
643
+ <div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; {2, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 0)}</div>
644
+ <div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; };</div>
645
+ <div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; assert(IntervalESBase::eqVarToValMap(resBS.<a class="code" href="classSVF_1_1IntervalESBase.html#a903797577ba99ef57879774a3849bbfe">getVarToVal</a>(), intendedRes) &amp;&amp; <span class="stringliteral">&quot;inconsistency occurs&quot;</span>);</div>
646
+ <div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; }</div>
647
647
  </div><!-- fragment -->
648
648
  </div>
649
649
  </div>
@@ -670,49 +670,49 @@ Static Public Member Functions</h2></td></tr>
670
670
  </table>
671
671
  </div><div class="memdoc">
672
672
 
673
- <p class="definition">Definition at line <a class="el" href="ae_8cpp_source.html#l00229">229</a> of file <a class="el" href="ae_8cpp_source.html">ae.cpp</a>.</p>
674
- <div class="fragment"><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; {</div>
675
- <div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() &lt;&lt; <span class="stringliteral">&quot;test2_3 start\n&quot;</span>;</div>
676
- <div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> itv;</div>
677
- <div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <a class="code" href="classSVF_1_1RelExeState.html">RelExeState</a> relation;</div>
678
- <div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="comment">// var0 := [0, 1000];</span></div>
679
- <div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; relation[0] = <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;0&quot;</span>);</div>
680
- <div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; itv[0] = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 1000);</div>
681
- <div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="comment">// var1 := var0;</span></div>
682
- <div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; relation[1] =</div>
683
- <div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;1&quot;</span>) == <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;0&quot;</span>);</div>
684
- <div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; itv[1] = itv[0];</div>
685
- <div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="comment">// var2 := var1 - var0;</span></div>
686
- <div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; relation[2] = <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;2&quot;</span>) ==</div>
687
- <div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;1&quot;</span>) - <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;0&quot;</span>);</div>
688
- <div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; itv[2] = itv[1] - itv[0];</div>
689
- <div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; </div>
690
- <div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="comment">// Test extract sub vars</span></div>
691
- <div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;u32_t&gt;</a> res;</div>
692
- <div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; relation.<a class="code" href="classSVF_1_1RelExeState.html#a3393f160508c33e68ebedd042d1d296f">extractSubVars</a>(relation[2], res);</div>
693
- <div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; assert(res == <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;u32_t&gt;</a>({0, 1, 2}) &amp;&amp; <span class="stringliteral">&quot;inconsistency occurs&quot;</span>);</div>
694
- <div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> inv = itv.<a class="code" href="classSVF_1_1IntervalESBase.html#a2c15de9b10a74fbcb171ff2f328ce7f2">sliceState</a>(res);</div>
695
- <div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <a class="code" href="classSVF_1_1RelationSolver.html">RelationSolver</a> rs;</div>
696
- <div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&amp; relExpr = relation[2] &amp;&amp; relation[1];</div>
697
- <div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&amp; initExpr = rs.<a class="code" href="classSVF_1_1RelationSolver.html#af860063ccaeca043bac84eb9eb2cf80a">gamma_hat</a>(inv);</div>
698
- <div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&amp; phi = (relExpr &amp;&amp; initExpr).simplify();</div>
699
- <div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> resRSY = rs.<a class="code" href="classSVF_1_1RelationSolver.html#a657af041f883e7b1a3f9892453a2c4cf">RSY</a>(inv, phi);</div>
700
- <div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> resBilateral = rs.<a class="code" href="classSVF_1_1RelationSolver.html#a0df88638c5e3f8cd56d34088b96199f1">bilateral</a>(inv, phi);</div>
701
- <div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> resBS = rs.<a class="code" href="classSVF_1_1RelationSolver.html#a7e827609a1d69c6517f1a3eee0326fc3">BS</a>(inv, phi);</div>
702
- <div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="comment">// 0:[0,1000] 1:[0,1000] 2:[0,0]</span></div>
703
- <div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; assert(resRSY == resBS &amp;&amp; resBS == resBilateral &amp;&amp; <span class="stringliteral">&quot;inconsistency occurs&quot;</span>);</div>
704
- <div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> r : resRSY.<a class="code" href="classSVF_1_1IntervalESBase.html#a903797577ba99ef57879774a3849bbfe">getVarToVal</a>())</div>
705
- <div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; {</div>
706
- <div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; r.first &lt;&lt; <span class="stringliteral">&quot; &quot;</span> &lt;&lt; r.second &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
707
- <div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; }</div>
708
- <div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <span class="comment">// ground truth</span></div>
709
- <div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="comment">// ground truth</span></div>
710
- <div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html#a02e3d5f7074c4f77338edc9a7add95d8">IntervalESBase::VarToValMap</a> intendedRes = {{0, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 1000)},</div>
711
- <div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; {1, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 1000)},</div>
712
- <div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; {2, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 0)}</div>
713
- <div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; };</div>
714
- <div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; assert(IntervalESBase::eqVarToValMap(resBS.<a class="code" href="classSVF_1_1IntervalESBase.html#a903797577ba99ef57879774a3849bbfe">getVarToVal</a>(), intendedRes) &amp;&amp; <span class="stringliteral">&quot;inconsistency occurs&quot;</span>);</div>
715
- <div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; }</div>
673
+ <p class="definition">Definition at line <a class="el" href="ae_8cpp_source.html#l00255">255</a> of file <a class="el" href="ae_8cpp_source.html">ae.cpp</a>.</p>
674
+ <div class="fragment"><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; {</div>
675
+ <div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;test2_3 start\n&quot;</span>;</div>
676
+ <div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> itv;</div>
677
+ <div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <a class="code" href="classSVF_1_1RelExeState.html">RelExeState</a> relation;</div>
678
+ <div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="comment">// var0 := [0, 1000];</span></div>
679
+ <div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; relation[0] = <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;0&quot;</span>);</div>
680
+ <div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; itv[0] = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 1000);</div>
681
+ <div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="comment">// var1 := var0;</span></div>
682
+ <div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; relation[1] =</div>
683
+ <div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;1&quot;</span>) == <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;0&quot;</span>);</div>
684
+ <div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; itv[1] = itv[0];</div>
685
+ <div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="comment">// var2 := var1 - var0;</span></div>
686
+ <div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; relation[2] = <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;2&quot;</span>) ==</div>
687
+ <div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;1&quot;</span>) - <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;0&quot;</span>);</div>
688
+ <div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; itv[2] = itv[1] - itv[0];</div>
689
+ <div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; </div>
690
+ <div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="comment">// Test extract sub vars</span></div>
691
+ <div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;u32_t&gt;</a> res;</div>
692
+ <div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; relation.<a class="code" href="classSVF_1_1RelExeState.html#a3393f160508c33e68ebedd042d1d296f">extractSubVars</a>(relation[2], res);</div>
693
+ <div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; assert(res == <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;u32_t&gt;</a>({0, 1, 2}) &amp;&amp; <span class="stringliteral">&quot;inconsistency occurs&quot;</span>);</div>
694
+ <div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> inv = itv.<a class="code" href="classSVF_1_1IntervalESBase.html#a2c15de9b10a74fbcb171ff2f328ce7f2">sliceState</a>(res);</div>
695
+ <div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <a class="code" href="classSVF_1_1RelationSolver.html">RelationSolver</a> rs;</div>
696
+ <div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&amp; relExpr = relation[2] &amp;&amp; relation[1];</div>
697
+ <div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&amp; initExpr = rs.<a class="code" href="classSVF_1_1RelationSolver.html#af860063ccaeca043bac84eb9eb2cf80a">gamma_hat</a>(inv);</div>
698
+ <div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&amp; phi = (relExpr &amp;&amp; initExpr).simplify();</div>
699
+ <div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> resRSY = rs.<a class="code" href="classSVF_1_1RelationSolver.html#a657af041f883e7b1a3f9892453a2c4cf">RSY</a>(inv, phi);</div>
700
+ <div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> resBilateral = rs.<a class="code" href="classSVF_1_1RelationSolver.html#a0df88638c5e3f8cd56d34088b96199f1">bilateral</a>(inv, phi);</div>
701
+ <div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> resBS = rs.<a class="code" href="classSVF_1_1RelationSolver.html#a7e827609a1d69c6517f1a3eee0326fc3">BS</a>(inv, phi);</div>
702
+ <div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="comment">// 0:[0,1000] 1:[0,1000] 2:[0,0]</span></div>
703
+ <div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; assert(resRSY == resBS &amp;&amp; resBS == resBilateral &amp;&amp; <span class="stringliteral">&quot;inconsistency occurs&quot;</span>);</div>
704
+ <div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> r : resRSY.<a class="code" href="classSVF_1_1IntervalESBase.html#a903797577ba99ef57879774a3849bbfe">getVarToVal</a>())</div>
705
+ <div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; {</div>
706
+ <div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; r.first &lt;&lt; <span class="stringliteral">&quot; &quot;</span> &lt;&lt; r.second &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
707
+ <div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; }</div>
708
+ <div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <span class="comment">// ground truth</span></div>
709
+ <div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <span class="comment">// ground truth</span></div>
710
+ <div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html#a02e3d5f7074c4f77338edc9a7add95d8">IntervalESBase::VarToValMap</a> intendedRes = {{0, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 1000)},</div>
711
+ <div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; {1, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 1000)},</div>
712
+ <div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; {2, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 0)}</div>
713
+ <div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; };</div>
714
+ <div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; assert(IntervalESBase::eqVarToValMap(resBS.<a class="code" href="classSVF_1_1IntervalESBase.html#a903797577ba99ef57879774a3849bbfe">getVarToVal</a>(), intendedRes) &amp;&amp; <span class="stringliteral">&quot;inconsistency occurs&quot;</span>);</div>
715
+ <div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; }</div>
716
716
  </div><!-- fragment -->
717
717
  </div>
718
718
  </div>
@@ -739,49 +739,49 @@ Static Public Member Functions</h2></td></tr>
739
739
  </table>
740
740
  </div><div class="memdoc">
741
741
 
742
- <p class="definition">Definition at line <a class="el" href="ae_8cpp_source.html#l00273">273</a> of file <a class="el" href="ae_8cpp_source.html">ae.cpp</a>.</p>
743
- <div class="fragment"><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; {</div>
744
- <div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() &lt;&lt; <span class="stringliteral">&quot;test2_4 start\n&quot;</span>;</div>
745
- <div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> itv;</div>
746
- <div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <a class="code" href="classSVF_1_1RelExeState.html">RelExeState</a> relation;</div>
747
- <div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="comment">// var0 := [0, 10000];</span></div>
748
- <div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; relation[0] = <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;0&quot;</span>);</div>
749
- <div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; itv[0] = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 10000);</div>
750
- <div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="comment">// var1 := var0;</span></div>
751
- <div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; relation[1] =</div>
752
- <div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;1&quot;</span>) == <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;0&quot;</span>);</div>
753
- <div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; itv[1] = itv[0];</div>
754
- <div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <span class="comment">// var2 := var1 - var0;</span></div>
755
- <div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; relation[2] = <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;2&quot;</span>) ==</div>
756
- <div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;1&quot;</span>) - <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;0&quot;</span>);</div>
757
- <div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; itv[2] = itv[1] - itv[0];</div>
758
- <div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; </div>
759
- <div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <span class="comment">// Test extract sub vars</span></div>
760
- <div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;u32_t&gt;</a> res;</div>
761
- <div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; relation.<a class="code" href="classSVF_1_1RelExeState.html#a3393f160508c33e68ebedd042d1d296f">extractSubVars</a>(relation[2], res);</div>
762
- <div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; assert(res == <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;u32_t&gt;</a>({0, 1, 2}) &amp;&amp; <span class="stringliteral">&quot;inconsistency occurs&quot;</span>);</div>
763
- <div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> inv = itv.<a class="code" href="classSVF_1_1IntervalESBase.html#a2c15de9b10a74fbcb171ff2f328ce7f2">sliceState</a>(res);</div>
764
- <div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <a class="code" href="classSVF_1_1RelationSolver.html">RelationSolver</a> rs;</div>
765
- <div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&amp; relExpr = relation[2] &amp;&amp; relation[1];</div>
766
- <div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&amp; initExpr = rs.<a class="code" href="classSVF_1_1RelationSolver.html#af860063ccaeca043bac84eb9eb2cf80a">gamma_hat</a>(inv);</div>
767
- <div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&amp; phi = (relExpr &amp;&amp; initExpr).simplify();</div>
768
- <div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> resRSY = <a class="code" href="classSymblicAbstractionTest.html#abaa1ae92b79979cfabee1a2b8a284f80">RSY_time</a>(inv, phi, rs);</div>
769
- <div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> resBilateral = <a class="code" href="classSymblicAbstractionTest.html#ad6525df45acfeb1c9c31fc54219a4217">Bilateral_time</a>(inv, phi, rs);</div>
770
- <div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> resBS = <a class="code" href="classSymblicAbstractionTest.html#a61df4b66ebc9b3eb38d773aa375ee759">BS_time</a>(inv, phi, rs);</div>
771
- <div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <span class="comment">// 0:[0,10000] 1:[0,10000] 2:[0,0]</span></div>
772
- <div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; assert(resRSY == resBS &amp;&amp; resBS == resBilateral &amp;&amp; <span class="stringliteral">&quot;inconsistency occurs&quot;</span>);</div>
773
- <div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> r : resRSY.<a class="code" href="classSVF_1_1IntervalESBase.html#a903797577ba99ef57879774a3849bbfe">getVarToVal</a>())</div>
774
- <div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; {</div>
775
- <div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; r.first &lt;&lt; <span class="stringliteral">&quot; &quot;</span> &lt;&lt; r.second &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
776
- <div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; }</div>
777
- <div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <span class="comment">// ground truth</span></div>
778
- <div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="comment">// ground truth</span></div>
779
- <div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html#a02e3d5f7074c4f77338edc9a7add95d8">IntervalESBase::VarToValMap</a> intendedRes = {{0, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 10000)},</div>
780
- <div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; {1, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 10000)},</div>
781
- <div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; {2, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 0)}</div>
782
- <div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; };</div>
783
- <div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; assert(IntervalESBase::eqVarToValMap(resBS.<a class="code" href="classSVF_1_1IntervalESBase.html#a903797577ba99ef57879774a3849bbfe">getVarToVal</a>(), intendedRes) &amp;&amp; <span class="stringliteral">&quot;inconsistency occurs&quot;</span>);</div>
784
- <div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; }</div>
742
+ <p class="definition">Definition at line <a class="el" href="ae_8cpp_source.html#l00299">299</a> of file <a class="el" href="ae_8cpp_source.html">ae.cpp</a>.</p>
743
+ <div class="fragment"><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; {</div>
744
+ <div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;test2_4 start\n&quot;</span>;</div>
745
+ <div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> itv;</div>
746
+ <div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <a class="code" href="classSVF_1_1RelExeState.html">RelExeState</a> relation;</div>
747
+ <div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <span class="comment">// var0 := [0, 10000];</span></div>
748
+ <div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; relation[0] = <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;0&quot;</span>);</div>
749
+ <div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; itv[0] = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 10000);</div>
750
+ <div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <span class="comment">// var1 := var0;</span></div>
751
+ <div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; relation[1] =</div>
752
+ <div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;1&quot;</span>) == <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;0&quot;</span>);</div>
753
+ <div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; itv[1] = itv[0];</div>
754
+ <div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <span class="comment">// var2 := var1 - var0;</span></div>
755
+ <div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; relation[2] = <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;2&quot;</span>) ==</div>
756
+ <div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;1&quot;</span>) - <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;0&quot;</span>);</div>
757
+ <div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; itv[2] = itv[1] - itv[0];</div>
758
+ <div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; </div>
759
+ <div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; <span class="comment">// Test extract sub vars</span></div>
760
+ <div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;u32_t&gt;</a> res;</div>
761
+ <div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; relation.<a class="code" href="classSVF_1_1RelExeState.html#a3393f160508c33e68ebedd042d1d296f">extractSubVars</a>(relation[2], res);</div>
762
+ <div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; assert(res == <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;u32_t&gt;</a>({0, 1, 2}) &amp;&amp; <span class="stringliteral">&quot;inconsistency occurs&quot;</span>);</div>
763
+ <div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> inv = itv.<a class="code" href="classSVF_1_1IntervalESBase.html#a2c15de9b10a74fbcb171ff2f328ce7f2">sliceState</a>(res);</div>
764
+ <div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <a class="code" href="classSVF_1_1RelationSolver.html">RelationSolver</a> rs;</div>
765
+ <div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&amp; relExpr = relation[2] &amp;&amp; relation[1];</div>
766
+ <div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&amp; initExpr = rs.<a class="code" href="classSVF_1_1RelationSolver.html#af860063ccaeca043bac84eb9eb2cf80a">gamma_hat</a>(inv);</div>
767
+ <div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&amp; phi = (relExpr &amp;&amp; initExpr).simplify();</div>
768
+ <div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> resRSY = <a class="code" href="classSymblicAbstractionTest.html#abaa1ae92b79979cfabee1a2b8a284f80">RSY_time</a>(inv, phi, rs);</div>
769
+ <div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> resBilateral = <a class="code" href="classSymblicAbstractionTest.html#ad6525df45acfeb1c9c31fc54219a4217">Bilateral_time</a>(inv, phi, rs);</div>
770
+ <div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> resBS = <a class="code" href="classSymblicAbstractionTest.html#a61df4b66ebc9b3eb38d773aa375ee759">BS_time</a>(inv, phi, rs);</div>
771
+ <div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; <span class="comment">// 0:[0,10000] 1:[0,10000] 2:[0,0]</span></div>
772
+ <div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; assert(resRSY == resBS &amp;&amp; resBS == resBilateral &amp;&amp; <span class="stringliteral">&quot;inconsistency occurs&quot;</span>);</div>
773
+ <div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> r : resRSY.<a class="code" href="classSVF_1_1IntervalESBase.html#a903797577ba99ef57879774a3849bbfe">getVarToVal</a>())</div>
774
+ <div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; {</div>
775
+ <div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; r.first &lt;&lt; <span class="stringliteral">&quot; &quot;</span> &lt;&lt; r.second &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
776
+ <div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; }</div>
777
+ <div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; <span class="comment">// ground truth</span></div>
778
+ <div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; <span class="comment">// ground truth</span></div>
779
+ <div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html#a02e3d5f7074c4f77338edc9a7add95d8">IntervalESBase::VarToValMap</a> intendedRes = {{0, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 10000)},</div>
780
+ <div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; {1, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 10000)},</div>
781
+ <div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; {2, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 0)}</div>
782
+ <div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; };</div>
783
+ <div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; assert(IntervalESBase::eqVarToValMap(resBS.<a class="code" href="classSVF_1_1IntervalESBase.html#a903797577ba99ef57879774a3849bbfe">getVarToVal</a>(), intendedRes) &amp;&amp; <span class="stringliteral">&quot;inconsistency occurs&quot;</span>);</div>
784
+ <div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; }</div>
785
785
  </div><!-- fragment -->
786
786
  </div>
787
787
  </div>
@@ -808,49 +808,49 @@ Static Public Member Functions</h2></td></tr>
808
808
  </table>
809
809
  </div><div class="memdoc">
810
810
 
811
- <p class="definition">Definition at line <a class="el" href="ae_8cpp_source.html#l00317">317</a> of file <a class="el" href="ae_8cpp_source.html">ae.cpp</a>.</p>
812
- <div class="fragment"><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; {</div>
813
- <div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() &lt;&lt; <span class="stringliteral">&quot;test2_5 start\n&quot;</span>;</div>
814
- <div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> itv;</div>
815
- <div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <a class="code" href="classSVF_1_1RelExeState.html">RelExeState</a> relation;</div>
816
- <div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <span class="comment">// var0 := [0, 100000];</span></div>
817
- <div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; relation[0] = <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;0&quot;</span>);</div>
818
- <div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; itv[0] = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 100000);</div>
819
- <div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; <span class="comment">// var1 := var0;</span></div>
820
- <div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; relation[1] =</div>
821
- <div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;1&quot;</span>) == <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;0&quot;</span>);</div>
822
- <div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; itv[1] = itv[0];</div>
823
- <div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <span class="comment">// var2 := var1 - var0;</span></div>
824
- <div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; relation[2] = <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;2&quot;</span>) ==</div>
825
- <div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;1&quot;</span>) - <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;0&quot;</span>);</div>
826
- <div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; itv[2] = itv[1] - itv[0];</div>
827
- <div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; </div>
828
- <div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; <span class="comment">// Test extract sub vars</span></div>
829
- <div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;u32_t&gt;</a> res;</div>
830
- <div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; relation.<a class="code" href="classSVF_1_1RelExeState.html#a3393f160508c33e68ebedd042d1d296f">extractSubVars</a>(relation[2], res);</div>
831
- <div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; assert(res == <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;u32_t&gt;</a>({0, 1, 2}) &amp;&amp; <span class="stringliteral">&quot;inconsistency occurs&quot;</span>);</div>
832
- <div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> inv = itv.<a class="code" href="classSVF_1_1IntervalESBase.html#a2c15de9b10a74fbcb171ff2f328ce7f2">sliceState</a>(res);</div>
833
- <div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; <a class="code" href="classSVF_1_1RelationSolver.html">RelationSolver</a> rs;</div>
834
- <div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&amp; relExpr = relation[2] &amp;&amp; relation[1];</div>
835
- <div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&amp; initExpr = rs.<a class="code" href="classSVF_1_1RelationSolver.html#af860063ccaeca043bac84eb9eb2cf80a">gamma_hat</a>(inv);</div>
836
- <div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&amp; phi = (relExpr &amp;&amp; initExpr).simplify();</div>
837
- <div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> resRSY = <a class="code" href="classSymblicAbstractionTest.html#abaa1ae92b79979cfabee1a2b8a284f80">RSY_time</a>(inv, phi, rs);</div>
838
- <div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> resBilateral = <a class="code" href="classSymblicAbstractionTest.html#ad6525df45acfeb1c9c31fc54219a4217">Bilateral_time</a>(inv, phi, rs);</div>
839
- <div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> resBS = <a class="code" href="classSymblicAbstractionTest.html#a61df4b66ebc9b3eb38d773aa375ee759">BS_time</a>(inv, phi, rs);</div>
840
- <div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; <span class="comment">// 0:[0,100000] 1:[0,100000] 2:[0,0]</span></div>
841
- <div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; assert(resRSY == resBS &amp;&amp; resBS == resBilateral &amp;&amp; <span class="stringliteral">&quot;inconsistency occurs&quot;</span>);</div>
842
- <div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> r : resRSY.<a class="code" href="classSVF_1_1IntervalESBase.html#a903797577ba99ef57879774a3849bbfe">getVarToVal</a>())</div>
843
- <div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; {</div>
844
- <div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; r.first &lt;&lt; <span class="stringliteral">&quot; &quot;</span> &lt;&lt; r.second &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
845
- <div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; }</div>
846
- <div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; <span class="comment">// ground truth</span></div>
847
- <div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; <span class="comment">// ground truth</span></div>
848
- <div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html#a02e3d5f7074c4f77338edc9a7add95d8">IntervalESBase::VarToValMap</a> intendedRes = {{0, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 100000)},</div>
849
- <div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; {1, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 100000)},</div>
850
- <div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; {2, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 0)}</div>
851
- <div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; };</div>
852
- <div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; assert(IntervalESBase::eqVarToValMap(resBS.<a class="code" href="classSVF_1_1IntervalESBase.html#a903797577ba99ef57879774a3849bbfe">getVarToVal</a>(), intendedRes) &amp;&amp; <span class="stringliteral">&quot;inconsistency occurs&quot;</span>);</div>
853
- <div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; }</div>
811
+ <p class="definition">Definition at line <a class="el" href="ae_8cpp_source.html#l00343">343</a> of file <a class="el" href="ae_8cpp_source.html">ae.cpp</a>.</p>
812
+ <div class="fragment"><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; {</div>
813
+ <div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;test2_5 start\n&quot;</span>;</div>
814
+ <div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> itv;</div>
815
+ <div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; <a class="code" href="classSVF_1_1RelExeState.html">RelExeState</a> relation;</div>
816
+ <div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; <span class="comment">// var0 := [0, 100000];</span></div>
817
+ <div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; relation[0] = <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;0&quot;</span>);</div>
818
+ <div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; itv[0] = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 100000);</div>
819
+ <div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; <span class="comment">// var1 := var0;</span></div>
820
+ <div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; relation[1] =</div>
821
+ <div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;1&quot;</span>) == <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;0&quot;</span>);</div>
822
+ <div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; itv[1] = itv[0];</div>
823
+ <div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; <span class="comment">// var2 := var1 - var0;</span></div>
824
+ <div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; relation[2] = <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;2&quot;</span>) ==</div>
825
+ <div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;1&quot;</span>) - <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;0&quot;</span>);</div>
826
+ <div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; itv[2] = itv[1] - itv[0];</div>
827
+ <div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; </div>
828
+ <div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; <span class="comment">// Test extract sub vars</span></div>
829
+ <div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;u32_t&gt;</a> res;</div>
830
+ <div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; relation.<a class="code" href="classSVF_1_1RelExeState.html#a3393f160508c33e68ebedd042d1d296f">extractSubVars</a>(relation[2], res);</div>
831
+ <div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; assert(res == <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;u32_t&gt;</a>({0, 1, 2}) &amp;&amp; <span class="stringliteral">&quot;inconsistency occurs&quot;</span>);</div>
832
+ <div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> inv = itv.<a class="code" href="classSVF_1_1IntervalESBase.html#a2c15de9b10a74fbcb171ff2f328ce7f2">sliceState</a>(res);</div>
833
+ <div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; <a class="code" href="classSVF_1_1RelationSolver.html">RelationSolver</a> rs;</div>
834
+ <div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&amp; relExpr = relation[2] &amp;&amp; relation[1];</div>
835
+ <div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&amp; initExpr = rs.<a class="code" href="classSVF_1_1RelationSolver.html#af860063ccaeca043bac84eb9eb2cf80a">gamma_hat</a>(inv);</div>
836
+ <div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&amp; phi = (relExpr &amp;&amp; initExpr).simplify();</div>
837
+ <div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> resRSY = <a class="code" href="classSymblicAbstractionTest.html#abaa1ae92b79979cfabee1a2b8a284f80">RSY_time</a>(inv, phi, rs);</div>
838
+ <div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> resBilateral = <a class="code" href="classSymblicAbstractionTest.html#ad6525df45acfeb1c9c31fc54219a4217">Bilateral_time</a>(inv, phi, rs);</div>
839
+ <div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> resBS = <a class="code" href="classSymblicAbstractionTest.html#a61df4b66ebc9b3eb38d773aa375ee759">BS_time</a>(inv, phi, rs);</div>
840
+ <div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; <span class="comment">// 0:[0,100000] 1:[0,100000] 2:[0,0]</span></div>
841
+ <div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; assert(resRSY == resBS &amp;&amp; resBS == resBilateral &amp;&amp; <span class="stringliteral">&quot;inconsistency occurs&quot;</span>);</div>
842
+ <div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> r : resRSY.<a class="code" href="classSVF_1_1IntervalESBase.html#a903797577ba99ef57879774a3849bbfe">getVarToVal</a>())</div>
843
+ <div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; {</div>
844
+ <div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; r.first &lt;&lt; <span class="stringliteral">&quot; &quot;</span> &lt;&lt; r.second &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
845
+ <div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; }</div>
846
+ <div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; <span class="comment">// ground truth</span></div>
847
+ <div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; <span class="comment">// ground truth</span></div>
848
+ <div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html#a02e3d5f7074c4f77338edc9a7add95d8">IntervalESBase::VarToValMap</a> intendedRes = {{0, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 100000)},</div>
849
+ <div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; {1, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 100000)},</div>
850
+ <div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; {2, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 0)}</div>
851
+ <div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; };</div>
852
+ <div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; assert(IntervalESBase::eqVarToValMap(resBS.<a class="code" href="classSVF_1_1IntervalESBase.html#a903797577ba99ef57879774a3849bbfe">getVarToVal</a>(), intendedRes) &amp;&amp; <span class="stringliteral">&quot;inconsistency occurs&quot;</span>);</div>
853
+ <div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; }</div>
854
854
  </div><!-- fragment -->
855
855
  </div>
856
856
  </div>
@@ -877,47 +877,47 @@ Static Public Member Functions</h2></td></tr>
877
877
  </table>
878
878
  </div><div class="memdoc">
879
879
 
880
- <p class="definition">Definition at line <a class="el" href="ae_8cpp_source.html#l00361">361</a> of file <a class="el" href="ae_8cpp_source.html">ae.cpp</a>.</p>
881
- <div class="fragment"><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; {</div>
882
- <div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() &lt;&lt; <span class="stringliteral">&quot;test3_1 start\n&quot;</span>;</div>
883
- <div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> itv;</div>
884
- <div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; <a class="code" href="classSVF_1_1RelExeState.html">RelExeState</a> relation;</div>
885
- <div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; <span class="comment">// var0 := [1, 10];</span></div>
886
- <div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; relation[0] = <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;0&quot;</span>);</div>
887
- <div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; itv[0] = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1, 10);</div>
888
- <div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; <span class="comment">// var1 := var0;</span></div>
889
- <div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; relation[1] =</div>
890
- <div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;1&quot;</span>) == <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;0&quot;</span>);</div>
891
- <div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; itv[1] = itv[0];</div>
892
- <div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; <span class="comment">// var2 := var1 / var0;</span></div>
893
- <div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; relation[2] = <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;2&quot;</span>) ==</div>
894
- <div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;1&quot;</span>) / <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;0&quot;</span>);</div>
895
- <div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; itv[2] = itv[1] / itv[0];</div>
896
- <div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; <span class="comment">// Test extract sub vars</span></div>
897
- <div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;u32_t&gt;</a> res;</div>
898
- <div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; relation.<a class="code" href="classSVF_1_1RelExeState.html#a3393f160508c33e68ebedd042d1d296f">extractSubVars</a>(relation[2], res);</div>
899
- <div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; assert(res == <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;u32_t&gt;</a>({0, 1, 2}) &amp;&amp; <span class="stringliteral">&quot;inconsistency occurs&quot;</span>);</div>
900
- <div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> inv = itv.<a class="code" href="classSVF_1_1IntervalESBase.html#a2c15de9b10a74fbcb171ff2f328ce7f2">sliceState</a>(res);</div>
901
- <div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; <a class="code" href="classSVF_1_1RelationSolver.html">RelationSolver</a> rs;</div>
902
- <div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&amp; relExpr = relation[2] &amp;&amp; relation[1];</div>
903
- <div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&amp; initExpr = rs.<a class="code" href="classSVF_1_1RelationSolver.html#af860063ccaeca043bac84eb9eb2cf80a">gamma_hat</a>(inv);</div>
904
- <div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&amp; phi = (relExpr &amp;&amp; initExpr).simplify();</div>
905
- <div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> resRSY = rs.<a class="code" href="classSVF_1_1RelationSolver.html#a657af041f883e7b1a3f9892453a2c4cf">RSY</a>(inv, phi);</div>
906
- <div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> resBilateral = rs.<a class="code" href="classSVF_1_1RelationSolver.html#a0df88638c5e3f8cd56d34088b96199f1">bilateral</a>(inv, phi);</div>
907
- <div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> resBS = rs.<a class="code" href="classSVF_1_1RelationSolver.html#a7e827609a1d69c6517f1a3eee0326fc3">BS</a>(inv, phi);</div>
908
- <div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <span class="comment">// 0:[1,10] 1:[1,10] 2:[1,1]</span></div>
909
- <div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; assert(resRSY == resBS &amp;&amp; resBS == resBilateral &amp;&amp; <span class="stringliteral">&quot;inconsistency occurs&quot;</span>);</div>
910
- <div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> r : resRSY.<a class="code" href="classSVF_1_1IntervalESBase.html#a903797577ba99ef57879774a3849bbfe">getVarToVal</a>())</div>
911
- <div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; {</div>
912
- <div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; r.first &lt;&lt; <span class="stringliteral">&quot; &quot;</span> &lt;&lt; r.second &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
913
- <div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; }</div>
914
- <div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; <span class="comment">// ground truth</span></div>
915
- <div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html#a02e3d5f7074c4f77338edc9a7add95d8">IntervalESBase::VarToValMap</a> intendedRes = {{0, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1, 10)},</div>
916
- <div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; {1, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1, 10)},</div>
917
- <div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; {2, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1, 1)}</div>
918
- <div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; };</div>
919
- <div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; assert(IntervalESBase::eqVarToValMap(resBS.<a class="code" href="classSVF_1_1IntervalESBase.html#a903797577ba99ef57879774a3849bbfe">getVarToVal</a>(), intendedRes) &amp;&amp; <span class="stringliteral">&quot;inconsistency occurs&quot;</span>);</div>
920
- <div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; }</div>
880
+ <p class="definition">Definition at line <a class="el" href="ae_8cpp_source.html#l00387">387</a> of file <a class="el" href="ae_8cpp_source.html">ae.cpp</a>.</p>
881
+ <div class="fragment"><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; {</div>
882
+ <div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;test3_1 start\n&quot;</span>;</div>
883
+ <div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> itv;</div>
884
+ <div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; <a class="code" href="classSVF_1_1RelExeState.html">RelExeState</a> relation;</div>
885
+ <div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; <span class="comment">// var0 := [1, 10];</span></div>
886
+ <div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; relation[0] = <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;0&quot;</span>);</div>
887
+ <div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; itv[0] = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1, 10);</div>
888
+ <div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; <span class="comment">// var1 := var0;</span></div>
889
+ <div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; relation[1] =</div>
890
+ <div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;1&quot;</span>) == <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;0&quot;</span>);</div>
891
+ <div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; itv[1] = itv[0];</div>
892
+ <div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; <span class="comment">// var2 := var1 / var0;</span></div>
893
+ <div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; relation[2] = <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;2&quot;</span>) ==</div>
894
+ <div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;1&quot;</span>) / <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;0&quot;</span>);</div>
895
+ <div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; itv[2] = itv[1] / itv[0];</div>
896
+ <div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; <span class="comment">// Test extract sub vars</span></div>
897
+ <div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;u32_t&gt;</a> res;</div>
898
+ <div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; relation.<a class="code" href="classSVF_1_1RelExeState.html#a3393f160508c33e68ebedd042d1d296f">extractSubVars</a>(relation[2], res);</div>
899
+ <div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; assert(res == <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;u32_t&gt;</a>({0, 1, 2}) &amp;&amp; <span class="stringliteral">&quot;inconsistency occurs&quot;</span>);</div>
900
+ <div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> inv = itv.<a class="code" href="classSVF_1_1IntervalESBase.html#a2c15de9b10a74fbcb171ff2f328ce7f2">sliceState</a>(res);</div>
901
+ <div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; <a class="code" href="classSVF_1_1RelationSolver.html">RelationSolver</a> rs;</div>
902
+ <div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&amp; relExpr = relation[2] &amp;&amp; relation[1];</div>
903
+ <div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&amp; initExpr = rs.<a class="code" href="classSVF_1_1RelationSolver.html#af860063ccaeca043bac84eb9eb2cf80a">gamma_hat</a>(inv);</div>
904
+ <div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&amp; phi = (relExpr &amp;&amp; initExpr).simplify();</div>
905
+ <div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> resRSY = rs.<a class="code" href="classSVF_1_1RelationSolver.html#a657af041f883e7b1a3f9892453a2c4cf">RSY</a>(inv, phi);</div>
906
+ <div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> resBilateral = rs.<a class="code" href="classSVF_1_1RelationSolver.html#a0df88638c5e3f8cd56d34088b96199f1">bilateral</a>(inv, phi);</div>
907
+ <div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> resBS = rs.<a class="code" href="classSVF_1_1RelationSolver.html#a7e827609a1d69c6517f1a3eee0326fc3">BS</a>(inv, phi);</div>
908
+ <div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <span class="comment">// 0:[1,10] 1:[1,10] 2:[1,1]</span></div>
909
+ <div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; assert(resRSY == resBS &amp;&amp; resBS == resBilateral &amp;&amp; <span class="stringliteral">&quot;inconsistency occurs&quot;</span>);</div>
910
+ <div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> r : resRSY.<a class="code" href="classSVF_1_1IntervalESBase.html#a903797577ba99ef57879774a3849bbfe">getVarToVal</a>())</div>
911
+ <div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; {</div>
912
+ <div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; r.first &lt;&lt; <span class="stringliteral">&quot; &quot;</span> &lt;&lt; r.second &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
913
+ <div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; }</div>
914
+ <div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; <span class="comment">// ground truth</span></div>
915
+ <div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html#a02e3d5f7074c4f77338edc9a7add95d8">IntervalESBase::VarToValMap</a> intendedRes = {{0, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1, 10)},</div>
916
+ <div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; {1, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1, 10)},</div>
917
+ <div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; {2, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1, 1)}</div>
918
+ <div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; };</div>
919
+ <div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; assert(IntervalESBase::eqVarToValMap(resBS.<a class="code" href="classSVF_1_1IntervalESBase.html#a903797577ba99ef57879774a3849bbfe">getVarToVal</a>(), intendedRes) &amp;&amp; <span class="stringliteral">&quot;inconsistency occurs&quot;</span>);</div>
920
+ <div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; }</div>
921
921
  </div><!-- fragment -->
922
922
  </div>
923
923
  </div>
@@ -944,47 +944,47 @@ Static Public Member Functions</h2></td></tr>
944
944
  </table>
945
945
  </div><div class="memdoc">
946
946
 
947
- <p class="definition">Definition at line <a class="el" href="ae_8cpp_source.html#l00403">403</a> of file <a class="el" href="ae_8cpp_source.html">ae.cpp</a>.</p>
948
- <div class="fragment"><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; {</div>
949
- <div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() &lt;&lt; <span class="stringliteral">&quot;test3_2 start\n&quot;</span>;</div>
950
- <div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> itv;</div>
951
- <div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; <a class="code" href="classSVF_1_1RelExeState.html">RelExeState</a> relation;</div>
952
- <div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; <span class="comment">// var0 := [1, 1000];</span></div>
953
- <div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; relation[0] = <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;0&quot;</span>);</div>
954
- <div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; itv[0] = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1, 1000);</div>
955
- <div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; <span class="comment">// var1 := var0;</span></div>
956
- <div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; relation[1] =</div>
957
- <div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;1&quot;</span>) == <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;0&quot;</span>);</div>
958
- <div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; itv[1] = itv[0];</div>
959
- <div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <span class="comment">// var2 := var1 / var0;</span></div>
960
- <div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; relation[2] = <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;2&quot;</span>) ==</div>
961
- <div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;1&quot;</span>) / <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;0&quot;</span>);</div>
962
- <div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; itv[2] = itv[1] / itv[0];</div>
963
- <div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; <span class="comment">// Test extract sub vars</span></div>
964
- <div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;u32_t&gt;</a> res;</div>
965
- <div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; relation.<a class="code" href="classSVF_1_1RelExeState.html#a3393f160508c33e68ebedd042d1d296f">extractSubVars</a>(relation[2], res);</div>
966
- <div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; assert(res == <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;u32_t&gt;</a>({0, 1, 2}) &amp;&amp; <span class="stringliteral">&quot;inconsistency occurs&quot;</span>);</div>
967
- <div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> inv = itv.<a class="code" href="classSVF_1_1IntervalESBase.html#a2c15de9b10a74fbcb171ff2f328ce7f2">sliceState</a>(res);</div>
968
- <div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; <a class="code" href="classSVF_1_1RelationSolver.html">RelationSolver</a> rs;</div>
969
- <div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&amp; relExpr = relation[2] &amp;&amp; relation[1];</div>
970
- <div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&amp; initExpr = rs.<a class="code" href="classSVF_1_1RelationSolver.html#af860063ccaeca043bac84eb9eb2cf80a">gamma_hat</a>(inv);</div>
971
- <div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&amp; phi = (relExpr &amp;&amp; initExpr).simplify();</div>
972
- <div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> resRSY = rs.<a class="code" href="classSVF_1_1RelationSolver.html#a657af041f883e7b1a3f9892453a2c4cf">RSY</a>(inv, phi);</div>
973
- <div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> resBilateral = rs.<a class="code" href="classSVF_1_1RelationSolver.html#a0df88638c5e3f8cd56d34088b96199f1">bilateral</a>(inv, phi);</div>
974
- <div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> resBS = rs.<a class="code" href="classSVF_1_1RelationSolver.html#a7e827609a1d69c6517f1a3eee0326fc3">BS</a>(inv, phi);</div>
975
- <div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; <span class="comment">// 0:[1,1000] 1:[1,1000] 2:[1,1]</span></div>
976
- <div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; assert(resRSY == resBS &amp;&amp; resBS == resBilateral &amp;&amp; <span class="stringliteral">&quot;inconsistency occurs&quot;</span>);</div>
977
- <div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> r : resRSY.<a class="code" href="classSVF_1_1IntervalESBase.html#a903797577ba99ef57879774a3849bbfe">getVarToVal</a>())</div>
978
- <div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; {</div>
979
- <div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; r.first &lt;&lt; <span class="stringliteral">&quot; &quot;</span> &lt;&lt; r.second &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
980
- <div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; }</div>
981
- <div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; <span class="comment">// ground truth</span></div>
982
- <div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html#a02e3d5f7074c4f77338edc9a7add95d8">IntervalESBase::VarToValMap</a> intendedRes = {{0, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1, 1000)},</div>
983
- <div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; {1, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1, 1000)},</div>
984
- <div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; {2, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1, 1)}</div>
985
- <div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; };</div>
986
- <div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; assert(IntervalESBase::eqVarToValMap(resBS.<a class="code" href="classSVF_1_1IntervalESBase.html#a903797577ba99ef57879774a3849bbfe">getVarToVal</a>(), intendedRes) &amp;&amp; <span class="stringliteral">&quot;inconsistency occurs&quot;</span>);</div>
987
- <div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; }</div>
947
+ <p class="definition">Definition at line <a class="el" href="ae_8cpp_source.html#l00429">429</a> of file <a class="el" href="ae_8cpp_source.html">ae.cpp</a>.</p>
948
+ <div class="fragment"><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; {</div>
949
+ <div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;test3_2 start\n&quot;</span>;</div>
950
+ <div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> itv;</div>
951
+ <div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; <a class="code" href="classSVF_1_1RelExeState.html">RelExeState</a> relation;</div>
952
+ <div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; <span class="comment">// var0 := [1, 1000];</span></div>
953
+ <div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; relation[0] = <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;0&quot;</span>);</div>
954
+ <div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; itv[0] = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1, 1000);</div>
955
+ <div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; <span class="comment">// var1 := var0;</span></div>
956
+ <div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; relation[1] =</div>
957
+ <div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;1&quot;</span>) == <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;0&quot;</span>);</div>
958
+ <div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; itv[1] = itv[0];</div>
959
+ <div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; <span class="comment">// var2 := var1 / var0;</span></div>
960
+ <div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; relation[2] = <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;2&quot;</span>) ==</div>
961
+ <div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;1&quot;</span>) / <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;0&quot;</span>);</div>
962
+ <div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; itv[2] = itv[1] / itv[0];</div>
963
+ <div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; <span class="comment">// Test extract sub vars</span></div>
964
+ <div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;u32_t&gt;</a> res;</div>
965
+ <div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; relation.<a class="code" href="classSVF_1_1RelExeState.html#a3393f160508c33e68ebedd042d1d296f">extractSubVars</a>(relation[2], res);</div>
966
+ <div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; assert(res == <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;u32_t&gt;</a>({0, 1, 2}) &amp;&amp; <span class="stringliteral">&quot;inconsistency occurs&quot;</span>);</div>
967
+ <div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> inv = itv.<a class="code" href="classSVF_1_1IntervalESBase.html#a2c15de9b10a74fbcb171ff2f328ce7f2">sliceState</a>(res);</div>
968
+ <div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; <a class="code" href="classSVF_1_1RelationSolver.html">RelationSolver</a> rs;</div>
969
+ <div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&amp; relExpr = relation[2] &amp;&amp; relation[1];</div>
970
+ <div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&amp; initExpr = rs.<a class="code" href="classSVF_1_1RelationSolver.html#af860063ccaeca043bac84eb9eb2cf80a">gamma_hat</a>(inv);</div>
971
+ <div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&amp; phi = (relExpr &amp;&amp; initExpr).simplify();</div>
972
+ <div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> resRSY = rs.<a class="code" href="classSVF_1_1RelationSolver.html#a657af041f883e7b1a3f9892453a2c4cf">RSY</a>(inv, phi);</div>
973
+ <div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> resBilateral = rs.<a class="code" href="classSVF_1_1RelationSolver.html#a0df88638c5e3f8cd56d34088b96199f1">bilateral</a>(inv, phi);</div>
974
+ <div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> resBS = rs.<a class="code" href="classSVF_1_1RelationSolver.html#a7e827609a1d69c6517f1a3eee0326fc3">BS</a>(inv, phi);</div>
975
+ <div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; <span class="comment">// 0:[1,1000] 1:[1,1000] 2:[1,1]</span></div>
976
+ <div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; assert(resRSY == resBS &amp;&amp; resBS == resBilateral &amp;&amp; <span class="stringliteral">&quot;inconsistency occurs&quot;</span>);</div>
977
+ <div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> r : resRSY.<a class="code" href="classSVF_1_1IntervalESBase.html#a903797577ba99ef57879774a3849bbfe">getVarToVal</a>())</div>
978
+ <div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; {</div>
979
+ <div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; r.first &lt;&lt; <span class="stringliteral">&quot; &quot;</span> &lt;&lt; r.second &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
980
+ <div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; }</div>
981
+ <div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; <span class="comment">// ground truth</span></div>
982
+ <div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html#a02e3d5f7074c4f77338edc9a7add95d8">IntervalESBase::VarToValMap</a> intendedRes = {{0, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1, 1000)},</div>
983
+ <div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; {1, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1, 1000)},</div>
984
+ <div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; {2, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1, 1)}</div>
985
+ <div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; };</div>
986
+ <div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; assert(IntervalESBase::eqVarToValMap(resBS.<a class="code" href="classSVF_1_1IntervalESBase.html#a903797577ba99ef57879774a3849bbfe">getVarToVal</a>(), intendedRes) &amp;&amp; <span class="stringliteral">&quot;inconsistency occurs&quot;</span>);</div>
987
+ <div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; }</div>
988
988
  </div><!-- fragment -->
989
989
  </div>
990
990
  </div>
@@ -1011,46 +1011,46 @@ Static Public Member Functions</h2></td></tr>
1011
1011
  </table>
1012
1012
  </div><div class="memdoc">
1013
1013
 
1014
- <p class="definition">Definition at line <a class="el" href="ae_8cpp_source.html#l00445">445</a> of file <a class="el" href="ae_8cpp_source.html">ae.cpp</a>.</p>
1015
- <div class="fragment"><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; {</div>
1016
- <div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() &lt;&lt; <span class="stringliteral">&quot;test3_3 start\n&quot;</span>;</div>
1017
- <div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> itv;</div>
1018
- <div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; <a class="code" href="classSVF_1_1RelExeState.html">RelExeState</a> relation;</div>
1019
- <div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; <span class="comment">// var0 := [1, 10000];</span></div>
1020
- <div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; relation[0] = <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;0&quot;</span>);</div>
1021
- <div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; itv[0] = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1, 10000);</div>
1022
- <div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; <span class="comment">// var1 := var0;</span></div>
1023
- <div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; relation[1] =</div>
1024
- <div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;1&quot;</span>) == <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;0&quot;</span>);</div>
1025
- <div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; itv[1] = itv[0];</div>
1026
- <div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; <span class="comment">// var2 := var1 / var0;</span></div>
1027
- <div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; relation[2] = <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;2&quot;</span>) ==</div>
1028
- <div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;1&quot;</span>) / <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;0&quot;</span>);</div>
1029
- <div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; itv[2] = itv[1] / itv[0];</div>
1030
- <div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; <span class="comment">// Test extract sub vars</span></div>
1031
- <div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;u32_t&gt;</a> res;</div>
1032
- <div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; relation.<a class="code" href="classSVF_1_1RelExeState.html#a3393f160508c33e68ebedd042d1d296f">extractSubVars</a>(relation[2], res);</div>
1033
- <div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; assert(res == <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;u32_t&gt;</a>({0, 1, 2}) &amp;&amp; <span class="stringliteral">&quot;inconsistency occurs&quot;</span>);</div>
1034
- <div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> inv = itv.<a class="code" href="classSVF_1_1IntervalESBase.html#a2c15de9b10a74fbcb171ff2f328ce7f2">sliceState</a>(res);</div>
1035
- <div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; <a class="code" href="classSVF_1_1RelationSolver.html">RelationSolver</a> rs;</div>
1036
- <div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&amp; relExpr = relation[2] &amp;&amp; relation[1];</div>
1037
- <div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&amp; initExpr = rs.<a class="code" href="classSVF_1_1RelationSolver.html#af860063ccaeca043bac84eb9eb2cf80a">gamma_hat</a>(inv);</div>
1038
- <div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&amp; phi = (relExpr &amp;&amp; initExpr).simplify();</div>
1039
- <div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> resRSY = <a class="code" href="classSymblicAbstractionTest.html#abaa1ae92b79979cfabee1a2b8a284f80">RSY_time</a>(inv, phi, rs);</div>
1040
- <div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> resBilateral = <a class="code" href="classSymblicAbstractionTest.html#ad6525df45acfeb1c9c31fc54219a4217">Bilateral_time</a>(inv, phi, rs);</div>
1041
- <div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> resBS = <a class="code" href="classSymblicAbstractionTest.html#a61df4b66ebc9b3eb38d773aa375ee759">BS_time</a>(inv, phi, rs);</div>
1042
- <div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; <span class="comment">// 0:[1,10000] 1:[1,10000] 2:[1,1]</span></div>
1043
- <div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; assert(resRSY == resBS &amp;&amp; resBS == resBilateral &amp;&amp; <span class="stringliteral">&quot;inconsistency occurs&quot;</span>);</div>
1044
- <div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> r : resRSY.<a class="code" href="classSVF_1_1IntervalESBase.html#a903797577ba99ef57879774a3849bbfe">getVarToVal</a>())</div>
1045
- <div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; {</div>
1046
- <div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; r.first &lt;&lt; <span class="stringliteral">&quot; &quot;</span> &lt;&lt; r.second &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
1047
- <div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; }</div>
1048
- <div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; <span class="comment">// ground truth</span></div>
1049
- <div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html#a02e3d5f7074c4f77338edc9a7add95d8">IntervalESBase::VarToValMap</a> intendedRes =</div>
1050
- <div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;u32_t, IntervalValue&gt;</a>({{0, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1, 10000)},</div>
1051
- <div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; {1, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1, 10000)},</div>
1052
- <div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; {2, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1, 1)}});</div>
1053
- <div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; }</div>
1014
+ <p class="definition">Definition at line <a class="el" href="ae_8cpp_source.html#l00471">471</a> of file <a class="el" href="ae_8cpp_source.html">ae.cpp</a>.</p>
1015
+ <div class="fragment"><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; {</div>
1016
+ <div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;test3_3 start\n&quot;</span>;</div>
1017
+ <div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> itv;</div>
1018
+ <div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; <a class="code" href="classSVF_1_1RelExeState.html">RelExeState</a> relation;</div>
1019
+ <div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; <span class="comment">// var0 := [1, 10000];</span></div>
1020
+ <div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; relation[0] = <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;0&quot;</span>);</div>
1021
+ <div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; itv[0] = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1, 10000);</div>
1022
+ <div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; <span class="comment">// var1 := var0;</span></div>
1023
+ <div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; relation[1] =</div>
1024
+ <div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;1&quot;</span>) == <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;0&quot;</span>);</div>
1025
+ <div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; itv[1] = itv[0];</div>
1026
+ <div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; <span class="comment">// var2 := var1 / var0;</span></div>
1027
+ <div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; relation[2] = <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;2&quot;</span>) ==</div>
1028
+ <div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;1&quot;</span>) / <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;0&quot;</span>);</div>
1029
+ <div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; itv[2] = itv[1] / itv[0];</div>
1030
+ <div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; <span class="comment">// Test extract sub vars</span></div>
1031
+ <div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;u32_t&gt;</a> res;</div>
1032
+ <div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; relation.<a class="code" href="classSVF_1_1RelExeState.html#a3393f160508c33e68ebedd042d1d296f">extractSubVars</a>(relation[2], res);</div>
1033
+ <div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; assert(res == <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;u32_t&gt;</a>({0, 1, 2}) &amp;&amp; <span class="stringliteral">&quot;inconsistency occurs&quot;</span>);</div>
1034
+ <div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> inv = itv.<a class="code" href="classSVF_1_1IntervalESBase.html#a2c15de9b10a74fbcb171ff2f328ce7f2">sliceState</a>(res);</div>
1035
+ <div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; <a class="code" href="classSVF_1_1RelationSolver.html">RelationSolver</a> rs;</div>
1036
+ <div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&amp; relExpr = relation[2] &amp;&amp; relation[1];</div>
1037
+ <div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&amp; initExpr = rs.<a class="code" href="classSVF_1_1RelationSolver.html#af860063ccaeca043bac84eb9eb2cf80a">gamma_hat</a>(inv);</div>
1038
+ <div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&amp; phi = (relExpr &amp;&amp; initExpr).simplify();</div>
1039
+ <div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> resRSY = <a class="code" href="classSymblicAbstractionTest.html#abaa1ae92b79979cfabee1a2b8a284f80">RSY_time</a>(inv, phi, rs);</div>
1040
+ <div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> resBilateral = <a class="code" href="classSymblicAbstractionTest.html#ad6525df45acfeb1c9c31fc54219a4217">Bilateral_time</a>(inv, phi, rs);</div>
1041
+ <div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> resBS = <a class="code" href="classSymblicAbstractionTest.html#a61df4b66ebc9b3eb38d773aa375ee759">BS_time</a>(inv, phi, rs);</div>
1042
+ <div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; <span class="comment">// 0:[1,10000] 1:[1,10000] 2:[1,1]</span></div>
1043
+ <div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; assert(resRSY == resBS &amp;&amp; resBS == resBilateral &amp;&amp; <span class="stringliteral">&quot;inconsistency occurs&quot;</span>);</div>
1044
+ <div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> r : resRSY.<a class="code" href="classSVF_1_1IntervalESBase.html#a903797577ba99ef57879774a3849bbfe">getVarToVal</a>())</div>
1045
+ <div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; {</div>
1046
+ <div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; r.first &lt;&lt; <span class="stringliteral">&quot; &quot;</span> &lt;&lt; r.second &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
1047
+ <div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; }</div>
1048
+ <div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; <span class="comment">// ground truth</span></div>
1049
+ <div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html#a02e3d5f7074c4f77338edc9a7add95d8">IntervalESBase::VarToValMap</a> intendedRes =</div>
1050
+ <div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;u32_t, IntervalValue&gt;</a>({{0, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1, 10000)},</div>
1051
+ <div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; {1, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1, 10000)},</div>
1052
+ <div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; {2, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1, 1)}});</div>
1053
+ <div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; }</div>
1054
1054
  </div><!-- fragment -->
1055
1055
  </div>
1056
1056
  </div>
@@ -1077,47 +1077,47 @@ Static Public Member Functions</h2></td></tr>
1077
1077
  </table>
1078
1078
  </div><div class="memdoc">
1079
1079
 
1080
- <p class="definition">Definition at line <a class="el" href="ae_8cpp_source.html#l00486">486</a> of file <a class="el" href="ae_8cpp_source.html">ae.cpp</a>.</p>
1081
- <div class="fragment"><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; {</div>
1082
- <div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() &lt;&lt; <span class="stringliteral">&quot;test3_4 start\n&quot;</span>;</div>
1083
- <div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> itv;</div>
1084
- <div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; <a class="code" href="classSVF_1_1RelExeState.html">RelExeState</a> relation;</div>
1085
- <div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; <span class="comment">// var0 := [1, 100000];</span></div>
1086
- <div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; relation[0] = <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;0&quot;</span>);</div>
1087
- <div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; itv[0] = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1, 100000);</div>
1088
- <div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; <span class="comment">// var1 := var0;</span></div>
1089
- <div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; relation[1] =</div>
1090
- <div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;1&quot;</span>) == <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;0&quot;</span>);</div>
1091
- <div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; itv[1] = itv[0];</div>
1092
- <div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; <span class="comment">// var2 := var1 / var0;</span></div>
1093
- <div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; relation[2] = <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;2&quot;</span>) ==</div>
1094
- <div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;1&quot;</span>) / <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;0&quot;</span>);</div>
1095
- <div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; itv[2] = itv[1] / itv[0];</div>
1096
- <div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; <span class="comment">// Test extract sub vars</span></div>
1097
- <div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;u32_t&gt;</a> res;</div>
1098
- <div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; relation.<a class="code" href="classSVF_1_1RelExeState.html#a3393f160508c33e68ebedd042d1d296f">extractSubVars</a>(relation[2], res);</div>
1099
- <div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; assert(res == <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;u32_t&gt;</a>({0, 1, 2}) &amp;&amp; <span class="stringliteral">&quot;inconsistency occurs&quot;</span>);</div>
1100
- <div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> inv = itv.<a class="code" href="classSVF_1_1IntervalESBase.html#a2c15de9b10a74fbcb171ff2f328ce7f2">sliceState</a>(res);</div>
1101
- <div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; <a class="code" href="classSVF_1_1RelationSolver.html">RelationSolver</a> rs;</div>
1102
- <div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&amp; relExpr = relation[2] &amp;&amp; relation[1];</div>
1103
- <div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&amp; initExpr = rs.<a class="code" href="classSVF_1_1RelationSolver.html#af860063ccaeca043bac84eb9eb2cf80a">gamma_hat</a>(inv);</div>
1104
- <div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&amp; phi = (relExpr &amp;&amp; initExpr).simplify();</div>
1105
- <div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> resRSY = <a class="code" href="classSymblicAbstractionTest.html#abaa1ae92b79979cfabee1a2b8a284f80">RSY_time</a>(inv, phi, rs);</div>
1106
- <div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> resBilateral = <a class="code" href="classSymblicAbstractionTest.html#ad6525df45acfeb1c9c31fc54219a4217">Bilateral_time</a>(inv, phi, rs);</div>
1107
- <div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> resBS = <a class="code" href="classSymblicAbstractionTest.html#a61df4b66ebc9b3eb38d773aa375ee759">BS_time</a>(inv, phi, rs);</div>
1108
- <div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; <span class="comment">// 0:[1,100000] 1:[1,100000] 2:[1,1]</span></div>
1109
- <div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; assert(resRSY == resBS &amp;&amp; resBS == resBilateral &amp;&amp; <span class="stringliteral">&quot;inconsistency occurs&quot;</span>);</div>
1110
- <div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> r : resRSY.<a class="code" href="classSVF_1_1IntervalESBase.html#a903797577ba99ef57879774a3849bbfe">getVarToVal</a>())</div>
1111
- <div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; {</div>
1112
- <div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; r.first &lt;&lt; <span class="stringliteral">&quot; &quot;</span> &lt;&lt; r.second &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
1113
- <div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; }</div>
1114
- <div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; <span class="comment">// ground truth</span></div>
1115
- <div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html#a02e3d5f7074c4f77338edc9a7add95d8">IntervalESBase::VarToValMap</a> intendedRes = {{0, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1, 100000)},</div>
1116
- <div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; {1, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1, 100000)},</div>
1117
- <div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; {2, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1, 1)}</div>
1118
- <div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; };</div>
1119
- <div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; assert(IntervalESBase::eqVarToValMap(resBS.<a class="code" href="classSVF_1_1IntervalESBase.html#a903797577ba99ef57879774a3849bbfe">getVarToVal</a>(), intendedRes) &amp;&amp; <span class="stringliteral">&quot;inconsistency occurs&quot;</span>);</div>
1120
- <div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; }</div>
1080
+ <p class="definition">Definition at line <a class="el" href="ae_8cpp_source.html#l00512">512</a> of file <a class="el" href="ae_8cpp_source.html">ae.cpp</a>.</p>
1081
+ <div class="fragment"><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; {</div>
1082
+ <div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;test3_4 start\n&quot;</span>;</div>
1083
+ <div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> itv;</div>
1084
+ <div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; <a class="code" href="classSVF_1_1RelExeState.html">RelExeState</a> relation;</div>
1085
+ <div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; <span class="comment">// var0 := [1, 100000];</span></div>
1086
+ <div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; relation[0] = <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;0&quot;</span>);</div>
1087
+ <div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; itv[0] = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1, 100000);</div>
1088
+ <div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; <span class="comment">// var1 := var0;</span></div>
1089
+ <div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; relation[1] =</div>
1090
+ <div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;1&quot;</span>) == <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;0&quot;</span>);</div>
1091
+ <div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; itv[1] = itv[0];</div>
1092
+ <div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; <span class="comment">// var2 := var1 / var0;</span></div>
1093
+ <div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; relation[2] = <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;2&quot;</span>) ==</div>
1094
+ <div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;1&quot;</span>) / <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;0&quot;</span>);</div>
1095
+ <div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; itv[2] = itv[1] / itv[0];</div>
1096
+ <div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; <span class="comment">// Test extract sub vars</span></div>
1097
+ <div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;u32_t&gt;</a> res;</div>
1098
+ <div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; relation.<a class="code" href="classSVF_1_1RelExeState.html#a3393f160508c33e68ebedd042d1d296f">extractSubVars</a>(relation[2], res);</div>
1099
+ <div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; assert(res == <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;u32_t&gt;</a>({0, 1, 2}) &amp;&amp; <span class="stringliteral">&quot;inconsistency occurs&quot;</span>);</div>
1100
+ <div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> inv = itv.<a class="code" href="classSVF_1_1IntervalESBase.html#a2c15de9b10a74fbcb171ff2f328ce7f2">sliceState</a>(res);</div>
1101
+ <div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; <a class="code" href="classSVF_1_1RelationSolver.html">RelationSolver</a> rs;</div>
1102
+ <div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&amp; relExpr = relation[2] &amp;&amp; relation[1];</div>
1103
+ <div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&amp; initExpr = rs.<a class="code" href="classSVF_1_1RelationSolver.html#af860063ccaeca043bac84eb9eb2cf80a">gamma_hat</a>(inv);</div>
1104
+ <div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&amp; phi = (relExpr &amp;&amp; initExpr).simplify();</div>
1105
+ <div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> resRSY = <a class="code" href="classSymblicAbstractionTest.html#abaa1ae92b79979cfabee1a2b8a284f80">RSY_time</a>(inv, phi, rs);</div>
1106
+ <div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> resBilateral = <a class="code" href="classSymblicAbstractionTest.html#ad6525df45acfeb1c9c31fc54219a4217">Bilateral_time</a>(inv, phi, rs);</div>
1107
+ <div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> resBS = <a class="code" href="classSymblicAbstractionTest.html#a61df4b66ebc9b3eb38d773aa375ee759">BS_time</a>(inv, phi, rs);</div>
1108
+ <div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; <span class="comment">// 0:[1,100000] 1:[1,100000] 2:[1,1]</span></div>
1109
+ <div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160; assert(resRSY == resBS &amp;&amp; resBS == resBilateral &amp;&amp; <span class="stringliteral">&quot;inconsistency occurs&quot;</span>);</div>
1110
+ <div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> r : resRSY.<a class="code" href="classSVF_1_1IntervalESBase.html#a903797577ba99ef57879774a3849bbfe">getVarToVal</a>())</div>
1111
+ <div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; {</div>
1112
+ <div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; r.first &lt;&lt; <span class="stringliteral">&quot; &quot;</span> &lt;&lt; r.second &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
1113
+ <div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; }</div>
1114
+ <div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; <span class="comment">// ground truth</span></div>
1115
+ <div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html#a02e3d5f7074c4f77338edc9a7add95d8">IntervalESBase::VarToValMap</a> intendedRes = {{0, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1, 100000)},</div>
1116
+ <div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; {1, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1, 100000)},</div>
1117
+ <div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; {2, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1, 1)}</div>
1118
+ <div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; };</div>
1119
+ <div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; assert(IntervalESBase::eqVarToValMap(resBS.<a class="code" href="classSVF_1_1IntervalESBase.html#a903797577ba99ef57879774a3849bbfe">getVarToVal</a>(), intendedRes) &amp;&amp; <span class="stringliteral">&quot;inconsistency occurs&quot;</span>);</div>
1120
+ <div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; }</div>
1121
1121
  </div><!-- fragment -->
1122
1122
  </div>
1123
1123
  </div>
@@ -1144,50 +1144,50 @@ Static Public Member Functions</h2></td></tr>
1144
1144
  </table>
1145
1145
  </div><div class="memdoc">
1146
1146
 
1147
- <p class="definition">Definition at line <a class="el" href="ae_8cpp_source.html#l00528">528</a> of file <a class="el" href="ae_8cpp_source.html">ae.cpp</a>.</p>
1148
- <div class="fragment"><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; {</div>
1149
- <div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() &lt;&lt; <span class="stringliteral">&quot;test4_1 start\n&quot;</span>;</div>
1150
- <div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> itv;</div>
1151
- <div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; <a class="code" href="classSVF_1_1RelExeState.html">RelExeState</a> relation;</div>
1152
- <div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; <span class="comment">// var0 := [0, 10];</span></div>
1153
- <div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; relation[0] = <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;0&quot;</span>);</div>
1154
- <div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160; itv[0] = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 10);</div>
1155
- <div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160; <span class="comment">// var1 := var0;</span></div>
1156
- <div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; relation[1] =</div>
1157
- <div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;1&quot;</span>) == <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;0&quot;</span>);</div>
1158
- <div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; itv[1] = itv[0];</div>
1159
- <div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; <span class="comment">// var2 := var1 / var0;</span></div>
1160
- <div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160; relation[2] = <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;2&quot;</span>) ==</div>
1161
- <div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;1&quot;</span>) / <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;0&quot;</span>);</div>
1162
- <div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; itv[2] = itv[1] / itv[0];</div>
1163
- <div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; <span class="comment">// Test extract sub vars</span></div>
1164
- <div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;u32_t&gt;</a> res;</div>
1165
- <div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; relation.<a class="code" href="classSVF_1_1RelExeState.html#a3393f160508c33e68ebedd042d1d296f">extractSubVars</a>(relation[2], res);</div>
1166
- <div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; assert(res == <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;u32_t&gt;</a>({0, 1, 2}) &amp;&amp; <span class="stringliteral">&quot;inconsistency occurs&quot;</span>);</div>
1167
- <div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> inv = itv.<a class="code" href="classSVF_1_1IntervalESBase.html#a2c15de9b10a74fbcb171ff2f328ce7f2">sliceState</a>(res);</div>
1168
- <div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; <a class="code" href="classSVF_1_1RelationSolver.html">RelationSolver</a> rs;</div>
1169
- <div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&amp; relExpr = relation[2] &amp;&amp; relation[1];</div>
1170
- <div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&amp; initExpr = rs.<a class="code" href="classSVF_1_1RelationSolver.html#af860063ccaeca043bac84eb9eb2cf80a">gamma_hat</a>(inv);</div>
1171
- <div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&amp; phi = (relExpr &amp;&amp; initExpr).simplify();</div>
1172
- <div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160; <span class="comment">// IntervalExeState resRSY = rs.RSY(inv, phi);</span></div>
1173
- <div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;rsy done\n&quot;</span>;</div>
1174
- <div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; <span class="comment">// IntervalExeState resBilateral = rs.bilateral(inv, phi);</span></div>
1175
- <div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;bilateral done\n&quot;</span>;</div>
1176
- <div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> resBS = rs.<a class="code" href="classSVF_1_1RelationSolver.html#a7e827609a1d69c6517f1a3eee0326fc3">BS</a>(inv, phi);</div>
1177
- <div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;bs done\n&quot;</span>;</div>
1178
- <div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; <span class="comment">// 0:[0,10] 1:[0,10] 2:[-00,+00]</span></div>
1179
- <div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; <span class="comment">// assert(resRSY == resBS &amp;&amp; resBS == resBilateral);</span></div>
1180
- <div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> r : resBS.<a class="code" href="classSVF_1_1IntervalESBase.html#a903797577ba99ef57879774a3849bbfe">getVarToVal</a>())</div>
1181
- <div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; {</div>
1182
- <div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; r.first &lt;&lt; <span class="stringliteral">&quot; &quot;</span> &lt;&lt; r.second &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
1183
- <div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; }</div>
1184
- <div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; <span class="comment">// ground truth</span></div>
1185
- <div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html#a02e3d5f7074c4f77338edc9a7add95d8">IntervalESBase::VarToValMap</a> intendedRes = {{0, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 10)},</div>
1186
- <div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; {1, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 10)},</div>
1187
- <div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; {2, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(IntervalValue::minus_infinity(), IntervalValue::plus_infinity())}</div>
1188
- <div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; };</div>
1189
- <div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; assert(IntervalESBase::eqVarToValMap(resBS.<a class="code" href="classSVF_1_1IntervalESBase.html#a903797577ba99ef57879774a3849bbfe">getVarToVal</a>(), intendedRes) &amp;&amp; <span class="stringliteral">&quot;inconsistency occurs&quot;</span>);</div>
1190
- <div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; }</div>
1147
+ <p class="definition">Definition at line <a class="el" href="ae_8cpp_source.html#l00554">554</a> of file <a class="el" href="ae_8cpp_source.html">ae.cpp</a>.</p>
1148
+ <div class="fragment"><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; {</div>
1149
+ <div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;test4_1 start\n&quot;</span>;</div>
1150
+ <div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> itv;</div>
1151
+ <div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; <a class="code" href="classSVF_1_1RelExeState.html">RelExeState</a> relation;</div>
1152
+ <div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; <span class="comment">// var0 := [0, 10];</span></div>
1153
+ <div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; relation[0] = <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;0&quot;</span>);</div>
1154
+ <div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; itv[0] = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 10);</div>
1155
+ <div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; <span class="comment">// var1 := var0;</span></div>
1156
+ <div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; relation[1] =</div>
1157
+ <div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;1&quot;</span>) == <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;0&quot;</span>);</div>
1158
+ <div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; itv[1] = itv[0];</div>
1159
+ <div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; <span class="comment">// var2 := var1 / var0;</span></div>
1160
+ <div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; relation[2] = <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;2&quot;</span>) ==</div>
1161
+ <div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;1&quot;</span>) / <a class="code" href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">getContext</a>().int_const(<span class="stringliteral">&quot;0&quot;</span>);</div>
1162
+ <div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; itv[2] = itv[1] / itv[0];</div>
1163
+ <div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; <span class="comment">// Test extract sub vars</span></div>
1164
+ <div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;u32_t&gt;</a> res;</div>
1165
+ <div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; relation.<a class="code" href="classSVF_1_1RelExeState.html#a3393f160508c33e68ebedd042d1d296f">extractSubVars</a>(relation[2], res);</div>
1166
+ <div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160; assert(res == <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;u32_t&gt;</a>({0, 1, 2}) &amp;&amp; <span class="stringliteral">&quot;inconsistency occurs&quot;</span>);</div>
1167
+ <div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> inv = itv.<a class="code" href="classSVF_1_1IntervalESBase.html#a2c15de9b10a74fbcb171ff2f328ce7f2">sliceState</a>(res);</div>
1168
+ <div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; <a class="code" href="classSVF_1_1RelationSolver.html">RelationSolver</a> rs;</div>
1169
+ <div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&amp; relExpr = relation[2] &amp;&amp; relation[1];</div>
1170
+ <div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&amp; initExpr = rs.<a class="code" href="classSVF_1_1RelationSolver.html#af860063ccaeca043bac84eb9eb2cf80a">gamma_hat</a>(inv);</div>
1171
+ <div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&amp; phi = (relExpr &amp;&amp; initExpr).simplify();</div>
1172
+ <div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; <span class="comment">// IntervalExeState resRSY = rs.RSY(inv, phi);</span></div>
1173
+ <div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;rsy done\n&quot;</span>;</div>
1174
+ <div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; <span class="comment">// IntervalExeState resBilateral = rs.bilateral(inv, phi);</span></div>
1175
+ <div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;bilateral done\n&quot;</span>;</div>
1176
+ <div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a> resBS = rs.<a class="code" href="classSVF_1_1RelationSolver.html#a7e827609a1d69c6517f1a3eee0326fc3">BS</a>(inv, phi);</div>
1177
+ <div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;bs done\n&quot;</span>;</div>
1178
+ <div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; <span class="comment">// 0:[0,10] 1:[0,10] 2:[-00,+00]</span></div>
1179
+ <div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; <span class="comment">// assert(resRSY == resBS &amp;&amp; resBS == resBilateral);</span></div>
1180
+ <div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> r : resBS.<a class="code" href="classSVF_1_1IntervalESBase.html#a903797577ba99ef57879774a3849bbfe">getVarToVal</a>())</div>
1181
+ <div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160; {</div>
1182
+ <div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; r.first &lt;&lt; <span class="stringliteral">&quot; &quot;</span> &lt;&lt; r.second &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
1183
+ <div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160; }</div>
1184
+ <div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160; <span class="comment">// ground truth</span></div>
1185
+ <div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160; <a class="code" href="classSVF_1_1IntervalESBase.html#a02e3d5f7074c4f77338edc9a7add95d8">IntervalESBase::VarToValMap</a> intendedRes = {{0, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 10)},</div>
1186
+ <div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160; {1, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 10)},</div>
1187
+ <div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160; {2, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(IntervalValue::minus_infinity(), IntervalValue::plus_infinity())}</div>
1188
+ <div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160; };</div>
1189
+ <div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160; assert(IntervalESBase::eqVarToValMap(resBS.<a class="code" href="classSVF_1_1IntervalESBase.html#a903797577ba99ef57879774a3849bbfe">getVarToVal</a>(), intendedRes) &amp;&amp; <span class="stringliteral">&quot;inconsistency occurs&quot;</span>);</div>
1190
+ <div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160; }</div>
1191
1191
  </div><!-- fragment -->
1192
1192
  </div>
1193
1193
  </div>
@@ -1215,26 +1215,26 @@ Static Public Member Functions</h2></td></tr>
1215
1215
  </div><div class="memdoc">
1216
1216
  <p>top</p>
1217
1217
 
1218
- <p class="definition">Definition at line <a class="el" href="ae_8cpp_source.html#l00573">573</a> of file <a class="el" href="ae_8cpp_source.html">ae.cpp</a>.</p>
1219
- <div class="fragment"><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; {</div>
1220
- <div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; <a class="code" href="classSymblicAbstractionTest.html">SymblicAbstractionTest</a> saTest;</div>
1221
- <div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; saTest.<a class="code" href="classSymblicAbstractionTest.html#acc4852ec2f03ec67e39c67629275cdf5">testRelExeState1_1</a>();</div>
1222
- <div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; saTest.<a class="code" href="classSymblicAbstractionTest.html#a0316fb86d1751ecacf5845ca07764f40">testRelExeState1_2</a>();</div>
1223
- <div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; </div>
1224
- <div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; saTest.<a class="code" href="classSymblicAbstractionTest.html#a32fbde1fbb997be55abfdc308de68fc1">testRelExeState2_1</a>();</div>
1225
- <div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; saTest.<a class="code" href="classSymblicAbstractionTest.html#a40b9879a5465f960bbd4fad6654304aa">testRelExeState2_2</a>();</div>
1226
- <div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; saTest.<a class="code" href="classSymblicAbstractionTest.html#a7c319b15dd3bd82a7c805ba6dd60beab">testRelExeState2_3</a>();</div>
1227
- <div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160;<span class="comment">// saTest.testRelExeState2_4(); /// 10000</span></div>
1228
- <div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160;<span class="comment">// saTest.testRelExeState2_5(); /// 100000</span></div>
1229
- <div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; </div>
1230
- <div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; saTest.<a class="code" href="classSymblicAbstractionTest.html#ac3016e7a57f46af01d20de7e785a4cce">testRelExeState3_1</a>();</div>
1231
- <div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; saTest.<a class="code" href="classSymblicAbstractionTest.html#a56541a5e9bc61f092ee3c48700f00bf7">testRelExeState3_2</a>();</div>
1232
- <div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160;<span class="comment">// saTest.testRelExeState3_3(); /// 10000</span></div>
1233
- <div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160;<span class="comment">// saTest.testRelExeState3_4(); /// 100000</span></div>
1234
- <div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160; </div>
1235
- <div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;start top\n&quot;</span>;</div>
1236
- <div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160; saTest.<a class="code" href="classSymblicAbstractionTest.html#a986b2278abd2ee64507fa769a66c999c">testRelExeState4_1</a>(); </div>
1237
- <div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160; }</div>
1218
+ <p class="definition">Definition at line <a class="el" href="ae_8cpp_source.html#l00599">599</a> of file <a class="el" href="ae_8cpp_source.html">ae.cpp</a>.</p>
1219
+ <div class="fragment"><div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; {</div>
1220
+ <div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160; <a class="code" href="classSymblicAbstractionTest.html">SymblicAbstractionTest</a> saTest;</div>
1221
+ <div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160; saTest.<a class="code" href="classSymblicAbstractionTest.html#acc4852ec2f03ec67e39c67629275cdf5">testRelExeState1_1</a>();</div>
1222
+ <div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160; saTest.<a class="code" href="classSymblicAbstractionTest.html#a0316fb86d1751ecacf5845ca07764f40">testRelExeState1_2</a>();</div>
1223
+ <div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160; </div>
1224
+ <div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160; saTest.<a class="code" href="classSymblicAbstractionTest.html#a32fbde1fbb997be55abfdc308de68fc1">testRelExeState2_1</a>();</div>
1225
+ <div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160; saTest.<a class="code" href="classSymblicAbstractionTest.html#a40b9879a5465f960bbd4fad6654304aa">testRelExeState2_2</a>();</div>
1226
+ <div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160; saTest.<a class="code" href="classSymblicAbstractionTest.html#a7c319b15dd3bd82a7c805ba6dd60beab">testRelExeState2_3</a>();</div>
1227
+ <div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160; <span class="comment">// saTest.testRelExeState2_4(); /// 10000</span></div>
1228
+ <div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160; <span class="comment">// saTest.testRelExeState2_5(); /// 100000</span></div>
1229
+ <div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160; </div>
1230
+ <div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160; saTest.<a class="code" href="classSymblicAbstractionTest.html#ac3016e7a57f46af01d20de7e785a4cce">testRelExeState3_1</a>();</div>
1231
+ <div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160; saTest.<a class="code" href="classSymblicAbstractionTest.html#a56541a5e9bc61f092ee3c48700f00bf7">testRelExeState3_2</a>();</div>
1232
+ <div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160; <span class="comment">// saTest.testRelExeState3_3(); /// 10000</span></div>
1233
+ <div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160; <span class="comment">// saTest.testRelExeState3_4(); /// 100000</span></div>
1234
+ <div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160; </div>
1235
+ <div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;start top\n&quot;</span>;</div>
1236
+ <div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160; saTest.<a class="code" href="classSymblicAbstractionTest.html#a986b2278abd2ee64507fa769a66c999c">testRelExeState4_1</a>(); </div>
1237
+ <div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160; }</div>
1238
1238
  </div><!-- fragment -->
1239
1239
  </div>
1240
1240
  </div>
@@ -1242,36 +1242,36 @@ Static Public Member Functions</h2></td></tr>
1242
1242
  <li>/home/runner/work/SVF/SVF/svf-llvm/tools/AE/<a class="el" href="ae_8cpp_source.html">ae.cpp</a></li>
1243
1243
  </ul>
1244
1244
  </div><!-- contents -->
1245
- <div class="ttc" id="aclassSymblicAbstractionTest_html_a40b9879a5465f960bbd4fad6654304aa"><div class="ttname"><a href="classSymblicAbstractionTest.html#a40b9879a5465f960bbd4fad6654304aa">SymblicAbstractionTest::testRelExeState2_2</a></div><div class="ttdeci">void testRelExeState2_2()</div><div class="ttdef"><b>Definition:</b> <a href="ae_8cpp_source.html#l00186">ae.cpp:186</a></div></div>
1246
- <div class="ttc" id="aclassSymblicAbstractionTest_html_a56541a5e9bc61f092ee3c48700f00bf7"><div class="ttname"><a href="classSymblicAbstractionTest.html#a56541a5e9bc61f092ee3c48700f00bf7">SymblicAbstractionTest::testRelExeState3_2</a></div><div class="ttdeci">void testRelExeState3_2()</div><div class="ttdef"><b>Definition:</b> <a href="ae_8cpp_source.html#l00403">ae.cpp:403</a></div></div>
1247
- <div class="ttc" id="aclassSymblicAbstractionTest_html_acc4852ec2f03ec67e39c67629275cdf5"><div class="ttname"><a href="classSymblicAbstractionTest.html#acc4852ec2f03ec67e39c67629275cdf5">SymblicAbstractionTest::testRelExeState1_1</a></div><div class="ttdeci">void testRelExeState1_1()</div><div class="ttdef"><b>Definition:</b> <a href="ae_8cpp_source.html#l00075">ae.cpp:75</a></div></div>
1248
- <div class="ttc" id="aclassSymblicAbstractionTest_html_ab41926db0c2711a98319c8d544c7c7e2"><div class="ttname"><a href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">SymblicAbstractionTest::getContext</a></div><div class="ttdeci">static z3::context &amp; getContext()</div><div class="ttdef"><b>Definition:</b> <a href="ae_8cpp_source.html#l00028">ae.cpp:28</a></div></div>
1249
- <div class="ttc" id="aclassSymblicAbstractionTest_html"><div class="ttname"><a href="classSymblicAbstractionTest.html">SymblicAbstractionTest</a></div><div class="ttdef"><b>Definition:</b> <a href="ae_8cpp_source.html#l00021">ae.cpp:21</a></div></div>
1245
+ <div class="ttc" id="aclassSymblicAbstractionTest_html_a40b9879a5465f960bbd4fad6654304aa"><div class="ttname"><a href="classSymblicAbstractionTest.html#a40b9879a5465f960bbd4fad6654304aa">SymblicAbstractionTest::testRelExeState2_2</a></div><div class="ttdeci">void testRelExeState2_2()</div><div class="ttdef"><b>Definition:</b> <a href="ae_8cpp_source.html#l00212">ae.cpp:212</a></div></div>
1246
+ <div class="ttc" id="aclassSymblicAbstractionTest_html_a56541a5e9bc61f092ee3c48700f00bf7"><div class="ttname"><a href="classSymblicAbstractionTest.html#a56541a5e9bc61f092ee3c48700f00bf7">SymblicAbstractionTest::testRelExeState3_2</a></div><div class="ttdeci">void testRelExeState3_2()</div><div class="ttdef"><b>Definition:</b> <a href="ae_8cpp_source.html#l00429">ae.cpp:429</a></div></div>
1247
+ <div class="ttc" id="aclassSymblicAbstractionTest_html_acc4852ec2f03ec67e39c67629275cdf5"><div class="ttname"><a href="classSymblicAbstractionTest.html#acc4852ec2f03ec67e39c67629275cdf5">SymblicAbstractionTest::testRelExeState1_1</a></div><div class="ttdeci">void testRelExeState1_1()</div><div class="ttdef"><b>Definition:</b> <a href="ae_8cpp_source.html#l00101">ae.cpp:101</a></div></div>
1248
+ <div class="ttc" id="aclassSymblicAbstractionTest_html_ab41926db0c2711a98319c8d544c7c7e2"><div class="ttname"><a href="classSymblicAbstractionTest.html#ab41926db0c2711a98319c8d544c7c7e2">SymblicAbstractionTest::getContext</a></div><div class="ttdeci">static z3::context &amp; getContext()</div><div class="ttdef"><b>Definition:</b> <a href="ae_8cpp_source.html#l00054">ae.cpp:54</a></div></div>
1249
+ <div class="ttc" id="aclassSymblicAbstractionTest_html"><div class="ttname"><a href="classSymblicAbstractionTest.html">SymblicAbstractionTest</a></div><div class="ttdef"><b>Definition:</b> <a href="ae_8cpp_source.html#l00047">ae.cpp:47</a></div></div>
1250
1250
  <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#l00033">RelationSolver.cpp:33</a></div></div>
1251
- <div class="ttc" id="aclassSymblicAbstractionTest_html_a0316fb86d1751ecacf5845ca07764f40"><div class="ttname"><a href="classSymblicAbstractionTest.html#a0316fb86d1751ecacf5845ca07764f40">SymblicAbstractionTest::testRelExeState1_2</a></div><div class="ttdeci">void testRelExeState1_2()</div><div class="ttdef"><b>Definition:</b> <a href="ae_8cpp_source.html#l00109">ae.cpp:109</a></div></div>
1252
- <div class="ttc" id="anamespaceSVF_html_af739db846e47ba6b2fd15eaad31ab7fb"><div class="ttname"><a href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">SVF::Set</a></div><div class="ttdeci">std::unordered_set&lt; Key, Hash, KeyEqual, Allocator &gt; Set</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00097">SVFType.h:97</a></div></div>
1251
+ <div class="ttc" id="aclassSymblicAbstractionTest_html_a0316fb86d1751ecacf5845ca07764f40"><div class="ttname"><a href="classSymblicAbstractionTest.html#a0316fb86d1751ecacf5845ca07764f40">SymblicAbstractionTest::testRelExeState1_2</a></div><div class="ttdeci">void testRelExeState1_2()</div><div class="ttdef"><b>Definition:</b> <a href="ae_8cpp_source.html#l00135">ae.cpp:135</a></div></div>
1252
+ <div class="ttc" id="anamespaceSVF_html_af739db846e47ba6b2fd15eaad31ab7fb"><div class="ttname"><a href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">SVF::Set</a></div><div class="ttdeci">std::unordered_set&lt; Key, Hash, KeyEqual, Allocator &gt; Set</div><div class="ttdef"><b>Definition:</b> <a href="GeneralType_8h_source.html#l00092">GeneralType.h:92</a></div></div>
1253
1253
  <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#l00266">RelationSolver.cpp:266</a></div></div>
1254
- <div class="ttc" id="aclassSymblicAbstractionTest_html_ac3016e7a57f46af01d20de7e785a4cce"><div class="ttname"><a href="classSymblicAbstractionTest.html#ac3016e7a57f46af01d20de7e785a4cce">SymblicAbstractionTest::testRelExeState3_1</a></div><div class="ttdeci">void testRelExeState3_1()</div><div class="ttdef"><b>Definition:</b> <a href="ae_8cpp_source.html#l00361">ae.cpp:361</a></div></div>
1254
+ <div class="ttc" id="aclassSymblicAbstractionTest_html_ac3016e7a57f46af01d20de7e785a4cce"><div class="ttname"><a href="classSymblicAbstractionTest.html#ac3016e7a57f46af01d20de7e785a4cce">SymblicAbstractionTest::testRelExeState3_1</a></div><div class="ttdeci">void testRelExeState3_1()</div><div class="ttdef"><b>Definition:</b> <a href="ae_8cpp_source.html#l00387">ae.cpp:387</a></div></div>
1255
1255
  <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>
1256
1256
  <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>
1257
- <div class="ttc" id="aclassSymblicAbstractionTest_html_a32fbde1fbb997be55abfdc308de68fc1"><div class="ttname"><a href="classSymblicAbstractionTest.html#a32fbde1fbb997be55abfdc308de68fc1">SymblicAbstractionTest::testRelExeState2_1</a></div><div class="ttdeci">void testRelExeState2_1()</div><div class="ttdef"><b>Definition:</b> <a href="ae_8cpp_source.html#l00144">ae.cpp:144</a></div></div>
1257
+ <div class="ttc" id="aclassSymblicAbstractionTest_html_a32fbde1fbb997be55abfdc308de68fc1"><div class="ttname"><a href="classSymblicAbstractionTest.html#a32fbde1fbb997be55abfdc308de68fc1">SymblicAbstractionTest::testRelExeState2_1</a></div><div class="ttdeci">void testRelExeState2_1()</div><div class="ttdef"><b>Definition:</b> <a href="ae_8cpp_source.html#l00170">ae.cpp:170</a></div></div>
1258
1258
  <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#l00196">RelationSolver.cpp:196</a></div></div>
1259
1259
  <div class="ttc" id="aclassSVF_1_1IntervalESBase_html_a02e3d5f7074c4f77338edc9a7add95d8"><div class="ttname"><a href="classSVF_1_1IntervalESBase.html#a02e3d5f7074c4f77338edc9a7add95d8">SVF::IntervalESBase::VarToValMap</a></div><div class="ttdeci">Map&lt; u32_t, IntervalValue &gt; VarToValMap</div><div class="ttdef"><b>Definition:</b> <a href="IntervalExeState_8h_source.html#l00059">IntervalExeState.h:59</a></div></div>
1260
1260
  <div class="ttc" id="aclassSVF_1_1IntervalESBase_html_a2c15de9b10a74fbcb171ff2f328ce7f2"><div class="ttname"><a href="classSVF_1_1IntervalESBase.html#a2c15de9b10a74fbcb171ff2f328ce7f2">SVF::IntervalESBase::sliceState</a></div><div class="ttdeci">IntervalESBase sliceState(Set&lt; u32_t &gt; &amp;sl)</div><div class="ttdoc">Copy some values and return a new IntervalExeState.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalExeState_8h_source.html#l00135">IntervalExeState.h:135</a></div></div>
1261
1261
  <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>
1262
1262
  <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#l00111">RelationSolver.cpp:111</a></div></div>
1263
1263
  <div class="ttc" id="aclassSVF_1_1RelationSolver_html"><div class="ttname"><a href="classSVF_1_1RelationSolver.html">SVF::RelationSolver</a></div><div class="ttdef"><b>Definition:</b> <a href="RelationSolver_8h_source.html#l00038">RelationSolver.h:38</a></div></div>
1264
- <div class="ttc" id="aclassSVF_1_1RelExeState_html_a3393f160508c33e68ebedd042d1d296f"><div class="ttname"><a href="classSVF_1_1RelExeState.html#a3393f160508c33e68ebedd042d1d296f">SVF::RelExeState::extractSubVars</a></div><div class="ttdeci">void extractSubVars(const Z3Expr &amp;expr, Set&lt; u32_t &gt; &amp;res)</div><div class="ttdoc">Extract sub SVFVar IDs of a Z3Expr.</div><div class="ttdef"><b>Definition:</b> <a href="RelExeState_8cpp_source.html#l00044">RelExeState.cpp:44</a></div></div>
1265
- <div class="ttc" id="aclassSymblicAbstractionTest_html_abaa1ae92b79979cfabee1a2b8a284f80"><div class="ttname"><a href="classSymblicAbstractionTest.html#abaa1ae92b79979cfabee1a2b8a284f80">SymblicAbstractionTest::RSY_time</a></div><div class="ttdeci">IntervalESBase RSY_time(IntervalESBase &amp;inv, const Z3Expr &amp;phi, RelationSolver &amp;rs)</div><div class="ttdef"><b>Definition:</b> <a href="ae_8cpp_source.html#l00038">ae.cpp:38</a></div></div>
1264
+ <div class="ttc" id="aclassSVF_1_1RelExeState_html_a3393f160508c33e68ebedd042d1d296f"><div class="ttname"><a href="classSVF_1_1RelExeState.html#a3393f160508c33e68ebedd042d1d296f">SVF::RelExeState::extractSubVars</a></div><div class="ttdeci">void extractSubVars(const Z3Expr &amp;expr, Set&lt; u32_t &gt; &amp;res)</div><div class="ttdoc">Extract sub SVFVar IDs of a Z3Expr.</div><div class="ttdef"><b>Definition:</b> <a href="RelExeState_8cpp_source.html#l00045">RelExeState.cpp:45</a></div></div>
1265
+ <div class="ttc" id="aclassSymblicAbstractionTest_html_abaa1ae92b79979cfabee1a2b8a284f80"><div class="ttname"><a href="classSymblicAbstractionTest.html#abaa1ae92b79979cfabee1a2b8a284f80">SymblicAbstractionTest::RSY_time</a></div><div class="ttdeci">IntervalESBase RSY_time(IntervalESBase &amp;inv, const Z3Expr &amp;phi, RelationSolver &amp;rs)</div><div class="ttdef"><b>Definition:</b> <a href="ae_8cpp_source.html#l00064">ae.cpp:64</a></div></div>
1266
1266
  <div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_aed0b0b9f035057552a6a82154fd88e61"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVF::SVFUtil::outs</a></div><div class="ttdeci">std::ostream &amp; outs()</div><div class="ttdoc">Overwrite llvm::outs()</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00050">SVFUtil.h:50</a></div></div>
1267
1267
  <div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_a05dc00b2bd9a8176aae31b6cfffe725d"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a05dc00b2bd9a8176aae31b6cfffe725d">SVF::SVFUtil::sucMsg</a></div><div class="ttdeci">std::string sucMsg(const std::string &amp;msg)</div><div class="ttdoc">Returns successful message by converting a string into green string output.</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00053">SVFUtil.cpp:53</a></div></div>
1268
- <div class="ttc" id="aclassSymblicAbstractionTest_html_ad6525df45acfeb1c9c31fc54219a4217"><div class="ttname"><a href="classSymblicAbstractionTest.html#ad6525df45acfeb1c9c31fc54219a4217">SymblicAbstractionTest::Bilateral_time</a></div><div class="ttdeci">IntervalESBase Bilateral_time(IntervalESBase &amp;inv, const Z3Expr &amp;phi, RelationSolver &amp;rs)</div><div class="ttdef"><b>Definition:</b> <a href="ae_8cpp_source.html#l00050">ae.cpp:50</a></div></div>
1268
+ <div class="ttc" id="aclassSymblicAbstractionTest_html_ad6525df45acfeb1c9c31fc54219a4217"><div class="ttname"><a href="classSymblicAbstractionTest.html#ad6525df45acfeb1c9c31fc54219a4217">SymblicAbstractionTest::Bilateral_time</a></div><div class="ttdeci">IntervalESBase Bilateral_time(IntervalESBase &amp;inv, const Z3Expr &amp;phi, RelationSolver &amp;rs)</div><div class="ttdef"><b>Definition:</b> <a href="ae_8cpp_source.html#l00076">ae.cpp:76</a></div></div>
1269
1269
  <div class="ttc" id="aclassSVF_1_1RelExeState_html"><div class="ttname"><a href="classSVF_1_1RelExeState.html">SVF::RelExeState</a></div><div class="ttdef"><b>Definition:</b> <a href="RelExeState_8h_source.html#l00039">RelExeState.h:39</a></div></div>
1270
- <div class="ttc" id="aclassSymblicAbstractionTest_html_a61df4b66ebc9b3eb38d773aa375ee759"><div class="ttname"><a href="classSymblicAbstractionTest.html#a61df4b66ebc9b3eb38d773aa375ee759">SymblicAbstractionTest::BS_time</a></div><div class="ttdeci">IntervalESBase BS_time(IntervalESBase &amp;inv, const Z3Expr &amp;phi, RelationSolver &amp;rs)</div><div class="ttdef"><b>Definition:</b> <a href="ae_8cpp_source.html#l00062">ae.cpp:62</a></div></div>
1271
- <div class="ttc" id="aclassSymblicAbstractionTest_html_a986b2278abd2ee64507fa769a66c999c"><div class="ttname"><a href="classSymblicAbstractionTest.html#a986b2278abd2ee64507fa769a66c999c">SymblicAbstractionTest::testRelExeState4_1</a></div><div class="ttdeci">void testRelExeState4_1()</div><div class="ttdef"><b>Definition:</b> <a href="ae_8cpp_source.html#l00528">ae.cpp:528</a></div></div>
1270
+ <div class="ttc" id="aclassSymblicAbstractionTest_html_a61df4b66ebc9b3eb38d773aa375ee759"><div class="ttname"><a href="classSymblicAbstractionTest.html#a61df4b66ebc9b3eb38d773aa375ee759">SymblicAbstractionTest::BS_time</a></div><div class="ttdeci">IntervalESBase BS_time(IntervalESBase &amp;inv, const Z3Expr &amp;phi, RelationSolver &amp;rs)</div><div class="ttdef"><b>Definition:</b> <a href="ae_8cpp_source.html#l00088">ae.cpp:88</a></div></div>
1271
+ <div class="ttc" id="aclassSymblicAbstractionTest_html_a986b2278abd2ee64507fa769a66c999c"><div class="ttname"><a href="classSymblicAbstractionTest.html#a986b2278abd2ee64507fa769a66c999c">SymblicAbstractionTest::testRelExeState4_1</a></div><div class="ttdeci">void testRelExeState4_1()</div><div class="ttdef"><b>Definition:</b> <a href="ae_8cpp_source.html#l00554">ae.cpp:554</a></div></div>
1272
1272
  <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>
1273
- <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="SVFType_8h_source.html#l00102">SVFType.h:102</a></div></div>
1274
- <div class="ttc" id="aclassSymblicAbstractionTest_html_a7c319b15dd3bd82a7c805ba6dd60beab"><div class="ttname"><a href="classSymblicAbstractionTest.html#a7c319b15dd3bd82a7c805ba6dd60beab">SymblicAbstractionTest::testRelExeState2_3</a></div><div class="ttdeci">void testRelExeState2_3()</div><div class="ttdef"><b>Definition:</b> <a href="ae_8cpp_source.html#l00229">ae.cpp:229</a></div></div>
1273
+ <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#l00097">GeneralType.h:97</a></div></div>
1274
+ <div class="ttc" id="aclassSymblicAbstractionTest_html_a7c319b15dd3bd82a7c805ba6dd60beab"><div class="ttname"><a href="classSymblicAbstractionTest.html#a7c319b15dd3bd82a7c805ba6dd60beab">SymblicAbstractionTest::testRelExeState2_3</a></div><div class="ttdeci">void testRelExeState2_3()</div><div class="ttdef"><b>Definition:</b> <a href="ae_8cpp_source.html#l00255">ae.cpp:255</a></div></div>
1275
1275
  <!-- start footer part -->
1276
1276
  <hr class="footer"/><address class="footer"><small>
1277
1277
  Generated by &#160;<a href="http://www.doxygen.org/index.html">