Example #1
0
 Z3_ast_vector Z3_API Z3_solver_get_unsat_core(Z3_context c, Z3_solver s) {
     Z3_TRY;
     LOG_Z3_solver_get_unsat_core(c, s);
     RESET_ERROR_CODE();
     init_solver(c, s);
     expr_ref_vector core(mk_c(c)->m());
     to_solver_ref(s)->get_unsat_core(core);
     Z3_ast_vector_ref * v = alloc(Z3_ast_vector_ref, *mk_c(c), mk_c(c)->m());
     mk_c(c)->save_object(v);
     for (expr* e : core) {
         v->m_ast_vector.push_back(e);
     }
     RETURN_Z3(of_ast_vector(v));
     Z3_CATCH_RETURN(nullptr);
 }
Example #2
0
 Z3_ast_vector Z3_API Z3_solver_get_unsat_core(Z3_context c, Z3_solver s) {
     Z3_TRY;
     LOG_Z3_solver_get_unsat_core(c, s);
     RESET_ERROR_CODE();
     init_solver(c, s);
     ptr_vector<expr> core;
     to_solver_ref(s)->get_unsat_core(core);
     Z3_ast_vector_ref * v = alloc(Z3_ast_vector_ref, mk_c(c)->m());
     mk_c(c)->save_object(v);
     for (unsigned i = 0; i < core.size(); i++) {
         v->m_ast_vector.push_back(core[i]);
     }
     RETURN_Z3(of_ast_vector(v));
     Z3_CATCH_RETURN(0);
 }