let get_linfo name sgn =
  let ptype = mk_linfo_type sgn in
  let info_ok info = Logic_utils.is_same_type info.l_var_info.lv_type ptype in
    match Logic_env.find_all_logic_functions name with
      | [] -> 
          let linfo = make_logic_info name sgn in
            Logic_utils.add_logic_function linfo;
            linfo
      | info::[] when info_ok info -> info
      | _ -> Wp_parameters.fatal "several function named %s ???" name