mirror of
https://github.com/Z3Prover/z3
synced 2026-01-23 18:44:02 +00:00
fix #6343
The bug was that axiom generation was not enabled on last_index, so no axioms got created to constrain last-index. With default settings the solver is now very slow on this example. It is related to that the smallest size of a satisfying assignment is above 24. Pending a good heuristic to find initial seeds and increments for iterative deepening, I am adding another parameter smt.seq.min_unfolding that when set to 30 helps for this example.
This commit is contained in:
parent
16ef89905d
commit
c47ca341b7
5 changed files with 7 additions and 0 deletions
|
|
@ -304,6 +304,7 @@ void theory_seq::init() {
|
|||
m_ax.add_axiom5 = add_ax;
|
||||
m_ax.mk_eq_empty2 = mk_eq_emp;
|
||||
m_arith_value.init(&ctx);
|
||||
m_max_unfolding_depth = ctx.get_fparams().m_seq_min_unfolding;
|
||||
}
|
||||
|
||||
#define TRACEFIN(s) { TRACE("seq", tout << ">>" << s << "\n";); IF_VERBOSE(20, verbose_stream() << s << "\n"); }
|
||||
|
|
@ -3256,6 +3257,7 @@ void theory_seq::relevant_eh(app* n) {
|
|||
m_util.str.is_from_code(n) ||
|
||||
m_util.str.is_to_code(n) ||
|
||||
m_util.str.is_unit(n) ||
|
||||
m_util.str.is_last_index(n) ||
|
||||
m_util.str.is_length(n) ||
|
||||
/* m_util.str.is_replace_all(n) || uncomment to enable axiomatization */
|
||||
m_util.str.is_le(n)) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue