mirror of
https://github.com/Z3Prover/z3
synced 2025-07-19 02:42:02 +00:00
fix #6692
This commit is contained in:
parent
97b66d13c0
commit
1319b64bb0
1 changed files with 6 additions and 5 deletions
|
@ -2858,19 +2858,20 @@ namespace pb {
|
||||||
|
|
||||||
void solver::subsumes(pbc& p1, literal lit) {
|
void solver::subsumes(pbc& p1, literal lit) {
|
||||||
for (constraint* c : m_cnstr_use_list[lit.index()]) {
|
for (constraint* c : m_cnstr_use_list[lit.index()]) {
|
||||||
if (c == &p1 || c->was_removed()) continue;
|
if (c == &p1 || c->was_removed() || c->lit() != sat::null_literal)
|
||||||
bool s = false;
|
continue;
|
||||||
|
bool sub = false;
|
||||||
switch (c->tag()) {
|
switch (c->tag()) {
|
||||||
case pb::tag_t::card_t:
|
case pb::tag_t::card_t:
|
||||||
s = subsumes(p1, c->to_card());
|
sub = subsumes(p1, c->to_card());
|
||||||
break;
|
break;
|
||||||
case pb::tag_t::pb_t:
|
case pb::tag_t::pb_t:
|
||||||
s = subsumes(p1, c->to_pb());
|
sub = subsumes(p1, c->to_pb());
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (s) {
|
if (sub) {
|
||||||
++m_stats.m_num_pb_subsumes;
|
++m_stats.m_num_pb_subsumes;
|
||||||
set_non_learned(p1);
|
set_non_learned(p1);
|
||||||
remove_constraint(*c, "subsumed");
|
remove_constraint(*c, "subsumed");
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue