Hint Resolve writable0_readable.

(* Specifications: *)
Lemma writable0_Rsh: writable0_share Share.Rsh.
Lemma join_writable0_readable:
forall {sh1 sh2 sh},
join sh1 sh2 sh -> writable0_share sh1 -> readable_share sh2 -> False.
Lemma join_writable01: forall sh1 sh2 sh,
join sh1 sh2 sh -> writable0_share sh1 -> writable0_share sh.
Lemma writable0_share_dec: forall sh, {writable0_share sh} + {~ writable0_share sh}.
Lemma writable0_share_glb_Rsh:
forall sh, writable0_share sh -> writable0_share (Share.glb Share.Rsh sh).
Lemma glb_split_lemma1:
forall a b, Share.glb Share.Rsh a = Share.glb Share.Rsh b ->
Share.glb Share.Rsh (fst (Share.split a)) =
Share.glb Share.Rsh (fst (Share.split b)).
Lemma writable_not_join_writable :
forall sh1 sh2,
joins sh1 sh2 ->
writable_share sh1 ->
~ writable_share sh2.
Lemma only_bot_joins_top:
forall sh, joins Share.top sh -> sh = Share.bot.
(* Lemma glb_Rsh_not_top: forall sh, ~ Share.glb Share.Rsh sh = Share.top. *)
Lemma writable0_right:
forall sh,  writable0_share (Share.glb Share.Rsh sh) ->
writable0_share sh.
Lemma join_readable_unreadable:
forall sh1 sh2 sh3,
join sh1 sh2 sh3 ->
~ writable0_share sh1 ->
~ readable_share sh2 ->
~ writable0_share sh3.