let get_at_vars ~remove env label =
let lname = Macros.logic_label_name label in
Wp_parameters.debug ~level:3 "get_at_vars for label %s@." lname;
let rec pop_all () =
if remove then
begin
try let (v, e) = Hashtbl.find env.env_at lname in
Wp_parameters.debug ~level:3 "get_at_vars : %a -> %a@."
Why_output.pp_var v pp_exp e;
Hashtbl.remove env.env_at lname;
(v, e)::(pop_all ())
with Not_found -> []
end
else Hashtbl.find_all env.env_at lname
in match pop_all () with
| [] -> raise Not_found
| l -> l