mirror of
https://github.com/Z3Prover/z3
synced 2025-06-04 05:11:21 +00:00
Merge branch 'lackr' of github.com:MikolasJanota/z3 into lackr
This commit is contained in:
commit
21b332235a
2 changed files with 8 additions and 9 deletions
|
@ -481,8 +481,6 @@ tactic * mk_bv1_blaster_tactic(ast_manager & m, params_ref const & p) {
|
||||||
class is_qfbv_eq_probe : public probe {
|
class is_qfbv_eq_probe : public probe {
|
||||||
public:
|
public:
|
||||||
virtual result operator()(goal const & g) {
|
virtual result operator()(goal const & g) {
|
||||||
bv_rewriter rw(g.m());
|
|
||||||
if (!rw.hi_div0()) return false;
|
|
||||||
bv1_blaster_tactic t(g.m());
|
bv1_blaster_tactic t(g.m());
|
||||||
return t.is_target(g);
|
return t.is_target(g);
|
||||||
|
|
||||||
|
|
|
@ -102,11 +102,12 @@ tactic * mk_qfbv_tactic(ast_manager& m, params_ref const & p, tactic* sat, tacti
|
||||||
tactic* preamble_st = mk_qfbv_preamble(m, p);
|
tactic* preamble_st = mk_qfbv_preamble(m, p);
|
||||||
tactic * st = main_p(and_then(preamble_st,
|
tactic * st = main_p(and_then(preamble_st,
|
||||||
// If the user sets HI_DIV0=false, then the formula may contain uninterpreted function
|
// If the user sets HI_DIV0=false, then the formula may contain uninterpreted function
|
||||||
// symbols. In this case, we should not use
|
// symbols. In this case, we should not use the `sat', but instead `smt'. Alternatively,
|
||||||
cond(mk_is_qfbv_probe(),
|
// the UFs can be eliminated by eager ackermannization in the preamble.
|
||||||
cond(mk_is_qfbv_eq_probe(),
|
cond(mk_is_qfbv_eq_probe(),
|
||||||
and_then(mk_bv1_blaster_tactic(m),
|
and_then(mk_bv1_blaster_tactic(m),
|
||||||
using_params(smt, solver_p)),
|
using_params(smt, solver_p)),
|
||||||
|
cond(mk_is_qfbv_probe(),
|
||||||
and_then(mk_bit_blaster_tactic(m),
|
and_then(mk_bit_blaster_tactic(m),
|
||||||
when(mk_lt(mk_memory_probe(), mk_const_probe(MEMLIMIT)),
|
when(mk_lt(mk_memory_probe(), mk_const_probe(MEMLIMIT)),
|
||||||
and_then(using_params(and_then(mk_simplify_tactic(m),
|
and_then(using_params(and_then(mk_simplify_tactic(m),
|
||||||
|
@ -116,8 +117,8 @@ tactic * mk_qfbv_tactic(ast_manager& m, params_ref const & p, tactic* sat, tacti
|
||||||
mk_aig_tactic(),
|
mk_aig_tactic(),
|
||||||
using_params(mk_aig_tactic(),
|
using_params(mk_aig_tactic(),
|
||||||
big_aig_p))))),
|
big_aig_p))))),
|
||||||
sat)),
|
sat),
|
||||||
smt)));
|
smt))));
|
||||||
|
|
||||||
st->updt_params(p);
|
st->updt_params(p);
|
||||||
return st;
|
return st;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue