Axiom set_reif_eq2 :
forall i tus tvs typ vr tr val,
exprD' tus tvs (typtree typ) tr = Some val ->
exprD' tus tvs (typtree typ) (App (App (Inj (inr (Data (fset typ i)))) vr) tr)  =
exprD' tus tvs (typtree typ) (get_set_reif.set_reif i vr tr typ).

(* Specifications: *)
Lemma SIMPL_DELTA_sound : rtac_sound SIMPL_DELTA.
Lemma replace_set_sound : forall tus tvs e, exprD' tus tvs typrop e = exprD' tus tvs typrop (replace_set e).
Lemma SIMPL_SET_sound : rtac_sound SIMPL_SET.
Lemma FORWARD_SET_sound: forall Delta Pre s, rtac_sound (FORWARD_SET tbl Delta Pre s).
Lemma FORWARD_LOAD_sound: forall Struct_env Delta Pre s, rtac_sound (FORWARD_LOAD tbl Struct_env Delta Pre s).
Lemma FORWARD_STORE_sound: forall Struct_env Delta Pre s, rtac_sound (FORWARD_STORE tbl Struct_env Delta Pre s).
Lemma SYMEXE_STEP_sound: forall Struct_env, rtac_sound (SYMEXE_STEP tbl Struct_env).
Theorem SYMEXE_sound : rtac_sound (SYMEXE_TAC_n n tbl).