aboutsummaryrefslogtreecommitdiff
path: root/lib/Data.ml
diff options
context:
space:
mode:
authorMalte Voos <git@mal.tc>2024-06-23 01:36:48 +0200
committerMalte Voos <git@mal.tc>2024-06-23 01:36:48 +0200
commit8d40541003736d5319ec981278338e8c8c66daf6 (patch)
treee595d0055af42b6a9d84e504befbe114a8cef5e2 /lib/Data.ml
parent36762e83887b6f917df46c5e40a11d53b697209d (diff)
downloadtoytt-8d40541003736d5319ec981278338e8c8c66daf6.tar.gz
toytt-8d40541003736d5319ec981278338e8c8c66daf6.zip
keep track of bound names everywhere to be able to output names instead of de bruijn indices
Diffstat (limited to 'lib/Data.ml')
-rw-r--r--lib/Data.ml20
1 files changed, 11 insertions, 9 deletions
diff --git a/lib/Data.ml b/lib/Data.ml
index 19ca67d..d2f94d3 100644
--- a/lib/Data.ml
+++ b/lib/Data.ml
@@ -4,10 +4,10 @@ open Bwd
type syn =
| Var of int
- | Pi of syn * (* BINDS *) syn
- | Lam of (* BINDS *) syn
+ | Pi of Ident.local * syn * (* BINDS *) syn
+ | Lam of Ident.local * (* BINDS *) syn
| App of syn * syn
- | Sg of syn * (* BINDS *) syn
+ | Sg of Ident.local * syn * (* BINDS *) syn
| Pair of syn * syn
| Fst of syn
| Snd of syn
@@ -16,6 +16,7 @@ type syn =
| True
| False
| BoolElim of {
+ motive_var : Ident.local;
motive : (* BINDS *) syn;
true_case : syn;
false_case : syn;
@@ -26,9 +27,9 @@ type syn =
type value =
| Neutral of ne
- | Pi of value * clo
- | Lam of clo
- | Sg of value * clo
+ | Pi of Ident.local * value * clo
+ | Lam of Ident.local * clo
+ | Sg of Ident.local * value * clo
| Pair of value * value
| Type
| Bool
@@ -42,9 +43,10 @@ and frm =
| Fst
| Snd
| BoolElim of {
- cmot: clo;
- vtrue: value;
- vfalse: value;
+ motive_var : Ident.local;
+ motive: clo;
+ true_case: value;
+ false_case: value;
}
and env = value bwd