diff --git a/src/ast/ast.cpp b/src/ast/ast.cpp index 2881f1b62..6e2fac4bd 100644 --- a/src/ast/ast.cpp +++ b/src/ast/ast.cpp @@ -1018,15 +1018,19 @@ func_decl * basic_decl_plugin::mk_ite_decl(sort * s) { sort* basic_decl_plugin::join(sort* s1, sort* s2) { if (s1 == s2) return s1; - if (s1->get_family_id() == m_manager->m_arith_family_id && + if (s1->get_family_id() == m_manager->m_arith_family_id && s2->get_family_id() == m_manager->m_arith_family_id) { if (s1->get_decl_kind() == REAL_SORT) { return s1; } + return s2; } - return s2; + std::ostringstream buffer; + buffer << "Sorts " << mk_pp(s1, *m_manager) << " and " << mk_pp(s2, *m_manager) << " are incompatible"; + throw ast_exception(buffer.str().c_str()); } + func_decl * basic_decl_plugin::mk_func_decl(decl_kind k, unsigned num_parameters, parameter const * parameters, unsigned arity, sort * const * domain, sort * range) { switch (static_cast(k)) { diff --git a/src/cmd_context/context_params.cpp b/src/cmd_context/context_params.cpp index 8760ade15..70f110c92 100644 --- a/src/cmd_context/context_params.cpp +++ b/src/cmd_context/context_params.cpp @@ -33,7 +33,7 @@ context_params::context_params() { m_trace = false; m_debug_ref_count = false; m_smtlib2_compliant = false; - m_well_sorted_check = true; + m_well_sorted_check = false; m_timeout = UINT_MAX; updt_params(); }