Module Engine.LogicPreprocessing

module L = Logging
val unfolded_preds : (string, Gillian.Gil_syntax.Pred.t) Utils.Prelude.Hashtbl.t
val auto_unfold : ?unfold_rec_predicates:bool -> (string, Gillian.Gil_syntax.Pred.t) Utils.Prelude.Hashtbl.t -> (string, bool) Utils.Prelude.Hashtbl.t -> Gillian.Gil_syntax.Asrt.t -> Gillian.Gil_syntax.Asrt.t list
val find_recursive_preds : (string, Gillian.Gil_syntax.Pred.t) Utils.Prelude.Hashtbl.t -> (string, bool) Utils.Prelude.Hashtbl.t
val find_pure_preds : (string, Gillian.Gil_syntax.Pred.t) Utils.Prelude.Hashtbl.t -> (string, bool) Utils.Prelude.Hashtbl.t
val remove_equalities_between_binders_and_lvars : Stdlib.String.t list -> Gillian.Gil_syntax.Asrt.t -> Gillian.Gil_syntax.Asrt.t
val add_closing_tokens : (string, Gillian.Gil_syntax.Pred.t) Utils.Prelude.Hashtbl.t -> unit
val preprocess : ('a, int) Gillian.Gil_syntax.Prog.t -> bool -> ('a, int) Gillian.Gil_syntax.Prog.t