fix the most embarrassing quantity mistake ever
This commit is contained in:
parent
3f06e8d68b
commit
a4ffd74625
2 changed files with 38 additions and 3 deletions
|
@ -78,6 +78,7 @@ defGlobals = fromList
|
|||
("a'", mkPostulate gany $ FT "A"),
|
||||
("b", mkPostulate gany $ FT "B"),
|
||||
("f", mkPostulate gany $ Arr One (FT "A") (FT "A")),
|
||||
("fω", mkPostulate gany $ Arr Any (FT "A") (FT "A")),
|
||||
("g", mkPostulate gany $ Arr One (FT "A") (FT "B")),
|
||||
("f2", mkPostulate gany $ Arr One (FT "A") $ Arr One (FT "A") (FT "B")),
|
||||
("p", mkPostulate gany $ PiY One "x" (FT "A") $ E $ F "P" :@ BVT 0),
|
||||
|
@ -236,6 +237,40 @@ tests = "typechecker" :- [
|
|||
note "(fail) runtime-relevant type",
|
||||
testTCFail "1 · A ⇏ ★₀" $
|
||||
infer_ empty sone (F "A"),
|
||||
testTC "1 . f ⇒ 1.A → A" $
|
||||
inferAs empty sone (F "f") (Arr One (FT "A") (FT "A")),
|
||||
testTC "1 . f ⇐ 1.A → A" $
|
||||
check_ empty sone (FT "f") (Arr One (FT "A") (FT "A")),
|
||||
testTCFail "1 . f ⇍ 0.A → A" $
|
||||
check_ empty sone (FT "f") (Arr Zero (FT "A") (FT "A")),
|
||||
testTCFail "1 . f ⇍ ω.A → A" $
|
||||
check_ empty sone (FT "f") (Arr Any (FT "A") (FT "A")),
|
||||
testTC "1 . (λ x ⇒ f x) ⇐ 1.A → A" $
|
||||
check_ empty sone
|
||||
([< "x"] :\\ E (F "f" :@ BVT 0))
|
||||
(Arr One (FT "A") (FT "A")),
|
||||
testTC "1 . (λ x ⇒ f x) ⇐ ω.A → A" $
|
||||
check_ empty sone
|
||||
([< "x"] :\\ E (F "f" :@ BVT 0))
|
||||
(Arr Any (FT "A") (FT "A")),
|
||||
testTCFail "1 . (λ x ⇒ f x) ⇍ 0.A → A" $
|
||||
check_ empty sone
|
||||
([< "x"] :\\ E (F "f" :@ BVT 0))
|
||||
(Arr Zero (FT "A") (FT "A")),
|
||||
testTC "1 . fω ⇒ ω.A → A" $
|
||||
inferAs empty sone (F "fω") (Arr Any (FT "A") (FT "A")),
|
||||
testTC "1 . (λ x ⇒ fω x) ⇐ ω.A → A" $
|
||||
check_ empty sone
|
||||
([< "x"] :\\ E (F "fω" :@ BVT 0))
|
||||
(Arr Any (FT "A") (FT "A")),
|
||||
testTCFail "1 . (λ x ⇒ fω x) ⇍ 0.A → A" $
|
||||
check_ empty sone
|
||||
([< "x"] :\\ E (F "fω" :@ BVT 0))
|
||||
(Arr Zero (FT "A") (FT "A")),
|
||||
testTCFail "1 . (λ x ⇒ fω x) ⇍ 1.A → A" $
|
||||
check_ empty sone
|
||||
([< "x"] :\\ E (F "fω" :@ BVT 0))
|
||||
(Arr One (FT "A") (FT "A")),
|
||||
note "refl : (0·A : ★₀) → (1·x : A) → (x ≡ x : A) ≔ (λ A x ⇒ δ _ ⇒ x)",
|
||||
testTC "1 · refl ⇒ ⋯" $ inferAs empty sone (F "refl") reflTy,
|
||||
testTC "1 · [refl] ⇐ ⋯" $ check_ empty sone (FT "refl") reflTy
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue