Skip to content

Commit 349ebd0

Browse files
1 parent 84da614 commit 349ebd0

File tree

3 files changed

+7
-2
lines changed

3 files changed

+7
-2
lines changed

src/smt/smt_context.cpp

+6-1
Original file line numberDiff line numberDiff line change
@@ -1858,8 +1858,10 @@ namespace smt {
18581858
lbool phase = l_undef;
18591859
m_case_split_queue->next_case_split(var, phase);
18601860
used_queue = true;
1861-
if (var == null_bool_var)
1861+
if (var == null_bool_var) {
1862+
push_trail(value_trail(m_has_case_split, false));
18621863
return false;
1864+
}
18631865

18641866
TRACE_CODE({
18651867
static unsigned counter = 0;
@@ -4642,6 +4644,9 @@ namespace smt {
46424644
}
46434645

46444646
bool context::has_case_splits() {
4647+
if (!m_has_case_split)
4648+
return false;
4649+
46454650
for (unsigned i = get_num_b_internalized(); i-- > 0; ) {
46464651
if (is_relevant(i) && get_assignment(i) == l_undef)
46474652
return true;

src/smt/smt_context.h

+1
Original file line numberDiff line numberDiff line change
@@ -1155,6 +1155,7 @@ namespace smt {
11551155
bool guess(bool_var var, lbool phase);
11561156

11571157
protected:
1158+
bool m_has_case_split = true;
11581159
bool decide();
11591160

11601161
void update_phase_cache_counter();

src/smt/smt_model_generator.cpp

-1
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,6 @@ namespace smt {
9999
if (m.is_bool(s)) {
100100
CTRACE("model", m_context->get_assignment(r) == l_undef,
101101
tout << mk_pp(r->get_expr(), m) << "\n";);
102-
SASSERT(m_context->get_assignment(r) != l_undef);
103102
if (m_context->get_assignment(r) == l_true)
104103
proc = alloc(expr_wrapper_proc, m.mk_true());
105104
else

0 commit comments

Comments
 (0)