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)