let get_bhv_pre kf bhv =
let add_bhv_pre_hyp b acc = (* add both requires and assumes as precond *)
let kind = WpStrategy.Ahyp in
WpStrategy.add_prop_fct_bhv_pre acc kind kf b ~impl_assumes:false
in
let pre = add_bhv_pre_hyp bhv (WpStrategy.empty_acc) in
let pre = (* also add the default behavior precond *)
if (Cil.is_default_behavior bhv) then pre
else match Cil.find_default_behavior (Kernel_function.get_spec kf) with
| None -> pre
| Some bdef -> add_bhv_pre_hyp bdef pre
in
pre