equal
deleted
inserted
replaced
1346 Derivative of inverse |
1346 Derivative of inverse |
1347 -------------------------------------------------------------*) |
1347 -------------------------------------------------------------*) |
1348 Goal "[| DERIV f x :> d; f(x) \\<noteq> 0 |] \ |
1348 Goal "[| DERIV f x :> d; f(x) \\<noteq> 0 |] \ |
1349 \ ==> DERIV (%x. inverse(f x)) x :> (- (d * inverse(f(x) ^ Suc (Suc 0))))"; |
1349 \ ==> DERIV (%x. inverse(f x)) x :> (- (d * inverse(f(x) ^ Suc (Suc 0))))"; |
1350 by (rtac (real_mult_commute RS subst) 1); |
1350 by (rtac (real_mult_commute RS subst) 1); |
1351 by (asm_simp_tac (HOL_ss addsimps [minus_mult_left, realpow_inverse]) 1); |
1351 by (asm_simp_tac (HOL_ss addsimps [minus_mult_left, power_inverse]) 1); |
1352 by (fold_goals_tac [o_def]); |
1352 by (fold_goals_tac [o_def]); |
1353 by (blast_tac (claset() addSIs [DERIV_chain,DERIV_inverse]) 1); |
1353 by (blast_tac (claset() addSIs [DERIV_chain,DERIV_inverse]) 1); |
1354 qed "DERIV_inverse_fun"; |
1354 qed "DERIV_inverse_fun"; |
1355 |
1355 |
1356 Goal "[| NSDERIV f x :> d; f(x) \\<noteq> 0 |] \ |
1356 Goal "[| NSDERIV f x :> d; f(x) \\<noteq> 0 |] \ |
1367 by (dres_inst_tac [("f","g")] DERIV_inverse_fun 1); |
1367 by (dres_inst_tac [("f","g")] DERIV_inverse_fun 1); |
1368 by (dtac DERIV_mult 2); |
1368 by (dtac DERIV_mult 2); |
1369 by (REPEAT(assume_tac 1)); |
1369 by (REPEAT(assume_tac 1)); |
1370 by (asm_full_simp_tac |
1370 by (asm_full_simp_tac |
1371 (simpset() addsimps [real_divide_def, right_distrib, |
1371 (simpset() addsimps [real_divide_def, right_distrib, |
1372 realpow_inverse,minus_mult_left] @ mult_ac |
1372 power_inverse,minus_mult_left] @ mult_ac |
1373 delsimps [realpow_Suc, minus_mult_right RS sym, minus_mult_left RS sym]) 1); |
1373 delsimps [realpow_Suc, minus_mult_right RS sym, minus_mult_left RS sym]) 1); |
1374 qed "DERIV_quotient"; |
1374 qed "DERIV_quotient"; |
1375 |
1375 |
1376 Goal "[| NSDERIV f x :> d; DERIV g x :> e; g(x) \\<noteq> 0 |] \ |
1376 Goal "[| NSDERIV f x :> d; DERIV g x :> e; g(x) \\<noteq> 0 |] \ |
1377 \ ==> NSDERIV (%y. f(y) / (g y)) x :> (d*g(x) \ |
1377 \ ==> NSDERIV (%y. f(y) / (g y)) x :> (d*g(x) \ |