Proof with simpl; auto.
unfold rewrite_in_space. intros H1. split.
destruct a...
rewrite <-rewrite_expr_eqv; auto. rewrite <-rewrite_expr_eqv; auto.
rewrite <-rewrite_expr_eqv; auto. rewrite <-rewrite_expr_eqv; auto.
destruct a...
rewrite <-rewrite_expr_eqv; auto. rewrite <-rewrite_expr_eqv; auto.
rewrite <-rewrite_expr_eqv; auto. rewrite <-rewrite_expr_eqv; auto.
Qed.

(* Specifications: *)
Lemma rewrite_in_space_sound e1 e2 sigma0 st :
(e1 === e2) st ->
space_denote sigma0 st ->
space_denote (map (rewrite_in_space e1 e2) sigma0) st.