Proof with simpl in *; auto.
destruct sa... rewrite <- subst_expr_sound...
destruct (val2loc (expr_denote e0 s))... rewrite <- subst_expr_sound...
rewrite <- subst_expr_sound... rewrite <- subst_expr_sound...
Qed.

(* Specifications: *)
Lemma subst_space_atoms_sound v e sigma s :
(Var v === e) s ->
space_denote sigma s = space_denote (map (subst_space v e) sigma) s.