diff --git a/src/api/dotnet/RCFNum.cs b/src/api/dotnet/RCFNum.cs index 5231632b0..e1348039c 100644 --- a/src/api/dotnet/RCFNum.cs +++ b/src/api/dotnet/RCFNum.cs @@ -399,7 +399,7 @@ namespace Microsoft.Z3 /// String representation public string ToString(bool compact) { - return Native.Z3_rcf_num_to_string(Context.nCtx, NativeObject, compact, false); + return Native.Z3_rcf_num_to_string(Context.nCtx, NativeObject, compact ? 1 : 0, false); } /// diff --git a/src/smt/theory_datatype.cpp b/src/smt/theory_datatype.cpp index ed2c0249c..c2ccbc061 100644 --- a/src/smt/theory_datatype.cpp +++ b/src/smt/theory_datatype.cpp @@ -562,8 +562,8 @@ namespace smt { if (sub_decl) { TRACE(datatype, tout << "adding recursive case: " << mk_pp(arg1->get_expr(), m) << " ⊑ " << mk_pp(s->get_expr(), m) << "\n";); - auto tmp = m.mk_not( m.mk_app(sub_decl, arg1->get_expr(), s->get_expr())); - lits.push_back(mk_literal(app_ref(tmp, m))); + auto tmp = m.mk_not(m.mk_app(sub_decl, arg1->get_expr(), s->get_expr())); + lits.push_back(mk_literal(tmp)); found_possible = true; } } @@ -630,9 +630,8 @@ namespace smt { if (sub_decl) { TRACE(datatype, tout << "asserting NOT " << mk_pp(arg1->get_expr(), m) << " subterm " << mk_pp(s->get_expr(), m) << "\n";); - app_ref sub_app(m.mk_app(sub_decl, arg1->get_expr(), s->get_expr()), m); - ctx.internalize(sub_app, false); - literal sub_lit = literal(ctx.get_bool_var(sub_app)); + auto sub_app = m.mk_app(sub_decl, arg1->get_expr(), s->get_expr()); + literal sub_lit = mk_literal(sub_app); literal lits[2] = {antecedent, ~sub_lit}; ctx.mk_th_axiom(get_id(), 2, lits); } @@ -1277,9 +1276,8 @@ namespace smt { if (!r) { ptr_vector const & constructors = *m_util.get_datatype_constructors(dt); func_decl * rec = m_util.get_constructor_is(constructors[unassigned_idx]); - app_ref rec_app(m.mk_app(rec, n->get_expr()), m); - ctx.internalize(rec_app, false); - consequent = literal(ctx.get_bool_var(rec_app)); + auto rec_app = m.mk_app(rec, n->get_expr()); + consequent = mk_literal(rec_app); } else { consequent = literal(ctx.enode2bool_var(r));