lemma segment_ordered_set:
∀O:ordered_set.∀u,v:O.ordered_set.
-intros (O u v); letin hos ≝ (half_segment_ordered_set (os_l O) u v);
-constructor 1; [apply hos; | apply (dual_hos hos); | reflexivity]
+intros (O u v);
+apply half2full; apply (half_segment_ordered_set (os_l O) u v);
qed.
+(*
notation < "hvbox({[a, break b]/})" non associative with precedence 90
for @{'h_segment_set $a $b}.
notation > "hvbox({[a, break b]/})" non associative with precedence 90
for @{'h_segment_set $a $b}.
interpretation "Half ordered set segment" 'h_segment_set a b =
(half_segment_ordered_set _ a b).
+*)
notation < "hvbox({[a, break b]})" non associative with precedence 90
for @{'segment_set $a $b}.
for @{'segment_set $a $b}.
interpretation "Ordered set segment" 'segment_set a b =
(segment_ordered_set _ a b).
+
+definition hint_sequence:
+ ∀C:ordered_set.
+ sequence (hos_carr (os_l C)) → sequence (Type_of_ordered_set C).
+intros;assumption;
+qed.
+
+definition hint_sequence1:
+ ∀C:ordered_set.
+ sequence (hos_carr (os_r C)) → sequence (Type_of_ordered_set_dual C).
+intros;assumption;
+qed.
+
+definition hint_sequence2:
+ ∀C:ordered_set.
+ sequence (Type_of_ordered_set C) → sequence (hos_carr (os_l C)).
+intros;assumption;
+qed.
+
+definition hint_sequence3:
+ ∀C:ordered_set.
+ sequence (Type_of_ordered_set_dual C) → sequence (hos_carr (os_r C)).
+intros;assumption;
+qed.
+coercion hint_sequence nocomposites.
+coercion hint_sequence1 nocomposites.
+coercion hint_sequence2 nocomposites.
+coercion hint_sequence3 nocomposites.
-(* Lemma 2.9 *)
-lemma h_segment_preserves_supremum:
- ∀O:half_ordered_set.∀l,u:O.∀a:sequence {[l,u]/}.∀x:{[l,u]/}.
- increasing ? ⌊n,\fst (a n)⌋ ∧
- supremum ? ⌊n,\fst (a n)⌋ (\fst x) → uparrow ? a x.
+(* Lemma 2.9 - non easily dualizable *)
+lemma segment_preserves_supremum:
+ ∀O:ordered_set.∀l,u:O.∀a:sequence {[l,u]}.∀x:{[l,u]}.
+ ⌊n,\fst (a n)⌋ is_increasing ∧
+ (\fst x) is_supremum ⌊n,\fst (a n)⌋ → a ↑ x.
intros; split; cases H; clear H;
[1: apply H1;
|2: cases H2; split; clear H2;
|2: clear H; intro y0; apply (H3 (\fst y0));]]
qed.
-notation "'segment_preserves_supremum'" non associative with precedence 90 for @{'segment_preserves_supremum}.
-notation "'segment_preserves_infimum'" non associative with precedence 90 for @{'segment_preserves_infimum}.
-
-interpretation "segment_preserves_supremum" 'segment_preserves_supremum = (h_segment_preserves_supremum (os_l _)).
-interpretation "segment_preserves_infimum" 'segment_preserves_infimum = (h_segment_preserves_supremum (os_r _)).
-
+lemma segment_preserves_infimum:
+ ∀O:ordered_set.∀l,u:O.∀a:sequence {[l,u]}.∀x:{[l,u]}.
+ ⌊n,\fst (a n)⌋ is_decreasing ∧
+ (\fst x) is_infimum ⌊n,\fst (a n)⌋ → a ↓ x.
+intros; split; cases H; clear H;
+[1: apply H1;
+|2: cases H2; split; clear H2;
+ [1: apply H;
+ |2: clear H; intro y0; apply (H3 (\fst y0));]]
+qed.
+
(* Definition 2.10 *)
alias symbol "pi2" = "pair pi2".
alias symbol "pi1" = "pair pi1".