@@ -1322,9 +1322,11 @@ by rewrite deriveM // !derive_val.
13221322Qed .
13231323
13241324Global 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).
13261326Proof .
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.
13281330rewrite exprS; apply: is_derive_eq.
13291331rewrite scalerA -scalerDl mulrCA -[f x * _]exprS.
13301332by 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.
13341336Proof . by case: n => [_|n /derivableP]; [rewrite expr0|]. Qed .
13351337
13361338Lemma 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.
13381340Proof . by move=> /derivableP df; rewrite derive_val. Qed .
13391341
13401342Fact der_inv f x v : f x != 0 -> derivable f x v ->
@@ -1413,14 +1415,14 @@ by apply: derivableM; first exact: derivable_id.
14131415Qed .
14141416
14151417Lemma 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.
14171419Proof .
14181420have /= := @deriveX R R id n x v (@derivable_id _ _ _ _).
14191421by rewrite fctE => ->; rewrite derive_id.
14201422Qed .
14211423
14221424Lemma 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 .
14241426Proof . by rewrite derive1E exp_derive [LHS]mulr1. Qed .
14251427
14261428Lemma EVT_max (R : realType) (f : R -> R) (a b : R) : (* TODO : Filter not infered *)
0 commit comments