z3::expr ite(z3::expr const & c, z3::expr const & t, z3::expr const & e) { check_context(c, t); check_context(c, e); assert(c.is_bool()); Z3_ast r = Z3_mk_ite(c.ctx(), c, t, e); c.check_error(); return z3::expr(c.ctx(), r); }