Module Fol_cc


module Fol_cc: sig .. end

val free_vars : Fol.Vset.t -> Fol.Vset.t -> 'a Fol.d_term -> Fol.Vset.t

type 'a f_let = {
   name : string;
   param : Fol.Var.t list;
   body : 'a Fol.d_term;
}
val mk_def : Fol.Var.t list ->
'a Fol.d_term -> ('a f_let list * int) Pervasives.ref -> string
val new_name : Fol.Vmap.key ->
Fol.Var.t Fol.Vmap.t ->
int Pervasives.ref -> Fol.Var.t * Fol.Var.t Fol.Vmap.t
val unlet_term : Fol.Vmap.key Fol.Vmap.t ->
Fol.Vset.t ->
('a f_let list * int) Pervasives.ref -> 'a Fol.d_term -> 'a Fol.d_term
val unlet_pred : Fol.Vmap.key Fol.Vmap.t ->
Fol.Vset.t ->
('a f_let list * int) Pervasives.ref ->
int Pervasives.ref -> 'a Fol.d_pred -> 'a Fol.d_pred
val unlet : 'a Fol.d_pred -> 'a f_let list * 'a Fol.d_pred