sig
  type t_prop
  val pretty : Format.formatter -> Mcfg.S.t_prop -> unit
  val merge : Mcfg.S.t_prop -> Mcfg.S.t_prop -> Mcfg.S.t_prop
  val empty : Mcfg.S.t_prop
  type t_env
  val new_env : Db_types.kernel_function -> Mcfg.S.t_env
  val add_axiom :
    WpAnnot.prop_id ->
    string ->
    Cil_types.logic_label list -> Cil_types.predicate Cil_types.named -> unit
  val add_hyp :
    Mcfg.S.t_env ->
    WpAnnot.prop_id ->
    Cil_types.predicate Cil_types.named -> Mcfg.S.t_prop -> Mcfg.S.t_prop
  val add_goal :
    Mcfg.S.t_env ->
    WpAnnot.prop_id ->
    Cil_types.predicate Cil_types.named -> Mcfg.S.t_prop -> Mcfg.S.t_prop
  val add_as_hyp :
    Mcfg.S.t_env -> Mcfg.S.t_prop -> Mcfg.S.t_prop -> Mcfg.S.t_prop
  val add_as_goal :
    Mcfg.S.t_env -> Mcfg.S.t_prop -> Mcfg.S.t_prop -> Mcfg.S.t_prop
  val add_assigns :
    Mcfg.S.t_env ->
    WpAnnot.prop_id ->
    Cil_types.logic_label ->
    WpAnnot.a_kind ->
    Cil_types.identified_term Cil_types.assigns list ->
    Mcfg.S.t_prop -> Mcfg.S.t_prop
  val use_assigns :
    Mcfg.S.t_env ->
    WpAnnot.prop_id ->
    WpAnnot.a_kind ->
    Cil_types.identified_term Cil_types.assigns list ->
    Mcfg.S.t_prop -> Mcfg.S.t_prop
  val assigns_method : unit -> Mcfg.assigns_method
  val label :
    Mcfg.S.t_env -> Cil_types.logic_label -> Mcfg.S.t_prop -> Mcfg.S.t_prop
  val assign :
    Mcfg.S.t_env ->
    Cil_types.lval -> Cil_types.exp -> Mcfg.S.t_prop -> Mcfg.S.t_prop
  val return :
    Mcfg.S.t_env -> Cil_types.exp option -> Mcfg.S.t_prop -> Mcfg.S.t_prop
  val test :
    Mcfg.S.t_env ->
    Cil_types.exp -> Mcfg.S.t_prop -> Mcfg.S.t_prop -> Mcfg.S.t_prop
  val switch :
    Mcfg.S.t_env ->
    Cil_types.exp ->
    (Cil_types.exp list * Mcfg.S.t_prop) list ->
    Mcfg.S.t_prop -> Mcfg.S.t_prop
  val call_normal :
    Mcfg.S.t_env ->
    get_pre:(Db_types.kernel_function ->
             (WpAnnot.prop_id * Cil_types.predicate Cil_types.named) list) ->
    get_post:(Db_types.kernel_function ->
              (WpAnnot.prop_id * Cil_types.predicate Cil_types.named) list) ->
    get_assigns:(Db_types.kernel_function ->
                 Cil_types.identified_term Cil_types.assigns list) ->
    Cil_types.stmt ->
    Cil_types.lval option ->
    Cil_types.exp -> Cil_types.exp list -> Mcfg.S.t_prop -> Mcfg.S.t_prop
  val call_exit :
    Mcfg.S.t_env ->
    get_pre:(Db_types.kernel_function ->
             (WpAnnot.prop_id * Cil_types.predicate Cil_types.named) list) ->
    get_exits:(Db_types.kernel_function ->
               (WpAnnot.prop_id * Cil_types.predicate Cil_types.named) list) ->
    get_assigns:(Db_types.kernel_function ->
                 Cil_types.identified_term Cil_types.assigns list) ->
    Cil_types.stmt ->
    Cil_types.exp -> Cil_types.exp list -> Mcfg.S.t_prop -> Mcfg.S.t_prop
  val scope :
    Mcfg.S.t_env ->
    Cil_types.varinfo list -> Mcfg.scope -> Mcfg.S.t_prop -> Mcfg.S.t_prop
  val build_prop_of_from :
    Mcfg.S.t_env -> WpAnnot.t_id_pred list -> Mcfg.S.t_prop -> Mcfg.S.t_prop
  val close : Mcfg.S.t_env -> Mcfg.S.t_prop -> Mcfg.S.t_prop
end