Corollary data_at_exclusive : forall (cs : compspecs) (sh : Share.t) (t : type) v (p : val),
  sepalg.nonidentity sh -> 0 < sizeof t -> exclusive_mpred (data_at sh t v p).Corollary data_at__exclusive : forall (cs : compspecs) (sh : Share.t) (t : type) (p : val),
  sepalg.nonidentity sh -> 0 < sizeof t -> exclusive_mpred (data_at_ sh t p).

(* Specifications: *)
Lemma cond_var_exclusive : forall {cs} sh p, sepalg.nonidentity sh -> exclusive_mpred (@cond_var cs sh p).
Lemma cond_var_share_join : forall {cs} sh1 sh2 sh v (Hjoin : sepalg.join sh1 sh2 sh), @cond_var cs sh1 v * cond_var sh2 v = cond_var sh v.
Lemma eq_dec_refl : forall {A B} {A_eq : EqDec A} (a : A) (b c : B), (if eq_dec a a then b else c) = b.
Lemma lock_inv_share_join : forall sh1 sh2 sh v R (Hsh1 : readable_share sh1) (Hsh2 : readable_share sh2) (Hjoin : sepalg.join sh1 sh2 sh), lock_inv sh1 v R * lock_inv sh2 v R = lock_inv sh v R.
Lemma comp_join_top : forall sh, sepalg.join sh (Share.comp sh) Tsh.
Lemma unreadable_bot : ~readable_share Share.bot.