30#ifndef Z3_EXAMPLE_RELATIONSOLVER_H
31#define Z3_EXAMPLE_RELATIONSOLVER_H
87 void decide_cpa_ext(
const Z3Expr &
phi,
Map<u32_t, Z3Expr>&,
Map<u32_t, s32_t>&,
Map<u32_t, s32_t>&,
Map<u32_t, s32_t>&,
Map<u32_t, s32_t>&);
Z3Expr gamma_hat(const AbstractState &exeState) const
Return Z3Expr according to valToValMap.
AbstractState RSY(const AbstractState &domain, const Z3Expr &phi)
AbstractState bilateral(const AbstractState &domain, const Z3Expr &phi, u32_t descend_check=0)
Map< u32_t, s32_t > BoxedOptSolver(const Z3Expr &phi, Map< u32_t, s32_t > &ret, Map< u32_t, s32_t > &low_values, Map< u32_t, s32_t > &high_values)
AbstractState beta(const Map< u32_t, s32_t > &sigma, const AbstractState &exeState) const
virtual Z3Expr toIntZ3Expr(u32_t varId) const
Return Z3 expression lazily based on SVFVar ID.
void updateMap(Map< u32_t, s32_t > &map, u32_t key, const s32_t &value)
AbstractState abstract_consequence(const AbstractState &lower, const AbstractState &upper, const AbstractState &domain) const
void decide_cpa_ext(const Z3Expr &phi, Map< u32_t, Z3Expr > &, Map< u32_t, s32_t > &, Map< u32_t, s32_t > &, Map< u32_t, s32_t > &, Map< u32_t, s32_t > &)
AbstractState BS(const AbstractState &domain, const Z3Expr &phi)
Z3Expr toRealVal(BoundedDouble f) const
Z3Expr toIntVal(s32_t f) const
static z3::context & getContext()
Get z3 context, singleton design here to make sure we only have one context.
llvm::IRBuilder IRBuilder