From 534a31f74e81ab880fbb28dbf829e036d7a3957c Mon Sep 17 00:00:00 2001 From: Nikolaj Bjorner Date: Sun, 4 Mar 2018 05:06:36 -0800 Subject: [PATCH] inherit solver parameters in asserted formulas rewriter. #1511 Signed-off-by: Nikolaj Bjorner --- src/smt/asserted_formulas.cpp | 4 ++++ src/smt/asserted_formulas.h | 1 + src/smt/params/preprocessor_params.cpp | 1 + src/smt/smt_context.cpp | 4 ++++ src/smt/smt_context.h | 2 ++ src/smt/smt_kernel.cpp | 10 +++------- src/test/heap.cpp | 5 ++++- 7 files changed, 19 insertions(+), 8 deletions(-) diff --git a/src/smt/asserted_formulas.cpp b/src/smt/asserted_formulas.cpp index 5903fefcb..444069d8c 100644 --- a/src/smt/asserted_formulas.cpp +++ b/src/smt/asserted_formulas.cpp @@ -117,6 +117,10 @@ void asserted_formulas::push_assertion(expr * e, proof * pr, vector& mutexes) { return m_kernel.find_mutexes(vars, mutexes); } @@ -196,9 +195,7 @@ namespace smt { } void updt_params(params_ref const & p) { - // We don't need params2smt_params anymore. smt_params has support for reading params_ref. - // The update is performed at smt_kernel "users". - // params2smt_params(p, fparams()); + m_kernel.updt_params(p); } }; @@ -218,7 +215,6 @@ namespace smt { imp::copy(*src.m_imp, *dst.m_imp); } - bool kernel::set_logic(symbol logic) { return m_imp->set_logic(logic); } @@ -263,9 +259,9 @@ namespace smt { } void kernel::reset() { - ast_manager & _m = m(); + ast_manager & _m = m(); smt_params & fps = m_imp->fparams(); - params_ref ps = m_imp->params(); + params_ref ps = m_imp->params(); #pragma omp critical (smt_kernel) { m_imp->~imp(); diff --git a/src/test/heap.cpp b/src/test/heap.cpp index 08891ccaa..2c77b939e 100644 --- a/src/test/heap.cpp +++ b/src/test/heap.cpp @@ -21,16 +21,19 @@ Revision History: #include "util/heap.h" #include "util/trace.h" #include "util/uint_set.h" +// include "util/hashtable.h" struct lt_proc { bool operator()(int v1, int v2) const { return v1 < v2; } }; +//struct int_hash_proc { unsigned operator()(int v) const { std::cout << "hash " << v << "\n"; VERIFY(v >= 0); return v; }}; +//typedef int_hashtable > int_set; typedef heap int_heap; -struct int_hash_proc { unsigned operator()(int v) const { return v * 17; }}; #define N 10000 static random_gen heap_rand(1); static void tst1() { int_heap h(N); +// int_set t; uint_set t; for (int i = 0; i < N * 3; i++) { int val = heap_rand() % N;