implicitt/lib/Raw/RawSyntax.ml

41 lines
582 B
OCaml
Raw Normal View History

2023-01-25 21:17:49 +01:00
type var = Ix of int
2022-09-03 12:41:54 +02:00
type name = string
2023-01-25 21:17:49 +01:00
type icit
2022-09-03 12:41:54 +02:00
= Imp
| Exp
2023-01-25 21:17:49 +01:00
type ast
= Var of var
2023-01-26 16:49:17 +01:00
| Test of A.exp
2023-01-25 21:17:49 +01:00
| Type
| T0
| Ind0 of ast * ast
| T1
| T1tr (* Unit eta rule instead of elimination principle *)
| TNat
| Zero
| Suc of ast
| IndN of ast * ast * ast * ast
| TBool
| True
| False
| IndB of ast * ast * ast * ast (* ordered true, false *)
| Pi of icit * ast * ast
| Lam of icit * ast
| App of icit * ast
| Sg of ast * ast
| Pair of ast * ast
| Fst of ast
| Snd of ast
| Let of ast * ast * ast (* tr : ty in sc *)