equal
deleted
inserted
replaced
549 "[| isCont f a; isCont g a |] ==> isCont (%x. f(x) - g(x)) a" |
549 "[| isCont f a; isCont g a |] ==> isCont (%x. f(x) - g(x)) a" |
550 apply (simp add: diff_minus) |
550 apply (simp add: diff_minus) |
551 apply (auto intro: isCont_add isCont_minus) |
551 apply (auto intro: isCont_add isCont_minus) |
552 done |
552 done |
553 |
553 |
|
554 lemma isCont_Id: "isCont (\<lambda>x. x) a" |
|
555 by (simp only: isCont_def LIM_self) |
|
556 |
554 lemma isCont_const [simp]: "isCont (%x. k) a" |
557 lemma isCont_const [simp]: "isCont (%x. k) a" |
555 by (simp add: isCont_def) |
558 by (simp add: isCont_def) |
556 |
559 |
557 lemma isNSCont_const [simp]: "isNSCont (%x. k) a" |
560 lemma isNSCont_const [simp]: "isNSCont (%x. k) a" |
558 by (simp add: isNSCont_def) |
561 by (simp add: isNSCont_def) |
1278 lemma DERIV_chain: "[| DERIV f (g x) :> Da; DERIV g x :> Db |] ==> DERIV (f o g) x :> Da * Db" |
1281 lemma DERIV_chain: "[| DERIV f (g x) :> Da; DERIV g x :> Db |] ==> DERIV (f o g) x :> Da * Db" |
1279 by (drule (1) DERIV_chain', simp add: o_def real_scaleR_def mult_commute) |
1282 by (drule (1) DERIV_chain', simp add: o_def real_scaleR_def mult_commute) |
1280 |
1283 |
1281 lemma DERIV_chain2: "[| DERIV f (g x) :> Da; DERIV g x :> Db |] ==> DERIV (%x. f (g x)) x :> Da * Db" |
1284 lemma DERIV_chain2: "[| DERIV f (g x) :> Da; DERIV g x :> Db |] ==> DERIV (%x. f (g x)) x :> Da * Db" |
1282 by (auto dest: DERIV_chain simp add: o_def) |
1285 by (auto dest: DERIV_chain simp add: o_def) |
1283 |
|
1284 lemmas isCont_Id = DERIV_Id [THEN DERIV_isCont, standard] |
|
1285 |
1286 |
1286 (*derivative of linear multiplication*) |
1287 (*derivative of linear multiplication*) |
1287 lemma DERIV_cmult_Id [simp]: "DERIV (op * c) x :> c" |
1288 lemma DERIV_cmult_Id [simp]: "DERIV (op * c) x :> c" |
1288 by (cut_tac c = c and x = x in DERIV_Id [THEN DERIV_cmult], simp) |
1289 by (cut_tac c = c and x = x in DERIV_Id [THEN DERIV_cmult], simp) |
1289 |
1290 |