mirror of
https://github.com/Z3Prover/z3
synced 2025-08-09 20:50:50 +00:00
parent
3e059a3a3b
commit
f79dccccfe
4 changed files with 36 additions and 17 deletions
|
@ -401,15 +401,18 @@ struct purify_arith_proc {
|
|||
return BR_DONE;
|
||||
|
||||
bool is_int = u().is_int(args[0]);
|
||||
expr * x = args[0];
|
||||
rational xr;
|
||||
if (u().is_numeral(x, xr) && xr.is_zero())
|
||||
return BR_FAILED;
|
||||
|
||||
expr * k = mk_fresh_var(is_int);
|
||||
result = k;
|
||||
mk_def_proof(k, t, result_pr);
|
||||
cache_result(t, result, result_pr);
|
||||
|
||||
expr * x = args[0];
|
||||
expr * zero = u().mk_numeral(rational(0), is_int);
|
||||
expr * one = u().mk_numeral(rational(1), is_int);
|
||||
expr_ref zero(u().mk_numeral(rational(0), is_int), m());
|
||||
expr_ref one(u().mk_numeral(rational(1), is_int), m());
|
||||
if (y.is_zero()) {
|
||||
// (^ x 0) --> k | x != 0 implies k = 1, x = 0 implies k = 0^0
|
||||
push_cnstr(OR(EQ(x, zero), EQ(k, one)));
|
||||
|
|
|
@ -98,7 +98,6 @@ static tactic * mk_qfnia_nlsat_solver(ast_manager & m, params_ref const & p) {
|
|||
simp_p.set_bool("som", true); // expand into sums of monomials
|
||||
simp_p.set_bool("factor", false);
|
||||
|
||||
|
||||
return and_then(using_params(mk_simplify_tactic(m), simp_p),
|
||||
try_for(mk_qfnra_nlsat_tactic(m, simp_p), 3000),
|
||||
mk_fail_if_undecided_tactic());
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue