summaryrefslogtreecommitdiff
path: root/src/Obs/Abstract.idr
diff options
context:
space:
mode:
authorGreg Brown <greg.brown01@ed.ac.uk>2022-12-18 22:56:48 +0000
committerGreg Brown <greg.brown01@ed.ac.uk>2022-12-18 22:56:48 +0000
commit49e4b61cd6b8150e516997606e803bfeec75d1f0 (patch)
treebe6fcbb3d1e5dd7e33a100bf364878157616c550 /src/Obs/Abstract.idr
parent9452d3aee15b8943684828320324b3da37efb397 (diff)
Add dependent sums.
Diffstat (limited to 'src/Obs/Abstract.idr')
-rw-r--r--src/Obs/Abstract.idr14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/Obs/Abstract.idr b/src/Obs/Abstract.idr
index 90616d4..ef90cb8 100644
--- a/src/Obs/Abstract.idr
+++ b/src/Obs/Abstract.idr
@@ -36,6 +36,20 @@ abstractSyntax ctx (App t u) = do
t <- abstractSyntax ctx t
u <- abstractSyntax ctx u
pure (App t u)
+abstractSyntax ctx (Sigma bounds var a b) = do
+ a <- abstractSyntax ctx a
+ b <- abstractSyntax (bind ctx var.val) b
+ pure (Sigma bounds var.val a b)
+abstractSyntax ctx (Pair b t u) = do
+ t <- abstractSyntax ctx t
+ u <- abstractSyntax ctx u
+ pure (Pair b t u)
+abstractSyntax ctx (Fst b t) = do
+ t <- abstractSyntax ctx t
+ pure (Fst b t)
+abstractSyntax ctx (Snd b t) = do
+ t <- abstractSyntax ctx t
+ pure (Snd b t)
abstractSyntax ctx (Top b) = pure (Top b)
abstractSyntax ctx (Point b) = pure (Point b)
abstractSyntax ctx (Bottom b) = pure (Bottom b)