(* It's often useful to split Tsh in half. *)
Definition gsh1 := fst (slice.cleave Tsh).Definition gsh2 := snd (slice.cleave Tsh).

(* Specifications: *)
Lemma readable_gsh1 : readable_share gsh1.
Lemma readable_gsh2 : readable_share gsh2.
Lemma gsh1_gsh2_join : sepalg.join gsh1 gsh2 Tsh.
Lemma gsh1_not_bot : gsh1 <> Share.bot.
Lemma gsh2_not_bot : gsh2 <> Share.bot.
Lemma split_readable_share sh : readable_share sh -> exists sh1, exists sh2, readable_share sh1 /\ readable_share sh2 /\ sepalg.join sh1 sh2 sh.
Lemma split_Ews : exists sh1, exists sh2, readable_share sh1 /\ readable_share sh2 /\ sepalg.join sh1 sh2 Ews.