Alpha equivalence checker for arbitrary lambda terms
7

Configure Feed

Select the types of activity you want to include in your feed.

ego / ocaml / lib / locally_nameless.mli
787 B 28 lines
1type t = 2 | BVar of int 3 | FVar of string 4 | Lam of t 5 | App of t * t 6 7module SSet : Set.S with type elt = string 8 9exception Not_locally_closed 10 11val free_variables : t -> SSet.t 12val free_variable_list : t -> string list 13val pretty : t -> string 14val open_at : int -> string -> t -> t 15val open_top : t -> string -> t 16val close_at : int -> string -> t -> t 17val close_top : t -> string -> t 18val lc : t -> bool 19val require_lc : t -> unit 20val subst_bvar : int -> t -> t -> t 21val subst_fvar : string -> t -> t -> t 22val substitute : string -> t -> t -> t 23val convert_from_named : Named.t -> t 24val convert_to_named : t -> Named.t 25val alpha_equivalent : t -> t -> bool 26val alpha_equivalent_counted : t -> t -> bool * int * int 27val normalise : t -> t 28val normalise_counted : t -> t * int * int