3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-24 01:25:31 +00:00

use propagation filter

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2019-10-20 15:59:10 -07:00
parent 423e084cda
commit e5504247e9
5 changed files with 217 additions and 29 deletions

View file

@ -388,15 +388,15 @@ namespace sat {
m_touched[l1.var()] = m_touch_index;
m_touched[l2.var()] = m_touch_index;
if (find_binary_watch(get_wlist(~l1), ~l2) && value(l1) == l_undef) {
if (learned && find_binary_watch(get_wlist(~l1), ~l2) && value(l1) == l_undef) {
assign_unit(l1);
return;
}
if (find_binary_watch(get_wlist(~l2), ~l1) && value(l2) == l_undef) {
if (learned && find_binary_watch(get_wlist(~l2), ~l1) && value(l2) == l_undef) {
assign_unit(l2);
return;
}
watched* w0 = find_binary_watch(get_wlist(~l1), l2);
watched* w0 = learned ? find_binary_watch(get_wlist(~l1), l2) : nullptr;
if (w0) {
TRACE("sat", tout << "found binary " << l1 << " " << l2 << "\n";);
if (w0->is_learned() && !learned) {