Exemplo n.º 1
0
 Z3_solver Z3_API Z3_mk_solver_for_logic(Z3_context c, Z3_symbol logic) {
     Z3_TRY;
     LOG_Z3_mk_solver_for_logic(c, logic);
     RESET_ERROR_CODE();
     Z3_solver_ref * s = alloc(Z3_solver_ref, mk_smt_strategic_solver_factory(to_symbol(logic)));
     mk_c(c)->save_object(s);
     Z3_solver r = of_solver(s);
     RETURN_Z3(r);
     Z3_CATCH_RETURN(0);
 }
Exemplo n.º 2
0
 Z3_solver Z3_API Z3_mk_solver_for_logic(Z3_context c, Z3_symbol logic) {
     Z3_TRY;
     LOG_Z3_mk_solver_for_logic(c, logic);
     RESET_ERROR_CODE();
     if (!smt_logics::supported_logic(to_symbol(logic))) {
         std::ostringstream strm;
         strm << "logic '" << to_symbol(logic) << "' is not recognized";
         throw default_exception(strm.str());
         RETURN_Z3(nullptr);
     }
     else {
         Z3_solver_ref * s = alloc(Z3_solver_ref, *mk_c(c), mk_smt_strategic_solver_factory(to_symbol(logic)));
         mk_c(c)->save_object(s);
         Z3_solver r = of_solver(s);
         RETURN_Z3(r);
     }
     Z3_CATCH_RETURN(nullptr);
 }