let add_oblig res label obj =
      Wp_parameters.debug ~level:3
        "add proof obligation at label %a =@.  @[<hov2>  %a@]@."
        Wp_error.pp_logic_label label W.pretty obj;
      let rec add l_obligs = match l_obligs with
        | [] -> (label, [obj])::[]
        | (l, obligs)::tl when Logic_utils.is_same_logic_label l label ->
            (l, obj::obligs)::tl
        | o::tl -> o::(add tl)
      in
        res.obligs <- add (res.obligs)