sig
module Sigma :
sig
type t
val equal : Letify.Sigma.t -> Letify.Sigma.t -> bool
val pretty : string -> Format.formatter -> Letify.Sigma.t -> unit
val e_apply : Letify.Sigma.t -> Lang.F.term -> Lang.F.term
val p_apply : Letify.Sigma.t -> Lang.F.pred -> Lang.F.pred
val empty : Letify.Sigma.t
val add : Lang.F.var -> Lang.F.term -> Letify.Sigma.t -> Letify.Sigma.t
val assume : Letify.Sigma.t -> Lang.F.pred -> Letify.Sigma.t
val find : Lang.F.var -> Letify.Sigma.t -> Lang.F.term
val iter :
(Lang.F.var -> Lang.F.term -> unit) -> Letify.Sigma.t -> unit
val domain : Letify.Sigma.t -> Lang.F.Vars.t
val codomain : Letify.Sigma.t -> Lang.F.Vars.t
end
module Defs :
sig
type t
val empty : Letify.Defs.t
val merge : Letify.Defs.t -> Letify.Defs.t -> Letify.Defs.t
val extract : Lang.F.pred -> Letify.Defs.t
val add : Letify.Defs.t Pervasives.ref -> Lang.F.pred -> unit
val domain : Letify.Defs.t -> Lang.F.Vars.t
end
val bind :
Letify.Sigma.t -> Letify.Defs.t -> Lang.F.Vars.t -> Letify.Sigma.t
val add_definitions :
Letify.Sigma.t ->
Letify.Defs.t -> Lang.F.Vars.t -> Lang.F.pred list -> Lang.F.pred list
module Split :
sig
type occur
val create : unit -> Letify.Split.occur
val add : Letify.Split.occur -> Lang.F.pred -> unit
val select : Letify.Split.occur -> (Lang.F.pred * int) list
end
end