mirror of
https://github.com/Z3Prover/z3
synced 2025-04-07 18:05:21 +00:00
fix build break
This commit is contained in:
parent
33525007ab
commit
6f346bf804
|
@ -1936,5 +1936,3 @@ void core::collect_statistics(::statistics & st) {
|
|||
|
||||
} // end of nla
|
||||
|
||||
template void nla::intervals::set_var_interval<dd::w_dep::without_deps>(lpvar v, nla::intervals::interval& b);
|
||||
template void nla::intervals::set_var_interval<dd::w_dep::with_deps>(lpvar v, nla::intervals::interval& b);
|
||||
|
|
|
@ -23,13 +23,13 @@ namespace q {
|
|||
std::ostream& lit::display(std::ostream& out) const {
|
||||
ast_manager& m = lhs.m();
|
||||
if (m.is_true(rhs) && !sign)
|
||||
return out << lhs;
|
||||
return out << mk_bounded_pp(lhs, m, 2);
|
||||
if (m.is_false(rhs) && !sign)
|
||||
return out << "(not " << lhs << ")";
|
||||
return out << "(not " << mk_bounded_pp(lhs, m, 2) << ")";
|
||||
return
|
||||
out << mk_bounded_pp(lhs, lhs.m(), 2)
|
||||
out << mk_bounded_pp(lhs, m, 2)
|
||||
<< (sign ? " != " : " == ")
|
||||
<< mk_bounded_pp(rhs, rhs.m(), 2);
|
||||
<< mk_bounded_pp(rhs, m, 2);
|
||||
}
|
||||
|
||||
std::ostream& clause::display(euf::solver& ctx, std::ostream& out) const {
|
||||
|
|
|
@ -7,7 +7,7 @@ Module Name:
|
|||
|
||||
Abstract:
|
||||
|
||||
Clause and literals
|
||||
Literals, clauses, justifications for quantifier instantiation
|
||||
|
||||
Author:
|
||||
|
||||
|
@ -49,7 +49,6 @@ namespace q {
|
|||
euf::enode* const* nodes() { return m_nodes; }
|
||||
|
||||
euf::enode* operator[](unsigned i) const { return m_nodes[i]; }
|
||||
|
||||
};
|
||||
|
||||
struct clause {
|
||||
|
|
|
@ -328,7 +328,26 @@ namespace q {
|
|||
return l.sign ? ~ctx.mk_literal(fml) : ctx.mk_literal(fml);
|
||||
}
|
||||
|
||||
struct ematch::reset_in_queue : public trail<euf::solver> {
|
||||
ematch& e;
|
||||
reset_in_queue(ematch& e) :e(e) {}
|
||||
|
||||
void undo(euf::solver& ctx) override {
|
||||
e.m_node_in_queue.reset();
|
||||
e.m_clause_in_queue.reset();
|
||||
e.m_in_queue_set = false;
|
||||
}
|
||||
|
||||
static void insert(ematch& e) {
|
||||
if (!e.m_in_queue_set) {
|
||||
e.m_in_queue_set = true;
|
||||
e.ctx.push(reset_in_queue(e));
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
void ematch::insert_to_propagate(unsigned node_id) {
|
||||
reset_in_queue::insert(*this);
|
||||
m_node_in_queue.assure_domain(node_id);
|
||||
if (m_node_in_queue.contains(node_id))
|
||||
return;
|
||||
|
@ -338,6 +357,7 @@ namespace q {
|
|||
}
|
||||
|
||||
void ematch::insert_clause_in_queue(unsigned idx) {
|
||||
reset_in_queue::insert(*this);
|
||||
m_clause_in_queue.assure_domain(idx);
|
||||
if (!m_clause_in_queue.contains(idx)) {
|
||||
m_clause_in_queue.insert(idx);
|
||||
|
@ -482,6 +502,7 @@ namespace q {
|
|||
}
|
||||
m_clause_in_queue.reset();
|
||||
m_node_in_queue.reset();
|
||||
m_in_queue_set = true;
|
||||
if (m_inst_queue.propagate())
|
||||
propagated = true;
|
||||
return propagated;
|
||||
|
|
|
@ -53,6 +53,7 @@ namespace q {
|
|||
struct insert_binding;
|
||||
struct pop_clause;
|
||||
struct scoped_mark_reset;
|
||||
struct reset_in_queue;
|
||||
|
||||
|
||||
euf::solver& ctx;
|
||||
|
@ -73,6 +74,7 @@ namespace q {
|
|||
expr_fast_mark1 m_mark;
|
||||
unsigned m_generation_propagation_threshold{ 3 };
|
||||
ptr_vector<app> m_ground;
|
||||
bool m_in_queue_set{ false };
|
||||
nat_set m_node_in_queue;
|
||||
nat_set m_clause_in_queue;
|
||||
unsigned m_qhead { 0 };
|
||||
|
|
Loading…
Reference in a new issue