let add_call_assigns_hyp acc kf_caller s l_post spec_opt =
  match spec_opt with
    | None ->
        let asgn = WpPropId.mk_stmt_any_assigns_info s in
          add_assigns_any acc AcallHyp asgn
    | Some spec ->
      match assigns_upper_bound spec with
        | None ->
            let asgn = WpPropId.mk_stmt_any_assigns_info s in
              add_assigns_any acc AcallHyp asgn
        | Some(bhv, assigns) ->
            let id = WpPropId.mk_stmt_assigns_id kf_caller s bhv assigns in
            match id with
                | None ->
                   let asgn = WpPropId.mk_stmt_any_assigns_info s in
                   add_assigns_any acc AcallHyp asgn
                | Some id ->
                  let labels = NormAtLabels.labels_stmt_assigns s l_post in
                  let assigns = NormAtLabels.preproc_assigns labels assigns in
                  let a_desc = WpPropId.mk_stmt_assigns_desc s assigns in
                  add_assigns acc AcallHyp id a_desc