let kernel_functions_separation_hyps () =
    debug "[kf separation hyps]";
    Globals.Functions.iter 
      (fun kf ->
         debug "[kf separation hyps] %s" (Kernel_function.get_name kf); 
         let formals = Kernel_function.get_formals kf in 
         let loc = Kernel_function.get_location kf in
         match collect_refparams kf loc [] [] [] formals with
           | Some hyp ->
               debug "[kf separation hyps] case hyp:%a" 
                 Cil.d_identified_predicate hyp;
               Kernel_function.set_spec
                 kf (fun fspec -> 
                       add_requires hyp fspec.Cil_types.spec_behavior;
                       fspec );
           | None -> 
               debug "[kf separation hyps] case None";
               ())