sig
  type t
  val equal : Letify.Sigma.t -> Letify.Sigma.t -> bool
  val pretty : string -> Stdlib.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