3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-11-04 05:19:11 +00:00

sls updates

- add SINGLE_THREAD mode
- add interface to retrieve "best" model so far
This commit is contained in:
Nikolaj Bjorner 2024-04-13 16:42:26 +02:00
parent 43dd6a5436
commit 2682c2ef2b
5 changed files with 128 additions and 66 deletions

View file

@ -54,10 +54,13 @@ namespace bv {
bool m_engine_model = false;
bool m_engine_init = false;
std::function<expr_ref()> m_get_unit;
std::function<void(model& mdl)> m_set_model;
unsigned m_min_repair_size = UINT_MAX;
std::pair<bool, app*> next_to_repair();
void init_repair_goal(app* e);
void set_model();
void try_repair_down(app* e);
void try_repair_up(app* e);
void set_repair_down(expr* e) { m_repair_down = e->get_id(); }
@ -96,6 +99,11 @@ namespace bv {
*/
void init_unit(std::function<expr_ref()> get_unit) { m_get_unit = get_unit; }
/**
* Add callback to set model
*/
void set_model(std::function<void(model& mdl)> f) { m_set_model = f; }
/**
* Run (bounded) local search to find feasible assignments.
*/