Definition aaddressing (a: VA.t) (addr: addressing) (args: list reg) : aptr :=
match a with
| VA.Bot => Pbot
| VA.State ae am => aptr_of_aval (eval_static_addressing addr (aregs ae args))
end.

(* Specifications: *)
Lemma aaddressing_sound:
forall cunit prog s f sp pc e m addr args b ofs,
sound_state prog (State s f (Vptr sp Ptrofs.zero) pc e m) ->
linkorder cunit prog ->
eval_addressing (Genv.globalenv prog) (Vptr sp Ptrofs.zero) addr e##args = Some (Vptr b ofs) ->
exists bc,
pmatch bc b ofs (aaddressing (analyze (romem_for cunit) f)!!pc addr args)
/\ genv_match bc (Genv.globalenv prog)
/\ bc sp = BCstack.