(** Note that the [simpl] tactic doesn't produce the "normal form" for environments. It should always be followed up with [simpl_env].  Furthermore, to convert an environment to any equivalent form other than the normal form (perhaps to apply a lemma) use the tactic [rewrite_env]. *)

(* Specifications: *)
Lemma rewrite_env_demo : forall (x y:atom) (T:typ) P,
(forall E, P ((x,T):: E) -> True) ->
P (x ~ T) ->
True.
Lemma rewrite_env_demo : forall (x y:atom) (T:typ) P,
(forall E, P ((x,T):: E) -> True) ->
P (x ~ T) ->
True.