summaryrefslogtreecommitdiff
path: root/src/Encoded/Bool.idr
diff options
context:
space:
mode:
authorChloe Brown <chloe.brown.00@outlook.com>2023-06-16 18:01:33 +0100
committerChloe Brown <chloe.brown.00@outlook.com>2023-06-16 18:01:33 +0100
commitaf7c222cc3e487cd3ca8b5dd8749b7e258da7c7c (patch)
tree995c3a9d7bc6965d2de56b8a4e1f3f10376e6e86 /src/Encoded/Bool.idr
parent5adc1ae9357e42937a601aab57d16b2190e10536 (diff)
Define semantics and encode types up to pairs.
Diffstat (limited to 'src/Encoded/Bool.idr')
-rw-r--r--src/Encoded/Bool.idr22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/Encoded/Bool.idr b/src/Encoded/Bool.idr
new file mode 100644
index 0000000..d185856
--- /dev/null
+++ b/src/Encoded/Bool.idr
@@ -0,0 +1,22 @@
+module Encoded.Bool
+
+import Term.Syntax
+
+export
+B : Ty
+B = N
+
+export
+True : Term B ctx
+True = Lit 0
+
+export
+False : Term B ctx
+False = Lit 1
+
+export
+if' : Term (B ~> ty ~> ty ~> ty) ctx
+if' = Abs' (\b =>
+ Rec b
+ (Abs $ Const $ Var Here)
+ (Const $ Const $ Abs $ Var Here))