let add_stmt_spec_annots config v s spec ((b_acc, (p_acc, e_acc)) as acc) =
  let acc = add_variant acc spec in
  let acc = add_terminates acc spec in
  match config.cur_bhv with
    | StmtBhv (_n, cur_s, b) when s.sid = cur_s.sid ->
        (*
        begin match get_behav config (Kstmt s) spec.spec_behavior with
          | None -> (* in some cases, it seems that we can have several spec
                       for the same statement -> not an error *) acc
          | Some b ->
              *)

              let b_acc, a_acc = add_stmt_bhv_as_goal config v s b acc in
              let b_acc = add_behaviors_props config (Kstmt s) spec b_acc in
                b_acc, a_acc
    | _ -> (* in all other cases, use the specification as hypothesis *)
        let kind = WpStrategy.Aboth false in
        let b_acc = 
          WpStrategy.add_prop_stmt_spec_pre b_acc kind config.kf s spec 
        in
        let p_acc, e_acc = 
          add_stmt_spec_post_as_hyp config v s spec (p_acc, e_acc) 
        in b_acc, (p_acc, e_acc)