Module Logtk__Subst.FO
include SPECIALIZED with type term = Logtk.Term.t
type term= Logtk.Term.ttype t= subst
val find_exn : t -> var Logtk.Scoped.t -> term Logtk.Scoped.tval get_var : t -> var Logtk.Scoped.t -> term Logtk.Scoped.t optionval deref : t -> term Logtk.Scoped.t -> term Logtk.Scoped.tval apply : ?shift_vars:int -> Renaming.t -> t -> term Logtk.Scoped.t -> termApply 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 -> tAdd
v->tto the substitution. Both terms have a context.- raises InconsistentBinding
if
vis already bound in the same context, to another term.
val update : t -> var Logtk.Scoped.t -> term Logtk.Scoped.t -> tReplace
v-> ? byv->tin the substitution. Both terms have a context.- raises InconsistentBinding
if
vis not yet bound in the same context.
val of_list : ?init:t -> (var Logtk.Scoped.t * term Logtk.Scoped.t) list -> t
val bind' : t -> Logtk.Type.t Logtk.HVar.t Logtk.Scoped.t -> term Logtk.Scoped.t -> tval apply_l : ?shift_vars:int -> Renaming.t -> t -> term list Logtk.Scoped.t -> term listval of_list' : ?init:t -> (Logtk.Type.t Logtk.HVar.t Logtk.Scoped.t * term Logtk.Scoped.t) list -> tval map : (term -> term) -> t -> tval iter : (Logtk.Type.t Logtk.HVar.t Logtk.Scoped.t -> term Logtk.Scoped.t -> unit) -> t -> unitval filter : (Logtk.Type.t Logtk.HVar.t Logtk.Scoped.t -> term Logtk.Scoped.t -> bool) -> t -> tval compose : scope:int -> t -> t -> tTakes a substitution that might map a variable x to a term that containts loosely bound variables. It fixes the substitution so that all such variables are remaped to a fresh skolem
val unleak_variables : t -> t * Logtk.Term.t listTakes a substitution that might map a variable x to a term that containts loosely bound variables. It fixes the substitution so that all such variables are remaped to a fresh skolem
val subset_is_renaming : subset:term Logtk.Scoped.t list -> res_scope:int -> t -> boolval canonize_neg_vars : var_set:Logtk.InnerTerm.VarSet.t -> tval canonize_all_vars : term -> term