implicitt/Eval.ml

35 lines
1.3 KiB
OCaml

module V = Value
module T = Term
let rec index : V.env -> int -> V.value
= fun env i ->
match env with
| [] -> failwith "Can't happen"
| x :: xs -> if i < 1 then x else index xs (i-1)
let rec eval : V.env -> t.term -> V.value
= fun env tr ->
match tr with
| Var i -> index env i
| Type -> V.Type
| T0 -> V.T0
| Ind0 (B b, t) -> failwith "todo"
| T1 -> V.T1
| T1tr -> V.T1tr
| Ind1 (B b, t1 tr) -> failwith "todo"
| TNat -> V.TNat
| Zero -> V.Zero
| Suc n -> failwith "todo"
| IndN (B b, tz, B B ts, n) -> failwith "todo"
| TBool -> failwith "todo"
| True -> failwith "todo"
| False -> failwith "todo"
| IndB (B b, tt, tf, b) -> failwith "todo"
| Pi (dom, B cod) -> failwith "todo"
| Lam (B body) -> failwith "todo"
| App (f, x) -> failwith "todo"
| Sg (ty, tr) -> failwith "todo"
| Pair (x, y) -> failwith "todo"
| Fst tr -> failwith "todo"
| Snd tr -> failwith "todo"