3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-24 01:25:31 +00:00

address model generation bugs raised in #4518 and #4324

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2020-07-24 13:22:19 -07:00
parent e1d2b88a82
commit 780346c7ca
3 changed files with 22 additions and 8 deletions

View file

@ -86,7 +86,7 @@ public:
return true;
}
else {
return false;
return false;
}
}
NOT_IMPLEMENTED_YET();
@ -106,7 +106,7 @@ public:
sort* seq = nullptr, *ch = nullptr;
if (u.is_re(s, seq)) {
expr* v0 = get_fresh_value(seq);
return u.re.mk_to_re(v0);
return u.re.mk_to_re(v0);
}
if (u.is_char(s)) {
//char s[2] = { ++m_char, 0 };
@ -115,9 +115,23 @@ public:
}
if (u.is_seq(s, ch)) {
expr* v = m_model.get_fresh_value(ch);
if (!v) return nullptr;
return u.str.mk_unit(v);
if (v) {
return u.str.mk_unit(v);
}
else {
v = u.str.mk_unit(m_model.get_some_value(ch));
expr* uniq = nullptr;
if (m_unique_sequences.find(s, uniq)) {
uniq = u.str.mk_concat(v, uniq);
}
else {
uniq = v;
}
m_trail.push_back(uniq);
m_unique_sequences.insert(s, uniq);
return uniq;
}
}
UNREACHABLE();
return nullptr;
}