let fresh sigma x =
  let base = Var.basename x in
  let tau = Var.var_type x in
  let k = try Smap.find base sigma.cpt with Not_found -> 0 in
  let y = Var.ident_named_var base k tau in
  y , { cpt = Smap.add base (succ k) sigma.cpt ;
        var = Vmap.add x (e_var y) sigma.var }