From 0afcb8bc9f7d0569b6bcb8baebfdce82788c02a7 Mon Sep 17 00:00:00 2001 From: arthur-adjedj <arthur.adjedj@gmail.com> Date: Tue, 1 Nov 2022 15:07:56 +0100 Subject: [PATCH] Fix : century-old bug in the type-checker --- kernel/src/term.rs | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/kernel/src/term.rs b/kernel/src/term.rs index f12f1ad4..efa321a0 100644 --- a/kernel/src/term.rs +++ b/kernel/src/term.rs @@ -337,6 +337,19 @@ mod tests { } + #[test] + fn poly_univ_id(){ + let id_ty = Prod(box Type(UniverseLevel::Var(0)),box Prod(box Var(1.into()),box Var(2.into()))); + let id_te = Abs(box Type(UniverseLevel::Var(0)),box Abs(box Var(1.into()),box Var(1.into()))); + let id_zero = Abs(box Type(0.into()),box Abs(box Var(1.into()),box Var(1.into()))); + assert!(id_te.check(&id_ty, &Environment::new()).is_ok()); + let env = Environment::new() + .insert("id".into(), id_te.clone().into(), id_ty.clone()) + .unwrap(); + assert!(Const("id".into(),vec![0.into()]).is_def_eq(&id_zero, &env).is_ok()) + } + + #[test] fn poly_univ_id(){ let id_ty = Prod(box Type(UniverseLevel::Var(0)),box Prod(box Var(1.into()),box Var(2.into()))); -- GitLab