Local Open Scope pred.
Definition cleave (sh: share) :=
(Share.lub (fst (Share.split (Share.glb Share.Lsh sh))) (fst (Share.split (Share.glb Share.Rsh sh))),
Share.lub (snd (Share.split (Share.glb Share.Lsh sh))) (snd (Share.split (Share.glb Share.Rsh sh)))).

Lemma cleave_readable2:
forall sh, readable_share sh -> readable_share (snd (cleave sh)).