let get_id_prop_strategies ?(assigns=WithAssigns) cfg p =
  Wp_parameters.debug ~level:3 "[wpAnnot.get_id_prop_strategies] %s@."
    (id_prop_txt p);
  let all_behaviors = None in
  let default_behavior = Some [ Cil.default_behavior_name ] in
  let get_code_annot_bhv annot =
    match annot.annot_content with
      | AAssert (l, _) | AInvariant (l, _, _) | AAssigns (l, _) ->
          ( match l with [] -> all_behaviors | _ -> Some l )
      | _ -> all_behaviors
  in
  let b_of_fb_opt fb_opt = match fb_opt with
    | None -> default_behavior
    | Some fb -> Some [fb.b_name]
  in
  let ki, bhvs =
    match p with
      | Property.IPCodeAnnot (_,_,ca) ->
          None, get_code_annot_bhv ca
      | Property.IPAssigns (_, _, None, _) -> (*loop assgins *)
          None, default_behavior
      | _ ->
          Some (Property.get_kinstr p),
          b_of_fb_opt (Property.get_behavior p)
  in
  get_strategies assigns cfg bhvs ki (IdProp p)