let get_using_prototype kf =
  let state = Value.get_initial_state kf in
  let behaviors = !Value.valid_behaviors kf state in
  let assigns = Ast_info.merge_assigns behaviors in
  let over_inputs_if_termination =
    !Value.assigns_to_zone_inputs_state state assigns
  in
  { Inout_type.under_outputs_if_termination =
      (* car les sorties sûre ne sont pas spécifiées ! *)
      Zone.bottom ;
    over_inputs_if_termination =
      (* [over_inputs_if_termination] = [Zone.top] ou [over_inputs_if_termination] ?
         La valeur [over_inputs_if_termination] est légèrement incorrect car les
         le détail de l'implementation n'est pas précisé dans la spécification.
         La meilleure implementation peut se contenter [over_inputs_if_termination]
         comme entrées opérationelles. *)

      over_inputs_if_termination;
    over_inputs =
      (* [over_inputs] = [Zone.top] ou [over_inputs_if_termination] ?
         La valeur [over_inputs_if_termination] est légèrement incorrect car les
         fonctions feuilles ne sont pas specifiées en cas de non terminaison. *)

      over_inputs_if_termination
  }