3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-22 16:45:31 +00:00

update gcm script

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2024-12-20 17:27:21 +01:00
parent 87f7a20e14
commit 114cae50a5
3 changed files with 93 additions and 65 deletions

View file

@ -669,8 +669,6 @@ namespace pb {
DEBUG_CODE(TRACE("sat_verbose", display(tout, m_A);););
TRACE("pb", tout << "process consequent: " << consequent << " : "; s().display_justification(tout, js) << "\n";);
SASSERT(offset > 0);
DEBUG_CODE(justification2pb(js, consequent, offset, m_B););
if (_debug_conflict) {
IF_VERBOSE(0,
@ -713,12 +711,9 @@ namespace pb {
case sat::justification::EXT_JUSTIFICATION: {
auto cindex = js.get_ext_justification_idx();
auto* ext = sat::constraint_base::to_extension(cindex);
if (ext != this) {
m_lemma.reset();
ext->get_antecedents(consequent, idx, m_lemma, false);
for (literal l : m_lemma) process_antecedent(~l, offset);
break;
}
if (ext != this)
return l_undef;
constraint& cnstr = index2constraint(cindex);
++m_stats.m_num_resolves;
switch (cnstr.tag()) {
@ -3442,39 +3437,6 @@ namespace pb {
return c;
}
void solver::justification2pb(sat::justification const& js, literal lit, unsigned offset, ineq& ineq) {
switch (js.get_kind()) {
case sat::justification::NONE:
SASSERT(lit != sat::null_literal);
ineq.reset(offset);
ineq.push(lit, offset);
break;
case sat::justification::BINARY:
SASSERT(lit != sat::null_literal);
ineq.reset(offset);
ineq.push(lit, offset);
ineq.push(js.get_literal(), offset);
break;
case sat::justification::CLAUSE: {
ineq.reset(offset);
sat::clause & c = s().get_clause(js);
for (literal l : c) ineq.push(l, offset);
break;
}
case sat::justification::EXT_JUSTIFICATION: {
sat::ext_justification_idx index = js.get_ext_justification_idx();
VERIFY(this == sat::constraint_base::to_extension(index));
constraint& cnstr = index2constraint(index);
constraint2pb(cnstr, lit, offset, ineq);
break;
}
default:
UNREACHABLE();
break;
}
}
void solver::constraint2pb(constraint& cnstr, literal lit, unsigned offset, ineq& ineq) {
switch (cnstr.tag()) {
case pb::tag_t::card_t: {

View file

@ -332,7 +332,6 @@ namespace pb {
constraint* active2card();
void active2wlits();
void active2wlits(svector<wliteral>& wlits);
void justification2pb(sat::justification const& j, literal lit, unsigned offset, ineq& p);
void constraint2pb(constraint& cnstr, literal lit, unsigned offset, ineq& p);
bool validate_resolvent();
unsigned get_coeff(ineq const& pb, literal lit);