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