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

optimizations to bv-solver and euf-egraph (#4698)

* additional bit-vector propagators

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* rename restrict (not a keyword, but well) #4694, tune euf

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* merge

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* add pb rewriting to pb2bv #4697

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2020-09-20 06:47:27 -07:00 committed by GitHub
parent ed44a44579
commit 6f63f8761c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
24 changed files with 206 additions and 116 deletions

View file

@ -137,7 +137,7 @@ namespace datalog {
return *e->get_data().get_value();
}
void rule_dependencies::restrict(const item_set & allowed) {
void rule_dependencies::restrict_dependencies(const item_set & allowed) {
ptr_vector<func_decl> to_remove;
for (auto const& kv : *this) {
func_decl * pred = kv.m_key;
@ -154,10 +154,8 @@ namespace datalog {
void rule_dependencies::remove(func_decl * itm) {
remove_m_data_entry(itm);
for (auto const& kv : *this) {
item_set & itms = *kv.get_value();
itms.remove(itm);
}
for (auto const& kv : *this)
kv.get_value()->remove(itm);
}
void rule_dependencies::remove(const item_set & to_remove) {

View file

@ -62,7 +62,7 @@ namespace datalog {
void populate(const rule_set & rules);
void populate(unsigned n, rule * const * rules);
void restrict(const item_set & allowed);
void restrict_dependencies(const item_set & allowed);
void remove(func_decl * itm);
void remove(const item_set & to_remove);

View file

@ -1006,7 +1006,7 @@ namespace datalog {
SASSERT(global_deltas.empty());
rule_dependencies deps(m_rule_set.get_dependencies());
deps.restrict(preds);
deps.restrict_dependencies(preds);
cycle_breaker(deps, global_deltas)();
VERIFY( deps.sort_deps(ordered_preds) );