fix(library/elaborator): array bounds
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
This commit is contained in:
parent
2b2aa228e3
commit
57640ecf19
1 changed files with 6 additions and 6 deletions
|
@ -1178,16 +1178,16 @@ class elaborator::imp {
|
||||||
// We approximate and only consider the most useful ones.
|
// We approximate and only consider the most useful ones.
|
||||||
justification new_jst(new destruct_justification(c));
|
justification new_jst(new destruct_justification(c));
|
||||||
if (is_bool(a)) {
|
if (is_bool(a)) {
|
||||||
expr choices[5] = { Bool, Type(), Type(level() + 1), TypeU };
|
expr choices[3] = { Bool, Type(), TypeU };
|
||||||
push_active(mk_choice_constraint(get_context(c), b, 5, choices, new_jst));
|
push_active(mk_choice_constraint(get_context(c), b, 3, choices, new_jst));
|
||||||
return true;
|
return true;
|
||||||
} else if (m_env->is_ge(ty_level(a), m_U)) {
|
} else if (m_env->is_ge(ty_level(a), m_U)) {
|
||||||
expr choices[2] = { a, Type(ty_level(a) + 1) };
|
expr choices[2] = { a, Type(ty_level(a) + 1) };
|
||||||
push_active(mk_choice_constraint(get_context(c), b, 2, choices, new_jst));
|
push_active(mk_choice_constraint(get_context(c), b, 2, choices, new_jst));
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
expr choices[4] = { a, Type(ty_level(a) + 1), TypeU };
|
expr choices[3] = { a, Type(ty_level(a) + 1), TypeU };
|
||||||
push_active(mk_choice_constraint(get_context(c), b, 4, choices, new_jst));
|
push_active(mk_choice_constraint(get_context(c), b, 3, choices, new_jst));
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@ -1249,8 +1249,8 @@ class elaborator::imp {
|
||||||
push_active(mk_choice_constraint(get_context(c), a, 2, choices, new_jst));
|
push_active(mk_choice_constraint(get_context(c), a, 2, choices, new_jst));
|
||||||
return true;
|
return true;
|
||||||
} else if (b == TypeU) {
|
} else if (b == TypeU) {
|
||||||
expr choices[5] = { TypeU, Type(level() + 1), Type(), Bool };
|
expr choices[4] = { TypeU, Type(level() + 1), Type(), Bool };
|
||||||
push_active(mk_choice_constraint(get_context(c), a, 5, choices, new_jst));
|
push_active(mk_choice_constraint(get_context(c), a, 4, choices, new_jst));
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
level const & lvl = ty_level(b);
|
level const & lvl = ty_level(b);
|
||||||
|
|
Loading…
Reference in a new issue