(** *** Exercise [subst_same] *)

(* Specifications: *)
Lemma subst_same : forall y e, [y ~> var_f y] e = e.
(*************************************************************************)
(** ** Free variables *)
(*************************************************************************)
(** The function [fv_exp] calculates the set of free variables in an expression.  This function returns a value of type `atoms` --- a finite set of variable names.  *)
(** Demo [fsetdec]  The tactic [fsetdec] solves a certain class of propositions involving finite sets. See the documentation in [FSetWeakDecide] for a full specification. *)
Lemma fsetdec_demo : forall (x : atom) (S : atoms),
x `in` (singleton x `union` S).