diff options
author | Enrico Tassi <gareuselesinge@debian.org> | 2015-01-25 14:43:16 +0100 |
---|---|---|
committer | Enrico Tassi <gareuselesinge@debian.org> | 2015-01-25 14:43:16 +0100 |
commit | f219abfed720305c13875c3c63f9240cf63f78bc (patch) | |
tree | 69d2c026916128fdb50b8d1c0dbf1be451340d30 /theories/Reals/Rfunctions.v | |
parent | 476d60ef0fe0ac015c1e902204cdd7029e10ef0f (diff) | |
parent | cec4741afacd2e80894232850eaf9f9c0e45d6d7 (diff) |
Merge tag 'upstream/8.5_beta1+dfsg'
Upstream version 8.5~beta1+dfsg
Diffstat (limited to 'theories/Reals/Rfunctions.v')
-rw-r--r-- | theories/Reals/Rfunctions.v | 32 |
1 files changed, 21 insertions, 11 deletions
diff --git a/theories/Reals/Rfunctions.v b/theories/Reals/Rfunctions.v index ee8988d8..1c353803 100644 --- a/theories/Reals/Rfunctions.v +++ b/theories/Reals/Rfunctions.v @@ -1,6 +1,6 @@ (************************************************************************) (* v * The Coq Proof Assistant / The Coq Development Team *) -(* <O___,, * INRIA - CNRS - LIX - LRI - PPS - Copyright 1999-2014 *) +(* <O___,, * INRIA - CNRS - LIX - LRI - PPS - Copyright 1999-2015 *) (* \VV/ **************************************************************) (* // * This file is distributed under the terms of the *) (* * GNU Lesser General Public License Version 2.1 *) @@ -489,16 +489,16 @@ Lemma pow_Rabs : forall (x:R) (n:nat), x ^ n <= Rabs x ^ n. Proof. intros; induction n as [| n Hrecn]. right; reflexivity. - simpl; case (Rcase_abs x); intro. + simpl; destruct (Rcase_abs x) as [Hlt|Hle]. apply Rle_trans with (Rabs (x * x ^ n)). apply RRle_abs. rewrite Rabs_mult. apply Rmult_le_compat_l. apply Rabs_pos. - right; symmetry ; apply RPow_abs. - pattern (Rabs x) at 1; rewrite (Rabs_right x r); + right; symmetry; apply RPow_abs. + pattern (Rabs x) at 1; rewrite (Rabs_right x Hle); apply Rmult_le_compat_l. - apply Rge_le; exact r. + apply Rge_le; exact Hle. apply Hrecn. Qed. @@ -520,14 +520,17 @@ Proof. apply Rle_trans with (Rabs y); [ apply Rabs_pos | exact H ]. Qed. +Lemma Rsqr_pow2 : forall x, Rsqr x = x ^ 2. +Proof. +intros; unfold Rsqr; simpl; rewrite Rmult_1_r; reflexivity. +Qed. + + (*******************************) (** * PowerRZ *) (*******************************) (*i Due to L.Thery i*) -Ltac case_eq name := - generalize (eq_refl name); pattern name at -1; case name. - Definition powerRZ (x:R) (n:Z) := match n with | Z0 => 1 @@ -744,10 +747,10 @@ Qed. Lemma R_dist_sym : forall x y:R, R_dist x y = R_dist y x. Proof. unfold R_dist; intros; split_Rabs; try ring. - generalize (Ropp_gt_lt_0_contravar (y - x) r); intro; - rewrite (Ropp_minus_distr y x) in H; generalize (Rlt_asym (x - y) 0 r0); + generalize (Ropp_gt_lt_0_contravar (y - x) Hlt0); intro; + rewrite (Ropp_minus_distr y x) in H; generalize (Rlt_asym (x - y) 0 Hlt); intro; unfold Rgt in H; exfalso; auto. - generalize (minus_Rge y x r); intro; generalize (minus_Rge x y r0); intro; + generalize (minus_Rge y x Hge0); intro; generalize (minus_Rge x y Hge); intro; generalize (Rge_antisym x y H0 H); intro; rewrite H1; ring. Qed. @@ -786,6 +789,13 @@ Proof. ring. Qed. +Lemma R_dist_mult_l : forall a b c, + R_dist (a * b) (a * c) = Rabs a * R_dist b c. +Proof. +unfold R_dist. +intros a b c; rewrite <- Rmult_minus_distr_l, Rabs_mult; reflexivity. +Qed. + (*******************************) (** * Infinite Sum *) (*******************************) |