logtk

Core types and algorithms for logic
IN THIS PACKAGE
Module Logtk . PatternUnif

Pattern unification algorithm implementation

This module implements pattern unification oracle described in \urlhttp://matryoshka.gforge.inria.fr/pubs/hounif_paper.pdf. It can be applied to terms out of the pattern fragment in which case it raises NotInFragment exception.

module T = Term
module US = Unif_subst
type subst = US.t
module S : sig ... end
exception NotUnifiable
exception NotInFragment
val eta_expand_otf : subst:subst -> scope:Scoped.scope -> Type.t list -> Type.t list -> T.t -> T.t -> T.t * T.t * Type.t list
val norm_deref : Unif_subst.t -> T.t Scoped.t -> T.t
val unif_simple : ?subst:Subst.t -> scope:int -> T.t -> T.t -> US.t option
val unify_scoped : ?subst:subst -> ?counter:int ref -> T.t Scoped.t -> T.t Scoped.t -> subst