Page
Library
Module
Module type
Parameter
Class
Class type
Source
Tyabt.Make
SourceFunctor building an implementation of abstract binding trees given a signature.
An abstract binding tree (ABT). 'valence
is a phantom type parameter representing the valence of the ABT.
A list of operands.
type 'valence view =
| Abs : 'sort Variable.t * 'valence t -> ('sort -> 'valence) view
An abstractor, which binds a variable within a term.
*)| Op : ('arity, 'sort) Operator.t * ('arity, 'sort) operands -> 'sort va view
An operator applied to operands.
*)| Var : 'sort Variable.t -> 'sort va view
A variable.
*)A view of an ABT.
Constructs an abstractor ABT.
Constructs an operation ABT.
Constructs a variable ABT.
val subst :
'sort Sort.t ->
('sort Variable.t -> 'sort va t option) ->
'valence t ->
'valence t
Applies a substitution to the ABT.
Checks two ABTs for alpha-equivalence. Two ABTs are alpha-equivalent iff they are structurally equal up to renaming of bound variables.
Pretty-prints an ABT.