Module Fol_cc


module Fol_cc: sig .. end

val free_vars : Fol.Vset.t -> Fol.Vset.t -> Fol.term -> Fol.Vset.t

type f_let = {
   name : string;
   param : Fol.Var.t list;
   body : Fol.term;
}
val mk_def : Fol.Var.t list ->
Fol.term -> (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 ->
(f_let list * int) Pervasives.ref -> Fol.term -> Fol.term
val unlet_pred : Fol.Vmap.key Fol.Vmap.t ->
Fol.Vset.t ->
(f_let list * int) Pervasives.ref ->
int Pervasives.ref -> Fol.pred -> Fol.pred
val unlet : Fol.pred -> f_let list * Fol.pred