3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-23 17:15:31 +00:00

minor changes

This commit is contained in:
Jakob Rath 2024-02-08 15:25:00 +01:00
parent 705203ea4c
commit 3eb42cdf4b
6 changed files with 8 additions and 11 deletions

View file

@ -1,4 +1,4 @@
/*++
/*++
Copyright (c) 2021 Microsoft Corporation
Module Name:
@ -131,7 +131,7 @@ namespace polysat {
if (l.lo().val() == 0)
val = 0;
else
val = l.manager().max_value() + 1 - l.lo().val();
val = l.manager().two_to_N() - l.lo().val();
return true;
}

View file

@ -146,7 +146,7 @@ namespace polysat {
/*
* Add a named clause. Dependencies are assumed, signed constraints are guaranteeed.
* Add a named clause. Dependencies are assumed, signed constraints are guaranteed.
* In other words, the clause represents the formula /\ d_i -> \/ sc_j
* Where d_i are logical interpretations of dependencies and sc_j are signed constraints.
*/

View file

@ -175,7 +175,6 @@ namespace polysat {
// 3. now the reference returned from lhs.offset() may be invalid
pdd const rhs_plus_one = rhs + 1;
// TODO: potential bug here: first call offset(), then rhs+1 has to reallocate pdd_manager::m_values, then the reference to offset is broken.
if (rhs.is_val() && !rhs.is_zero() && lhs.offset() == rhs_plus_one.val()) {
TRACE("bv", tout << "p - k <= -k - 1 --> k <= p\n");
pdd k = -(rhs + 1);

View file

@ -89,9 +89,9 @@ namespace polysat {
}
std::ostream& solver::display(std::ostream& out) const {
for (unsigned v = 0; v < get_num_vars(); ++v)
for (theory_var v = 0; v < get_num_vars(); ++v)
if (m_var2pdd_valid.get(v, false))
out << ctx.bpp(var2enode(v)) << " := " << m_var2pdd[v] << "\n";
out << "tv" << v << " is " << ctx.bpp(var2enode(v)) << " := " << m_var2pdd[v] << "\n";
m_core.display(out);
m_intblast.display(out);
return out;

View file

@ -495,16 +495,16 @@ namespace polysat {
expr_ref_vector args(m);
for (auto const& mon : p) {
auto c = mon.coeff;
rational const& c = mon.coeff;
if (mon.vars.empty())
args.push_back(mk_num(c));
else if (mon.coeff == 1 && mon.vars.size() == 1)
else if (c == 1 && mon.vars.size() == 1)
args.push_back(mk_var(mon.vars[0]));
else if (mon.vars.size() == 1)
args.push_back(bv.mk_bv_mul(mk_num(c), mk_var(mon.vars[0])));
else {
expr_ref_vector args2(m);
for (auto v : mon.vars)
for (pvar v : mon.vars)
args2.push_back(mk_var(v));
if (c == 1)
args.push_back(bv.mk_bv_mul(args2));

View file

@ -177,8 +177,6 @@ namespace euf {
void add_equiv(sat::literal a, sat::literal b);
void add_equiv_and(sat::literal a, sat::literal_vector const& bs);
bool add_redundant(sat::literal_vector const& lits, th_proof_hint const* ps) { return add_clause(lits.size(), lits.data(), ps, true); }
bool add_redundant(unsigned n, sat::literal* lits, th_proof_hint const* ps);
bool is_true(sat::literal lit);
bool is_true(sat::literal a, sat::literal b) { return is_true(a) || is_true(b); }