3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-05-09 16:55:47 +00:00

move to get_sort as method, add opt_lns pass, disable xor simplification unless configured, fix perf bug in model converter update trail

This commit is contained in:
Nikolaj Bjorner 2021-02-02 03:58:19 -08:00
parent c623e2db28
commit 4455f6caf8
36 changed files with 391 additions and 90 deletions

View file

@ -41,7 +41,7 @@ class dt2bv_tactic : public tactic {
obj_hashtable<sort> m_non_fd_sorts;
bool is_fd(expr* a) { return is_fd(get_sort(a)); }
bool is_fd(expr* a) { return is_fd(a->get_sort()); }
bool is_fd(sort* a) { return m_dt.is_enum_sort(a); }
struct check_fd {
@ -59,14 +59,14 @@ class dt2bv_tactic : public tactic {
}
else if (m_t.m_dt.is_recognizer(a->get_decl()) &&
m_t.is_fd(a->get_arg(0))) {
m_t.m_fd_sorts.insert(get_sort(a->get_arg(0)));
m_t.m_fd_sorts.insert(a->get_arg(0)->get_sort());
}
else if (m_t.is_fd(a) && a->get_num_args() > 0) {
m_t.m_non_fd_sorts.insert(get_sort(a));
m_t.m_non_fd_sorts.insert(a->get_sort());
args_cannot_be_fd(a);
}
else if (m_t.is_fd(a)) {
m_t.m_fd_sorts.insert(get_sort(a));
m_t.m_fd_sorts.insert(a->get_sort());
}
else {
args_cannot_be_fd(a);
@ -76,14 +76,14 @@ class dt2bv_tactic : public tactic {
void args_cannot_be_fd(app* a) {
for (expr* arg : *a) {
if (m_t.is_fd(arg)) {
m_t.m_non_fd_sorts.insert(get_sort(arg));
m_t.m_non_fd_sorts.insert(arg->get_sort());
}
}
}
void operator()(var * v) {
if (m_t.is_fd(v)) {
m_t.m_fd_sorts.insert(get_sort(v));
m_t.m_fd_sorts.insert(v->get_sort());
}
}