-|2: simplify; unfold convex; intros;
- cases H (u HU); cases HU (Gu HuU); clear HU H;
- lapply (ous_convex ?? Gu (bs_of_ss ? l r p) ? H2 (bs_of_ss ? l r y) H3) as Cu;
- [1: apply (unrestrict ?????? HuU); apply H1;
- |2: apply (restrict ?????? HuU Cu);]]
+|2: simplify; unfold convex; intros 3; cases s1; intros;
+ (* TODO: x2sx is for ≰, we need one for ≤ *)
+ cases H (u HU); cases HU (Gu HuU); clear HU H;
+ lapply depth=0 (ous_convex ?? Gu 〈\fst h,\fst h1〉 ???????) as K3;
+ [2: intro; apply H2; apply (x2sx (os_l O) s h h1 H);
+ |3: apply 〈\fst (\fst y),\fst (\snd y)〉;
+ |4: intro; change in H with (\fst (\fst y) ≰ \fst h1); apply H3;
+ apply (x2sx (os_l O) s (\fst y) h1 H);
+ |5: change with (\fst h ≤ \fst (\fst y)); intro; apply H4;
+ apply (x2sx (os_l O) s h (\fst y) H);
+ |6: change with (\fst (\snd y) ≤ \fst h1); intro; apply H5;
+ apply (x2sx (os_l O) s (\snd y) h1 H);
+ |7: change with (\fst (\fst y) ≤ \fst (\snd y)); intro; apply H6;
+ apply (x2sx (os_l O) s (\fst y) (\snd y) H);
+ |8: apply (restrict O s U u y HuU K3);
+ |1: apply (unrestrict O s ?? 〈h,h1〉 HuU H1);]]