File tree Expand file tree Collapse file tree 1 file changed +17
-0
lines changed
Expand file tree Collapse file tree 1 file changed +17
-0
lines changed Original file line number Diff line number Diff line change @@ -958,9 +958,26 @@ void bv_pointerst::do_postponed(
958958 PRECONDITION (size_bv.size () == postponed.bv .size ());
959959
960960 literalt l1=bv_utils.equal (bv, saved_bv);
961+ if (l1.is_true ())
962+ {
963+ for (std::size_t i = 0 ; i < postponed.bv .size (); ++i)
964+ prop.set_equal (postponed.bv [i], size_bv[i]);
965+ break ;
966+ }
967+ else if (l1.is_false ())
968+ continue ;
969+ #define COMPACT_OBJECT_SIZE_EQ
970+ #ifndef COMPACT_OBJECT_SIZE_EQ
961971 literalt l2=bv_utils.equal (postponed.bv , size_bv);
962972
963973 prop.l_set_to_true (prop.limplies (l1, l2));
974+ #else
975+ for (std::size_t i = 0 ; i < postponed.bv .size (); ++i)
976+ {
977+ prop.lcnf ({!l1, !postponed.bv [i], size_bv[i]});
978+ prop.lcnf ({!l1, postponed.bv [i], !size_bv[i]});
979+ }
980+ #endif
964981 }
965982 }
966983 else
You can’t perform that action at this time.
0 commit comments