Arguments readable_not_identity sh P _ _ : clear implicits.

(* Specifications: *)
Lemma comp_parts:
forall L R : Share.t,
Share.comp L = R ->
forall sh: Share.t, sh = Share.lub (Share.glb L sh) (Share.glb R sh).
Lemma join_comp_parts:
forall L R : Share.t,
Share.comp L = R ->
forall a b c : Share.t,
join a b c ->
(join (Share.glb L a) (Share.glb L b) (Share.glb L c) /\
join (Share.glb R a) (Share.glb R b) (Share.glb R c)).
Lemma join_pure_readable:
forall sh1 sh2 sh3,
join sh1 sh2 sh3 ->
pure_readable_share sh1 ->
pure_readable_share sh2 ->
pure_readable_share sh3.