mirror of
https://github.com/Z3Prover/z3
synced 2025-04-24 09:35:32 +00:00
Add command to set initial value hints for solver in various components
This commit is contained in:
parent
1c163dbad2
commit
a3f35b6830
17 changed files with 82 additions and 8 deletions
1
src/tactic/.#tactic.cpp
Normal file
1
src/tactic/.#tactic.cpp
Normal file
|
@ -0,0 +1 @@
|
|||
nbjorner@LAPTOP-04AEAFKH.32880:1726092166
|
|
@ -375,6 +375,9 @@ private:
|
|||
return m_assertions.get(idx);
|
||||
}
|
||||
}
|
||||
|
||||
void user_propagate_initialize_value(expr* var, expr* value) override {
|
||||
}
|
||||
};
|
||||
|
||||
solver * mk_bounded_int2bv_solver(ast_manager & m, params_ref const & p, solver* s) {
|
||||
|
|
|
@ -151,6 +151,7 @@ public:
|
|||
throw tactic_exception("undecided");
|
||||
skip_tactic::operator()(in, result);
|
||||
}
|
||||
void user_propagate_initialize_value(expr* var, expr* value) override { }
|
||||
};
|
||||
|
||||
tactic * mk_fail_if_undecided_tactic() {
|
||||
|
|
|
@ -129,6 +129,7 @@ public:
|
|||
tactic * translate(ast_manager & m) override { return this; }
|
||||
char const* name() const override { return "skip"; }
|
||||
void collect_statistics(statistics& st) const override {}
|
||||
void user_propagate_initialize_value(expr* var, expr* value) override { }
|
||||
};
|
||||
|
||||
tactic * mk_skip_tactic();
|
||||
|
|
|
@ -382,6 +382,12 @@ public:
|
|||
}
|
||||
|
||||
tactic * translate(ast_manager & m) override { return translate_core<or_else_tactical>(m); }
|
||||
|
||||
void user_propagate_initialize_value(expr* var, expr* value) override {
|
||||
for (auto t : m_ts)
|
||||
t->user_propagate_initialize_value(var, value);
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
tactic * or_else(unsigned num, tactic * const * ts) {
|
||||
|
@ -1163,6 +1169,11 @@ public:
|
|||
tactic * new_t2 = m_t2->translate(m);
|
||||
return alloc(cond_tactical, m_p.get(), new_t1, new_t2);
|
||||
}
|
||||
|
||||
void user_propagate_initialize_value(expr* var, expr* value) override {
|
||||
m_t1->user_propagate_initialize_value(var, value);
|
||||
m_t2->user_propagate_initialize_value(var, value);
|
||||
}
|
||||
};
|
||||
|
||||
tactic * cond(probe * p, tactic * t1, tactic * t2) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue