let init_range env lv typ_elt ka kb wp =
    on_context env "init_range" wp Keep_opened Keep_assigns
      (fun env _assigns p ->
         try
           let mem = L.mem_at env Clabels.Here in
           let obj = Ctypes.object_of typ_elt in
           let loc = compute_init_loc mem lv in
           let loaded = WpModel.logic_of_value (WpModel.load mem obj loc) in
           match WpModel.symb_is_init_range obj with 
             | Some p_range ->
                 F.p_implies 
                   (F.p_app3 p_range loaded (F.e_int64 ka) (F.e_int64 kb)) p
             | None -> p
         with SkipInit -> p)