implicitt/lib/Term.ml

35 lines
519 B
OCaml

type var = Ix of int
type 'a binder = B of 'a
type term
= Var of var
| Type
| T0
| Ind0 of term binder * term
| T1
| T1tr
| Ind1 of term binder * term * term
| TNat
| Zero
| Suc of term
| IndN of term binder * term * term binder binder * term
| TBool
| True
| False
| IndB of term binder * term * term * term
| Pi of term * term binder
| Lam of term binder
| App of term * term
| Sg of term * term binder
| Pair of term * term
| Fst of term
| Snd of term