#include <z3++.h>
|
| | optimize (context &c) |
| | optimize (context &c, optimize const &src, translate) |
| | optimize (optimize const &o) |
| | optimize (context &c, optimize &src) |
| optimize & | operator= (optimize const &o) |
| | ~optimize () override |
| | operator Z3_optimize () const |
| void | add (expr const &e) |
| void | add (expr_vector const &es) |
| void | add (expr const &e, expr const &t) |
| void | add (expr const &e, char const *p) |
| handle | add_soft (expr const &e, unsigned weight) |
| handle | add_soft (expr const &e, char const *weight) |
| handle | add (expr const &e, unsigned weight) |
| void | set_initial_value (expr const &var, expr const &value) |
| void | set_initial_value (expr const &var, int i) |
| void | set_initial_value (expr const &var, bool b) |
| handle | maximize (expr const &e) |
| handle | minimize (expr const &e) |
| void | push () |
| void | pop () |
| check_result | check () |
| check_result | check (expr_vector const &asms) |
| model | get_model () const |
| expr_vector | unsat_core () const |
| void | set (params const &p) |
| expr | lower (handle const &h) |
| expr_vector | lower_as_vector (handle const &h) const |
| expr | upper (handle const &h) |
| expr_vector | upper_as_vector (handle const &h) const |
| expr_vector | assertions () const |
| expr_vector | objectives () const |
| stats | statistics () const |
| void | from_file (char const *filename) |
| void | from_string (char const *constraints) |
| std::string | help () const |
| | object (context &c) |
| virtual | ~object ()=default |
| context & | ctx () const |
| Z3_error_code | check_error () const |
Definition at line 3672 of file z3++.h.
◆ optimize() [1/4]
Definition at line 3683 of file z3++.h.
void Z3_API Z3_optimize_inc_ref(Z3_context c, Z3_optimize d)
Increment the reference counter of the given optimize context.
Z3_optimize Z3_API Z3_mk_optimize(Z3_context c)
Create a new optimize context.
Referenced by operator<<, operator=(), optimize(), optimize(), and optimize().
◆ optimize() [2/4]
Definition at line 3684 of file z3++.h.
3684 : object(c) {
3686 check_error();
3687 m_opt = o;
3689 }
Z3_optimize Z3_API Z3_optimize_translate(Z3_context c, Z3_optimize o, Z3_context target)
Copy an optimization context from a source to a target context.
◆ optimize() [3/4]
| optimize |
( |
optimize const & | o | ) |
|
|
inline |
Definition at line 3690 of file z3++.h.
3690 :object(o), m_opt(o.m_opt) {
3692 }
◆ optimize() [4/4]
| optimize |
( |
context & | c, |
|
|
optimize & | src ) |
|
inline |
Definition at line 3693 of file z3++.h.
3693 :object(c) {
3698 for (expr_vector::iterator it = v.begin(); it != v.end(); ++it) minimize(*it);
3699 }
ast_vector_tpl< expr > expr_vector
◆ ~optimize()
Definition at line 3707 of file z3++.h.
void Z3_API Z3_optimize_dec_ref(Z3_context c, Z3_optimize d)
Decrement the reference counter of the given optimize context.
◆ add() [1/5]
| void add |
( |
expr const & | e | ) |
|
|
inline |
Definition at line 3709 of file z3++.h.
3709 {
3710 assert(e.is_bool());
3712 }
void Z3_API Z3_optimize_assert(Z3_context c, Z3_optimize o, Z3_ast a)
Assert hard constraint to the optimization context.
Referenced by add(), add(), and optimize().
◆ add() [2/5]
| void add |
( |
expr const & | e, |
|
|
char const * | p ) |
|
inline |
Definition at line 3720 of file z3++.h.
3720 {
3721 assert(e.is_bool());
3722 add(e, ctx().bool_const(p));
3723 }
◆ add() [3/5]
| void add |
( |
expr const & | e, |
|
|
expr const & | t ) |
|
inline |
Definition at line 3716 of file z3++.h.
3716 {
3717 assert(e.is_bool());
3719 }
void Z3_API Z3_optimize_assert_and_track(Z3_context c, Z3_optimize o, Z3_ast a, Z3_ast t)
Assert tracked hard constraint to the optimization context.
◆ add() [4/5]
Definition at line 3733 of file z3++.h.
3733 {
3734 return add_soft(e, weight);
3735 }
◆ add() [5/5]
Definition at line 3713 of file z3++.h.
3713 {
3714 for (expr_vector::iterator it = es.begin(); it != es.end(); ++it) add(*it);
3715 }
◆ add_soft() [1/2]
| handle add_soft |
( |
expr const & | e, |
|
|
char const * | weight ) |
|
inline |
Definition at line 3729 of file z3++.h.
3729 {
3730 assert(e.is_bool());
3732 }
unsigned Z3_API Z3_optimize_assert_soft(Z3_context c, Z3_optimize o, Z3_ast a, Z3_string weight, Z3_symbol id)
Assert soft constraint to the optimization context.
◆ add_soft() [2/2]
| handle add_soft |
( |
expr const & | e, |
|
|
unsigned | weight ) |
|
inline |
Definition at line 3724 of file z3++.h.
3724 {
3725 assert(e.is_bool());
3726 auto str = std::to_string(weight);
3728 }
Referenced by add().
◆ assertions()
Definition at line 3794 of file z3++.h.
Z3_ast_vector Z3_API Z3_optimize_get_assertions(Z3_context c, Z3_optimize o)
Return the set of asserted formulas on the optimization context.
Referenced by optimize().
◆ check() [1/2]
Definition at line 3759 of file z3++.h.
Z3_lbool
Lifted Boolean type: false, undefined, true.
Z3_lbool Z3_API Z3_optimize_check(Z3_context c, Z3_optimize o, unsigned num_assumptions, Z3_ast const assumptions[])
Check consistency and produce optimal values.
check_result to_check_result(Z3_lbool l)
◆ check() [2/2]
Definition at line 3760 of file z3++.h.
3760 {
3761 unsigned n = asms.size();
3762 array<Z3_ast> _asms(n);
3763 for (unsigned i = 0; i < n; ++i) {
3765 _asms[i] = asms[i];
3766 }
3768 check_error();
3770 }
void check_context(object const &a, object const &b)
◆ from_file()
| void from_file |
( |
char const * | filename | ) |
|
|
inline |
Definition at line 3798 of file z3++.h.
void Z3_API Z3_optimize_from_file(Z3_context c, Z3_optimize o, Z3_string s)
Parse an SMT-LIB2 file with assertions, soft constraints and optimization objectives....
◆ from_string()
| void from_string |
( |
char const * | constraints | ) |
|
|
inline |
Definition at line 3799 of file z3++.h.
void Z3_API Z3_optimize_from_string(Z3_context c, Z3_optimize o, Z3_string s)
Parse an SMT-LIB2 string with assertions, soft constraints and optimization objectives....
◆ get_model()
| model get_model |
( |
| ) |
const |
|
inline |
Definition at line 3771 of file z3++.h.
Z3_model Z3_API Z3_optimize_get_model(Z3_context c, Z3_optimize o)
Retrieve the model for the last Z3_optimize_check.
◆ help()
| std::string help |
( |
| ) |
const |
|
inline |
Definition at line 3800 of file z3++.h.
Z3_string Z3_API Z3_optimize_get_help(Z3_context c, Z3_optimize t)
Return a string containing a description of parameters accepted by optimize.
◆ lower()
Definition at line 3774 of file z3++.h.
3774 {
3776 check_error();
3777 return expr(ctx(), r);
3778 }
Z3_ast Z3_API Z3_optimize_get_lower(Z3_context c, Z3_optimize o, unsigned idx)
Retrieve lower bound value or approximation for the i'th optimization objective.
◆ lower_as_vector()
Definition at line 3779 of file z3++.h.
3779 {
3781 check_error();
3783 }
Z3_ast_vector Z3_API Z3_optimize_get_lower_as_vector(Z3_context c, Z3_optimize o, unsigned idx)
Retrieve lower bound value or approximation for the i'th optimization objective. The returned vector ...
◆ maximize()
Definition at line 3747 of file z3++.h.
3747 {
3749 }
unsigned Z3_API Z3_optimize_maximize(Z3_context c, Z3_optimize o, Z3_ast t)
Add a maximization constraint.
◆ minimize()
Definition at line 3750 of file z3++.h.
3750 {
3752 }
unsigned Z3_API Z3_optimize_minimize(Z3_context c, Z3_optimize o, Z3_ast t)
Add a minimization constraint.
Referenced by optimize().
◆ objectives()
Definition at line 3795 of file z3++.h.
Z3_ast_vector Z3_API Z3_optimize_get_objectives(Z3_context c, Z3_optimize o)
Return objectives on the optimization context. If the objective function is a max-sat objective it is...
Referenced by optimize().
◆ operator Z3_optimize()
| operator Z3_optimize |
( |
| ) |
const |
|
inline |
◆ operator=()
Definition at line 3700 of file z3++.h.
3700 {
3703 m_opt = o.m_opt;
3704 object::operator=(o);
3705 return *this;
3706 }
◆ pop()
Definition at line 3756 of file z3++.h.
3756 {
3758 }
void Z3_API Z3_optimize_pop(Z3_context c, Z3_optimize d)
Backtrack one level.
◆ push()
Definition at line 3753 of file z3++.h.
3753 {
3755 }
void Z3_API Z3_optimize_push(Z3_context c, Z3_optimize d)
Create a backtracking point.
◆ set()
Definition at line 3773 of file z3++.h.
void Z3_API Z3_optimize_set_params(Z3_context c, Z3_optimize o, Z3_params p)
Set parameters on optimization context, including parameters for the underlying SMT solver.
◆ set_initial_value() [1/3]
| void set_initial_value |
( |
expr const & | var, |
|
|
bool | b ) |
|
inline |
Definition at line 3743 of file z3++.h.
3743 {
3744 set_initial_value(var, ctx().bool_val(b));
3745 }
◆ set_initial_value() [2/3]
| void set_initial_value |
( |
expr const & | var, |
|
|
expr const & | value ) |
|
inline |
Definition at line 3736 of file z3++.h.
3736 {
3738 check_error();
3739 }
void Z3_API Z3_optimize_set_initial_value(Z3_context c, Z3_optimize o, Z3_ast v, Z3_ast val)
provide an initialization hint to the solver. The initialization hint is used to calibrate an initial...
Referenced by set_initial_value(), and set_initial_value().
◆ set_initial_value() [3/3]
| void set_initial_value |
( |
expr const & | var, |
|
|
int | i ) |
|
inline |
Definition at line 3740 of file z3++.h.
3740 {
3741 set_initial_value(var, ctx().num_val(i, var.get_sort()));
3742 }
◆ statistics()
| stats statistics |
( |
| ) |
const |
|
inline |
Definition at line 3796 of file z3++.h.
Z3_stats Z3_API Z3_optimize_get_statistics(Z3_context c, Z3_optimize d)
Retrieve statistics information from the last call to Z3_optimize_check.
◆ unsat_core()
Definition at line 3772 of file z3++.h.
Z3_ast_vector Z3_API Z3_optimize_get_unsat_core(Z3_context c, Z3_optimize o)
Retrieve the unsat core for the last Z3_optimize_check The unsat core is a subset of the assumptions ...
◆ upper()
Definition at line 3784 of file z3++.h.
3784 {
3786 check_error();
3787 return expr(ctx(), r);
3788 }
Z3_ast Z3_API Z3_optimize_get_upper(Z3_context c, Z3_optimize o, unsigned idx)
Retrieve upper bound value or approximation for the i'th optimization objective.
◆ upper_as_vector()
Definition at line 3789 of file z3++.h.
3789 {
3791 check_error();
3793 }
Z3_ast_vector Z3_API Z3_optimize_get_upper_as_vector(Z3_context c, Z3_optimize o, unsigned idx)
Retrieve upper bound value or approximation for the i'th optimization objective.
◆ operator<<
| std::ostream & operator<< |
( |
std::ostream & | out, |
|
|
optimize const & | s ) |
|
friend |
Definition at line 3802 of file z3++.h.
Z3_string Z3_API Z3_optimize_to_string(Z3_context c, Z3_optimize o)
Print the current context as a string.
Referenced by operator<<.