Proof with simpl in *; auto.
unfold var_eq. intro A. destruct e'... if_tac... rewrite <- H...
Qed.

Lemma subst_space_atom_sound:
forall (v : datatypes.var) (e : expr) (s : state) (Heq : (Var v === e) s) sa,
space_atom_denote sa s = space_atom_denote (subst_space v e sa) s.