Ltac UseGetSound :=
  match goal with
  | [ H: get _ = Some _ |- _ ] =>
      let x := fresh "EQ" in (generalize (get_op_sound _ _ _ H); intros x; simpl in x; FuncInv)
  end.

Theorem combine_addr_32_sound: forall addr args addr' args', combine_addr_32 get addr args = Some(addr', args') -> eval_addressing32 ge sp addr' (map valu args') = eval_addressing32 ge sp addr (map valu args).