Definition atomic_loc sh p R := !!(field_compatible tatomic [] p) &&
(EX lock : val, field_at sh tatomic [StructField _lock] lock p * lock_inv sh lock (A_inv p lock R)).

(* Specifications: *)
Lemma A_inv_nonexpansive : forall p l P1 P2, ALL x : val, P1 x <=> P2 x |-- A_inv p l P1 <=> A_inv p l P2.
Lemma A_inv_super_non_expansive : forall n p l R,
compcert_rmaps.RML.R.approx n (A_inv p l R) =
compcert_rmaps.RML.R.approx n (A_inv p l (fun v => compcert_rmaps.RML.R.approx n (R v))).
Lemma atomic_loc_super_non_expansive : forall n sh p R,
compcert_rmaps.RML.R.approx n (atomic_loc sh p R) =
compcert_rmaps.RML.R.approx n (atomic_loc sh p (fun v => compcert_rmaps.RML.R.approx n (R v))).