Local Open Scope logic.
Require Export mc_reify.reify.
Require Export MirrorCore.RTac.Repeat.
Require Export MirrorCore.RTac.Try.
Require Export MirrorCore.RTac.First.
Require Export mc_reify.funcs.
Require Export mc_reify.reflexivity_tacs.

Lemma msubst_efield_denote_cons_array: forall ei efs T1 T2 i gfs,
msubst_efield_denote T1 T2 efs = Some gfs ->
type_is_int ei = true ->
msubst_eval_LR T1 T2 ei RRRR = Some (Values.Vint i) ->
msubst_efield_denote T1 T2 (eArraySubsc ei :: efs) = Some (ArraySubsc (Int.unsigned i) :: gfs).