@@ -1322,9 +1322,11 @@ by rewrite deriveM // !derive_val.
1322
1322
Qed .
1323
1323
1324
1324
Global Instance is_deriveX f n x v (df : R) :
1325
- is_derive x v f df -> is_derive x v (f ^+ n.+1 ) ((n.+1 %:R * f x ^+n ) *: df).
1325
+ is_derive x v f df -> is_derive x v (f ^+ n) ((n%:R * f x ^+ n.-1 ) *: df).
1326
1326
Proof .
1327
- move=> dfx; elim: n => [|n ihn]; first by rewrite expr1 expr0 mulr1 scale1r.
1327
+ case: n => [fdf|n dfx].
1328
+ by rewrite expr0 mul0r scale0r; exact: is_derive_cst.
1329
+ elim: n => [|n ihn]; first by rewrite expr1 expr0 mulr1 scale1r.
1328
1330
rewrite exprS; apply: is_derive_eq.
1329
1331
rewrite scalerA -scalerDl mulrCA -[f x * _]exprS.
1330
1332
by rewrite [in LHS]mulr_natl exprfctE -mulrSr mulr_natl.
@@ -1334,7 +1336,7 @@ Lemma derivableX f n x v : derivable f x v -> derivable (f ^+ n) x v.
1334
1336
Proof . by case: n => [_|n /derivableP]; [rewrite expr0|]. Qed .
1335
1337
1336
1338
Lemma deriveX f n x v : derivable f x v ->
1337
- 'D_v (f ^+ n.+1 ) x = (n.+1 %:R * f x ^+ n) *: 'D_v f x.
1339
+ 'D_v (f ^+ n) x = (n%:R * f x ^+ n.-1 ) *: 'D_v f x.
1338
1340
Proof . by move=> /derivableP df; rewrite derive_val. Qed .
1339
1341
1340
1342
Fact der_inv f x v : f x != 0 -> derivable f x v ->
@@ -1413,14 +1415,14 @@ by apply: derivableM; first exact: derivable_id.
1413
1415
Qed .
1414
1416
1415
1417
Lemma exp_derive {R : numFieldType} n x v :
1416
- 'D_v (@GRing.exp R ^~ n.+1 ) x = n.+1 %:R *: x ^+ n *: v.
1418
+ 'D_v (@GRing.exp R ^~ n) x = n%:R *: x ^+ n.-1 *: v.
1417
1419
Proof .
1418
1420
have /= := @deriveX R R id n x v (@derivable_id _ _ _ _).
1419
1421
by rewrite fctE => ->; rewrite derive_id.
1420
1422
Qed .
1421
1423
1422
1424
Lemma exp_derive1 {R : numFieldType} n x :
1423
- (@GRing.exp R ^~ n.+1 )^`() x = n.+1 %:R *: x ^+ n.
1425
+ (@GRing.exp R ^~ n)^`() x = n%:R *: x ^+ n.-1 .
1424
1426
Proof . by rewrite derive1E exp_derive [LHS]mulr1. Qed .
1425
1427
1426
1428
Lemma EVT_max (R : realType) (f : R -> R) (a b : R) : (* TODO : Filter not infered *)
0 commit comments