Skip to content

Commit 5122b2d

Browse files
add solver.timeout as another entry point #2354
Signed-off-by: Nikolaj Bjorner <[email protected]>
1 parent ed149ea commit 5122b2d

File tree

3 files changed

+8
-3
lines changed

3 files changed

+8
-3
lines changed

src/api/api_solver.cpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ Revision History:
3535
#include "smt/smt_implied_equalities.h"
3636
#include "solver/smt_logics.h"
3737
#include "solver/tactic2solver.h"
38+
#include "solver/solver_params.hpp"
3839
#include "cmd_context/cmd_context.h"
3940
#include "parsers/smt2/smt2parser.h"
4041
#include "sat/dimacs.h"
@@ -548,7 +549,10 @@ extern "C" {
548549
}
549550
}
550551
expr * const * _assumptions = to_exprs(num_assumptions, assumptions);
551-
unsigned timeout = to_solver(s)->m_params.get_uint("timeout", mk_c(c)->get_timeout());
552+
solver_params sp(to_solver(s)->m_params);
553+
unsigned timeout = mk_c(c)->get_timeout();
554+
timeout = to_solver(s)->m_params.get_uint("timeout", timeout);
555+
timeout = sp.timeout() != UINT_MAX ? sp.timeout() : timeout;
552556
unsigned rlimit = to_solver(s)->m_params.get_uint("rlimit", mk_c(c)->get_rlimit());
553557
bool use_ctrl_c = to_solver(s)->m_params.get_bool("ctrl_c", true);
554558
cancel_eh<reslimit> eh(mk_c(c)->m().limit());

src/solver/solver.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -226,8 +226,8 @@ void solver::assert_expr(expr* f, expr* t) {
226226

227227

228228
void solver::collect_param_descrs(param_descrs & r) {
229-
r.insert("solver.enforce_model_conversion", CPK_BOOL, "(default: false) enforce model conversion when asserting formulas");
230-
r.insert("solver.smtlib2_log", CPK_SYMBOL, "(default: None) file to log solver interaction in smtlib2 format");
229+
solver_params sp(m_params);
230+
sp.collect_param_descrs(r);
231231
insert_timeout(r);
232232
insert_rlimit(r);
233233
insert_max_memory(r);

src/solver/solver_params.pyg

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,6 @@ def_module_params('solver',
55
params=(('enforce_model_conversion', BOOL, False, "apply model transformation on new assertions"),
66
('smtlib2_log', SYMBOL, '', "file to save solver interaction"),
77
('cancel_backup_file', SYMBOL, '', "file to save partial search state if search is canceled"),
8+
('timeout', UINT, UINT_MAX, "timeout on the solver object; overwrites a global timeout"),
89
))
910

0 commit comments

Comments
 (0)