1482 unfolding continuous_on_def by fast |
1482 unfolding continuous_on_def by fast |
1483 |
1483 |
1484 lemma continuous_on_const[continuous_intros]: "continuous_on s (\<lambda>x. c)" |
1484 lemma continuous_on_const[continuous_intros]: "continuous_on s (\<lambda>x. c)" |
1485 unfolding continuous_on_def by auto |
1485 unfolding continuous_on_def by auto |
1486 |
1486 |
|
1487 lemma continuous_on_subset: "continuous_on s f \<Longrightarrow> t \<subseteq> s \<Longrightarrow> continuous_on t f" |
|
1488 unfolding continuous_on_def by (metis subset_eq tendsto_within_subset) |
|
1489 |
1487 lemma continuous_on_compose[continuous_intros]: |
1490 lemma continuous_on_compose[continuous_intros]: |
1488 "continuous_on s f \<Longrightarrow> continuous_on (f ` s) g \<Longrightarrow> continuous_on s (g o f)" |
1491 "continuous_on s f \<Longrightarrow> continuous_on (f ` s) g \<Longrightarrow> continuous_on s (g o f)" |
1489 unfolding continuous_on_topological by simp metis |
1492 unfolding continuous_on_topological by simp metis |
1490 |
1493 |
1491 lemma continuous_on_compose2: |
1494 lemma continuous_on_compose2: |
1492 "continuous_on t g \<Longrightarrow> continuous_on s f \<Longrightarrow> t = f ` s \<Longrightarrow> continuous_on s (\<lambda>x. g (f x))" |
1495 "continuous_on t g \<Longrightarrow> continuous_on s f \<Longrightarrow> f ` s \<subseteq> t \<Longrightarrow> continuous_on s (\<lambda>x. g (f x))" |
1493 using continuous_on_compose[of s f g] by (simp add: comp_def) |
1496 using continuous_on_compose[of s f g] continuous_on_subset by (force simp add: comp_def) |
1494 |
1497 |
1495 lemma continuous_on_generate_topology: |
1498 lemma continuous_on_generate_topology: |
1496 assumes *: "open = generate_topology X" |
1499 assumes *: "open = generate_topology X" |
1497 assumes **: "\<And>B. B \<in> X \<Longrightarrow> \<exists>C. open C \<and> C \<inter> A = f -` B \<inter> A" |
1500 assumes **: "\<And>B. B \<in> X \<Longrightarrow> \<exists>C. open C \<and> C \<inter> A = f -` B \<inter> A" |
1498 shows "continuous_on A f" |
1501 shows "continuous_on A f" |
1598 lemma continuous_at_imp_continuous_at_within: "isCont f x \<Longrightarrow> continuous (at x within s) f" |
1601 lemma continuous_at_imp_continuous_at_within: "isCont f x \<Longrightarrow> continuous (at x within s) f" |
1599 by (auto intro: tendsto_mono at_le simp: continuous_at continuous_within) |
1602 by (auto intro: tendsto_mono at_le simp: continuous_at continuous_within) |
1600 |
1603 |
1601 lemma continuous_on_eq_continuous_at: "open s \<Longrightarrow> continuous_on s f \<longleftrightarrow> (\<forall>x\<in>s. isCont f x)" |
1604 lemma continuous_on_eq_continuous_at: "open s \<Longrightarrow> continuous_on s f \<longleftrightarrow> (\<forall>x\<in>s. isCont f x)" |
1602 by (simp add: continuous_on_def continuous_at at_within_open[of _ s]) |
1605 by (simp add: continuous_on_def continuous_at at_within_open[of _ s]) |
1603 |
|
1604 lemma continuous_on_subset: "continuous_on s f \<Longrightarrow> t \<subseteq> s \<Longrightarrow> continuous_on t f" |
|
1605 unfolding continuous_on_def by (metis subset_eq tendsto_within_subset) |
|
1606 |
1606 |
1607 lemma continuous_at_imp_continuous_on: "\<forall>x\<in>s. isCont f x \<Longrightarrow> continuous_on s f" |
1607 lemma continuous_at_imp_continuous_on: "\<forall>x\<in>s. isCont f x \<Longrightarrow> continuous_on s f" |
1608 by (auto intro: continuous_at_imp_continuous_at_within simp: continuous_on_eq_continuous_within) |
1608 by (auto intro: continuous_at_imp_continuous_at_within simp: continuous_on_eq_continuous_within) |
1609 |
1609 |
1610 lemma isCont_o2: "isCont f a \<Longrightarrow> isCont g (f a) \<Longrightarrow> isCont (\<lambda>x. g (f x)) a" |
1610 lemma isCont_o2: "isCont f a \<Longrightarrow> isCont g (f a) \<Longrightarrow> isCont (\<lambda>x. g (f x)) a" |