+
+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 ↑ ≪x,h≫.
+intros; cases H (Ha Hx); split [apply Ha] cases Hx;
+split; [apply H1] intros;
+cases (H2 (\fst y)); [2: apply H3;] exists [apply w] assumption;
+qed.
+
+lemma segment_preserves_downarrow:
+ ∀C:ordered_set.∀l,u:C.∀a:sequence {[l,u]}.∀x,h.
+ ⌊n,\fst (a n)⌋ ↓ x → a ↓ ≪x,h≫.
+intros; cases H (Ha Hx); split [apply Ha] cases Hx;
+split; [apply H1] intros;
+cases (H2 (\fst y));[2:apply 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,\fst (a n)⌋ is_cauchy.
+intros 7;
+alias symbol "pi1" (instance 3) = "pair pi1".
+alias symbol "pi2" = "pair pi2".
+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.
+