method bind (xs:VAR.t list) (pp:unit -> unit) =
let mark = LogicId.mark space in
let sigma0 = sigma in
sigma <- List.fold_left
(fun sigma x ->
let xid = LogicId.push space (VAR.basename x) in
VMAP.add x xid sigma)
sigma xs ;
try
pp () ;
sigma <- sigma0 ;
if not alpha then LogicId.unmark space mark ;
with error ->
sigma <- sigma0 ;
if not alpha then LogicId.unmark space mark ;
raise error