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:
parent
979d1f913a
commit
9cea3a1c02
7 changed files with 240 additions and 63 deletions
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue