sig
  type env = Translate_prop.Create(WpModel).env
  val env_body : WpModel.frame -> env
  val env_at : env -> Clabels.c_label -> env
  val call_post :
    Kernel_function.t ->
    WpModel.value list ->
    WpModel.mem -> WpModel.mem -> WpModel.D.F.var option -> env
  val call_pre :
    Kernel_function.t -> WpModel.value list -> WpModel.mem -> env
  val call_exit : env -> WpModel.D.F.var -> env
  val assigns_clause : WpModel.frame -> env
  val get_frame : env -> WpModel.frame
  val term : env -> Cil_types.term -> Formula.abstract WpModel.D.F.term
  val prop : env -> Cil_types.predicate Cil_types.named -> WpModel.D.F.pred
  val assigned : env -> Cil_types.term -> WpModel.loc WpModel.D.assigned list
  val add_axiom :
    string ->
    Cil_types.logic_label list -> Cil_types.predicate Cil_types.named -> unit
  type instance = Translate_prop.Create(WpModel).instance
  val as_hint : instance -> WpModel.D.hint
  val push_instances : string -> instance list -> unit
  val pop_instances : string -> instance list
  val instantiate :
    instance list -> WpModel.D.F.pred -> instance list * WpModel.D.F.pred
  val merge : instance list -> instance list -> instance list
end