let bhv_from_hyps kf ki bhv l_froms termination_kind =
  let add_assign (n, acc) ((output, inputs) as from) =
    let acc = 
      match build_post_output termination_kind output with
        | None -> acc
        | Some output ->
            let inputs = match inputs with
              | FromAny -> None 
              | From inputs ->
                let mk_input x = build_elem ~addrlab:Logic_const.old_label 
                                   ~mlab:Logic_const.old_label x.it_content
                in
                let inputs = List.map mk_input inputs in
                  Some inputs
            in
            let fi_name = mk_bhv_implicit_fun_name kf ki bhv n in
            let p_eq = build_fimpl_eq fi_name output inputs in
              (from, p_eq)::acc
    in n+1, acc
  in snd (List.fold_left add_assign (1, []) l_froms)