X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Fsoftware%2Fmatita%2Fcontribs%2Fdama%2Fdama%2Flebesgue.ma;h=251352d1f6240f8a97275b7ffc3c9e6a4fe4597d;hb=bb7af347df386afcd3ea2adea8e7e982e3a5a253;hp=c5a256a0061a1a22105e7b3a1e0d526cefaf4e3a;hpb=ca41435a6021292ccba239aa173651c0be705b45;p=helm.git diff --git a/helm/software/matita/contribs/dama/dama/lebesgue.ma b/helm/software/matita/contribs/dama/dama/lebesgue.ma index c5a256a00..251352d1f 100644 --- a/helm/software/matita/contribs/dama/dama/lebesgue.ma +++ b/helm/software/matita/contribs/dama/dama/lebesgue.ma @@ -16,106 +16,110 @@ include "sandwich.ma". include "property_exhaustivity.ma". +(* NOT DUALIZED *) +alias symbol "low" = "lower". +alias id "le" = "cic:/matita/dama/ordered_set/le.con". lemma order_converges_bigger_lowsegment: ∀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 ≤ (pi1exT23 ???? p) j. + ∀a:sequence (os_l C).∀s:segment C.∀H:∀i:nat.a i ∈ s. + ∀x:C.∀p:order_converge C a x. + ∀j. 𝕝_s ≤ (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 ? H2) (w Hw); simplify in Hw; -cases (H (w+j)) (Hal Hau); apply (Hau Hw); +intro H2; cases (SSa 𝕝_s H2) (w Hw); simplify in Hw; +lapply (H (w+j)) as K; cases (cases_in_segment ? s ? K); apply H3; apply Hw; qed. - + +alias symbol "upp" = "uppper". +alias symbol "leq" = "Ordered set less or equal than". 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.(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. - + ∀a:sequence (os_l C).∀s:segment C.∀H:∀i:nat.a i ∈ s. + ∀x:C.∀p:order_converge C a x. + ∀j. (pi2exT23 ???? p j) ≤ 𝕦_s. +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 (SIa 𝕦_s H2) (w Hw); lapply (H (w+j)) as K; +cases (cases_in_segment ? s ? K); apply H1; apply Hw; +qed. + (* Theorem 3.10 *) theorem lebesgue_oc: ∀C:ordered_uniform_space. - (∀l,u:C.order_continuity {[l,u]}) → - ∀a:sequence C.∀l,u:C.∀H:∀i:nat.a i ∈ [l,u]. + (∀s:‡C.order_continuity {[s]}) → + ∀a:sequence C.∀s:‡C.∀H:∀i:nat.a i ∈ s. ∀x:C.a order_converges x → - x ∈ [l,u] ∧ - ∀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; - 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; + x ∈ s ∧ + ∀h:x ∈ s. + uniform_converge {[s]} (⌊n,≪a n,H n≫⌋) ≪x,h≫. +intros; +generalize in match (order_converges_bigger_lowsegment ? a s H1 ? H2); +generalize in match (order_converges_smaller_upsegment ? a s H1 ? H2); +cases H2 (xi yi Hx Hy Hxy); clear H2; simplify in ⊢ ((?→???%) → (?→???%) → ?); intros; +cut (∀i.xi i ∈ s) as Hxi; [2: + intros; apply (prove_in_segment (os_l C)); [apply (H3 i)] cases (Hxy i) (H5 _); cases H5 (H7 _); + lapply (H7 0) as K; cases (cases_in_segment ? s ? (H1 i)) (Pl Pu); + simplify in K:(? ? % ?); apply (hle_transitive (os_l C) (xi i) (a i) 𝕦_s K Pu);] clear H3; +cut (∀i.yi i ∈ s) as Hyi; [2: + intros; apply (prove_in_segment (os_l C)); [2:apply (H2 i)] cases (Hxy i) (_ H5); cases H5 (H7 _); + lapply (H7 0) as K; cases (cases_in_segment ? s ? (H1 i)) (Pl Pu); simplify in K; + apply (le_transitive 𝕝_s ? ? ? K);apply Pl;] 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 (uparrow_to_in_segment s ? Hxi ? Hx); |2: intros 3 (h); - 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); try assumption; - [1: intro j; cases (Hxy j); cases H3; cases H4; split; - [apply (H5 0);|apply (H7 0)] - |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 〈?,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;]] + letin Xi ≝ (⌊n,≪xi n, Hxi n≫⌋); + letin Yi ≝ (⌊n,≪yi n, Hyi n≫⌋); + letin Ai ≝ (⌊n,≪a n, H1 n≫⌋); + apply (sandwich {[s]} ≪x, h≫ Xi Yi Ai); [4: assumption;] + [1: intro j; cases (Hxy j); cases H3; cases H4; split; clear H3 H4; simplify in H5 H7; + [apply (l2sl ? s (Xi j) (Ai j) (H5 0));|apply (l2sl ? s (Ai j) (Yi j) (H7 0))] + |2: cases (H s Xi ≪?,h≫) (Ux Uy); apply Ux; cases Hx; split; [intro i; apply (l2sl ? s (Xi i) (Xi (S i)) (H3 i));] + cases H4; split; [intro i; apply (l2sl ? s (Xi i) ≪x,h≫ (H5 i))] + intros (y Hy);cases (H6 (\fst y));[2:apply (sx2x ? s ? y Hy)] + exists [apply w] apply (x2sx ? s (Xi w) y H7); + |3: cases (H s Yi ≪?,h≫) (Ux Uy); apply Uy; cases Hy; split; [intro i; apply (l2sl ? s (Yi (S i)) (Yi i) (H3 i));] + cases H4; split; [intro i; apply (l2sl ? s ≪x,h≫ (Yi i) (H5 i))] + intros (y Hy);cases (H6 (\fst y));[2:apply (sx2x ? s y ≪x,h≫ Hy)] + exists [apply w] apply (x2sx ? s y (Yi w) H7);]] qed. (* Theorem 3.9 *) theorem lebesgue_se: ∀C:ordered_uniform_space.property_sigma C → - (∀l,u:C.exhaustive {[l,u]}) → - ∀a:sequence C.∀l,u:C.∀H:∀i:nat.a i ∈ [l,u]. + (∀s:‡C.exhaustive {[s]}) → + ∀a:sequence C.∀s:‡C.∀H:∀i:nat.a i ∈ s. ∀x:C.a order_converges x → - x ∈ [l,u] ∧ - ∀h:x ∈ [l,u]. - uniform_converge {[l,u]} (⌊n,〈a n,H n〉⌋) 〈x,h〉. + x ∈ s ∧ + ∀h:x ∈ s. + uniform_converge {[s]} (⌊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; - 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; -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 Xi ≝ (⌊n,〈xi n,Hxi n〉⌋); - letin Yi ≝ (⌊n,〈yi n,Hyi n〉⌋); - letin Ai ≝ (⌊n,〈a n,H1 n〉⌋); - apply (sandwich {[l,u]} 〈x,h〉 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);]] +generalize in match (order_converges_bigger_lowsegment ? a s H1 ? H2); +generalize in match (order_converges_smaller_upsegment ? a s H1 ? H2); +cases H2 (xi yi Hx Hy Hxy); clear H2; simplify in ⊢ ((?→???%) → (?→???%) → ?); intros; +cut (∀i.xi i ∈ s) as Hxi; [2: + intros; apply (prove_in_segment (os_l C)); [apply (H3 i)] cases (Hxy i) (H5 _); cases H5 (H7 _); + lapply (H7 0) as K; cases (cases_in_segment ? s ? (H1 i)) (Pl Pu); + simplify in K:(? ? % ?); apply (hle_transitive (os_l C) (xi i) (a i) 𝕦_s K Pu);] clear H3; +cut (∀i.yi i ∈ s) as Hyi; [2: + intros; apply (prove_in_segment (os_l C)); [2:apply (H2 i)] cases (Hxy i) (_ H5); cases H5 (H7 _); + lapply (H7 0) as K; cases (cases_in_segment ? s ? (H1 i)) (Pl Pu); simplify in K; + apply (le_transitive 𝕝_s ? ? ? K);apply Pl;] clear H2; +letin Xi ≝ (⌊n,≪xi n, Hxi n≫⌋); +letin Yi ≝ (⌊n,≪yi n, Hyi n≫⌋); +cases (restrict_uniform_convergence_uparrow ? S ? (H s) Xi x Hx); +cases (restrict_uniform_convergence_downarrow ? S ? (H s) 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 {[s]} ≪x, h≫ Xi Yi Ai); [4: assumption;|2:apply H3;|3:apply H5] +intro j; cases (Hxy j); cases H7; cases H8; split; +[apply (l2sl ? s (Xi j) (Ai j) (H9 0));|apply (l2sl ? s (Ai j) (Yi j) (H11 0))] qed. + + +