aboutsummaryrefslogtreecommitdiffhomepage
path: root/theories
diff options
context:
space:
mode:
authorGravatar Yves Bertot <Yves.Bertot@inria.fr>2017-09-06 08:39:06 +0200
committerGravatar Yves Bertot <Yves.Bertot@inria.fr>2017-09-06 08:39:06 +0200
commit2d137819572c4307b34bfdbdcf4ad0dc9ab240f3 (patch)
tree143870f1d7962715d23927e4d09c25d9a2327f79 /theories
parentdf6ae3d59af8f880a0411217b8e6f0dae0b92133 (diff)
changed statements of Rpower_lt and Rle_power and added
Rlt_Rpower_l and pow_INR. Unfortunately theorems Rpower_lt and Rle_power are named inconsistently, in spite of their similarity.
Diffstat (limited to 'theories')
-rw-r--r--theories/Reals/RIneq.v3
-rw-r--r--theories/Reals/Rpower.v19
2 files changed, 15 insertions, 7 deletions
diff --git a/theories/Reals/RIneq.v b/theories/Reals/RIneq.v
index 7bcd2799a..bc82c3712 100644
--- a/theories/Reals/RIneq.v
+++ b/theories/Reals/RIneq.v
@@ -1611,6 +1611,9 @@ Proof.
Qed.
Hint Resolve mult_INR: real.
+Lemma pow_INR (m n: nat) : INR (m ^ n) = pow (INR m) n.
+Proof. now induction n as [|n IHn];[ | simpl; rewrite mult_INR, IHn]. Qed.
+
(*********)
Lemma lt_0_INR : forall n:nat, (0 < n)%nat -> 0 < INR n.
Proof.
diff --git a/theories/Reals/Rpower.v b/theories/Reals/Rpower.v
index a646104cd..ddf7f568e 100644
--- a/theories/Reals/Rpower.v
+++ b/theories/Reals/Rpower.v
@@ -431,9 +431,9 @@ Proof.
Qed.
Theorem Rpower_lt :
- forall x y z:R, 1 < x -> 0 <= y -> y < z -> x ^R y < x ^R z.
+ forall x y z:R, 1 < x -> y < z -> x ^R y < x ^R z.
Proof.
- intros x y z H H0 H1.
+ intros x y z H H1.
unfold Rpower.
apply exp_increasing.
apply Rmult_lt_compat_r.
@@ -488,9 +488,9 @@ Proof.
Qed.
Theorem Rle_Rpower :
- forall e n m:R, 1 < e -> 0 <= n -> n <= m -> e ^R n <= e ^R m.
+ forall e n m:R, 1 < e -> n <= m -> e ^R n <= e ^R m.
Proof.
- intros e n m H H0 H1; case H1.
+ intros e n m H H1; case H1.
intros H2; left; apply Rpower_lt; assumption.
intros H2; rewrite H2; right; reflexivity.
Qed.
@@ -707,13 +707,18 @@ intros x y z x0 y0; unfold Rpower.
rewrite <- exp_plus, ln_mult, Rmult_plus_distr_l; auto.
Qed.
-Lemma Rle_Rpower_l a b c: 0 <= c -> 0 < a <= b -> Rpower a c <= Rpower b c.
+Lemma Rlt_Rpower_l a b c: 0 < c -> 0 < a < b -> a ^R c < b ^R c.
+Proof.
+intros c0 [a0 ab]; apply exp_increasing.
+now apply Rmult_lt_compat_l; auto; apply ln_increasing; fourier.
+Qed.
+
+Lemma Rle_Rpower_l a b c: 0 <= c -> 0 < a <= b -> a ^R c <= b ^R c.
Proof.
intros [c0 | c0];
[ | intros; rewrite <- c0, !Rpower_O; [apply Rle_refl | |] ].
intros [a0 [ab|ab]].
- left; apply exp_increasing.
- now apply Rmult_lt_compat_l; auto; apply ln_increasing; fourier.
+ now apply Rlt_le, Rlt_Rpower_l;[ | split]; fourier.
rewrite ab; apply Rle_refl.
apply Rlt_le_trans with a; tauto.
tauto.