Module Logtk.Lambda
Lambda-Calculus
type term= Term.t
val beta_red_head : term -> termval whnf_list : term -> term list -> termApply a lambda to a list of arguments. The type of the lambda must be a generalization of a function that takes the list's types as arguments.
- raises Type.ApplyError
if the first term doesn't have a function type or if the types are not compatible
val eta_expand : term -> termTraverse the term, eta-expanding all sub-terms. A term
t : a -> bbecomesfun (x:a). t x
val eta_reduce : ?full:bool -> term -> termTraverse the term, eta-reducing all sub-terms. A term
fun x. t xwherex ∉ vars(t)becomest. If full is false, it eta-reduces only at the top level (default: true)
module Inner : sig ... endLow level interface