1
<html xmlns="http://www.w3.org/1999/xhtml">
3
<meta http-equiv="Content-Type" content="text/html; charset="><link rel="stylesheet" href="style.css" type="text/css"><title>Coq.Reals.Ranalysis3</title>
8
<h1>Library Coq.Reals.Ranalysis3</h1>
11
<code class="keyword">Require</code> <code class="keyword">Import</code> Rbase.<br/>
12
<code class="keyword">Require</code> <code class="keyword">Import</code> Rfunctions.<br/>
13
<code class="keyword">Require</code> <code class="keyword">Import</code> Ranalysis1.<br/>
14
<code class="keyword">Require</code> <code class="keyword">Import</code> Ranalysis2. Open <code class="keyword">Local</code> Scope R_scope.<br/>
17
<code class="keyword">Theorem</code> <a name="derivable_pt_lim_div"></a>derivable_pt_lim_div :<br/>
18
forall (f1 f2:<a href="Coq.Reals.Rdefinitions.html#R">R</a> -> <a href="Coq.Reals.Rdefinitions.html#R">R</a>) (x l1 l2:<a href="Coq.Reals.Rdefinitions.html#R">R</a>),<br/>
19
<a href="Coq.Reals.Ranalysis1.html#derivable_pt_lim">derivable_pt_lim</a> f1 x l1 -><br/>
20
<a href="Coq.Reals.Ranalysis1.html#derivable_pt_lim">derivable_pt_lim</a> f2 x l2 -><br/>
21
f2 x <> 0 -><br/>
22
<a href="Coq.Reals.Ranalysis1.html#derivable_pt_lim">derivable_pt_lim</a> (f1 / f2) x ((l1 * f2 x - l2 * f1 x) / <a href="Coq.Reals.RIneq.html#Rsqr">Rsqr</a> (f2 x)).<br/>
24
cut (<a href="Coq.Reals.Ranalysis1.html#derivable_pt">derivable_pt</a> f2 x);<br/>
25
[ intro | unfold derivable_pt in |- *; apply existT with l2; exact H0 ].<br/>
26
assert (H2:= <a href="Coq.Reals.Ranalysis2.html#continuous_neq_0">continuous_neq_0</a> _ _ (<a href="Coq.Reals.Ranalysis1.html#derivable_continuous_pt">derivable_continuous_pt</a> _ _ X) H1).<br/>
27
elim H2; clear H2; intros eps_f2 H2.<br/>
28
unfold div_fct in |- *.<br/>
29
assert (H3:= <a href="Coq.Reals.Ranalysis1.html#derivable_continuous_pt">derivable_continuous_pt</a> _ _ X).<br/>
30
unfold continuity_pt in H3; unfold continue_in in H3; unfold limit1_in in H3;<br/>
31
unfold limit_in in H3; unfold dist in H3.<br/>
32
simpl in H3; unfold R_dist in H3.<br/>
33
elim (H3 (<a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (f2 x) / 2));<br/>
35
| unfold Rdiv in |- *; change (0 < <a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (f2 x) * / 2) in |- *;<br/>
36
apply <a href="Coq.Reals.RIneq.html#Rmult_lt_0_compat">Rmult_lt_0_compat</a>;<br/>
37
[ apply Rabs_pos_lt; assumption | apply Rinv_0_lt_compat; prove_sup0 ] ].<br/>
38
clear H3; intros alp_f2 H3.<br/>
40
(forall x0:<a href="Coq.Reals.Rdefinitions.html#R">R</a>,<br/>
41
<a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (x0 - x) < alp_f2 -> <a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (f2 x0 - f2 x) < <a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (f2 x) / 2).<br/>
43
cut (forall a:<a href="Coq.Reals.Rdefinitions.html#R">R</a>, <a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (a - x) < alp_f2 -> <a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (f2 x) / 2 < <a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (f2 a)).<br/>
46
(forall a:<a href="Coq.Reals.Rdefinitions.html#R">R</a>,<br/>
47
<a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> a < <a href="Coq.Reals.Rbasic_fun.html#Rmin">Rmin</a> eps_f2 alp_f2 -> / <a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (f2 (x + a)) < 2 / <a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (f2 x)).<br/>
49
unfold derivable_pt_lim in |- *; intros.<br/>
50
elim (H (<a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (eps * f2 x / 8)));<br/>
52
| unfold Rdiv in |- *; change (0 < <a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (eps * f2 x * / 8)) in |- *;<br/>
53
apply <a href="Coq.Reals.Rbasic_fun.html#Rabs_pos_lt">Rabs_pos_lt</a>; repeat apply <a href="Coq.Reals.RIneq.html#prod_neq_R0">prod_neq_R0</a>;<br/>
54
[ red in |- *; intro H7; rewrite H7 in H6; elim (Rlt_irrefl _ H6)
56
| apply Rinv_neq_0_compat; discrR ] ].<br/>
57
intros alp_f1d H7.<br/>
58
case (<a href="Coq.Reals.RIneq.html#Req_dec">Req_dec</a> (f1 x) 0); intro.<br/>
59
case (<a href="Coq.Reals.RIneq.html#Req_dec">Req_dec</a> l1 0); intro.<br/>
60
cut (0 < <a href="Coq.Reals.Rbasic_fun.html#Rmin">Rmin</a> eps_f2 (<a href="Coq.Reals.Rbasic_fun.html#Rmin">Rmin</a> alp_f2 alp_f1d));<br/>
62
| repeat apply <a href="Coq.Reals.Ranalysis2.html#Rmin_pos">Rmin_pos</a>;<br/>
63
[ apply (cond_pos eps_f2)
64
| elim H3; intros; assumption
65
| apply (cond_pos alp_f1d) ] ].<br/>
66
exists (<a href="Coq.Reals.RIneq.html#mkposreal">mkposreal</a> (<a href="Coq.Reals.Rbasic_fun.html#Rmin">Rmin</a> eps_f2 (<a href="Coq.Reals.Rbasic_fun.html#Rmin">Rmin</a> alp_f2 alp_f1d)) H10).<br/>
67
simpl in |- *; intros.<br/>
68
assert (H13:= <a href="Coq.Reals.RIneq.html#Rlt_le_trans">Rlt_le_trans</a> _ _ _ H12 (<a href="Coq.Reals.Rbasic_fun.html#Rmin_r">Rmin_r</a> _ _)).<br/>
69
assert (H14:= <a href="Coq.Reals.RIneq.html#Rlt_le_trans">Rlt_le_trans</a> _ _ _ H12 (<a href="Coq.Reals.Rbasic_fun.html#Rmin_l">Rmin_l</a> _ _)).<br/>
70
assert (H15:= <a href="Coq.Reals.RIneq.html#Rlt_le_trans">Rlt_le_trans</a> _ _ _ H13 (<a href="Coq.Reals.Rbasic_fun.html#Rmin_r">Rmin_r</a> _ _)).<br/>
71
assert (H16:= <a href="Coq.Reals.RIneq.html#Rlt_le_trans">Rlt_le_trans</a> _ _ _ H13 (<a href="Coq.Reals.Rbasic_fun.html#Rmin_l">Rmin_l</a> _ _)).<br/>
72
assert (H17:= H7 _ H11 H15).<br/>
73
rewrite <a href="Coq.Reals.Ranalysis2.html#formule">formule</a>; [ idtac | assumption | assumption | apply H2; apply H14 ].<br/>
74
apply <a href="Coq.Reals.RIneq.html#Rle_lt_trans">Rle_lt_trans</a> with<br/>
75
(<a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (/ f2 (x + h) * ((f1 (x + h) - f1 x) / h - l1)) +<br/>
76
<a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (l1 / (f2 x * f2 (x + h)) * (f2 x - f2 (x + h))) +<br/>
77
<a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (f1 x / (f2 x * f2 (x + h)) * ((f2 (x + h) - f2 x) / h - l2)) +<br/>
78
<a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (l2 * f1 x / (<a href="Coq.Reals.RIneq.html#Rsqr">Rsqr</a> (f2 x) * f2 (x + h)) * (f2 (x + h) - f2 x))).<br/>
79
unfold Rminus in |- *.<br/>
81
(<a href="Coq.Reals.Rbasic_fun.html#Rabs_Ropp">Rabs_Ropp</a> (f1 x / (f2 x * f2 (x + h)) * ((f2 (x + h) + - f2 x) / h + - l2)))<br/>
83
apply <a href="Coq.Reals.Ranalysis2.html#Rabs_4">Rabs_4</a>.<br/>
84
repeat rewrite <a href="Coq.Reals.Rbasic_fun.html#Rabs_mult">Rabs_mult</a>.<br/>
85
apply <a href="Coq.Reals.RIneq.html#Rlt_le_trans">Rlt_le_trans</a> with (eps / 4 + eps / 4 + eps / 4 + eps / 4).<br/>
86
cut (<a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (/ f2 (x + h)) * <a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> ((f1 (x + h) - f1 x) / h - l1) < eps / 4).<br/>
87
cut (<a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (l1 / (f2 x * f2 (x + h))) * <a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (f2 x - f2 (x + h)) < eps / 4).<br/>
89
(<a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (f1 x / (f2 x * f2 (x + h))) * <a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> ((f2 (x + h) - f2 x) / h - l2) <<br/>
90
eps / 4).<br/>
92
(<a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (l2 * f1 x / (<a href="Coq.Reals.RIneq.html#Rsqr">Rsqr</a> (f2 x) * f2 (x + h))) * <a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (f2 (x + h) - f2 x) <<br/>
93
eps / 4).<br/>
95
apply <a href="Coq.Reals.Ranalysis2.html#Rlt_4">Rlt_4</a>; assumption.<br/>
97
unfold Rdiv in |- *; repeat rewrite <a href="Coq.Reals.RIneq.html#Rmult_0_r">Rmult_0_r</a> || rewrite <a href="Coq.Reals.RIneq.html#Rmult_0_l">Rmult_0_l</a>.<br/>
98
rewrite <a href="Coq.Reals.Rbasic_fun.html#Rabs_R0">Rabs_R0</a>; rewrite <a href="Coq.Reals.RIneq.html#Rmult_0_l">Rmult_0_l</a>.<br/>
99
apply <a href="Coq.Reals.RIneq.html#Rmult_lt_0_compat">Rmult_lt_0_compat</a>; [ assumption | apply Rinv_0_lt_compat; prove_sup ].<br/>
101
unfold Rdiv in |- *; repeat rewrite <a href="Coq.Reals.RIneq.html#Rmult_0_r">Rmult_0_r</a> || rewrite <a href="Coq.Reals.RIneq.html#Rmult_0_l">Rmult_0_l</a>.<br/>
102
rewrite <a href="Coq.Reals.Rbasic_fun.html#Rabs_R0">Rabs_R0</a>; rewrite <a href="Coq.Reals.RIneq.html#Rmult_0_l">Rmult_0_l</a>.<br/>
103
apply <a href="Coq.Reals.RIneq.html#Rmult_lt_0_compat">Rmult_lt_0_compat</a>; [ assumption | apply Rinv_0_lt_compat; prove_sup ].<br/>
105
unfold Rdiv in |- *; repeat rewrite <a href="Coq.Reals.RIneq.html#Rmult_0_r">Rmult_0_r</a> || rewrite <a href="Coq.Reals.RIneq.html#Rmult_0_l">Rmult_0_l</a>.<br/>
106
rewrite <a href="Coq.Reals.Rbasic_fun.html#Rabs_R0">Rabs_R0</a>; rewrite <a href="Coq.Reals.RIneq.html#Rmult_0_l">Rmult_0_l</a>.<br/>
107
apply <a href="Coq.Reals.RIneq.html#Rmult_lt_0_compat">Rmult_lt_0_compat</a>; [ assumption | apply Rinv_0_lt_compat; prove_sup ].<br/>
108
rewrite <- <a href="Coq.Reals.Rbasic_fun.html#Rabs_mult">Rabs_mult</a>.<br/>
109
apply (<a href="Coq.Reals.Ranalysis2.html#maj_term1">maj_term1</a> x h eps l1 alp_f2 eps_f2 alp_f1d f1 f2);<br/>
110
try assumption || apply H2.<br/>
112
apply <a href="Coq.Reals.Ranalysis2.html#Rmin_2">Rmin_2</a>; assumption.<br/>
113
right; symmetry in |- *; apply <a href="Coq.Reals.Ranalysis2.html#quadruple_var">quadruple_var</a>.<br/>
114
assert (H10:= <a href="Coq.Reals.Ranalysis1.html#derivable_continuous_pt">derivable_continuous_pt</a> _ _ X).<br/>
115
unfold continuity_pt in H10.<br/>
116
unfold continue_in in H10.<br/>
117
unfold limit1_in in H10.<br/>
118
unfold limit_in in H10.<br/>
119
unfold dist in H10.<br/>
121
unfold R_dist in H10.<br/>
122
elim (H10 (<a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (eps * <a href="Coq.Reals.RIneq.html#Rsqr">Rsqr</a> (f2 x) / (8 * l1)))).<br/>
123
clear H10; intros alp_f2t2 H10.<br/>
125
(forall a:<a href="Coq.Reals.Rdefinitions.html#R">R</a>,<br/>
126
<a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> a < alp_f2t2 -><br/>
127
<a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (f2 (x + a) - f2 x) < <a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (eps * <a href="Coq.Reals.RIneq.html#Rsqr">Rsqr</a> (f2 x) / (8 * l1))).<br/>
129
cut (0 < <a href="Coq.Reals.Rbasic_fun.html#Rmin">Rmin</a> (<a href="Coq.Reals.Rbasic_fun.html#Rmin">Rmin</a> eps_f2 alp_f1d) (<a href="Coq.Reals.Rbasic_fun.html#Rmin">Rmin</a> alp_f2 alp_f2t2)).<br/>
131
exists (<a href="Coq.Reals.RIneq.html#mkposreal">mkposreal</a> (<a href="Coq.Reals.Rbasic_fun.html#Rmin">Rmin</a> (<a href="Coq.Reals.Rbasic_fun.html#Rmin">Rmin</a> eps_f2 alp_f1d) (<a href="Coq.Reals.Rbasic_fun.html#Rmin">Rmin</a> alp_f2 alp_f2t2)) H12).<br/>
134
assert (H15:= <a href="Coq.Reals.RIneq.html#Rlt_le_trans">Rlt_le_trans</a> _ _ _ H14 (<a href="Coq.Reals.Rbasic_fun.html#Rmin_r">Rmin_r</a> _ _)).<br/>
135
assert (H16:= <a href="Coq.Reals.RIneq.html#Rlt_le_trans">Rlt_le_trans</a> _ _ _ H14 (<a href="Coq.Reals.Rbasic_fun.html#Rmin_l">Rmin_l</a> _ _)).<br/>
136
assert (H17:= <a href="Coq.Reals.RIneq.html#Rlt_le_trans">Rlt_le_trans</a> _ _ _ H15 (<a href="Coq.Reals.Rbasic_fun.html#Rmin_l">Rmin_l</a> _ _)).<br/>
137
assert (H18:= <a href="Coq.Reals.RIneq.html#Rlt_le_trans">Rlt_le_trans</a> _ _ _ H15 (<a href="Coq.Reals.Rbasic_fun.html#Rmin_r">Rmin_r</a> _ _)).<br/>
138
assert (H19:= <a href="Coq.Reals.RIneq.html#Rlt_le_trans">Rlt_le_trans</a> _ _ _ H16 (<a href="Coq.Reals.Rbasic_fun.html#Rmin_l">Rmin_l</a> _ _)).<br/>
139
assert (H20:= <a href="Coq.Reals.RIneq.html#Rlt_le_trans">Rlt_le_trans</a> _ _ _ H16 (<a href="Coq.Reals.Rbasic_fun.html#Rmin_r">Rmin_r</a> _ _)).<br/>
140
clear H14 H15 H16.<br/>
141
rewrite <a href="Coq.Reals.Ranalysis2.html#formule">formule</a>; try assumption.<br/>
142
apply <a href="Coq.Reals.RIneq.html#Rle_lt_trans">Rle_lt_trans</a> with<br/>
143
(<a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (/ f2 (x + h) * ((f1 (x + h) - f1 x) / h - l1)) +<br/>
144
<a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (l1 / (f2 x * f2 (x + h)) * (f2 x - f2 (x + h))) +<br/>
145
<a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (f1 x / (f2 x * f2 (x + h)) * ((f2 (x + h) - f2 x) / h - l2)) +<br/>
146
<a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (l2 * f1 x / (<a href="Coq.Reals.RIneq.html#Rsqr">Rsqr</a> (f2 x) * f2 (x + h)) * (f2 (x + h) - f2 x))).<br/>
147
unfold Rminus in |- *.<br/>
149
(<a href="Coq.Reals.Rbasic_fun.html#Rabs_Ropp">Rabs_Ropp</a> (f1 x / (f2 x * f2 (x + h)) * ((f2 (x + h) + - f2 x) / h + - l2)))<br/>
151
apply <a href="Coq.Reals.Ranalysis2.html#Rabs_4">Rabs_4</a>.<br/>
152
repeat rewrite <a href="Coq.Reals.Rbasic_fun.html#Rabs_mult">Rabs_mult</a>.<br/>
153
apply <a href="Coq.Reals.RIneq.html#Rlt_le_trans">Rlt_le_trans</a> with (eps / 4 + eps / 4 + eps / 4 + eps / 4).<br/>
154
cut (<a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (/ f2 (x + h)) * <a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> ((f1 (x + h) - f1 x) / h - l1) < eps / 4).<br/>
155
cut (<a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (l1 / (f2 x * f2 (x + h))) * <a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (f2 x - f2 (x + h)) < eps / 4).<br/>
157
(<a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (f1 x / (f2 x * f2 (x + h))) * <a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> ((f2 (x + h) - f2 x) / h - l2) <<br/>
158
eps / 4).<br/>
160
(<a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (l2 * f1 x / (<a href="Coq.Reals.RIneq.html#Rsqr">Rsqr</a> (f2 x) * f2 (x + h))) * <a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (f2 (x + h) - f2 x) <<br/>
161
eps / 4).<br/>
163
apply <a href="Coq.Reals.Ranalysis2.html#Rlt_4">Rlt_4</a>; assumption.<br/>
165
unfold Rdiv in |- *; repeat rewrite <a href="Coq.Reals.RIneq.html#Rmult_0_r">Rmult_0_r</a> || rewrite <a href="Coq.Reals.RIneq.html#Rmult_0_l">Rmult_0_l</a>.<br/>
166
rewrite <a href="Coq.Reals.Rbasic_fun.html#Rabs_R0">Rabs_R0</a>; rewrite <a href="Coq.Reals.RIneq.html#Rmult_0_l">Rmult_0_l</a>.<br/>
167
apply <a href="Coq.Reals.RIneq.html#Rmult_lt_0_compat">Rmult_lt_0_compat</a>; [ assumption | apply Rinv_0_lt_compat; prove_sup ].<br/>
169
unfold Rdiv in |- *; repeat rewrite <a href="Coq.Reals.RIneq.html#Rmult_0_r">Rmult_0_r</a> || rewrite <a href="Coq.Reals.RIneq.html#Rmult_0_l">Rmult_0_l</a>.<br/>
170
rewrite <a href="Coq.Reals.Rbasic_fun.html#Rabs_R0">Rabs_R0</a>; rewrite <a href="Coq.Reals.RIneq.html#Rmult_0_l">Rmult_0_l</a>.<br/>
171
apply <a href="Coq.Reals.RIneq.html#Rmult_lt_0_compat">Rmult_lt_0_compat</a>; [ assumption | apply Rinv_0_lt_compat; prove_sup ].<br/>
172
rewrite <- <a href="Coq.Reals.Rbasic_fun.html#Rabs_mult">Rabs_mult</a>.<br/>
173
apply (<a href="Coq.Reals.Ranalysis2.html#maj_term2">maj_term2</a> x h eps l1 alp_f2 alp_f2t2 eps_f2 f2); try assumption.<br/>
174
apply H2; assumption.<br/>
175
apply <a href="Coq.Reals.Ranalysis2.html#Rmin_2">Rmin_2</a>; assumption.<br/>
176
rewrite <- <a href="Coq.Reals.Rbasic_fun.html#Rabs_mult">Rabs_mult</a>.<br/>
177
apply (<a href="Coq.Reals.Ranalysis2.html#maj_term1">maj_term1</a> x h eps l1 alp_f2 eps_f2 alp_f1d f1 f2); try assumption.<br/>
178
apply H2; assumption.<br/>
179
apply <a href="Coq.Reals.Ranalysis2.html#Rmin_2">Rmin_2</a>; assumption.<br/>
180
right; symmetry in |- *; apply <a href="Coq.Reals.Ranalysis2.html#quadruple_var">quadruple_var</a>.<br/>
181
apply H2; assumption.<br/>
182
repeat apply <a href="Coq.Reals.Ranalysis2.html#Rmin_pos">Rmin_pos</a>.<br/>
183
apply (<a href="Coq.Reals.RIneq.html#cond_pos">cond_pos</a> eps_f2).<br/>
184
apply (<a href="Coq.Reals.RIneq.html#cond_pos">cond_pos</a> alp_f1d).<br/>
185
elim H3; intros; assumption.<br/>
186
elim H10; intros; assumption.<br/>
188
elim H10; intros.<br/>
189
case (<a href="Coq.Reals.RIneq.html#Req_dec">Req_dec</a> a 0); intro.<br/>
190
rewrite H14; rewrite <a href="Coq.Reals.RIneq.html#Rplus_0_r">Rplus_0_r</a>.<br/>
191
unfold Rminus in |- *; rewrite <a href="Coq.Reals.Raxioms.html#Rplus_opp_r">Rplus_opp_r</a>.<br/>
192
rewrite <a href="Coq.Reals.Rbasic_fun.html#Rabs_R0">Rabs_R0</a>.<br/>
193
apply <a href="Coq.Reals.Rbasic_fun.html#Rabs_pos_lt">Rabs_pos_lt</a>.<br/>
194
unfold Rdiv, Rsqr in |- *; repeat rewrite <a href="Coq.Reals.Raxioms.html#Rmult_assoc">Rmult_assoc</a>.<br/>
195
repeat apply <a href="Coq.Reals.RIneq.html#prod_neq_R0">prod_neq_R0</a>; try assumption.<br/>
196
red in |- *; intro; rewrite H15 in H6; elim (<a href="Coq.Reals.RIneq.html#Rlt_irrefl">Rlt_irrefl</a> _ H6).<br/>
197
apply <a href="Coq.Reals.RIneq.html#Rinv_neq_0_compat">Rinv_neq_0_compat</a>; repeat apply <a href="Coq.Reals.RIneq.html#prod_neq_R0">prod_neq_R0</a>; discrR || assumption.<br/>
200
apply <a href="Coq.Reals.Ranalysis2.html#D_x_no_cond">D_x_no_cond</a>; assumption.<br/>
201
replace (x + a - x) with a; [ assumption | ring ].<br/>
202
change (0 < <a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (eps * <a href="Coq.Reals.RIneq.html#Rsqr">Rsqr</a> (f2 x) / (8 * l1))) in |- *.<br/>
203
apply <a href="Coq.Reals.Rbasic_fun.html#Rabs_pos_lt">Rabs_pos_lt</a>; unfold Rdiv, Rsqr in |- *; repeat rewrite <a href="Coq.Reals.Raxioms.html#Rmult_assoc">Rmult_assoc</a>;<br/>
204
repeat apply <a href="Coq.Reals.RIneq.html#prod_neq_R0">prod_neq_R0</a>.<br/>
205
red in |- *; intro; rewrite H11 in H6; elim (<a href="Coq.Reals.RIneq.html#Rlt_irrefl">Rlt_irrefl</a> _ H6).<br/>
208
apply <a href="Coq.Reals.RIneq.html#Rinv_neq_0_compat">Rinv_neq_0_compat</a>; repeat apply <a href="Coq.Reals.RIneq.html#prod_neq_R0">prod_neq_R0</a>;<br/>
209
[ discrR | discrR | discrR | assumption ].<br/>
210
case (<a href="Coq.Reals.RIneq.html#Req_dec">Req_dec</a> l1 0); intro.<br/>
211
case (<a href="Coq.Reals.RIneq.html#Req_dec">Req_dec</a> l2 0); intro.<br/>
212
elim (H0 (<a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (<a href="Coq.Reals.RIneq.html#Rsqr">Rsqr</a> (f2 x) * eps / (8 * f1 x))));<br/>
214
| apply <a href="Coq.Reals.Rbasic_fun.html#Rabs_pos_lt">Rabs_pos_lt</a>; unfold Rdiv, Rsqr in |- *; repeat rewrite <a href="Coq.Reals.Raxioms.html#Rmult_assoc">Rmult_assoc</a>;<br/>
215
repeat apply <a href="Coq.Reals.RIneq.html#prod_neq_R0">prod_neq_R0</a>;<br/>
216
[ assumption
218
| red in |- *; intro; rewrite H11 in H6; elim (Rlt_irrefl _ H6)
219
| apply Rinv_neq_0_compat; repeat apply prod_neq_R0; discrR || assumption ] ].<br/>
220
intros alp_f2d H12.<br/>
221
cut (0 < <a href="Coq.Reals.Rbasic_fun.html#Rmin">Rmin</a> (<a href="Coq.Reals.Rbasic_fun.html#Rmin">Rmin</a> eps_f2 alp_f2) (<a href="Coq.Reals.Rbasic_fun.html#Rmin">Rmin</a> alp_f1d alp_f2d)).<br/>
223
exists (<a href="Coq.Reals.RIneq.html#mkposreal">mkposreal</a> (<a href="Coq.Reals.Rbasic_fun.html#Rmin">Rmin</a> (<a href="Coq.Reals.Rbasic_fun.html#Rmin">Rmin</a> eps_f2 alp_f2) (<a href="Coq.Reals.Rbasic_fun.html#Rmin">Rmin</a> alp_f1d alp_f2d)) H11).<br/>
226
assert (H15:= <a href="Coq.Reals.RIneq.html#Rlt_le_trans">Rlt_le_trans</a> _ _ _ H14 (<a href="Coq.Reals.Rbasic_fun.html#Rmin_l">Rmin_l</a> _ _)).<br/>
227
assert (H16:= <a href="Coq.Reals.RIneq.html#Rlt_le_trans">Rlt_le_trans</a> _ _ _ H14 (<a href="Coq.Reals.Rbasic_fun.html#Rmin_r">Rmin_r</a> _ _)).<br/>
228
assert (H17:= <a href="Coq.Reals.RIneq.html#Rlt_le_trans">Rlt_le_trans</a> _ _ _ H15 (<a href="Coq.Reals.Rbasic_fun.html#Rmin_l">Rmin_l</a> _ _)).<br/>
229
assert (H18:= <a href="Coq.Reals.RIneq.html#Rlt_le_trans">Rlt_le_trans</a> _ _ _ H15 (<a href="Coq.Reals.Rbasic_fun.html#Rmin_r">Rmin_r</a> _ _)).<br/>
230
assert (H19:= <a href="Coq.Reals.RIneq.html#Rlt_le_trans">Rlt_le_trans</a> _ _ _ H16 (<a href="Coq.Reals.Rbasic_fun.html#Rmin_l">Rmin_l</a> _ _)).<br/>
231
assert (H20:= <a href="Coq.Reals.RIneq.html#Rlt_le_trans">Rlt_le_trans</a> _ _ _ H16 (<a href="Coq.Reals.Rbasic_fun.html#Rmin_r">Rmin_r</a> _ _)).<br/>
233
rewrite <a href="Coq.Reals.Ranalysis2.html#formule">formule</a>; try assumption.<br/>
234
apply <a href="Coq.Reals.RIneq.html#Rle_lt_trans">Rle_lt_trans</a> with<br/>
235
(<a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (/ f2 (x + h) * ((f1 (x + h) - f1 x) / h - l1)) +<br/>
236
<a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (l1 / (f2 x * f2 (x + h)) * (f2 x - f2 (x + h))) +<br/>
237
<a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (f1 x / (f2 x * f2 (x + h)) * ((f2 (x + h) - f2 x) / h - l2)) +<br/>
238
<a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (l2 * f1 x / (<a href="Coq.Reals.RIneq.html#Rsqr">Rsqr</a> (f2 x) * f2 (x + h)) * (f2 (x + h) - f2 x))).<br/>
239
unfold Rminus in |- *.<br/>
241
(<a href="Coq.Reals.Rbasic_fun.html#Rabs_Ropp">Rabs_Ropp</a> (f1 x / (f2 x * f2 (x + h)) * ((f2 (x + h) + - f2 x) / h + - l2)))<br/>
243
apply <a href="Coq.Reals.Ranalysis2.html#Rabs_4">Rabs_4</a>.<br/>
244
repeat rewrite <a href="Coq.Reals.Rbasic_fun.html#Rabs_mult">Rabs_mult</a>.<br/>
245
apply <a href="Coq.Reals.RIneq.html#Rlt_le_trans">Rlt_le_trans</a> with (eps / 4 + eps / 4 + eps / 4 + eps / 4).<br/>
246
cut (<a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (/ f2 (x + h)) * <a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> ((f1 (x + h) - f1 x) / h - l1) < eps / 4).<br/>
247
cut (<a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (l1 / (f2 x * f2 (x + h))) * <a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (f2 x - f2 (x + h)) < eps / 4).<br/>
249
(<a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (f1 x / (f2 x * f2 (x + h))) * <a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> ((f2 (x + h) - f2 x) / h - l2) <<br/>
250
eps / 4).<br/>
252
(<a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (l2 * f1 x / (<a href="Coq.Reals.RIneq.html#Rsqr">Rsqr</a> (f2 x) * f2 (x + h))) * <a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (f2 (x + h) - f2 x) <<br/>
253
eps / 4).<br/>
255
apply <a href="Coq.Reals.Ranalysis2.html#Rlt_4">Rlt_4</a>; assumption.<br/>
257
unfold Rdiv in |- *; repeat rewrite <a href="Coq.Reals.RIneq.html#Rmult_0_r">Rmult_0_r</a> || rewrite <a href="Coq.Reals.RIneq.html#Rmult_0_l">Rmult_0_l</a>.<br/>
258
rewrite <a href="Coq.Reals.Rbasic_fun.html#Rabs_R0">Rabs_R0</a>; rewrite <a href="Coq.Reals.RIneq.html#Rmult_0_l">Rmult_0_l</a>.<br/>
259
apply <a href="Coq.Reals.RIneq.html#Rmult_lt_0_compat">Rmult_lt_0_compat</a>; [ assumption | apply Rinv_0_lt_compat; prove_sup ].<br/>
260
rewrite <- <a href="Coq.Reals.Rbasic_fun.html#Rabs_mult">Rabs_mult</a>.<br/>
261
apply (<a href="Coq.Reals.Ranalysis2.html#maj_term3">maj_term3</a> x h eps l2 alp_f2 eps_f2 alp_f2d f1 f2); try assumption.<br/>
262
apply H2; assumption.<br/>
263
apply <a href="Coq.Reals.Ranalysis2.html#Rmin_2">Rmin_2</a>; assumption.<br/>
265
unfold Rdiv in |- *; repeat rewrite <a href="Coq.Reals.RIneq.html#Rmult_0_r">Rmult_0_r</a> || rewrite <a href="Coq.Reals.RIneq.html#Rmult_0_l">Rmult_0_l</a>.<br/>
266
rewrite <a href="Coq.Reals.Rbasic_fun.html#Rabs_R0">Rabs_R0</a>; rewrite <a href="Coq.Reals.RIneq.html#Rmult_0_l">Rmult_0_l</a>.<br/>
267
apply <a href="Coq.Reals.RIneq.html#Rmult_lt_0_compat">Rmult_lt_0_compat</a>; [ assumption | apply Rinv_0_lt_compat; prove_sup ].<br/>
268
rewrite <- <a href="Coq.Reals.Rbasic_fun.html#Rabs_mult">Rabs_mult</a>.<br/>
269
apply (<a href="Coq.Reals.Ranalysis2.html#maj_term1">maj_term1</a> x h eps l1 alp_f2 eps_f2 alp_f1d f1 f2); assumption || idtac.<br/>
270
apply H2; assumption.<br/>
271
apply <a href="Coq.Reals.Ranalysis2.html#Rmin_2">Rmin_2</a>; assumption.<br/>
272
right; symmetry in |- *; apply <a href="Coq.Reals.Ranalysis2.html#quadruple_var">quadruple_var</a>.<br/>
273
apply H2; assumption.<br/>
274
repeat apply <a href="Coq.Reals.Ranalysis2.html#Rmin_pos">Rmin_pos</a>.<br/>
275
apply (<a href="Coq.Reals.RIneq.html#cond_pos">cond_pos</a> eps_f2).<br/>
276
elim H3; intros; assumption.<br/>
277
apply (<a href="Coq.Reals.RIneq.html#cond_pos">cond_pos</a> alp_f1d).<br/>
278
apply (<a href="Coq.Reals.RIneq.html#cond_pos">cond_pos</a> alp_f2d).<br/>
279
elim (H0 (<a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (<a href="Coq.Reals.RIneq.html#Rsqr">Rsqr</a> (f2 x) * eps / (8 * f1 x))));<br/>
281
| apply Rabs_pos_lt; unfold Rsqr, Rdiv in |- *;
282
repeat rewrite Rinv_mult_distr; repeat apply prod_neq_R0;
283
try assumption || discrR ].<br/>
284
intros alp_f2d H11.<br/>
285
assert (H12:= <a href="Coq.Reals.Ranalysis1.html#derivable_continuous_pt">derivable_continuous_pt</a> _ _ X).<br/>
286
unfold continuity_pt in H12.<br/>
287
unfold continue_in in H12.<br/>
288
unfold limit1_in in H12.<br/>
289
unfold limit_in in H12.<br/>
290
unfold dist in H12.<br/>
292
unfold R_dist in H12.<br/>
293
elim (H12 (<a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (<a href="Coq.Reals.RIneq.html#Rsqr">Rsqr</a> (f2 x) * f2 x * eps / (8 * f1 x * l2)))).<br/>
294
intros alp_f2c H13.<br/>
295
cut (0 < <a href="Coq.Reals.Rbasic_fun.html#Rmin">Rmin</a> (<a href="Coq.Reals.Rbasic_fun.html#Rmin">Rmin</a> eps_f2 alp_f2) (<a href="Coq.Reals.Rbasic_fun.html#Rmin">Rmin</a> alp_f1d (<a href="Coq.Reals.Rbasic_fun.html#Rmin">Rmin</a> alp_f2d alp_f2c))).<br/>
298
(<a href="Coq.Reals.RIneq.html#mkposreal">mkposreal</a> (<a href="Coq.Reals.Rbasic_fun.html#Rmin">Rmin</a> (<a href="Coq.Reals.Rbasic_fun.html#Rmin">Rmin</a> eps_f2 alp_f2) (<a href="Coq.Reals.Rbasic_fun.html#Rmin">Rmin</a> alp_f1d (<a href="Coq.Reals.Rbasic_fun.html#Rmin">Rmin</a> alp_f2d alp_f2c)))<br/>
299
H14).<br/>
300
simpl in |- *; intros.<br/>
301
assert (H17:= <a href="Coq.Reals.RIneq.html#Rlt_le_trans">Rlt_le_trans</a> _ _ _ H16 (<a href="Coq.Reals.Rbasic_fun.html#Rmin_l">Rmin_l</a> _ _)).<br/>
302
assert (H18:= <a href="Coq.Reals.RIneq.html#Rlt_le_trans">Rlt_le_trans</a> _ _ _ H16 (<a href="Coq.Reals.Rbasic_fun.html#Rmin_r">Rmin_r</a> _ _)).<br/>
303
assert (H19:= <a href="Coq.Reals.RIneq.html#Rlt_le_trans">Rlt_le_trans</a> _ _ _ H18 (<a href="Coq.Reals.Rbasic_fun.html#Rmin_r">Rmin_r</a> _ _)).<br/>
304
assert (H20:= <a href="Coq.Reals.RIneq.html#Rlt_le_trans">Rlt_le_trans</a> _ _ _ H19 (<a href="Coq.Reals.Rbasic_fun.html#Rmin_l">Rmin_l</a> _ _)).<br/>
305
assert (H21:= <a href="Coq.Reals.RIneq.html#Rlt_le_trans">Rlt_le_trans</a> _ _ _ H19 (<a href="Coq.Reals.Rbasic_fun.html#Rmin_r">Rmin_r</a> _ _)).<br/>
306
assert (H22:= <a href="Coq.Reals.RIneq.html#Rlt_le_trans">Rlt_le_trans</a> _ _ _ H18 (<a href="Coq.Reals.Rbasic_fun.html#Rmin_l">Rmin_l</a> _ _)).<br/>
307
assert (H23:= <a href="Coq.Reals.RIneq.html#Rlt_le_trans">Rlt_le_trans</a> _ _ _ H17 (<a href="Coq.Reals.Rbasic_fun.html#Rmin_l">Rmin_l</a> _ _)).<br/>
308
assert (H24:= <a href="Coq.Reals.RIneq.html#Rlt_le_trans">Rlt_le_trans</a> _ _ _ H17 (<a href="Coq.Reals.Rbasic_fun.html#Rmin_r">Rmin_r</a> _ _)).<br/>
309
clear H16 H17 H18 H19.<br/>
311
(forall a:<a href="Coq.Reals.Rdefinitions.html#R">R</a>,<br/>
312
<a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> a < alp_f2c -><br/>
313
<a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (f2 (x + a) - f2 x) <<br/>
314
<a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (<a href="Coq.Reals.RIneq.html#Rsqr">Rsqr</a> (f2 x) * f2 x * eps / (8 * f1 x * l2))).<br/>
316
rewrite <a href="Coq.Reals.Ranalysis2.html#formule">formule</a>; try assumption.<br/>
317
apply <a href="Coq.Reals.RIneq.html#Rle_lt_trans">Rle_lt_trans</a> with<br/>
318
(<a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (/ f2 (x + h) * ((f1 (x + h) - f1 x) / h - l1)) +<br/>
319
<a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (l1 / (f2 x * f2 (x + h)) * (f2 x - f2 (x + h))) +<br/>
320
<a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (f1 x / (f2 x * f2 (x + h)) * ((f2 (x + h) - f2 x) / h - l2)) +<br/>
321
<a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (l2 * f1 x / (<a href="Coq.Reals.RIneq.html#Rsqr">Rsqr</a> (f2 x) * f2 (x + h)) * (f2 (x + h) - f2 x))).<br/>
322
unfold Rminus in |- *.<br/>
324
(<a href="Coq.Reals.Rbasic_fun.html#Rabs_Ropp">Rabs_Ropp</a> (f1 x / (f2 x * f2 (x + h)) * ((f2 (x + h) + - f2 x) / h + - l2)))<br/>
326
apply <a href="Coq.Reals.Ranalysis2.html#Rabs_4">Rabs_4</a>.<br/>
327
repeat rewrite <a href="Coq.Reals.Rbasic_fun.html#Rabs_mult">Rabs_mult</a>.<br/>
328
apply <a href="Coq.Reals.RIneq.html#Rlt_le_trans">Rlt_le_trans</a> with (eps / 4 + eps / 4 + eps / 4 + eps / 4).<br/>
329
cut (<a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (/ f2 (x + h)) * <a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> ((f1 (x + h) - f1 x) / h - l1) < eps / 4).<br/>
330
cut (<a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (l1 / (f2 x * f2 (x + h))) * <a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (f2 x - f2 (x + h)) < eps / 4).<br/>
332
(<a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (f1 x / (f2 x * f2 (x + h))) * <a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> ((f2 (x + h) - f2 x) / h - l2) <<br/>
333
eps / 4).<br/>
335
(<a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (l2 * f1 x / (<a href="Coq.Reals.RIneq.html#Rsqr">Rsqr</a> (f2 x) * f2 (x + h))) * <a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (f2 (x + h) - f2 x) <<br/>
336
eps / 4).<br/>
338
apply <a href="Coq.Reals.Ranalysis2.html#Rlt_4">Rlt_4</a>; assumption.<br/>
339
rewrite <- <a href="Coq.Reals.Rbasic_fun.html#Rabs_mult">Rabs_mult</a>.<br/>
340
apply (<a href="Coq.Reals.Ranalysis2.html#maj_term4">maj_term4</a> x h eps l2 alp_f2 alp_f2c eps_f2 f1 f2); try assumption.<br/>
341
apply H2; assumption.<br/>
342
apply <a href="Coq.Reals.Ranalysis2.html#Rmin_2">Rmin_2</a>; assumption.<br/>
343
rewrite <- <a href="Coq.Reals.Rbasic_fun.html#Rabs_mult">Rabs_mult</a>.<br/>
344
apply (<a href="Coq.Reals.Ranalysis2.html#maj_term3">maj_term3</a> x h eps l2 alp_f2 eps_f2 alp_f2d f1 f2); try assumption.<br/>
345
apply H2; assumption.<br/>
346
apply <a href="Coq.Reals.Ranalysis2.html#Rmin_2">Rmin_2</a>; assumption.<br/>
348
unfold Rdiv in |- *; repeat rewrite <a href="Coq.Reals.RIneq.html#Rmult_0_r">Rmult_0_r</a> || rewrite <a href="Coq.Reals.RIneq.html#Rmult_0_l">Rmult_0_l</a>.<br/>
349
rewrite <a href="Coq.Reals.Rbasic_fun.html#Rabs_R0">Rabs_R0</a>; rewrite <a href="Coq.Reals.RIneq.html#Rmult_0_l">Rmult_0_l</a>.<br/>
350
apply <a href="Coq.Reals.RIneq.html#Rmult_lt_0_compat">Rmult_lt_0_compat</a>; [ assumption | apply Rinv_0_lt_compat; prove_sup ].<br/>
351
rewrite <- <a href="Coq.Reals.Rbasic_fun.html#Rabs_mult">Rabs_mult</a>.<br/>
352
apply (<a href="Coq.Reals.Ranalysis2.html#maj_term1">maj_term1</a> x h eps l1 alp_f2 eps_f2 alp_f1d f1 f2); try assumption.<br/>
353
apply H2; assumption.<br/>
354
apply <a href="Coq.Reals.Ranalysis2.html#Rmin_2">Rmin_2</a>; assumption.<br/>
355
right; symmetry in |- *; apply <a href="Coq.Reals.Ranalysis2.html#quadruple_var">quadruple_var</a>.<br/>
356
apply H2; assumption.<br/>
358
case (<a href="Coq.Reals.RIneq.html#Req_dec">Req_dec</a> a 0); intro.<br/>
359
rewrite H17; rewrite <a href="Coq.Reals.RIneq.html#Rplus_0_r">Rplus_0_r</a>.<br/>
360
unfold Rminus in |- *; rewrite <a href="Coq.Reals.Raxioms.html#Rplus_opp_r">Rplus_opp_r</a>; rewrite <a href="Coq.Reals.Rbasic_fun.html#Rabs_R0">Rabs_R0</a>.<br/>
361
apply <a href="Coq.Reals.Rbasic_fun.html#Rabs_pos_lt">Rabs_pos_lt</a>.<br/>
362
unfold Rdiv, Rsqr in |- *.<br/>
363
repeat rewrite <a href="Coq.Reals.RIneq.html#Rinv_mult_distr">Rinv_mult_distr</a>; try assumption.<br/>
364
repeat apply <a href="Coq.Reals.RIneq.html#prod_neq_R0">prod_neq_R0</a>; try assumption.<br/>
365
red in |- *; intro H18; rewrite H18 in H6; elim (<a href="Coq.Reals.RIneq.html#Rlt_irrefl">Rlt_irrefl</a> _ H6). <br/>
366
apply <a href="Coq.Reals.RIneq.html#Rinv_neq_0_compat">Rinv_neq_0_compat</a>; discrR.<br/>
367
apply <a href="Coq.Reals.RIneq.html#Rinv_neq_0_compat">Rinv_neq_0_compat</a>; discrR.<br/>
368
apply <a href="Coq.Reals.RIneq.html#Rinv_neq_0_compat">Rinv_neq_0_compat</a>; discrR.<br/>
369
apply <a href="Coq.Reals.RIneq.html#Rinv_neq_0_compat">Rinv_neq_0_compat</a>; assumption.<br/>
370
apply <a href="Coq.Reals.RIneq.html#Rinv_neq_0_compat">Rinv_neq_0_compat</a>; assumption.<br/>
376
apply <a href="Coq.Reals.RIneq.html#prod_neq_R0">prod_neq_R0</a>; [ discrR | assumption ].<br/>
377
elim H13; intros.<br/>
380
apply <a href="Coq.Reals.Ranalysis2.html#D_x_no_cond">D_x_no_cond</a>; assumption.<br/>
381
replace (x + a - x) with a; [ assumption | ring ].<br/>
382
repeat apply <a href="Coq.Reals.Ranalysis2.html#Rmin_pos">Rmin_pos</a>.<br/>
383
apply (<a href="Coq.Reals.RIneq.html#cond_pos">cond_pos</a> eps_f2).<br/>
384
elim H3; intros; assumption.<br/>
385
apply (<a href="Coq.Reals.RIneq.html#cond_pos">cond_pos</a> alp_f1d).<br/>
386
apply (<a href="Coq.Reals.RIneq.html#cond_pos">cond_pos</a> alp_f2d).<br/>
387
elim H13; intros; assumption.<br/>
388
change (0 < <a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (<a href="Coq.Reals.RIneq.html#Rsqr">Rsqr</a> (f2 x) * f2 x * eps / (8 * f1 x * l2))) in |- *.<br/>
389
apply <a href="Coq.Reals.Rbasic_fun.html#Rabs_pos_lt">Rabs_pos_lt</a>.<br/>
390
unfold Rsqr, Rdiv in |- *.<br/>
391
repeat rewrite <a href="Coq.Reals.RIneq.html#Rinv_mult_distr">Rinv_mult_distr</a>; try assumption || discrR.<br/>
392
repeat apply <a href="Coq.Reals.RIneq.html#prod_neq_R0">prod_neq_R0</a>; try assumption.<br/>
393
red in |- *; intro H13; rewrite H13 in H6; elim (<a href="Coq.Reals.RIneq.html#Rlt_irrefl">Rlt_irrefl</a> _ H6). <br/>
394
apply <a href="Coq.Reals.RIneq.html#Rinv_neq_0_compat">Rinv_neq_0_compat</a>; discrR.<br/>
395
apply <a href="Coq.Reals.RIneq.html#Rinv_neq_0_compat">Rinv_neq_0_compat</a>; discrR.<br/>
396
apply <a href="Coq.Reals.RIneq.html#Rinv_neq_0_compat">Rinv_neq_0_compat</a>; discrR.<br/>
397
apply <a href="Coq.Reals.RIneq.html#Rinv_neq_0_compat">Rinv_neq_0_compat</a>; assumption.<br/>
398
apply <a href="Coq.Reals.RIneq.html#Rinv_neq_0_compat">Rinv_neq_0_compat</a>; assumption.<br/>
399
apply <a href="Coq.Reals.RIneq.html#prod_neq_R0">prod_neq_R0</a>; [ discrR | assumption ].<br/>
400
red in |- *; intro H11; rewrite H11 in H6; elim (<a href="Coq.Reals.RIneq.html#Rlt_irrefl">Rlt_irrefl</a> _ H6). <br/>
401
apply <a href="Coq.Reals.RIneq.html#Rinv_neq_0_compat">Rinv_neq_0_compat</a>; discrR.<br/>
402
apply <a href="Coq.Reals.RIneq.html#Rinv_neq_0_compat">Rinv_neq_0_compat</a>; discrR.<br/>
403
apply <a href="Coq.Reals.RIneq.html#Rinv_neq_0_compat">Rinv_neq_0_compat</a>; discrR.<br/>
404
apply <a href="Coq.Reals.RIneq.html#Rinv_neq_0_compat">Rinv_neq_0_compat</a>; assumption.<br/>
405
case (<a href="Coq.Reals.RIneq.html#Req_dec">Req_dec</a> l2 0); intro.<br/>
406
assert (H11:= <a href="Coq.Reals.Ranalysis1.html#derivable_continuous_pt">derivable_continuous_pt</a> _ _ X).<br/>
407
unfold continuity_pt in H11.<br/>
408
unfold continue_in in H11.<br/>
409
unfold limit1_in in H11.<br/>
410
unfold limit_in in H11.<br/>
411
unfold dist in H11.<br/>
413
unfold R_dist in H11.<br/>
414
elim (H11 (<a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (eps * <a href="Coq.Reals.RIneq.html#Rsqr">Rsqr</a> (f2 x) / (8 * l1)))).<br/>
415
clear H11; intros alp_f2t2 H11.<br/>
416
elim (H0 (<a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (<a href="Coq.Reals.RIneq.html#Rsqr">Rsqr</a> (f2 x) * eps / (8 * f1 x)))).<br/>
417
intros alp_f2d H12.<br/>
418
cut (0 < <a href="Coq.Reals.Rbasic_fun.html#Rmin">Rmin</a> (<a href="Coq.Reals.Rbasic_fun.html#Rmin">Rmin</a> eps_f2 alp_f2) (<a href="Coq.Reals.Rbasic_fun.html#Rmin">Rmin</a> alp_f1d (<a href="Coq.Reals.Rbasic_fun.html#Rmin">Rmin</a> alp_f2d alp_f2t2))).<br/>
421
(<a href="Coq.Reals.RIneq.html#mkposreal">mkposreal</a><br/>
422
(<a href="Coq.Reals.Rbasic_fun.html#Rmin">Rmin</a> (<a href="Coq.Reals.Rbasic_fun.html#Rmin">Rmin</a> eps_f2 alp_f2) (<a href="Coq.Reals.Rbasic_fun.html#Rmin">Rmin</a> alp_f1d (<a href="Coq.Reals.Rbasic_fun.html#Rmin">Rmin</a> alp_f2d alp_f2t2))) H13).<br/>
426
(forall a:<a href="Coq.Reals.Rdefinitions.html#R">R</a>,<br/>
427
<a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> a < alp_f2t2 -><br/>
428
<a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (f2 (x + a) - f2 x) < <a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (eps * <a href="Coq.Reals.RIneq.html#Rsqr">Rsqr</a> (f2 x) / (8 * l1))).<br/>
430
assert (H17:= <a href="Coq.Reals.RIneq.html#Rlt_le_trans">Rlt_le_trans</a> _ _ _ H15 (<a href="Coq.Reals.Rbasic_fun.html#Rmin_l">Rmin_l</a> _ _)).<br/>
431
assert (H18:= <a href="Coq.Reals.RIneq.html#Rlt_le_trans">Rlt_le_trans</a> _ _ _ H15 (<a href="Coq.Reals.Rbasic_fun.html#Rmin_r">Rmin_r</a> _ _)).<br/>
432
assert (H19:= <a href="Coq.Reals.RIneq.html#Rlt_le_trans">Rlt_le_trans</a> _ _ _ H17 (<a href="Coq.Reals.Rbasic_fun.html#Rmin_r">Rmin_r</a> _ _)).<br/>
433
assert (H20:= <a href="Coq.Reals.RIneq.html#Rlt_le_trans">Rlt_le_trans</a> _ _ _ H17 (<a href="Coq.Reals.Rbasic_fun.html#Rmin_l">Rmin_l</a> _ _)).<br/>
434
assert (H21:= <a href="Coq.Reals.RIneq.html#Rlt_le_trans">Rlt_le_trans</a> _ _ _ H18 (<a href="Coq.Reals.Rbasic_fun.html#Rmin_r">Rmin_r</a> _ _)).<br/>
435
assert (H22:= <a href="Coq.Reals.RIneq.html#Rlt_le_trans">Rlt_le_trans</a> _ _ _ H18 (<a href="Coq.Reals.Rbasic_fun.html#Rmin_l">Rmin_l</a> _ _)).<br/>
436
assert (H23:= <a href="Coq.Reals.RIneq.html#Rlt_le_trans">Rlt_le_trans</a> _ _ _ H21 (<a href="Coq.Reals.Rbasic_fun.html#Rmin_l">Rmin_l</a> _ _)).<br/>
437
assert (H24:= <a href="Coq.Reals.RIneq.html#Rlt_le_trans">Rlt_le_trans</a> _ _ _ H21 (<a href="Coq.Reals.Rbasic_fun.html#Rmin_r">Rmin_r</a> _ _)).<br/>
438
clear H15 H17 H18 H21.<br/>
439
rewrite <a href="Coq.Reals.Ranalysis2.html#formule">formule</a>; try assumption.<br/>
440
apply <a href="Coq.Reals.RIneq.html#Rle_lt_trans">Rle_lt_trans</a> with<br/>
441
(<a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (/ f2 (x + h) * ((f1 (x + h) - f1 x) / h - l1)) +<br/>
442
<a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (l1 / (f2 x * f2 (x + h)) * (f2 x - f2 (x + h))) +<br/>
443
<a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (f1 x / (f2 x * f2 (x + h)) * ((f2 (x + h) - f2 x) / h - l2)) +<br/>
444
<a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (l2 * f1 x / (<a href="Coq.Reals.RIneq.html#Rsqr">Rsqr</a> (f2 x) * f2 (x + h)) * (f2 (x + h) - f2 x))).<br/>
445
unfold Rminus in |- *.<br/>
447
(<a href="Coq.Reals.Rbasic_fun.html#Rabs_Ropp">Rabs_Ropp</a> (f1 x / (f2 x * f2 (x + h)) * ((f2 (x + h) + - f2 x) / h + - l2)))<br/>
449
apply <a href="Coq.Reals.Ranalysis2.html#Rabs_4">Rabs_4</a>.<br/>
450
repeat rewrite <a href="Coq.Reals.Rbasic_fun.html#Rabs_mult">Rabs_mult</a>.<br/>
451
apply <a href="Coq.Reals.RIneq.html#Rlt_le_trans">Rlt_le_trans</a> with (eps / 4 + eps / 4 + eps / 4 + eps / 4).<br/>
452
cut (<a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (/ f2 (x + h)) * <a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> ((f1 (x + h) - f1 x) / h - l1) < eps / 4).<br/>
453
cut (<a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (l1 / (f2 x * f2 (x + h))) * <a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (f2 x - f2 (x + h)) < eps / 4).<br/>
455
(<a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (f1 x / (f2 x * f2 (x + h))) * <a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> ((f2 (x + h) - f2 x) / h - l2) <<br/>
456
eps / 4).<br/>
458
(<a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (l2 * f1 x / (<a href="Coq.Reals.RIneq.html#Rsqr">Rsqr</a> (f2 x) * f2 (x + h))) * <a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (f2 (x + h) - f2 x) <<br/>
459
eps / 4).<br/>
461
apply <a href="Coq.Reals.Ranalysis2.html#Rlt_4">Rlt_4</a>; assumption.<br/>
463
unfold Rdiv in |- *; repeat rewrite <a href="Coq.Reals.RIneq.html#Rmult_0_r">Rmult_0_r</a> || rewrite <a href="Coq.Reals.RIneq.html#Rmult_0_l">Rmult_0_l</a>.<br/>
464
rewrite <a href="Coq.Reals.Rbasic_fun.html#Rabs_R0">Rabs_R0</a>; rewrite <a href="Coq.Reals.RIneq.html#Rmult_0_l">Rmult_0_l</a>.<br/>
465
apply <a href="Coq.Reals.RIneq.html#Rmult_lt_0_compat">Rmult_lt_0_compat</a>; [ assumption | apply Rinv_0_lt_compat; prove_sup ].<br/>
466
rewrite <- <a href="Coq.Reals.Rbasic_fun.html#Rabs_mult">Rabs_mult</a>.<br/>
467
apply (<a href="Coq.Reals.Ranalysis2.html#maj_term3">maj_term3</a> x h eps l2 alp_f2 eps_f2 alp_f2d f1 f2); try assumption.<br/>
468
apply H2; assumption.<br/>
469
apply <a href="Coq.Reals.Ranalysis2.html#Rmin_2">Rmin_2</a>; assumption.<br/>
470
rewrite <- <a href="Coq.Reals.Rbasic_fun.html#Rabs_mult">Rabs_mult</a>.<br/>
471
apply (<a href="Coq.Reals.Ranalysis2.html#maj_term2">maj_term2</a> x h eps l1 alp_f2 alp_f2t2 eps_f2 f2); try assumption.<br/>
472
apply H2; assumption.<br/>
473
apply <a href="Coq.Reals.Ranalysis2.html#Rmin_2">Rmin_2</a>; assumption.<br/>
474
rewrite <- <a href="Coq.Reals.Rbasic_fun.html#Rabs_mult">Rabs_mult</a>.<br/>
475
apply (<a href="Coq.Reals.Ranalysis2.html#maj_term1">maj_term1</a> x h eps l1 alp_f2 eps_f2 alp_f1d f1 f2); try assumption.<br/>
476
apply H2; assumption.<br/>
477
apply <a href="Coq.Reals.Ranalysis2.html#Rmin_2">Rmin_2</a>; assumption.<br/>
478
right; symmetry in |- *; apply <a href="Coq.Reals.Ranalysis2.html#quadruple_var">quadruple_var</a>.<br/>
479
apply H2; assumption.<br/>
481
case (<a href="Coq.Reals.RIneq.html#Req_dec">Req_dec</a> a 0); intro.<br/>
482
rewrite H17; rewrite <a href="Coq.Reals.RIneq.html#Rplus_0_r">Rplus_0_r</a>; unfold Rminus in |- *; rewrite <a href="Coq.Reals.Raxioms.html#Rplus_opp_r">Rplus_opp_r</a>;<br/>
483
rewrite <a href="Coq.Reals.Rbasic_fun.html#Rabs_R0">Rabs_R0</a>.<br/>
484
apply <a href="Coq.Reals.Rbasic_fun.html#Rabs_pos_lt">Rabs_pos_lt</a>.<br/>
485
unfold Rdiv in |- *; rewrite <a href="Coq.Reals.RIneq.html#Rinv_mult_distr">Rinv_mult_distr</a>; try discrR || assumption.<br/>
486
unfold Rsqr in |- *.<br/>
487
repeat apply <a href="Coq.Reals.RIneq.html#prod_neq_R0">prod_neq_R0</a>;<br/>
488
assumption ||<br/>
489
(apply <a href="Coq.Reals.RIneq.html#Rinv_neq_0_compat">Rinv_neq_0_compat</a>; assumption) ||<br/>
490
(apply <a href="Coq.Reals.RIneq.html#Rinv_neq_0_compat">Rinv_neq_0_compat</a>; discrR) ||<br/>
491
(red in |- *; intro H18; rewrite H18 in H6; elim (<a href="Coq.Reals.RIneq.html#Rlt_irrefl">Rlt_irrefl</a> _ H6)).<br/>
492
elim H11; intros.<br/>
495
apply <a href="Coq.Reals.Ranalysis2.html#D_x_no_cond">D_x_no_cond</a>; assumption.<br/>
496
replace (x + a - x) with a; [ assumption | ring ].<br/>
497
repeat apply <a href="Coq.Reals.Ranalysis2.html#Rmin_pos">Rmin_pos</a>.<br/>
498
apply (<a href="Coq.Reals.RIneq.html#cond_pos">cond_pos</a> eps_f2).<br/>
499
elim H3; intros; assumption.<br/>
500
apply (<a href="Coq.Reals.RIneq.html#cond_pos">cond_pos</a> alp_f1d). <br/>
501
apply (<a href="Coq.Reals.RIneq.html#cond_pos">cond_pos</a> alp_f2d).<br/>
502
elim H11; intros; assumption.<br/>
503
apply <a href="Coq.Reals.Rbasic_fun.html#Rabs_pos_lt">Rabs_pos_lt</a>.<br/>
504
unfold Rdiv, Rsqr in |- *; rewrite <a href="Coq.Reals.RIneq.html#Rinv_mult_distr">Rinv_mult_distr</a>; try discrR || assumption.<br/>
505
repeat apply <a href="Coq.Reals.RIneq.html#prod_neq_R0">prod_neq_R0</a>;<br/>
506
assumption ||<br/>
507
(apply <a href="Coq.Reals.RIneq.html#Rinv_neq_0_compat">Rinv_neq_0_compat</a>; assumption) ||<br/>
508
(apply <a href="Coq.Reals.RIneq.html#Rinv_neq_0_compat">Rinv_neq_0_compat</a>; discrR) ||<br/>
509
(red in |- *; intro H12; rewrite H12 in H6; elim (<a href="Coq.Reals.RIneq.html#Rlt_irrefl">Rlt_irrefl</a> _ H6)).<br/>
510
change (0 < <a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (eps * <a href="Coq.Reals.RIneq.html#Rsqr">Rsqr</a> (f2 x) / (8 * l1))) in |- *.<br/>
511
apply <a href="Coq.Reals.Rbasic_fun.html#Rabs_pos_lt">Rabs_pos_lt</a>.<br/>
512
unfold Rdiv, Rsqr in |- *; rewrite <a href="Coq.Reals.RIneq.html#Rinv_mult_distr">Rinv_mult_distr</a>; try discrR || assumption.<br/>
513
repeat apply <a href="Coq.Reals.RIneq.html#prod_neq_R0">prod_neq_R0</a>;<br/>
514
assumption ||<br/>
515
(apply <a href="Coq.Reals.RIneq.html#Rinv_neq_0_compat">Rinv_neq_0_compat</a>; assumption) ||<br/>
516
(apply <a href="Coq.Reals.RIneq.html#Rinv_neq_0_compat">Rinv_neq_0_compat</a>; discrR) ||<br/>
517
(red in |- *; intro H12; rewrite H12 in H6; elim (<a href="Coq.Reals.RIneq.html#Rlt_irrefl">Rlt_irrefl</a> _ H6)).<br/>
518
elim (H0 (<a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (<a href="Coq.Reals.RIneq.html#Rsqr">Rsqr</a> (f2 x) * eps / (8 * f1 x)))).<br/>
519
intros alp_f2d H11.<br/>
520
assert (H12:= <a href="Coq.Reals.Ranalysis1.html#derivable_continuous_pt">derivable_continuous_pt</a> _ _ X).<br/>
521
unfold continuity_pt in H12.<br/>
522
unfold continue_in in H12.<br/>
523
unfold limit1_in in H12.<br/>
524
unfold limit_in in H12.<br/>
525
unfold dist in H12.<br/>
527
unfold R_dist in H12.<br/>
528
elim (H12 (<a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (<a href="Coq.Reals.RIneq.html#Rsqr">Rsqr</a> (f2 x) * f2 x * eps / (8 * f1 x * l2)))).<br/>
529
intros alp_f2c H13.<br/>
530
elim (H12 (<a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (eps * <a href="Coq.Reals.RIneq.html#Rsqr">Rsqr</a> (f2 x) / (8 * l1)))).<br/>
531
intros alp_f2t2 H14.<br/>
534
<a href="Coq.Reals.Rbasic_fun.html#Rmin">Rmin</a> (<a href="Coq.Reals.Rbasic_fun.html#Rmin">Rmin</a> (<a href="Coq.Reals.Rbasic_fun.html#Rmin">Rmin</a> eps_f2 alp_f2) (<a href="Coq.Reals.Rbasic_fun.html#Rmin">Rmin</a> alp_f1d alp_f2d))<br/>
535
(<a href="Coq.Reals.Rbasic_fun.html#Rmin">Rmin</a> alp_f2c alp_f2t2)).<br/>
538
(<a href="Coq.Reals.RIneq.html#mkposreal">mkposreal</a><br/>
539
(<a href="Coq.Reals.Rbasic_fun.html#Rmin">Rmin</a> (<a href="Coq.Reals.Rbasic_fun.html#Rmin">Rmin</a> (<a href="Coq.Reals.Rbasic_fun.html#Rmin">Rmin</a> eps_f2 alp_f2) (<a href="Coq.Reals.Rbasic_fun.html#Rmin">Rmin</a> alp_f1d alp_f2d))<br/>
540
(<a href="Coq.Reals.Rbasic_fun.html#Rmin">Rmin</a> alp_f2c alp_f2t2)) H15).<br/>
543
assert (H18:= <a href="Coq.Reals.RIneq.html#Rlt_le_trans">Rlt_le_trans</a> _ _ _ H17 (<a href="Coq.Reals.Rbasic_fun.html#Rmin_l">Rmin_l</a> _ _)).<br/>
544
assert (H19:= <a href="Coq.Reals.RIneq.html#Rlt_le_trans">Rlt_le_trans</a> _ _ _ H17 (<a href="Coq.Reals.Rbasic_fun.html#Rmin_r">Rmin_r</a> _ _)).<br/>
545
assert (H20:= <a href="Coq.Reals.RIneq.html#Rlt_le_trans">Rlt_le_trans</a> _ _ _ H18 (<a href="Coq.Reals.Rbasic_fun.html#Rmin_l">Rmin_l</a> _ _)).<br/>
546
assert (H21:= <a href="Coq.Reals.RIneq.html#Rlt_le_trans">Rlt_le_trans</a> _ _ _ H18 (<a href="Coq.Reals.Rbasic_fun.html#Rmin_r">Rmin_r</a> _ _)).<br/>
547
assert (H22:= <a href="Coq.Reals.RIneq.html#Rlt_le_trans">Rlt_le_trans</a> _ _ _ H19 (<a href="Coq.Reals.Rbasic_fun.html#Rmin_l">Rmin_l</a> _ _)).<br/>
548
assert (H23:= <a href="Coq.Reals.RIneq.html#Rlt_le_trans">Rlt_le_trans</a> _ _ _ H19 (<a href="Coq.Reals.Rbasic_fun.html#Rmin_r">Rmin_r</a> _ _)).<br/>
549
assert (H24:= <a href="Coq.Reals.RIneq.html#Rlt_le_trans">Rlt_le_trans</a> _ _ _ H20 (<a href="Coq.Reals.Rbasic_fun.html#Rmin_l">Rmin_l</a> _ _)).<br/>
550
assert (H25:= <a href="Coq.Reals.RIneq.html#Rlt_le_trans">Rlt_le_trans</a> _ _ _ H20 (<a href="Coq.Reals.Rbasic_fun.html#Rmin_r">Rmin_r</a> _ _)).<br/>
551
assert (H26:= <a href="Coq.Reals.RIneq.html#Rlt_le_trans">Rlt_le_trans</a> _ _ _ H21 (<a href="Coq.Reals.Rbasic_fun.html#Rmin_l">Rmin_l</a> _ _)).<br/>
552
assert (H27:= <a href="Coq.Reals.RIneq.html#Rlt_le_trans">Rlt_le_trans</a> _ _ _ H21 (<a href="Coq.Reals.Rbasic_fun.html#Rmin_r">Rmin_r</a> _ _)).<br/>
553
clear H17 H18 H19 H20 H21.<br/>
555
(forall a:<a href="Coq.Reals.Rdefinitions.html#R">R</a>,<br/>
556
<a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> a < alp_f2t2 -><br/>
557
<a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (f2 (x + a) - f2 x) < <a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (eps * <a href="Coq.Reals.RIneq.html#Rsqr">Rsqr</a> (f2 x) / (8 * l1))).<br/>
559
(forall a:<a href="Coq.Reals.Rdefinitions.html#R">R</a>,<br/>
560
<a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> a < alp_f2c -><br/>
561
<a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (f2 (x + a) - f2 x) <<br/>
562
<a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (<a href="Coq.Reals.RIneq.html#Rsqr">Rsqr</a> (f2 x) * f2 x * eps / (8 * f1 x * l2))).<br/>
564
rewrite <a href="Coq.Reals.Ranalysis2.html#formule">formule</a>; try assumption.<br/>
565
apply <a href="Coq.Reals.RIneq.html#Rle_lt_trans">Rle_lt_trans</a> with<br/>
566
(<a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (/ f2 (x + h) * ((f1 (x + h) - f1 x) / h - l1)) +<br/>
567
<a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (l1 / (f2 x * f2 (x + h)) * (f2 x - f2 (x + h))) +<br/>
568
<a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (f1 x / (f2 x * f2 (x + h)) * ((f2 (x + h) - f2 x) / h - l2)) +<br/>
569
<a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (l2 * f1 x / (<a href="Coq.Reals.RIneq.html#Rsqr">Rsqr</a> (f2 x) * f2 (x + h)) * (f2 (x + h) - f2 x))).<br/>
570
unfold Rminus in |- *.<br/>
572
(<a href="Coq.Reals.Rbasic_fun.html#Rabs_Ropp">Rabs_Ropp</a> (f1 x / (f2 x * f2 (x + h)) * ((f2 (x + h) + - f2 x) / h + - l2)))<br/>
574
apply <a href="Coq.Reals.Ranalysis2.html#Rabs_4">Rabs_4</a>.<br/>
575
repeat rewrite <a href="Coq.Reals.Rbasic_fun.html#Rabs_mult">Rabs_mult</a>.<br/>
576
apply <a href="Coq.Reals.RIneq.html#Rlt_le_trans">Rlt_le_trans</a> with (eps / 4 + eps / 4 + eps / 4 + eps / 4).<br/>
577
cut (<a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (/ f2 (x + h)) * <a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> ((f1 (x + h) - f1 x) / h - l1) < eps / 4).<br/>
578
cut (<a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (l1 / (f2 x * f2 (x + h))) * <a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (f2 x - f2 (x + h)) < eps / 4).<br/>
580
(<a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (f1 x / (f2 x * f2 (x + h))) * <a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> ((f2 (x + h) - f2 x) / h - l2) <<br/>
581
eps / 4).<br/>
583
(<a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (l2 * f1 x / (<a href="Coq.Reals.RIneq.html#Rsqr">Rsqr</a> (f2 x) * f2 (x + h))) * <a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (f2 (x + h) - f2 x) <<br/>
584
eps / 4).<br/>
586
apply <a href="Coq.Reals.Ranalysis2.html#Rlt_4">Rlt_4</a>; assumption.<br/>
587
rewrite <- <a href="Coq.Reals.Rbasic_fun.html#Rabs_mult">Rabs_mult</a>.<br/>
588
apply (<a href="Coq.Reals.Ranalysis2.html#maj_term4">maj_term4</a> x h eps l2 alp_f2 alp_f2c eps_f2 f1 f2); try assumption.<br/>
589
apply H2; assumption.<br/>
590
apply <a href="Coq.Reals.Ranalysis2.html#Rmin_2">Rmin_2</a>; assumption.<br/>
591
rewrite <- <a href="Coq.Reals.Rbasic_fun.html#Rabs_mult">Rabs_mult</a>.<br/>
592
apply (<a href="Coq.Reals.Ranalysis2.html#maj_term3">maj_term3</a> x h eps l2 alp_f2 eps_f2 alp_f2d f1 f2); try assumption.<br/>
593
apply H2; assumption.<br/>
594
apply <a href="Coq.Reals.Ranalysis2.html#Rmin_2">Rmin_2</a>; assumption.<br/>
595
rewrite <- <a href="Coq.Reals.Rbasic_fun.html#Rabs_mult">Rabs_mult</a>.<br/>
596
apply (<a href="Coq.Reals.Ranalysis2.html#maj_term2">maj_term2</a> x h eps l1 alp_f2 alp_f2t2 eps_f2 f2); try assumption.<br/>
597
apply H2; assumption.<br/>
598
apply <a href="Coq.Reals.Ranalysis2.html#Rmin_2">Rmin_2</a>; assumption.<br/>
599
rewrite <- <a href="Coq.Reals.Rbasic_fun.html#Rabs_mult">Rabs_mult</a>.<br/>
600
apply (<a href="Coq.Reals.Ranalysis2.html#maj_term1">maj_term1</a> x h eps l1 alp_f2 eps_f2 alp_f1d f1 f2); try assumption.<br/>
601
apply H2; assumption.<br/>
602
apply <a href="Coq.Reals.Ranalysis2.html#Rmin_2">Rmin_2</a>; assumption.<br/>
603
right; symmetry in |- *; apply <a href="Coq.Reals.Ranalysis2.html#quadruple_var">quadruple_var</a>.<br/>
604
apply H2; assumption.<br/>
606
case (<a href="Coq.Reals.RIneq.html#Req_dec">Req_dec</a> a 0); intro.<br/>
607
rewrite H18; rewrite <a href="Coq.Reals.RIneq.html#Rplus_0_r">Rplus_0_r</a>; unfold Rminus in |- *; rewrite <a href="Coq.Reals.Raxioms.html#Rplus_opp_r">Rplus_opp_r</a>;<br/>
608
rewrite <a href="Coq.Reals.Rbasic_fun.html#Rabs_R0">Rabs_R0</a>; apply <a href="Coq.Reals.Rbasic_fun.html#Rabs_pos_lt">Rabs_pos_lt</a>.<br/>
609
unfold Rdiv, Rsqr in |- *; rewrite <a href="Coq.Reals.RIneq.html#Rinv_mult_distr">Rinv_mult_distr</a>.<br/>
610
repeat apply <a href="Coq.Reals.RIneq.html#prod_neq_R0">prod_neq_R0</a>;<br/>
611
assumption ||<br/>
612
(apply <a href="Coq.Reals.RIneq.html#Rinv_neq_0_compat">Rinv_neq_0_compat</a>; assumption) ||<br/>
613
(apply <a href="Coq.Reals.RIneq.html#Rinv_neq_0_compat">Rinv_neq_0_compat</a>; discrR) ||<br/>
614
(red in |- *; intro H28; rewrite H28 in H6; elim (<a href="Coq.Reals.RIneq.html#Rlt_irrefl">Rlt_irrefl</a> _ H6)).<br/>
615
apply <a href="Coq.Reals.RIneq.html#prod_neq_R0">prod_neq_R0</a>; [ discrR | assumption ].<br/>
616
apply <a href="Coq.Reals.RIneq.html#prod_neq_R0">prod_neq_R0</a>; [ discrR | assumption ].<br/>
618
elim H13; intros.<br/>
621
apply <a href="Coq.Reals.Ranalysis2.html#D_x_no_cond">D_x_no_cond</a>; assumption.<br/>
622
replace (x + a - x) with a; [ assumption | ring ].<br/>
624
case (<a href="Coq.Reals.RIneq.html#Req_dec">Req_dec</a> a 0); intro.<br/>
625
rewrite H18; rewrite <a href="Coq.Reals.RIneq.html#Rplus_0_r">Rplus_0_r</a>; unfold Rminus in |- *; rewrite <a href="Coq.Reals.Raxioms.html#Rplus_opp_r">Rplus_opp_r</a>;<br/>
626
rewrite <a href="Coq.Reals.Rbasic_fun.html#Rabs_R0">Rabs_R0</a>; apply <a href="Coq.Reals.Rbasic_fun.html#Rabs_pos_lt">Rabs_pos_lt</a>.<br/>
627
unfold Rdiv, Rsqr in |- *; rewrite <a href="Coq.Reals.RIneq.html#Rinv_mult_distr">Rinv_mult_distr</a>.<br/>
628
repeat apply <a href="Coq.Reals.RIneq.html#prod_neq_R0">prod_neq_R0</a>;<br/>
629
assumption ||<br/>
630
(apply <a href="Coq.Reals.RIneq.html#Rinv_neq_0_compat">Rinv_neq_0_compat</a>; assumption) ||<br/>
631
(apply <a href="Coq.Reals.RIneq.html#Rinv_neq_0_compat">Rinv_neq_0_compat</a>; discrR) ||<br/>
632
(red in |- *; intro H28; rewrite H28 in H6; elim (<a href="Coq.Reals.RIneq.html#Rlt_irrefl">Rlt_irrefl</a> _ H6)).<br/>
635
elim H14; intros.<br/>
638
unfold D_x, no_cond in |- *; split.<br/>
640
apply <a href="Coq.Reals.RIneq.html#Rminus_not_eq_right">Rminus_not_eq_right</a>.<br/>
641
replace (x + a - x) with a; [ assumption | ring ].<br/>
642
replace (x + a - x) with a; [ assumption | ring ].<br/>
643
repeat apply <a href="Coq.Reals.Ranalysis2.html#Rmin_pos">Rmin_pos</a>.<br/>
644
apply (<a href="Coq.Reals.RIneq.html#cond_pos">cond_pos</a> eps_f2).<br/>
645
elim H3; intros; assumption.<br/>
646
apply (<a href="Coq.Reals.RIneq.html#cond_pos">cond_pos</a> alp_f1d).<br/>
647
apply (<a href="Coq.Reals.RIneq.html#cond_pos">cond_pos</a> alp_f2d).<br/>
648
elim H13; intros; assumption.<br/>
649
elim H14; intros; assumption.<br/>
650
change (0 < <a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (eps * <a href="Coq.Reals.RIneq.html#Rsqr">Rsqr</a> (f2 x) / (8 * l1))) in |- *; apply <a href="Coq.Reals.Rbasic_fun.html#Rabs_pos_lt">Rabs_pos_lt</a>.<br/>
651
unfold Rdiv, Rsqr in |- *; rewrite <a href="Coq.Reals.RIneq.html#Rinv_mult_distr">Rinv_mult_distr</a>; try discrR || assumption.<br/>
652
repeat apply <a href="Coq.Reals.RIneq.html#prod_neq_R0">prod_neq_R0</a>;<br/>
653
assumption ||<br/>
654
(apply <a href="Coq.Reals.RIneq.html#Rinv_neq_0_compat">Rinv_neq_0_compat</a>; assumption) ||<br/>
655
(apply <a href="Coq.Reals.RIneq.html#Rinv_neq_0_compat">Rinv_neq_0_compat</a>; discrR) ||<br/>
656
(red in |- *; intro H14; rewrite H14 in H6; elim (<a href="Coq.Reals.RIneq.html#Rlt_irrefl">Rlt_irrefl</a> _ H6)).<br/>
657
change (0 < <a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (<a href="Coq.Reals.RIneq.html#Rsqr">Rsqr</a> (f2 x) * f2 x * eps / (8 * f1 x * l2))) in |- *;<br/>
658
apply <a href="Coq.Reals.Rbasic_fun.html#Rabs_pos_lt">Rabs_pos_lt</a>.<br/>
659
unfold Rdiv, Rsqr in |- *; rewrite <a href="Coq.Reals.RIneq.html#Rinv_mult_distr">Rinv_mult_distr</a>.<br/>
660
repeat apply <a href="Coq.Reals.RIneq.html#prod_neq_R0">prod_neq_R0</a>;<br/>
661
assumption ||<br/>
662
(apply <a href="Coq.Reals.RIneq.html#Rinv_neq_0_compat">Rinv_neq_0_compat</a>; assumption) ||<br/>
663
(apply <a href="Coq.Reals.RIneq.html#Rinv_neq_0_compat">Rinv_neq_0_compat</a>; discrR) ||<br/>
664
(red in |- *; intro H13; rewrite H13 in H6; elim (<a href="Coq.Reals.RIneq.html#Rlt_irrefl">Rlt_irrefl</a> _ H6)).<br/>
665
apply <a href="Coq.Reals.RIneq.html#prod_neq_R0">prod_neq_R0</a>; [ discrR | assumption ].<br/>
666
apply <a href="Coq.Reals.RIneq.html#prod_neq_R0">prod_neq_R0</a>; [ discrR | assumption ].<br/>
668
apply <a href="Coq.Reals.Rbasic_fun.html#Rabs_pos_lt">Rabs_pos_lt</a>.<br/>
669
unfold Rdiv, Rsqr in |- *; rewrite <a href="Coq.Reals.RIneq.html#Rinv_mult_distr">Rinv_mult_distr</a>;<br/>
670
[ idtac | discrR | assumption ].<br/>
671
repeat apply <a href="Coq.Reals.RIneq.html#prod_neq_R0">prod_neq_R0</a>;<br/>
672
assumption ||<br/>
673
(apply <a href="Coq.Reals.RIneq.html#Rinv_neq_0_compat">Rinv_neq_0_compat</a>; assumption) ||<br/>
674
(apply <a href="Coq.Reals.RIneq.html#Rinv_neq_0_compat">Rinv_neq_0_compat</a>; discrR) ||<br/>
675
(red in |- *; intro H11; rewrite H11 in H6; elim (<a href="Coq.Reals.RIneq.html#Rlt_irrefl">Rlt_irrefl</a> _ H6)).<br/>
677
unfold Rdiv in |- *.<br/>
678
apply <a href="Coq.Reals.RIneq.html#Rmult_lt_reg_l">Rmult_lt_reg_l</a> with (<a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (f2 (x + a))).<br/>
679
apply <a href="Coq.Reals.Rbasic_fun.html#Rabs_pos_lt">Rabs_pos_lt</a>; apply H2.<br/>
680
apply <a href="Coq.Reals.RIneq.html#Rlt_le_trans">Rlt_le_trans</a> with (<a href="Coq.Reals.Rbasic_fun.html#Rmin">Rmin</a> eps_f2 alp_f2).<br/>
682
apply <a href="Coq.Reals.Rbasic_fun.html#Rmin_l">Rmin_l</a>.<br/>
683
rewrite <- <a href="Coq.Reals.RIneq.html#Rinv_r_sym">Rinv_r_sym</a>.<br/>
684
apply <a href="Coq.Reals.RIneq.html#Rmult_lt_reg_l">Rmult_lt_reg_l</a> with (<a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (f2 x)).<br/>
685
apply <a href="Coq.Reals.Rbasic_fun.html#Rabs_pos_lt">Rabs_pos_lt</a>; assumption.<br/>
686
rewrite <a href="Coq.Reals.RIneq.html#Rmult_1_r">Rmult_1_r</a>.<br/>
687
rewrite (<a href="Coq.Reals.Raxioms.html#Rmult_comm">Rmult_comm</a> (<a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (f2 x))).<br/>
688
repeat rewrite <a href="Coq.Reals.Raxioms.html#Rmult_assoc">Rmult_assoc</a>.<br/>
689
rewrite <- <a href="Coq.Reals.RIneq.html#Rinv_l_sym">Rinv_l_sym</a>.<br/>
690
rewrite <a href="Coq.Reals.RIneq.html#Rmult_1_r">Rmult_1_r</a>.<br/>
691
apply <a href="Coq.Reals.RIneq.html#Rmult_lt_reg_l">Rmult_lt_reg_l</a> with (/ 2).<br/>
692
apply <a href="Coq.Reals.RIneq.html#Rinv_0_lt_compat">Rinv_0_lt_compat</a>; prove_sup0.<br/>
693
repeat rewrite (<a href="Coq.Reals.Raxioms.html#Rmult_comm">Rmult_comm</a> (/ 2)).<br/>
694
repeat rewrite <a href="Coq.Reals.Raxioms.html#Rmult_assoc">Rmult_assoc</a>.<br/>
695
rewrite <- <a href="Coq.Reals.RIneq.html#Rinv_r_sym">Rinv_r_sym</a>.<br/>
696
rewrite <a href="Coq.Reals.RIneq.html#Rmult_1_r">Rmult_1_r</a>.<br/>
697
unfold Rdiv in H5; apply H5.<br/>
698
replace (x + a - x) with a.<br/>
699
assert (H7:= <a href="Coq.Reals.RIneq.html#Rlt_le_trans">Rlt_le_trans</a> _ _ _ H6 (<a href="Coq.Reals.Rbasic_fun.html#Rmin_r">Rmin_r</a> _ _)); assumption.<br/>
702
apply <a href="Coq.Reals.Rbasic_fun.html#Rabs_no_R0">Rabs_no_R0</a>; assumption.<br/>
703
apply <a href="Coq.Reals.Rbasic_fun.html#Rabs_no_R0">Rabs_no_R0</a>; apply H2.<br/>
704
assert (H7:= <a href="Coq.Reals.RIneq.html#Rlt_le_trans">Rlt_le_trans</a> _ _ _ H6 (<a href="Coq.Reals.Rbasic_fun.html#Rmin_l">Rmin_l</a> _ _)); assumption.<br/>
706
assert (H6:= H4 a H5).<br/>
707
rewrite <- (<a href="Coq.Reals.Rbasic_fun.html#Rabs_Ropp">Rabs_Ropp</a> (f2 a - f2 x)) in H6.<br/>
708
rewrite <a href="Coq.Reals.RIneq.html#Ropp_minus_distr">Ropp_minus_distr</a> in H6.<br/>
709
assert (H7:= <a href="Coq.Reals.RIneq.html#Rle_lt_trans">Rle_lt_trans</a> _ _ _ (<a href="Coq.Reals.Rbasic_fun.html#Rabs_triang_inv">Rabs_triang_inv</a> _ _) H6).<br/>
710
apply <a href="Coq.Reals.RIneq.html#Rplus_lt_reg_r">Rplus_lt_reg_r</a> with (- <a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (f2 a) + <a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (f2 x) / 2).<br/>
711
rewrite <a href="Coq.Reals.Raxioms.html#Rplus_assoc">Rplus_assoc</a>.<br/>
712
rewrite <- <a href="Coq.Reals.RIneq.html#double_var">double_var</a>.<br/>
713
do 2 rewrite (<a href="Coq.Reals.Raxioms.html#Rplus_comm">Rplus_comm</a> (- <a href="Coq.Reals.Rbasic_fun.html#Rabs">Rabs</a> (f2 a))).<br/>
714
rewrite <a href="Coq.Reals.Raxioms.html#Rplus_assoc">Rplus_assoc</a>; rewrite <a href="Coq.Reals.RIneq.html#Rplus_opp_l">Rplus_opp_l</a>; rewrite <a href="Coq.Reals.RIneq.html#Rplus_0_r">Rplus_0_r</a>.<br/>
715
unfold Rminus in H7; assumption.<br/>
717
case (<a href="Coq.Reals.RIneq.html#Req_dec">Req_dec</a> x x0); intro.<br/>
718
rewrite <- H5; unfold Rminus in |- *; rewrite <a href="Coq.Reals.Raxioms.html#Rplus_opp_r">Rplus_opp_r</a>; rewrite <a href="Coq.Reals.Rbasic_fun.html#Rabs_R0">Rabs_R0</a>;<br/>
719
unfold Rdiv in |- *; apply <a href="Coq.Reals.RIneq.html#Rmult_lt_0_compat">Rmult_lt_0_compat</a>;<br/>
720
[ apply Rabs_pos_lt; assumption | apply Rinv_0_lt_compat; prove_sup0 ].<br/>
721
elim H3; intros.<br/>
724
unfold D_x, no_cond in |- *; split.<br/>
728
<code class="keyword">Qed</code>.<br/>
731
<code class="keyword">Lemma</code> <a name="derivable_pt_div"></a>derivable_pt_div :<br/>
732
forall (f1 f2:<a href="Coq.Reals.Rdefinitions.html#R">R</a> -> <a href="Coq.Reals.Rdefinitions.html#R">R</a>) (x:<a href="Coq.Reals.Rdefinitions.html#R">R</a>),<br/>
733
<a href="Coq.Reals.Ranalysis1.html#derivable_pt">derivable_pt</a> f1 x -><br/>
734
<a href="Coq.Reals.Ranalysis1.html#derivable_pt">derivable_pt</a> f2 x -> f2 x <> 0 -> <a href="Coq.Reals.Ranalysis1.html#derivable_pt">derivable_pt</a> (f1 / f2) x.<br/>
735
unfold derivable_pt in |- *.<br/>
738
elim X0; intros.<br/>
739
apply <a href="Coq.Init.Specif.html#existT">existT</a> with ((x0 * f2 x - x1 * f1 x) / <a href="Coq.Reals.RIneq.html#Rsqr">Rsqr</a> (f2 x)).<br/>
740
apply <a href="Coq.Reals.Ranalysis3.html#derivable_pt_lim_div">derivable_pt_lim_div</a>; assumption.<br/>
741
<code class="keyword">Qed</code>.<br/>
744
<code class="keyword">Lemma</code> <a name="derivable_div"></a>derivable_div :<br/>
745
forall f1 f2:<a href="Coq.Reals.Rdefinitions.html#R">R</a> -> <a href="Coq.Reals.Rdefinitions.html#R">R</a>,<br/>
746
<a href="Coq.Reals.Ranalysis1.html#derivable">derivable</a> f1 -><br/>
747
<a href="Coq.Reals.Ranalysis1.html#derivable">derivable</a> f2 -> (forall x:<a href="Coq.Reals.Rdefinitions.html#R">R</a>, f2 x <> 0) -> <a href="Coq.Reals.Ranalysis1.html#derivable">derivable</a> (f1 / f2).<br/>
748
unfold derivable in |- *; intros.<br/>
749
apply (<a href="Coq.Reals.Ranalysis3.html#derivable_pt_div">derivable_pt_div</a> _ _ _ (X x) (X0 x) (H x)).<br/>
750
<code class="keyword">Qed</code>.<br/>
753
<code class="keyword">Lemma</code> <a name="derive_pt_div"></a>derive_pt_div :<br/>
754
forall (f1 f2:<a href="Coq.Reals.Rdefinitions.html#R">R</a> -> <a href="Coq.Reals.Rdefinitions.html#R">R</a>) (x:<a href="Coq.Reals.Rdefinitions.html#R">R</a>) (pr1:<a href="Coq.Reals.Ranalysis1.html#derivable_pt">derivable_pt</a> f1 x) <br/>
755
(pr2:<a href="Coq.Reals.Ranalysis1.html#derivable_pt">derivable_pt</a> f2 x) (na:f2 x <> 0),<br/>
756
<a href="Coq.Reals.Ranalysis1.html#derive_pt">derive_pt</a> (f1 / f2) x (<a href="Coq.Reals.Ranalysis3.html#derivable_pt_div">derivable_pt_div</a> _ _ _ pr1 pr2 na) =<br/>
757
(<a href="Coq.Reals.Ranalysis1.html#derive_pt">derive_pt</a> f1 x pr1 * f2 x - <a href="Coq.Reals.Ranalysis1.html#derive_pt">derive_pt</a> f2 x pr2 * f1 x) / <a href="Coq.Reals.RIneq.html#Rsqr">Rsqr</a> (f2 x).<br/>
759
assert (H:= <a href="Coq.Reals.Ranalysis1.html#derivable_derive">derivable_derive</a> f1 x pr1).<br/>
760
assert (H0:= <a href="Coq.Reals.Ranalysis1.html#derivable_derive">derivable_derive</a> f2 x pr2).<br/>
762
(H1:= <a href="Coq.Reals.Ranalysis1.html#derivable_derive">derivable_derive</a> (f1 / f2)%F x (<a href="Coq.Reals.Ranalysis3.html#derivable_pt_div">derivable_pt_div</a> _ _ _ pr1 pr2 na)).<br/>
763
elim H; clear H; intros l1 H.<br/>
764
elim H0; clear H0; intros l2 H0.<br/>
765
elim H1; clear H1; intros l H1.<br/>
766
rewrite H; rewrite H0; apply <a href="Coq.Reals.Ranalysis1.html#derive_pt_eq_0">derive_pt_eq_0</a>.<br/>
767
assert (H3:= <a href="Coq.Init.Specif.html#projT2">projT2</a> pr1).<br/>
768
unfold derive_pt in H; rewrite H in H3.<br/>
769
assert (H4:= <a href="Coq.Init.Specif.html#projT2">projT2</a> pr2).<br/>
770
unfold derive_pt in H0; rewrite H0 in H4.<br/>
771
apply <a href="Coq.Reals.Ranalysis3.html#derivable_pt_lim_div">derivable_pt_lim_div</a>; assumption.<br/>
772
<code class="keyword">Qed</code>.</code>
773
<hr/><a href="index.html">Index</a><hr/><font size="-1">This page has been generated by <a href="http://www.lri.fr/~filliatr/coqdoc/">coqdoc</a></font>
b'\\ No newline at end of file'