mirror of
https://github.com/Z3Prover/z3
synced 2025-10-09 01:11:55 +00:00
updates
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
8744c62fca
commit
60bb02b709
11 changed files with 120 additions and 35 deletions
|
@ -5163,7 +5163,21 @@ void theory_seq::assign_eh(bool_var v, bool is_true) {
|
|||
}
|
||||
}
|
||||
else if (m_util.str.is_contains(e, e1, e2)) {
|
||||
if (is_true) {
|
||||
expr_ref_vector disj(m);
|
||||
if (m_seq_rewrite.reduce_contains(e1, e2, disj)) {
|
||||
literal_vector lits;
|
||||
literal lit = mk_literal(e);
|
||||
lits.push_back(~lit);
|
||||
for (expr* d : disj) {
|
||||
lits.push_back(mk_literal(d));
|
||||
}
|
||||
++m_stats.m_add_axiom;
|
||||
ctx.mk_th_axiom(get_id(), lits.size(), lits.c_ptr());
|
||||
for (expr* d : disj) {
|
||||
add_axiom(lit, ~mk_literal(d));
|
||||
}
|
||||
}
|
||||
else if (is_true) {
|
||||
expr_ref f1 = mk_skolem(m_indexof_left, e1, e2);
|
||||
expr_ref f2 = mk_skolem(m_indexof_right, e1, e2);
|
||||
f = mk_concat(f1, e2, f2);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue