Z3
 
Loading...
Searching...
No Matches
Public Member Functions | Data Fields | Protected Attributes
Optimize Class Reference
+ Inheritance diagram for Optimize:

Public Member Functions

 __init__ (self, optimize=None, ctx=None)
 
 __copy__ (self)
 
 __deepcopy__ (self, memo={})
 
 __del__ (self)
 
 __enter__ (self)
 
 __exit__ (self, *exc_info)
 
 set (self, *args, **keys)
 
 help (self)
 
 param_descrs (self)
 
 assert_exprs (self, *args)
 
 add (self, *args)
 
 __iadd__ (self, fml)
 
 assert_and_track (self, a, p)
 
 add_soft (self, arg, weight="1", id=None)
 
 set_initial_value (self, var, value)
 
 maximize (self, arg)
 
 minimize (self, arg)
 
 push (self)
 
 pop (self)
 
 check (self, *assumptions)
 
 reason_unknown (self)
 
 model (self)
 
 unsat_core (self)
 
 lower (self, obj)
 
 upper (self, obj)
 
 lower_values (self, obj)
 
 upper_values (self, obj)
 
 from_file (self, filename)
 
 from_string (self, s)
 
 assertions (self)
 
 objectives (self)
 
 __repr__ (self)
 
 sexpr (self)
 
 statistics (self)
 
 translate (self, target)
 
 set_on_model (self, on_model)
 
- Public Member Functions inherited from Z3PPObject
 use_pp (self)
 

Data Fields

 ctx
 
 optimize
 

Protected Attributes

 _on_models_id
 

Additional Inherited Members

- Protected Member Functions inherited from Z3PPObject
 _repr_html_ (self)
 

Detailed Description

Optimize API provides methods for solving using objective functions and weighted soft constraints

Definition at line 8579 of file z3py.py.

Constructor & Destructor Documentation

◆ __init__()

__init__ (   self,
  optimize = None,
  ctx = None 
)

Definition at line 8582 of file z3py.py.

8582 def __init__(self, optimize=None, ctx=None):
8583 self.ctx = _get_ctx(ctx)
8584 if optimize is None:
8585 self.optimize = Z3_mk_optimize(self.ctx.ref())
8586 else:
8587 self.optimize = optimize
8588 self._on_models_id = None
8589 Z3_optimize_inc_ref(self.ctx.ref(), self.optimize)
8590
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.

◆ __del__()

__del__ (   self)

Definition at line 8597 of file z3py.py.

8597 def __del__(self):
8598 if self.optimize is not None and self.ctx.ref() is not None and Z3_optimize_dec_ref is not None:
8599 Z3_optimize_dec_ref(self.ctx.ref(), self.optimize)
8600 if self._on_models_id is not None:
8601 del _on_models[self._on_models_id]
8602
void Z3_API Z3_optimize_dec_ref(Z3_context c, Z3_optimize d)
Decrement the reference counter of the given optimize context.

Member Function Documentation

◆ __copy__()

__copy__ (   self)

Definition at line 8591 of file z3py.py.

8591 def __copy__(self):
8592 return self.translate(self.ctx)
8593

◆ __deepcopy__()

__deepcopy__ (   self,
  memo = {} 
)

Definition at line 8594 of file z3py.py.

8594 def __deepcopy__(self, memo={}):
8595 return self.translate(self.ctx)
8596

◆ __enter__()

__enter__ (   self)

Definition at line 8603 of file z3py.py.

8603 def __enter__(self):
8604 self.push()
8605 return self
8606

◆ __exit__()

__exit__ (   self,
*  exc_info 
)

Definition at line 8607 of file z3py.py.

8607 def __exit__(self, *exc_info):
8608 self.pop()
8609

◆ __iadd__()

__iadd__ (   self,
  fml 
)

Definition at line 8641 of file z3py.py.

8641 def __iadd__(self, fml):
8642 self.add(fml)
8643 return self
8644

◆ __repr__()

__repr__ (   self)
Return a formatted string with all added rules and constraints.

Definition at line 8788 of file z3py.py.

8788 def __repr__(self):
8789 """Return a formatted string with all added rules and constraints."""
8790 return self.sexpr()
8791

◆ add()

add (   self,
*  args 
)
Assert constraints as background axioms for the optimize solver. Alias for assert_expr.

Definition at line 8637 of file z3py.py.

8637 def add(self, *args):
8638 """Assert constraints as background axioms for the optimize solver. Alias for assert_expr."""
8639 self.assert_exprs(*args)
8640

Referenced by Solver.__iadd__().

◆ add_soft()

add_soft (   self,
  arg,
  weight = "1",
  id = None 
)
Add soft constraint with optional weight and optional identifier.
   If no weight is supplied, then the penalty for violating the soft constraint
   is 1.
   Soft constraints are grouped by identifiers. Soft constraints that are
   added without identifiers are grouped by default.

Definition at line 8674 of file z3py.py.

8674 def add_soft(self, arg, weight="1", id=None):
8675 """Add soft constraint with optional weight and optional identifier.
8676 If no weight is supplied, then the penalty for violating the soft constraint
8677 is 1.
8678 Soft constraints are grouped by identifiers. Soft constraints that are
8679 added without identifiers are grouped by default.
8680 """
8681 if _is_int(weight):
8682 weight = "%d" % weight
8683 elif isinstance(weight, float):
8684 weight = "%f" % weight
8685 if not isinstance(weight, str):
8686 raise Z3Exception("weight should be a string or an integer")
8687 if id is None:
8688 id = ""
8689 id = to_symbol(id, self.ctx)
8690
8691 def asoft(a):
8692 v = Z3_optimize_assert_soft(self.ctx.ref(), self.optimize, a.as_ast(), weight, id)
8693 return OptimizeObjective(self, v, False)
8694 if sys.version_info.major >= 3 and isinstance(arg, Iterable):
8695 return [asoft(a) for a in arg]
8696 return asoft(arg)
8697
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.

◆ assert_and_track()

assert_and_track (   self,
  a,
  p 
)
Assert constraint `a` and track it in the unsat core using the Boolean constant `p`.

If `p` is a string, it will be automatically converted into a Boolean constant.

>>> x = Int('x')
>>> p3 = Bool('p3')
>>> s = Optimize()
>>> s.assert_and_track(x > 0,  'p1')
>>> s.assert_and_track(x != 1, 'p2')
>>> s.assert_and_track(x < 0,  p3)
>>> print(s.check())
unsat
>>> c = s.unsat_core()
>>> len(c)
2
>>> Bool('p1') in c
True
>>> Bool('p2') in c
False
>>> p3 in c
True

Definition at line 8645 of file z3py.py.

8645 def assert_and_track(self, a, p):
8646 """Assert constraint `a` and track it in the unsat core using the Boolean constant `p`.
8647
8648 If `p` is a string, it will be automatically converted into a Boolean constant.
8649
8650 >>> x = Int('x')
8651 >>> p3 = Bool('p3')
8652 >>> s = Optimize()
8653 >>> s.assert_and_track(x > 0, 'p1')
8654 >>> s.assert_and_track(x != 1, 'p2')
8655 >>> s.assert_and_track(x < 0, p3)
8656 >>> print(s.check())
8657 unsat
8658 >>> c = s.unsat_core()
8659 >>> len(c)
8660 2
8661 >>> Bool('p1') in c
8662 True
8663 >>> Bool('p2') in c
8664 False
8665 >>> p3 in c
8666 True
8667 """
8668 if isinstance(p, str):
8669 p = Bool(p, self.ctx)
8670 _z3_assert(isinstance(a, BoolRef), "Boolean expression expected")
8671 _z3_assert(isinstance(p, BoolRef) and is_const(p), "Boolean expression expected")
8672 Z3_optimize_assert_and_track(self.ctx.ref(), self.optimize, a.as_ast(), p.as_ast())
8673
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.

◆ assert_exprs()

assert_exprs (   self,
*  args 
)
Assert constraints as background axioms for the optimize solver.

Definition at line 8625 of file z3py.py.

8625 def assert_exprs(self, *args):
8626 """Assert constraints as background axioms for the optimize solver."""
8627 args = _get_args(args)
8628 s = BoolSort(self.ctx)
8629 for arg in args:
8630 if isinstance(arg, Goal) or isinstance(arg, AstVector):
8631 for f in arg:
8632 Z3_optimize_assert(self.ctx.ref(), self.optimize, f.as_ast())
8633 else:
8634 arg = s.cast(arg)
8635 Z3_optimize_assert(self.ctx.ref(), self.optimize, arg.as_ast())
8636
void Z3_API Z3_optimize_assert(Z3_context c, Z3_optimize o, Z3_ast a)
Assert hard constraint to the optimization context.

Referenced by Goal.add(), Solver.add(), Goal.append(), Solver.append(), Goal.insert(), and Solver.insert().

◆ assertions()

assertions (   self)
Return an AST vector containing all added constraints.

Definition at line 8780 of file z3py.py.

8780 def assertions(self):
8781 """Return an AST vector containing all added constraints."""
8782 return AstVector(Z3_optimize_get_assertions(self.ctx.ref(), self.optimize), self.ctx)
8783
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.

◆ check()

check (   self,
*  assumptions 
)
Check consistency and produce optimal values.

Definition at line 8729 of file z3py.py.

8729 def check(self, *assumptions):
8730 """Check consistency and produce optimal values."""
8731 assumptions = _get_args(assumptions)
8732 num = len(assumptions)
8733 _assumptions = (Ast * num)()
8734 for i in range(num):
8735 _assumptions[i] = assumptions[i].as_ast()
8736 return CheckSatResult(Z3_optimize_check(self.ctx.ref(), self.optimize, num, _assumptions))
8737
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.

◆ from_file()

from_file (   self,
  filename 
)
Parse assertions and objectives from a file

Definition at line 8772 of file z3py.py.

8772 def from_file(self, filename):
8773 """Parse assertions and objectives from a file"""
8774 Z3_optimize_from_file(self.ctx.ref(), self.optimize, filename)
8775
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()

from_string (   self,
  s 
)
Parse assertions and objectives from a string

Definition at line 8776 of file z3py.py.

8776 def from_string(self, s):
8777 """Parse assertions and objectives from a string"""
8778 Z3_optimize_from_string(self.ctx.ref(), self.optimize, s)
8779
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....

◆ help()

help (   self)
Display a string describing all available options.

Definition at line 8617 of file z3py.py.

8617 def help(self):
8618 """Display a string describing all available options."""
8619 print(Z3_optimize_get_help(self.ctx.ref(), self.optimize))
8620
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()

lower (   self,
  obj 
)

Definition at line 8752 of file z3py.py.

8752 def lower(self, obj):
8753 if not isinstance(obj, OptimizeObjective):
8754 raise Z3Exception("Expecting objective handle returned by maximize/minimize")
8755 return obj.lower()
8756

◆ lower_values()

lower_values (   self,
  obj 
)

Definition at line 8762 of file z3py.py.

8762 def lower_values(self, obj):
8763 if not isinstance(obj, OptimizeObjective):
8764 raise Z3Exception("Expecting objective handle returned by maximize/minimize")
8765 return obj.lower_values()
8766

◆ maximize()

maximize (   self,
  arg 
)
Add objective function to maximize.

Definition at line 8705 of file z3py.py.

8705 def maximize(self, arg):
8706 """Add objective function to maximize."""
8707 return OptimizeObjective(
8708 self,
8709 Z3_optimize_maximize(self.ctx.ref(), self.optimize, arg.as_ast()),
8710 is_max=True,
8711 )
8712
unsigned Z3_API Z3_optimize_maximize(Z3_context c, Z3_optimize o, Z3_ast t)
Add a maximization constraint.

◆ minimize()

minimize (   self,
  arg 
)
Add objective function to minimize.

Definition at line 8713 of file z3py.py.

8713 def minimize(self, arg):
8714 """Add objective function to minimize."""
8715 return OptimizeObjective(
8716 self,
8717 Z3_optimize_minimize(self.ctx.ref(), self.optimize, arg.as_ast()),
8718 is_max=False,
8719 )
8720
unsigned Z3_API Z3_optimize_minimize(Z3_context c, Z3_optimize o, Z3_ast t)
Add a minimization constraint.

◆ model()

model (   self)
Return a model for the last check().

Definition at line 8742 of file z3py.py.

8742 def model(self):
8743 """Return a model for the last check()."""
8744 try:
8745 return ModelRef(Z3_optimize_get_model(self.ctx.ref(), self.optimize), self.ctx)
8746 except Z3Exception:
8747 raise Z3Exception("model is not available")
8748
Z3_model Z3_API Z3_optimize_get_model(Z3_context c, Z3_optimize o)
Retrieve the model for the last Z3_optimize_check.

Referenced by ModelRef.__del__(), ModelRef.__getitem__(), ModelRef.__len__(), ModelRef.decls(), ModelRef.eval(), ModelRef.get_interp(), ModelRef.get_sort(), ModelRef.get_universe(), ModelRef.num_sorts(), ModelRef.project(), ModelRef.project_with_witness(), ModelRef.sexpr(), ModelRef.translate(), and ModelRef.update_value().

◆ objectives()

objectives (   self)
returns set of objective functions

Definition at line 8784 of file z3py.py.

8784 def objectives(self):
8785 """returns set of objective functions"""
8786 return AstVector(Z3_optimize_get_objectives(self.ctx.ref(), self.optimize), self.ctx)
8787
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...

◆ param_descrs()

param_descrs (   self)
Return the parameter description set.

Definition at line 8621 of file z3py.py.

8621 def param_descrs(self):
8622 """Return the parameter description set."""
8623 return ParamDescrsRef(Z3_optimize_get_param_descrs(self.ctx.ref(), self.optimize), self.ctx)
8624
Z3_param_descrs Z3_API Z3_optimize_get_param_descrs(Z3_context c, Z3_optimize o)
Return the parameter description set for the given optimize object.

◆ pop()

pop (   self)
restore to previously created backtracking point

Definition at line 8725 of file z3py.py.

8725 def pop(self):
8726 """restore to previously created backtracking point"""
8727 Z3_optimize_pop(self.ctx.ref(), self.optimize)
8728
void Z3_API Z3_optimize_pop(Z3_context c, Z3_optimize d)
Backtrack one level.

Referenced by Solver.__exit__().

◆ push()

push (   self)
create a backtracking point for added rules, facts and assertions

Definition at line 8721 of file z3py.py.

8721 def push(self):
8722 """create a backtracking point for added rules, facts and assertions"""
8723 Z3_optimize_push(self.ctx.ref(), self.optimize)
8724
void Z3_API Z3_optimize_push(Z3_context c, Z3_optimize d)
Create a backtracking point.

Referenced by Solver.__enter__().

◆ reason_unknown()

reason_unknown (   self)
Return a string that describes why the last `check()` returned `unknown`.

Definition at line 8738 of file z3py.py.

8738 def reason_unknown(self):
8739 """Return a string that describes why the last `check()` returned `unknown`."""
8740 return Z3_optimize_get_reason_unknown(self.ctx.ref(), self.optimize)
8741
Z3_string Z3_API Z3_optimize_get_reason_unknown(Z3_context c, Z3_optimize d)
Retrieve a string that describes the last status returned by Z3_optimize_check.

◆ set()

set (   self,
*  args,
**  keys 
)
Set a configuration option.
The method `help()` return a string containing all available options.

Definition at line 8610 of file z3py.py.

8610 def set(self, *args, **keys):
8611 """Set a configuration option.
8612 The method `help()` return a string containing all available options.
8613 """
8614 p = args2params(args, keys, self.ctx)
8615 Z3_optimize_set_params(self.ctx.ref(), self.optimize, p.params)
8616
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()

set_initial_value (   self,
  var,
  value 
)
initialize the solver's state by setting the initial value of var to value

Definition at line 8698 of file z3py.py.

8698 def set_initial_value(self, var, value):
8699 """initialize the solver's state by setting the initial value of var to value
8700 """
8701 s = var.sort()
8702 value = s.cast(value)
8703 Z3_optimize_set_initial_value(self.ctx.ref(), self.optimize, var.ast, value.ast)
8704
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...

◆ set_on_model()

set_on_model (   self,
  on_model 
)
Register a callback that is invoked with every incremental improvement to
objective values. The callback takes a model as argument.
The life-time of the model is limited to the callback so the
model has to be (deep) copied if it is to be used after the callback

Definition at line 8816 of file z3py.py.

8816 def set_on_model(self, on_model):
8817 """Register a callback that is invoked with every incremental improvement to
8818 objective values. The callback takes a model as argument.
8819 The life-time of the model is limited to the callback so the
8820 model has to be (deep) copied if it is to be used after the callback
8821 """
8822 id = len(_on_models) + 41
8823 mdl = Model(self.ctx)
8824 _on_models[id] = (on_model, mdl)
8825 self._on_models_id = id
8827 self.ctx.ref(), self.optimize, mdl.model, ctypes.c_void_p(id), _on_model_eh,
8828 )
8829
8830
void Z3_API Z3_optimize_register_model_eh(Z3_context c, Z3_optimize o, Z3_model m, void *ctx, Z3_model_eh model_eh)
register a model event handler for new models.

◆ sexpr()

sexpr (   self)
Return a formatted string (in Lisp-like format) with all added constraints.
We say the string is in s-expression format.

Definition at line 8792 of file z3py.py.

8792 def sexpr(self):
8793 """Return a formatted string (in Lisp-like format) with all added constraints.
8794 We say the string is in s-expression format.
8795 """
8796 return Z3_optimize_to_string(self.ctx.ref(), self.optimize)
8797
Z3_string Z3_API Z3_optimize_to_string(Z3_context c, Z3_optimize o)
Print the current context as a string.

◆ statistics()

statistics (   self)
Return statistics for the last check`.

Definition at line 8798 of file z3py.py.

8798 def statistics(self):
8799 """Return statistics for the last check`.
8800 """
8801 return Statistics(Z3_optimize_get_statistics(self.ctx.ref(), self.optimize), self.ctx)
8802
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.

◆ translate()

translate (   self,
  target 
)
Translate `self` to the context `target`. That is, return a copy of `self` in the context `target`.

>>> c1 = Context()
>>> c2 = Context()
>>> o1 = Optimize(ctx=c1)
>>> o2 = o1.translate(c2)

Definition at line 8803 of file z3py.py.

8803 def translate(self, target):
8804 """Translate `self` to the context `target`. That is, return a copy of `self` in the context `target`.
8805
8806 >>> c1 = Context()
8807 >>> c2 = Context()
8808 >>> o1 = Optimize(ctx=c1)
8809 >>> o2 = o1.translate(c2)
8810 """
8811 if z3_debug():
8812 _z3_assert(isinstance(target, Context), "argument must be a Z3 context")
8813 opt = Z3_optimize_translate(self.ctx.ref(), self.optimize, target.ref())
8814 return Optimize(opt, target)
8815
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.

Referenced by AstRef.__copy__(), Goal.__copy__(), AstVector.__copy__(), FuncInterp.__copy__(), ModelRef.__copy__(), Goal.__deepcopy__(), AstVector.__deepcopy__(), FuncInterp.__deepcopy__(), and ModelRef.__deepcopy__().

◆ unsat_core()

unsat_core (   self)

Definition at line 8749 of file z3py.py.

8749 def unsat_core(self):
8750 return AstVector(Z3_optimize_get_unsat_core(self.ctx.ref(), self.optimize), self.ctx)
8751
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()

upper (   self,
  obj 
)

Definition at line 8757 of file z3py.py.

8757 def upper(self, obj):
8758 if not isinstance(obj, OptimizeObjective):
8759 raise Z3Exception("Expecting objective handle returned by maximize/minimize")
8760 return obj.upper()
8761

◆ upper_values()

upper_values (   self,
  obj 
)

Definition at line 8767 of file z3py.py.

8767 def upper_values(self, obj):
8768 if not isinstance(obj, OptimizeObjective):
8769 raise Z3Exception("Expecting objective handle returned by maximize/minimize")
8770 return obj.upper_values()
8771

Field Documentation

◆ _on_models_id

_on_models_id
protected

Definition at line 8588 of file z3py.py.

◆ ctx

ctx

Definition at line 8583 of file z3py.py.

Referenced by ArithRef.__add__(), BitVecRef.__add__(), BitVecRef.__and__(), FuncDeclRef.__call__(), AstMap.__contains__(), AstRef.__copy__(), Goal.__copy__(), AstVector.__copy__(), FuncInterp.__copy__(), ModelRef.__copy__(), AstRef.__deepcopy__(), Datatype.__deepcopy__(), ParamsRef.__deepcopy__(), ParamDescrsRef.__deepcopy__(), Goal.__deepcopy__(), AstVector.__deepcopy__(), AstMap.__deepcopy__(), FuncEntry.__deepcopy__(), FuncInterp.__deepcopy__(), ModelRef.__deepcopy__(), Statistics.__deepcopy__(), Context.__del__(), AstRef.__del__(), ScopedConstructor.__del__(), ScopedConstructorList.__del__(), ParamsRef.__del__(), ParamDescrsRef.__del__(), Goal.__del__(), AstVector.__del__(), AstMap.__del__(), FuncEntry.__del__(), FuncInterp.__del__(), ModelRef.__del__(), Statistics.__del__(), Solver.__del__(), ArithRef.__div__(), BitVecRef.__div__(), ExprRef.__eq__(), ArithRef.__ge__(), BitVecRef.__ge__(), AstVector.__getitem__(), ModelRef.__getitem__(), Statistics.__getitem__(), AstMap.__getitem__(), ArithRef.__gt__(), BitVecRef.__gt__(), BitVecRef.__invert__(), ArithRef.__le__(), BitVecRef.__le__(), AstVector.__len__(), AstMap.__len__(), ModelRef.__len__(), Statistics.__len__(), BitVecRef.__lshift__(), ArithRef.__lt__(), BitVecRef.__lt__(), ArithRef.__mod__(), BitVecRef.__mod__(), BoolRef.__mul__(), ArithRef.__mul__(), BitVecRef.__mul__(), ExprRef.__ne__(), ArithRef.__neg__(), BitVecRef.__neg__(), BitVecRef.__or__(), ArithRef.__pow__(), ArithRef.__radd__(), BitVecRef.__radd__(), BitVecRef.__rand__(), ArithRef.__rdiv__(), BitVecRef.__rdiv__(), ParamsRef.__repr__(), ParamDescrsRef.__repr__(), AstMap.__repr__(), Statistics.__repr__(), BitVecRef.__rlshift__(), ArithRef.__rmod__(), BitVecRef.__rmod__(), ArithRef.__rmul__(), BitVecRef.__rmul__(), BitVecRef.__ror__(), ArithRef.__rpow__(), BitVecRef.__rrshift__(), BitVecRef.__rshift__(), ArithRef.__rsub__(), BitVecRef.__rsub__(), BitVecRef.__rxor__(), AstVector.__setitem__(), AstMap.__setitem__(), ArithRef.__sub__(), BitVecRef.__sub__(), BitVecRef.__xor__(), DatatypeSortRef.accessor(), ExprRef.arg(), FuncEntry.arg_value(), FuncInterp.arity(), Goal.as_expr(), Solver.assert_and_track(), Goal.assert_exprs(), Solver.assert_exprs(), QuantifierRef.body(), FiniteSetSortRef.cast(), Solver.check(), Goal.convert_model(), AstRef.ctx_ref(), ExprRef.decl(), ModelRef.decls(), ArrayRef.default(), RatNumRef.denominator(), Goal.depth(), Goal.dimacs(), FuncDeclRef.domain(), ArraySortRef.domain_n(), FuncInterp.else_value(), FuncInterp.entry(), AstMap.erase(), ModelRef.eval(), Goal.get(), ParamDescrsRef.get_documentation(), ModelRef.get_interp(), Statistics.get_key_value(), ParamDescrsRef.get_kind(), ParamDescrsRef.get_name(), ModelRef.get_sort(), ModelRef.get_universe(), Goal.inconsistent(), AstMap.keys(), Statistics.keys(), Solver.model(), SortRef.name(), QuantifierRef.no_pattern(), FuncEntry.num_args(), FuncInterp.num_entries(), Solver.num_scopes(), ModelRef.num_sorts(), FuncDeclRef.params(), QuantifierRef.pattern(), AlgebraicNumRef.poly(), Solver.pop(), Goal.prec(), ModelRef.project(), ModelRef.project_with_witness(), Solver.push(), AstVector.push(), QuantifierRef.qid(), FuncDeclRef.range(), ArraySortRef.range(), DatatypeSortRef.recognizer(), Context.ref(), AstMap.reset(), Solver.reset(), AstVector.resize(), Solver.set(), ParamsRef.set(), Goal.sexpr(), AstVector.sexpr(), ModelRef.sexpr(), ParamDescrsRef.size(), Goal.size(), QuantifierRef.skolem_id(), AstVector.translate(), AstRef.translate(), Goal.translate(), ModelRef.translate(), ExprRef.update(), DatatypeRef.update_field(), ParamsRef.validate(), FuncEntry.value(), QuantifierRef.var_name(), and QuantifierRef.var_sort().

◆ optimize

optimize

Definition at line 8585 of file z3py.py.