sig
  val model_name : string
  type t_prop = Calculus.Msimple(M0_call).t_prop
  val pretty : Format.formatter -> t_prop -> unit
  val ptrue : t_prop
  type t_env = Calculus.Msimple(M0_call).t_env
  val new_env : unit -> t_env
  val process_at_vars : t_env -> Cil_types.logic_label -> t_prop -> t_prop
  val quantify_at_vars : t_env -> Cil_types.logic_label -> t_prop -> t_prop
  val add_hyp :
    Db_types.kernel_function ->
    t_env ->
    WpAnnot.prop_kind ->
    Cil_types.predicate Cil_types.named -> t_prop -> t_prop
  val add_goal :
    Db_types.kernel_function ->
    t_env ->
    WpAnnot.prop_kind ->
    Cil_types.predicate Cil_types.named -> t_prop -> t_prop
  val assign : Cil_types.lval -> Cil_types.exp -> t_prop -> t_prop
  val return :
    Db_types.kernel_function -> Cil_types.exp option -> t_prop -> t_prop
  val test : Cil_types.exp -> t_prop -> t_prop -> t_prop
  val call :
    (Db_types.kernel_function ->
     Cil_types.predicate Cil_types.named list *
     Cil_types.predicate Cil_types.named list *
     Cil_types.identified_term Cil_types.assigns list) ->
    Cil_types.lval option ->
    Cil_types.exp -> Cil_types.exp list -> t_prop -> t_prop
  val wp_loop :
    string ->
    Cil_types.identified_term Cil_types.assigns list -> t_prop -> t_prop
  val quantif_locals : Db_types.kernel_function -> t_prop -> t_prop
  val close : Db_types.kernel_function -> t_env -> t_prop -> t_prop
  val add_goals : string -> Fol.decl list -> t_prop -> Fol.decl list
  val add_glob_decls : Fol.decl list -> Fol.decl list
end