3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-11-05 05:49:13 +00:00

last? bug-fix to new udoc_relation for feature parity

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2014-09-24 22:08:49 -07:00
parent 979d1f913a
commit 9cea3a1c02
7 changed files with 240 additions and 63 deletions

View file

@ -552,11 +552,33 @@ bool doc_manager::contains(doc const& a, doc const& b) const {
}
return true;
}
bool doc_manager::contains(
unsigned offset_a, doc const& a,
doc_manager const& dm_b,
unsigned offset_b, doc const& b,
unsigned length) const {
if (!m.contains(offset_a, a.pos(), dm_b.tbvm(), offset_b, b.pos(), length)) return false;
for (unsigned i = 0; i < a.neg().size(); ++i) {
bool found = false;
for (unsigned j = 0; !found && j < b.neg().size(); ++j) {
found = dm_b.tbvm().contains(offset_b, b.neg()[j], tbvm(), offset_a, a.neg()[i], length);
}
if (!found) return false;
}
return true;
}
std::ostream& doc_manager::display(std::ostream& out, doc const& b) const {
m.display(out, b.pos());
if (num_tbits() == 0) return out << "[]";
return display(out, b, num_tbits()-1, 0);
}
std::ostream& doc_manager::display(std::ostream& out, doc const& b, unsigned hi, unsigned lo) const {
m.display(out, b.pos(), hi, lo);
if (b.neg().is_empty()) return out;
out << " \\ ";
b.neg().display(m, out);
b.neg().display(m, out, hi, lo);
return out;
}