-intros (O u v); apply mk_ordered_uniform_space;
-[1: apply mk_ordered_uniform_space_;
- [1: apply (mk_ordered_set (sigma ? (λx.x ∈ [u,v])));
- [1: intros (x y); apply (fst x ≰ fst y);
- |2: intros 1; cases x; simplify; apply os_coreflexive;
- |3: intros 3; cases x; cases y; cases z; simplify; apply os_cotransitive]
- |2: apply (mk_uniform_space (bishop_set_of_ordered_set (mk_ordered_set (sigma ? (λx.x ∈ [u,v])) ???)));
- |3: apply refl_eq;
+intros (O l r); apply mk_ordered_uniform_space;
+[1: apply (mk_ordered_uniform_space_ {[l,r]});
+ [1: alias symbol "and" = "constructive and".
+ letin f ≝ (λP:{[l,r]} square → Prop. ∃OP:O square → Prop.
+ (us_unifbase O OP) ∧ restriction_agreement ??? P OP);
+ apply (mk_uniform_space (bishop_set_of_ordered_set {[l,r]}) f);
+ [1: intros (U H); intro x; unfold mk_set; simplify;
+ cases H (w Hw); cases Hw (Gw Hwp); clear H Hw; intro Hm;
+ lapply (us_phi1 ?? Gw x Hm) as IH;
+ apply (restrict ?????? Hwp IH);
+ |2: intros (U V HU HV); cases HU (u Hu); cases HV (v Hv); clear HU HV;
+ cases Hu (Gu HuU); cases Hv (Gv HvV); clear Hu Hv;
+ cases (us_phi2 ??? Gu Gv) (w HW); cases HW (Gw Hw); clear HW;
+ exists; [apply (λb:{[l,r]} square.w b)] split;
+ [1: unfold f; simplify; clearbody f;
+ exists; [apply w]; split; [assumption] intro b; simplify;
+ unfold segment_square_of_O_square; (* ??? *)
+ cases b; intros; split; intros; assumption;
+ |2: intros 2 (x Hx); unfold mk_set; cases (Hw ? Hx); split;
+ [apply (restrict ?????? HuU H)|apply (restrict ?????? HvV H1);]]
+ |3: intros (U Hu); cases Hu (u HU); cases HU (Gu HuU); clear Hu HU;
+ cases (us_phi3 ?? Gu) (w HW); cases HW (Gw Hwu); clear HW;
+ exists; [apply (λx:{[l,r]} square.w x)] split;
+ [1: exists;[apply w];split;[assumption] intros; simplify; intro;
+ unfold segment_square_of_O_square; (* ??? *)
+ cases b; intros; split; intro; assumption;
+ |2: intros 2 (x Hx); apply (restrict ?????? HuU); apply Hwu;
+ cases Hx (m Hm); exists[apply (fst m)] apply Hm;]
+ |4: intros (U HU x); cases HU (u Hu); cases Hu (Gu HuU); clear HU Hu;
+ cases (us_phi4 ?? Gu x) (Hul Hur);
+ split; intros;
+ [1: apply (restrict ?????? (invert_restriction_agreement ????? HuU));
+ apply Hul; apply (unrestrict ?????? HuU H);
+ |2: apply (restrict ?????? HuU); apply Hur;
+ apply (unrestrict ?????? (invert_restriction_agreement ????? HuU) H);]]
+ |2: simplify; reflexivity;]
+|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);]]