Exemplo n.º 1
0
 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
Exemplo n.º 2
0
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"
Exemplo n.º 3
0
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'
Exemplo n.º 4
0
 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
Exemplo n.º 5
0
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)
Exemplo n.º 6
0
def model_sx_word(m, sx):
    v = search.eval_model(m, sx)
    x = expr_num(v)
    return solver.smt_num_t(x, v.typ)