mirror of
https://github.com/Z3Prover/z3
synced 2025-05-08 08:15:47 +00:00
handle eq-propagate arithetic rule
This commit is contained in:
parent
763ae0d246
commit
749f95c9d7
5 changed files with 166 additions and 14 deletions
|
@ -446,6 +446,17 @@ iz3mgr::ast iz3mgr::z3_simplify(const ast &e){
|
|||
return cook(result);
|
||||
}
|
||||
|
||||
iz3mgr::ast iz3mgr::z3_really_simplify(const ast &e){
|
||||
::expr * a = to_expr(e.raw());
|
||||
params_ref simp_params;
|
||||
simp_params.set_bool(":som",true);
|
||||
simp_params.set_bool(":sort-sums",true);
|
||||
th_rewriter m_rw(m(), simp_params);
|
||||
expr_ref result(m());
|
||||
m_rw(a, result);
|
||||
return cook(result);
|
||||
}
|
||||
|
||||
|
||||
#if 0
|
||||
static rational lcm(const rational &x, const rational &y){
|
||||
|
@ -485,6 +496,15 @@ static void abs_rat(std::vector<rational> &rats){
|
|||
}
|
||||
}
|
||||
|
||||
bool iz3mgr::is_farkas_coefficient_negative(const ast &proof, int n){
|
||||
rational r;
|
||||
symb s = sym(proof);
|
||||
bool ok = s->get_parameter(n+2).is_rational(r);
|
||||
if(!ok)
|
||||
throw "Bad Farkas coefficient";
|
||||
return r.is_neg();
|
||||
}
|
||||
|
||||
void iz3mgr::get_farkas_coeffs(const ast &proof, std::vector<rational>& rats){
|
||||
symb s = sym(proof);
|
||||
int numps = s->get_num_parameters();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue