svf-tools 1.0.905 → 1.0.907
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/SVF-doxygen/html/AbstractInterpretation_8cpp.html +217 -0
- package/SVF-doxygen/html/AbstractInterpretation_8cpp_source.html +2093 -0
- package/SVF-doxygen/html/AbstractInterpretation_8h.html +115 -0
- package/SVF-doxygen/html/AbstractInterpretation_8h_source.html +459 -0
- package/SVF-doxygen/html/AbstractState_8cpp.html +84 -0
- package/SVF-doxygen/html/AbstractState_8cpp_source.html +461 -0
- package/SVF-doxygen/html/AbstractState_8h.html +105 -0
- package/SVF-doxygen/html/AbstractState_8h_source.html +891 -0
- package/SVF-doxygen/html/AbstractValue_8h.html +3 -3
- package/SVF-doxygen/html/AbstractValue_8h_source.html +652 -62
- package/SVF-doxygen/html/AddressValue_8h.html +4 -4
- package/SVF-doxygen/html/AddressValue_8h_source.html +180 -177
- package/SVF-doxygen/html/BufOverflowChecker_8cpp_source.html +782 -776
- package/SVF-doxygen/html/BufOverflowChecker_8h.html +1 -1
- package/SVF-doxygen/html/BufOverflowChecker_8h_source.html +19 -19
- package/SVF-doxygen/html/CFLGraph_8h_source.html +3 -3
- package/SVF-doxygen/html/CSC_8h_source.html +1 -1
- package/SVF-doxygen/html/ConsExeState_8cpp_source.html +1 -1
- package/SVF-doxygen/html/ConsExeState_8h_source.html +2 -2
- package/SVF-doxygen/html/ExeState_8cpp.html +1 -1
- package/SVF-doxygen/html/ExeState_8cpp_source.html +2 -2
- package/SVF-doxygen/html/ExeState_8h_source.html +8 -8
- package/SVF-doxygen/html/ICFGSimplification_8h.html +2 -2
- package/SVF-doxygen/html/ICFGSimplification_8h_source.html +17 -18
- package/SVF-doxygen/html/ICFG_8h_source.html +1 -1
- package/SVF-doxygen/html/IntervalValue_8h.html +2 -2
- package/SVF-doxygen/html/IntervalValue_8h_source.html +846 -864
- package/SVF-doxygen/html/LLVMModule_8cpp_source.html +1 -1
- package/SVF-doxygen/html/MSSAMuChi_8h_source.html +1 -1
- package/SVF-doxygen/html/MemRegion_8cpp_source.html +1 -1
- package/SVF-doxygen/html/ObjTypeInference_8cpp_source.html +1 -1
- package/SVF-doxygen/html/PointsTo_8cpp_source.html +3 -3
- package/SVF-doxygen/html/PointsTo_8h_source.html +3 -3
- package/SVF-doxygen/html/RelExeState_8h_source.html +5 -5
- package/SVF-doxygen/html/RelationSolver_8cpp_source.html +67 -68
- package/SVF-doxygen/html/RelationSolver_8h.html +1 -1
- package/SVF-doxygen/html/RelationSolver_8h_source.html +17 -17
- package/SVF-doxygen/html/SVFIR2AbsState_8cpp.html +84 -0
- package/SVF-doxygen/html/SVFIR2AbsState_8cpp_source.html +1348 -0
- package/SVF-doxygen/html/SVFIR2AbsState_8h.html +100 -0
- package/SVF-doxygen/html/SVFIR2AbsState_8h_source.html +378 -0
- package/SVF-doxygen/html/SVFIR2ConsExeState_8cpp_source.html +9 -8
- package/SVF-doxygen/html/SVFIR2ItvExeState_8cpp_source.html +920 -952
- package/SVF-doxygen/html/SVFIR2ItvExeState_8h.html +2 -3
- package/SVF-doxygen/html/SVFIR2ItvExeState_8h_source.html +202 -207
- package/SVF-doxygen/html/SVFIR2Relation_8cpp.html +1 -1
- package/SVF-doxygen/html/SVFIR2Relation_8cpp_source.html +76 -72
- package/SVF-doxygen/html/SVFType_8cpp_source.html +1 -1
- package/SVF-doxygen/html/SVFType_8h_source.html +1 -1
- package/SVF-doxygen/html/SVFValue_8h_source.html +1 -1
- package/SVF-doxygen/html/SparseBitVector_8h_source.html +3 -3
- package/SVF-doxygen/html/WorkList_8h_source.html +1 -1
- package/SVF-doxygen/html/ae_8cpp.html +57 -57
- package/SVF-doxygen/html/ae_8cpp_source.html +462 -466
- package/SVF-doxygen/html/annotated.html +409 -418
- package/SVF-doxygen/html/classSVF_1_1AEStat-members.html +2 -2
- package/SVF-doxygen/html/classSVF_1_1AEStat.html +184 -190
- package/SVF-doxygen/html/classSVF_1_1AbstractInterpretation-members.html +161 -0
- package/SVF-doxygen/html/classSVF_1_1AbstractInterpretation.html +4325 -0
- package/SVF-doxygen/html/classSVF_1_1AbstractInterpretation.png +0 -0
- package/SVF-doxygen/html/classSVF_1_1AbstractState-members.html +134 -0
- package/SVF-doxygen/html/classSVF_1_1AbstractState.html +2166 -0
- package/SVF-doxygen/html/classSVF_1_1AbstractState.png +0 -0
- package/SVF-doxygen/html/classSVF_1_1AddressValue-members.html +15 -28
- package/SVF-doxygen/html/classSVF_1_1AddressValue.html +171 -230
- package/SVF-doxygen/html/classSVF_1_1BoundedZ3Expr.html +0 -1
- package/SVF-doxygen/html/classSVF_1_1BoundedZ3Expr.png +0 -0
- package/SVF-doxygen/html/classSVF_1_1BufOverflowChecker-members.html +73 -73
- package/SVF-doxygen/html/classSVF_1_1BufOverflowChecker.html +578 -574
- package/SVF-doxygen/html/classSVF_1_1BufOverflowChecker.png +0 -0
- package/SVF-doxygen/html/classSVF_1_1CFLNode-members.html +48 -49
- package/SVF-doxygen/html/classSVF_1_1CFLNode.html +25 -25
- package/SVF-doxygen/html/classSVF_1_1ConsExeState.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1ExeState.html +12 -14
- package/SVF-doxygen/html/classSVF_1_1ExeState.png +0 -0
- package/SVF-doxygen/html/classSVF_1_1FILOWorkList.html +3 -3
- package/SVF-doxygen/html/classSVF_1_1GenericNode.html +22 -8
- package/SVF-doxygen/html/classSVF_1_1GenericNode.png +0 -0
- package/SVF-doxygen/html/classSVF_1_1ICFGSimplification.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1IntervalValue-members.html +50 -64
- package/SVF-doxygen/html/classSVF_1_1IntervalValue.html +349 -459
- package/SVF-doxygen/html/classSVF_1_1LLVMModuleSet.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1ObjTypeInference.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1RelExeState-members.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1RelExeState.html +8 -8
- package/SVF-doxygen/html/classSVF_1_1RelationSolver-members.html +8 -8
- package/SVF-doxygen/html/classSVF_1_1RelationSolver.html +106 -107
- package/SVF-doxygen/html/classSVF_1_1SVFIR2AbsState-members.html +141 -0
- package/SVF-doxygen/html/classSVF_1_1SVFIR2AbsState.html +3137 -0
- package/SVF-doxygen/html/classSVF_1_1SVFIR2ConsExeState.html +5 -5
- package/SVF-doxygen/html/classSVF_1_1SVFIR2ItvExeState-members.html +56 -57
- package/SVF-doxygen/html/classSVF_1_1SVFIR2ItvExeState.html +1128 -1178
- package/SVF-doxygen/html/classSVF_1_1SVFStat.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1SparseAbstractState-members.html +157 -0
- package/SVF-doxygen/html/classSVF_1_1SparseAbstractState.html +1512 -0
- package/SVF-doxygen/html/classSVF_1_1SparseAbstractState.png +0 -0
- package/SVF-doxygen/html/classSVF_1_1Z3Expr.html +0 -1
- package/SVF-doxygen/html/classSVF_1_1Z3Expr.png +0 -0
- package/SVF-doxygen/html/classSymblicAbstractionTest-members.html +3 -3
- package/SVF-doxygen/html/classSymblicAbstractionTest.html +400 -404
- package/SVF-doxygen/html/classes.html +326 -336
- package/SVF-doxygen/html/dir_2c6fb801affc4b3efe6e1ed5974683f6.html +2 -10
- package/SVF-doxygen/html/dir_81caa96ab1d3de93b353e2bbe80e6067.html +2 -4
- package/SVF-doxygen/html/dir_9a8e7a56f4029a0d9f62b1c6d1f6e85b.html +2 -8
- package/SVF-doxygen/html/dir_fbec400583b4bd6c5f2e89c86c5943a6.html +2 -4
- package/SVF-doxygen/html/fastcluster__dm_8cpp_8inc_source.html +1 -1
- package/SVF-doxygen/html/files.html +18 -27
- package/SVF-doxygen/html/functions.html +33 -56
- package/SVF-doxygen/html/functions_a.html +29 -42
- package/SVF-doxygen/html/functions_b.html +14 -21
- package/SVF-doxygen/html/functions_c.html +42 -52
- package/SVF-doxygen/html/functions_d.html +7 -4
- package/SVF-doxygen/html/functions_e.html +7 -21
- package/SVF-doxygen/html/functions_enum.html +4 -7
- package/SVF-doxygen/html/functions_eval.html +2 -2
- package/SVF-doxygen/html/functions_eval_c.html +0 -3
- package/SVF-doxygen/html/functions_eval_i.html +2 -3
- package/SVF-doxygen/html/functions_eval_m.html +2 -2
- package/SVF-doxygen/html/functions_eval_s.html +2 -5
- package/SVF-doxygen/html/functions_eval_u.html +4 -1
- package/SVF-doxygen/html/functions_f.html +6 -6
- package/SVF-doxygen/html/functions_func.html +24 -31
- package/SVF-doxygen/html/functions_func_b.html +10 -16
- package/SVF-doxygen/html/functions_func_c.html +30 -39
- package/SVF-doxygen/html/functions_func_d.html +1 -1
- package/SVF-doxygen/html/functions_func_e.html +7 -17
- package/SVF-doxygen/html/functions_func_g.html +61 -115
- package/SVF-doxygen/html/functions_func_h.html +22 -24
- package/SVF-doxygen/html/functions_func_i.html +64 -94
- package/SVF-doxygen/html/functions_func_j.html +4 -6
- package/SVF-doxygen/html/functions_func_l.html +9 -23
- package/SVF-doxygen/html/functions_func_m.html +7 -8
- package/SVF-doxygen/html/functions_func_n.html +8 -13
- package/SVF-doxygen/html/functions_func_o.html +57 -48
- package/SVF-doxygen/html/functions_func_p.html +6 -11
- package/SVF-doxygen/html/functions_func_r.html +4 -4
- package/SVF-doxygen/html/functions_func_s.html +35 -50
- package/SVF-doxygen/html/functions_func_t.html +26 -40
- package/SVF-doxygen/html/functions_func_u.html +6 -5
- package/SVF-doxygen/html/functions_func_v.html +2 -9
- package/SVF-doxygen/html/functions_func_w.html +9 -8
- package/SVF-doxygen/html/functions_func_z.html +1 -2
- package/SVF-doxygen/html/functions_func_~.html +10 -22
- package/SVF-doxygen/html/functions_g.html +61 -118
- package/SVF-doxygen/html/functions_h.html +21 -23
- package/SVF-doxygen/html/functions_i.html +76 -106
- package/SVF-doxygen/html/functions_j.html +4 -6
- package/SVF-doxygen/html/functions_k.html +0 -6
- package/SVF-doxygen/html/functions_l.html +11 -25
- package/SVF-doxygen/html/functions_m.html +8 -9
- package/SVF-doxygen/html/functions_n.html +14 -17
- package/SVF-doxygen/html/functions_o.html +71 -90
- package/SVF-doxygen/html/functions_p.html +31 -30
- package/SVF-doxygen/html/functions_r.html +11 -15
- package/SVF-doxygen/html/functions_rela.html +2 -3
- package/SVF-doxygen/html/functions_rela_b.html +0 -1
- package/SVF-doxygen/html/functions_rela_e.html +0 -1
- package/SVF-doxygen/html/functions_rela_i.html +0 -2
- package/SVF-doxygen/html/functions_rela_l.html +0 -1
- package/SVF-doxygen/html/functions_rela_o.html +0 -18
- package/SVF-doxygen/html/functions_rela_r.html +2 -2
- package/SVF-doxygen/html/functions_rela_s.html +4 -9
- package/SVF-doxygen/html/functions_s.html +45 -70
- package/SVF-doxygen/html/functions_t.html +29 -45
- package/SVF-doxygen/html/functions_type.html +0 -5
- package/SVF-doxygen/html/functions_type_c.html +1 -1
- package/SVF-doxygen/html/functions_type_k.html +0 -6
- package/SVF-doxygen/html/functions_type_l.html +4 -3
- package/SVF-doxygen/html/functions_type_t.html +0 -3
- package/SVF-doxygen/html/functions_type_v.html +3 -5
- package/SVF-doxygen/html/functions_u.html +8 -4
- package/SVF-doxygen/html/functions_v.html +11 -20
- package/SVF-doxygen/html/functions_vars.html +33 -56
- package/SVF-doxygen/html/functions_vars_a.html +3 -0
- package/SVF-doxygen/html/functions_vars_g.html +2 -5
- package/SVF-doxygen/html/functions_vars_i.html +3 -0
- package/SVF-doxygen/html/functions_vars_t.html +1 -0
- package/SVF-doxygen/html/functions_w.html +11 -10
- package/SVF-doxygen/html/functions_z.html +1 -2
- package/SVF-doxygen/html/functions_~.html +10 -22
- package/SVF-doxygen/html/globals.html +2 -2
- package/SVF-doxygen/html/globals_defs.html +1 -4
- package/SVF-doxygen/html/globals_n.html +2 -5
- package/SVF-doxygen/html/globals_s.html +1 -1
- package/SVF-doxygen/html/globals_vars.html +5 -5
- package/SVF-doxygen/html/globals_z.html +3 -3
- package/SVF-doxygen/html/hierarchy.html +622 -631
- package/SVF-doxygen/html/namespaceSVF.html +449 -458
- package/SVF-doxygen/html/search/all_0.js +155 -161
- package/SVF-doxygen/html/search/all_1.js +502 -503
- package/SVF-doxygen/html/search/all_10.js +325 -326
- package/SVF-doxygen/html/search/all_11.js +227 -227
- package/SVF-doxygen/html/search/all_12.js +563 -574
- package/SVF-doxygen/html/search/all_13.js +206 -208
- package/SVF-doxygen/html/search/all_14.js +74 -73
- package/SVF-doxygen/html/search/all_15.js +175 -176
- package/SVF-doxygen/html/search/all_16.js +77 -77
- package/SVF-doxygen/html/search/all_17.js +1 -1
- package/SVF-doxygen/html/search/all_18.js +1 -1
- package/SVF-doxygen/html/search/all_19.js +27 -27
- package/SVF-doxygen/html/search/all_1a.js +175 -179
- package/SVF-doxygen/html/search/all_2.js +180 -182
- package/SVF-doxygen/html/search/all_3.js +636 -642
- package/SVF-doxygen/html/search/all_4.js +237 -236
- package/SVF-doxygen/html/search/all_5.js +120 -126
- package/SVF-doxygen/html/search/all_6.js +236 -236
- package/SVF-doxygen/html/search/all_7.js +1040 -1056
- package/SVF-doxygen/html/search/all_8.js +211 -215
- package/SVF-doxygen/html/search/all_9.js +631 -638
- package/SVF-doxygen/html/search/all_a.js +46 -46
- package/SVF-doxygen/html/search/all_b.js +24 -26
- package/SVF-doxygen/html/search/all_c.js +113 -115
- package/SVF-doxygen/html/search/all_d.js +205 -205
- package/SVF-doxygen/html/search/all_e.js +207 -209
- package/SVF-doxygen/html/search/all_f.js +122 -122
- package/SVF-doxygen/html/search/classes_0.js +29 -28
- package/SVF-doxygen/html/search/classes_1.js +11 -11
- package/SVF-doxygen/html/search/classes_10.js +72 -74
- package/SVF-doxygen/html/search/classes_11.js +14 -14
- package/SVF-doxygen/html/search/classes_12.js +2 -2
- package/SVF-doxygen/html/search/classes_13.js +10 -10
- package/SVF-doxygen/html/search/classes_14.js +19 -19
- package/SVF-doxygen/html/search/classes_15.js +1 -1
- package/SVF-doxygen/html/search/classes_2.js +72 -73
- package/SVF-doxygen/html/search/classes_3.js +35 -35
- package/SVF-doxygen/html/search/classes_4.js +7 -8
- package/SVF-doxygen/html/search/classes_5.js +28 -28
- package/SVF-doxygen/html/search/classes_6.js +98 -98
- package/SVF-doxygen/html/search/classes_7.js +34 -38
- package/SVF-doxygen/html/search/classes_8.js +57 -59
- package/SVF-doxygen/html/search/classes_9.js +1 -1
- package/SVF-doxygen/html/search/classes_a.js +12 -12
- package/SVF-doxygen/html/search/classes_b.js +29 -29
- package/SVF-doxygen/html/search/classes_c.js +6 -6
- package/SVF-doxygen/html/search/classes_d.js +19 -19
- package/SVF-doxygen/html/search/classes_e.js +36 -36
- package/SVF-doxygen/html/search/classes_f.js +25 -25
- package/SVF-doxygen/html/search/defines_0.js +3 -3
- package/SVF-doxygen/html/search/defines_1.js +3 -3
- package/SVF-doxygen/html/search/defines_10.js +2 -2
- package/SVF-doxygen/html/search/defines_2.js +30 -30
- package/SVF-doxygen/html/search/defines_3.js +20 -20
- package/SVF-doxygen/html/search/defines_4.js +3 -3
- package/SVF-doxygen/html/search/defines_5.js +4 -4
- package/SVF-doxygen/html/search/defines_6.js +2 -2
- package/SVF-doxygen/html/search/defines_7.js +5 -5
- package/SVF-doxygen/html/search/defines_8.js +11 -11
- package/SVF-doxygen/html/search/defines_9.js +9 -9
- package/SVF-doxygen/html/search/defines_a.js +2 -2
- package/SVF-doxygen/html/search/defines_b.js +1 -1
- package/SVF-doxygen/html/search/defines_c.js +3 -4
- package/SVF-doxygen/html/search/defines_d.js +2 -2
- package/SVF-doxygen/html/search/defines_e.js +8 -8
- package/SVF-doxygen/html/search/defines_f.js +4 -4
- package/SVF-doxygen/html/search/enums_0.js +3 -4
- package/SVF-doxygen/html/search/enums_1.js +2 -2
- package/SVF-doxygen/html/search/enums_10.js +1 -1
- package/SVF-doxygen/html/search/enums_11.js +1 -1
- package/SVF-doxygen/html/search/enums_2.js +9 -9
- package/SVF-doxygen/html/search/enums_3.js +2 -1
- package/SVF-doxygen/html/search/enums_4.js +3 -4
- package/SVF-doxygen/html/search/enums_5.js +1 -1
- package/SVF-doxygen/html/search/enums_6.js +2 -2
- package/SVF-doxygen/html/search/enums_7.js +2 -2
- package/SVF-doxygen/html/search/enums_8.js +4 -4
- package/SVF-doxygen/html/search/enums_9.js +1 -1
- package/SVF-doxygen/html/search/enums_a.js +1 -1
- package/SVF-doxygen/html/search/enums_b.js +7 -7
- package/SVF-doxygen/html/search/enums_c.js +1 -1
- package/SVF-doxygen/html/search/enums_d.js +4 -4
- package/SVF-doxygen/html/search/enums_e.js +2 -2
- package/SVF-doxygen/html/search/enums_f.js +4 -4
- package/SVF-doxygen/html/search/enumvalues_0.js +15 -15
- package/SVF-doxygen/html/search/enumvalues_1.js +16 -16
- package/SVF-doxygen/html/search/enumvalues_10.js +36 -36
- package/SVF-doxygen/html/search/enumvalues_11.js +6 -5
- package/SVF-doxygen/html/search/enumvalues_12.js +10 -10
- package/SVF-doxygen/html/search/enumvalues_13.js +1 -1
- package/SVF-doxygen/html/search/enumvalues_14.js +1 -1
- package/SVF-doxygen/html/search/enumvalues_15.js +4 -4
- package/SVF-doxygen/html/search/enumvalues_2.js +36 -37
- package/SVF-doxygen/html/search/enumvalues_3.js +13 -13
- package/SVF-doxygen/html/search/enumvalues_4.js +2 -2
- package/SVF-doxygen/html/search/enumvalues_5.js +50 -50
- package/SVF-doxygen/html/search/enumvalues_6.js +6 -6
- package/SVF-doxygen/html/search/enumvalues_7.js +8 -8
- package/SVF-doxygen/html/search/enumvalues_8.js +24 -24
- package/SVF-doxygen/html/search/enumvalues_9.js +6 -6
- package/SVF-doxygen/html/search/enumvalues_a.js +17 -17
- package/SVF-doxygen/html/search/enumvalues_b.js +11 -11
- package/SVF-doxygen/html/search/enumvalues_c.js +5 -5
- package/SVF-doxygen/html/search/enumvalues_d.js +19 -19
- package/SVF-doxygen/html/search/enumvalues_e.js +9 -9
- package/SVF-doxygen/html/search/enumvalues_f.js +48 -49
- package/SVF-doxygen/html/search/files_0.js +18 -16
- package/SVF-doxygen/html/search/files_1.js +9 -9
- package/SVF-doxygen/html/search/files_10.js +8 -8
- package/SVF-doxygen/html/search/files_11.js +8 -8
- package/SVF-doxygen/html/search/files_12.js +2 -2
- package/SVF-doxygen/html/search/files_2.js +51 -53
- package/SVF-doxygen/html/search/files_3.js +14 -14
- package/SVF-doxygen/html/search/files_4.js +3 -5
- package/SVF-doxygen/html/search/files_5.js +13 -13
- package/SVF-doxygen/html/search/files_6.js +10 -10
- package/SVF-doxygen/html/search/files_7.js +15 -17
- package/SVF-doxygen/html/search/files_8.js +13 -13
- package/SVF-doxygen/html/search/files_9.js +18 -18
- package/SVF-doxygen/html/search/files_a.js +3 -3
- package/SVF-doxygen/html/search/files_b.js +4 -4
- package/SVF-doxygen/html/search/files_c.js +20 -20
- package/SVF-doxygen/html/search/files_d.js +4 -4
- package/SVF-doxygen/html/search/files_e.js +57 -62
- package/SVF-doxygen/html/search/files_f.js +8 -8
- package/SVF-doxygen/html/search/functions_0.js +13 -13
- package/SVF-doxygen/html/search/functions_1.js +366 -368
- package/SVF-doxygen/html/search/functions_10.js +139 -140
- package/SVF-doxygen/html/search/functions_11.js +140 -140
- package/SVF-doxygen/html/search/functions_12.js +294 -299
- package/SVF-doxygen/html/search/functions_13.js +72 -73
- package/SVF-doxygen/html/search/functions_14.js +41 -41
- package/SVF-doxygen/html/search/functions_15.js +70 -72
- package/SVF-doxygen/html/search/functions_16.js +38 -38
- package/SVF-doxygen/html/search/functions_17.js +3 -3
- package/SVF-doxygen/html/search/functions_18.js +175 -179
- package/SVF-doxygen/html/search/functions_2.js +92 -94
- package/SVF-doxygen/html/search/functions_3.js +258 -261
- package/SVF-doxygen/html/search/functions_4.js +85 -85
- package/SVF-doxygen/html/search/functions_5.js +54 -57
- package/SVF-doxygen/html/search/functions_6.js +65 -65
- package/SVF-doxygen/html/search/functions_7.js +857 -872
- package/SVF-doxygen/html/search/functions_8.js +162 -162
- package/SVF-doxygen/html/search/functions_9.js +440 -446
- package/SVF-doxygen/html/search/functions_a.js +30 -30
- package/SVF-doxygen/html/search/functions_b.js +2 -2
- package/SVF-doxygen/html/search/functions_c.js +22 -25
- package/SVF-doxygen/html/search/functions_d.js +82 -82
- package/SVF-doxygen/html/search/functions_e.js +34 -36
- package/SVF-doxygen/html/search/functions_f.js +58 -58
- package/SVF-doxygen/html/search/namespaces_0.js +1 -1
- package/SVF-doxygen/html/search/namespaces_1.js +7 -7
- package/SVF-doxygen/html/search/related_0.js +4 -4
- package/SVF-doxygen/html/search/related_1.js +2 -2
- package/SVF-doxygen/html/search/related_2.js +2 -2
- package/SVF-doxygen/html/search/related_3.js +2 -2
- package/SVF-doxygen/html/search/related_4.js +2 -2
- package/SVF-doxygen/html/search/related_5.js +1 -1
- package/SVF-doxygen/html/search/related_6.js +2 -2
- package/SVF-doxygen/html/search/related_7.js +5 -5
- package/SVF-doxygen/html/search/related_8.js +2 -2
- package/SVF-doxygen/html/search/related_9.js +4 -4
- package/SVF-doxygen/html/search/related_a.js +19 -19
- package/SVF-doxygen/html/search/related_b.js +4 -4
- package/SVF-doxygen/html/search/related_c.js +2 -2
- package/SVF-doxygen/html/search/related_d.js +11 -12
- package/SVF-doxygen/html/search/related_e.js +2 -2
- package/SVF-doxygen/html/search/related_f.js +2 -2
- package/SVF-doxygen/html/search/typedefs_0.js +18 -19
- package/SVF-doxygen/html/search/typedefs_1.js +27 -27
- package/SVF-doxygen/html/search/typedefs_10.js +65 -65
- package/SVF-doxygen/html/search/typedefs_11.js +12 -13
- package/SVF-doxygen/html/search/typedefs_12.js +13 -13
- package/SVF-doxygen/html/search/typedefs_13.js +40 -40
- package/SVF-doxygen/html/search/typedefs_14.js +11 -11
- package/SVF-doxygen/html/search/typedefs_2.js +125 -125
- package/SVF-doxygen/html/search/typedefs_3.js +39 -39
- package/SVF-doxygen/html/search/typedefs_4.js +17 -17
- package/SVF-doxygen/html/search/typedefs_5.js +42 -42
- package/SVF-doxygen/html/search/typedefs_6.js +54 -54
- package/SVF-doxygen/html/search/typedefs_7.js +47 -47
- package/SVF-doxygen/html/search/typedefs_8.js +1 -1
- package/SVF-doxygen/html/search/typedefs_9.js +4 -6
- package/SVF-doxygen/html/search/typedefs_a.js +30 -29
- package/SVF-doxygen/html/search/typedefs_b.js +29 -29
- package/SVF-doxygen/html/search/typedefs_c.js +41 -41
- package/SVF-doxygen/html/search/typedefs_d.js +15 -15
- package/SVF-doxygen/html/search/typedefs_e.js +52 -52
- package/SVF-doxygen/html/search/typedefs_f.js +14 -14
- package/SVF-doxygen/html/search/variables_0.js +171 -177
- package/SVF-doxygen/html/search/variables_1.js +78 -77
- package/SVF-doxygen/html/search/variables_10.js +98 -98
- package/SVF-doxygen/html/search/variables_11.js +47 -47
- package/SVF-doxygen/html/search/variables_12.js +93 -93
- package/SVF-doxygen/html/search/variables_13.js +76 -76
- package/SVF-doxygen/html/search/variables_14.js +14 -14
- package/SVF-doxygen/html/search/variables_15.js +49 -49
- package/SVF-doxygen/html/search/variables_16.js +11 -11
- package/SVF-doxygen/html/search/variables_17.js +1 -1
- package/SVF-doxygen/html/search/variables_18.js +17 -17
- package/SVF-doxygen/html/search/variables_2.js +40 -40
- package/SVF-doxygen/html/search/variables_3.js +143 -143
- package/SVF-doxygen/html/search/variables_4.js +51 -51
- package/SVF-doxygen/html/search/variables_5.js +39 -39
- package/SVF-doxygen/html/search/variables_6.js +66 -66
- package/SVF-doxygen/html/search/variables_7.js +33 -34
- package/SVF-doxygen/html/search/variables_8.js +8 -8
- package/SVF-doxygen/html/search/variables_9.js +80 -79
- package/SVF-doxygen/html/search/variables_a.js +4 -4
- package/SVF-doxygen/html/search/variables_b.js +10 -10
- package/SVF-doxygen/html/search/variables_c.js +44 -44
- package/SVF-doxygen/html/search/variables_d.js +58 -58
- package/SVF-doxygen/html/search/variables_e.js +123 -123
- package/SVF-doxygen/html/search/variables_f.js +31 -31
- package/SVF-doxygen/html/structSVF_1_1AbstractValue-members.html +164 -0
- package/SVF-doxygen/html/structSVF_1_1AbstractValue.html +2820 -0
- package/SVF-doxygen/html/structstd_1_1hash_3_01SVF_1_1SparseAbstractState_01_4-members.html +84 -0
- package/SVF-doxygen/html/structstd_1_1hash_3_01SVF_1_1SparseAbstractState_01_4.html +130 -0
- package/SVF-doxygen/html/svf-ex_8cpp.html +25 -25
- package/SVF-doxygen/html/svf-ex_8cpp_source.html +26 -26
- package/package.json +1 -1
- package/svf/include/AE/Core/AbstractState.h +749 -0
- package/svf/include/AE/Core/AbstractValue.h +514 -39
- package/svf/include/AE/Core/AddressValue.h +32 -25
- package/svf/include/AE/Core/IntervalValue.h +10 -24
- package/svf/include/AE/Core/RelExeState.h +1 -1
- package/svf/include/AE/Core/RelationSolver.h +9 -9
- package/svf/include/AE/Svfexe/{AbstractExecution.h → AbstractInterpretation.h} +27 -26
- package/svf/include/AE/Svfexe/BufOverflowChecker.h +5 -5
- package/svf/include/AE/Svfexe/ICFGSimplification.h +1 -2
- package/svf/include/AE/Svfexe/{SVFIR2ItvExeState.h → SVFIR2AbsState.h} +30 -33
- package/svf/lib/AE/Core/AbstractState.cpp +357 -0
- package/svf/lib/AE/Core/RelationSolver.cpp +31 -31
- package/svf/lib/AE/Core/SVFIR2Relation.cpp +17 -16
- package/svf/lib/AE/Svfexe/{AbstractExecution.cpp → AbstractInterpretation.cpp} +166 -156
- package/svf/lib/AE/Svfexe/BufOverflowChecker.cpp +51 -47
- package/svf/lib/AE/Svfexe/{SVFIR2ItvExeState.cpp → SVFIR2AbsState.cpp} +211 -247
- package/svf-llvm/tools/AE/ae.cpp +105 -108
- package/svf-llvm/tools/Example/svf-ex.cpp +2 -2
- package/svf/include/AE/Core/ConsExeState.h +0 -453
- package/svf/include/AE/Core/ExeState.h +0 -304
- package/svf/include/AE/Core/IntervalExeState.h +0 -650
- package/svf/include/AE/Core/SingleAbsValue.h +0 -477
- package/svf/include/AE/Core/SymState.h +0 -221
- package/svf/include/AE/Svfexe/SVFIR2ConsExeState.h +0 -148
- package/svf/lib/AE/Core/ConsExeState.cpp +0 -603
- package/svf/lib/AE/Core/ExeState.cpp +0 -117
- package/svf/lib/AE/Core/IntervalExeState.cpp +0 -329
- package/svf/lib/AE/Core/SymState.cpp +0 -37
- package/svf/lib/AE/Svfexe/SVFIR2ConsExeState.cpp +0 -772
|
@@ -134,11 +134,11 @@ $(function() {
|
|
|
134
134
|
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"hello print\n"</span>;</div>
|
|
135
135
|
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  }</div>
|
|
136
136
|
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  </div>
|
|
137
|
-
<div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="classSymblicAbstractionTest.html#
|
|
138
|
-
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> 
|
|
137
|
+
<div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="classSymblicAbstractionTest.html#a96a651463812ee4cdb597926ba3dc1cf"> 66</a></span>  <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a> <a class="code" href="classSymblicAbstractionTest.html#a96a651463812ee4cdb597926ba3dc1cf">RSY_time</a>(<a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a>& inv, <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>& phi,</div>
|
|
138
|
+
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <a class="code" href="classSVF_1_1RelationSolver.html">RelationSolver</a>& rs)</div>
|
|
139
139
|
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  {</div>
|
|
140
140
|
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="keyword">auto</span> start_time = std::chrono::high_resolution_clock::now();</div>
|
|
141
|
-
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <a class="code" href="
|
|
141
|
+
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a> resRSY = rs.<a class="code" href="classSVF_1_1RelationSolver.html#a0bc76a5f96dab54e1c9678312579d51a">RSY</a>(inv, phi);</div>
|
|
142
142
|
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <span class="keyword">auto</span> end_time = std::chrono::high_resolution_clock::now();</div>
|
|
143
143
|
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <span class="keyword">auto</span> duration = std::chrono::duration_cast<std::chrono::microseconds>(</div>
|
|
144
144
|
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  end_time - start_time);</div>
|
|
@@ -146,11 +146,11 @@ $(function() {
|
|
|
146
146
|
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  << <span class="stringliteral">" microseconds\n"</span>;</div>
|
|
147
147
|
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <span class="keywordflow">return</span> resRSY;</div>
|
|
148
148
|
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  }</div>
|
|
149
|
-
<div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="classSymblicAbstractionTest.html#
|
|
150
|
-
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> 
|
|
149
|
+
<div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="classSymblicAbstractionTest.html#ad9539ad539a0e3848b7ad1d65ebe81fe"> 78</a></span>  <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a> <a class="code" href="classSymblicAbstractionTest.html#ad9539ad539a0e3848b7ad1d65ebe81fe">Bilateral_time</a>(<a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a>& inv, <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>& phi,</div>
|
|
150
|
+
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <a class="code" href="classSVF_1_1RelationSolver.html">RelationSolver</a>& rs)</div>
|
|
151
151
|
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  {</div>
|
|
152
152
|
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <span class="keyword">auto</span> start_time = std::chrono::high_resolution_clock::now();</div>
|
|
153
|
-
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <a class="code" href="
|
|
153
|
+
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a> resBilateral = rs.<a class="code" href="classSVF_1_1RelationSolver.html#a23c59e437950b139dde49f11eb45b63a">bilateral</a>(inv, phi);</div>
|
|
154
154
|
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <span class="keyword">auto</span> end_time = std::chrono::high_resolution_clock::now();</div>
|
|
155
155
|
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <span class="keyword">auto</span> duration = std::chrono::duration_cast<std::chrono::microseconds>(</div>
|
|
156
156
|
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  end_time - start_time);</div>
|
|
@@ -158,11 +158,11 @@ $(function() {
|
|
|
158
158
|
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  << <span class="stringliteral">" microseconds\n"</span>;</div>
|
|
159
159
|
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <span class="keywordflow">return</span> resBilateral;</div>
|
|
160
160
|
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  }</div>
|
|
161
|
-
<div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="classSymblicAbstractionTest.html#
|
|
162
|
-
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> 
|
|
161
|
+
<div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="classSymblicAbstractionTest.html#a00618d1c3ca0c30883aad8f95e9f9f30"> 90</a></span>  <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a> <a class="code" href="classSymblicAbstractionTest.html#a00618d1c3ca0c30883aad8f95e9f9f30">BS_time</a>(<a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a>& inv, <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>& phi,</div>
|
|
162
|
+
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <a class="code" href="classSVF_1_1RelationSolver.html">RelationSolver</a>& rs)</div>
|
|
163
163
|
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  {</div>
|
|
164
164
|
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <span class="keyword">auto</span> start_time = std::chrono::high_resolution_clock::now();</div>
|
|
165
|
-
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <a class="code" href="
|
|
165
|
+
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a> resBS = rs.<a class="code" href="classSVF_1_1RelationSolver.html#a98f7e3ae9f43aea178d77a58ac8e927f">BS</a>(inv, phi);</div>
|
|
166
166
|
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <span class="keyword">auto</span> end_time = std::chrono::high_resolution_clock::now();</div>
|
|
167
167
|
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <span class="keyword">auto</span> duration = std::chrono::duration_cast<std::chrono::microseconds>(</div>
|
|
168
168
|
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  end_time - start_time);</div>
|
|
@@ -174,7 +174,7 @@ $(function() {
|
|
|
174
174
|
<div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="classSymblicAbstractionTest.html#acc4852ec2f03ec67e39c67629275cdf5"> 103</a></span>  <span class="keywordtype">void</span> <a class="code" href="classSymblicAbstractionTest.html#acc4852ec2f03ec67e39c67629275cdf5">testRelExeState1_1</a>()</div>
|
|
175
175
|
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  {</div>
|
|
176
176
|
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <a class="code" href="namespaceSVF_1_1SVFUtil.html#a05dc00b2bd9a8176aae31b6cfffe725d">sucMsg</a>(<span class="stringliteral">"\t SUCCESS :"</span>) << <span class="stringliteral">"test1_1 start\n"</span>;</div>
|
|
177
|
-
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <a class="code" href="
|
|
177
|
+
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a> itv;</div>
|
|
178
178
|
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <a class="code" href="classSVF_1_1RelExeState.html">RelExeState</a> relation;</div>
|
|
179
179
|
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <span class="comment">// var0 := [0, 1];</span></div>
|
|
180
180
|
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  itv[0] = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 1);</div>
|
|
@@ -187,28 +187,28 @@ $(function() {
|
|
|
187
187
|
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<u32_t></a> res;</div>
|
|
188
188
|
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  relation.<a class="code" href="classSVF_1_1RelExeState.html#a3393f160508c33e68ebedd042d1d296f">extractSubVars</a>(relation[1], res);</div>
|
|
189
189
|
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  assert(res == <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<u32_t></a>({0, 1}) && <span class="stringliteral">"inconsistency occurs"</span>);</div>
|
|
190
|
-
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <a class="code" href="
|
|
190
|
+
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a> inv = itv.<a class="code" href="classSVF_1_1AbstractState.html#ae9897b85e3cb2dc675d3a2df76c44878">sliceState</a>(res);</div>
|
|
191
191
|
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <a class="code" href="classSVF_1_1RelationSolver.html">RelationSolver</a> rs;</div>
|
|
192
192
|
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>& relExpr = relation[1];</div>
|
|
193
|
-
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>& initExpr = rs.<a class="code" href="classSVF_1_1RelationSolver.html#
|
|
193
|
+
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>& initExpr = rs.<a class="code" href="classSVF_1_1RelationSolver.html#a04f145c44a67ebda99ccc5a3081239ff">gamma_hat</a>(inv);</div>
|
|
194
194
|
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>& phi = (relExpr && initExpr).simplify();</div>
|
|
195
|
-
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <a class="code" href="
|
|
196
|
-
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <a class="code" href="
|
|
197
|
-
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <a class="code" href="
|
|
195
|
+
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a> resRSY = rs.<a class="code" href="classSVF_1_1RelationSolver.html#a0bc76a5f96dab54e1c9678312579d51a">RSY</a>(inv, phi);</div>
|
|
196
|
+
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a> resBilateral = rs.<a class="code" href="classSVF_1_1RelationSolver.html#a23c59e437950b139dde49f11eb45b63a">bilateral</a>(inv, phi);</div>
|
|
197
|
+
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a> resBS = rs.<a class="code" href="classSVF_1_1RelationSolver.html#a98f7e3ae9f43aea178d77a58ac8e927f">BS</a>(inv, phi);</div>
|
|
198
198
|
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <span class="comment">// 0:[0,1] 1:[1,2]</span></div>
|
|
199
199
|
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  assert(resRSY == resBS && resBS == resBilateral && <span class="stringliteral">"inconsistency occurs"</span>);</div>
|
|
200
|
-
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> r : resRSY.<a class="code" href="
|
|
200
|
+
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> r : resRSY.<a class="code" href="classSVF_1_1AbstractState.html#a4e4525823fd31c718216c698ed6e0a06">getVarToVal</a>())</div>
|
|
201
201
|
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  {</div>
|
|
202
|
-
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << r.first << <span class="stringliteral">" "</span> << r.second << <span class="stringliteral">"\n"</span>;</div>
|
|
202
|
+
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << r.first << <span class="stringliteral">" "</span> << r.second.getInterval() << <span class="stringliteral">"\n"</span>;</div>
|
|
203
203
|
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  }</div>
|
|
204
|
-
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <a class="code" href="
|
|
205
|
-
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  assert(<a class="code" href="
|
|
204
|
+
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <a class="code" href="classSVF_1_1AbstractState.html#ab8e7d112c380f0c3fe66b487af90c03e">AbstractState::VarToAbsValMap</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>
|
|
205
|
+
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  assert(<a class="code" href="classSVF_1_1AbstractState.html#adb1ce2a16c501aefa7c902e9bec012f6">AbstractState::eqVarToValMap</a>(resBS.<a class="code" href="classSVF_1_1AbstractState.html#a4e4525823fd31c718216c698ed6e0a06">getVarToVal</a>(), intendedRes) && <span class="stringliteral">"inconsistency occurs"</span>);</div>
|
|
206
206
|
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  }</div>
|
|
207
207
|
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  </div>
|
|
208
208
|
<div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="classSymblicAbstractionTest.html#a0316fb86d1751ecacf5845ca07764f40"> 137</a></span>  <span class="keywordtype">void</span> <a class="code" href="classSymblicAbstractionTest.html#a0316fb86d1751ecacf5845ca07764f40">testRelExeState1_2</a>()</div>
|
|
209
209
|
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  {</div>
|
|
210
210
|
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"test1_2 start\n"</span>;</div>
|
|
211
|
-
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  <a class="code" href="
|
|
211
|
+
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a> itv;</div>
|
|
212
212
|
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <a class="code" href="classSVF_1_1RelExeState.html">RelExeState</a> relation;</div>
|
|
213
213
|
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <span class="comment">// var0 := [0, 1];</span></div>
|
|
214
214
|
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  relation[0] = getContext().int_const(<span class="stringliteral">"0"</span>);</div>
|
|
@@ -222,28 +222,28 @@ $(function() {
|
|
|
222
222
|
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<u32_t></a> res;</div>
|
|
223
223
|
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  relation.<a class="code" href="classSVF_1_1RelExeState.html#a3393f160508c33e68ebedd042d1d296f">extractSubVars</a>(relation[1], res);</div>
|
|
224
224
|
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  assert(res == <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<u32_t></a>({0, 1}) && <span class="stringliteral">"inconsistency occurs"</span>);</div>
|
|
225
|
-
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  <a class="code" href="
|
|
225
|
+
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a> inv = itv.<a class="code" href="classSVF_1_1AbstractState.html#ae9897b85e3cb2dc675d3a2df76c44878">sliceState</a>(res);</div>
|
|
226
226
|
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  <a class="code" href="classSVF_1_1RelationSolver.html">RelationSolver</a> rs;</div>
|
|
227
227
|
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>& relExpr = relation[1];</div>
|
|
228
|
-
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>& initExpr = rs.<a class="code" href="classSVF_1_1RelationSolver.html#
|
|
228
|
+
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>& initExpr = rs.<a class="code" href="classSVF_1_1RelationSolver.html#a04f145c44a67ebda99ccc5a3081239ff">gamma_hat</a>(inv);</div>
|
|
229
229
|
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>& phi = (relExpr && initExpr).simplify();</div>
|
|
230
|
-
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <a class="code" href="
|
|
231
|
-
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  <a class="code" href="
|
|
232
|
-
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  <a class="code" href="
|
|
230
|
+
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a> resRSY = rs.<a class="code" href="classSVF_1_1RelationSolver.html#a0bc76a5f96dab54e1c9678312579d51a">RSY</a>(inv, phi);</div>
|
|
231
|
+
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a> resBilateral = rs.<a class="code" href="classSVF_1_1RelationSolver.html#a23c59e437950b139dde49f11eb45b63a">bilateral</a>(inv, phi);</div>
|
|
232
|
+
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a> resBS = rs.<a class="code" href="classSVF_1_1RelationSolver.html#a98f7e3ae9f43aea178d77a58ac8e927f">BS</a>(inv, phi);</div>
|
|
233
233
|
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  <span class="comment">// 0:[0,1] 1:[0,2]</span></div>
|
|
234
234
|
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  assert(resRSY == resBS && resBS == resBilateral && <span class="stringliteral">"inconsistency occurs"</span>);</div>
|
|
235
|
-
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> r : resRSY.<a class="code" href="
|
|
235
|
+
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> r : resRSY.<a class="code" href="classSVF_1_1AbstractState.html#a4e4525823fd31c718216c698ed6e0a06">getVarToVal</a>())</div>
|
|
236
236
|
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  {</div>
|
|
237
|
-
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << r.first << <span class="stringliteral">" "</span> << r.second << <span class="stringliteral">"\n"</span>;</div>
|
|
237
|
+
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << r.first << <span class="stringliteral">" "</span> << r.second.getInterval() << <span class="stringliteral">"\n"</span>;</div>
|
|
238
238
|
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  }</div>
|
|
239
|
-
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  <a class="code" href="
|
|
240
|
-
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  assert(<a class="code" href="
|
|
239
|
+
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  <a class="code" href="classSVF_1_1AbstractState.html#ab8e7d112c380f0c3fe66b487af90c03e">AbstractState::VarToAbsValMap</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>
|
|
240
|
+
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  assert(<a class="code" href="classSVF_1_1AbstractState.html#adb1ce2a16c501aefa7c902e9bec012f6">AbstractState::eqVarToValMap</a>(resBS.<a class="code" href="classSVF_1_1AbstractState.html#a4e4525823fd31c718216c698ed6e0a06">getVarToVal</a>(), intendedRes) && <span class="stringliteral">"inconsistency occurs"</span>);</div>
|
|
241
241
|
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  }</div>
|
|
242
242
|
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  </div>
|
|
243
243
|
<div class="line"><a name="l00172"></a><span class="lineno"><a class="line" href="classSymblicAbstractionTest.html#a32fbde1fbb997be55abfdc308de68fc1"> 172</a></span>  <span class="keywordtype">void</span> <a class="code" href="classSymblicAbstractionTest.html#a32fbde1fbb997be55abfdc308de68fc1">testRelExeState2_1</a>()</div>
|
|
244
244
|
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  {</div>
|
|
245
245
|
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"test2_1 start\n"</span>;</div>
|
|
246
|
-
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  <a class="code" href="
|
|
246
|
+
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a> itv;</div>
|
|
247
247
|
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  <a class="code" href="classSVF_1_1RelExeState.html">RelExeState</a> relation;</div>
|
|
248
248
|
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  <span class="comment">// var0 := [0, 10];</span></div>
|
|
249
249
|
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  relation[0] = getContext().int_const(<span class="stringliteral">"0"</span>);</div>
|
|
@@ -260,32 +260,32 @@ $(function() {
|
|
|
260
260
|
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<u32_t></a> res;</div>
|
|
261
261
|
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  relation.<a class="code" href="classSVF_1_1RelExeState.html#a3393f160508c33e68ebedd042d1d296f">extractSubVars</a>(relation[2], res);</div>
|
|
262
262
|
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  assert(res == <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<u32_t></a>({0, 1, 2}) && <span class="stringliteral">"inconsistency occurs"</span>);</div>
|
|
263
|
-
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  <a class="code" href="
|
|
263
|
+
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a> inv = itv.<a class="code" href="classSVF_1_1AbstractState.html#ae9897b85e3cb2dc675d3a2df76c44878">sliceState</a>(res);</div>
|
|
264
264
|
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  <a class="code" href="classSVF_1_1RelationSolver.html">RelationSolver</a> rs;</div>
|
|
265
265
|
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>& relExpr = relation[2] && relation[1];</div>
|
|
266
|
-
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>& initExpr = rs.<a class="code" href="classSVF_1_1RelationSolver.html#
|
|
266
|
+
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>& initExpr = rs.<a class="code" href="classSVF_1_1RelationSolver.html#a04f145c44a67ebda99ccc5a3081239ff">gamma_hat</a>(inv);</div>
|
|
267
267
|
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>& phi = (relExpr && initExpr).simplify();</div>
|
|
268
|
-
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  <a class="code" href="
|
|
269
|
-
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  <a class="code" href="
|
|
270
|
-
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  <a class="code" href="
|
|
268
|
+
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a> resRSY = rs.<a class="code" href="classSVF_1_1RelationSolver.html#a0bc76a5f96dab54e1c9678312579d51a">RSY</a>(inv, phi);</div>
|
|
269
|
+
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a> resBilateral = rs.<a class="code" href="classSVF_1_1RelationSolver.html#a23c59e437950b139dde49f11eb45b63a">bilateral</a>(inv, phi);</div>
|
|
270
|
+
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a> resBS = rs.<a class="code" href="classSVF_1_1RelationSolver.html#a98f7e3ae9f43aea178d77a58ac8e927f">BS</a>(inv, phi);</div>
|
|
271
271
|
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  <span class="comment">// 0:[0,10] 1:[0,10] 2:[0,0]</span></div>
|
|
272
272
|
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  assert(resRSY == resBS && resBS == resBilateral && <span class="stringliteral">"inconsistency occurs"</span>);</div>
|
|
273
|
-
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> r : resRSY.<a class="code" href="
|
|
273
|
+
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> r : resRSY.<a class="code" href="classSVF_1_1AbstractState.html#a4e4525823fd31c718216c698ed6e0a06">getVarToVal</a>())</div>
|
|
274
274
|
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  {</div>
|
|
275
|
-
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << r.first << <span class="stringliteral">" "</span> << r.second << <span class="stringliteral">"\n"</span>;</div>
|
|
275
|
+
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << r.first << <span class="stringliteral">" "</span> << r.second.getInterval() << <span class="stringliteral">"\n"</span>;</div>
|
|
276
276
|
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  }</div>
|
|
277
277
|
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  <span class="comment">// ground truth</span></div>
|
|
278
|
-
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  <a class="code" href="
|
|
278
|
+
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  <a class="code" href="classSVF_1_1AbstractState.html#ab8e7d112c380f0c3fe66b487af90c03e">AbstractState::VarToAbsValMap</a> intendedRes = {{0, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 10)},</div>
|
|
279
279
|
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  {1, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 10)},</div>
|
|
280
280
|
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  {2, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 0)}</div>
|
|
281
281
|
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  };</div>
|
|
282
|
-
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  assert(<a class="code" href="
|
|
282
|
+
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  assert(<a class="code" href="classSVF_1_1AbstractState.html#adb1ce2a16c501aefa7c902e9bec012f6">AbstractState::eqVarToValMap</a>(resBS.<a class="code" href="classSVF_1_1AbstractState.html#a4e4525823fd31c718216c698ed6e0a06">getVarToVal</a>(), intendedRes) && <span class="stringliteral">"inconsistency occurs"</span>);</div>
|
|
283
283
|
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  }</div>
|
|
284
284
|
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  </div>
|
|
285
285
|
<div class="line"><a name="l00214"></a><span class="lineno"><a class="line" href="classSymblicAbstractionTest.html#a40b9879a5465f960bbd4fad6654304aa"> 214</a></span>  <span class="keywordtype">void</span> <a class="code" href="classSymblicAbstractionTest.html#a40b9879a5465f960bbd4fad6654304aa">testRelExeState2_2</a>()</div>
|
|
286
286
|
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  {</div>
|
|
287
287
|
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"test2_2 start\n"</span>;</div>
|
|
288
|
-
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  <a class="code" href="
|
|
288
|
+
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a> itv;</div>
|
|
289
289
|
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  <a class="code" href="classSVF_1_1RelExeState.html">RelExeState</a> relation;</div>
|
|
290
290
|
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  <span class="comment">// var0 := [0, 100];</span></div>
|
|
291
291
|
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  relation[0] = getContext().int_const(<span class="stringliteral">"0"</span>);</div>
|
|
@@ -303,32 +303,32 @@ $(function() {
|
|
|
303
303
|
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<u32_t></a> res;</div>
|
|
304
304
|
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  relation.<a class="code" href="classSVF_1_1RelExeState.html#a3393f160508c33e68ebedd042d1d296f">extractSubVars</a>(relation[2], res);</div>
|
|
305
305
|
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  assert(res == <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<u32_t></a>({0, 1, 2}) && <span class="stringliteral">"inconsistency occurs"</span>);</div>
|
|
306
|
-
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  <a class="code" href="
|
|
306
|
+
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a> inv = itv.<a class="code" href="classSVF_1_1AbstractState.html#ae9897b85e3cb2dc675d3a2df76c44878">sliceState</a>(res);</div>
|
|
307
307
|
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  <a class="code" href="classSVF_1_1RelationSolver.html">RelationSolver</a> rs;</div>
|
|
308
308
|
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>& relExpr = relation[2] && relation[1];</div>
|
|
309
|
-
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>& initExpr = rs.<a class="code" href="classSVF_1_1RelationSolver.html#
|
|
309
|
+
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>& initExpr = rs.<a class="code" href="classSVF_1_1RelationSolver.html#a04f145c44a67ebda99ccc5a3081239ff">gamma_hat</a>(inv);</div>
|
|
310
310
|
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>& phi = (relExpr && initExpr).simplify();</div>
|
|
311
|
-
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  <a class="code" href="
|
|
312
|
-
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  <a class="code" href="
|
|
313
|
-
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  <a class="code" href="
|
|
311
|
+
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a> resRSY = rs.<a class="code" href="classSVF_1_1RelationSolver.html#a0bc76a5f96dab54e1c9678312579d51a">RSY</a>(inv, phi);</div>
|
|
312
|
+
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a> resBilateral = rs.<a class="code" href="classSVF_1_1RelationSolver.html#a23c59e437950b139dde49f11eb45b63a">bilateral</a>(inv, phi);</div>
|
|
313
|
+
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a> resBS = rs.<a class="code" href="classSVF_1_1RelationSolver.html#a98f7e3ae9f43aea178d77a58ac8e927f">BS</a>(inv, phi);</div>
|
|
314
314
|
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  <span class="comment">// 0:[0,100] 1:[0,100] 2:[0,0]</span></div>
|
|
315
315
|
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  assert(resRSY == resBS && resBS == resBilateral && <span class="stringliteral">"inconsistency occurs"</span>);</div>
|
|
316
|
-
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> r : resRSY.<a class="code" href="
|
|
316
|
+
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> r : resRSY.<a class="code" href="classSVF_1_1AbstractState.html#a4e4525823fd31c718216c698ed6e0a06">getVarToVal</a>())</div>
|
|
317
317
|
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  {</div>
|
|
318
|
-
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << r.first << <span class="stringliteral">" "</span> << r.second << <span class="stringliteral">"\n"</span>;</div>
|
|
318
|
+
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << r.first << <span class="stringliteral">" "</span> << r.second.getInterval() << <span class="stringliteral">"\n"</span>;</div>
|
|
319
319
|
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  }</div>
|
|
320
320
|
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  <span class="comment">// ground truth</span></div>
|
|
321
|
-
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  <a class="code" href="
|
|
321
|
+
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  <a class="code" href="classSVF_1_1AbstractState.html#ab8e7d112c380f0c3fe66b487af90c03e">AbstractState::VarToAbsValMap</a> intendedRes = {{0, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 100)},</div>
|
|
322
322
|
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  {1, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 100)},</div>
|
|
323
323
|
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  {2, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 0)}</div>
|
|
324
324
|
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  };</div>
|
|
325
|
-
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  assert(<a class="code" href="
|
|
325
|
+
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  assert(<a class="code" href="classSVF_1_1AbstractState.html#adb1ce2a16c501aefa7c902e9bec012f6">AbstractState::eqVarToValMap</a>(resBS.<a class="code" href="classSVF_1_1AbstractState.html#a4e4525823fd31c718216c698ed6e0a06">getVarToVal</a>(), intendedRes) && <span class="stringliteral">"inconsistency occurs"</span>);</div>
|
|
326
326
|
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  }</div>
|
|
327
327
|
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  </div>
|
|
328
328
|
<div class="line"><a name="l00257"></a><span class="lineno"><a class="line" href="classSymblicAbstractionTest.html#a7c319b15dd3bd82a7c805ba6dd60beab"> 257</a></span>  <span class="keywordtype">void</span> <a class="code" href="classSymblicAbstractionTest.html#a7c319b15dd3bd82a7c805ba6dd60beab">testRelExeState2_3</a>()</div>
|
|
329
329
|
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  {</div>
|
|
330
330
|
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"test2_3 start\n"</span>;</div>
|
|
331
|
-
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  <a class="code" href="
|
|
331
|
+
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a> itv;</div>
|
|
332
332
|
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  <a class="code" href="classSVF_1_1RelExeState.html">RelExeState</a> relation;</div>
|
|
333
333
|
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  <span class="comment">// var0 := [0, 1000];</span></div>
|
|
334
334
|
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  relation[0] = getContext().int_const(<span class="stringliteral">"0"</span>);</div>
|
|
@@ -346,411 +346,408 @@ $(function() {
|
|
|
346
346
|
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<u32_t></a> res;</div>
|
|
347
347
|
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  relation.<a class="code" href="classSVF_1_1RelExeState.html#a3393f160508c33e68ebedd042d1d296f">extractSubVars</a>(relation[2], res);</div>
|
|
348
348
|
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  assert(res == <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<u32_t></a>({0, 1, 2}) && <span class="stringliteral">"inconsistency occurs"</span>);</div>
|
|
349
|
-
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  <a class="code" href="
|
|
349
|
+
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a> inv = itv.<a class="code" href="classSVF_1_1AbstractState.html#ae9897b85e3cb2dc675d3a2df76c44878">sliceState</a>(res);</div>
|
|
350
350
|
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  <a class="code" href="classSVF_1_1RelationSolver.html">RelationSolver</a> rs;</div>
|
|
351
351
|
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>& relExpr = relation[2] && relation[1];</div>
|
|
352
|
-
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>& initExpr = rs.<a class="code" href="classSVF_1_1RelationSolver.html#
|
|
352
|
+
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>& initExpr = rs.<a class="code" href="classSVF_1_1RelationSolver.html#a04f145c44a67ebda99ccc5a3081239ff">gamma_hat</a>(inv);</div>
|
|
353
353
|
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>& phi = (relExpr && initExpr).simplify();</div>
|
|
354
|
-
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  <a class="code" href="
|
|
355
|
-
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  <a class="code" href="
|
|
356
|
-
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  <a class="code" href="
|
|
354
|
+
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a> resRSY = rs.<a class="code" href="classSVF_1_1RelationSolver.html#a0bc76a5f96dab54e1c9678312579d51a">RSY</a>(inv, phi);</div>
|
|
355
|
+
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a> resBilateral = rs.<a class="code" href="classSVF_1_1RelationSolver.html#a23c59e437950b139dde49f11eb45b63a">bilateral</a>(inv, phi);</div>
|
|
356
|
+
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a> resBS = rs.<a class="code" href="classSVF_1_1RelationSolver.html#a98f7e3ae9f43aea178d77a58ac8e927f">BS</a>(inv, phi);</div>
|
|
357
357
|
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  <span class="comment">// 0:[0,1000] 1:[0,1000] 2:[0,0]</span></div>
|
|
358
358
|
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  assert(resRSY == resBS && resBS == resBilateral && <span class="stringliteral">"inconsistency occurs"</span>);</div>
|
|
359
|
-
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> r : resRSY.<a class="code" href="
|
|
359
|
+
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> r : resRSY.<a class="code" href="classSVF_1_1AbstractState.html#a4e4525823fd31c718216c698ed6e0a06">getVarToVal</a>())</div>
|
|
360
360
|
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  {</div>
|
|
361
|
-
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << r.first << <span class="stringliteral">" "</span> << r.second << <span class="stringliteral">"\n"</span>;</div>
|
|
361
|
+
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << r.first << <span class="stringliteral">" "</span> << r.second.getInterval() << <span class="stringliteral">"\n"</span>;</div>
|
|
362
362
|
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  }</div>
|
|
363
363
|
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  <span class="comment">// ground truth</span></div>
|
|
364
|
-
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  <
|
|
365
|
-
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span> 
|
|
366
|
-
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  {
|
|
367
|
-
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span> 
|
|
368
|
-
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span> 
|
|
369
|
-
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span> 
|
|
370
|
-
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span> 
|
|
371
|
-
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  </div>
|
|
372
|
-
<div class="line"><a name="l00301"></a><span class="lineno"
|
|
373
|
-
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span> 
|
|
374
|
-
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  <a class="code" href="
|
|
375
|
-
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  <a class="code" href="
|
|
376
|
-
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  <
|
|
377
|
-
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  <span class="
|
|
378
|
-
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span> 
|
|
379
|
-
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span> 
|
|
380
|
-
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span> 
|
|
381
|
-
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span> 
|
|
382
|
-
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span> 
|
|
383
|
-
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span> 
|
|
384
|
-
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  <span class="
|
|
385
|
-
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span> 
|
|
386
|
-
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span> 
|
|
387
|
-
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span> 
|
|
388
|
-
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  </div>
|
|
389
|
-
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  <
|
|
390
|
-
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span> 
|
|
391
|
-
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span> 
|
|
392
|
-
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span> 
|
|
393
|
-
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  <a class="code" href="
|
|
394
|
-
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  <a class="code" href="
|
|
395
|
-
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&
|
|
396
|
-
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&
|
|
397
|
-
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  <
|
|
398
|
-
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  <a class="code" href="
|
|
399
|
-
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  <a class="code" href="
|
|
400
|
-
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  <
|
|
401
|
-
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  <span class="
|
|
402
|
-
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span> 
|
|
403
|
-
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span> 
|
|
404
|
-
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span> 
|
|
405
|
-
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span> 
|
|
406
|
-
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span> 
|
|
407
|
-
<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>  <
|
|
408
|
-
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span> 
|
|
409
|
-
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span> 
|
|
410
|
-
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span> 
|
|
411
|
-
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span> 
|
|
412
|
-
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span> 
|
|
413
|
-
<div class="line"><a name="l00342"></a><span class="lineno"> 342</span> 
|
|
414
|
-
<div class="line"><a name="l00343"></a><span class="lineno"> 343</span> 
|
|
415
|
-
<div class="line"><a name="l00344"></a><span class="lineno"> 344</span> 
|
|
416
|
-
<div class="line"><a name="l00345"></a><span class="lineno"
|
|
417
|
-
<div class="line"><a name="l00346"></a><span class="lineno"> 346</span> 
|
|
418
|
-
<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>  <a class="code" href="
|
|
419
|
-
<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>  <
|
|
420
|
-
<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  <
|
|
421
|
-
<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>  <
|
|
422
|
-
<div class="line"><a name="l00351"></a><span class="lineno"> 351</span> 
|
|
423
|
-
<div class="line"><a name="l00352"></a><span class="lineno"> 352</span> 
|
|
424
|
-
<div class="line"><a name="l00353"></a><span class="lineno"> 353</span> 
|
|
425
|
-
<div class="line"><a name="l00354"></a><span class="lineno"> 354</span> 
|
|
426
|
-
<div class="line"><a name="l00355"></a><span class="lineno"> 355</span> 
|
|
427
|
-
<div class="line"><a name="l00356"></a><span class="lineno"> 356</span> 
|
|
428
|
-
<div class="line"><a name="l00357"></a><span class="lineno"> 357</span> 
|
|
429
|
-
<div class="line"><a name="l00358"></a><span class="lineno"> 358</span> 
|
|
430
|
-
<div class="line"><a name="l00359"></a><span class="lineno"> 359</span> 
|
|
431
|
-
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span> 
|
|
432
|
-
<div class="line"><a name="l00361"></a><span class="lineno"> 361</span> 
|
|
433
|
-
<div class="line"><a name="l00362"></a><span class="lineno"> 362</span> 
|
|
434
|
-
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>  <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<u32_t></a>
|
|
435
|
-
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span> 
|
|
436
|
-
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span> 
|
|
437
|
-
<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  <
|
|
438
|
-
<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>  <a class="code" href="classSVF_1_1RelationSolver.html">
|
|
439
|
-
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&
|
|
440
|
-
<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  <
|
|
441
|
-
<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>  <
|
|
442
|
-
<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  <a class="code" href="
|
|
443
|
-
<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  <
|
|
444
|
-
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  <
|
|
445
|
-
<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  <span class="
|
|
446
|
-
<div class="line"><a name="l00375"></a><span class="lineno"> 375</span> 
|
|
447
|
-
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span> 
|
|
448
|
-
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span> 
|
|
449
|
-
<div class="line"><a name="l00378"></a><span class="lineno"> 378</span> 
|
|
450
|
-
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  }
|
|
451
|
-
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span> 
|
|
452
|
-
<div class="line"><a name="l00381"></a><span class="lineno"> 381</span> 
|
|
453
|
-
<div class="line"><a name="l00382"></a><span class="lineno"> 382</span> 
|
|
454
|
-
<div class="line"><a name="l00383"></a><span class="lineno"> 383</span> 
|
|
455
|
-
<div class="line"><a name="l00384"></a><span class="lineno"> 384</span> 
|
|
456
|
-
<div class="line"><a name="l00385"></a><span class="lineno"> 385</span> 
|
|
457
|
-
<div class="line"><a name="l00386"></a><span class="lineno"
|
|
458
|
-
<div class="line"><a name="l00387"></a><span class="lineno"> 387</span> 
|
|
459
|
-
<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  </div>
|
|
460
|
-
<div class="line"><a name="l00389"></a><span class="lineno"
|
|
461
|
-
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span> 
|
|
462
|
-
<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  <
|
|
463
|
-
<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>  <
|
|
464
|
-
<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>  <a class="code" href="
|
|
465
|
-
<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  <span class="comment">//
|
|
466
|
-
<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  relation[
|
|
467
|
-
<div class="line"><a name="l00396"></a><span class="lineno"> 396</span> 
|
|
468
|
-
<div class="line"><a name="l00397"></a><span class="lineno"> 397</span> 
|
|
469
|
-
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span> 
|
|
470
|
-
<div class="line"><a name="l00399"></a><span class="lineno"> 399</span> 
|
|
471
|
-
<div class="line"><a name="l00400"></a><span class="lineno"> 400</span> 
|
|
472
|
-
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span> 
|
|
473
|
-
<div class="line"><a name="l00402"></a><span class="lineno"> 402</span> 
|
|
474
|
-
<div class="line"><a name="l00403"></a><span class="lineno"> 403</span> 
|
|
475
|
-
<div class="line"><a name="l00404"></a><span class="lineno"> 404</span> 
|
|
476
|
-
<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>  <
|
|
477
|
-
<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>  <a class="code" href="
|
|
478
|
-
<div class="line"><a name="l00407"></a><span class="lineno"> 407</span> 
|
|
479
|
-
<div class="line"><a name="l00408"></a><span class="lineno"> 408</span> 
|
|
480
|
-
<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>  <a class="code" href="
|
|
481
|
-
<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  <a class="code" href="
|
|
482
|
-
<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  <
|
|
483
|
-
<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  <
|
|
484
|
-
<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>  <
|
|
485
|
-
<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>  <
|
|
486
|
-
<div class="line"><a name="l00415"></a><span class="lineno"> 415</span> 
|
|
487
|
-
<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>  <
|
|
488
|
-
<div class="line"><a name="l00417"></a><span class="lineno"> 417</span> 
|
|
489
|
-
<div class="line"><a name="l00418"></a><span class="lineno"> 418</span> 
|
|
490
|
-
<div class="line"><a name="l00419"></a><span class="lineno"> 419</span> 
|
|
491
|
-
<div class="line"><a name="l00420"></a><span class="lineno"> 420</span> 
|
|
492
|
-
<div class="line"><a name="l00421"></a><span class="lineno"> 421</span> 
|
|
493
|
-
<div class="line"><a name="l00422"></a><span class="lineno"> 422</span> 
|
|
494
|
-
<div class="line"><a name="l00423"></a><span class="lineno"> 423</span> 
|
|
495
|
-
<div class="line"><a name="l00424"></a><span class="lineno"> 424</span> 
|
|
496
|
-
<div class="line"><a name="l00425"></a><span class="lineno"> 425</span> 
|
|
497
|
-
<div class="line"><a name="l00426"></a><span class="lineno"> 426</span> 
|
|
498
|
-
<div class="line"><a name="l00427"></a><span class="lineno"> 427</span> 
|
|
499
|
-
<div class="line"><a name="l00428"></a><span class="lineno"
|
|
500
|
-
<div class="line"><a name="l00429"></a><span class="lineno"> 429</span> 
|
|
501
|
-
<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>  </div>
|
|
502
|
-
<div class="line"><a name="l00431"></a><span class="lineno"
|
|
503
|
-
<div class="line"><a name="l00432"></a><span class="lineno"> 432</span> 
|
|
504
|
-
<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>  <
|
|
505
|
-
<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>  <
|
|
506
|
-
<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>  <a class="code" href="
|
|
507
|
-
<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>  <span class="comment">//
|
|
508
|
-
<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>  relation[
|
|
509
|
-
<div class="line"><a name="l00438"></a><span class="lineno"> 438</span> 
|
|
510
|
-
<div class="line"><a name="l00439"></a><span class="lineno"> 439</span> 
|
|
511
|
-
<div class="line"><a name="l00440"></a><span class="lineno"> 440</span> 
|
|
512
|
-
<div class="line"><a name="l00441"></a><span class="lineno"> 441</span> 
|
|
513
|
-
<div class="line"><a name="l00442"></a><span class="lineno"> 442</span> 
|
|
514
|
-
<div class="line"><a name="l00443"></a><span class="lineno"> 443</span> 
|
|
515
|
-
<div class="line"><a name="l00444"></a><span class="lineno"> 444</span> 
|
|
516
|
-
<div class="line"><a name="l00445"></a><span class="lineno"> 445</span> 
|
|
517
|
-
<div class="line"><a name="l00446"></a><span class="lineno"> 446</span> 
|
|
518
|
-
<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>  <
|
|
519
|
-
<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>  <a class="code" href="
|
|
520
|
-
<div class="line"><a name="l00449"></a><span class="lineno"> 449</span> 
|
|
521
|
-
<div class="line"><a name="l00450"></a><span class="lineno"> 450</span> 
|
|
522
|
-
<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>  <a class="code" href="
|
|
523
|
-
<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>  <a class="code" href="
|
|
524
|
-
<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>  <
|
|
525
|
-
<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>  <
|
|
526
|
-
<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>  <
|
|
527
|
-
<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>  <
|
|
528
|
-
<div class="line"><a name="l00457"></a><span class="lineno"> 457</span> 
|
|
529
|
-
<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>  <
|
|
530
|
-
<div class="line"><a name="l00459"></a><span class="lineno"> 459</span> 
|
|
531
|
-
<div class="line"><a name="l00460"></a><span class="lineno"> 460</span> 
|
|
532
|
-
<div class="line"><a name="l00461"></a><span class="lineno"> 461</span> 
|
|
533
|
-
<div class="line"><a name="l00462"></a><span class="lineno"> 462</span> 
|
|
534
|
-
<div class="line"><a name="l00463"></a><span class="lineno"> 463</span> 
|
|
535
|
-
<div class="line"><a name="l00464"></a><span class="lineno"> 464</span> 
|
|
536
|
-
<div class="line"><a name="l00465"></a><span class="lineno"> 465</span> 
|
|
537
|
-
<div class="line"><a name="l00466"></a><span class="lineno"> 466</span> 
|
|
538
|
-
<div class="line"><a name="l00467"></a><span class="lineno"> 467</span> 
|
|
539
|
-
<div class="line"><a name="l00468"></a><span class="lineno"> 468</span> 
|
|
540
|
-
<div class="line"><a name="l00469"></a><span class="lineno"> 469</span> 
|
|
541
|
-
<div class="line"><a name="l00470"></a><span class="lineno"
|
|
542
|
-
<div class="line"><a name="l00471"></a><span class="lineno"> 471</span> 
|
|
543
|
-
<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>  </div>
|
|
544
|
-
<div class="line"><a name="l00473"></a><span class="lineno"
|
|
545
|
-
<div class="line"><a name="l00474"></a><span class="lineno"> 474</span> 
|
|
546
|
-
<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>  <
|
|
547
|
-
<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>  <
|
|
548
|
-
<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>  <a class="code" href="
|
|
549
|
-
<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>  <span class="comment">//
|
|
550
|
-
<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>  relation[
|
|
551
|
-
<div class="line"><a name="l00480"></a><span class="lineno"> 480</span> 
|
|
552
|
-
<div class="line"><a name="l00481"></a><span class="lineno"> 481</span> 
|
|
553
|
-
<div class="line"><a name="l00482"></a><span class="lineno"> 482</span> 
|
|
554
|
-
<div class="line"><a name="l00483"></a><span class="lineno"> 483</span> 
|
|
555
|
-
<div class="line"><a name="l00484"></a><span class="lineno"> 484</span> 
|
|
556
|
-
<div class="line"><a name="l00485"></a><span class="lineno"> 485</span> 
|
|
557
|
-
<div class="line"><a name="l00486"></a><span class="lineno"> 486</span> 
|
|
558
|
-
<div class="line"><a name="l00487"></a><span class="lineno"> 487</span> 
|
|
559
|
-
<div class="line"><a name="l00488"></a><span class="lineno"> 488</span> 
|
|
560
|
-
<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>  <
|
|
561
|
-
<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>  <a class="code" href="
|
|
562
|
-
<div class="line"><a name="l00491"></a><span class="lineno"> 491</span> 
|
|
563
|
-
<div class="line"><a name="l00492"></a><span class="lineno"> 492</span> 
|
|
564
|
-
<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>  <a class="code" href="
|
|
565
|
-
<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>  <a class="code" href="
|
|
566
|
-
<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>  <
|
|
567
|
-
<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>  <
|
|
568
|
-
<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>  <
|
|
569
|
-
<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>  <
|
|
570
|
-
<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>  <
|
|
571
|
-
<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>  <a class="code" href="
|
|
572
|
-
<div class="line"><a name="l00501"></a><span class="lineno"> 501</span> 
|
|
573
|
-
<div class="line"><a name="l00502"></a><span class="lineno"> 502</span> 
|
|
574
|
-
<div class="line"><a name="l00503"></a><span class="lineno"> 503</span> 
|
|
575
|
-
<div class="line"><a name="l00504"></a><span class="lineno"> 504</span> 
|
|
576
|
-
<div class="line"><a name="l00505"></a><span class="lineno"> 505</span> 
|
|
577
|
-
<div class="line"><a name="l00506"></a><span class="lineno"> 506</span> 
|
|
578
|
-
<div class="line"><a name="l00507"></a><span class="lineno"> 507</span> 
|
|
579
|
-
<div class="line"><a name="l00508"></a><span class="lineno"> 508</span> 
|
|
580
|
-
<div class="line"><a name="l00509"></a><span class="lineno"> 509</span> 
|
|
581
|
-
<div class="line"><a name="l00510"></a><span class="lineno"> 510</span> 
|
|
582
|
-
<div class="line"><a name="l00511"></a><span class="lineno"> 511</span> 
|
|
583
|
-
<div class="line"><a name="l00512"></a><span class="lineno"> 512</span> 
|
|
584
|
-
<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>  </div>
|
|
585
|
-
<div class="line"><a name="l00514"></a><span class="lineno"
|
|
586
|
-
<div class="line"><a name="l00515"></a><span class="lineno"> 515</span> 
|
|
587
|
-
<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>  <
|
|
588
|
-
<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>  <
|
|
589
|
-
<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>  <a class="code" href="
|
|
590
|
-
<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>  <span class="comment">//
|
|
591
|
-
<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>  relation[
|
|
592
|
-
<div class="line"><a name="l00521"></a><span class="lineno"> 521</span> 
|
|
593
|
-
<div class="line"><a name="l00522"></a><span class="lineno"> 522</span> 
|
|
594
|
-
<div class="line"><a name="l00523"></a><span class="lineno"> 523</span> 
|
|
595
|
-
<div class="line"><a name="l00524"></a><span class="lineno"> 524</span> 
|
|
596
|
-
<div class="line"><a name="l00525"></a><span class="lineno"> 525</span> 
|
|
597
|
-
<div class="line"><a name="l00526"></a><span class="lineno"> 526</span> 
|
|
598
|
-
<div class="line"><a name="l00527"></a><span class="lineno"> 527</span> 
|
|
599
|
-
<div class="line"><a name="l00528"></a><span class="lineno"> 528</span> 
|
|
600
|
-
<div class="line"><a name="l00529"></a><span class="lineno"> 529</span> 
|
|
601
|
-
<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>  <
|
|
602
|
-
<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>  <a class="code" href="
|
|
603
|
-
<div class="line"><a name="l00532"></a><span class="lineno"> 532</span> 
|
|
604
|
-
<div class="line"><a name="l00533"></a><span class="lineno"> 533</span> 
|
|
605
|
-
<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>  <a class="code" href="
|
|
606
|
-
<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>  <a class="code" href="
|
|
607
|
-
<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>  <
|
|
608
|
-
<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>  <
|
|
609
|
-
<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>  <
|
|
610
|
-
<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>  <
|
|
611
|
-
<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>  <
|
|
612
|
-
<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>  <a class="code" href="
|
|
613
|
-
<div class="line"><a name="l00542"></a><span class="lineno"> 542</span> 
|
|
614
|
-
<div class="line"><a name="l00543"></a><span class="lineno"> 543</span> 
|
|
615
|
-
<div class="line"><a name="l00544"></a><span class="lineno"> 544</span> 
|
|
616
|
-
<div class="line"><a name="l00545"></a><span class="lineno"> 545</span> 
|
|
617
|
-
<div class="line"><a name="l00546"></a><span class="lineno"> 546</span> 
|
|
618
|
-
<div class="line"><a name="l00547"></a><span class="lineno"> 547</span> 
|
|
619
|
-
<div class="line"><a name="l00548"></a><span class="lineno"> 548</span> 
|
|
620
|
-
<div class="line"><a name="l00549"></a><span class="lineno"> 549</span> 
|
|
621
|
-
<div class="line"><a name="l00550"></a><span class="lineno"> 550</span> 
|
|
622
|
-
<div class="line"><a name="l00551"></a><span class="lineno"> 551</span> 
|
|
623
|
-
<div class="line"><a name="l00552"></a><span class="lineno"> 552</span> 
|
|
624
|
-
<div class="line"><a name="l00553"></a><span class="lineno"
|
|
625
|
-
<div class="line"><a name="l00554"></a><span class="lineno"> 554</span> 
|
|
626
|
-
<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>  </div>
|
|
627
|
-
<div class="line"><a name="l00556"></a><span class="lineno"
|
|
628
|
-
<div class="line"><a name="l00557"></a><span class="lineno"> 557</span> 
|
|
629
|
-
<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>  <
|
|
630
|
-
<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>  <
|
|
631
|
-
<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>  <a class="code" href="
|
|
632
|
-
<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>  <span class="comment">//
|
|
633
|
-
<div class="line"><a name="l00562"></a><span class="lineno"> 562</span>  relation[
|
|
634
|
-
<div class="line"><a name="l00563"></a><span class="lineno"> 563</span> 
|
|
635
|
-
<div class="line"><a name="l00564"></a><span class="lineno"> 564</span> 
|
|
636
|
-
<div class="line"><a name="l00565"></a><span class="lineno"> 565</span> 
|
|
637
|
-
<div class="line"><a name="l00566"></a><span class="lineno"> 566</span> 
|
|
638
|
-
<div class="line"><a name="l00567"></a><span class="lineno"> 567</span> 
|
|
639
|
-
<div class="line"><a name="l00568"></a><span class="lineno"> 568</span> 
|
|
640
|
-
<div class="line"><a name="l00569"></a><span class="lineno"> 569</span> 
|
|
641
|
-
<div class="line"><a name="l00570"></a><span class="lineno"> 570</span> 
|
|
642
|
-
<div class="line"><a name="l00571"></a><span class="lineno"> 571</span> 
|
|
643
|
-
<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>  <
|
|
644
|
-
<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>  <a class="code" href="
|
|
645
|
-
<div class="line"><a name="l00574"></a><span class="lineno"> 574</span> 
|
|
646
|
-
<div class="line"><a name="l00575"></a><span class="lineno"> 575</span> 
|
|
647
|
-
<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>  <a class="code" href="
|
|
648
|
-
<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>  <a class="code" href="
|
|
649
|
-
<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>  <span class="
|
|
650
|
-
<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>  <
|
|
651
|
-
<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>  <span class="
|
|
652
|
-
<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>  <
|
|
653
|
-
<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>  <a class="code" href="
|
|
654
|
-
<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>  <
|
|
655
|
-
<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>  <
|
|
656
|
-
<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>  <
|
|
657
|
-
<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>  <a class="code" href="
|
|
658
|
-
<div class="line"><a name="l00587"></a><span class="lineno"> 587</span> 
|
|
659
|
-
<div class="line"><a name="l00588"></a><span class="lineno"> 588</span> 
|
|
660
|
-
<div class="line"><a name="l00589"></a><span class="lineno"> 589</span> 
|
|
661
|
-
<div class="line"><a name="l00590"></a><span class="lineno"> 590</span> 
|
|
662
|
-
<div class="line"><a name="l00591"></a><span class="lineno"> 591</span> 
|
|
663
|
-
<div class="line"><a name="l00592"></a><span class="lineno"> 592</span> 
|
|
664
|
-
<div class="line"><a name="l00593"></a><span class="lineno"> 593</span> 
|
|
665
|
-
<div class="line"><a name="l00594"></a><span class="lineno"> 594</span> 
|
|
666
|
-
<div class="line"><a name="l00595"></a><span class="lineno"> 595</span> 
|
|
667
|
-
<div class="line"><a name="l00596"></a><span class="lineno"> 596</span> 
|
|
668
|
-
<div class="line"><a name="l00597"></a><span class="lineno"> 597</span> 
|
|
669
|
-
<div class="line"><a name="l00598"></a><span class="lineno"
|
|
670
|
-
<div class="line"><a name="l00599"></a><span class="lineno"> 599</span> 
|
|
671
|
-
<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>  </div>
|
|
672
|
-
<div class="line"><a name="l00601"></a><span class="lineno"
|
|
673
|
-
<div class="line"><a name="l00602"></a><span class="lineno"> 602</span> 
|
|
674
|
-
<div class="line"><a name="l00603"></a><span class="lineno"> 603</span> 
|
|
675
|
-
<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>  saTest.<a class="code" href="classSymblicAbstractionTest.html#
|
|
676
|
-
<div class="line"><a name="l00605"></a><span class="lineno"> 605</span>  saTest.<a class="code" href="classSymblicAbstractionTest.html#
|
|
677
|
-
<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>  </div>
|
|
678
|
-
<div class="line"><a name="l00607"></a><span class="lineno"> 607</span> 
|
|
679
|
-
<div class="line"><a name="l00608"></a><span class="lineno"> 608</span> 
|
|
680
|
-
<div class="line"><a name="l00609"></a><span class="lineno"> 609</span> 
|
|
681
|
-
<div class="line"><a name="l00610"></a><span class="lineno"> 610</span> 
|
|
682
|
-
<div class="line"><a name="l00611"></a><span class="lineno"> 611</span> 
|
|
683
|
-
<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>  </div>
|
|
684
|
-
<div class="line"><a name="l00613"></a><span class="lineno"> 613</span> 
|
|
685
|
-
<div class="line"><a name="l00614"></a><span class="lineno"> 614</span> 
|
|
686
|
-
<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>  <
|
|
687
|
-
<div class="line"><a name="l00616"></a><span class="lineno"> 616</span> 
|
|
688
|
-
<div class="line"><a name="l00617"></a><span class="lineno"> 617</span> 
|
|
689
|
-
<div class="line"><a name="l00618"></a><span class="lineno"> 618</span> 
|
|
690
|
-
<div class="line"><a name="l00619"></a><span class="lineno"> 619</span> 
|
|
691
|
-
<div class="line"><a name="l00620"></a><span class="lineno"> 620</span> 
|
|
692
|
-
<div class="line"><a name="l00621"></a><span class="lineno"> 621</span> 
|
|
693
|
-
<div class="line"><a name="l00622"></a><span class="lineno"> 622</span> 
|
|
694
|
-
<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>  </div>
|
|
695
|
-
<div class="line"><a name="l00624"></a><span class="lineno"
|
|
696
|
-
<div class="line"><a name="l00625"></a><span class="lineno"> 625</span> 
|
|
697
|
-
<div class="line"><a name="l00626"></a><span class="lineno"> 626</span>  <span class="
|
|
698
|
-
<div class="line"><a name="l00627"></a><span class="lineno"> 627</span> 
|
|
699
|
-
<div class="line"><a name="l00628"></a><span class="lineno"> 628</span> 
|
|
700
|
-
<div class="line"><a name="l00629"></a><span class="lineno"> 629</span> 
|
|
701
|
-
<div class="line"><a name="l00630"></a><span class="lineno"> 630</span> 
|
|
702
|
-
<div class="line"><a name="l00631"></a><span class="lineno"> 631</span> 
|
|
703
|
-
<div class="line"><a name="l00632"></a><span class="lineno"> 632</span> 
|
|
704
|
-
<div class="line"><a name="l00633"></a><span class="lineno"> 633</span>  <span class="
|
|
705
|
-
<div class="line"><a name="l00634"></a><span class="lineno"> 634</span> 
|
|
706
|
-
<div class="line"><a name="l00635"></a><span class="lineno"> 635</span> 
|
|
707
|
-
<div class="line"><a name="l00636"></a><span class="lineno"> 636</span> 
|
|
708
|
-
<div class="line"><a name="l00637"></a><span class="lineno"> 637</span> 
|
|
709
|
-
<div class="line"><a name="l00638"></a><span class="lineno"> 638</span> 
|
|
710
|
-
<div class="line"><a name="l00639"></a><span class="lineno"> 639</span> 
|
|
711
|
-
<div class="line"><a name="l00640"></a><span class="lineno"> 640</span> 
|
|
712
|
-
<div class="line"><a name="l00641"></a><span class="lineno"> 641</span> 
|
|
713
|
-
<div class="line"><a name="l00642"></a><span class="lineno"> 642</span> 
|
|
714
|
-
<div class="line"><a name="l00643"></a><span class="lineno"> 643</span> 
|
|
715
|
-
<div class="line"><a name="l00644"></a><span class="lineno"> 644</span> 
|
|
716
|
-
<div class="line"><a name="l00645"></a><span class="lineno"> 645</span> 
|
|
717
|
-
<div class="line"><a name="l00646"></a><span class="lineno"> 646</span> 
|
|
718
|
-
<div class="line"><a name="l00647"></a><span class="lineno"> 647</span> 
|
|
719
|
-
<div class="line"><a name="l00648"></a><span class="lineno"> 648</span> 
|
|
720
|
-
<div class="line"><a name="l00649"></a><span class="lineno"> 649</span> 
|
|
721
|
-
<div class="line"><a name="l00650"></a><span class="lineno"> 650</span>  </div>
|
|
722
|
-
<div class="line"><a name="l00651"></a><span class="lineno"> 651</span>  <a class="code" href="
|
|
723
|
-
<div class="line"><a name="l00652"></a><span class="lineno"> 652</span>  <a class="code" href="
|
|
724
|
-
<div class="line"><a name="l00653"></a><span class="lineno"> 653</span> 
|
|
725
|
-
<div class="line"><a name="l00654"></a><span class="lineno"> 654</span> 
|
|
726
|
-
<div class="line"><a name="l00655"></a><span class="lineno"> 655</span>  <
|
|
727
|
-
<div class="line"><a name="l00656"></a><span class="lineno"> 656</span> 
|
|
728
|
-
<div class="line"><a name="l00657"></a><span class="lineno"> 657</span> 
|
|
729
|
-
<div class="line"><a name="l00658"></a><span class="lineno"> 658</span> 
|
|
730
|
-
<div class="line"><a name="l00659"></a><span class="lineno"> 659</span> 
|
|
731
|
-
<div class="line"><a name="l00660"></a><span class="lineno"> 660</span> 
|
|
732
|
-
<div class="line"><a name="l00661"></a><span class="lineno"> 661</span> 
|
|
733
|
-
<div class="line"><a name="l00662"></a><span class="lineno"> 662</span>  </div>
|
|
734
|
-
<div class="line"><a name="l00663"></a><span class="lineno"> 663</span> 
|
|
735
|
-
<div class="line"><a name="l00664"></a><span class="lineno"> 664</span> 
|
|
736
|
-
<div class="line"><a name="l00665"></a><span class="lineno"> 665</span> 
|
|
737
|
-
<div class="line"><a name="l00666"></a><span class="lineno"> 666</span> 
|
|
738
|
-
<div class="line"><a name="l00667"></a><span class="lineno"> 667</span> 
|
|
739
|
-
<div class="line"><a name="l00668"></a><span class="lineno"> 668</span> 
|
|
740
|
-
<div class="line"><a name="l00669"></a><span class="lineno"> 669</span> 
|
|
741
|
-
<div class="line"><a name="l00670"></a><span class="lineno"> 670</span> 
|
|
364
|
+
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  <a class="code" href="classSVF_1_1AbstractState.html#ab8e7d112c380f0c3fe66b487af90c03e">AbstractState::VarToAbsValMap</a> intendedRes = {{0, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 1000)},</div>
|
|
365
|
+
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  {1, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 1000)},</div>
|
|
366
|
+
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  {2, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 0)}</div>
|
|
367
|
+
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  };</div>
|
|
368
|
+
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  assert(<a class="code" href="classSVF_1_1AbstractState.html#adb1ce2a16c501aefa7c902e9bec012f6">AbstractState::eqVarToValMap</a>(resBS.<a class="code" href="classSVF_1_1AbstractState.html#a4e4525823fd31c718216c698ed6e0a06">getVarToVal</a>(), intendedRes) && <span class="stringliteral">"inconsistency occurs"</span>);</div>
|
|
369
|
+
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  }</div>
|
|
370
|
+
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  </div>
|
|
371
|
+
<div class="line"><a name="l00300"></a><span class="lineno"><a class="line" href="classSymblicAbstractionTest.html#a2e3d2a2d9a78fffa641523a2e4809c02"> 300</a></span>  <span class="keywordtype">void</span> <a class="code" href="classSymblicAbstractionTest.html#a2e3d2a2d9a78fffa641523a2e4809c02">testRelExeState2_4</a>()</div>
|
|
372
|
+
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  {</div>
|
|
373
|
+
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"test2_4 start\n"</span>;</div>
|
|
374
|
+
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a> itv;</div>
|
|
375
|
+
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  <a class="code" href="classSVF_1_1RelExeState.html">RelExeState</a> relation;</div>
|
|
376
|
+
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  <span class="comment">// var0 := [0, 10000];</span></div>
|
|
377
|
+
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  relation[0] = getContext().int_const(<span class="stringliteral">"0"</span>);</div>
|
|
378
|
+
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  itv[0] = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 10000);</div>
|
|
379
|
+
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  <span class="comment">// var1 := var0;</span></div>
|
|
380
|
+
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  relation[1] =</div>
|
|
381
|
+
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  getContext().int_const(<span class="stringliteral">"1"</span>) == getContext().int_const(<span class="stringliteral">"0"</span>);</div>
|
|
382
|
+
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  itv[1] = itv[0];</div>
|
|
383
|
+
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  <span class="comment">// var2 := var1 - var0;</span></div>
|
|
384
|
+
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  relation[2] = getContext().int_const(<span class="stringliteral">"2"</span>) ==</div>
|
|
385
|
+
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  getContext().int_const(<span class="stringliteral">"1"</span>) - getContext().int_const(<span class="stringliteral">"0"</span>);</div>
|
|
386
|
+
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  itv[2] = itv[1] - itv[0];</div>
|
|
387
|
+
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  </div>
|
|
388
|
+
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  <span class="comment">// Test extract sub vars</span></div>
|
|
389
|
+
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<u32_t></a> res;</div>
|
|
390
|
+
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  relation.<a class="code" href="classSVF_1_1RelExeState.html#a3393f160508c33e68ebedd042d1d296f">extractSubVars</a>(relation[2], res);</div>
|
|
391
|
+
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  assert(res == <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<u32_t></a>({0, 1, 2}) && <span class="stringliteral">"inconsistency occurs"</span>);</div>
|
|
392
|
+
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a> inv = itv.<a class="code" href="classSVF_1_1AbstractState.html#ae9897b85e3cb2dc675d3a2df76c44878">sliceState</a>(res);</div>
|
|
393
|
+
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  <a class="code" href="classSVF_1_1RelationSolver.html">RelationSolver</a> rs;</div>
|
|
394
|
+
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>& relExpr = relation[2] && relation[1];</div>
|
|
395
|
+
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>& initExpr = rs.<a class="code" href="classSVF_1_1RelationSolver.html#a04f145c44a67ebda99ccc5a3081239ff">gamma_hat</a>(inv);</div>
|
|
396
|
+
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>& phi = (relExpr && initExpr).simplify();</div>
|
|
397
|
+
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a> resRSY = RSY_time(inv, phi, rs);</div>
|
|
398
|
+
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a> resBilateral = Bilateral_time(inv, phi, rs);</div>
|
|
399
|
+
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a> resBS = BS_time(inv, phi, rs);</div>
|
|
400
|
+
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  <span class="comment">// 0:[0,10000] 1:[0,10000] 2:[0,0]</span></div>
|
|
401
|
+
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  assert(resRSY == resBS && resBS == resBilateral && <span class="stringliteral">"inconsistency occurs"</span>);</div>
|
|
402
|
+
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> r : resRSY.<a class="code" href="classSVF_1_1AbstractState.html#a4e4525823fd31c718216c698ed6e0a06">getVarToVal</a>())</div>
|
|
403
|
+
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  {</div>
|
|
404
|
+
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << r.first << <span class="stringliteral">" "</span> << r.second.getInterval() << <span class="stringliteral">"\n"</span>;</div>
|
|
405
|
+
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>  }</div>
|
|
406
|
+
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>  <span class="comment">// ground truth</span></div>
|
|
407
|
+
<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>  <a class="code" href="classSVF_1_1AbstractState.html#ab8e7d112c380f0c3fe66b487af90c03e">AbstractState::VarToAbsValMap</a> intendedRes = {{0, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 10000)},</div>
|
|
408
|
+
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  {1, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 10000)},</div>
|
|
409
|
+
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>  {2, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 0)}</div>
|
|
410
|
+
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  };</div>
|
|
411
|
+
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  assert(<a class="code" href="classSVF_1_1AbstractState.html#adb1ce2a16c501aefa7c902e9bec012f6">AbstractState::eqVarToValMap</a>(resBS.<a class="code" href="classSVF_1_1AbstractState.html#a4e4525823fd31c718216c698ed6e0a06">getVarToVal</a>(), intendedRes) && <span class="stringliteral">"inconsistency occurs"</span>);</div>
|
|
412
|
+
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>  }</div>
|
|
413
|
+
<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  </div>
|
|
414
|
+
<div class="line"><a name="l00343"></a><span class="lineno"><a class="line" href="classSymblicAbstractionTest.html#aaba97f696f9518c31af8ace984b39bcf"> 343</a></span>  <span class="keywordtype">void</span> <a class="code" href="classSymblicAbstractionTest.html#aaba97f696f9518c31af8ace984b39bcf">testRelExeState2_5</a>()</div>
|
|
415
|
+
<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  {</div>
|
|
416
|
+
<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"test2_5 start\n"</span>;</div>
|
|
417
|
+
<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>  <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a> itv;</div>
|
|
418
|
+
<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>  <a class="code" href="classSVF_1_1RelExeState.html">RelExeState</a> relation;</div>
|
|
419
|
+
<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>  <span class="comment">// var0 := [0, 100000];</span></div>
|
|
420
|
+
<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  relation[0] = getContext().int_const(<span class="stringliteral">"0"</span>);</div>
|
|
421
|
+
<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>  itv[0] = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 100000);</div>
|
|
422
|
+
<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  <span class="comment">// var1 := var0;</span></div>
|
|
423
|
+
<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>  relation[1] =</div>
|
|
424
|
+
<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>  getContext().int_const(<span class="stringliteral">"1"</span>) == getContext().int_const(<span class="stringliteral">"0"</span>);</div>
|
|
425
|
+
<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  itv[1] = itv[0];</div>
|
|
426
|
+
<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  <span class="comment">// var2 := var1 - var0;</span></div>
|
|
427
|
+
<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  relation[2] = getContext().int_const(<span class="stringliteral">"2"</span>) ==</div>
|
|
428
|
+
<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  getContext().int_const(<span class="stringliteral">"1"</span>) - getContext().int_const(<span class="stringliteral">"0"</span>);</div>
|
|
429
|
+
<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>  itv[2] = itv[1] - itv[0];</div>
|
|
430
|
+
<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>  </div>
|
|
431
|
+
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  <span class="comment">// Test extract sub vars</span></div>
|
|
432
|
+
<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>  <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<u32_t></a> res;</div>
|
|
433
|
+
<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  relation.<a class="code" href="classSVF_1_1RelExeState.html#a3393f160508c33e68ebedd042d1d296f">extractSubVars</a>(relation[2], res);</div>
|
|
434
|
+
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>  assert(res == <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<u32_t></a>({0, 1, 2}) && <span class="stringliteral">"inconsistency occurs"</span>);</div>
|
|
435
|
+
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>  <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a> inv = itv.<a class="code" href="classSVF_1_1AbstractState.html#ae9897b85e3cb2dc675d3a2df76c44878">sliceState</a>(res);</div>
|
|
436
|
+
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>  <a class="code" href="classSVF_1_1RelationSolver.html">RelationSolver</a> rs;</div>
|
|
437
|
+
<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>& relExpr = relation[2] && relation[1];</div>
|
|
438
|
+
<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>& initExpr = rs.<a class="code" href="classSVF_1_1RelationSolver.html#a04f145c44a67ebda99ccc5a3081239ff">gamma_hat</a>(inv);</div>
|
|
439
|
+
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>& phi = (relExpr && initExpr).simplify();</div>
|
|
440
|
+
<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a> resRSY = RSY_time(inv, phi, rs);</div>
|
|
441
|
+
<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>  <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a> resBilateral = Bilateral_time(inv, phi, rs);</div>
|
|
442
|
+
<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a> resBS = BS_time(inv, phi, rs);</div>
|
|
443
|
+
<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  <span class="comment">// 0:[0,100000] 1:[0,100000] 2:[0,0]</span></div>
|
|
444
|
+
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  assert(resRSY == resBS && resBS == resBilateral && <span class="stringliteral">"inconsistency occurs"</span>);</div>
|
|
445
|
+
<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> r : resRSY.<a class="code" href="classSVF_1_1AbstractState.html#a4e4525823fd31c718216c698ed6e0a06">getVarToVal</a>())</div>
|
|
446
|
+
<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  {</div>
|
|
447
|
+
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << r.first << <span class="stringliteral">" "</span> << r.second.getInterval() << <span class="stringliteral">"\n"</span>;</div>
|
|
448
|
+
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  }</div>
|
|
449
|
+
<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  <span class="comment">// ground truth</span></div>
|
|
450
|
+
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  <a class="code" href="classSVF_1_1AbstractState.html#ab8e7d112c380f0c3fe66b487af90c03e">AbstractState::VarToAbsValMap</a> intendedRes = {{0, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 100000)},</div>
|
|
451
|
+
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>  {1, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 100000)},</div>
|
|
452
|
+
<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>  {2, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 0)}</div>
|
|
453
|
+
<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  };</div>
|
|
454
|
+
<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>  assert(<a class="code" href="classSVF_1_1AbstractState.html#adb1ce2a16c501aefa7c902e9bec012f6">AbstractState::eqVarToValMap</a>(resBS.<a class="code" href="classSVF_1_1AbstractState.html#a4e4525823fd31c718216c698ed6e0a06">getVarToVal</a>(), intendedRes) && <span class="stringliteral">"inconsistency occurs"</span>);</div>
|
|
455
|
+
<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>  }</div>
|
|
456
|
+
<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>  </div>
|
|
457
|
+
<div class="line"><a name="l00386"></a><span class="lineno"><a class="line" href="classSymblicAbstractionTest.html#ac3016e7a57f46af01d20de7e785a4cce"> 386</a></span>  <span class="keywordtype">void</span> <a class="code" href="classSymblicAbstractionTest.html#ac3016e7a57f46af01d20de7e785a4cce">testRelExeState3_1</a>()</div>
|
|
458
|
+
<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>  {</div>
|
|
459
|
+
<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"test3_1 start\n"</span>;</div>
|
|
460
|
+
<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a> itv;</div>
|
|
461
|
+
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  <a class="code" href="classSVF_1_1RelExeState.html">RelExeState</a> relation;</div>
|
|
462
|
+
<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  <span class="comment">// var0 := [1, 10];</span></div>
|
|
463
|
+
<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>  relation[0] = getContext().int_const(<span class="stringliteral">"0"</span>);</div>
|
|
464
|
+
<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>  itv[0] = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1, 10);</div>
|
|
465
|
+
<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  <span class="comment">// var1 := var0;</span></div>
|
|
466
|
+
<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  relation[1] =</div>
|
|
467
|
+
<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  getContext().int_const(<span class="stringliteral">"1"</span>) == getContext().int_const(<span class="stringliteral">"0"</span>);</div>
|
|
468
|
+
<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>  itv[1] = itv[0];</div>
|
|
469
|
+
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>  <span class="comment">// var2 := var1 / var0;</span></div>
|
|
470
|
+
<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  relation[2] = getContext().int_const(<span class="stringliteral">"2"</span>) ==</div>
|
|
471
|
+
<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  getContext().int_const(<span class="stringliteral">"1"</span>) / getContext().int_const(<span class="stringliteral">"0"</span>);</div>
|
|
472
|
+
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  itv[2] = itv[1] / itv[0];</div>
|
|
473
|
+
<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>  <span class="comment">// Test extract sub vars</span></div>
|
|
474
|
+
<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>  <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<u32_t></a> res;</div>
|
|
475
|
+
<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>  relation.<a class="code" href="classSVF_1_1RelExeState.html#a3393f160508c33e68ebedd042d1d296f">extractSubVars</a>(relation[2], res);</div>
|
|
476
|
+
<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>  assert(res == <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<u32_t></a>({0, 1, 2}) && <span class="stringliteral">"inconsistency occurs"</span>);</div>
|
|
477
|
+
<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>  <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a> inv = itv.<a class="code" href="classSVF_1_1AbstractState.html#ae9897b85e3cb2dc675d3a2df76c44878">sliceState</a>(res);</div>
|
|
478
|
+
<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>  <a class="code" href="classSVF_1_1RelationSolver.html">RelationSolver</a> rs;</div>
|
|
479
|
+
<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>& relExpr = relation[2] && relation[1];</div>
|
|
480
|
+
<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>& initExpr = rs.<a class="code" href="classSVF_1_1RelationSolver.html#a04f145c44a67ebda99ccc5a3081239ff">gamma_hat</a>(inv);</div>
|
|
481
|
+
<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>& phi = (relExpr && initExpr).simplify();</div>
|
|
482
|
+
<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a> resRSY = rs.<a class="code" href="classSVF_1_1RelationSolver.html#a0bc76a5f96dab54e1c9678312579d51a">RSY</a>(inv, phi);</div>
|
|
483
|
+
<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a> resBilateral = rs.<a class="code" href="classSVF_1_1RelationSolver.html#a23c59e437950b139dde49f11eb45b63a">bilateral</a>(inv, phi);</div>
|
|
484
|
+
<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>  <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a> resBS = rs.<a class="code" href="classSVF_1_1RelationSolver.html#a98f7e3ae9f43aea178d77a58ac8e927f">BS</a>(inv, phi);</div>
|
|
485
|
+
<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>  <span class="comment">// 0:[1,10] 1:[1,10] 2:[1,1]</span></div>
|
|
486
|
+
<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>  assert(resRSY == resBS && resBS == resBilateral && <span class="stringliteral">"inconsistency occurs"</span>);</div>
|
|
487
|
+
<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> r : resRSY.<a class="code" href="classSVF_1_1AbstractState.html#a4e4525823fd31c718216c698ed6e0a06">getVarToVal</a>())</div>
|
|
488
|
+
<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  {</div>
|
|
489
|
+
<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << r.first << <span class="stringliteral">" "</span> << r.second.getInterval() << <span class="stringliteral">"\n"</span>;</div>
|
|
490
|
+
<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>  }</div>
|
|
491
|
+
<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>  <span class="comment">// ground truth</span></div>
|
|
492
|
+
<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>  <a class="code" href="classSVF_1_1AbstractState.html#ab8e7d112c380f0c3fe66b487af90c03e">AbstractState::VarToAbsValMap</a> intendedRes = {{0, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1, 10)},</div>
|
|
493
|
+
<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>  {1, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1, 10)},</div>
|
|
494
|
+
<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>  {2, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1, 1)}</div>
|
|
495
|
+
<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  };</div>
|
|
496
|
+
<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  assert(<a class="code" href="classSVF_1_1AbstractState.html#adb1ce2a16c501aefa7c902e9bec012f6">AbstractState::eqVarToValMap</a>(resBS.<a class="code" href="classSVF_1_1AbstractState.html#a4e4525823fd31c718216c698ed6e0a06">getVarToVal</a>(), intendedRes) && <span class="stringliteral">"inconsistency occurs"</span>);</div>
|
|
497
|
+
<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>  }</div>
|
|
498
|
+
<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>  </div>
|
|
499
|
+
<div class="line"><a name="l00428"></a><span class="lineno"><a class="line" href="classSymblicAbstractionTest.html#a56541a5e9bc61f092ee3c48700f00bf7"> 428</a></span>  <span class="keywordtype">void</span> <a class="code" href="classSymblicAbstractionTest.html#a56541a5e9bc61f092ee3c48700f00bf7">testRelExeState3_2</a>()</div>
|
|
500
|
+
<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>  {</div>
|
|
501
|
+
<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"test3_2 start\n"</span>;</div>
|
|
502
|
+
<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>  <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a> itv;</div>
|
|
503
|
+
<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>  <a class="code" href="classSVF_1_1RelExeState.html">RelExeState</a> relation;</div>
|
|
504
|
+
<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>  <span class="comment">// var0 := [1, 1000];</span></div>
|
|
505
|
+
<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>  relation[0] = getContext().int_const(<span class="stringliteral">"0"</span>);</div>
|
|
506
|
+
<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>  itv[0] = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1, 1000);</div>
|
|
507
|
+
<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>  <span class="comment">// var1 := var0;</span></div>
|
|
508
|
+
<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>  relation[1] =</div>
|
|
509
|
+
<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>  getContext().int_const(<span class="stringliteral">"1"</span>) == getContext().int_const(<span class="stringliteral">"0"</span>);</div>
|
|
510
|
+
<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>  itv[1] = itv[0];</div>
|
|
511
|
+
<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>  <span class="comment">// var2 := var1 / var0;</span></div>
|
|
512
|
+
<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>  relation[2] = getContext().int_const(<span class="stringliteral">"2"</span>) ==</div>
|
|
513
|
+
<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>  getContext().int_const(<span class="stringliteral">"1"</span>) / getContext().int_const(<span class="stringliteral">"0"</span>);</div>
|
|
514
|
+
<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>  itv[2] = itv[1] / itv[0];</div>
|
|
515
|
+
<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>  <span class="comment">// Test extract sub vars</span></div>
|
|
516
|
+
<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>  <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<u32_t></a> res;</div>
|
|
517
|
+
<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>  relation.<a class="code" href="classSVF_1_1RelExeState.html#a3393f160508c33e68ebedd042d1d296f">extractSubVars</a>(relation[2], res);</div>
|
|
518
|
+
<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>  assert(res == <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<u32_t></a>({0, 1, 2}) && <span class="stringliteral">"inconsistency occurs"</span>);</div>
|
|
519
|
+
<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>  <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a> inv = itv.<a class="code" href="classSVF_1_1AbstractState.html#ae9897b85e3cb2dc675d3a2df76c44878">sliceState</a>(res);</div>
|
|
520
|
+
<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>  <a class="code" href="classSVF_1_1RelationSolver.html">RelationSolver</a> rs;</div>
|
|
521
|
+
<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>& relExpr = relation[2] && relation[1];</div>
|
|
522
|
+
<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>& initExpr = rs.<a class="code" href="classSVF_1_1RelationSolver.html#a04f145c44a67ebda99ccc5a3081239ff">gamma_hat</a>(inv);</div>
|
|
523
|
+
<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>& phi = (relExpr && initExpr).simplify();</div>
|
|
524
|
+
<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>  <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a> resRSY = rs.<a class="code" href="classSVF_1_1RelationSolver.html#a0bc76a5f96dab54e1c9678312579d51a">RSY</a>(inv, phi);</div>
|
|
525
|
+
<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>  <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a> resBilateral = rs.<a class="code" href="classSVF_1_1RelationSolver.html#a23c59e437950b139dde49f11eb45b63a">bilateral</a>(inv, phi);</div>
|
|
526
|
+
<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>  <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a> resBS = rs.<a class="code" href="classSVF_1_1RelationSolver.html#a98f7e3ae9f43aea178d77a58ac8e927f">BS</a>(inv, phi);</div>
|
|
527
|
+
<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>  <span class="comment">// 0:[1,1000] 1:[1,1000] 2:[1,1]</span></div>
|
|
528
|
+
<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>  assert(resRSY == resBS && resBS == resBilateral && <span class="stringliteral">"inconsistency occurs"</span>);</div>
|
|
529
|
+
<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> r : resRSY.<a class="code" href="classSVF_1_1AbstractState.html#a4e4525823fd31c718216c698ed6e0a06">getVarToVal</a>())</div>
|
|
530
|
+
<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>  {</div>
|
|
531
|
+
<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << r.first << <span class="stringliteral">" "</span> << r.second.getInterval() << <span class="stringliteral">"\n"</span>;</div>
|
|
532
|
+
<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>  }</div>
|
|
533
|
+
<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>  <span class="comment">// ground truth</span></div>
|
|
534
|
+
<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>  <a class="code" href="classSVF_1_1AbstractState.html#ab8e7d112c380f0c3fe66b487af90c03e">AbstractState::VarToAbsValMap</a> intendedRes = {{0, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1, 1000)},</div>
|
|
535
|
+
<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>  {1, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1, 1000)},</div>
|
|
536
|
+
<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>  {2, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1, 1)}</div>
|
|
537
|
+
<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>  };</div>
|
|
538
|
+
<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>  assert(<a class="code" href="classSVF_1_1AbstractState.html#adb1ce2a16c501aefa7c902e9bec012f6">AbstractState::eqVarToValMap</a>(resBS.<a class="code" href="classSVF_1_1AbstractState.html#a4e4525823fd31c718216c698ed6e0a06">getVarToVal</a>(), intendedRes) && <span class="stringliteral">"inconsistency occurs"</span>);</div>
|
|
539
|
+
<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>  }</div>
|
|
540
|
+
<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>  </div>
|
|
541
|
+
<div class="line"><a name="l00470"></a><span class="lineno"><a class="line" href="classSymblicAbstractionTest.html#a7c87dfedc9c7b32df42f14334bc732b0"> 470</a></span>  <span class="keywordtype">void</span> <a class="code" href="classSymblicAbstractionTest.html#a7c87dfedc9c7b32df42f14334bc732b0">testRelExeState3_3</a>()</div>
|
|
542
|
+
<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>  {</div>
|
|
543
|
+
<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"test3_3 start\n"</span>;</div>
|
|
544
|
+
<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>  <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a> itv;</div>
|
|
545
|
+
<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>  <a class="code" href="classSVF_1_1RelExeState.html">RelExeState</a> relation;</div>
|
|
546
|
+
<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>  <span class="comment">// var0 := [1, 10000];</span></div>
|
|
547
|
+
<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>  relation[0] = getContext().int_const(<span class="stringliteral">"0"</span>);</div>
|
|
548
|
+
<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>  itv[0] = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1, 10000);</div>
|
|
549
|
+
<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>  <span class="comment">// var1 := var0;</span></div>
|
|
550
|
+
<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>  relation[1] =</div>
|
|
551
|
+
<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>  getContext().int_const(<span class="stringliteral">"1"</span>) == getContext().int_const(<span class="stringliteral">"0"</span>);</div>
|
|
552
|
+
<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>  itv[1] = itv[0];</div>
|
|
553
|
+
<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>  <span class="comment">// var2 := var1 / var0;</span></div>
|
|
554
|
+
<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>  relation[2] = getContext().int_const(<span class="stringliteral">"2"</span>) ==</div>
|
|
555
|
+
<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>  getContext().int_const(<span class="stringliteral">"1"</span>) / getContext().int_const(<span class="stringliteral">"0"</span>);</div>
|
|
556
|
+
<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>  itv[2] = itv[1] / itv[0];</div>
|
|
557
|
+
<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>  <span class="comment">// Test extract sub vars</span></div>
|
|
558
|
+
<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>  <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<u32_t></a> res;</div>
|
|
559
|
+
<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>  relation.<a class="code" href="classSVF_1_1RelExeState.html#a3393f160508c33e68ebedd042d1d296f">extractSubVars</a>(relation[2], res);</div>
|
|
560
|
+
<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>  assert(res == <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<u32_t></a>({0, 1, 2}) && <span class="stringliteral">"inconsistency occurs"</span>);</div>
|
|
561
|
+
<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>  <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a> inv = itv.<a class="code" href="classSVF_1_1AbstractState.html#ae9897b85e3cb2dc675d3a2df76c44878">sliceState</a>(res);</div>
|
|
562
|
+
<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>  <a class="code" href="classSVF_1_1RelationSolver.html">RelationSolver</a> rs;</div>
|
|
563
|
+
<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>& relExpr = relation[2] && relation[1];</div>
|
|
564
|
+
<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>& initExpr = rs.<a class="code" href="classSVF_1_1RelationSolver.html#a04f145c44a67ebda99ccc5a3081239ff">gamma_hat</a>(inv);</div>
|
|
565
|
+
<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>& phi = (relExpr && initExpr).simplify();</div>
|
|
566
|
+
<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>  <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a> resRSY = RSY_time(inv, phi, rs);</div>
|
|
567
|
+
<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>  <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a> resBilateral = Bilateral_time(inv, phi, rs);</div>
|
|
568
|
+
<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>  <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a> resBS = BS_time(inv, phi, rs);</div>
|
|
569
|
+
<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>  <span class="comment">// 0:[1,10000] 1:[1,10000] 2:[1,1]</span></div>
|
|
570
|
+
<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>  assert(resRSY == resBS && resBS == resBilateral && <span class="stringliteral">"inconsistency occurs"</span>);</div>
|
|
571
|
+
<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> r : resRSY.<a class="code" href="classSVF_1_1AbstractState.html#a4e4525823fd31c718216c698ed6e0a06">getVarToVal</a>())</div>
|
|
572
|
+
<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>  {</div>
|
|
573
|
+
<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << r.first << <span class="stringliteral">" "</span> << r.second.getInterval() << <span class="stringliteral">"\n"</span>;</div>
|
|
574
|
+
<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>  }</div>
|
|
575
|
+
<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>  <span class="comment">// ground truth</span></div>
|
|
576
|
+
<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>  <a class="code" href="classSVF_1_1AbstractState.html#ab8e7d112c380f0c3fe66b487af90c03e">AbstractState::VarToAbsValMap</a> intendedRes = {{0, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1, 10000)},</div>
|
|
577
|
+
<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>  {1, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1, 10000)},</div>
|
|
578
|
+
<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>  {2, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1, 1)}</div>
|
|
579
|
+
<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>  };</div>
|
|
580
|
+
<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>  }</div>
|
|
581
|
+
<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>  </div>
|
|
582
|
+
<div class="line"><a name="l00511"></a><span class="lineno"><a class="line" href="classSymblicAbstractionTest.html#ae7b7853f6a6a3cbc2c04d3dfea83ad43"> 511</a></span>  <span class="keywordtype">void</span> <a class="code" href="classSymblicAbstractionTest.html#ae7b7853f6a6a3cbc2c04d3dfea83ad43">testRelExeState3_4</a>()</div>
|
|
583
|
+
<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>  {</div>
|
|
584
|
+
<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"test3_4 start\n"</span>;</div>
|
|
585
|
+
<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>  <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a> itv;</div>
|
|
586
|
+
<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>  <a class="code" href="classSVF_1_1RelExeState.html">RelExeState</a> relation;</div>
|
|
587
|
+
<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>  <span class="comment">// var0 := [1, 100000];</span></div>
|
|
588
|
+
<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>  relation[0] = getContext().int_const(<span class="stringliteral">"0"</span>);</div>
|
|
589
|
+
<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>  itv[0] = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1, 100000);</div>
|
|
590
|
+
<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>  <span class="comment">// var1 := var0;</span></div>
|
|
591
|
+
<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>  relation[1] =</div>
|
|
592
|
+
<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>  getContext().int_const(<span class="stringliteral">"1"</span>) == getContext().int_const(<span class="stringliteral">"0"</span>);</div>
|
|
593
|
+
<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>  itv[1] = itv[0];</div>
|
|
594
|
+
<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>  <span class="comment">// var2 := var1 / var0;</span></div>
|
|
595
|
+
<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>  relation[2] = getContext().int_const(<span class="stringliteral">"2"</span>) ==</div>
|
|
596
|
+
<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>  getContext().int_const(<span class="stringliteral">"1"</span>) / getContext().int_const(<span class="stringliteral">"0"</span>);</div>
|
|
597
|
+
<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>  itv[2] = itv[1] / itv[0];</div>
|
|
598
|
+
<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>  <span class="comment">// Test extract sub vars</span></div>
|
|
599
|
+
<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>  <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<u32_t></a> res;</div>
|
|
600
|
+
<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>  relation.<a class="code" href="classSVF_1_1RelExeState.html#a3393f160508c33e68ebedd042d1d296f">extractSubVars</a>(relation[2], res);</div>
|
|
601
|
+
<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>  assert(res == <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<u32_t></a>({0, 1, 2}) && <span class="stringliteral">"inconsistency occurs"</span>);</div>
|
|
602
|
+
<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>  <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a> inv = itv.<a class="code" href="classSVF_1_1AbstractState.html#ae9897b85e3cb2dc675d3a2df76c44878">sliceState</a>(res);</div>
|
|
603
|
+
<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>  <a class="code" href="classSVF_1_1RelationSolver.html">RelationSolver</a> rs;</div>
|
|
604
|
+
<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>& relExpr = relation[2] && relation[1];</div>
|
|
605
|
+
<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>& initExpr = rs.<a class="code" href="classSVF_1_1RelationSolver.html#a04f145c44a67ebda99ccc5a3081239ff">gamma_hat</a>(inv);</div>
|
|
606
|
+
<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>& phi = (relExpr && initExpr).simplify();</div>
|
|
607
|
+
<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>  <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a> resRSY = RSY_time(inv, phi, rs);</div>
|
|
608
|
+
<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>  <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a> resBilateral = Bilateral_time(inv, phi, rs);</div>
|
|
609
|
+
<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>  <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a> resBS = BS_time(inv, phi, rs);</div>
|
|
610
|
+
<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>  <span class="comment">// 0:[1,100000] 1:[1,100000] 2:[1,1]</span></div>
|
|
611
|
+
<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>  assert(resRSY == resBS && resBS == resBilateral && <span class="stringliteral">"inconsistency occurs"</span>);</div>
|
|
612
|
+
<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> r : resRSY.<a class="code" href="classSVF_1_1AbstractState.html#a4e4525823fd31c718216c698ed6e0a06">getVarToVal</a>())</div>
|
|
613
|
+
<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>  {</div>
|
|
614
|
+
<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << r.first << <span class="stringliteral">" "</span> << r.second.getInterval() << <span class="stringliteral">"\n"</span>;</div>
|
|
615
|
+
<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>  }</div>
|
|
616
|
+
<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>  <span class="comment">// ground truth</span></div>
|
|
617
|
+
<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>  <a class="code" href="classSVF_1_1AbstractState.html#ab8e7d112c380f0c3fe66b487af90c03e">AbstractState::VarToAbsValMap</a> intendedRes = {{0, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1, 100000)},</div>
|
|
618
|
+
<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>  {1, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1, 100000)},</div>
|
|
619
|
+
<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>  {2, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1, 1)}</div>
|
|
620
|
+
<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>  };</div>
|
|
621
|
+
<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>  assert(<a class="code" href="classSVF_1_1AbstractState.html#adb1ce2a16c501aefa7c902e9bec012f6">AbstractState::eqVarToValMap</a>(resBS.<a class="code" href="classSVF_1_1AbstractState.html#a4e4525823fd31c718216c698ed6e0a06">getVarToVal</a>(), intendedRes) && <span class="stringliteral">"inconsistency occurs"</span>);</div>
|
|
622
|
+
<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>  }</div>
|
|
623
|
+
<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>  </div>
|
|
624
|
+
<div class="line"><a name="l00553"></a><span class="lineno"><a class="line" href="classSymblicAbstractionTest.html#a986b2278abd2ee64507fa769a66c999c"> 553</a></span>  <span class="keywordtype">void</span> <a class="code" href="classSymblicAbstractionTest.html#a986b2278abd2ee64507fa769a66c999c">testRelExeState4_1</a>()</div>
|
|
625
|
+
<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>  {</div>
|
|
626
|
+
<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"test4_1 start\n"</span>;</div>
|
|
627
|
+
<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>  <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a> itv;</div>
|
|
628
|
+
<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>  <a class="code" href="classSVF_1_1RelExeState.html">RelExeState</a> relation;</div>
|
|
629
|
+
<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>  <span class="comment">// var0 := [0, 10];</span></div>
|
|
630
|
+
<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>  relation[0] = getContext().int_const(<span class="stringliteral">"0"</span>);</div>
|
|
631
|
+
<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>  itv[0] = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 10);</div>
|
|
632
|
+
<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>  <span class="comment">// var1 := var0;</span></div>
|
|
633
|
+
<div class="line"><a name="l00562"></a><span class="lineno"> 562</span>  relation[1] =</div>
|
|
634
|
+
<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>  getContext().int_const(<span class="stringliteral">"1"</span>) == getContext().int_const(<span class="stringliteral">"0"</span>);</div>
|
|
635
|
+
<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>  itv[1] = itv[0];</div>
|
|
636
|
+
<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>  <span class="comment">// var2 := var1 / var0;</span></div>
|
|
637
|
+
<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>  relation[2] = getContext().int_const(<span class="stringliteral">"2"</span>) ==</div>
|
|
638
|
+
<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>  getContext().int_const(<span class="stringliteral">"1"</span>) / getContext().int_const(<span class="stringliteral">"0"</span>);</div>
|
|
639
|
+
<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>  itv[2] = itv[1] / itv[0];</div>
|
|
640
|
+
<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>  <span class="comment">// Test extract sub vars</span></div>
|
|
641
|
+
<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>  <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<u32_t></a> res;</div>
|
|
642
|
+
<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>  relation.<a class="code" href="classSVF_1_1RelExeState.html#a3393f160508c33e68ebedd042d1d296f">extractSubVars</a>(relation[2], res);</div>
|
|
643
|
+
<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>  assert(res == <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<u32_t></a>({0, 1, 2}) && <span class="stringliteral">"inconsistency occurs"</span>);</div>
|
|
644
|
+
<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>  <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a> inv = itv.<a class="code" href="classSVF_1_1AbstractState.html#ae9897b85e3cb2dc675d3a2df76c44878">sliceState</a>(res);</div>
|
|
645
|
+
<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>  <a class="code" href="classSVF_1_1RelationSolver.html">RelationSolver</a> rs;</div>
|
|
646
|
+
<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>& relExpr = relation[2] && relation[1];</div>
|
|
647
|
+
<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>& initExpr = rs.<a class="code" href="classSVF_1_1RelationSolver.html#a04f145c44a67ebda99ccc5a3081239ff">gamma_hat</a>(inv);</div>
|
|
648
|
+
<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>& phi = (relExpr && initExpr).simplify();</div>
|
|
649
|
+
<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>  <span class="comment">// IntervalExeState resRSY = rs.RSY(inv, phi);</span></div>
|
|
650
|
+
<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"rsy done\n"</span>;</div>
|
|
651
|
+
<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>  <span class="comment">// IntervalExeState resBilateral = rs.bilateral(inv, phi);</span></div>
|
|
652
|
+
<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"bilateral done\n"</span>;</div>
|
|
653
|
+
<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>  <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a> resBS = rs.<a class="code" href="classSVF_1_1RelationSolver.html#a98f7e3ae9f43aea178d77a58ac8e927f">BS</a>(inv, phi);</div>
|
|
654
|
+
<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"bs done\n"</span>;</div>
|
|
655
|
+
<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>  <span class="comment">// 0:[0,10] 1:[0,10] 2:[-00,+00]</span></div>
|
|
656
|
+
<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>  <span class="comment">// assert(resRSY == resBS && resBS == resBilateral);</span></div>
|
|
657
|
+
<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> r : resBS.<a class="code" href="classSVF_1_1AbstractState.html#a4e4525823fd31c718216c698ed6e0a06">getVarToVal</a>())</div>
|
|
658
|
+
<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>  {</div>
|
|
659
|
+
<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << r.first << <span class="stringliteral">" "</span> << r.second.getInterval() << <span class="stringliteral">"\n"</span>;</div>
|
|
660
|
+
<div class="line"><a name="l00589"></a><span class="lineno"> 589</span>  }</div>
|
|
661
|
+
<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>  <span class="comment">// ground truth</span></div>
|
|
662
|
+
<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>  <a class="code" href="classSVF_1_1AbstractState.html#ab8e7d112c380f0c3fe66b487af90c03e">AbstractState::VarToAbsValMap</a> intendedRes = {{0, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 10)},</div>
|
|
663
|
+
<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>  {1, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 10)},</div>
|
|
664
|
+
<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>  {2, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(<a class="code" href="classSVF_1_1IntervalValue.html#a43f48c744f7bda0dc689b8f186449371">IntervalValue::minus_infinity</a>(), <a class="code" href="classSVF_1_1IntervalValue.html#a739ab04e16ec1156be71b29d49998a4f">IntervalValue::plus_infinity</a>())}</div>
|
|
665
|
+
<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>  };</div>
|
|
666
|
+
<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>  assert(<a class="code" href="classSVF_1_1AbstractState.html#adb1ce2a16c501aefa7c902e9bec012f6">AbstractState::eqVarToValMap</a>(resBS.<a class="code" href="classSVF_1_1AbstractState.html#a4e4525823fd31c718216c698ed6e0a06">getVarToVal</a>(), intendedRes) && <span class="stringliteral">"inconsistency occurs"</span>);</div>
|
|
667
|
+
<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>  }</div>
|
|
668
|
+
<div class="line"><a name="l00597"></a><span class="lineno"> 597</span>  </div>
|
|
669
|
+
<div class="line"><a name="l00598"></a><span class="lineno"><a class="line" href="classSymblicAbstractionTest.html#a66155c2b52131a7782382d8e5da560fc"> 598</a></span>  <span class="keywordtype">void</span> <a class="code" href="classSymblicAbstractionTest.html#a66155c2b52131a7782382d8e5da560fc">testsValidation</a>()</div>
|
|
670
|
+
<div class="line"><a name="l00599"></a><span class="lineno"> 599</span>  {</div>
|
|
671
|
+
<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>  <a class="code" href="classSymblicAbstractionTest.html">SymblicAbstractionTest</a> saTest;</div>
|
|
672
|
+
<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>  saTest.<a class="code" href="classSymblicAbstractionTest.html#acc4852ec2f03ec67e39c67629275cdf5">testRelExeState1_1</a>();</div>
|
|
673
|
+
<div class="line"><a name="l00602"></a><span class="lineno"> 602</span>  saTest.<a class="code" href="classSymblicAbstractionTest.html#a0316fb86d1751ecacf5845ca07764f40">testRelExeState1_2</a>();</div>
|
|
674
|
+
<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>  </div>
|
|
675
|
+
<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>  saTest.<a class="code" href="classSymblicAbstractionTest.html#a32fbde1fbb997be55abfdc308de68fc1">testRelExeState2_1</a>();</div>
|
|
676
|
+
<div class="line"><a name="l00605"></a><span class="lineno"> 605</span>  saTest.<a class="code" href="classSymblicAbstractionTest.html#a40b9879a5465f960bbd4fad6654304aa">testRelExeState2_2</a>();</div>
|
|
677
|
+
<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>  saTest.<a class="code" href="classSymblicAbstractionTest.html#a7c319b15dd3bd82a7c805ba6dd60beab">testRelExeState2_3</a>();</div>
|
|
678
|
+
<div class="line"><a name="l00607"></a><span class="lineno"> 607</span>  <span class="comment">// saTest.testRelExeState2_4(); /// 10000</span></div>
|
|
679
|
+
<div class="line"><a name="l00608"></a><span class="lineno"> 608</span>  <span class="comment">// saTest.testRelExeState2_5(); /// 100000</span></div>
|
|
680
|
+
<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>  </div>
|
|
681
|
+
<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>  saTest.<a class="code" href="classSymblicAbstractionTest.html#ac3016e7a57f46af01d20de7e785a4cce">testRelExeState3_1</a>();</div>
|
|
682
|
+
<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>  saTest.<a class="code" href="classSymblicAbstractionTest.html#a56541a5e9bc61f092ee3c48700f00bf7">testRelExeState3_2</a>();</div>
|
|
683
|
+
<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>  <span class="comment">// saTest.testRelExeState3_3(); /// 10000</span></div>
|
|
684
|
+
<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>  <span class="comment">// saTest.testRelExeState3_4(); /// 100000</span></div>
|
|
685
|
+
<div class="line"><a name="l00614"></a><span class="lineno"> 614</span>  </div>
|
|
686
|
+
<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"start top\n"</span>;</div>
|
|
687
|
+
<div class="line"><a name="l00616"></a><span class="lineno"> 616</span>  saTest.<a class="code" href="classSymblicAbstractionTest.html#a986b2278abd2ee64507fa769a66c999c">testRelExeState4_1</a>(); </div>
|
|
688
|
+
<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>  }</div>
|
|
689
|
+
<div class="line"><a name="l00618"></a><span class="lineno"> 618</span> };</div>
|
|
690
|
+
<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>  </div>
|
|
691
|
+
<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>  </div>
|
|
692
|
+
<div class="line"><a name="l00621"></a><span class="lineno"><a class="line" href="ae_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627"> 621</a></span> <span class="keywordtype">int</span> <a class="code" href="ae_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">main</a>(<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span>** argv)</div>
|
|
693
|
+
<div class="line"><a name="l00622"></a><span class="lineno"> 622</span> {</div>
|
|
694
|
+
<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>  <span class="keywordtype">int</span> arg_num = 0;</div>
|
|
695
|
+
<div class="line"><a name="l00624"></a><span class="lineno"> 624</span>  <span class="keywordtype">int</span> extraArgc = 3;</div>
|
|
696
|
+
<div class="line"><a name="l00625"></a><span class="lineno"> 625</span>  <span class="keywordtype">char</span> **arg_value = <span class="keyword">new</span> <span class="keywordtype">char</span> *[argc + extraArgc];</div>
|
|
697
|
+
<div class="line"><a name="l00626"></a><span class="lineno"> 626</span>  <span class="keywordflow">for</span> (; arg_num < argc; ++arg_num)</div>
|
|
698
|
+
<div class="line"><a name="l00627"></a><span class="lineno"> 627</span>  {</div>
|
|
699
|
+
<div class="line"><a name="l00628"></a><span class="lineno"> 628</span>  arg_value[arg_num] = argv[arg_num];</div>
|
|
700
|
+
<div class="line"><a name="l00629"></a><span class="lineno"> 629</span>  }</div>
|
|
701
|
+
<div class="line"><a name="l00630"></a><span class="lineno"> 630</span>  <span class="comment">// add extra options</span></div>
|
|
702
|
+
<div class="line"><a name="l00631"></a><span class="lineno"> 631</span>  arg_value[arg_num++] = (<span class="keywordtype">char</span>*) <span class="stringliteral">"-model-consts=true"</span>;</div>
|
|
703
|
+
<div class="line"><a name="l00632"></a><span class="lineno"> 632</span>  arg_value[arg_num++] = (<span class="keywordtype">char</span>*) <span class="stringliteral">"-model-arrays=true"</span>;</div>
|
|
704
|
+
<div class="line"><a name="l00633"></a><span class="lineno"> 633</span>  arg_value[arg_num++] = (<span class="keywordtype">char</span>*) <span class="stringliteral">"-pre-field-sensitive=false"</span>;</div>
|
|
705
|
+
<div class="line"><a name="l00634"></a><span class="lineno"> 634</span>  assert(arg_num == (argc + extraArgc) && <span class="stringliteral">"more extra arguments? Change the value of extraArgc"</span>);</div>
|
|
706
|
+
<div class="line"><a name="l00635"></a><span class="lineno"> 635</span>  </div>
|
|
707
|
+
<div class="line"><a name="l00636"></a><span class="lineno"> 636</span>  std::vector<std::string> moduleNameVec;</div>
|
|
708
|
+
<div class="line"><a name="l00637"></a><span class="lineno"> 637</span>  moduleNameVec = <a class="code" href="classOptionBase.html#a4fb6c6e4a1754d702c6c1730f54457e5">OptionBase::parseOptions</a>(</div>
|
|
709
|
+
<div class="line"><a name="l00638"></a><span class="lineno"> 638</span>  arg_num, arg_value, <span class="stringliteral">"Static Symbolic Execution"</span>, <span class="stringliteral">"[options] <input-bitcode...>"</span></div>
|
|
710
|
+
<div class="line"><a name="l00639"></a><span class="lineno"> 639</span>  );</div>
|
|
711
|
+
<div class="line"><a name="l00640"></a><span class="lineno"> 640</span>  <span class="keyword">delete</span>[] arg_value;</div>
|
|
712
|
+
<div class="line"><a name="l00641"></a><span class="lineno"> 641</span>  <span class="keywordflow">if</span> (<a class="code" href="ae_8cpp.html#acf883aea11ed083025935a7257b5967d">SYMABS</a>())</div>
|
|
713
|
+
<div class="line"><a name="l00642"></a><span class="lineno"> 642</span>  {</div>
|
|
714
|
+
<div class="line"><a name="l00643"></a><span class="lineno"> 643</span>  <a class="code" href="classSymblicAbstractionTest.html">SymblicAbstractionTest</a> saTest;</div>
|
|
715
|
+
<div class="line"><a name="l00644"></a><span class="lineno"> 644</span>  saTest.<a class="code" href="classSymblicAbstractionTest.html#a66155c2b52131a7782382d8e5da560fc">testsValidation</a>();</div>
|
|
716
|
+
<div class="line"><a name="l00645"></a><span class="lineno"> 645</span>  <span class="keywordflow">return</span> 0;</div>
|
|
717
|
+
<div class="line"><a name="l00646"></a><span class="lineno"> 646</span>  }</div>
|
|
718
|
+
<div class="line"><a name="l00647"></a><span class="lineno"> 647</span>  </div>
|
|
719
|
+
<div class="line"><a name="l00648"></a><span class="lineno"> 648</span>  <a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a> *svfModule = <a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()-><a class="code" href="classSVF_1_1LLVMModuleSet.html#ae919327019b5014f64b754dbdeb07f75">buildSVFModule</a>(moduleNameVec);</div>
|
|
720
|
+
<div class="line"><a name="l00649"></a><span class="lineno"> 649</span>  <a class="code" href="classSVF_1_1SVFIRBuilder.html">SVFIRBuilder</a> builder(svfModule);</div>
|
|
721
|
+
<div class="line"><a name="l00650"></a><span class="lineno"> 650</span>  <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* pag = builder.<a class="code" href="classSVF_1_1SVFIRBuilder.html#a5ecf1deb5646ccb46b0b3101417f4689">build</a>();</div>
|
|
722
|
+
<div class="line"><a name="l00651"></a><span class="lineno"> 651</span>  <a class="code" href="classSVF_1_1AndersenWaveDiff.html">AndersenWaveDiff</a>* ander = <a class="code" href="classSVF_1_1AndersenWaveDiff.html#a48ff6fc4badc79ad3204ae9bd95cc540">AndersenWaveDiff::createAndersenWaveDiff</a>(pag);</div>
|
|
723
|
+
<div class="line"><a name="l00652"></a><span class="lineno"> 652</span>  <a class="code" href="classSVF_1_1PTACallGraph.html">PTACallGraph</a>* callgraph = ander-><a class="code" href="classSVF_1_1PointerAnalysis.html#a7c9b7e5fe37ae31ba84d167945ca57df">getPTACallGraph</a>();</div>
|
|
724
|
+
<div class="line"><a name="l00653"></a><span class="lineno"> 653</span>  builder.<a class="code" href="classSVF_1_1SVFIRBuilder.html#a22bd51c6fe770d179867342164ec2767">updateCallGraph</a>(callgraph);</div>
|
|
725
|
+
<div class="line"><a name="l00654"></a><span class="lineno"> 654</span>  pag-><a class="code" href="classSVF_1_1SVFIR.html#abda052b73e869ed6d7c139ad1528da11">getICFG</a>()-><a class="code" href="classSVF_1_1ICFG.html#a5a00682b75726cacc1b4d88bbf40c824">updateCallGraph</a>(callgraph);</div>
|
|
726
|
+
<div class="line"><a name="l00655"></a><span class="lineno"> 655</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#a76555ba4522accb66d9d38b700e203e0">Options::ICFGMergeAdjacentNodes</a>())</div>
|
|
727
|
+
<div class="line"><a name="l00656"></a><span class="lineno"> 656</span>  {</div>
|
|
728
|
+
<div class="line"><a name="l00657"></a><span class="lineno"> 657</span>  <a class="code" href="classSVF_1_1ICFGSimplification.html#afaea7e3622ee5341a3f28135a2ae8644">ICFGSimplification::mergeAdjacentNodes</a>(pag-><a class="code" href="classSVF_1_1SVFIR.html#abda052b73e869ed6d7c139ad1528da11">getICFG</a>());</div>
|
|
729
|
+
<div class="line"><a name="l00658"></a><span class="lineno"> 658</span>  }</div>
|
|
730
|
+
<div class="line"><a name="l00659"></a><span class="lineno"> 659</span>  </div>
|
|
731
|
+
<div class="line"><a name="l00660"></a><span class="lineno"> 660</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#afbe432aabda95308e2c190a04d227a6d">Options::BufferOverflowCheck</a>())</div>
|
|
732
|
+
<div class="line"><a name="l00661"></a><span class="lineno"> 661</span>  {</div>
|
|
733
|
+
<div class="line"><a name="l00662"></a><span class="lineno"> 662</span>  <a class="code" href="classSVF_1_1BufOverflowChecker.html">BufOverflowChecker</a> ae;</div>
|
|
734
|
+
<div class="line"><a name="l00663"></a><span class="lineno"> 663</span>  ae.<a class="code" href="classSVF_1_1AbstractInterpretation.html#a971a676fb15da74d37de14725bab40b0">runOnModule</a>(pag-><a class="code" href="classSVF_1_1SVFIR.html#abda052b73e869ed6d7c139ad1528da11">getICFG</a>());</div>
|
|
735
|
+
<div class="line"><a name="l00664"></a><span class="lineno"> 664</span>  }</div>
|
|
736
|
+
<div class="line"><a name="l00665"></a><span class="lineno"> 665</span>  <span class="keywordflow">else</span></div>
|
|
737
|
+
<div class="line"><a name="l00666"></a><span class="lineno"> 666</span>  {</div>
|
|
738
|
+
<div class="line"><a name="l00667"></a><span class="lineno"> 667</span>  <a class="code" href="classSVF_1_1AbstractInterpretation.html">AbstractInterpretation</a> ae;</div>
|
|
739
|
+
<div class="line"><a name="l00668"></a><span class="lineno"> 668</span>  </div>
|
|
740
|
+
<div class="line"><a name="l00669"></a><span class="lineno"> 669</span>  ae.<a class="code" href="classSVF_1_1AbstractInterpretation.html#a971a676fb15da74d37de14725bab40b0">runOnModule</a>(pag-><a class="code" href="classSVF_1_1SVFIR.html#abda052b73e869ed6d7c139ad1528da11">getICFG</a>());</div>
|
|
741
|
+
<div class="line"><a name="l00670"></a><span class="lineno"> 670</span>  }</div>
|
|
742
742
|
<div class="line"><a name="l00671"></a><span class="lineno"> 671</span>  </div>
|
|
743
|
-
<div class="line"><a name="l00672"></a><span class="lineno"> 672</span> 
|
|
744
|
-
<div class="line"><a name="l00673"></a><span class="lineno"> 673</span> 
|
|
745
|
-
<div class="line"><a name="l00674"></a><span class="lineno"> 674</span>  </div>
|
|
746
|
-
<div class="line"><a name="l00675"></a><span class="lineno"> 675</span> 
|
|
747
|
-
<div class="line"><a name="l00676"></a><span class="lineno"> 676</span>  </div>
|
|
748
|
-
<div class="line"><a name="l00677"></a><span class="lineno"> 677</span>  <span class="keywordflow">return</span> 0;</div>
|
|
749
|
-
<div class="line"><a name="l00678"></a><span class="lineno"> 678</span> }</div>
|
|
743
|
+
<div class="line"><a name="l00672"></a><span class="lineno"> 672</span>  <a class="code" href="classSVF_1_1LLVMModuleSet.html#a2f8e91c075d90be66412a079fe73e936">LLVMModuleSet::releaseLLVMModuleSet</a>();</div>
|
|
744
|
+
<div class="line"><a name="l00673"></a><span class="lineno"> 673</span>  </div>
|
|
745
|
+
<div class="line"><a name="l00674"></a><span class="lineno"> 674</span>  <span class="keywordflow">return</span> 0;</div>
|
|
746
|
+
<div class="line"><a name="l00675"></a><span class="lineno"> 675</span> }</div>
|
|
750
747
|
</div><!-- fragment --></div><!-- contents -->
|
|
751
|
-
<div class="ttc" id="
|
|
748
|
+
<div class="ttc" id="aclassSVF_1_1AbstractInterpretation_html"><div class="ttname"><a href="classSVF_1_1AbstractInterpretation.html">SVF::AbstractInterpretation</a></div><div class="ttdoc">AbstractInterpretation is same as Abstract Execution.</div><div class="ttdef"><b>Definition:</b> <a href="AbstractInterpretation_8h_source.html#l00107">AbstractInterpretation.h:107</a></div></div>
|
|
752
749
|
<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#l00214">ae.cpp:214</a></div></div>
|
|
753
|
-
<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#
|
|
750
|
+
<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#l00428">ae.cpp:428</a></div></div>
|
|
754
751
|
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_acf40310917909e4234282c0695a43160"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">SVF::LLVMModuleSet::getLLVMModuleSet</a></div><div class="ttdeci">static LLVMModuleSet * getLLVMModuleSet()</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00105">LLVMModule.h:105</a></div></div>
|
|
755
752
|
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_ae919327019b5014f64b754dbdeb07f75"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#ae919327019b5014f64b754dbdeb07f75">SVF::LLVMModuleSet::buildSVFModule</a></div><div class="ttdeci">static SVFModule * buildSVFModule(Module &mod)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l00093">LLVMModule.cpp:93</a></div></div>
|
|
756
753
|
<div class="ttc" id="aclassSVF_1_1IntervalValue_html_a739ab04e16ec1156be71b29d49998a4f"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#a739ab04e16ec1156be71b29d49998a4f">SVF::IntervalValue::plus_infinity</a></div><div class="ttdeci">static NumericLiteral plus_infinity()</div><div class="ttdoc">Get plus infinity +oo.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00072">IntervalValue.h:72</a></div></div>
|
|
@@ -758,70 +755,69 @@ $(function() {
|
|
|
758
755
|
<div class="ttc" id="aBufOverflowChecker_8h_html"><div class="ttname"><a href="BufOverflowChecker_8h.html">BufOverflowChecker.h</a></div></div>
|
|
759
756
|
<div class="ttc" id="aRelExeState_8h_html"><div class="ttname"><a href="RelExeState_8h.html">RelExeState.h</a></div></div>
|
|
760
757
|
<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 & getContext()</div><div class="ttdef"><b>Definition:</b> <a href="ae_8cpp_source.html#l00056">ae.cpp:56</a></div></div>
|
|
761
|
-
<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 &domain, const Z3Expr &phi, u32_t descend_check=0)</div><div class="ttdef"><b>Definition:</b> <a href="RelationSolver_8cpp_source.html#l00036">RelationSolver.cpp:36</a></div></div>
|
|
762
758
|
<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#l00049">ae.cpp:49</a></div></div>
|
|
763
759
|
<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#l00137">ae.cpp:137</a></div></div>
|
|
764
760
|
<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< Key, Hash, KeyEqual, Allocator > Set</div><div class="ttdef"><b>Definition:</b> <a href="GeneralType_8h_source.html#l00096">GeneralType.h:96</a></div></div>
|
|
765
761
|
<div class="ttc" id="anamespaceSVF_html"><div class="ttname"><a href="namespaceSVF.html">SVF</a></div><div class="ttdoc">for isBitcode</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00067">BasicTypes.h:67</a></div></div>
|
|
766
|
-
<div class="ttc" id="aclassSymblicAbstractionTest_html_a2e3d2a2d9a78fffa641523a2e4809c02"><div class="ttname"><a href="classSymblicAbstractionTest.html#a2e3d2a2d9a78fffa641523a2e4809c02">SymblicAbstractionTest::testRelExeState2_4</a></div><div class="ttdeci">void testRelExeState2_4()</div><div class="ttdef"><b>Definition:</b> <a href="ae_8cpp_source.html#
|
|
762
|
+
<div class="ttc" id="aclassSymblicAbstractionTest_html_a2e3d2a2d9a78fffa641523a2e4809c02"><div class="ttname"><a href="classSymblicAbstractionTest.html#a2e3d2a2d9a78fffa641523a2e4809c02">SymblicAbstractionTest::testRelExeState2_4</a></div><div class="ttdeci">void testRelExeState2_4()</div><div class="ttdef"><b>Definition:</b> <a href="ae_8cpp_source.html#l00300">ae.cpp:300</a></div></div>
|
|
767
763
|
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a2f8e91c075d90be66412a079fe73e936"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a2f8e91c075d90be66412a079fe73e936">SVF::LLVMModuleSet::releaseLLVMModuleSet</a></div><div class="ttdeci">static void releaseLLVMModuleSet()</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00112">LLVMModule.h:112</a></div></div>
|
|
768
764
|
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a7c9b7e5fe37ae31ba84d167945ca57df"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a7c9b7e5fe37ae31ba84d167945ca57df">SVF::PointerAnalysis::getPTACallGraph</a></div><div class="ttdeci">PTACallGraph * getPTACallGraph() const</div><div class="ttdoc">Return call graph.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00171">PointerAnalysis.h:171</a></div></div>
|
|
769
|
-
<div class="ttc" id="
|
|
770
|
-
<div class="ttc" id="
|
|
771
|
-
<div class="ttc" id="aclassSymblicAbstractionTest_html_aaba97f696f9518c31af8ace984b39bcf"><div class="ttname"><a href="classSymblicAbstractionTest.html#aaba97f696f9518c31af8ace984b39bcf">SymblicAbstractionTest::testRelExeState2_5</a></div><div class="ttdeci">void testRelExeState2_5()</div><div class="ttdef"><b>Definition:</b> <a href="ae_8cpp_source.html#
|
|
772
|
-
<div class="ttc" id="aclassSymblicAbstractionTest_html_a7c87dfedc9c7b32df42f14334bc732b0"><div class="ttname"><a href="classSymblicAbstractionTest.html#a7c87dfedc9c7b32df42f14334bc732b0">SymblicAbstractionTest::testRelExeState3_3</a></div><div class="ttdeci">void testRelExeState3_3()</div><div class="ttdef"><b>Definition:</b> <a href="ae_8cpp_source.html#
|
|
765
|
+
<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#l00386">ae.cpp:386</a></div></div>
|
|
766
|
+
<div class="ttc" id="aclassSVF_1_1RelationSolver_html_a0bc76a5f96dab54e1c9678312579d51a"><div class="ttname"><a href="classSVF_1_1RelationSolver.html#a0bc76a5f96dab54e1c9678312579d51a">SVF::RelationSolver::RSY</a></div><div class="ttdeci">AbstractState RSY(const AbstractState &domain, const Z3Expr &phi)</div><div class="ttdef"><b>Definition:</b> <a href="RelationSolver_8cpp_source.html#l00114">RelationSolver.cpp:114</a></div></div>
|
|
767
|
+
<div class="ttc" id="aclassSymblicAbstractionTest_html_aaba97f696f9518c31af8ace984b39bcf"><div class="ttname"><a href="classSymblicAbstractionTest.html#aaba97f696f9518c31af8ace984b39bcf">SymblicAbstractionTest::testRelExeState2_5</a></div><div class="ttdeci">void testRelExeState2_5()</div><div class="ttdef"><b>Definition:</b> <a href="ae_8cpp_source.html#l00343">ae.cpp:343</a></div></div>
|
|
768
|
+
<div class="ttc" id="aclassSymblicAbstractionTest_html_a7c87dfedc9c7b32df42f14334bc732b0"><div class="ttname"><a href="classSymblicAbstractionTest.html#a7c87dfedc9c7b32df42f14334bc732b0">SymblicAbstractionTest::testRelExeState3_3</a></div><div class="ttdeci">void testRelExeState3_3()</div><div class="ttdef"><b>Definition:</b> <a href="ae_8cpp_source.html#l00470">ae.cpp:470</a></div></div>
|
|
773
769
|
<div class="ttc" id="aclassSVF_1_1Z3Expr_html_acfdff582a0188678c10939165a40df30"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#acfdff582a0188678c10939165a40df30">SVF::Z3Expr::getContext</a></div><div class="ttdeci">static z3::context & getContext()</div><div class="ttdoc">Get z3 context, singleton design here to make sure we only have one context.</div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8cpp_source.html#l00066">Z3Expr.cpp:66</a></div></div>
|
|
774
770
|
<div class="ttc" id="aclassSVF_1_1Options_html_a76555ba4522accb66d9d38b700e203e0"><div class="ttname"><a href="classSVF_1_1Options.html#a76555ba4522accb66d9d38b700e203e0">SVF::Options::ICFGMergeAdjacentNodes</a></div><div class="ttdeci">static const Option< bool > ICFGMergeAdjacentNodes</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00284">Options.h:284</a></div></div>
|
|
775
771
|
<div class="ttc" id="aclassSVF_1_1IntervalValue_html_a43f48c744f7bda0dc689b8f186449371"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#a43f48c744f7bda0dc689b8f186449371">SVF::IntervalValue::minus_infinity</a></div><div class="ttdeci">static NumericLiteral minus_infinity()</div><div class="ttdoc">Get minus infinity -oo.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00066">IntervalValue.h:66</a></div></div>
|
|
776
772
|
<div class="ttc" id="aae_8cpp_html_acf883aea11ed083025935a7257b5967d"><div class="ttname"><a href="ae_8cpp.html#acf883aea11ed083025935a7257b5967d">SYMABS</a></div><div class="ttdeci">static Option< bool > SYMABS("symabs", "symbolic abstraction test", false)</div></div>
|
|
777
773
|
<div class="ttc" id="aCommandLine_8h_html"><div class="ttname"><a href="CommandLine_8h.html">CommandLine.h</a></div></div>
|
|
774
|
+
<div class="ttc" id="aclassSymblicAbstractionTest_html_a96a651463812ee4cdb597926ba3dc1cf"><div class="ttname"><a href="classSymblicAbstractionTest.html#a96a651463812ee4cdb597926ba3dc1cf">SymblicAbstractionTest::RSY_time</a></div><div class="ttdeci">AbstractState RSY_time(AbstractState &inv, const Z3Expr &phi, RelationSolver &rs)</div><div class="ttdef"><b>Definition:</b> <a href="ae_8cpp_source.html#l00066">ae.cpp:66</a></div></div>
|
|
778
775
|
<div class="ttc" id="aclassSymblicAbstractionTest_html_a99d94e268fb6e622a85a9acae737fd6f"><div class="ttname"><a href="classSymblicAbstractionTest.html#a99d94e268fb6e622a85a9acae737fd6f">SymblicAbstractionTest::test_print</a></div><div class="ttdeci">void test_print()</div><div class="ttdef"><b>Definition:</b> <a href="ae_8cpp_source.html#l00061">ae.cpp:61</a></div></div>
|
|
779
776
|
<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>
|
|
780
777
|
<div class="ttc" id="aclassSVF_1_1SVFIRBuilder_html_a22bd51c6fe770d179867342164ec2767"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#a22bd51c6fe770d179867342164ec2767">SVF::SVFIRBuilder::updateCallGraph</a></div><div class="ttdeci">void updateCallGraph(PTACallGraph *callgraph)</div><div class="ttdoc">connect PAG edges based on callgraph</div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8cpp_source.html#l01097">SVFIRBuilder.cpp:1097</a></div></div>
|
|
781
778
|
<div class="ttc" id="aOptions_8h_html"><div class="ttname"><a href="Options_8h.html">Options.h</a></div></div>
|
|
782
779
|
<div class="ttc" id="aclassOptionBase_html_a4fb6c6e4a1754d702c6c1730f54457e5"><div class="ttname"><a href="classOptionBase.html#a4fb6c6e4a1754d702c6c1730f54457e5">OptionBase::parseOptions</a></div><div class="ttdeci">static std::vector< std::string > parseOptions(int argc, char *argv[], std::string description, std::string callFormat)</div><div class="ttdef"><b>Definition:</b> <a href="CommandLine_8h_source.html#l00075">CommandLine.h:75</a></div></div>
|
|
783
|
-
<div class="ttc" id="
|
|
780
|
+
<div class="ttc" id="aclassSVF_1_1AbstractState_html_adb1ce2a16c501aefa7c902e9bec012f6"><div class="ttname"><a href="classSVF_1_1AbstractState.html#adb1ce2a16c501aefa7c902e9bec012f6">SVF::AbstractState::eqVarToValMap</a></div><div class="ttdeci">static bool eqVarToValMap(const VarToAbsValMap &lhs, const VarToAbsValMap &rhs)</div><div class="ttdef"><b>Definition:</b> <a href="AbstractState_8h_source.html#l00339">AbstractState.h:339</a></div></div>
|
|
784
781
|
<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#l00172">ae.cpp:172</a></div></div>
|
|
782
|
+
<div class="ttc" id="aclassSVF_1_1AbstractState_html_ab8e7d112c380f0c3fe66b487af90c03e"><div class="ttname"><a href="classSVF_1_1AbstractState.html#ab8e7d112c380f0c3fe66b487af90c03e">SVF::AbstractState::VarToAbsValMap</a></div><div class="ttdeci">Map< u32_t, AbstractValue > VarToAbsValMap</div><div class="ttdef"><b>Definition:</b> <a href="AbstractState_8h_source.html#l00059">AbstractState.h:59</a></div></div>
|
|
785
783
|
<div class="ttc" id="aRelationSolver_8h_html"><div class="ttname"><a href="RelationSolver_8h.html">RelationSolver.h</a></div></div>
|
|
786
|
-
<div class="ttc" id="
|
|
787
|
-
<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< u32_t, IntervalValue > VarToValMap</div><div class="ttdef"><b>Definition:</b> <a href="IntervalExeState_8h_source.html#l00059">IntervalExeState.h:59</a></div></div>
|
|
784
|
+
<div class="ttc" id="aclassSVF_1_1AbstractState_html_ae9897b85e3cb2dc675d3a2df76c44878"><div class="ttname"><a href="classSVF_1_1AbstractState.html#ae9897b85e3cb2dc675d3a2df76c44878">SVF::AbstractState::sliceState</a></div><div class="ttdeci">AbstractState sliceState(Set< u32_t > &sl)</div><div class="ttdoc">Copy some values and return a new IntervalExeState.</div><div class="ttdef"><b>Definition:</b> <a href="AbstractState_8h_source.html#l00156">AbstractState.h:156</a></div></div>
|
|
788
785
|
<div class="ttc" id="aWPAPass_8h_html"><div class="ttname"><a href="WPAPass_8h.html">WPAPass.h</a></div></div>
|
|
789
|
-
<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< u32_t > &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>
|
|
790
786
|
<div class="ttc" id="aICFGSimplification_8h_html"><div class="ttname"><a href="ICFGSimplification_8h.html">ICFGSimplification.h</a></div></div>
|
|
791
787
|
<div class="ttc" id="aclassSVF_1_1SVFIRBuilder_html"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html">SVF::SVFIRBuilder</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8h_source.html#l00046">SVFIRBuilder.h:46</a></div></div>
|
|
792
|
-
<div class="ttc" id="aclassSymblicAbstractionTest_html_a66155c2b52131a7782382d8e5da560fc"><div class="ttname"><a href="classSymblicAbstractionTest.html#a66155c2b52131a7782382d8e5da560fc">SymblicAbstractionTest::testsValidation</a></div><div class="ttdeci">void testsValidation()</div><div class="ttdef"><b>Definition:</b> <a href="ae_8cpp_source.html#
|
|
788
|
+
<div class="ttc" id="aclassSymblicAbstractionTest_html_a66155c2b52131a7782382d8e5da560fc"><div class="ttname"><a href="classSymblicAbstractionTest.html#a66155c2b52131a7782382d8e5da560fc">SymblicAbstractionTest::testsValidation</a></div><div class="ttdeci">void testsValidation()</div><div class="ttdef"><b>Definition:</b> <a href="ae_8cpp_source.html#l00598">ae.cpp:598</a></div></div>
|
|
789
|
+
<div class="ttc" id="aclassSymblicAbstractionTest_html_a00618d1c3ca0c30883aad8f95e9f9f30"><div class="ttname"><a href="classSymblicAbstractionTest.html#a00618d1c3ca0c30883aad8f95e9f9f30">SymblicAbstractionTest::BS_time</a></div><div class="ttdeci">AbstractState BS_time(AbstractState &inv, const Z3Expr &phi, RelationSolver &rs)</div><div class="ttdef"><b>Definition:</b> <a href="ae_8cpp_source.html#l00090">ae.cpp:90</a></div></div>
|
|
793
790
|
<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>
|
|
794
|
-
<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 &domain, const Z3Expr &phi)</div><div class="ttdef"><b>Definition:</b> <a href="RelationSolver_8cpp_source.html#l00114">RelationSolver.cpp:114</a></div></div>
|
|
795
791
|
<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>
|
|
796
792
|
<div class="ttc" id="aclassSVF_1_1Options_html_afbe432aabda95308e2c190a04d227a6d"><div class="ttname"><a href="classSVF_1_1Options.html#afbe432aabda95308e2c190a04d227a6d">SVF::Options::BufferOverflowCheck</a></div><div class="ttdeci">static const Option< bool > BufferOverflowCheck</div><div class="ttdoc">buffer overflow checker, Default: false</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00271">Options.h:271</a></div></div>
|
|
797
|
-
<div class="ttc" id="
|
|
793
|
+
<div class="ttc" id="aclassSVF_1_1AbstractState_html"><div class="ttname"><a href="classSVF_1_1AbstractState.html">SVF::AbstractState</a></div><div class="ttdef"><b>Definition:</b> <a href="AbstractState_8h_source.html#l00054">AbstractState.h:54</a></div></div>
|
|
794
|
+
<div class="ttc" id="aae_8cpp_html_a3c04138a5bfe5d72780bb7e82a18e627"><div class="ttname"><a href="ae_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">main</a></div><div class="ttdeci">int main(int argc, char **argv)</div><div class="ttdef"><b>Definition:</b> <a href="ae_8cpp_source.html#l00621">ae.cpp:621</a></div></div>
|
|
795
|
+
<div class="ttc" id="aclassSymblicAbstractionTest_html_ad9539ad539a0e3848b7ad1d65ebe81fe"><div class="ttname"><a href="classSymblicAbstractionTest.html#ad9539ad539a0e3848b7ad1d65ebe81fe">SymblicAbstractionTest::Bilateral_time</a></div><div class="ttdeci">AbstractState Bilateral_time(AbstractState &inv, const Z3Expr &phi, RelationSolver &rs)</div><div class="ttdef"><b>Definition:</b> <a href="ae_8cpp_source.html#l00078">ae.cpp:78</a></div></div>
|
|
796
|
+
<div class="ttc" id="aclassSVF_1_1RelationSolver_html_a98f7e3ae9f43aea178d77a58ac8e927f"><div class="ttname"><a href="classSVF_1_1RelationSolver.html#a98f7e3ae9f43aea178d77a58ac8e927f">SVF::RelationSolver::BS</a></div><div class="ttdeci">AbstractState BS(const AbstractState &domain, const Z3Expr &phi)</div><div class="ttdef"><b>Definition:</b> <a href="RelationSolver_8cpp_source.html#l00269">RelationSolver.cpp:269</a></div></div>
|
|
798
797
|
<div class="ttc" id="aclassSVF_1_1SVFIR_html_abda052b73e869ed6d7c139ad1528da11"><div class="ttname"><a href="classSVF_1_1SVFIR.html#abda052b73e869ed6d7c139ad1528da11">SVF::SVFIR::getICFG</a></div><div class="ttdeci">ICFG * getICFG() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00170">SVFIR.h:170</a></div></div>
|
|
799
798
|
<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 &expr, Set< u32_t > &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>
|
|
800
799
|
<div class="ttc" id="aclassSVF_1_1BufOverflowChecker_html"><div class="ttname"><a href="classSVF_1_1BufOverflowChecker.html">SVF::BufOverflowChecker</a></div><div class="ttdef"><b>Definition:</b> <a href="BufOverflowChecker_8h_source.html#l00103">BufOverflowChecker.h:103</a></div></div>
|
|
801
|
-
<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 &inv, const Z3Expr &phi, RelationSolver &rs)</div><div class="ttdef"><b>Definition:</b> <a href="ae_8cpp_source.html#l00066">ae.cpp:66</a></div></div>
|
|
802
800
|
<div class="ttc" id="aclassSVF_1_1PTACallGraph_html"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html">SVF::PTACallGraph</a></div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00218">PTACallGraph.h:218</a></div></div>
|
|
801
|
+
<div class="ttc" id="aclassSVF_1_1RelationSolver_html_a23c59e437950b139dde49f11eb45b63a"><div class="ttname"><a href="classSVF_1_1RelationSolver.html#a23c59e437950b139dde49f11eb45b63a">SVF::RelationSolver::bilateral</a></div><div class="ttdeci">AbstractState bilateral(const AbstractState &domain, const Z3Expr &phi, u32_t descend_check=0)</div><div class="ttdef"><b>Definition:</b> <a href="RelationSolver_8cpp_source.html#l00036">RelationSolver.cpp:36</a></div></div>
|
|
803
802
|
<div class="ttc" id="aclassSVF_1_1AndersenWaveDiff_html"><div class="ttname"><a href="classSVF_1_1AndersenWaveDiff.html">SVF::AndersenWaveDiff</a></div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00384">Andersen.h:384</a></div></div>
|
|
803
|
+
<div class="ttc" id="aclassSVF_1_1AbstractState_html_a4e4525823fd31c718216c698ed6e0a06"><div class="ttname"><a href="classSVF_1_1AbstractState.html#a4e4525823fd31c718216c698ed6e0a06">SVF::AbstractState::getVarToVal</a></div><div class="ttdeci">const VarToAbsValMap & getVarToVal() const</div><div class="ttdoc">get var2val map</div><div class="ttdef"><b>Definition:</b> <a href="AbstractState_8h_source.html#l00238">AbstractState.h:238</a></div></div>
|
|
804
804
|
<div class="ttc" id="aclassOption_html"><div class="ttname"><a href="classOption.html">Option< bool ></a></div></div>
|
|
805
|
-
<div class="ttc" id="
|
|
806
|
-
<div class="ttc" id="aclassSymblicAbstractionTest_html_ae7b7853f6a6a3cbc2c04d3dfea83ad43"><div class="ttname"><a href="classSymblicAbstractionTest.html#ae7b7853f6a6a3cbc2c04d3dfea83ad43">SymblicAbstractionTest::testRelExeState3_4</a></div><div class="ttdeci">void testRelExeState3_4()</div><div class="ttdef"><b>Definition:</b> <a href="ae_8cpp_source.html#l00514">ae.cpp:514</a></div></div>
|
|
805
|
+
<div class="ttc" id="aclassSymblicAbstractionTest_html_ae7b7853f6a6a3cbc2c04d3dfea83ad43"><div class="ttname"><a href="classSymblicAbstractionTest.html#ae7b7853f6a6a3cbc2c04d3dfea83ad43">SymblicAbstractionTest::testRelExeState3_4</a></div><div class="ttdeci">void testRelExeState3_4()</div><div class="ttdef"><b>Definition:</b> <a href="ae_8cpp_source.html#l00511">ae.cpp:511</a></div></div>
|
|
807
806
|
<div class="ttc" id="aclassSVF_1_1SVFModule_html"><div class="ttname"><a href="classSVF_1_1SVFModule.html">SVF::SVFModule</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00040">SVFModule.h:40</a></div></div>
|
|
808
807
|
<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 & 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>
|
|
809
808
|
<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 &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>
|
|
810
|
-
<div class="ttc" id="
|
|
809
|
+
<div class="ttc" id="aclassSVF_1_1AbstractInterpretation_html_a971a676fb15da74d37de14725bab40b0"><div class="ttname"><a href="classSVF_1_1AbstractInterpretation.html#a971a676fb15da74d37de14725bab40b0">SVF::AbstractInterpretation::runOnModule</a></div><div class="ttdeci">virtual void runOnModule(ICFG *icfg)</div><div class="ttdef"><b>Definition:</b> <a href="AbstractInterpretation_8cpp_source.html#l00087">AbstractInterpretation.cpp:87</a></div></div>
|
|
811
810
|
<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>
|
|
812
|
-
<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 &inv, const Z3Expr &phi, RelationSolver &rs)</div><div class="ttdef"><b>Definition:</b> <a href="ae_8cpp_source.html#l00090">ae.cpp:90</a></div></div>
|
|
813
811
|
<div class="ttc" id="aclassSVF_1_1SVFIR_html"><div class="ttname"><a href="classSVF_1_1SVFIR.html">SVF::SVFIR</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00043">SVFIR.h:43</a></div></div>
|
|
814
812
|
<div class="ttc" id="aclassSVF_1_1SVFIRBuilder_html_a5ecf1deb5646ccb46b0b3101417f4689"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#a5ecf1deb5646ccb46b0b3101417f4689">SVF::SVFIRBuilder::build</a></div><div class="ttdeci">virtual SVFIR * build()</div><div class="ttdoc">Start building SVFIR here.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8cpp_source.html#l00053">SVFIRBuilder.cpp:53</a></div></div>
|
|
815
|
-
<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#
|
|
813
|
+
<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#l00553">ae.cpp:553</a></div></div>
|
|
816
814
|
<div class="ttc" id="aclassSVF_1_1ICFG_html_a5a00682b75726cacc1b4d88bbf40c824"><div class="ttname"><a href="classSVF_1_1ICFG.html#a5a00682b75726cacc1b4d88bbf40c824">SVF::ICFG::updateCallGraph</a></div><div class="ttdeci">void updateCallGraph(PTACallGraph *callgraph)</div><div class="ttdoc">update ICFG for indirect calls</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00459">ICFG.cpp:459</a></div></div>
|
|
817
815
|
<div class="ttc" id="aclassSVF_1_1AndersenWaveDiff_html_a48ff6fc4badc79ad3204ae9bd95cc540"><div class="ttname"><a href="classSVF_1_1AndersenWaveDiff.html#a48ff6fc4badc79ad3204ae9bd95cc540">SVF::AndersenWaveDiff::createAndersenWaveDiff</a></div><div class="ttdeci">static AndersenWaveDiff * createAndersenWaveDiff(SVFIR *_pag)</div><div class="ttdoc">Create an singleton instance directly instead of invoking llvm pass manager.</div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00395">Andersen.h:395</a></div></div>
|
|
818
|
-
<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 & 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>
|
|
819
|
-
<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< Key, Value, Hash, KeyEqual, Allocator > Map</div><div class="ttdef"><b>Definition:</b> <a href="GeneralType_8h_source.html#l00101">GeneralType.h:101</a></div></div>
|
|
820
816
|
<div class="ttc" id="aclassSVF_1_1ICFGSimplification_html_afaea7e3622ee5341a3f28135a2ae8644"><div class="ttname"><a href="classSVF_1_1ICFGSimplification.html#afaea7e3622ee5341a3f28135a2ae8644">SVF::ICFGSimplification::mergeAdjacentNodes</a></div><div class="ttdeci">static void mergeAdjacentNodes(ICFG *icfg)</div><div class="ttdef"><b>Definition:</b> <a href="ICFGSimplification_8cpp_source.html#l00034">ICFGSimplification.cpp:34</a></div></div>
|
|
821
|
-
<div class="ttc" id="aclassSVF_1_1AbstractExecution_html_ac848658bb3069193b1c7b08199b3d4c7"><div class="ttname"><a href="classSVF_1_1AbstractExecution.html#ac848658bb3069193b1c7b08199b3d4c7">SVF::AbstractExecution::runOnModule</a></div><div class="ttdeci">virtual void runOnModule(ICFG *icfg)</div><div class="ttdef"><b>Definition:</b> <a href="AbstractExecution_8cpp_source.html#l00087">AbstractExecution.cpp:87</a></div></div>
|
|
822
817
|
<div class="ttc" id="aSVFIRBuilder_8h_html"><div class="ttname"><a href="SVFIRBuilder_8h.html">SVFIRBuilder.h</a></div></div>
|
|
823
818
|
<div class="ttc" id="aAndersen_8h_html"><div class="ttname"><a href="Andersen_8h.html">Andersen.h</a></div></div>
|
|
824
819
|
<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#l00257">ae.cpp:257</a></div></div>
|
|
820
|
+
<div class="ttc" id="aclassSVF_1_1RelationSolver_html_a04f145c44a67ebda99ccc5a3081239ff"><div class="ttname"><a href="classSVF_1_1RelationSolver.html#a04f145c44a67ebda99ccc5a3081239ff">SVF::RelationSolver::gamma_hat</a></div><div class="ttdeci">Z3Expr gamma_hat(const AbstractState &exeState) const</div><div class="ttdoc">Return Z3Expr according to valToValMap.</div><div class="ttdef"><b>Definition:</b> <a href="RelationSolver_8cpp_source.html#l00199">RelationSolver.cpp:199</a></div></div>
|
|
825
821
|
<!-- start footer part -->
|
|
826
822
|
<hr class="footer"/><address class="footer"><small>
|
|
827
823
|
Generated by  <a href="http://www.doxygen.org/index.html">
|