diff --git a/src/model/func_interp.cpp b/src/model/func_interp.cpp index fb594a09f..90810f294 100644 --- a/src/model/func_interp.cpp +++ b/src/model/func_interp.cpp @@ -169,6 +169,7 @@ void func_interp::insert_new_entry(expr * const * args, expr * r) { for (unsigned i = 0; i < m_arity; i++) { tout << mk_ismt2_pp(args[i], m_manager) << "\n"; } + tout << "Old: " << mk_ismt2_pp(get_entry(args)->get_result(), m_manager) << "\n"; ); SASSERT(get_entry(args) == 0); func_entry * new_entry = func_entry::mk(m_manager, m_arity, args, r); diff --git a/src/smt/theory_arith_core.h b/src/smt/theory_arith_core.h index cde3aa9fd..64aa2b638 100644 --- a/src/smt/theory_arith_core.h +++ b/src/smt/theory_arith_core.h @@ -66,6 +66,9 @@ namespace smt { template bool theory_arith::is_int_expr(expr* e) { + return m_util.is_int(e); +#if 0 + Disable refined integer until equality propagation is fixed. if (m_util.is_int(e)) return true; if (is_uninterp(e)) return false; m_todo.reset(); @@ -93,6 +96,7 @@ namespace smt { } } return true; +#endif } diff --git a/src/smt/theory_arith_eq.h b/src/smt/theory_arith_eq.h index 7ed6cfe50..4a5dad34f 100644 --- a/src/smt/theory_arith_eq.h +++ b/src/smt/theory_arith_eq.h @@ -329,6 +329,7 @@ namespace smt { if (is_equal(x, y)) return; if (get_manager().get_sort(var2expr(x)) != get_manager().get_sort(var2expr(y))) { + TRACE("arith", tout << mk_pp(var2expr(x), get_manager()) << " = " << mk_pp(var2expr(y), get_manager()) << "\n";); return; } context & ctx = get_context();