equal
deleted
inserted
replaced
434 lemma continuous_dist[continuous_intros]: |
434 lemma continuous_dist[continuous_intros]: |
435 fixes f g :: "_ \<Rightarrow> 'a :: metric_space" |
435 fixes f g :: "_ \<Rightarrow> 'a :: metric_space" |
436 shows "continuous F f \<Longrightarrow> continuous F g \<Longrightarrow> continuous F (\<lambda>x. dist (f x) (g x))" |
436 shows "continuous F f \<Longrightarrow> continuous F g \<Longrightarrow> continuous F (\<lambda>x. dist (f x) (g x))" |
437 unfolding continuous_def by (rule tendsto_dist) |
437 unfolding continuous_def by (rule tendsto_dist) |
438 |
438 |
439 lemma continuous_on_dist[continuous_on_intros]: |
439 lemma continuous_on_dist[continuous_intros]: |
440 fixes f g :: "_ \<Rightarrow> 'a :: metric_space" |
440 fixes f g :: "_ \<Rightarrow> 'a :: metric_space" |
441 shows "continuous_on s f \<Longrightarrow> continuous_on s g \<Longrightarrow> continuous_on s (\<lambda>x. dist (f x) (g x))" |
441 shows "continuous_on s f \<Longrightarrow> continuous_on s g \<Longrightarrow> continuous_on s (\<lambda>x. dist (f x) (g x))" |
442 unfolding continuous_on_def by (auto intro: tendsto_dist) |
442 unfolding continuous_on_def by (auto intro: tendsto_dist) |
443 |
443 |
444 lemma tendsto_norm [tendsto_intros]: |
444 lemma tendsto_norm [tendsto_intros]: |
447 |
447 |
448 lemma continuous_norm [continuous_intros]: |
448 lemma continuous_norm [continuous_intros]: |
449 "continuous F f \<Longrightarrow> continuous F (\<lambda>x. norm (f x))" |
449 "continuous F f \<Longrightarrow> continuous F (\<lambda>x. norm (f x))" |
450 unfolding continuous_def by (rule tendsto_norm) |
450 unfolding continuous_def by (rule tendsto_norm) |
451 |
451 |
452 lemma continuous_on_norm [continuous_on_intros]: |
452 lemma continuous_on_norm [continuous_intros]: |
453 "continuous_on s f \<Longrightarrow> continuous_on s (\<lambda>x. norm (f x))" |
453 "continuous_on s f \<Longrightarrow> continuous_on s (\<lambda>x. norm (f x))" |
454 unfolding continuous_on_def by (auto intro: tendsto_norm) |
454 unfolding continuous_on_def by (auto intro: tendsto_norm) |
455 |
455 |
456 lemma tendsto_norm_zero: |
456 lemma tendsto_norm_zero: |
457 "(f ---> 0) F \<Longrightarrow> ((\<lambda>x. norm (f x)) ---> 0) F" |
457 "(f ---> 0) F \<Longrightarrow> ((\<lambda>x. norm (f x)) ---> 0) F" |
471 |
471 |
472 lemma continuous_rabs [continuous_intros]: |
472 lemma continuous_rabs [continuous_intros]: |
473 "continuous F f \<Longrightarrow> continuous F (\<lambda>x. \<bar>f x :: real\<bar>)" |
473 "continuous F f \<Longrightarrow> continuous F (\<lambda>x. \<bar>f x :: real\<bar>)" |
474 unfolding real_norm_def[symmetric] by (rule continuous_norm) |
474 unfolding real_norm_def[symmetric] by (rule continuous_norm) |
475 |
475 |
476 lemma continuous_on_rabs [continuous_on_intros]: |
476 lemma continuous_on_rabs [continuous_intros]: |
477 "continuous_on s f \<Longrightarrow> continuous_on s (\<lambda>x. \<bar>f x :: real\<bar>)" |
477 "continuous_on s f \<Longrightarrow> continuous_on s (\<lambda>x. \<bar>f x :: real\<bar>)" |
478 unfolding real_norm_def[symmetric] by (rule continuous_on_norm) |
478 unfolding real_norm_def[symmetric] by (rule continuous_on_norm) |
479 |
479 |
480 lemma tendsto_rabs_zero: |
480 lemma tendsto_rabs_zero: |
481 "(f ---> (0::real)) F \<Longrightarrow> ((\<lambda>x. \<bar>f x\<bar>) ---> 0) F" |
481 "(f ---> (0::real)) F \<Longrightarrow> ((\<lambda>x. \<bar>f x\<bar>) ---> 0) F" |
499 lemma continuous_add [continuous_intros]: |
499 lemma continuous_add [continuous_intros]: |
500 fixes f g :: "'a::t2_space \<Rightarrow> 'b::real_normed_vector" |
500 fixes f g :: "'a::t2_space \<Rightarrow> 'b::real_normed_vector" |
501 shows "continuous F f \<Longrightarrow> continuous F g \<Longrightarrow> continuous F (\<lambda>x. f x + g x)" |
501 shows "continuous F f \<Longrightarrow> continuous F g \<Longrightarrow> continuous F (\<lambda>x. f x + g x)" |
502 unfolding continuous_def by (rule tendsto_add) |
502 unfolding continuous_def by (rule tendsto_add) |
503 |
503 |
504 lemma continuous_on_add [continuous_on_intros]: |
504 lemma continuous_on_add [continuous_intros]: |
505 fixes f g :: "_ \<Rightarrow> 'b::real_normed_vector" |
505 fixes f g :: "_ \<Rightarrow> 'b::real_normed_vector" |
506 shows "continuous_on s f \<Longrightarrow> continuous_on s g \<Longrightarrow> continuous_on s (\<lambda>x. f x + g x)" |
506 shows "continuous_on s f \<Longrightarrow> continuous_on s g \<Longrightarrow> continuous_on s (\<lambda>x. f x + g x)" |
507 unfolding continuous_on_def by (auto intro: tendsto_add) |
507 unfolding continuous_on_def by (auto intro: tendsto_add) |
508 |
508 |
509 lemma tendsto_add_zero: |
509 lemma tendsto_add_zero: |
519 lemma continuous_minus [continuous_intros]: |
519 lemma continuous_minus [continuous_intros]: |
520 fixes f :: "'a::t2_space \<Rightarrow> 'b::real_normed_vector" |
520 fixes f :: "'a::t2_space \<Rightarrow> 'b::real_normed_vector" |
521 shows "continuous F f \<Longrightarrow> continuous F (\<lambda>x. - f x)" |
521 shows "continuous F f \<Longrightarrow> continuous F (\<lambda>x. - f x)" |
522 unfolding continuous_def by (rule tendsto_minus) |
522 unfolding continuous_def by (rule tendsto_minus) |
523 |
523 |
524 lemma continuous_on_minus [continuous_on_intros]: |
524 lemma continuous_on_minus [continuous_intros]: |
525 fixes f :: "_ \<Rightarrow> 'b::real_normed_vector" |
525 fixes f :: "_ \<Rightarrow> 'b::real_normed_vector" |
526 shows "continuous_on s f \<Longrightarrow> continuous_on s (\<lambda>x. - f x)" |
526 shows "continuous_on s f \<Longrightarrow> continuous_on s (\<lambda>x. - f x)" |
527 unfolding continuous_on_def by (auto intro: tendsto_minus) |
527 unfolding continuous_on_def by (auto intro: tendsto_minus) |
528 |
528 |
529 lemma tendsto_minus_cancel: |
529 lemma tendsto_minus_cancel: |
544 lemma continuous_diff [continuous_intros]: |
544 lemma continuous_diff [continuous_intros]: |
545 fixes f g :: "'a::t2_space \<Rightarrow> 'b::real_normed_vector" |
545 fixes f g :: "'a::t2_space \<Rightarrow> 'b::real_normed_vector" |
546 shows "continuous F f \<Longrightarrow> continuous F g \<Longrightarrow> continuous F (\<lambda>x. f x - g x)" |
546 shows "continuous F f \<Longrightarrow> continuous F g \<Longrightarrow> continuous F (\<lambda>x. f x - g x)" |
547 unfolding continuous_def by (rule tendsto_diff) |
547 unfolding continuous_def by (rule tendsto_diff) |
548 |
548 |
549 lemma continuous_on_diff [continuous_on_intros]: |
549 lemma continuous_on_diff [continuous_intros]: |
550 fixes f g :: "'a::t2_space \<Rightarrow> 'b::real_normed_vector" |
550 fixes f g :: "'a::t2_space \<Rightarrow> 'b::real_normed_vector" |
551 shows "continuous_on s f \<Longrightarrow> continuous_on s g \<Longrightarrow> continuous_on s (\<lambda>x. f x - g x)" |
551 shows "continuous_on s f \<Longrightarrow> continuous_on s g \<Longrightarrow> continuous_on s (\<lambda>x. f x - g x)" |
552 unfolding continuous_on_def by (auto intro: tendsto_diff) |
552 unfolding continuous_on_def by (auto intro: tendsto_diff) |
553 |
553 |
554 lemma tendsto_setsum [tendsto_intros]: |
554 lemma tendsto_setsum [tendsto_intros]: |
636 bounded_bilinear.continuous [OF bounded_bilinear_scaleR] |
636 bounded_bilinear.continuous [OF bounded_bilinear_scaleR] |
637 |
637 |
638 lemmas continuous_mult [continuous_intros] = |
638 lemmas continuous_mult [continuous_intros] = |
639 bounded_bilinear.continuous [OF bounded_bilinear_mult] |
639 bounded_bilinear.continuous [OF bounded_bilinear_mult] |
640 |
640 |
641 lemmas continuous_on_of_real [continuous_on_intros] = |
641 lemmas continuous_on_of_real [continuous_intros] = |
642 bounded_linear.continuous_on [OF bounded_linear_of_real] |
642 bounded_linear.continuous_on [OF bounded_linear_of_real] |
643 |
643 |
644 lemmas continuous_on_scaleR [continuous_on_intros] = |
644 lemmas continuous_on_scaleR [continuous_intros] = |
645 bounded_bilinear.continuous_on [OF bounded_bilinear_scaleR] |
645 bounded_bilinear.continuous_on [OF bounded_bilinear_scaleR] |
646 |
646 |
647 lemmas continuous_on_mult [continuous_on_intros] = |
647 lemmas continuous_on_mult [continuous_intros] = |
648 bounded_bilinear.continuous_on [OF bounded_bilinear_mult] |
648 bounded_bilinear.continuous_on [OF bounded_bilinear_mult] |
649 |
649 |
650 lemmas tendsto_mult_zero = |
650 lemmas tendsto_mult_zero = |
651 bounded_bilinear.tendsto_zero [OF bounded_bilinear_mult] |
651 bounded_bilinear.tendsto_zero [OF bounded_bilinear_mult] |
652 |
652 |
664 lemma continuous_power [continuous_intros]: |
664 lemma continuous_power [continuous_intros]: |
665 fixes f :: "'a::t2_space \<Rightarrow> 'b::{power,real_normed_algebra}" |
665 fixes f :: "'a::t2_space \<Rightarrow> 'b::{power,real_normed_algebra}" |
666 shows "continuous F f \<Longrightarrow> continuous F (\<lambda>x. (f x)^n)" |
666 shows "continuous F f \<Longrightarrow> continuous F (\<lambda>x. (f x)^n)" |
667 unfolding continuous_def by (rule tendsto_power) |
667 unfolding continuous_def by (rule tendsto_power) |
668 |
668 |
669 lemma continuous_on_power [continuous_on_intros]: |
669 lemma continuous_on_power [continuous_intros]: |
670 fixes f :: "_ \<Rightarrow> 'b::{power,real_normed_algebra}" |
670 fixes f :: "_ \<Rightarrow> 'b::{power,real_normed_algebra}" |
671 shows "continuous_on s f \<Longrightarrow> continuous_on s (\<lambda>x. (f x)^n)" |
671 shows "continuous_on s f \<Longrightarrow> continuous_on s (\<lambda>x. (f x)^n)" |
672 unfolding continuous_on_def by (auto intro: tendsto_power) |
672 unfolding continuous_on_def by (auto intro: tendsto_power) |
673 |
673 |
674 lemma tendsto_setprod [tendsto_intros]: |
674 lemma tendsto_setprod [tendsto_intros]: |
818 fixes f :: "'a::t2_space \<Rightarrow> 'b::real_normed_div_algebra" |
818 fixes f :: "'a::t2_space \<Rightarrow> 'b::real_normed_div_algebra" |
819 assumes "isCont f a" and "f a \<noteq> 0" |
819 assumes "isCont f a" and "f a \<noteq> 0" |
820 shows "isCont (\<lambda>x. inverse (f x)) a" |
820 shows "isCont (\<lambda>x. inverse (f x)) a" |
821 using assms unfolding continuous_at by (rule tendsto_inverse) |
821 using assms unfolding continuous_at by (rule tendsto_inverse) |
822 |
822 |
823 lemma continuous_on_inverse[continuous_on_intros]: |
823 lemma continuous_on_inverse[continuous_intros]: |
824 fixes f :: "'a::topological_space \<Rightarrow> 'b::real_normed_div_algebra" |
824 fixes f :: "'a::topological_space \<Rightarrow> 'b::real_normed_div_algebra" |
825 assumes "continuous_on s f" and "\<forall>x\<in>s. f x \<noteq> 0" |
825 assumes "continuous_on s f" and "\<forall>x\<in>s. f x \<noteq> 0" |
826 shows "continuous_on s (\<lambda>x. inverse (f x))" |
826 shows "continuous_on s (\<lambda>x. inverse (f x))" |
827 using assms unfolding continuous_on_def by (fast intro: tendsto_inverse) |
827 using assms unfolding continuous_on_def by (fast intro: tendsto_inverse) |
828 |
828 |
848 fixes f g :: "'a::t2_space \<Rightarrow> 'b::real_normed_field" |
848 fixes f g :: "'a::t2_space \<Rightarrow> 'b::real_normed_field" |
849 assumes "isCont f a" "isCont g a" "g a \<noteq> 0" |
849 assumes "isCont f a" "isCont g a" "g a \<noteq> 0" |
850 shows "isCont (\<lambda>x. (f x) / g x) a" |
850 shows "isCont (\<lambda>x. (f x) / g x) a" |
851 using assms unfolding continuous_at by (rule tendsto_divide) |
851 using assms unfolding continuous_at by (rule tendsto_divide) |
852 |
852 |
853 lemma continuous_on_divide[continuous_on_intros]: |
853 lemma continuous_on_divide[continuous_intros]: |
854 fixes f :: "'a::topological_space \<Rightarrow> 'b::real_normed_field" |
854 fixes f :: "'a::topological_space \<Rightarrow> 'b::real_normed_field" |
855 assumes "continuous_on s f" "continuous_on s g" and "\<forall>x\<in>s. g x \<noteq> 0" |
855 assumes "continuous_on s f" "continuous_on s g" and "\<forall>x\<in>s. g x \<noteq> 0" |
856 shows "continuous_on s (\<lambda>x. (f x) / (g x))" |
856 shows "continuous_on s (\<lambda>x. (f x) / (g x))" |
857 using assms unfolding continuous_on_def by (fast intro: tendsto_divide) |
857 using assms unfolding continuous_on_def by (fast intro: tendsto_divide) |
858 |
858 |
877 fixes f :: "'a::t2_space \<Rightarrow> 'b::real_normed_vector" |
877 fixes f :: "'a::t2_space \<Rightarrow> 'b::real_normed_vector" |
878 assumes "isCont f a" and "f a \<noteq> 0" |
878 assumes "isCont f a" and "f a \<noteq> 0" |
879 shows "isCont (\<lambda>x. sgn (f x)) a" |
879 shows "isCont (\<lambda>x. sgn (f x)) a" |
880 using assms unfolding continuous_at by (rule tendsto_sgn) |
880 using assms unfolding continuous_at by (rule tendsto_sgn) |
881 |
881 |
882 lemma continuous_on_sgn[continuous_on_intros]: |
882 lemma continuous_on_sgn[continuous_intros]: |
883 fixes f :: "'a::topological_space \<Rightarrow> 'b::real_normed_vector" |
883 fixes f :: "'a::topological_space \<Rightarrow> 'b::real_normed_vector" |
884 assumes "continuous_on s f" and "\<forall>x\<in>s. f x \<noteq> 0" |
884 assumes "continuous_on s f" and "\<forall>x\<in>s. f x \<noteq> 0" |
885 shows "continuous_on s (\<lambda>x. sgn (f x))" |
885 shows "continuous_on s (\<lambda>x. sgn (f x))" |
886 using assms unfolding continuous_on_def by (fast intro: tendsto_sgn) |
886 using assms unfolding continuous_on_def by (fast intro: tendsto_sgn) |
887 |
887 |
1682 |
1682 |
1683 lemma isCont_setsum [simp]: |
1683 lemma isCont_setsum [simp]: |
1684 fixes f :: "'a \<Rightarrow> 'b::t2_space \<Rightarrow> 'c::real_normed_vector" |
1684 fixes f :: "'a \<Rightarrow> 'b::t2_space \<Rightarrow> 'c::real_normed_vector" |
1685 shows "\<forall>i\<in>A. isCont (f i) a \<Longrightarrow> isCont (\<lambda>x. \<Sum>i\<in>A. f i x) a" |
1685 shows "\<forall>i\<in>A. isCont (f i) a \<Longrightarrow> isCont (\<lambda>x. \<Sum>i\<in>A. f i x) a" |
1686 by (auto intro: continuous_setsum) |
1686 by (auto intro: continuous_setsum) |
1687 |
|
1688 lemmas isCont_intros = |
|
1689 isCont_ident isCont_const isCont_norm isCont_rabs isCont_add isCont_minus |
|
1690 isCont_diff isCont_mult isCont_inverse isCont_divide isCont_scaleR |
|
1691 isCont_of_real isCont_power isCont_sgn isCont_setsum |
|
1692 |
1687 |
1693 subsection {* Uniform Continuity *} |
1688 subsection {* Uniform Continuity *} |
1694 |
1689 |
1695 definition |
1690 definition |
1696 isUCont :: "['a::metric_space \<Rightarrow> 'b::metric_space] \<Rightarrow> bool" where |
1691 isUCont :: "['a::metric_space \<Rightarrow> 'b::metric_space] \<Rightarrow> bool" where |