Skip to content

Commit 84092cb

Browse files
add engine-init to control model transfer
Signed-off-by: Nikolaj Bjorner <[email protected]>
1 parent 51f1e26 commit 84092cb

File tree

2 files changed

+18
-7
lines changed

2 files changed

+18
-7
lines changed

src/ast/sls/bv_sls.cpp

+17-7
Original file line numberDiff line numberDiff line change
@@ -101,16 +101,24 @@ namespace bv {
101101

102102
std::function<bool(expr*, unsigned)> eval = [&](expr* e, unsigned i) {
103103
unsigned id = e->get_id();
104-
bool keep = (m_rand() % 100 <= 50) || !m_to_repair.contains(id);
105-
if (m.is_bool(e) && (m_eval.is_fixed0(e) || keep))
106-
return m_eval.bval0(e);
104+
bool keep = !m_to_repair.contains(id);
105+
if (m.is_bool(e)) {
106+
if (m_eval.is_fixed0(e) || keep)
107+
return m_eval.bval0(e);
108+
if (m_engine_init) {
109+
auto const& z = m_engine.get_value(e);
110+
return rational(z).get_bit(0);
111+
}
112+
}
107113
else if (bv.is_bv(e)) {
108114
auto& w = m_eval.wval(e);
109115
if (w.fixed.get(i) || keep)
110116
return w.get_bit(i);
111-
//auto const& z = m_engine.get_value(e);
112-
//return rational(z).get_bit(i);
113-
}
117+
if (m_engine_init) {
118+
auto const& z = m_engine.get_value(e);
119+
return rational(z).get_bit(i);
120+
}
121+
}
114122

115123
return m_rand() % 2 == 0;
116124
};
@@ -177,7 +185,8 @@ namespace bv {
177185
else if (m_stats.m_restarts % 1000 == 0)
178186
res = m_engine.search_loop();
179187
if (res != l_undef)
180-
m_engine_model = true;
188+
m_engine_model = true;
189+
m_engine_init = true;
181190
return res;
182191
}
183192

@@ -187,6 +196,7 @@ namespace bv {
187196
m_stats.reset();
188197
m_stats.m_restarts = 0;
189198
m_engine_model = false;
199+
m_engine_init = false;
190200

191201
do {
192202
res = search1();

src/ast/sls/bv_sls.h

+1
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ namespace bv {
5252
config m_config;
5353
sls_engine m_engine;
5454
bool m_engine_model = false;
55+
bool m_engine_init = false;
5556

5657
std::pair<bool, app*> next_to_repair();
5758

0 commit comments

Comments
 (0)