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:
parent
c623e2db28
commit
4455f6caf8
36 changed files with 391 additions and 90 deletions
|
@ -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());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue