let add_newvalue (ls, FreeVar fv, ctr : t_subst) (t : term) : term * t_subst = 
  let n = create_number fv 0
  in (Var n, ((n,t)::ls, FreeVar (fv+1), ctr))