let fresh global sigma x =
  let base = Var.basename x in
  let tau = Var.var_type x in
  let k = try Smap.find base !global with Not_found -> 0 in
  let v = Var.ident_named_var base k tau in
  global := Smap.add base (succ k) !global ;
  v , Vmap.add x (e_var v) sigma