let build_fimpl_eq fi_name output inputs = 
  let out_type = output.term_type in
  let fun_impl = match inputs with
  | None ->
      let var = Vars.mk_new fi_name out_type in
        Logic_const.tvar var
  | Some inputs ->
      let fimpl_sig = (out_type, List.map (fun i -> i.term_type) inputs) in
      let fun_impl = get_implicit_fun fi_name fimpl_sig in
        Logic_const.term (Tapp (fun_impl, [], inputs)) out_type 
  in let p_eq = Logic_const.prel (Req, output, fun_impl) in
    p_eq