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(
958
958
PRECONDITION (size_bv.size () == postponed.bv .size ());
959
959
960
960
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
961
971
literalt l2=bv_utils.equal (postponed.bv , size_bv);
962
972
963
973
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
964
981
}
965
982
}
966
983
else
You can’t perform that action at this time.
0 commit comments