17 lines
409 B
OCaml
17 lines
409 B
OCaml
(* Variables des λ-termes *)
|
|
type var = string;;
|
|
(* Variable des types simples *)
|
|
type tvar = string;;
|
|
|
|
(* Type complexe *)
|
|
type ty = TSimple of tvar | TImpl of ty * ty | TFalse;;
|
|
|
|
(* λ-terme *)
|
|
type lam = LFun of var * ty * lam | LApp of lam * lam | LVar of var | LExf of lam * ty;;
|
|
|
|
(* Environnement de typage *)
|
|
type gam = (tvar * ty) list;;
|
|
|
|
(* λ-terme avec des trous *)
|
|
type lho = (lam list) -> lam;;
|