(*
Lemma Archi_ptr64_DEPENDENCY: Archi.ptr64=false.
Proof. reflexivity. Qed.
*)

Definition sem_add_ptr_ptrofs t si :=
 if Archi.ptr64 then sem_add_ptr_long t else sem_add_ptr_int t si.

(* Specifications: *)
Lemma sem_add_pptrofs_ptr_special: forall t si p i, isptr p -> sem_add_ptr_ptrofs t si p (Vptrofs (Ptrofs.repr i)) = Some (offset_val (sizeof t * i) p).
Lemma sem_add_pi_ptr_special: forall t p i si, isptr p -> match si with | Signed => Int.min_signed <= i <= Int.max_signed | Unsigned => 0 <= i <= Int.max_unsigned end -> sem_add_ptr_int t si p (Vint (Int.repr i)) = Some (offset_val (sizeof t * i) p).
Lemma sem_add_pi_ptr_special': Archi.ptr64 = false -> forall t p i si, isptr p -> sem_add_ptr_int t si p (Vint (Int.repr i)) = Some (offset_val (sizeof t * i) p).
Lemma sem_add_pl_ptr_special': Archi.ptr64 = true -> forall t p i, isptr p -> sem_add_ptr_long t p (Vlong (Int64.repr i)) = Some (offset_val (sizeof t * i) p).
Lemma in_members_Ctypes_offset: forall i m e, in_members i m -> Ctypes.field_offset cenv_cs i m = Errors.Error e -> False.
Lemma struct_op_facts: forall Delta t_root e gfs efs tts i a i0 t rho, legal_nested_efield_rec t_root gfs tts = true -> type_almost_match e t_root (LR_of_type t_root) = true -> in_members i0 (co_members (get_co i)) -> nested_field_type t_root gfs = Tstruct i a -> efield_denote efs gfs rho -> tc_lvalue Delta (nested_efield e efs tts) rho = tc_lvalue Delta (nested_efield e (eStructField i0 :: efs) (t :: tts)) rho /\ eval_field (typeof (nested_efield e efs tts)) i0 = offset_val (field_offset cenv_cs i0 (co_members (get_co i))).
Lemma union_op_facts: forall Delta t_root e gfs efs tts i a i0 t rho, legal_nested_efield_rec t_root gfs tts = true -> type_almost_match e t_root (LR_of_type t_root) = true -> in_members i0 (co_members (get_co i)) -> nested_field_type t_root gfs = Tunion i a -> efield_denote efs gfs rho -> tc_lvalue Delta (nested_efield e efs tts) rho = tc_lvalue Delta (nested_efield e (eUnionField i0 :: efs) (t :: tts)) rho /\ eval_field (typeof (nested_efield e efs tts)) i0 = offset_val 0.