let add_loop_assigns_hyp acc kf s asgn_opt = match asgn_opt with
  | None ->
      let asgn = WpPropId.mk_loop_any_assigns_info s in
        add_assigns_any acc Ahyp asgn
  | Some (ca, assigns) ->
      let id = WpPropId.mk_loop_assigns_id kf s ca assigns in
      match id with
          | None ->
            let asgn = WpPropId.mk_loop_any_assigns_info s in
            add_assigns_any acc Ahyp asgn
          | Some id ->
            let labels = NormAtLabels.labels_loop_assigns s in
            let assigns' = NormAtLabels.preproc_assigns labels assigns in
            let a_desc = WpPropId.mk_loop_assigns_desc s assigns' in
            add_assigns acc Ahyp id a_desc