let use_assigns env hid a_desc wp =
    on_context env "use_assigns" wp Close_context Keep_assigns
      (fun env assignsgoal p ->
         let kind = a_desc.WpPropId.a_kind in
         let assigned = a_desc.WpPropId.a_assigns in
         (match hid with
            | Some h -> Datalib.Collector.add_depend (WpPropId.property_of_id h)
            | None -> ()) ;
        let region = assigned_of_assigns env assigned in
        let mem = L.mem_at env Clabels.Here in 
        let p0 = check_assigns mem assignsgoal region p in
        havoc_region kind mem region p0)