let add_loop_assigns_hyp kf asked_bhv s acc =
let asgn_opt = get_loop_assigns_for_froms asked_bhv s in
let acc = WpStrategy.add_loop_assigns_hyp acc kf s asgn_opt in
match asgn_opt with
| None -> raise (NoFromForLoop s)
| Some (ca, assigns) ->
let add_assign (n, acc) from =
let inv =
try inv_of_loop_from s n from
with NoFromForBhv -> raise (NoFromForLoop s)
in
let id = WpPropId.mk_loop_from_id kf s ca from in
let labels = NormAtLabels.labels_loop_inv s in
let acc = WpStrategy.add_prop acc WpStrategy.Ahyp labels id inv in
n+1, acc
in
let _, acc = List.fold_left add_assign (1, acc) assigns in
acc