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

address accessor inconsistencies between - and from #1506

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2018-02-26 14:57:17 +09:00
parent 45b6e0998a
commit ce1b135ec3
6 changed files with 44 additions and 14 deletions

View file

@ -4313,9 +4313,7 @@ namespace smt {
if (m_fparams.m_model_compact)
m_proto_model->compress();
TRACE("mbqi_bug", tout << "after cleanup:\n"; model_pp(tout, *m_proto_model););
}
else {
IF_VERBOSE(11, model_pp(verbose_stream(), *m_proto_model););
}
}

View file

@ -2731,13 +2731,12 @@ public:
bool is_string = th.m_util.is_string(m_sort);
expr_ref result(th.m);
if (is_string) {
svector<unsigned> sbuffer;
unsigned_vector sbuffer;
bv_util bv(th.m);
rational val;
unsigned sz;
for (unsigned i = 0; i < m_source.size(); ++i) {
switch (m_source[i]) {
for (source_t src : m_source) {
switch (src) {
case unit_source: {
VERIFY(bv.is_numeral(values[j++], val, sz));
sbuffer.push_back(val.get_unsigned());
@ -2767,12 +2766,13 @@ public:
break;
}
}
// TRACE("seq", tout << src << " " << sbuffer << "\n";);
}
result = th.m_util.str.mk_string(zstring(sbuffer.size(), sbuffer.c_ptr()));
}
else {
for (unsigned i = 0; i < m_source.size(); ++i) {
switch (m_source[i]) {
for (source_t src : m_source) {
switch (src) {
case unit_source:
args.push_back(th.m_util.str.mk_unit(values[j++]));
break;
@ -2814,8 +2814,8 @@ model_value_proc * theory_seq::mk_value(enode * n, model_generator & mg) {
seq_value_proc* sv = alloc(seq_value_proc, *this, srt);
TRACE("seq", tout << mk_pp(e, m) << "\n";);
for (unsigned i = 0; i < concats.size(); ++i) {
expr* c = concats[i], *c1;
for (expr* c : concats) {
expr *c1;
TRACE("seq", tout << mk_pp(c, m) << "\n";);
if (m_util.str.is_unit(c, c1)) {
if (ctx.e_internalized(c1)) {