let get_implicit_fun kf ki b n (out_type, inputs_type) =
let ki_info = match ki with Kglobal -> ""
| Kstmt s -> ("_stmt"^(string_of_int s.sid))
in
let bhv_name =
if b.b_name = Cil.default_behavior_name then "" else ("_"^b.b_name)
in
let name = Pretty_utils.sfprintf "FI_%a%s%s_%d"
Kernel_function.pretty_name kf
bhv_name
ki_info
n
in let linfos = Logic_env.find_all_logic_functions name in
let f = match linfos with
| f::l -> assert (l == []); f
| [] ->
let linfo = make_logic_info name (Some out_type, inputs_type) in
Logic_utils.add_logic_function linfo;
linfo
in f