3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-22 00:26:38 +00:00

Add parameter polysat.max_iterations for debugging

This commit is contained in:
Jakob Rath 2023-08-16 09:55:21 +02:00
parent 062ca92ebe
commit afc292e5db
3 changed files with 5 additions and 1 deletions

View file

@ -4,6 +4,7 @@ def_module_params('polysat',
params=(
('max_conflicts', UINT, UINT_MAX, "maximum number of conflicts before giving up"),
('max_decisions', UINT, UINT_MAX, "maximum number of decisions before giving up"),
('max_iterations', UINT, UINT_MAX, "maximum number of iterations before giving up"),
# ('log', UINT, UINT_MAX, "polysat logging filter (TODO)"),
('log_start', UINT, UINT_MAX, "Enable logging on solver iteration N"),
('log_conflicts', BOOL, False, "log conflicts"),

View file

@ -80,6 +80,7 @@ namespace polysat {
m_params.append(p);
m_config.m_max_conflicts = pp.max_conflicts();
m_config.m_max_decisions = pp.max_decisions();
m_config.m_max_iterations = pp.max_iterations();
m_config.m_log_start = pp.log_start();
m_config.m_log_conflicts = pp.log_conflicts();
m_config.m_slicing_congruence = pp.slicing_congruence();
@ -96,7 +97,8 @@ namespace polysat {
return
m_lim.inc() &&
(m_stats.m_num_conflicts < config().m_max_conflicts) &&
(m_stats.m_num_decisions < config().m_max_decisions);
(m_stats.m_num_decisions < config().m_max_decisions) &&
(m_stats.m_num_iterations < config().m_max_iterations);
}
lbool solver::check_sat() {

View file

@ -51,6 +51,7 @@ namespace polysat {
struct config_t {
uint64_t m_max_conflicts = std::numeric_limits<uint64_t>::max();
uint64_t m_max_decisions = std::numeric_limits<uint64_t>::max();
uint64_t m_max_iterations = std::numeric_limits<uint64_t>::max();
unsigned m_log_start = UINT_MAX;
bool m_log_conflicts = false;
bool m_slicing_congruence = false;