print non-dependent products (easy mode)
only if the AST uses SN, like with Eq
This commit is contained in:
parent
958bc2f8b8
commit
ea24d00544
5 changed files with 39 additions and 19 deletions
|
@ -156,7 +156,15 @@ tests = "parser" :- [
|
|||
Sig (Just "x") (V "A") (V "B" :@ V "x"),
|
||||
parsesAs term "(x : A) ** B x" $
|
||||
Sig (Just "x") (V "A") (V "B" :@ V "x"),
|
||||
parseFails term "(1.x : A) × B x"
|
||||
parseFails term "(1.x : A) × B x",
|
||||
parsesAs term "A × B" $
|
||||
Sig Nothing (V "A") (V "B"),
|
||||
parsesAs term "A ** B" $
|
||||
Sig Nothing (V "A") (V "B"),
|
||||
parsesAs term "A × B × C" $
|
||||
Sig Nothing (V "A") (Sig Nothing (V "B") (V "C")),
|
||||
parsesAs term "(A × B) × C" $
|
||||
Sig Nothing (Sig Nothing (V "A") (V "B")) (V "C")
|
||||
],
|
||||
|
||||
"lambdas" :- [
|
||||
|
@ -205,6 +213,9 @@ tests = "parser" :- [
|
|||
parsesAs term "f x y ≡ g y z : A B C" $
|
||||
Eq (Nothing, V "A" :@ V "B" :@ V "C")
|
||||
(V "f" :@ V "x" :@ V "y") (V "g" :@ V "y" :@ V "z"),
|
||||
parsesAs term "A × B ≡ A' × B' : ★₁" $
|
||||
Eq (Nothing, TYPE 1)
|
||||
(Sig Nothing (V "A") (V "B")) (Sig Nothing (V "A'") (V "B'")),
|
||||
parseFails term "Eq",
|
||||
parseFails term "Eq s t",
|
||||
parseFails term "s ≡ t",
|
||||
|
@ -242,19 +253,19 @@ tests = "parser" :- [
|
|||
],
|
||||
|
||||
"definitions" :- [
|
||||
parsesAs definition "defω x : (_: {a}) × {b} = ('a, 'b)" $
|
||||
parsesAs definition "defω x : {a} × {b} = ('a, 'b)" $
|
||||
MkPDef Any "x" (Just $ Sig Nothing (Enum ["a"]) (Enum ["b"]))
|
||||
(Pair (Tag "a") (Tag "b")),
|
||||
parsesAs definition "defω x : (_: {a}) × {b} = ('a, 'b)" $
|
||||
parsesAs definition "defω x : {a} × {b} = ('a, 'b)" $
|
||||
MkPDef Any "x" (Just $ Sig Nothing (Enum ["a"]) (Enum ["b"]))
|
||||
(Pair (Tag "a") (Tag "b")),
|
||||
parsesAs definition "def# x : (_: {a}) ** {b} = ('a, 'b)" $
|
||||
parsesAs definition "def# x : {a} ** {b} = ('a, 'b)" $
|
||||
MkPDef Any "x" (Just $ Sig Nothing (Enum ["a"]) (Enum ["b"]))
|
||||
(Pair (Tag "a") (Tag "b")),
|
||||
parsesAs definition "def ω.x : (_: {a}) × {b} = ('a, 'b)" $
|
||||
parsesAs definition "def ω.x : {a} × {b} = ('a, 'b)" $
|
||||
MkPDef Any "x" (Just $ Sig Nothing (Enum ["a"]) (Enum ["b"]))
|
||||
(Pair (Tag "a") (Tag "b")),
|
||||
parsesAs definition "def x : (_: {a}) × {b} = ('a, 'b)" $
|
||||
parsesAs definition "def x : {a} × {b} = ('a, 'b)" $
|
||||
MkPDef Any "x" (Just $ Sig Nothing (Enum ["a"]) (Enum ["b"]))
|
||||
(Pair (Tag "a") (Tag "b")),
|
||||
parsesAs definition "def0 A : ★₀ = {a, b, c}" $
|
||||
|
|
|
@ -108,7 +108,6 @@ tests = "pretty printing terms" :- [
|
|||
],
|
||||
|
||||
"pair types" :- [
|
||||
skipWith "todo: non-dependent notation" $
|
||||
testPrettyT [<] [<] (FT "A" `And` FT "B") "A × B" "A ** B",
|
||||
testPrettyT [<] [<]
|
||||
(Sig_ "x" (FT "A") (E $ F "B" :@ BVT 0))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue