let mk_assign_pre (_, inputs) =
  let get_init lv n =
    let linfo = get_init_linfo lv.term_type in
      Logic_const.term (Tapp (linfo, [], [Logic_const.tinteger n])) lv.term_type
  in
  let add_in (n, acc) input = match input with
    | Nothing -> n, acc
    | Location {it_content=lv} ->
        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)