mirror of
https://github.com/Z3Prover/z3
synced 2025-06-06 22:23:22 +00:00
rename module
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
a086f6218b
commit
fc741cf018
6 changed files with 13 additions and 14 deletions
|
@ -21,6 +21,7 @@ z3_add_component(sat_smt
|
||||||
euf_invariant.cpp
|
euf_invariant.cpp
|
||||||
euf_model.cpp
|
euf_model.cpp
|
||||||
euf_proof.cpp
|
euf_proof.cpp
|
||||||
|
euf_relevancy.cpp
|
||||||
euf_solver.cpp
|
euf_solver.cpp
|
||||||
fpa_solver.cpp
|
fpa_solver.cpp
|
||||||
pb_card.cpp
|
pb_card.cpp
|
||||||
|
@ -38,7 +39,6 @@ z3_add_component(sat_smt
|
||||||
q_solver.cpp
|
q_solver.cpp
|
||||||
recfun_solver.cpp
|
recfun_solver.cpp
|
||||||
sat_th.cpp
|
sat_th.cpp
|
||||||
smt_relevant.cpp
|
|
||||||
user_solver.cpp
|
user_solver.cpp
|
||||||
COMPONENT_DEPENDENCIES
|
COMPONENT_DEPENDENCIES
|
||||||
sat
|
sat
|
||||||
|
|
|
@ -86,7 +86,7 @@ namespace array {
|
||||||
for (auto* arg : euf::enode_args(n))
|
for (auto* arg : euf::enode_args(n))
|
||||||
ensure_var(arg);
|
ensure_var(arg);
|
||||||
internalize_eh(n);
|
internalize_eh(n);
|
||||||
if (ctx.is_relevant(n) || !ctx.relevancy().enabled())
|
if (ctx.is_relevant(n))
|
||||||
relevant_eh(n);
|
relevant_eh(n);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,10 +16,10 @@ Author:
|
||||||
--*/
|
--*/
|
||||||
#include "sat/sat_solver.h"
|
#include "sat/sat_solver.h"
|
||||||
#include "sat/smt/euf_solver.h"
|
#include "sat/smt/euf_solver.h"
|
||||||
#include "sat/smt/smt_relevant.h"
|
#include "sat/smt/euf_relevancy.h"
|
||||||
|
|
||||||
|
|
||||||
namespace smt {
|
namespace euf {
|
||||||
|
|
||||||
relevancy::relevancy(euf::solver& ctx): ctx(ctx) {
|
relevancy::relevancy(euf::solver& ctx): ctx(ctx) {
|
||||||
}
|
}
|
|
@ -97,11 +97,10 @@ Do we need full watch lists instead of 2-watch lists?
|
||||||
#include "sat/sat_solver.h"
|
#include "sat/sat_solver.h"
|
||||||
#include "sat/smt/sat_th.h"
|
#include "sat/smt/sat_th.h"
|
||||||
|
|
||||||
namespace euf {
|
|
||||||
class solver;
|
|
||||||
}
|
|
||||||
|
|
||||||
namespace smt {
|
namespace euf {
|
||||||
|
|
||||||
|
class solver;
|
||||||
|
|
||||||
class relevancy {
|
class relevancy {
|
||||||
euf::solver& ctx;
|
euf::solver& ctx;
|
|
@ -27,7 +27,7 @@ Author:
|
||||||
#include "sat/smt/sat_th.h"
|
#include "sat/smt/sat_th.h"
|
||||||
#include "sat/smt/euf_ackerman.h"
|
#include "sat/smt/euf_ackerman.h"
|
||||||
#include "sat/smt/user_solver.h"
|
#include "sat/smt/user_solver.h"
|
||||||
#include "sat/smt/smt_relevant.h"
|
#include "sat/smt/euf_relevancy.h"
|
||||||
#include "smt/params/smt_params.h"
|
#include "smt/params/smt_params.h"
|
||||||
|
|
||||||
|
|
||||||
|
@ -92,7 +92,7 @@ namespace euf {
|
||||||
std::function<::solver*(void)> m_mk_solver;
|
std::function<::solver*(void)> m_mk_solver;
|
||||||
ast_manager& m;
|
ast_manager& m;
|
||||||
sat::sat_internalizer& si;
|
sat::sat_internalizer& si;
|
||||||
smt::relevancy m_relevancy;
|
relevancy m_relevancy;
|
||||||
smt_params m_config;
|
smt_params m_config;
|
||||||
euf::egraph m_egraph;
|
euf::egraph m_egraph;
|
||||||
trail_stack m_trail;
|
trail_stack m_trail;
|
||||||
|
@ -388,7 +388,7 @@ namespace euf {
|
||||||
bool is_relevant(sat::literal lit) const { return is_relevant(lit.var()); }
|
bool is_relevant(sat::literal lit) const { return is_relevant(lit.var()); }
|
||||||
void relevant_eh(euf::enode* n);
|
void relevant_eh(euf::enode* n);
|
||||||
|
|
||||||
smt::relevancy& relevancy() { return m_relevancy; }
|
relevancy& get_relevancy() { return m_relevancy; }
|
||||||
|
|
||||||
// model construction
|
// model construction
|
||||||
void update_model(model_ref& mdl);
|
void update_model(model_ref& mdl);
|
||||||
|
|
|
@ -69,13 +69,13 @@ namespace q {
|
||||||
m_mam->add_node(n, false);
|
m_mam->add_node(n, false);
|
||||||
};
|
};
|
||||||
ctx.get_egraph().set_on_merge(_on_merge);
|
ctx.get_egraph().set_on_merge(_on_merge);
|
||||||
if (!ctx.relevancy().enabled())
|
if (!ctx.relevancy_enabled())
|
||||||
ctx.get_egraph().set_on_make(_on_make);
|
ctx.get_egraph().set_on_make(_on_make);
|
||||||
m_mam = mam::mk(ctx, *this);
|
m_mam = mam::mk(ctx, *this);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ematch::relevant_eh(euf::enode* n) {
|
void ematch::relevant_eh(euf::enode* n) {
|
||||||
if (ctx.relevancy().enabled())
|
if (ctx.relevancy_enabled())
|
||||||
m_mam->add_node(n, false);
|
m_mam->add_node(n, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -358,7 +358,7 @@ namespace q {
|
||||||
if (m_prop_queue.empty())
|
if (m_prop_queue.empty())
|
||||||
return false;
|
return false;
|
||||||
for (unsigned i = 0; i < m_prop_queue.size(); ++i) {
|
for (unsigned i = 0; i < m_prop_queue.size(); ++i) {
|
||||||
auto [is_conflict, idx, j_idx] = m_prop_queue[i];
|
auto const& [is_conflict, idx, j_idx] = m_prop_queue[i];
|
||||||
propagate(is_conflict, idx, j_idx);
|
propagate(is_conflict, idx, j_idx);
|
||||||
}
|
}
|
||||||
m_prop_queue.reset();
|
m_prop_queue.reset();
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue