mirror of
https://github.com/Z3Prover/z3
synced 2025-04-23 09:05:31 +00:00
* fixing #4670 Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> * init Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> * arrays Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> * arrays Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> * arrays Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> * na Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
ee00542e76
commit
cfa7c733db
48 changed files with 1591 additions and 359 deletions
|
@ -453,10 +453,8 @@ namespace datalog {
|
|||
}
|
||||
|
||||
void display(std::ostream& out) const {
|
||||
u_map<ddnf_mgr*>::iterator it = m_mgrs.begin(), end = m_mgrs.end();
|
||||
for (; it != end; ++it) {
|
||||
it->m_value->display(out);
|
||||
}
|
||||
for (auto const& kv : m_mgrs)
|
||||
kv.m_value->display(out);
|
||||
}
|
||||
|
||||
private:
|
||||
|
@ -558,13 +556,9 @@ namespace datalog {
|
|||
m_todo.reset();
|
||||
m_cache.reset();
|
||||
m_expr2tbv.reset();
|
||||
datalog::rule_set::iterator it = rules.begin();
|
||||
datalog::rule_set::iterator end = rules.end();
|
||||
for (; it != end; ++it) {
|
||||
if (!pre_process_rule(**it)) {
|
||||
for (auto* r : rules)
|
||||
if (!pre_process_rule(*r))
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
@ -176,6 +176,7 @@ tbv* tbv_manager::allocate(rational const& r) {
|
|||
return v;
|
||||
}
|
||||
void tbv_manager::deallocate(tbv* bv) {
|
||||
#if 0
|
||||
DEBUG_CODE(
|
||||
if (!allocated_tbvs.contains(bv)) {
|
||||
std::cout << "double deallocate: " << bv << "\n";
|
||||
|
@ -185,6 +186,7 @@ void tbv_manager::deallocate(tbv* bv) {
|
|||
TRACE("doc", tout << "deallocate: " << bv << "\n";);
|
||||
}
|
||||
allocated_tbvs.erase(bv););
|
||||
#endif
|
||||
m.deallocate(bv);
|
||||
}
|
||||
void tbv_manager::copy(tbv& dst, tbv const& src) const {
|
||||
|
|
|
@ -102,6 +102,9 @@ public:
|
|||
bool operator()(tbv const& d1, tbv const& d2) const {
|
||||
return m.equals(d1, d2);
|
||||
}
|
||||
bool operator()(tbv const* d1, tbv const* d2) const {
|
||||
return m.equals(*d1, *d2);
|
||||
}
|
||||
};
|
||||
|
||||
struct hash {
|
||||
|
@ -110,6 +113,9 @@ public:
|
|||
unsigned operator()(tbv const& d) const {
|
||||
return m.hash(d);
|
||||
}
|
||||
unsigned operator()(tbv const* d) const {
|
||||
return m.hash(*d);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue