let build_configs assigns kf behaviors ki property =
  debug "[get_strategies] for behaviors names: %a@."
    (Wp_error.pp_string_list ~sep:" " ~empty:"<none>")
    (match behaviors with [] -> ["<all>"| _ :: _ as l -> l) ;
  let _ = match ki with
    | None -> ()
    | Some Kglobal ->
        debug
          "[get_strategies] select in function properies@."
    | Some (Kstmt s) ->
        debug
          "[get_strategies] select stmt %d properties@." s.sid
  in
  let cfg = get_cfg kf in
  let property = match property with
    | AllProps -> if Cil2cfg.cfg_spec_only cfg then OnlyPreconds else AllProps
    | _ -> property
  in
  let def_annot_bhv, bhvs = find_behaviors kf cfg ki behaviors in
  if bhvs = [] then
    Wp_parameters.warning "[get_strategies] no behaviors found"
  else
    debug "[get_strategies] %d behaviors"
      (List.length bhvs);
  let mk_bhv_config bhv = { kf = kf;
                     cfg = cfg;
                     cur_bhv = bhv;
                     asked_prop = property;
                     asked_bhvs = bhvs;
                     assigns_filter = assigns;
                     def_annots_info = def_annot_bhv }
  in List.map mk_bhv_config bhvs