From 084356945c22e2f8f3cc40e49a65a7408572377c Mon Sep 17 00:00:00 2001 From: desmettr Date: Fri, 19 Jul 2002 11:59:50 +0000 Subject: Quelques ameliorations... git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@2902 85f007b7-540e-0410-9357-904b9bb8a0f7 --- theories/Reals/Alembert.v | 872 ++++++++++++---------------------------------- 1 file changed, 220 insertions(+), 652 deletions(-) (limited to 'theories') diff --git a/theories/Reals/Alembert.v b/theories/Reals/Alembert.v index 10ebfc0c5e..0424b55f84 100644 --- a/theories/Reals/Alembert.v +++ b/theories/Reals/Alembert.v @@ -34,21 +34,15 @@ Qed. Lemma tech1 : (An:nat->R;N:nat) ((n:nat)``(le n N)``->``0<(An n)``) -> ``0 < (sum_f_R0 An N)``. Intros; Induction N. -Simpl; Apply H. -Apply le_n. -Replace (sum_f_R0 An (S N)) with ``(sum_f_R0 An N)+(An (S N))``. -Apply gt0_plus_gt0_is_gt0. -Apply HrecN; Intros; Apply H. -Apply le_S; Assumption. -Apply H. -Apply le_n. -Reflexivity. +Simpl; Apply H; Apply le_n. +Simpl; Apply gt0_plus_gt0_is_gt0. +Apply HrecN; Intros; Apply H; Apply le_S; Assumption. +Apply H; Apply le_n. Qed. (* Relation de Chasles *) Lemma tech2 : (An:nat->R;m,n:nat) (lt m n) -> (sum_f_R0 An n) == (Rplus (sum_f_R0 An m) (sum_f_R0 [i:nat]``(An (plus (S m) i))`` (minus n (S m)))). -Intros. -Induction n. +Intros; Induction n. Elim (lt_n_O ? H). Cut (lt m n)\/m=n. Intro; Elim H0; Intro. @@ -58,71 +52,44 @@ Replace (sum_f_R0 [i:nat](An (plus (S m) i)) (S (minus n (S m)))) with (Rplus (s Replace (plus (S m) (S (minus n (S m)))) with (S n). Rewrite (Hrecn H1). Ring. -Apply INR_eq. -Rewrite S_INR. -Rewrite plus_INR. -Do 2 Rewrite S_INR. -Rewrite minus_INR. -Rewrite S_INR. -Ring. +Apply INR_eq; Rewrite S_INR; Rewrite plus_INR; Do 2 Rewrite S_INR; Rewrite minus_INR. +Rewrite S_INR; Ring. Apply lt_le_S; Assumption. -Apply INR_eq. -Rewrite S_INR. -Repeat Rewrite minus_INR. -Repeat Rewrite S_INR. -Ring. -Apply le_n_S. -Apply lt_le_weak; Assumption. +Apply INR_eq; Rewrite S_INR; Repeat Rewrite minus_INR. +Repeat Rewrite S_INR; Ring. +Apply le_n_S; Apply lt_le_weak; Assumption. Apply lt_le_S; Assumption. -Rewrite H1. -Replace (minus (S n) (S n)) with O. -Simpl. -Replace (plus n O) with n; [Idtac | Ring]. -Reflexivity. -Apply minus_n_n. +Rewrite H1; Rewrite <- minus_n_n; Simpl. +Replace (plus n O) with n; [Reflexivity | Ring]. Inversion H. Right; Reflexivity. -Left. -Apply lt_le_trans with (S m). -Apply lt_n_Sn. -Assumption. +Left; Apply lt_le_trans with (S m); [Apply lt_n_Sn | Assumption]. Qed. (* Somme d'une suite géométrique *) Lemma tech3 : (k:R;N:nat) ``k<>1`` -> (sum_f_R0 [i:nat](pow k i) N)==``(1-(pow k (S N)))/(1-k)``. -Intros. -Induction N. -Simpl. -Field. -Replace ``1+ -k`` with ``1-k``; [Idtac | Ring]. -Apply Rminus_eq_contra. -Apply not_sym. -Assumption. -Replace (sum_f_R0 ([i:nat](pow k i)) (S N)) with (Rplus (sum_f_R0 [i:nat](pow k i) N) (pow k (S N))); [Idtac | Reflexivity]. -Rewrite HrecN. -Replace ``(1-(pow k (S N)))/(1-k)+(pow k (S N))`` with ``((1-(pow k (S N)))+(1-k)*(pow k (S N)))/(1-k)``; [Idtac | Field; Replace ``1+ -k`` with ``1-k``; [Idtac | Ring]; Apply Rminus_eq_contra; Apply not_sym; Assumption]. -Replace ``(1-(pow k (S N))+(1-k)*(pow k (S N)))`` with ``1-k*(pow k (S N))``; [Idtac | Ring]. -Replace (S (S N)) with (plus (1) (S N)). -Rewrite pow_add. -Simpl. -Rewrite Rmult_1r. +Intros; Cut ``1-k<>0``. +Intro; Induction N. +Simpl; Rewrite Rmult_1r; Unfold Rdiv; Rewrite <- Rinv_r_sym. Reflexivity. -Ring. +Apply H0. +Replace (sum_f_R0 ([i:nat](pow k i)) (S N)) with (Rplus (sum_f_R0 [i:nat](pow k i) N) (pow k (S N))); [Idtac | Reflexivity]; Rewrite HrecN; Replace ``(1-(pow k (S N)))/(1-k)+(pow k (S N))`` with ``((1-(pow k (S N)))+(1-k)*(pow k (S N)))/(1-k)``. +Apply r_Rmult_mult with ``1-k``. +Unfold Rdiv; Do 2 Rewrite <- (Rmult_sym ``/(1-k)``); Repeat Rewrite <- Rmult_assoc; Rewrite <- Rinv_r_sym; [ Do 2 Rewrite Rmult_1l; Simpl; Ring | Apply H0]. +Apply H0. +Unfold Rdiv; Rewrite Rmult_Rplus_distrl; Rewrite (Rmult_sym ``1-k``); Repeat Rewrite Rmult_assoc; Rewrite <- Rinv_r_sym. +Rewrite Rmult_1r; Reflexivity. +Apply H0. +Apply Rminus_eq_contra; Red; Intro; Elim H; Symmetry; Assumption. Qed. Lemma tech4 : (An:nat->R;k:R;N:nat) ``0<=k`` -> ((i:nat)``(An (S i)) ``(An N)<=(An O)*(pow k N)``. -Intros. -Induction N. -Simpl. -Right; Ring. +Intros; Induction N. +Simpl; Right; Ring. Apply Rle_trans with ``k*(An N)``. Left; Apply (H0 N). Replace (S N) with (plus N (1)); [Idtac | Ring]. -Rewrite pow_add. -Simpl. -Rewrite Rmult_1r. -Replace ``(An O)*((pow k N)*k)`` with ``k*((An O)*(pow k N))``; [Idtac | Ring]. -Apply Rle_monotony. +Rewrite pow_add; Simpl; Rewrite Rmult_1r; Replace ``(An O)*((pow k N)*k)`` with ``k*((An O)*(pow k N))``; [Idtac | Ring]; Apply Rle_monotony. Assumption. Apply HrecN. Qed. @@ -132,53 +99,35 @@ Intros; Reflexivity. Qed. Lemma tech6 : (An:nat->R;k:R;N:nat) ``0<=k`` -> ((i:nat)``(An (S i)) (Rle (sum_f_R0 An N) (Rmult (An O) (sum_f_R0 [i:nat](pow k i) N))). -Intros. -Induction N. -Simpl. -Right; Ring. +Intros; Induction N. +Simpl; Right; Ring. Apply Rle_trans with (Rplus (Rmult (An O) (sum_f_R0 [i:nat](pow k i) N)) (An (S N))). -Replace ``(sum_f_R0 An (S N))`` with ``(sum_f_R0 An N)+(An (S N))``. -Do 2 Rewrite <- (Rplus_sym (An (S N))). -Apply Rle_compatibility. +Rewrite tech5; Do 2 Rewrite <- (Rplus_sym (An (S N))); Apply Rle_compatibility. Apply HrecN. -Symmetry; Apply tech5. -Rewrite tech5. -Rewrite Rmult_Rplus_distr. -Apply Rle_compatibility. +Rewrite tech5 ; Rewrite Rmult_Rplus_distr; Apply Rle_compatibility. Apply tech4; Assumption. Qed. Lemma tech7 : (r1,r2:R) ``r1<>0`` -> ``r2<>0`` -> ``r1<>r2`` -> ``/r1<>/r2``. -Intros. -Red. -Intro. +Intros; Red; Intro. Assert H3 := (Rmult_mult_r r1 ? ? H2). Rewrite <- Rinv_r_sym in H3; [Idtac | Assumption]. Assert H4 := (Rmult_mult_r r2 ? ? H3). -Rewrite Rmult_1r in H4. -Rewrite <- Rmult_assoc in H4. +Rewrite Rmult_1r in H4; Rewrite <- Rmult_assoc in H4. Rewrite Rinv_r_simpl_m in H4; [Idtac | Assumption]. Elim H1; Symmetry; Assumption. Qed. Lemma tech8 : (n,i:nat) (le n (plus (S n) i)). -Intros. -Induction i. -Replace (plus (S n) O) with (S n). -Apply le_n_Sn. -Ring. +Intros; Induction i. +Replace (plus (S n) O) with (S n); [Apply le_n_Sn | Ring]. Replace (plus (S n) (S i)) with (S (plus (S n) i)). Apply le_S; Assumption. -Cut (m:nat)(S m)=(plus m (1)); [Intro | Intro; Ring]. -Rewrite H. -Rewrite (H n). -Rewrite (H i). -Ring. +Apply INR_eq; Rewrite S_INR; Do 2 Rewrite plus_INR; Do 2 Rewrite S_INR; Ring. Qed. Lemma tech9 : (Un:nat->R) (Un_growing Un) -> ((m,n:nat)(le m n)->``(Un m)<=(Un n)``). -Intros. -Unfold Un_growing in H. +Intros; Unfold Un_growing in H. Induction n. Induction m. Right; Reflexivity. @@ -195,186 +144,100 @@ Left; Assumption. Qed. Lemma tech10 : (Un:nat->R;x:R) (Un_growing Un) -> (is_lub (EUn Un) x) -> (Un_cv Un x). -Intros. -Cut (bound (EUn Un)). -Intro. -Assert H2 := (Un_cv_crit ? H H1). +Intros; Cut (bound (EUn Un)). +Intro; Assert H2 := (Un_cv_crit ? H H1). Elim H2; Intros. Case (total_order_T x x0); Intro. Elim s; Intro. Cut (n:nat)``(Un n)<=x``. -Intro. -Unfold Un_cv in H3. -Cut ``0``y<=x0``. -Intro. -Assert H8 := (H6 ? H7). +Intro; Assert H8 := (H6 ? H7). Elim (Rlt_antirefl ? (Rle_lt_trans ? ? ? H8 r)). -Unfold EUn. -Intros. -Elim H7; Intros. +Unfold EUn; Intros; Elim H7; Intros. Rewrite H8; Apply H4. -Intro. -Case (total_order_Rle (Un n) x0); Intro. +Intro; Case (total_order_Rle (Un n) x0); Intro. Assumption. Cut (n0:nat)(le n n0) -> ``x0<(Un n0)``. -Intro. -Unfold Un_cv in H3. -Cut ``0<(Un n)-x0``. -Intro. -Elim (H3 ``(Un n)-x0`` H5); Intros. +Intro; Unfold Un_cv in H3; Cut ``0<(Un n)-x0``. +Intro; Elim (H3 ``(Un n)-x0`` H5); Intros. Cut (ge (max n x1) x1). -Intro. -Assert H8 := (H6 (max n x1) H7). +Intro; Assert H8 := (H6 (max n x1) H7). Unfold R_dist in H8. Rewrite Rabsolu_right in H8. Unfold Rminus in H8; Do 2 Rewrite <- (Rplus_sym ``-x0``) in H8. Assert H9 := (Rlt_anti_compatibility ? ? ? H8). Cut ``(Un n)<=(Un (max n x1))``. -Intro. -Elim (Rlt_antirefl ? (Rle_lt_trans ? ? ? H10 H9)). -Apply tech9. -Assumption. -Apply le_max_l. +Intro; Elim (Rlt_antirefl ? (Rle_lt_trans ? ? ? H10 H9)). +Apply tech9; [Assumption | Apply le_max_l]. Apply Rge_trans with ``(Un n)-x0``. -Unfold Rminus; Apply Rle_sym1. -Do 2 Rewrite <- (Rplus_sym ``-x0``). -Apply Rle_compatibility. -Apply tech9. -Assumption. -Apply le_max_l. +Unfold Rminus; Apply Rle_sym1; Do 2 Rewrite <- (Rplus_sym ``-x0``); Apply Rle_compatibility. +Apply tech9; [Assumption | Apply le_max_l]. Left; Assumption. Unfold ge; Apply le_max_r. Apply Rlt_anti_compatibility with x0. -Rewrite Rplus_Or. -Unfold Rminus; Rewrite (Rplus_sym x0). -Rewrite Rplus_assoc; Rewrite Rplus_Ropp_l; Rewrite Rplus_Or. -Apply H4. -Apply le_n. -Intros. -Apply Rlt_le_trans with (Un n). +Rewrite Rplus_Or; Unfold Rminus; Rewrite (Rplus_sym x0); Rewrite Rplus_assoc; Rewrite Rplus_Ropp_l; Rewrite Rplus_Or; Apply H4; Apply le_n. +Intros; Apply Rlt_le_trans with (Un n). Case (total_order_Rlt_Rle x0 (Un n)); Intro. Assumption. Elim n0; Assumption. Apply tech9; Assumption. -Unfold bound. -Exists x. -Unfold is_lub in H0. -Elim H0; Intros; Assumption. +Unfold bound; Exists x; Unfold is_lub in H0; Elim H0; Intros; Assumption. Qed. Lemma tech11 : (An,Bn,Cn:nat->R;N:nat) ((i:nat) (An i)==``(Bn i)-(Cn i)``) -> (sum_f_R0 An N)==``(sum_f_R0 Bn N)-(sum_f_R0 Cn N)``. -Intros. -Induction N. -Simpl. -Apply H. -Replace (sum_f_R0 An (S N)) with ``(sum_f_R0 An N)+(An (S N))``; [Idtac | Reflexivity]. -Replace (sum_f_R0 Bn (S N)) with ``(sum_f_R0 Bn N)+(Bn (S N))``; [Idtac | Reflexivity]. -Replace (sum_f_R0 Cn (S N)) with ``(sum_f_R0 Cn N)+(Cn (S N))``; [Idtac | Reflexivity]. -Rewrite HrecN. -Unfold Rminus. -Repeat Rewrite Rplus_assoc. -Apply Rplus_plus_r. -Rewrite Ropp_distr1. -Rewrite <- Rplus_assoc. -Rewrite <- (Rplus_sym ``-(sum_f_R0 Cn N)``). -Rewrite Rplus_assoc. -Apply Rplus_plus_r. -Unfold Rminus in H. -Apply H. +Intros; Induction N. +Simpl; Apply H. +Do 3 Rewrite tech5; Rewrite HrecN; Rewrite (H (S N)); Ring. Qed. Lemma tech12 : (An:nat->R;x:R;l:R) (Un_cv [N:nat](sum_f_R0 [i:nat]``(An i)*(pow x i)`` N) l) -> (Pser An x l). -Intros. -Unfold Pser. -Unfold infinit_sum. -Unfold Un_cv in H. -Assumption. +Intros; Unfold Pser; Unfold infinit_sum; Unfold Un_cv in H; Assumption. Qed. Lemma tech13 : (An:nat->R;k:R) ``0<=k<1`` -> (Un_cv [n:nat](Rabsolu ``(An (S n))/(An n)``) k) -> (EXT k0 : R | ``k``(Rabsolu ((An (S n))/(An n)))R) ((n:nat)``0<(An n)``) -> (Un_cv [n:nat](Rabsolu ``(An (S n))/(An n)``) R0) -> (SigT R [l:R](Un_cv [N:nat](sum_f_R0 An N) l)). Intros An H H0. Cut (sigTT R [l:R](is_lub (EUn [N:nat](sum_f_R0 An N)) l)) -> (SigT R [l:R](Un_cv [N:nat](sum_f_R0 An N) l)). -Intro. -Apply X. +Intro; Apply X. Apply complet. -2:Exists (sum_f_R0 An O). -2:Unfold EUn. -2:Exists O. -2:Reflexivity. -Unfold Un_cv in H0. -Unfold bound. -Cut ``0``(An (S n))``(An (S n))R) ((n:nat)``(An n)<>0``) -> (Un_cv [n:nat](Rabsolu ``(An (S n))/(An n)``) R0) -> (SigT R [l:R](Un_cv [N:nat](sum_f_R0 An N) l)). @@ -513,387 +318,189 @@ Intros. Pose Vn := [i:nat]``(2*(Rabsolu (An i))+(An i))/2``. Pose Wn := [i:nat]``(2*(Rabsolu (An i))-(An i))/2``. Cut (n:nat)``0<(Vn n)``. -Intro. -Cut (n:nat)``0<(Wn n)``. -Intro. -Cut (Un_cv [n:nat](Rabsolu ``(Vn (S n))/(Vn n)``) ``0``). -Intro. -Cut (Un_cv [n:nat](Rabsolu ``(Wn (S n))/(Wn n)``) ``0``). -Intro. -Assert H5 := (Alembert_positive Vn H1 H3). +Intro; Cut (n:nat)``0<(Wn n)``. +Intro; Cut (Un_cv [n:nat](Rabsolu ``(Vn (S n))/(Vn n)``) ``0``). +Intro; Cut (Un_cv [n:nat](Rabsolu ``(Wn (S n))/(Wn n)``) ``0``). +Intro; Assert H5 := (Alembert_positive Vn H1 H3). Assert H6 := (Alembert_positive Wn H2 H4). Elim H5; Intros. Elim H6; Intros. -Apply Specif.existT with ``x-x0``. -Unfold Un_cv. -Unfold Un_cv in p. -Unfold Un_cv in p0. -Intros. -Cut ``0R;x:R) ``x<>0`` -> ((n:nat)``(An n)<>0``) -> (Un_cv [n:nat](Rabsolu ``(An (S n))/(An n)``) ``0``) -> (SigT R [l:R](Pser An x l)). -Intros. -Pose Bn := [i:nat]``(An i)*(pow x i)``. +Intros; Pose Bn := [i:nat]``(An i)*(pow x i)``. Cut (n:nat)``(Bn n)<>0``. -Intro. -Cut (Un_cv [n:nat](Rabsolu ``(Bn (S n))/(Bn n)``) ``0``). -Intro. -Assert H4 := (Alembert_general Bn H2 H3). +Intro; Cut (Un_cv [n:nat](Rabsolu ``(Bn (S n))/(Bn n)``) ``0``). +Intro; Assert H4 := (Alembert_general Bn H2 H3). Elim H4; Intros. -Apply Specif.existT with x0. -Unfold Bn in p. -Apply tech12. -Assumption. -Unfold Un_cv. -Intros. -Unfold Un_cv in H1. -Cut ``0R;x:R) ``x==0`` -> (SigT R [l:R](Pser An x l)). -Intros. -Apply Specif.existT with (An O). -Unfold Pser. -Unfold infinit_sum. -Intros. -Exists O. -Intros. -Replace (sum_f_R0 [n0:nat]``(An n0)*(pow x n0)`` n) with (An O). +Intros; Apply Specif.existT with (An O). +Unfold Pser; Unfold infinit_sum; Intros; Exists O; Intros; Replace (sum_f_R0 [n0:nat]``(An n0)*(pow x n0)`` n) with (An O). Unfold R_dist; Unfold Rminus; Rewrite Rplus_Ropp_r; Rewrite Rabsolu_R0; Assumption. Induction n. -Simpl. -Ring. -Rewrite tech5. -Rewrite Hrecn. -Rewrite H. -Simpl. -Ring. -Unfold ge; Apply le_O_n. +Simpl; Ring. +Rewrite tech5; Rewrite Hrecn; [Rewrite H; Simpl; Ring | Unfold ge; Apply le_O_n]. Qed. (* Un critère utile de convergence des séries entières *) Theorem Alembert : (An:nat->R;x:R) ((n:nat)``(An n)<>0``) -> (Un_cv [n:nat](Rabsolu ``(An (S n))/(An n)``) ``0``) -> (SigT R [l:R](Pser An x l)). -Intros. -Case (total_order_T x R0); Intro. +Intros; Case (total_order_T x R0); Intro. Elim s; Intro. Cut ``x<>0``. -Intro. -Apply Alembert_step1; Assumption. +Intro; Apply Alembert_step1; Assumption. Red; Intro; Rewrite H1 in a; Elim (Rlt_antirefl ? a). Apply Alembert_step2; Assumption. Cut ``x<>0``. -Intro. -Apply Alembert_step1; Assumption. +Intro; Apply Alembert_step1; Assumption. Red; Intro; Rewrite H1 in r; Elim (Rlt_antirefl ? r). Qed. @@ -901,22 +508,14 @@ Qed. Lemma Alembert_strong_positive : (An:nat->R;k:R) ``0<=k<1`` -> ((n:nat)``0<(An n)``) -> (Un_cv [n:nat](Rabsolu ``(An (S n))/(An n)``) k) -> (SigT R [l:R](Un_cv [N:nat](sum_f_R0 An N) l)). Intros An k Hyp H H0. Cut (sigTT R [l:R](is_lub (EUn [N:nat](sum_f_R0 An N)) l)) -> (SigT R [l:R](Un_cv [N:nat](sum_f_R0 An N) l)). -Intro. -Apply X. +Intro; Apply X. Apply complet. -2:Exists (sum_f_R0 An O). -2:Unfold EUn. -2:Exists O. -2:Reflexivity. Assert H1 := (tech13 ? ? Hyp H0). Elim H1; Intros. Elim H2; Intros. Elim H4; Intros. -Unfold bound. -Exists ``(sum_f_R0 An x0)+/(1-x)*(An (S x0))``. -Unfold is_upper_bound. -Intros. -Unfold EUn in H6. +Unfold bound; Exists ``(sum_f_R0 An x0)+/(1-x)*(An (S x0))``. +Unfold is_upper_bound; Intros; Unfold EUn in H6. Elim H6; Intros. Rewrite H7. Assert H8 := (lt_eq_lt_dec x2 x0). @@ -924,54 +523,34 @@ Elim H8; Intros. Elim a; Intro. Replace (sum_f_R0 An x0) with (Rplus (sum_f_R0 An x2) (sum_f_R0 [i:nat](An (plus (S x2) i)) (minus x0 (S x2)))). Pattern 1 (sum_f_R0 An x2); Rewrite <- Rplus_Or. -Rewrite Rplus_assoc. -Apply Rle_compatibility. +Rewrite Rplus_assoc; Apply Rle_compatibility. Left; Apply gt0_plus_gt0_is_gt0. Apply tech1. -Intros. -Apply H. +Intros; Apply H. Apply Rmult_lt_pos. -Apply Rlt_Rinv. -Apply Rlt_anti_compatibility with x. -Rewrite Rplus_Or. -Replace ``x+(1-x)`` with R1; [Elim H3; Intros; Assumption | Ring]. +Apply Rlt_Rinv; Apply Rlt_anti_compatibility with x; Rewrite Rplus_Or; Replace ``x+(1-x)`` with R1; [Elim H3; Intros; Assumption | Ring]. Apply H. Symmetry; Apply tech2; Assumption. -Rewrite b. -Pattern 1 (sum_f_R0 An x0); Rewrite <- Rplus_Or. -Apply Rle_compatibility. +Rewrite b; Pattern 1 (sum_f_R0 An x0); Rewrite <- Rplus_Or; Apply Rle_compatibility. Left; Apply Rmult_lt_pos. -Apply Rlt_Rinv. -Apply Rlt_anti_compatibility with x. -Rewrite Rplus_Or. -Replace ``x+(1-x)`` with R1; [Elim H3; Intros; Assumption | Ring]. +Apply Rlt_Rinv; Apply Rlt_anti_compatibility with x; Rewrite Rplus_Or; Replace ``x+(1-x)`` with R1; [Elim H3; Intros; Assumption | Ring]. Apply H. Replace (sum_f_R0 An x2) with (Rplus (sum_f_R0 An x0) (sum_f_R0 [i:nat](An (plus (S x0) i)) (minus x2 (S x0)))). Apply Rle_compatibility. -2:Symmetry. -2:Apply tech2. -2:Assumption. Cut (Rle (sum_f_R0 [i:nat](An (plus (S x0) i)) (minus x2 (S x0))) (Rmult (An (S x0)) (sum_f_R0 [i:nat](pow x i) (minus x2 (S x0))))). -Intro. -Apply Rle_trans with (Rmult (An (S x0)) (sum_f_R0 [i:nat](pow x i) (minus x2 (S x0)))). +Intro; Apply Rle_trans with (Rmult (An (S x0)) (sum_f_R0 [i:nat](pow x i) (minus x2 (S x0)))). Assumption. -Rewrite <- (Rmult_sym (An (S x0))). -Apply Rle_monotony. +Rewrite <- (Rmult_sym (An (S x0))); Apply Rle_monotony. Left; Apply H. Rewrite tech3. -Unfold Rdiv. -Apply Rle_monotony_contra with ``1-x``. +Unfold Rdiv; Apply Rle_monotony_contra with ``1-x``. Apply Rlt_anti_compatibility with x; Rewrite Rplus_Or. Replace ``x+(1-x)`` with R1; [Elim H3; Intros; Assumption | Ring]. Do 2 Rewrite (Rmult_sym ``1-x``). -Rewrite Rmult_assoc. -Rewrite <- Rinv_l_sym. -Rewrite Rmult_1r. -Apply Rle_anti_compatibility with ``(pow x (S (minus x2 (S x0))))``. +Rewrite Rmult_assoc; Rewrite <- Rinv_l_sym. +Rewrite Rmult_1r; Apply Rle_anti_compatibility with ``(pow x (S (minus x2 (S x0))))``. Replace ``(pow x (S (minus x2 (S x0))))+(1-(pow x (S (minus x2 (S x0)))))`` with R1; [Idtac | Ring]. -Rewrite <- (Rplus_sym R1). -Pattern 1 R1; Rewrite <- Rplus_Or. -Apply Rle_compatibility. +Rewrite <- (Rplus_sym R1); Pattern 1 R1; Rewrite <- Rplus_Or; Apply Rle_compatibility. Left; Apply pow_lt. Apply Rle_lt_trans with k. Elim Hyp; Intros; Assumption. @@ -988,7 +567,6 @@ Apply (tech6 [i:nat](An (plus (S x0) i)) x). Left; Apply Rle_lt_trans with k. Elim Hyp; Intros; Assumption. Elim H3; Intros; Assumption. -2:Replace (plus (S x0) O) with (S x0); [Reflexivity | Ring]. Intro. Cut (n:nat)(ge n x0)->``(An (S n))