+
+lemma segment_upperbound:
+ ∀C:ordered_set.∀l,u:C.∀a:sequence {[l,u]}.u is_upper_bound (λn.fst (a n)).
+intros 5; change with (fst (a n) ≤ u); cases (a n); cases H; assumption;
+qed.
+
+lemma segment_lowerbound:
+ ∀C:ordered_set.∀l,u:C.∀a:sequence {[l,u]}.l is_lower_bound (λn.fst (a n)).
+intros 5; change with (l ≤ fst (a n)); cases (a n); cases H; assumption;
+qed.
+
+lemma segment_preserves_uparrow:
+ ∀C:ordered_set.∀l,u:C.∀a:sequence {[l,u]}.∀x,h.
+ (λn.fst (a n)) ↑ x → a ↑ (sig_in ?? x h).
+intros; cases H (Ha Hx); split [apply Ha] cases Hx;
+split; [apply H1] intros;
+cases (H2 (fst y) H3); exists [apply w] assumption;
+qed.
+
+(* Fact 2.18 *)
+lemma segment_cauchy:
+ ∀C:ordered_uniform_space.∀l,u:C.∀a:sequence {[l,u]}.
+ a is_cauchy → (λn:nat.fst (a n)) is_cauchy.
+intros 7;
+alias symbol "pi1" (instance 3) = "pair pi1".
+apply (H (λx:{[l,u]} square.U 〈fst (fst x),fst (snd x)〉));
+(unfold segment_ordered_uniform_space; simplify);
+exists [apply U] split; [assumption;]
+intro; cases b; intros; simplify; split; intros; assumption;
+qed.
+