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));