You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
There are some features of yices that we are currently not using, but it would make sense to integrate.
Stand-alone model: We are currently using an EagerModel to represent the models of Yices. However, the method yices_get_model returns a stand-alone model. This object should be wrapped (as done for mathsat and z3), and returned when calling Solver.get_model
Rich configuration options: The creation of a configuation for Yices is quite powerful. It includes multiple solvers for fragments of logics and modes of operations. We should at least consider the logic being passed to the solver (see code snippet below) and whether we are doing incremental calls or note (option 'mode' in yices API)
Support for QF_NRA is given via MC-SAT. However, there are no clear methods to extract the value. In particular, it would seem that approximations of the results are given (instead of an exact solution as done by Z3).
Code-snippet for Logic to config:
config = yicespy.yices_new_config()
code = yicespy.yices_default_config_for_logic(config, str(logic))
if code != 0:
raise InternalSolverError("Yices returned non-zero code upon assert"\
": %s (code: %s)" % \
(yicespy.yices_error_string(), code))
self.yices = yicespy.yices_new_context(config)
# Other options to set:
# From Yices documentation:
# "mode" | "one-shot" | only one call to check is supported
# | |
# | "multi-checks" | several calls to assert and check are
# | | possible
# | |
# | "push-pop" | like multi-check and with support for
# | | retracting assertions (via push/pop)
# | |
# | "interactive" | like push-pop, but with automatic context clean
# | | up when search is interrupted.
The text was updated successfully, but these errors were encountered:
There are some features of yices that we are currently not using, but it would make sense to integrate.
yices_get_model
returns a stand-alone model. This object should be wrapped (as done for mathsat and z3), and returned when calling Solver.get_modelCode-snippet for Logic to config:
The text was updated successfully, but these errors were encountered: