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)).

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.