mirror of
https://github.com/Z3Prover/z3
synced 2025-06-14 18:06:15 +00:00
parent
da2f5cc362
commit
05da2508bf
4 changed files with 9 additions and 8 deletions
|
@ -586,7 +586,9 @@ class solve_eqs_tactic : public tactic {
|
||||||
bool check_eq_compat_rec(expr_mark& occ, svector<lbool>& cache, expr* f, expr* v, expr* eq, bool& all) {
|
bool check_eq_compat_rec(expr_mark& occ, svector<lbool>& cache, expr* f, expr* v, expr* eq, bool& all) {
|
||||||
expr_ref_vector args(m());
|
expr_ref_vector args(m());
|
||||||
expr* f1 = nullptr;
|
expr* f1 = nullptr;
|
||||||
if (!occ.is_marked(f)) {
|
// flattening may introduce fresh negations,
|
||||||
|
// occ is not defined on these negations
|
||||||
|
if (!m().is_not(f) && !occ.is_marked(f)) {
|
||||||
all = false;
|
all = false;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -682,7 +684,7 @@ class solve_eqs_tactic : public tactic {
|
||||||
hoist_rewriter_star rw(m());
|
hoist_rewriter_star rw(m());
|
||||||
th_rewriter thrw(m());
|
th_rewriter thrw(m());
|
||||||
expr_ref tmp(m()), tmp2(m());
|
expr_ref tmp(m()), tmp2(m());
|
||||||
TRACE("solve_eqs", g.display(tout););
|
// TRACE("solve_eqs", g.display(tout););
|
||||||
for (unsigned idx = 0; idx < size; idx++) {
|
for (unsigned idx = 0; idx < size; idx++) {
|
||||||
checkpoint();
|
checkpoint();
|
||||||
if (g.is_decided_unsat()) break;
|
if (g.is_decided_unsat()) break;
|
||||||
|
|
|
@ -124,7 +124,6 @@ tactic * mk_qfbv_tactic(ast_manager & m, params_ref const & p) {
|
||||||
tactic * new_sat = cond(mk_produce_proofs_probe(),
|
tactic * new_sat = cond(mk_produce_proofs_probe(),
|
||||||
and_then(mk_simplify_tactic(m), mk_smt_tactic(m)),
|
and_then(mk_simplify_tactic(m), mk_smt_tactic(m)),
|
||||||
mk_psat_tactic(m, p));
|
mk_psat_tactic(m, p));
|
||||||
|
|
||||||
return mk_qfbv_tactic(m, p, new_sat, mk_smt_tactic(m, p));
|
return mk_qfbv_tactic(m, p, new_sat, mk_smt_tactic(m, p));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -252,7 +252,6 @@ class gomory::imp {
|
||||||
dump_term_le_k(out << "(assert (not ") << "))\n";
|
dump_term_le_k(out << "(assert (not ") << "))\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void dump_cut_and_constraints_as_smt_lemma(std::ostream& out) const {
|
void dump_cut_and_constraints_as_smt_lemma(std::ostream& out) const {
|
||||||
dump_declarations(out);
|
dump_declarations(out);
|
||||||
dump_the_row(out);
|
dump_the_row(out);
|
||||||
|
@ -260,15 +259,16 @@ class gomory::imp {
|
||||||
dump_the_cut_assert(out);
|
dump_the_cut_assert(out);
|
||||||
out << "(check-sat)\n";
|
out << "(check-sat)\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
lia_move create_cut() {
|
lia_move create_cut() {
|
||||||
TRACE("gomory_cut",
|
TRACE("gomory_cut",
|
||||||
tout << "applying cut at:\n"; print_linear_combination_of_column_indices_only(m_row, tout); tout << std::endl;
|
print_linear_combination_of_column_indices_only(m_row, tout << "applying cut at:\n"); tout << std::endl;
|
||||||
for (auto & p : m_row) {
|
for (auto & p : m_row) {
|
||||||
m_int_solver.m_lar_solver->m_mpq_lar_core_solver.m_r_solver.print_column_info(p.var(), tout);
|
m_int_solver.m_lar_solver->m_mpq_lar_core_solver.m_r_solver.print_column_info(p.var(), tout);
|
||||||
}
|
}
|
||||||
tout << "inf_col = " << m_inf_col << std::endl;
|
tout << "inf_col = " << m_inf_col << std::endl;);
|
||||||
);
|
|
||||||
|
|
||||||
// gomory will be t <= k and the current solution has a property t > k
|
// gomory will be t <= k and the current solution has a property t > k
|
||||||
m_k = 1;
|
m_k = 1;
|
||||||
|
|
|
@ -107,7 +107,7 @@ public:
|
||||||
|
|
||||||
int64_t get_int64() const { return m().get_int64(m_val); }
|
int64_t get_int64() const { return m().get_int64(m_val); }
|
||||||
|
|
||||||
bool is_unsigned() const { return is_uint64() && (get_uint64() < (1ull << 32)); }
|
bool is_unsigned() const { return is_uint64() && (get_uint64() < (1ull << 32ull)); }
|
||||||
|
|
||||||
unsigned get_unsigned() const {
|
unsigned get_unsigned() const {
|
||||||
SASSERT(is_unsigned());
|
SASSERT(is_unsigned());
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue