#include <z3++.h>
Definition at line 2850 of file z3++.h.
◆ model() [1/4]
◆ model() [2/4]
Definition at line 2859 of file z3++.h.
2859:object(c) { init(m); }
◆ model() [3/4]
Definition at line 2860 of file z3++.h.
2860:object(s) { init(s.m_model); }
◆ model() [4/4]
Definition at line 2861 of file z3++.h.
Z3_model Z3_API Z3_model_translate(Z3_context c, Z3_model m, Z3_context dst)
translate model from context c to context dst.
◆ ~model()
Definition at line 2862 of file z3++.h.
void Z3_API Z3_model_dec_ref(Z3_context c, Z3_model m)
Decrement the reference counter of the given model.
◆ add_const_interp()
Definition at line 2921 of file z3++.h.
2921 {
2923 check_error();
2924 }
void Z3_API Z3_add_const_interp(Z3_context c, Z3_model m, Z3_func_decl f, Z3_ast a)
Add a constant interpretation.
◆ add_func_interp()
Definition at line 2915 of file z3++.h.
2915 {
2917 check_error();
2918 return func_interp(ctx(), r);
2919 }
Z3_func_interp Z3_API Z3_add_func_interp(Z3_context c, Z3_model m, Z3_func_decl f, Z3_ast default_value)
Create a fresh func_interp object, add it to a model for a specified function. It has reference count...
◆ eval()
| expr eval |
( |
expr const & | n, |
|
|
bool | model_completion = false ) const |
|
inline |
Definition at line 2872 of file z3++.h.
2872 {
2874 Z3_ast r = 0;
2875 bool status =
Z3_model_eval(ctx(), m_model, n, model_completion, &r);
2876 check_error();
2877 if (status == false && ctx().enable_exceptions())
2878 Z3_THROW(exception(
"failed to evaluate expression"));
2879 return expr(ctx(), r);
2880 }
bool Z3_API Z3_model_eval(Z3_context c, Z3_model m, Z3_ast t, bool model_completion, Z3_ast *v)
Evaluate the AST node t in the given model. Return true if succeeded, and store the result in v.
void check_context(object const &a, object const &b)
◆ get_const_decl()
Definition at line 2884 of file z3++.h.
Z3_func_decl Z3_API Z3_model_get_const_decl(Z3_context c, Z3_model m, unsigned i)
Return the i-th constant in the given model.
Referenced by operator[]().
◆ get_const_interp()
Definition at line 2895 of file z3++.h.
2895 {
2898 check_error();
2899 return expr(ctx(), r);
2900 }
Z3_ast Z3_API Z3_model_get_const_interp(Z3_context c, Z3_model m, Z3_func_decl a)
Return the interpretation (i.e., assignment) of constant a in the model m. Return NULL,...
◆ get_func_decl()
Definition at line 2885 of file z3++.h.
2885{ Z3_func_decl r =
Z3_model_get_func_decl(ctx(), m_model, i); check_error();
return func_decl(ctx(), r); }
Z3_func_decl Z3_API Z3_model_get_func_decl(Z3_context c, Z3_model m, unsigned i)
Return the declaration of the i-th function in the given model.
Referenced by operator[]().
◆ get_func_interp()
Definition at line 2901 of file z3++.h.
2901 {
2904 check_error();
2905 return func_interp(ctx(), r);
2906 }
Z3_func_interp Z3_API Z3_model_get_func_interp(Z3_context c, Z3_model m, Z3_func_decl f)
Return the interpretation of the function f in the model m. Return NULL, if the model does not assign...
◆ get_sort()
| sort get_sort |
( |
unsigned | i | ) |
const |
|
inline |
Return the uninterpreted sort at position i.
- Precondition
- i < num_sorts()
Definition at line 2936 of file z3++.h.
2936 {
2938 check_error();
2939 return sort(ctx(), s);
2940 }
Z3_sort Z3_API Z3_model_get_sort(Z3_context c, Z3_model m, unsigned i)
Return a uninterpreted sort that m assigns an interpretation.
◆ has_interp()
Definition at line 2910 of file z3++.h.
2910 {
2913 }
bool Z3_API Z3_model_has_interp(Z3_context c, Z3_model m, Z3_func_decl a)
Test if there exists an interpretation (i.e., assignment) for a in the model m.
◆ num_consts()
| unsigned num_consts |
( |
| ) |
const |
|
inline |
Definition at line 2882 of file z3++.h.
unsigned Z3_API Z3_model_get_num_consts(Z3_context c, Z3_model m)
Return the number of constants assigned by the given model.
Referenced by operator[](), and size().
◆ num_funcs()
| unsigned num_funcs |
( |
| ) |
const |
|
inline |
Definition at line 2883 of file z3++.h.
unsigned Z3_API Z3_model_get_num_funcs(Z3_context c, Z3_model m)
Return the number of function interpretations in the given model.
Referenced by size().
◆ num_sorts()
| unsigned num_sorts |
( |
| ) |
const |
|
inline |
Definition at line 2926 of file z3++.h.
2926 {
2928 check_error();
2929 return r;
2930 }
unsigned Z3_API Z3_model_get_num_sorts(Z3_context c, Z3_model m)
Return the number of uninterpreted sorts that m assigns an interpretation to.
◆ operator Z3_model()
| operator Z3_model |
( |
| ) |
const |
|
inline |
◆ operator=()
Definition at line 2864 of file z3++.h.
2864 {
2867 object::operator=(s);
2868 m_model = s.m_model;
2869 return *this;
2870 }
void Z3_API Z3_model_inc_ref(Z3_context c, Z3_model m)
Increment the reference counter of the given model.
◆ operator[]()
Definition at line 2887 of file z3++.h.
2887 {
2888 assert(0 <= i);
2889 return static_cast<unsigned>(i) < num_consts() ? get_const_decl(i) : get_func_decl(i - num_consts());
2890 }
◆ size()
Definition at line 2886 of file z3++.h.
2886{ return num_consts() + num_funcs(); }
◆ sort_universe()
Definition at line 2942 of file z3++.h.
2942 {
2945 check_error();
2947 }
Z3_ast_vector Z3_API Z3_model_get_sort_universe(Z3_context c, Z3_model m, Z3_sort s)
Return the finite set of distinct values that represent the interpretation for sort s.
ast_vector_tpl< expr > expr_vector
◆ to_string()
| std::string to_string |
( |
| ) |
const |
|
inline |
Definition at line 2951 of file z3++.h.
Z3_string Z3_API Z3_model_to_string(Z3_context c, Z3_model m)
Convert the given model into a string.
Referenced by operator<<.
◆ operator<<
| std::ostream & operator<< |
( |
std::ostream & | out, |
|
|
model const & | m ) |
|
friend |
Definition at line 3001 of file z3++.h.
3001{ return out << m.to_string(); }
Referenced by operator<<.