X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Fsoftware%2Fmatita%2Fcontribs%2Fdama%2Fdama%2Flebesgue.ma;h=2e6b0a1e4a0dff99f41016dde281a542eaac9686;hb=bde2f037924b8854d5ed4e6b133c306156a1fcf5;hp=46fe6e4223afa0136c19bed8423339b88308758c;hpb=99f153e43f18bc682339bed41c8230af2ac6fd2f;p=helm.git diff --git a/helm/software/matita/contribs/dama/dama/lebesgue.ma b/helm/software/matita/contribs/dama/dama/lebesgue.ma index 46fe6e422..2e6b0a1e4 100644 --- a/helm/software/matita/contribs/dama/dama/lebesgue.ma +++ b/helm/software/matita/contribs/dama/dama/lebesgue.ma @@ -20,24 +20,25 @@ 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 ≤ (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. @@ -45,41 +46,36 @@ theorem lebesgue_oc: ∀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. @@ -91,40 +87,32 @@ theorem lebesgue_se: ∀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. + + +