Fix is_convertible propositions => type

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
This commit is contained in:
Leonardo de Moura 2013-08-30 01:23:12 -07:00
parent 1f6943e3a4
commit 682df7699d
2 changed files with 13 additions and 0 deletions

View file

@ -244,6 +244,10 @@ class normalizer::imp {
if (m_env.is_ge(ty_level(*e), ty_level(*g)))
return true;
}
if (is_type(*e) && *g == mk_bool_type())
return true;
if (is_pi(*e) && is_pi(*g) && abst_domain(*e) == abst_domain(*g)) {
e = &abst_body(*e);
g = &abst_body(*g);

View file

@ -239,6 +239,14 @@ static void tst12() {
#endif
}
static void tst13() {
environment env = mk_toplevel();
env.add_var("f", Type() >> Type());
expr f = Const("f");
std::cout << infer_type(f(Bool), env) << "\n";
std::cout << infer_type(f(Eq(True,False)), env) << "\n";
}
int main() {
tst1();
tst2();
@ -252,5 +260,6 @@ int main() {
tst10();
tst11();
tst12();
tst13();
return has_violations() ? 1 : 0;
}