mirror of
https://github.com/Z3Prover/z3
synced 2025-07-24 21:26:59 +00:00
skip entry for origin variable
This commit is contained in:
parent
23ca9d9fc5
commit
fd9c931168
2 changed files with 5 additions and 1 deletions
|
@ -179,6 +179,7 @@ namespace polysat {
|
||||||
lbool project_interval::try_project(pvar const w, unsigned const w_off, unsigned const w_sz, rational const& value, unsigned const max_level) {
|
lbool project_interval::try_project(pvar const w, unsigned const w_off, unsigned const w_sz, rational const& value, unsigned const max_level) {
|
||||||
SASSERT(w != null_var);
|
SASSERT(w != null_var);
|
||||||
SASSERT_EQ(c.size(w), w_sz);
|
SASSERT_EQ(c.size(w), w_sz);
|
||||||
|
SASSERT(w != m_var);
|
||||||
if (w == m_var)
|
if (w == m_var)
|
||||||
return l_undef;
|
return l_undef;
|
||||||
|
|
||||||
|
|
|
@ -125,7 +125,8 @@ namespace polysat {
|
||||||
|
|
||||||
// walk the e-graph to retrieve fixed sub-slices along with justifications,
|
// walk the e-graph to retrieve fixed sub-slices along with justifications,
|
||||||
// as well as pvars that correspond to these sub-slices.
|
// as well as pvars that correspond to these sub-slices.
|
||||||
void solver::get_fixed_sub_slices(pvar pv, fixed_bits_vector& fixed) {
|
// does not retrieve a slice corresponding to 'pv' itself.
|
||||||
|
void solver::get_fixed_sub_slices(pvar const pv, fixed_bits_vector& fixed) {
|
||||||
#define GET_FIXED_SUB_SLICES_DISPLAY 1
|
#define GET_FIXED_SUB_SLICES_DISPLAY 1
|
||||||
auto consume_slice = [&](euf::enode* n, unsigned offset) -> bool {
|
auto consume_slice = [&](euf::enode* n, unsigned offset) -> bool {
|
||||||
euf::enode* r = n->get_root();
|
euf::enode* r = n->get_root();
|
||||||
|
@ -180,6 +181,8 @@ namespace polysat {
|
||||||
auto const& p = m_var2pdd[s];
|
auto const& p = m_var2pdd[s];
|
||||||
if (!p.is_var())
|
if (!p.is_var())
|
||||||
continue;
|
continue;
|
||||||
|
if (p.var() == pv)
|
||||||
|
continue;
|
||||||
// unsigned p_level = merge_level(sib, r); // this is ok
|
// unsigned p_level = merge_level(sib, r); // this is ok
|
||||||
#if GET_FIXED_SUB_SLICES_DISPLAY
|
#if GET_FIXED_SUB_SLICES_DISPLAY
|
||||||
verbose_stream() << " pvar " << p;
|
verbose_stream() << " pvar " << p;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue