let pp_annots fmt acc =
  let pp_pred k b p =
    Format.fprintf fmt "%s%s: %a@."
      k (if b then "" else " (h)") !Ast_printer.d_predicate_named p
  in
  let pp_pred_list k l = List.iter (fun (_,p) -> pp_pred k true p) l in
  let pp_pred_b_list k l = List.iter (fun (b, (_,p)) -> pp_pred k b p) l in
  let pp_assign_opt k a = match a with
    | None -> ()
    | Some (_,a) -> Format.fprintf fmt "%s(@@%a): %a@." k
                      Wp_error.pp_logic_label a.a_label
                      Wp_error.pp_assigns a.a_assigns
  in pp_pred_list "H" acc.p_hyp;
     pp_pred_list "G" acc.p_goal;
     pp_pred_b_list "H+G" acc.p_both;
     pp_pred_b_list "C" acc.p_cut;
     pp_pred_b_list "I" acc.p_inv;
     pp_assign_opt "HA" acc.a_hyp;
     pp_assign_opt "GA" acc.a_goal;