sig
  val model_name : string
  type t_exp = Lowlevel_model.t_exp
  type t = t_exp Fol.t_pred
  type t_env = Lowlevel_model.t_env
  val new_env : unit -> t_env
  val replace_at_vars : t_env -> Cil_types.logic_label -> t -> t
  val quantify_at_vars : t_env -> Cil_types.logic_label -> t -> t
  val assign : Cil_types.lval -> Cil_types.exp -> t -> t
  val return : Db_types.kernel_function -> Cil_types.exp option -> t -> t
  val test : Cil_types.exp -> t -> t -> t
  val quantif_locals : Db_types.kernel_function -> t -> t
  val quantify_loop_assigns :
    Cil_types.identified_term Cil_types.assigns list -> t -> t option
  val close : t_env -> Db_types.kernel_function -> t -> t
  val fol : t -> Fol.predicate
  val pretty : Format.formatter -> t -> unit
  type t_pred = t
  val pretty_pred : Format.formatter -> t_pred -> unit
  val translate :
    Db_types.kernel_function ->
    t_env -> Cil_types.predicate Cil_types.named -> t_pred
  val add_glob_decls : Fol.decl list -> Fol.decl list
  exception CallNeedFctAssigns
  exception CallArgsVsParamNb
  exception CallFctPtr
  val call_res_and_add_post :
    Kernel_function.t ->
    t_env -> Cil_types.lval option -> t_pred list -> t -> t
  val call_do_body :
    Cil_types.identified_term Cil_types.assigns list -> t -> t
  val call_add_pre_and_do_args :
    Cil_types.exp list -> Cil_types.varinfo list -> t_pred list -> t -> t
  val why_prelude : string list
end