diff -r 3529946fca19 -r 41f5266e5595 src/HOL/Complex_Analysis/Complex_Singularities.thy --- a/src/HOL/Complex_Analysis/Complex_Singularities.thy Wed Mar 19 22:18:52 2025 +0000 +++ b/src/HOL/Complex_Analysis/Complex_Singularities.thy Fri Mar 21 10:45:56 2025 +0000 @@ -245,8 +245,10 @@ ultimately show False using not_tendsto_and_filterlim_at_infinity trivial_limit_sequentially by blast qed - - text \The proposition + +subsection \Isolated singularities\ + +text \The proposition \<^term>\\x. ((f::complex\complex) \ x) (at z) \ is_pole f z\ can be interpreted as the complex function \<^term>\f\ has a non-essential singularity at \<^term>\z\ (i.e. the singularity is either removable or a pole).\ @@ -1059,6 +1061,47 @@ shows "isolated_singularity_at f z" by (meson Diff_subset analytic_at assms holomorphic_on_subset isolated_singularity_at_holomorphic) +lemma isolated_singularity_sum [singularity_intros]: + assumes "\x. x \ A \ isolated_singularity_at (f x) z" + shows "isolated_singularity_at (\w. \x\A. f x w) z" + using assms by (induction A rule: infinite_finite_induct) (auto intro!: singularity_intros) + +lemma isolated_singularity_prod [singularity_intros]: + assumes "\x. x \ A \ isolated_singularity_at (f x) z" + shows "isolated_singularity_at (\w. \x\A. f x w) z" + using assms by (induction A rule: infinite_finite_induct) (auto intro!: singularity_intros) + +lemma isolated_singularity_sum_list [singularity_intros]: + assumes "\f. f \ set fs \ isolated_singularity_at f z" + shows "isolated_singularity_at (\w. \f\fs. f w) z" + using assms by (induction fs) (auto intro!: singularity_intros) + +lemma isolated_singularity_prod_list [singularity_intros]: + assumes "\f. f \ set fs \ isolated_singularity_at f z" + shows "isolated_singularity_at (\w. \f\fs. f w) z" + using assms by (induction fs) (auto intro!: singularity_intros) + +lemma isolated_singularity_sum_mset [singularity_intros]: + assumes "\f. f \# F \ isolated_singularity_at f z" + shows "isolated_singularity_at (\w. \f\#F. f w) z" + using assms by (induction F) (auto intro!: singularity_intros) + +lemma isolated_singularity_prod_mset [singularity_intros]: + assumes "\f. f \# F \ isolated_singularity_at f z" + shows "isolated_singularity_at (\w. \f\#F. f w) z" + using assms by (induction F) (auto intro!: singularity_intros) + +lemma analytic_nhd_imp_isolated_singularity: + assumes "f analytic_on A - {x}" "x \ A" "open A" + shows "isolated_singularity_at f x" + unfolding isolated_singularity_at_def using assms + using analytic_imp_holomorphic isolated_singularity_at_def isolated_singularity_at_holomorphic by blast + +lemma isolated_singularity_at_iff_analytic_nhd: + "isolated_singularity_at f x \ (\A. x \ A \ open A \ f analytic_on A - {x})" + by (meson open_ball analytic_nhd_imp_isolated_singularity + centre_in_ball isolated_singularity_at_def) + subsection \The order of non-essential singularities (i.e. removable singularities or poles)\ definition\<^marker>\tag important\ zorder :: "(complex \ complex) \ complex \ int" where