let mk_assign_pre kf ki bhv nth inputs =
  let get_init lv n =
    let linfo = get_init_linfo kf ki bhv nth n lv.term_type in
      Logic_const.term (Tapp (linfo, [], [(*Logic_const.tinteger n*)])) lv.term_type
  in
  let add_in (n, acc) input =
    let lv = input.it_content in
    let _name = lv.term_name in (* TODO process name *)
    let init = get_init lv n in
    let pre = Logic_const.prel (Req, lv, init) in
    n+1, pre::acc
  in
  let _, pres = List.fold_left add_in (1, []) inputs in
  Logic_const.new_predicate (Logic_const.pands pres)