Example #1
0
 Z3_model Z3_API Z3_solver_get_model(Z3_context c, Z3_solver s) {
     Z3_TRY;
     LOG_Z3_solver_get_model(c, s);
     RESET_ERROR_CODE();
     init_solver(c, s);
     model_ref _m;
     to_solver_ref(s)->get_model(_m);
     if (!_m) {
         SET_ERROR_CODE(Z3_INVALID_USAGE);
         RETURN_Z3(0);
     }
     Z3_model_ref * m_ref = alloc(Z3_model_ref); 
     m_ref->m_model = _m;
     mk_c(c)->save_object(m_ref);
     RETURN_Z3(of_model(m_ref));
     Z3_CATCH_RETURN(0);
 }
Example #2
0
 Z3_model Z3_API Z3_solver_get_model(Z3_context c, Z3_solver s) {
     Z3_TRY;
     LOG_Z3_solver_get_model(c, s);
     RESET_ERROR_CODE();
     init_solver(c, s);
     model_ref _m;
     to_solver_ref(s)->get_model(_m);
     if (!_m) {
         SET_ERROR_CODE(Z3_INVALID_USAGE, "there is no current model");
         RETURN_Z3(nullptr);
     }
     if (_m) {
         if (mk_c(c)->params().m_model_compress) _m->compress();
     }
     Z3_model_ref * m_ref = alloc(Z3_model_ref, *mk_c(c)); 
     m_ref->m_model = _m;
     mk_c(c)->save_object(m_ref);
     RETURN_Z3(of_model(m_ref));
     Z3_CATCH_RETURN(nullptr);
 }