mirror of
https://github.com/Z3Prover/z3
synced 2025-06-14 18:06:15 +00:00
add array selects to basic ackerman reduction improves performance significantly for #2525 as it now uses the SAT solver core instead of SMT core
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
7823117776
commit
000e485794
25 changed files with 706 additions and 572 deletions
|
@ -16,14 +16,13 @@
|
|||
--*/
|
||||
#include "ackermannization/ackr_helper.h"
|
||||
|
||||
double ackr_helper::calculate_lemma_bound(ackr_helper::fun2terms_map& occurrences) {
|
||||
fun2terms_map::iterator it = occurrences.begin();
|
||||
const fun2terms_map::iterator end = occurrences.end();
|
||||
double ackr_helper::calculate_lemma_bound(fun2terms_map const& occs1, sel2terms_map const& occs2) {
|
||||
double total = 0;
|
||||
for (; it != end; ++it) {
|
||||
const unsigned fsz = it->m_value->size();
|
||||
const double n2 = n_choose_2_chk(fsz);
|
||||
total += n2;
|
||||
for (auto const& kv : occs1) {
|
||||
total += n_choose_2_chk(kv.m_value->size());
|
||||
}
|
||||
for (auto const& kv : occs2) {
|
||||
total += n_choose_2_chk(kv.m_value->size());
|
||||
}
|
||||
return total;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue