Module type Logtk__Subst.SPECIALIZED
type term
type t
= subst
val find_exn : t -> var Logtk.Scoped.t -> term Logtk.Scoped.t
val get_var : t -> var Logtk.Scoped.t -> term Logtk.Scoped.t option
val deref : t -> term Logtk.Scoped.t -> term Logtk.Scoped.t
val apply : ?shift_vars:int -> Renaming.t -> t -> term Logtk.Scoped.t -> term
Apply the substitution to the given term/type.
- parameter renaming
used to desambiguate free variables from distinct scopes
val bind : t -> var Logtk.Scoped.t -> term Logtk.Scoped.t -> t
Add
v
->t
to the substitution. Both terms have a context.- raises InconsistentBinding
if
v
is already bound in the same context, to another term.
val update : t -> var Logtk.Scoped.t -> term Logtk.Scoped.t -> t
Replace
v
-> ? byv
->t
in the substitution. Both terms have a context.- raises InconsistentBinding
if
v
is not yet bound in the same context.
val of_list : ?init:t -> (var Logtk.Scoped.t * term Logtk.Scoped.t) list -> t