def eval(expr, env): try: s = solver.smt_expr(expr, env, rep.solv) s_x = solver.parse_s_expression(s) ev = search.eval_model(m, s_x) return (s, solver.smt_expr(ev, {}, None)) except solver.EnvMiss, e: return None
def eval_model_bool(m, x): if hasattr(x, "typ"): x = solver.smt_expr(x, {}, None) x = solver.parse_s_expression(x) try: r = search.eval_model(m, x) assert r in [syntax.true_term, syntax.false_term], r return r == syntax.true_term except: return "EXCEPT"
def eval_model_bool(m, x): if hasattr(x, 'typ'): x = solver.smt_expr(x, {}, None) x = solver.parse_s_expression(x) try: r = search.eval_model(m, x) assert r in [syntax.true_term, syntax.false_term], r return r == syntax.true_term except: return 'EXCEPT'
def fetch((n, vc)): if n in vds and [(nm, typ) for (nm, typ) in vs if (nm, typ) not in vds[n]]: return None try: (_, env) = rep.get_node_pc_env((n, vc), tag) s = solver.smt_expr(v, env, rep.solv) s_x = solver.parse_s_expression(s) ev = search.eval_model(m, s_x) return (s, solver.smt_expr(ev, {}, None)) except solver.EnvMiss, e: return None
def model_sx_word(m, sx): v = search.eval_model(m, sx) assert v.typ.kind == "Word" x = v.val & ((1 << v.typ.num) - 1) return solver.smt_num(x, v.typ.num)
def model_sx_word(m, sx): v = search.eval_model(m, sx) x = expr_num(v) return solver.smt_num_t(x, v.typ)