3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-15 13:28:47 +00:00

Merge branch 'unstable' of https://git01.codeplex.com/z3 into unstable

This commit is contained in:
Nuno Lopes 2013-03-27 10:39:15 -07:00
commit 96f4606a7f
11 changed files with 20 additions and 17 deletions

View file

@ -373,7 +373,7 @@ extern "C" {
scoped_anum_vector roots(_am); scoped_anum_vector roots(_am);
{ {
cancel_eh<algebraic_numbers::manager> eh(_am); cancel_eh<algebraic_numbers::manager> eh(_am);
api::context::set_interruptable(*(mk_c(c)), eh); api::context::set_interruptable si(*(mk_c(c)), eh);
scoped_timer timer(mk_c(c)->params().m_timeout, &eh); scoped_timer timer(mk_c(c)->params().m_timeout, &eh);
vector_var2anum v2a(as); vector_var2anum v2a(as);
_am.isolate_roots(_p, v2a, roots); _am.isolate_roots(_p, v2a, roots);
@ -408,7 +408,7 @@ extern "C" {
} }
{ {
cancel_eh<algebraic_numbers::manager> eh(_am); cancel_eh<algebraic_numbers::manager> eh(_am);
api::context::set_interruptable(*(mk_c(c)), eh); api::context::set_interruptable si(*(mk_c(c)), eh);
scoped_timer timer(mk_c(c)->params().m_timeout, &eh); scoped_timer timer(mk_c(c)->params().m_timeout, &eh);
vector_var2anum v2a(as); vector_var2anum v2a(as);
int r = _am.eval_sign_at(_p, v2a); int r = _am.eval_sign_at(_p, v2a);

View file

@ -681,7 +681,7 @@ extern "C" {
th_rewriter m_rw(m, p); th_rewriter m_rw(m, p);
expr_ref result(m); expr_ref result(m);
cancel_eh<th_rewriter> eh(m_rw); cancel_eh<th_rewriter> eh(m_rw);
api::context::set_interruptable(*(mk_c(c)), eh); api::context::set_interruptable si(*(mk_c(c)), eh);
{ {
scoped_ctrl_c ctrlc(eh, false, use_ctrl_c); scoped_ctrl_c ctrlc(eh, false, use_ctrl_c);
scoped_timer timer(timeout, &eh); scoped_timer timer(timeout, &eh);

View file

@ -266,7 +266,7 @@ extern "C" {
lbool r = l_undef; lbool r = l_undef;
cancel_eh<api::fixedpoint_context> eh(*to_fixedpoint_ref(d)); cancel_eh<api::fixedpoint_context> eh(*to_fixedpoint_ref(d));
unsigned timeout = to_fixedpoint(d)->m_params.get_uint("timeout", mk_c(c)->get_timeout()); unsigned timeout = to_fixedpoint(d)->m_params.get_uint("timeout", mk_c(c)->get_timeout());
api::context::set_interruptable(*(mk_c(c)), eh); api::context::set_interruptable si(*(mk_c(c)), eh);
{ {
scoped_timer timer(timeout, &eh); scoped_timer timer(timeout, &eh);
try { try {
@ -291,7 +291,7 @@ extern "C" {
lbool r = l_undef; lbool r = l_undef;
unsigned timeout = to_fixedpoint(d)->m_params.get_uint("timeout", mk_c(c)->get_timeout()); unsigned timeout = to_fixedpoint(d)->m_params.get_uint("timeout", mk_c(c)->get_timeout());
cancel_eh<api::fixedpoint_context> eh(*to_fixedpoint_ref(d)); cancel_eh<api::fixedpoint_context> eh(*to_fixedpoint_ref(d));
api::context::set_interruptable(*(mk_c(c)), eh); api::context::set_interruptable si(*(mk_c(c)), eh);
{ {
scoped_timer timer(timeout, &eh); scoped_timer timer(timeout, &eh);
try { try {

View file

@ -67,7 +67,7 @@ extern "C" {
expr_ref _r(mk_c(c)->m()); expr_ref _r(mk_c(c)->m());
{ {
cancel_eh<polynomial::manager> eh(pm); cancel_eh<polynomial::manager> eh(pm);
api::context::set_interruptable(*(mk_c(c)), eh); api::context::set_interruptable si(*(mk_c(c)), eh);
scoped_timer timer(mk_c(c)->params().m_timeout, &eh); scoped_timer timer(mk_c(c)->params().m_timeout, &eh);
pm.psc_chain(_p, _q, v_x, rs); pm.psc_chain(_p, _q, v_x, rs);
} }

View file

@ -243,7 +243,7 @@ extern "C" {
unsigned timeout = to_solver(s)->m_params.get_uint("timeout", mk_c(c)->get_timeout()); unsigned timeout = to_solver(s)->m_params.get_uint("timeout", mk_c(c)->get_timeout());
bool use_ctrl_c = to_solver(s)->m_params.get_bool("ctrl_c", false); bool use_ctrl_c = to_solver(s)->m_params.get_bool("ctrl_c", false);
cancel_eh<solver> eh(*to_solver_ref(s)); cancel_eh<solver> eh(*to_solver_ref(s));
api::context::set_interruptable(*(mk_c(c)), eh); api::context::set_interruptable si(*(mk_c(c)), eh);
lbool result; lbool result;
{ {
scoped_ctrl_c ctrlc(eh, false, use_ctrl_c); scoped_ctrl_c ctrlc(eh, false, use_ctrl_c);

View file

@ -73,7 +73,7 @@ extern "C" {
RESET_ERROR_CODE(); RESET_ERROR_CODE();
CHECK_SEARCHING(c); CHECK_SEARCHING(c);
cancel_eh<smt::kernel> eh(mk_c(c)->get_smt_kernel()); cancel_eh<smt::kernel> eh(mk_c(c)->get_smt_kernel());
api::context::set_interruptable(*(mk_c(c)), eh); api::context::set_interruptable si(*(mk_c(c)), eh);
flet<bool> _model(mk_c(c)->fparams().m_model, true); flet<bool> _model(mk_c(c)->fparams().m_model, true);
lbool result; lbool result;
try { try {
@ -123,7 +123,7 @@ extern "C" {
expr * const* _assumptions = to_exprs(assumptions); expr * const* _assumptions = to_exprs(assumptions);
flet<bool> _model(mk_c(c)->fparams().m_model, true); flet<bool> _model(mk_c(c)->fparams().m_model, true);
cancel_eh<smt::kernel> eh(mk_c(c)->get_smt_kernel()); cancel_eh<smt::kernel> eh(mk_c(c)->get_smt_kernel());
api::context::set_interruptable(*(mk_c(c)), eh); api::context::set_interruptable si(*(mk_c(c)), eh);
lbool result; lbool result;
result = mk_c(c)->get_smt_kernel().check(num_assumptions, _assumptions); result = mk_c(c)->get_smt_kernel().check(num_assumptions, _assumptions);
if (result != l_false && m) { if (result != l_false && m) {

View file

@ -410,7 +410,7 @@ extern "C" {
to_tactic_ref(t)->updt_params(p); to_tactic_ref(t)->updt_params(p);
api::context::set_interruptable(*(mk_c(c)), eh); api::context::set_interruptable si(*(mk_c(c)), eh);
{ {
scoped_ctrl_c ctrlc(eh, false, use_ctrl_c); scoped_ctrl_c ctrlc(eh, false, use_ctrl_c);
scoped_timer timer(timeout, &eh); scoped_timer timer(timeout, &eh);

View file

@ -18,6 +18,7 @@ Author:
#include"ast_pp.h" #include"ast_pp.h"
#include"ast_util.h" #include"ast_util.h"
#include"ast_smt2_pp.h" #include"ast_smt2_pp.h"
#include"ast_ll_pp.h"
poly_simplifier_plugin::poly_simplifier_plugin(symbol const & fname, ast_manager & m, decl_kind add, decl_kind mul, decl_kind uminus, decl_kind sub, poly_simplifier_plugin::poly_simplifier_plugin(symbol const & fname, ast_manager & m, decl_kind add, decl_kind mul, decl_kind uminus, decl_kind sub,
decl_kind num): decl_kind num):
@ -173,7 +174,7 @@ void poly_simplifier_plugin::mk_monomial(unsigned num_args, expr * * args, expr_
result = args[0]; result = args[0];
break; break;
default: default:
std::sort(args, args + num_args, monomial_element_lt_proc(*this)); std::stable_sort(args, args + num_args, monomial_element_lt_proc(*this));
result = mk_mul(num_args, args); result = mk_mul(num_args, args);
SASSERT(wf_monomial(result)); SASSERT(wf_monomial(result));
break; break;
@ -465,7 +466,9 @@ void poly_simplifier_plugin::mk_sum_of_monomials(expr_ref_vector & monomials, ex
result = monomials.get(0); result = monomials.get(0);
break; break;
default: { default: {
std::sort(monomials.c_ptr(), monomials.c_ptr() + monomials.size(), monomial_lt_proc(*this)); TRACE("mk_sum_sort", tout << "before\n"; for (unsigned i = 0; i < monomials.size(); i++) tout << mk_ll_pp(monomials.get(i), m_manager) << "\n";);
std::stable_sort(monomials.c_ptr(), monomials.c_ptr() + monomials.size(), monomial_lt_proc(*this));
TRACE("mk_sum_sort", tout << "after\n"; for (unsigned i = 0; i < monomials.size(); i++) tout << mk_ll_pp(monomials.get(i), m_manager) << "\n";);
if (is_simple_sum_of_monomials(monomials)) { if (is_simple_sum_of_monomials(monomials)) {
mk_sum_of_monomials_core(monomials.size(), monomials.c_ptr(), result); mk_sum_of_monomials_core(monomials.size(), monomials.c_ptr(), result);
return; return;

View file

@ -653,7 +653,7 @@ void asserted_formulas::propagate_values() {
// will be (silently) eliminated, and models produced by Z3 will not contain them. // will be (silently) eliminated, and models produced by Z3 will not contain them.
flush_cache(); flush_cache();
} }
TRACE("propagate_values", tout << "afer:\n"; display(tout);); TRACE("propagate_values", tout << "after:\n"; display(tout););
} }
void asserted_formulas::propagate_booleans() { void asserted_formulas::propagate_booleans() {

View file

@ -269,7 +269,7 @@ class max_bv_sharing_tactic : public tactic {
m_rw.cfg().cleanup(); m_rw.cfg().cleanup();
g->inc_depth(); g->inc_depth();
result.push_back(g.get()); result.push_back(g.get());
TRACE("qe", g->display(tout);); TRACE("max_bv_sharing", g->display(tout););
SASSERT(g->is_well_sorted()); SASSERT(g->is_well_sorted());
} }
}; };

View file

@ -165,7 +165,7 @@ class propagate_values_tactic : public tactic {
m_occs(*m_goal); m_occs(*m_goal);
while (true) { while (true) {
TRACE("propagate_values", m_goal->display(tout);); TRACE("propagate_values", tout << "while(true) loop\n"; m_goal->display(tout););
if (forward) { if (forward) {
for (; m_idx < size; m_idx++) { for (; m_idx < size; m_idx++) {
process_current(); process_current();
@ -201,14 +201,14 @@ class propagate_values_tactic : public tactic {
if (round >= m_max_rounds) if (round >= m_max_rounds)
break; break;
IF_VERBOSE(100, verbose_stream() << "starting new round, goal size: " << m_goal->num_exprs() << std::endl;); IF_VERBOSE(100, verbose_stream() << "starting new round, goal size: " << m_goal->num_exprs() << std::endl;);
TRACE("propgate_values", tout << "round finished\n"; m_goal->display(tout); tout << "\n";); TRACE("propagate_values", tout << "round finished\n"; m_goal->display(tout); tout << "\n";);
} }
end: end:
m_goal->elim_redundancies(); m_goal->elim_redundancies();
m_goal->inc_depth(); m_goal->inc_depth();
result.push_back(m_goal); result.push_back(m_goal);
SASSERT(m_goal->is_well_sorted()); SASSERT(m_goal->is_well_sorted());
TRACE("propagate_values", m_goal->display(tout);); TRACE("propagate_values", tout << "end\n"; m_goal->display(tout););
TRACE("propagate_values_core", m_goal->display_with_dependencies(tout);); TRACE("propagate_values_core", m_goal->display_with_dependencies(tout););
m_goal = 0; m_goal = 0;
} }