479 subsection\<open>Analyticity on a set\<close> |
479 subsection\<open>Analyticity on a set\<close> |
480 |
480 |
481 definition analytic_on (infixl "(analytic'_on)" 50) |
481 definition analytic_on (infixl "(analytic'_on)" 50) |
482 where |
482 where |
483 "f analytic_on s \<equiv> \<forall>x \<in> s. \<exists>e. 0 < e \<and> f holomorphic_on (ball x e)" |
483 "f analytic_on s \<equiv> \<forall>x \<in> s. \<exists>e. 0 < e \<and> f holomorphic_on (ball x e)" |
|
484 |
|
485 named_theorems analytic_intros "introduction rules for proving analyticity" |
484 |
486 |
485 lemma analytic_imp_holomorphic: "f analytic_on s \<Longrightarrow> f holomorphic_on s" |
487 lemma analytic_imp_holomorphic: "f analytic_on s \<Longrightarrow> f holomorphic_on s" |
486 by (simp add: at_within_open [OF _ open_ball] analytic_on_def holomorphic_on_def) |
488 by (simp add: at_within_open [OF _ open_ball] analytic_on_def holomorphic_on_def) |
487 (metis centre_in_ball field_differentiable_at_within) |
489 (metis centre_in_ball field_differentiable_at_within) |
488 |
490 |
529 also have "... \<longleftrightarrow> ?rhs" |
531 also have "... \<longleftrightarrow> ?rhs" |
530 by (auto simp: analytic_on_open) |
532 by (auto simp: analytic_on_open) |
531 finally show ?thesis . |
533 finally show ?thesis . |
532 qed |
534 qed |
533 |
535 |
534 lemma analytic_on_linear: "(op * c) analytic_on s" |
536 lemma analytic_on_linear [analytic_intros,simp]: "(op * c) analytic_on s" |
535 by (auto simp add: analytic_on_holomorphic holomorphic_on_linear) |
537 by (auto simp add: analytic_on_holomorphic) |
536 |
538 |
537 lemma analytic_on_const: "(\<lambda>z. c) analytic_on s" |
539 lemma analytic_on_const [analytic_intros,simp]: "(\<lambda>z. c) analytic_on s" |
538 by (metis analytic_on_def holomorphic_on_const zero_less_one) |
540 by (metis analytic_on_def holomorphic_on_const zero_less_one) |
539 |
541 |
540 lemma analytic_on_ident: "(\<lambda>x. x) analytic_on s" |
542 lemma analytic_on_ident [analytic_intros,simp]: "(\<lambda>x. x) analytic_on s" |
541 by (simp add: analytic_on_def holomorphic_on_ident gt_ex) |
543 by (simp add: analytic_on_def gt_ex) |
542 |
544 |
543 lemma analytic_on_id: "id analytic_on s" |
545 lemma analytic_on_id [analytic_intros]: "id analytic_on s" |
544 unfolding id_def by (rule analytic_on_ident) |
546 unfolding id_def by (rule analytic_on_ident) |
545 |
547 |
546 lemma analytic_on_compose: |
548 lemma analytic_on_compose: |
547 assumes f: "f analytic_on s" |
549 assumes f: "f analytic_on s" |
548 and g: "g analytic_on (f ` s)" |
550 and g: "g analytic_on (f ` s)" |
570 lemma analytic_on_compose_gen: |
572 lemma analytic_on_compose_gen: |
571 "f analytic_on s \<Longrightarrow> g analytic_on t \<Longrightarrow> (\<And>z. z \<in> s \<Longrightarrow> f z \<in> t) |
573 "f analytic_on s \<Longrightarrow> g analytic_on t \<Longrightarrow> (\<And>z. z \<in> s \<Longrightarrow> f z \<in> t) |
572 \<Longrightarrow> g o f analytic_on s" |
574 \<Longrightarrow> g o f analytic_on s" |
573 by (metis analytic_on_compose analytic_on_subset image_subset_iff) |
575 by (metis analytic_on_compose analytic_on_subset image_subset_iff) |
574 |
576 |
575 lemma analytic_on_neg: |
577 lemma analytic_on_neg [analytic_intros]: |
576 "f analytic_on s \<Longrightarrow> (\<lambda>z. -(f z)) analytic_on s" |
578 "f analytic_on s \<Longrightarrow> (\<lambda>z. -(f z)) analytic_on s" |
577 by (metis analytic_on_holomorphic holomorphic_on_minus) |
579 by (metis analytic_on_holomorphic holomorphic_on_minus) |
578 |
580 |
579 lemma analytic_on_add: |
581 lemma analytic_on_add [analytic_intros]: |
580 assumes f: "f analytic_on s" |
582 assumes f: "f analytic_on s" |
581 and g: "g analytic_on s" |
583 and g: "g analytic_on s" |
582 shows "(\<lambda>z. f z + g z) analytic_on s" |
584 shows "(\<lambda>z. f z + g z) analytic_on s" |
583 unfolding analytic_on_def |
585 unfolding analytic_on_def |
584 proof (intro ballI) |
586 proof (intro ballI) |
594 by (metis gh holomorphic_on_subset min.bounded_iff order_refl subset_ball) |
596 by (metis gh holomorphic_on_subset min.bounded_iff order_refl subset_ball) |
595 then show "\<exists>e>0. (\<lambda>z. f z + g z) holomorphic_on ball z e" |
597 then show "\<exists>e>0. (\<lambda>z. f z + g z) holomorphic_on ball z e" |
596 by (metis e e' min_less_iff_conj) |
598 by (metis e e' min_less_iff_conj) |
597 qed |
599 qed |
598 |
600 |
599 lemma analytic_on_diff: |
601 lemma analytic_on_diff [analytic_intros]: |
600 assumes f: "f analytic_on s" |
602 assumes f: "f analytic_on s" |
601 and g: "g analytic_on s" |
603 and g: "g analytic_on s" |
602 shows "(\<lambda>z. f z - g z) analytic_on s" |
604 shows "(\<lambda>z. f z - g z) analytic_on s" |
603 unfolding analytic_on_def |
605 unfolding analytic_on_def |
604 proof (intro ballI) |
606 proof (intro ballI) |
614 by (metis gh holomorphic_on_subset min.bounded_iff order_refl subset_ball) |
616 by (metis gh holomorphic_on_subset min.bounded_iff order_refl subset_ball) |
615 then show "\<exists>e>0. (\<lambda>z. f z - g z) holomorphic_on ball z e" |
617 then show "\<exists>e>0. (\<lambda>z. f z - g z) holomorphic_on ball z e" |
616 by (metis e e' min_less_iff_conj) |
618 by (metis e e' min_less_iff_conj) |
617 qed |
619 qed |
618 |
620 |
619 lemma analytic_on_mult: |
621 lemma analytic_on_mult [analytic_intros]: |
620 assumes f: "f analytic_on s" |
622 assumes f: "f analytic_on s" |
621 and g: "g analytic_on s" |
623 and g: "g analytic_on s" |
622 shows "(\<lambda>z. f z * g z) analytic_on s" |
624 shows "(\<lambda>z. f z * g z) analytic_on s" |
623 unfolding analytic_on_def |
625 unfolding analytic_on_def |
624 proof (intro ballI) |
626 proof (intro ballI) |
634 by (metis gh holomorphic_on_subset min.bounded_iff order_refl subset_ball) |
636 by (metis gh holomorphic_on_subset min.bounded_iff order_refl subset_ball) |
635 then show "\<exists>e>0. (\<lambda>z. f z * g z) holomorphic_on ball z e" |
637 then show "\<exists>e>0. (\<lambda>z. f z * g z) holomorphic_on ball z e" |
636 by (metis e e' min_less_iff_conj) |
638 by (metis e e' min_less_iff_conj) |
637 qed |
639 qed |
638 |
640 |
639 lemma analytic_on_inverse: |
641 lemma analytic_on_inverse [analytic_intros]: |
640 assumes f: "f analytic_on s" |
642 assumes f: "f analytic_on s" |
641 and nz: "(\<And>z. z \<in> s \<Longrightarrow> f z \<noteq> 0)" |
643 and nz: "(\<And>z. z \<in> s \<Longrightarrow> f z \<noteq> 0)" |
642 shows "(\<lambda>z. inverse (f z)) analytic_on s" |
644 shows "(\<lambda>z. inverse (f z)) analytic_on s" |
643 unfolding analytic_on_def |
645 unfolding analytic_on_def |
644 proof (intro ballI) |
646 proof (intro ballI) |
656 by (metis nz' mem_ball min_less_iff_conj) |
658 by (metis nz' mem_ball min_less_iff_conj) |
657 then show "\<exists>e>0. (\<lambda>z. inverse (f z)) holomorphic_on ball z e" |
659 then show "\<exists>e>0. (\<lambda>z. inverse (f z)) holomorphic_on ball z e" |
658 by (metis e e' min_less_iff_conj) |
660 by (metis e e' min_less_iff_conj) |
659 qed |
661 qed |
660 |
662 |
661 lemma analytic_on_divide: |
663 lemma analytic_on_divide [analytic_intros]: |
662 assumes f: "f analytic_on s" |
664 assumes f: "f analytic_on s" |
663 and g: "g analytic_on s" |
665 and g: "g analytic_on s" |
664 and nz: "(\<And>z. z \<in> s \<Longrightarrow> g z \<noteq> 0)" |
666 and nz: "(\<And>z. z \<in> s \<Longrightarrow> g z \<noteq> 0)" |
665 shows "(\<lambda>z. f z / g z) analytic_on s" |
667 shows "(\<lambda>z. f z / g z) analytic_on s" |
666 unfolding divide_inverse |
668 unfolding divide_inverse |
667 by (metis analytic_on_inverse analytic_on_mult f g nz) |
669 by (metis analytic_on_inverse analytic_on_mult f g nz) |
668 |
670 |
669 lemma analytic_on_power: |
671 lemma analytic_on_power [analytic_intros]: |
670 "f analytic_on s \<Longrightarrow> (\<lambda>z. (f z) ^ n) analytic_on s" |
672 "f analytic_on s \<Longrightarrow> (\<lambda>z. (f z) ^ n) analytic_on s" |
671 by (induct n) (auto simp: analytic_on_const analytic_on_mult) |
673 by (induct n) (auto simp: analytic_on_mult) |
672 |
674 |
673 lemma analytic_on_sum: |
675 lemma analytic_on_sum [analytic_intros]: |
674 "(\<And>i. i \<in> I \<Longrightarrow> (f i) analytic_on s) \<Longrightarrow> (\<lambda>x. sum (\<lambda>i. f i x) I) analytic_on s" |
676 "(\<And>i. i \<in> I \<Longrightarrow> (f i) analytic_on s) \<Longrightarrow> (\<lambda>x. sum (\<lambda>i. f i x) I) analytic_on s" |
675 by (induct I rule: infinite_finite_induct) (auto simp: analytic_on_const analytic_on_add) |
677 by (induct I rule: infinite_finite_induct) (auto simp: analytic_on_const analytic_on_add) |
676 |
678 |
677 lemma deriv_left_inverse: |
679 lemma deriv_left_inverse: |
678 assumes "f holomorphic_on S" and "g holomorphic_on T" |
680 assumes "f holomorphic_on S" and "g holomorphic_on T" |