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

add definitions for under-specified cases of arithmetic operators #2663 #2676 #2679

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2019-11-06 18:24:22 +01:00
parent 6cf7d8e523
commit 1e0c1cefd6
13 changed files with 59 additions and 20 deletions

View file

@ -765,10 +765,15 @@ namespace datalog {
ast_manager& m;
arith_util a;
datatype_util dt;
bv_util bv;
DL_ENGINE m_engine_type;
bool is_large_bv(sort* s) {
return false;
}
public:
engine_type_proc(ast_manager& m): m(m), a(m), dt(m), m_engine_type(DATALOG_ENGINE) {}
engine_type_proc(ast_manager& m): m(m), a(m), dt(m), bv(m), m_engine_type(DATALOG_ENGINE) {}
DL_ENGINE get_engine() const { return m_engine_type; }
@ -782,6 +787,9 @@ namespace datalog {
else if (dt.is_datatype(m.get_sort(e))) {
m_engine_type = SPACER_ENGINE;
}
else if (is_large_bv(m.get_sort(e))) {
m_engine_type = SPACER_ENGINE;
}
}
};

View file

@ -305,7 +305,6 @@ public:
case datalog::OK:
(void)query_exn;
SASSERT(query_exn);
break;
case datalog::CANCELED:

View file

@ -3800,6 +3800,7 @@ bool context::create_children(pob& n, datalog::rule const& r,
void context::collect_statistics(statistics& st) const
{
// m_params is not necessarily live when collect_statistics is called.
m_pool0->collect_statistics(st);
m_pool1->collect_statistics(st);
m_pool2->collect_statistics(st);
@ -3841,7 +3842,6 @@ void context::collect_statistics(statistics& st) const
// -- time in creating new predecessors
st.update ("time.spacer.solve.reach.children",
m_create_children_watch.get_seconds ());
st.update("spacer.random_seed", m_params.spacer_random_seed());
st.update("spacer.lemmas_imported", m_stats.m_num_lemmas_imported);
st.update("spacer.lemmas_discarded", m_stats.m_num_lemmas_discarded);