Definition pure_readable_share (sh: Share.t) :=
  Share.glb Share.Lsh sh = Share.bot /\ readable_share sh.Definition rshare := sig pure_readable_share.Definition readable_part: forall (sh: Share.t) (rsh: readable_share sh), rshare.

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