∀C:ordered_set.
∀a:sequence C.∀l,u:C.∀H:∀i:nat.a i ∈ [l,u].
∀x:C.∀p:a order_converges x.
- ∀j.l ≤ (fst p) j.
-intros; cases p; clear p; simplify; cases H1; clear H1; cases H2; clear H2;
-cases (H3 j); clear H3; cases H2; cases H7; clear H2 H7;
-intro H2; cases (H8 ? H2);
-cases (H (w1+j)); apply (H12 H7);
+ ∀j.l ≤ (pi1exT23 ???? p) j.
+intros; cases p (xi yi Ux Dy Hxy); clear p; simplify;
+cases Ux (Ixi Sxi); clear Ux; cases Dy (Dyi Iyi); clear Dy;
+cases (Hxy j) (Ia Sa); clear Hxy; cases Ia (Da SSa); cases Sa (Inca SIa); clear Ia Sa;
+intro H2; cases (SSa l H2) (w Hw); simplify in Hw;
+cases (H (w+j)) (Hal Hau); apply (Hau Hw);
qed.
lemma order_converges_smaller_upsegment:
∀C:ordered_set.
∀a:sequence C.∀l,u:C.∀H:∀i:nat.a i ∈ [l,u].
∀x:C.∀p:a order_converges x.
- ∀j.(snd p) j ≤ u.
+ ∀j.(pi2exT23 ???? p) j ≤ u.
intros; cases p; clear p; simplify; cases H1; clear H1; cases H2; clear H2;
cases (H3 j); clear H3; cases H2; cases H7; clear H2 H7;
intro H2; cases (H10 ? H2);
cases (H (w1+j)); apply (H11 H7);
qed.
-
+
(* Theorem 3.10 *)
theorem lebesgue_oc:
∀C:ordered_uniform_space.
∀a:sequence C.∀l,u:C.∀H:∀i:nat.a i ∈ [l,u].
∀x:C.a order_converges x →
x ∈ [l,u] ∧
- ∀h:x ∈ [l,u]. (* manca il pullback? *)
- uniform_converge
- (uniform_space_OF_ordered_uniform_space
- (segment_ordered_uniform_space C l u))
- (λn.sig_in C (λx.x∈[l,u]) (a n) (H n))
- (sig_in ?? x h).
-intros;
+ ∀h:x ∈ [l,u].
+ uniform_converge {[l,u]} (⌊n,≪a n,H n≫⌋) ≪x,h≫.
+intros;
generalize in match (order_converges_bigger_lowsegment ???? H1 ? H2);
generalize in match (order_converges_smaller_upsegment ???? H1 ? H2);
cases H2 (xi yi Hx Hy Hxy); clear H2; simplify in ⊢ (% → % → ?); intros;
cut (∀i.xi i ∈ [l,u]) as Hxi; [2:
intros; split; [2:apply H3] cases (Hxy i) (H5 _); cases H5 (H7 _);
- apply (le_transitive ???? (H7 0)); simplify;
+ apply (ge_transitive u ??? (H7 0)); simplify;
cases (H1 i); assumption;] clear H3;
cut (∀i.yi i ∈ [l,u]) as Hyi; [2:
intros; split; [apply H2] cases (Hxy i) (_ H5); cases H5 (H7 _);
- apply (le_transitive ????? (H7 0)); simplify;
- cases (H1 i); assumption;] clear H2;
+ apply (le_transitive l ? (yi i) ? (H7 0)); simplify;
+ cases (H1 i); assumption;] clear H2;
split;
[1: cases Hx; cases H3; cases Hy; cases H7; split;
- [1: apply (le_transitive ???? (H8 0)); cases (Hyi 0); assumption
- |2: apply (le_transitive ????? (H4 0)); cases (Hxi 0); assumption]
+ [1: apply (ge_transitive u ?? ? (H8 0)); cases (Hyi 0); assumption
+ |2: apply (le_transitive l ? x ? (H4 0)); cases (Hxi 0); assumption]
|2: intros 3 (h);
- letin X ≝ (sig_in ?? x h);
- letin Xi ≝ (λn.sig_in ?? (xi n) (Hxi n));
- letin Yi ≝ (λn.sig_in ?? (yi n) (Hyi n));
- letin Ai ≝ (λn:nat.sig_in ?? (a n) (H1 n));
- apply (sandwich {[l,u]} X Xi Yi Ai); try assumption;
+ letin Xi ≝ (⌊n,≪xi n, Hxi n≫⌋);
+ letin Yi ≝ (⌊n,≪yi n, Hyi n≫⌋);
+ letin Ai ≝ (⌊n,≪a n, H1 n≫⌋);
+ apply (sandwich {[l,u]} ≪?, h≫ Xi Yi Ai); [4: assumption;]
[1: intro j; cases (Hxy j); cases H3; cases H4; split;
[apply (H5 0);|apply (H7 0)]
- |2: cases (H l u Xi X) (Ux Uy); apply Ux; cases Hx; split; [apply H3;]
- cases H4; split; [apply H5] intros (y Hy);cases (H6 (fst y));[2:apply Hy];
+ |2: cases (H l u Xi ≪?,h≫) (Ux Uy); apply Ux; cases Hx; split; [apply H3;]
+ cases H4; split; [apply H5] intros (y Hy);cases (H6 (\fst y));[2:apply Hy];
exists [apply w] apply H7;
- |3: cases (H l u Yi X) (Ux Uy); apply Uy; cases Hy; split; [apply H3;]
- cases H4; split; [apply H5] intros (y Hy);cases (H6 (fst y));[2:apply Hy];
+ |3: cases (H l u Yi ≪?,h≫) (Ux Uy); apply Uy; cases Hy; split; [apply H3;]
+ cases H4; split; [apply H5] intros (y Hy);cases (H6 (\fst y));[2:apply Hy];
exists [apply w] apply H7;]]
qed.
∀a:sequence C.∀l,u:C.∀H:∀i:nat.a i ∈ [l,u].
∀x:C.a order_converges x →
x ∈ [l,u] ∧
- ∀h:x ∈ [l,u]. (* manca il pullback? *)
- uniform_converge
- (uniform_space_OF_ordered_uniform_space
- (segment_ordered_uniform_space C l u))
- (λn.sig_in C (λx.x∈[l,u]) (a n) (H n))
- (sig_in ?? x h).
+ ∀h:x ∈ [l,u].
+ uniform_converge {[l,u]} (⌊n,≪a n,H n≫⌋) ≪x,h≫.
intros (C S);
generalize in match (order_converges_bigger_lowsegment ???? H1 ? H2);
generalize in match (order_converges_smaller_upsegment ???? H1 ? H2);
cases H2 (xi yi Hx Hy Hxy); clear H2; simplify in ⊢ (% → % → ?); intros;
cut (∀i.xi i ∈ [l,u]) as Hxi; [2:
intros; split; [2:apply H3] cases (Hxy i) (H5 _); cases H5 (H7 _);
- apply (le_transitive ???? (H7 0)); simplify;
+ apply (ge_transitive u ?? ? (H7 0)); simplify;
cases (H1 i); assumption;] clear H3;
cut (∀i.yi i ∈ [l,u]) as Hyi; [2:
intros; split; [apply H2] cases (Hxy i) (_ H5); cases H5 (H7 _);
- apply (le_transitive ????? (H7 0)); simplify;
+ apply (le_transitive l ? (yi i) ? (H7 0)); simplify;
cases (H1 i); assumption;] clear H2;
-split;
-[1: cases Hx; cases H3; cases Hy; cases H7; split;
- [1: apply (le_transitive ???? (H8 0)); cases (Hyi 0); assumption
- |2: apply (le_transitive ????? (H4 0)); cases (Hxi 0); assumption]
-|2: intros 3;
- lapply (uparrow_upperlocated ? xi x Hx)as Ux;
- lapply (downarrow_lowerlocated ? yi x Hy)as Uy;
- letin X ≝ (sig_in ?? x h);
- letin Xi ≝ (λn.sig_in ?? (xi n) (Hxi n));
- letin Yi ≝ (λn.sig_in ?? (yi n) (Hyi n));
- letin Ai ≝ (λn:nat.sig_in ?? (a n) (H1 n));
- apply (sandwich {[l,u]} X Xi Yi Ai); try assumption;
- [1: intro j; cases (Hxy j); cases H3; cases H4; split;
- [apply (H5 0);|apply (H7 0)]
- |2: cases (restrict_uniform_convergence_uparrow ? S ?? (H l u) Xi x Hx);
- apply (H4 h);
- |3: cases (restrict_uniform_convergence_downarrow ? S ?? (H l u) Yi x Hy);
- apply (H4 h);]]
+letin Xi ≝ (⌊n,≪xi n, Hxi n≫⌋);
+letin Yi ≝ (⌊n,≪yi n, Hyi n≫⌋);
+cases (restrict_uniform_convergence_uparrow ? S ?? (H l u) Xi x Hx);
+cases (restrict_uniform_convergence_downarrow ? S ?? (H l u) Yi x Hy);
+split; [1: assumption]
+intros 3;
+lapply (uparrow_upperlocated xi x Hx)as Ux;
+lapply (downarrow_lowerlocated yi x Hy)as Uy;
+letin Ai ≝ (⌊n,≪a n, H1 n≫⌋);
+apply (sandwich {[l,u]} ≪?, h≫ Xi Yi Ai); [4: assumption;|2:apply H3;|3:apply H5]
+intro j; cases (Hxy j); cases H7; cases H8; split; [apply (H9 0);|apply (H11 0)]
qed.
+
+
+