X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Fsoftware%2Fmatita%2Flibrary%2Fnat%2Fiteration2.ma;h=3a4128e70d4727d81aad445bf59036a715b6511d;hb=e880d6eab5e1700f4a625ddcd7d0fa8f0cce2dcc;hp=752e89b9d02fec375326cd8d8df46b577daaef93;hpb=c445ba5534cccde19016c92660ab52777af221c0;p=helm.git diff --git a/helm/software/matita/library/nat/iteration2.ma b/helm/software/matita/library/nat/iteration2.ma index 752e89b9d..3a4128e70 100644 --- a/helm/software/matita/library/nat/iteration2.ma +++ b/helm/software/matita/library/nat/iteration2.ma @@ -286,17 +286,16 @@ theorem le_sigma_p: (\forall i. i < n \to p i = true \to g1 i \le g2 i ) \to sigma_p n p g1 \le sigma_p n p g2. intros. -generalize in match H. -elim n +elim n in H ⊢ % [apply le_n. |apply (bool_elim ? (p n1));intros [rewrite > true_to_sigma_p_Sn [rewrite > true_to_sigma_p_Sn in ⊢ (? ? %) [apply le_plus - [apply H2[apply le_n|assumption] - |apply H1. + [apply H1[apply le_n|assumption] + |apply H. intros. - apply H2[apply le_S.assumption|assumption] + apply H1[apply le_S.assumption|assumption] ] |assumption ] @@ -304,9 +303,9 @@ elim n ] |rewrite > false_to_sigma_p_Sn [rewrite > false_to_sigma_p_Sn in ⊢ (? ? %) - [apply H1. + [apply H. intros. - apply H2[apply le_S.assumption|assumption] + apply H1[apply le_S.assumption|assumption] |assumption ] |assumption @@ -322,25 +321,24 @@ theorem le_sigma_p1: bool_to_nat (p1 i)*(g1 i) \le bool_to_nat (p2 i)*g2 i) \to sigma_p n p1 g1 \le sigma_p n p2 g2. intros. -generalize in match H. -elim n +elim n in H ⊢ % [apply le_n. |apply (bool_elim ? (p1 n1));intros [apply (bool_elim ? (p2 n1));intros [rewrite > true_to_sigma_p_Sn [rewrite > true_to_sigma_p_Sn in ⊢ (? ? %) [apply le_plus - [lapply (H2 n1) as H5 - [rewrite > H3 in H5. - rewrite > H4 in H5. + [lapply (H1 n1) as H5 + [rewrite > H2 in H5. + rewrite > H3 in H5. simplify in H5. rewrite < plus_n_O in H5. rewrite < plus_n_O in H5. assumption |apply le_S_S.apply le_n ] - |apply H1.intros. - apply H2.apply le_S.assumption + |apply H.intros. + apply H1.apply le_S.assumption ] |assumption ] @@ -350,16 +348,16 @@ elim n [rewrite > false_to_sigma_p_Sn in ⊢ (? ? %) [change in ⊢ (? ? %) with (O + sigma_p n1 p2 g2). apply le_plus - [lapply (H2 n1) as H5 - [rewrite > H3 in H5. - rewrite > H4 in H5. + [lapply (H1 n1) as H5 + [rewrite > H2 in H5. + rewrite > H3 in H5. simplify in H5. rewrite < plus_n_O in H5. assumption |apply le_S_S.apply le_n ] - |apply H1.intros. - apply H2.apply le_S.assumption + |apply H.intros. + apply H1.apply le_S.assumption ] |assumption ] @@ -371,16 +369,16 @@ elim n [rewrite > true_to_sigma_p_Sn in ⊢ (? ? %) [change in ⊢ (? % ?) with (O + sigma_p n1 p1 g1). apply le_plus - [lapply (H2 n1) as H5 - [rewrite > H3 in H5. - rewrite > H4 in H5. + [lapply (H1 n1) as H5 + [rewrite > H2 in H5. + rewrite > H3 in H5. simplify in H5. rewrite < plus_n_O in H5. assumption |apply le_S_S.apply le_n ] - |apply H1.intros. - apply H2.apply le_S.assumption + |apply H.intros. + apply H1.apply le_S.assumption ] |assumption ] @@ -388,8 +386,8 @@ elim n ] |rewrite > false_to_sigma_p_Sn [rewrite > false_to_sigma_p_Sn in ⊢ (? ? %) - [apply H1.intros. - apply H2.apply le_S.assumption + [apply H.intros. + apply H1.apply le_S.assumption |assumption ] |assumption @@ -397,7 +395,7 @@ elim n ] ] ] -qed. +qed. theorem lt_sigma_p: \forall n:nat. \forall p:nat \to bool. \forall g1,g2:nat \to nat.