[STATEMENT]
lemma subcat_trans:
  assumes "\<AA> \<subseteq>\<^sub>C\<^bsub>\<alpha>\<^esub> \<BB>" and "\<BB> \<subseteq>\<^sub>C\<^bsub>\<alpha>\<^esub> \<CC>"
  shows "\<AA> \<subseteq>\<^sub>C\<^bsub>\<alpha>\<^esub> \<CC>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<AA> \<subseteq>\<^sub>C\<^bsub>\<alpha>\<^esub> \<CC>
[PROOF STEP]
proof-
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<AA> \<subseteq>\<^sub>C\<^bsub>\<alpha>\<^esub> \<CC>
[PROOF STEP]
interpret \<AA>\<BB>: subcategory \<alpha> \<AA> \<BB>
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<AA> \<subseteq>\<^sub>C\<^bsub>\<alpha>\<^esub> \<BB>
[PROOF STEP]
by (rule assms(1))
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<AA> \<subseteq>\<^sub>C\<^bsub>\<alpha>\<^esub> \<CC>
[PROOF STEP]
interpret \<BB>\<CC>: subcategory \<alpha> \<BB> \<CC>
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<BB> \<subseteq>\<^sub>C\<^bsub>\<alpha>\<^esub> \<CC>
[PROOF STEP]
by (rule assms(2))
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<AA> \<subseteq>\<^sub>C\<^bsub>\<alpha>\<^esub> \<CC>
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<AA> \<subseteq>\<^sub>C\<^bsub>\<alpha>\<^esub> \<CC>
[PROOF STEP]
proof(rule subcategoryI)
[PROOF STATE]
proof (state)
goal (4 subgoals):
 1. category \<alpha> \<AA>
 2. category \<alpha> \<CC>
 3. cat_smc \<AA> \<subseteq>\<^sub>S\<^sub>M\<^sub>C\<^bsub>\<alpha>\<^esub> cat_smc \<CC>
 4. \<And>a. a \<in>\<^sub>\<circ> \<AA>\<lparr>Obj\<rparr> \<Longrightarrow> \<AA>\<lparr>CId\<rparr>\<lparr>a\<rparr> = \<CC>\<lparr>CId\<rparr>\<lparr>a\<rparr>
[PROOF STEP]
show "cat_smc \<AA> \<subseteq>\<^sub>S\<^sub>M\<^sub>C\<^bsub>\<alpha>\<^esub> cat_smc \<CC>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. cat_smc \<AA> \<subseteq>\<^sub>S\<^sub>M\<^sub>C\<^bsub>\<alpha>\<^esub> cat_smc \<CC>
[PROOF STEP]
by
        (
          meson
            \<AA>\<BB>.subcat_subsemicategory
            \<BB>\<CC>.subcat_subsemicategory
            subsmc_trans
        )
[PROOF STATE]
proof (state)
this:
cat_smc \<AA> \<subseteq>\<^sub>S\<^sub>M\<^sub>C\<^bsub>\<alpha>\<^esub> cat_smc \<CC>

goal (3 subgoals):
 1. category \<alpha> \<AA>
 2. category \<alpha> \<CC>
 3. \<And>a. a \<in>\<^sub>\<circ> \<AA>\<lparr>Obj\<rparr> \<Longrightarrow> \<AA>\<lparr>CId\<rparr>\<lparr>a\<rparr> = \<CC>\<lparr>CId\<rparr>\<lparr>a\<rparr>
[PROOF STEP]
qed
    (
      use \<AA>\<BB>.subcategory_axioms \<BB>\<CC>.subcategory_axioms in
        \<open>auto simp: \<AA>\<BB>.subcat_Obj_vsubset cat_sub_bw_cs_simps\<close>
    )
[PROOF STATE]
proof (state)
this:
\<AA> \<subseteq>\<^sub>C\<^bsub>\<alpha>\<^esub> \<CC>

goal:
No subgoals!
[PROOF STEP]
qed


[STATEMENT]
theorem Montel:
  fixes \<F> :: "[nat,complex] \<Rightarrow> complex"
  assumes "open S"
      and \<H>: "\<And>h. h \<in> \<H> \<Longrightarrow> h holomorphic_on S"
      and bounded: "\<And>K. \<lbrakk>compact K; K \<subseteq> S\<rbrakk> \<Longrightarrow> \<exists>B. \<forall>h \<in> \<H>. \<forall> z \<in> K. norm(h z) \<le> B"
      and rng_f: "range \<F> \<subseteq> \<H>"
  obtains g r
    where "g holomorphic_on S" "strict_mono (r :: nat \<Rightarrow> nat)"
          "\<And>x. x \<in> S \<Longrightarrow> ((\<lambda>n. \<F> (r n) x) \<longlongrightarrow> g x) sequentially"
          "\<And>K. \<lbrakk>compact K; K \<subseteq> S\<rbrakk> \<Longrightarrow> uniform_limit K (\<F> \<circ> r) g sequentially"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (\<And>g r. \<lbrakk>g holomorphic_on S; strict_mono r; \<And>x. x \<in> S \<Longrightarrow> (\<lambda>n. \<F> (r n) x) \<longlonglongrightarrow> g x; \<And>K. \<lbrakk>compact K; K \<subseteq> S\<rbrakk> \<Longrightarrow> uniform_limit K (\<F> \<circ> r) g sequentially\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. (\<And>g r. \<lbrakk>g holomorphic_on S; strict_mono r; \<And>x. x \<in> S \<Longrightarrow> (\<lambda>n. \<F> (r n) x) \<longlonglongrightarrow> g x; \<And>K. \<lbrakk>compact K; K \<subseteq> S\<rbrakk> \<Longrightarrow> uniform_limit K (\<F> \<circ> r) g sequentially\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
obtain K where comK: "\<And>n. compact(K n)" and KS: "\<And>n::nat. K n \<subseteq> S"
             and subK: "\<And>X. \<lbrakk>compact X; X \<subseteq> S\<rbrakk> \<Longrightarrow> \<exists>N. \<forall>n\<ge>N. X \<subseteq> K n"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (\<And>K. \<lbrakk>\<And>n. compact (K n); \<And>n. K n \<subseteq> S; \<And>X. \<lbrakk>compact X; X \<subseteq> S\<rbrakk> \<Longrightarrow> \<exists>N. \<forall>n\<ge>N. X \<subseteq> K n\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
using open_Union_compact_subsets [OF \<open>open S\<close>]
[PROOF STATE]
proof (prove)
using this:
(\<And>C. \<lbrakk>\<And>n. compact (C n); \<And>n. C n \<subseteq> S; \<And>n. C n \<subseteq> interior (C (Suc n)); \<Union> (range C) = S; \<And>K. \<lbrakk>compact K; K \<subseteq> S\<rbrakk> \<Longrightarrow> \<exists>N. \<forall>n\<ge>N. K \<subseteq> C n\<rbrakk> \<Longrightarrow> ?thesis) \<Longrightarrow> ?thesis

goal (1 subgoal):
 1. (\<And>K. \<lbrakk>\<And>n. compact (K n); \<And>n. K n \<subseteq> S; \<And>X. \<lbrakk>compact X; X \<subseteq> S\<rbrakk> \<Longrightarrow> \<exists>N. \<forall>n\<ge>N. X \<subseteq> K n\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by metis
[PROOF STATE]
proof (state)
this:
compact (K ?n)
K ?n \<subseteq> S
\<lbrakk>compact ?X; ?X \<subseteq> S\<rbrakk> \<Longrightarrow> \<exists>N. \<forall>n\<ge>N. ?X \<subseteq> K n

goal (1 subgoal):
 1. (\<And>g r. \<lbrakk>g holomorphic_on S; strict_mono r; \<And>x. x \<in> S \<Longrightarrow> (\<lambda>n. \<F> (r n) x) \<longlonglongrightarrow> g x; \<And>K. \<lbrakk>compact K; K \<subseteq> S\<rbrakk> \<Longrightarrow> uniform_limit K (\<F> \<circ> r) g sequentially\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
compact (K ?n)
K ?n \<subseteq> S
\<lbrakk>compact ?X; ?X \<subseteq> S\<rbrakk> \<Longrightarrow> \<exists>N. \<forall>n\<ge>N. ?X \<subseteq> K n
[PROOF STEP]
have "\<And>i. \<exists>B. \<forall>h \<in> \<H>. \<forall> z \<in> K i. norm(h z) \<le> B"
[PROOF STATE]
proof (prove)
using this:
compact (K ?n)
K ?n \<subseteq> S
\<lbrakk>compact ?X; ?X \<subseteq> S\<rbrakk> \<Longrightarrow> \<exists>N. \<forall>n\<ge>N. ?X \<subseteq> K n

goal (1 subgoal):
 1. \<And>i. \<exists>B. \<forall>h\<in>\<H>. \<forall>z\<in>K i. cmod (h z) \<le> B
[PROOF STEP]
by (simp add: bounded)
[PROOF STATE]
proof (state)
this:
\<exists>B. \<forall>h\<in>\<H>. \<forall>z\<in>K ?i. cmod (h z) \<le> B

goal (1 subgoal):
 1. (\<And>g r. \<lbrakk>g holomorphic_on S; strict_mono r; \<And>x. x \<in> S \<Longrightarrow> (\<lambda>n. \<F> (r n) x) \<longlonglongrightarrow> g x; \<And>K. \<lbrakk>compact K; K \<subseteq> S\<rbrakk> \<Longrightarrow> uniform_limit K (\<F> \<circ> r) g sequentially\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
\<exists>B. \<forall>h\<in>\<H>. \<forall>z\<in>K ?i. cmod (h z) \<le> B
[PROOF STEP]
obtain B where B: "\<And>i h z. \<lbrakk>h \<in> \<H>; z \<in> K i\<rbrakk> \<Longrightarrow> norm(h z) \<le> B i"
[PROOF STATE]
proof (prove)
using this:
\<exists>B. \<forall>h\<in>\<H>. \<forall>z\<in>K ?i. cmod (h z) \<le> B

goal (1 subgoal):
 1. (\<And>B. (\<And>i h z. \<lbrakk>h \<in> \<H>; z \<in> K i\<rbrakk> \<Longrightarrow> cmod (h z) \<le> B i) \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by metis
[PROOF STATE]
proof (state)
this:
\<lbrakk>?h \<in> \<H>; ?z \<in> K ?i\<rbrakk> \<Longrightarrow> cmod (?h ?z) \<le> B ?i

goal (1 subgoal):
 1. (\<And>g r. \<lbrakk>g holomorphic_on S; strict_mono r; \<And>x. x \<in> S \<Longrightarrow> (\<lambda>n. \<F> (r n) x) \<longlonglongrightarrow> g x; \<And>K. \<lbrakk>compact K; K \<subseteq> S\<rbrakk> \<Longrightarrow> uniform_limit K (\<F> \<circ> r) g sequentially\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
have *: "\<exists>r g. strict_mono (r::nat\<Rightarrow>nat) \<and> (\<forall>e > 0. \<exists>N. \<forall>n\<ge>N. \<forall>x \<in> K i. norm((\<F> \<circ> r) n x - g x) < e)"
        if "\<And>n. \<F> n \<in> \<H>" for \<F> i
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<exists>r g. strict_mono r \<and> (\<forall>e>0. \<exists>N. \<forall>n\<ge>N. \<forall>x\<in>K i. cmod ((\<F> \<circ> r) n x - g x) < e)
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<exists>r g. strict_mono r \<and> (\<forall>e>0. \<exists>N. \<forall>n\<ge>N. \<forall>x\<in>K i. cmod ((\<F> \<circ> r) n x - g x) < e)
[PROOF STEP]
obtain g k where "continuous_on (K i) g" "strict_mono (k::nat\<Rightarrow>nat)"
                    "\<And>e. 0 < e \<Longrightarrow> \<exists>N. \<forall>n\<ge>N. \<forall>x \<in> K i. norm(\<F>(k n) x - g x) < e"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (\<And>g k. \<lbrakk>continuous_on (K i) g; strict_mono k; \<And>e. 0 < e \<Longrightarrow> \<exists>N. \<forall>n\<ge>N. \<forall>x\<in>K i. cmod (\<F> (k n) x - g x) < e\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
proof (rule Arzela_Ascoli [of "K i" "\<F>" "B i"])
[PROOF STATE]
proof (state)
goal (4 subgoals):
 1. (\<And>g k. \<lbrakk>continuous_on (K i) g; strict_mono k; \<And>e. 0 < e \<Longrightarrow> \<exists>N. \<forall>n\<ge>N. \<forall>x\<in>K i. cmod (\<F> (k n) x - g x) < e\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> compact (K i)
 2. \<And>n x. \<lbrakk>\<And>g k. \<lbrakk>continuous_on (K i) g; strict_mono k; \<And>e. 0 < e \<Longrightarrow> \<exists>N. \<forall>n\<ge>N. \<forall>x\<in>K i. cmod (\<F> (k n) x - g x) < e\<rbrakk> \<Longrightarrow> thesis; x \<in> K i\<rbrakk> \<Longrightarrow> cmod (\<F> n x) \<le> B i
 3. \<And>x e. \<lbrakk>\<And>g k. \<lbrakk>continuous_on (K i) g; strict_mono k; \<And>e. 0 < e \<Longrightarrow> \<exists>N. \<forall>n\<ge>N. \<forall>x\<in>K i. cmod (\<F> (k n) x - g x) < e\<rbrakk> \<Longrightarrow> thesis; x \<in> K i; 0 < e\<rbrakk> \<Longrightarrow> \<exists>d>0. \<forall>n y. y \<in> K i \<and> cmod (x - y) < d \<longrightarrow> cmod (\<F> n x - \<F> n y) < e
 4. \<And>g k. \<lbrakk>\<And>g k. \<lbrakk>continuous_on (K i) g; strict_mono k; \<And>e. 0 < e \<Longrightarrow> \<exists>N. \<forall>n\<ge>N. \<forall>x\<in>K i. cmod (\<F> (k n) x - g x) < e\<rbrakk> \<Longrightarrow> thesis; continuous_on (K i) g; strict_mono k; \<And>e. 0 < e \<Longrightarrow> \<exists>N. \<forall>n x. N \<le> n \<and> x \<in> K i \<longrightarrow> cmod (\<F> (k n) x - g x) < e\<rbrakk> \<Longrightarrow> thesis
[PROOF STEP]
show "\<exists>d>0. \<forall>n y. y \<in> K i \<and> cmod (z - y) < d \<longrightarrow> cmod (\<F> n z - \<F> n y) < e"
             if z: "z \<in> K i" and "0 < e" for z e
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<exists>d>0. \<forall>n y. y \<in> K i \<and> cmod (z - y) < d \<longrightarrow> cmod (\<F> n z - \<F> n y) < e
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<exists>d>0. \<forall>n y. y \<in> K i \<and> cmod (z - y) < d \<longrightarrow> cmod (\<F> n z - \<F> n y) < e
[PROOF STEP]
obtain r where "0 < r" and r: "cball z r \<subseteq> S"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (\<And>r. \<lbrakk>0 < r; cball z r \<subseteq> S\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
using z KS [of i] \<open>open S\<close>
[PROOF STATE]
proof (prove)
using this:
z \<in> K i
K i \<subseteq> S
open S

goal (1 subgoal):
 1. (\<And>r. \<lbrakk>0 < r; cball z r \<subseteq> S\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by (force simp: open_contains_cball)
[PROOF STATE]
proof (state)
this:
0 < r
cball z r \<subseteq> S

goal (1 subgoal):
 1. \<exists>d>0. \<forall>n y. y \<in> K i \<and> cmod (z - y) < d \<longrightarrow> cmod (\<F> n z - \<F> n y) < e
[PROOF STEP]
have "cball z (2/3 * r) \<subseteq> cball z r"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. cball z (2 / 3 * r) \<subseteq> cball z r
[PROOF STEP]
using \<open>0 < r\<close>
[PROOF STATE]
proof (prove)
using this:
0 < r

goal (1 subgoal):
 1. cball z (2 / 3 * r) \<subseteq> cball z r
[PROOF STEP]
by (simp add: cball_subset_cball_iff)
[PROOF STATE]
proof (state)
this:
cball z (2 / 3 * r) \<subseteq> cball z r

goal (1 subgoal):
 1. \<exists>d>0. \<forall>n y. y \<in> K i \<and> cmod (z - y) < d \<longrightarrow> cmod (\<F> n z - \<F> n y) < e
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
cball z (2 / 3 * r) \<subseteq> cball z r
[PROOF STEP]
have z23S: "cball z (2/3 * r) \<subseteq> S"
[PROOF STATE]
proof (prove)
using this:
cball z (2 / 3 * r) \<subseteq> cball z r

goal (1 subgoal):
 1. cball z (2 / 3 * r) \<subseteq> S
[PROOF STEP]
using r
[PROOF STATE]
proof (prove)
using this:
cball z (2 / 3 * r) \<subseteq> cball z r
cball z r \<subseteq> S

goal (1 subgoal):
 1. cball z (2 / 3 * r) \<subseteq> S
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
cball z (2 / 3 * r) \<subseteq> S

goal (1 subgoal):
 1. \<exists>d>0. \<forall>n y. y \<in> K i \<and> cmod (z - y) < d \<longrightarrow> cmod (\<F> n z - \<F> n y) < e
[PROOF STEP]
obtain M where "0 < M" and M: "\<And>n w. dist z w \<le> 2/3 * r \<Longrightarrow> norm(\<F> n w) \<le> M"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (\<And>M. \<lbrakk>0 < M; \<And>n w. dist z w \<le> 2 / 3 * r \<Longrightarrow> cmod (\<F> n w) \<le> M\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. (\<And>M. \<lbrakk>0 < M; \<And>n w. dist z w \<le> 2 / 3 * r \<Longrightarrow> cmod (\<F> n w) \<le> M\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
obtain N where N: "\<forall>n\<ge>N. cball z (2/3 * r) \<subseteq> K n"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (\<And>N. \<forall>n\<ge>N. cball z (2 / 3 * r) \<subseteq> K n \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
using subK compact_cball [of z "(2/3 * r)"] z23S
[PROOF STATE]
proof (prove)
using this:
\<lbrakk>compact ?X; ?X \<subseteq> S\<rbrakk> \<Longrightarrow> \<exists>N. \<forall>n\<ge>N. ?X \<subseteq> K n
compact (cball z (2 / 3 * r))
cball z (2 / 3 * r) \<subseteq> S

goal (1 subgoal):
 1. (\<And>N. \<forall>n\<ge>N. cball z (2 / 3 * r) \<subseteq> K n \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by force
[PROOF STATE]
proof (state)
this:
\<forall>n\<ge>N. cball z (2 / 3 * r) \<subseteq> K n

goal (1 subgoal):
 1. (\<And>M. \<lbrakk>0 < M; \<And>n w. dist z w \<le> 2 / 3 * r \<Longrightarrow> cmod (\<F> n w) \<le> M\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
have "cmod (\<F> n w) \<le> \<bar>B N\<bar> + 1" if "dist z w \<le> 2/3 * r" for n w
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. cmod (\<F> n w) \<le> \<bar>B N\<bar> + 1
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. cmod (\<F> n w) \<le> \<bar>B N\<bar> + 1
[PROOF STEP]
have "w \<in> K N"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. w \<in> K N
[PROOF STEP]
using N mem_cball that
[PROOF STATE]
proof (prove)
using this:
\<forall>n\<ge>N. cball z (2 / 3 * r) \<subseteq> K n
(?y \<in> cball ?x ?e) = (dist ?x ?y \<le> ?e)
dist z w \<le> 2 / 3 * r

goal (1 subgoal):
 1. w \<in> K N
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
w \<in> K N

goal (1 subgoal):
 1. cmod (\<F> n w) \<le> \<bar>B N\<bar> + 1
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
w \<in> K N
[PROOF STEP]
have "cmod (\<F> n w) \<le> B N"
[PROOF STATE]
proof (prove)
using this:
w \<in> K N

goal (1 subgoal):
 1. cmod (\<F> n w) \<le> B N
[PROOF STEP]
using B \<open>\<And>n. \<F> n \<in> \<H>\<close>
[PROOF STATE]
proof (prove)
using this:
w \<in> K N
\<lbrakk>?h \<in> \<H>; ?z \<in> K ?i\<rbrakk> \<Longrightarrow> cmod (?h ?z) \<le> B ?i
\<F> ?n \<in> \<H>

goal (1 subgoal):
 1. cmod (\<F> n w) \<le> B N
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
cmod (\<F> n w) \<le> B N

goal (1 subgoal):
 1. cmod (\<F> n w) \<le> \<bar>B N\<bar> + 1
[PROOF STEP]
also
[PROOF STATE]
proof (state)
this:
cmod (\<F> n w) \<le> B N

goal (1 subgoal):
 1. cmod (\<F> n w) \<le> \<bar>B N\<bar> + 1
[PROOF STEP]
have "... \<le> \<bar>B N\<bar> + 1"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. B N \<le> \<bar>B N\<bar> + 1
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
B N \<le> \<bar>B N\<bar> + 1

goal (1 subgoal):
 1. cmod (\<F> n w) \<le> \<bar>B N\<bar> + 1
[PROOF STEP]
finally
[PROOF STATE]
proof (chain)
picking this:
cmod (\<F> n w) \<le> \<bar>B N\<bar> + 1
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
cmod (\<F> n w) \<le> \<bar>B N\<bar> + 1

goal (1 subgoal):
 1. cmod (\<F> n w) \<le> \<bar>B N\<bar> + 1
[PROOF STEP]
.
[PROOF STATE]
proof (state)
this:
cmod (\<F> n w) \<le> \<bar>B N\<bar> + 1

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
dist z ?w \<le> 2 / 3 * r \<Longrightarrow> cmod (\<F> ?n ?w) \<le> \<bar>B N\<bar> + 1

goal (1 subgoal):
 1. (\<And>M. \<lbrakk>0 < M; \<And>n w. dist z w \<le> 2 / 3 * r \<Longrightarrow> cmod (\<F> n w) \<le> M\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
dist z ?w \<le> 2 / 3 * r \<Longrightarrow> cmod (\<F> ?n ?w) \<le> \<bar>B N\<bar> + 1
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
dist z ?w \<le> 2 / 3 * r \<Longrightarrow> cmod (\<F> ?n ?w) \<le> \<bar>B N\<bar> + 1

goal (1 subgoal):
 1. thesis
[PROOF STEP]
by (rule_tac M="\<bar>B N\<bar> + 1" in that) auto
[PROOF STATE]
proof (state)
this:
thesis

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
0 < M
dist z ?w \<le> 2 / 3 * r \<Longrightarrow> cmod (\<F> ?n ?w) \<le> M

goal (1 subgoal):
 1. \<exists>d>0. \<forall>n y. y \<in> K i \<and> cmod (z - y) < d \<longrightarrow> cmod (\<F> n z - \<F> n y) < e
[PROOF STEP]
have "cmod (\<F> n z - \<F> n y) < e"
              if "y \<in> K i" and y_near_z: "cmod (z - y) < r/3" "cmod (z - y) < e * r / (6 * M)"
              for n y
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. cmod (\<F> n z - \<F> n y) < e
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. cmod (\<F> n z - \<F> n y) < e
[PROOF STEP]
have "((\<lambda>w. \<F> n w / (w - \<xi>)) has_contour_integral
                    (2 * pi) * \<i> * winding_number (circlepath z (2/3 * r)) \<xi> * \<F> n \<xi>)
                (circlepath z (2/3 * r))"
             if "dist \<xi> z < (2/3 * r)" for \<xi>
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. ((\<lambda>w. \<F> n w / (w - \<xi>)) has_contour_integral complex_of_real (2 * pi) * \<i> * winding_number (circlepath z (2 / 3 * r)) \<xi> * \<F> n \<xi>) (circlepath z (2 / 3 * r))
[PROOF STEP]
proof (rule Cauchy_integral_formula_convex_simple)
[PROOF STATE]
proof (state)
goal (6 subgoals):
 1. convex ?S
 2. \<F> n holomorphic_on ?S
 3. \<xi> \<in> interior ?S
 4. valid_path (circlepath z (2 / 3 * r))
 5. path_image (circlepath z (2 / 3 * r)) \<subseteq> ?S - {\<xi>}
 6. pathfinish (circlepath z (2 / 3 * r)) = pathstart (circlepath z (2 / 3 * r))
[PROOF STEP]
have "\<F> n holomorphic_on S"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<F> n holomorphic_on S
[PROOF STEP]
by (simp add: \<H> \<open>\<And>n. \<F> n \<in> \<H>\<close>)
[PROOF STATE]
proof (state)
this:
\<F> n holomorphic_on S

goal (6 subgoals):
 1. convex ?S
 2. \<F> n holomorphic_on ?S
 3. \<xi> \<in> interior ?S
 4. valid_path (circlepath z (2 / 3 * r))
 5. path_image (circlepath z (2 / 3 * r)) \<subseteq> ?S - {\<xi>}
 6. pathfinish (circlepath z (2 / 3 * r)) = pathstart (circlepath z (2 / 3 * r))
[PROOF STEP]
with z23S
[PROOF STATE]
proof (chain)
picking this:
cball z (2 / 3 * r) \<subseteq> S
\<F> n holomorphic_on S
[PROOF STEP]
show "\<F> n holomorphic_on cball z (2/3 * r)"
[PROOF STATE]
proof (prove)
using this:
cball z (2 / 3 * r) \<subseteq> S
\<F> n holomorphic_on S

goal (1 subgoal):
 1. \<F> n holomorphic_on cball z (2 / 3 * r)
[PROOF STEP]
using holomorphic_on_subset
[PROOF STATE]
proof (prove)
using this:
cball z (2 / 3 * r) \<subseteq> S
\<F> n holomorphic_on S
\<lbrakk>?f holomorphic_on ?s; ?t \<subseteq> ?s\<rbrakk> \<Longrightarrow> ?f holomorphic_on ?t

goal (1 subgoal):
 1. \<F> n holomorphic_on cball z (2 / 3 * r)
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
\<F> n holomorphic_on cball z (2 / 3 * r)

goal (5 subgoals):
 1. convex (cball z (2 / 3 * r))
 2. \<xi> \<in> interior (cball z (2 / 3 * r))
 3. valid_path (circlepath z (2 / 3 * r))
 4. path_image (circlepath z (2 / 3 * r)) \<subseteq> cball z (2 / 3 * r) - {\<xi>}
 5. pathfinish (circlepath z (2 / 3 * r)) = pathstart (circlepath z (2 / 3 * r))
[PROOF STEP]
qed (use that \<open>0 < r\<close> in \<open>auto simp: dist_commute\<close>)
[PROOF STATE]
proof (state)
this:
dist ?\<xi> z < 2 / 3 * r \<Longrightarrow> ((\<lambda>w. \<F> n w / (w - ?\<xi>)) has_contour_integral complex_of_real (2 * pi) * \<i> * winding_number (circlepath z (2 / 3 * r)) ?\<xi> * \<F> n ?\<xi>) (circlepath z (2 / 3 * r))

goal (1 subgoal):
 1. cmod (\<F> n z - \<F> n y) < e
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
dist ?\<xi> z < 2 / 3 * r \<Longrightarrow> ((\<lambda>w. \<F> n w / (w - ?\<xi>)) has_contour_integral complex_of_real (2 * pi) * \<i> * winding_number (circlepath z (2 / 3 * r)) ?\<xi> * \<F> n ?\<xi>) (circlepath z (2 / 3 * r))
[PROOF STEP]
have *: "((\<lambda>w. \<F> n w / (w - \<xi>)) has_contour_integral (2 * pi) * \<i> * \<F> n \<xi>)
                     (circlepath z (2/3 * r))"
             if "dist \<xi> z < (2/3 * r)" for \<xi>
[PROOF STATE]
proof (prove)
using this:
dist ?\<xi> z < 2 / 3 * r \<Longrightarrow> ((\<lambda>w. \<F> n w / (w - ?\<xi>)) has_contour_integral complex_of_real (2 * pi) * \<i> * winding_number (circlepath z (2 / 3 * r)) ?\<xi> * \<F> n ?\<xi>) (circlepath z (2 / 3 * r))

goal (1 subgoal):
 1. ((\<lambda>w. \<F> n w / (w - \<xi>)) has_contour_integral complex_of_real (2 * pi) * \<i> * \<F> n \<xi>) (circlepath z (2 / 3 * r))
[PROOF STEP]
using that
[PROOF STATE]
proof (prove)
using this:
dist ?\<xi> z < 2 / 3 * r \<Longrightarrow> ((\<lambda>w. \<F> n w / (w - ?\<xi>)) has_contour_integral complex_of_real (2 * pi) * \<i> * winding_number (circlepath z (2 / 3 * r)) ?\<xi> * \<F> n ?\<xi>) (circlepath z (2 / 3 * r))
dist \<xi> z < 2 / 3 * r

goal (1 subgoal):
 1. ((\<lambda>w. \<F> n w / (w - \<xi>)) has_contour_integral complex_of_real (2 * pi) * \<i> * \<F> n \<xi>) (circlepath z (2 / 3 * r))
[PROOF STEP]
by (simp add: winding_number_circlepath dist_norm)
[PROOF STATE]
proof (state)
this:
dist ?\<xi> z < 2 / 3 * r \<Longrightarrow> ((\<lambda>w. \<F> n w / (w - ?\<xi>)) has_contour_integral complex_of_real (2 * pi) * \<i> * \<F> n ?\<xi>) (circlepath z (2 / 3 * r))

goal (1 subgoal):
 1. cmod (\<F> n z - \<F> n y) < e
[PROOF STEP]
have y: "((\<lambda>w. \<F> n w / (w - y)) has_contour_integral (2 * pi) * \<i> * \<F> n y)
                    (circlepath z (2/3 * r))"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. ((\<lambda>w. \<F> n w / (w - y)) has_contour_integral complex_of_real (2 * pi) * \<i> * \<F> n y) (circlepath z (2 / 3 * r))
[PROOF STEP]
proof (rule *)
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. dist y z < 2 / 3 * r
[PROOF STEP]
show "dist y z < 2/3 * r"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. dist y z < 2 / 3 * r
[PROOF STEP]
using that \<open>0 < r\<close>
[PROOF STATE]
proof (prove)
using this:
y \<in> K i
cmod (z - y) < r / 3
cmod (z - y) < e * r / (6 * M)
0 < r

goal (1 subgoal):
 1. dist y z < 2 / 3 * r
[PROOF STEP]
by (simp only: dist_norm norm_minus_commute)
[PROOF STATE]
proof (state)
this:
dist y z < 2 / 3 * r

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
((\<lambda>w. \<F> n w / (w - y)) has_contour_integral complex_of_real (2 * pi) * \<i> * \<F> n y) (circlepath z (2 / 3 * r))

goal (1 subgoal):
 1. cmod (\<F> n z - \<F> n y) < e
[PROOF STEP]
have z: "((\<lambda>w. \<F> n w / (w - z)) has_contour_integral (2 * pi) * \<i> * \<F> n z)
                 (circlepath z (2/3 * r))"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. ((\<lambda>w. \<F> n w / (w - z)) has_contour_integral complex_of_real (2 * pi) * \<i> * \<F> n z) (circlepath z (2 / 3 * r))
[PROOF STEP]
using \<open>0 < r\<close>
[PROOF STATE]
proof (prove)
using this:
0 < r

goal (1 subgoal):
 1. ((\<lambda>w. \<F> n w / (w - z)) has_contour_integral complex_of_real (2 * pi) * \<i> * \<F> n z) (circlepath z (2 / 3 * r))
[PROOF STEP]
by (force intro!: *)
[PROOF STATE]
proof (state)
this:
((\<lambda>w. \<F> n w / (w - z)) has_contour_integral complex_of_real (2 * pi) * \<i> * \<F> n z) (circlepath z (2 / 3 * r))

goal (1 subgoal):
 1. cmod (\<F> n z - \<F> n y) < e
[PROOF STEP]
have le_er: "cmod (\<F> n x / (x - y) - \<F> n x / (x - z)) \<le> e / r"
                if "cmod (x - z) = r/3 + r/3" for x
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. cmod (\<F> n x / (x - y) - \<F> n x / (x - z)) \<le> e / r
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. cmod (\<F> n x / (x - y) - \<F> n x / (x - z)) \<le> e / r
[PROOF STEP]
have "\<not> (cmod (x - y) < r/3)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<not> cmod (x - y) < r / 3
[PROOF STEP]
using y_near_z(1) that \<open>M > 0\<close> \<open>r > 0\<close>
[PROOF STATE]
proof (prove)
using this:
cmod (z - y) < r / 3
cmod (x - z) = r / 3 + r / 3
0 < M
0 < r

goal (1 subgoal):
 1. \<not> cmod (x - y) < r / 3
[PROOF STEP]
by (metis (full_types) norm_diff_triangle_less norm_minus_commute order_less_irrefl)
[PROOF STATE]
proof (state)
this:
\<not> cmod (x - y) < r / 3

goal (1 subgoal):
 1. cmod (\<F> n x / (x - y) - \<F> n x / (x - z)) \<le> e / r
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
\<not> cmod (x - y) < r / 3
[PROOF STEP]
have r4_le_xy: "r/4 \<le> cmod (x - y)"
[PROOF STATE]
proof (prove)
using this:
\<not> cmod (x - y) < r / 3

goal (1 subgoal):
 1. r / 4 \<le> cmod (x - y)
[PROOF STEP]
using \<open>r > 0\<close>
[PROOF STATE]
proof (prove)
using this:
\<not> cmod (x - y) < r / 3
0 < r

goal (1 subgoal):
 1. r / 4 \<le> cmod (x - y)
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
r / 4 \<le> cmod (x - y)

goal (1 subgoal):
 1. cmod (\<F> n x / (x - y) - \<F> n x / (x - z)) \<le> e / r
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
r / 4 \<le> cmod (x - y)
[PROOF STEP]
have neq: "x \<noteq> y" "x \<noteq> z"
[PROOF STATE]
proof (prove)
using this:
r / 4 \<le> cmod (x - y)

goal (1 subgoal):
 1. x \<noteq> y &&& x \<noteq> z
[PROOF STEP]
using that \<open>r > 0\<close>
[PROOF STATE]
proof (prove)
using this:
r / 4 \<le> cmod (x - y)
cmod (x - z) = r / 3 + r / 3
0 < r

goal (1 subgoal):
 1. x \<noteq> y &&& x \<noteq> z
[PROOF STEP]
by (auto simp: field_split_simps norm_minus_commute)
[PROOF STATE]
proof (state)
this:
x \<noteq> y
x \<noteq> z

goal (1 subgoal):
 1. cmod (\<F> n x / (x - y) - \<F> n x / (x - z)) \<le> e / r
[PROOF STEP]
have leM: "cmod (\<F> n x) \<le> M"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. cmod (\<F> n x) \<le> M
[PROOF STEP]
by (simp add: M dist_commute dist_norm that)
[PROOF STATE]
proof (state)
this:
cmod (\<F> n x) \<le> M

goal (1 subgoal):
 1. cmod (\<F> n x / (x - y) - \<F> n x / (x - z)) \<le> e / r
[PROOF STEP]
have "cmod (\<F> n x / (x - y) - \<F> n x / (x - z)) = cmod (\<F> n x) * cmod (1 / (x - y) - 1 / (x - z))"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. cmod (\<F> n x / (x - y) - \<F> n x / (x - z)) = cmod (\<F> n x) * cmod (1 / (x - y) - 1 / (x - z))
[PROOF STEP]
by (metis (no_types, lifting) divide_inverse mult.left_neutral norm_mult right_diff_distrib')
[PROOF STATE]
proof (state)
this:
cmod (\<F> n x / (x - y) - \<F> n x / (x - z)) = cmod (\<F> n x) * cmod (1 / (x - y) - 1 / (x - z))

goal (1 subgoal):
 1. cmod (\<F> n x / (x - y) - \<F> n x / (x - z)) \<le> e / r
[PROOF STEP]
also
[PROOF STATE]
proof (state)
this:
cmod (\<F> n x / (x - y) - \<F> n x / (x - z)) = cmod (\<F> n x) * cmod (1 / (x - y) - 1 / (x - z))

goal (1 subgoal):
 1. cmod (\<F> n x / (x - y) - \<F> n x / (x - z)) \<le> e / r
[PROOF STEP]
have "... = cmod (\<F> n x) * cmod ((y - z) / ((x - y) * (x - z)))"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. cmod (\<F> n x) * cmod (1 / (x - y) - 1 / (x - z)) = cmod (\<F> n x) * cmod ((y - z) / ((x - y) * (x - z)))
[PROOF STEP]
using neq
[PROOF STATE]
proof (prove)
using this:
x \<noteq> y
x \<noteq> z

goal (1 subgoal):
 1. cmod (\<F> n x) * cmod (1 / (x - y) - 1 / (x - z)) = cmod (\<F> n x) * cmod ((y - z) / ((x - y) * (x - z)))
[PROOF STEP]
by (simp add: field_split_simps)
[PROOF STATE]
proof (state)
this:
cmod (\<F> n x) * cmod (1 / (x - y) - 1 / (x - z)) = cmod (\<F> n x) * cmod ((y - z) / ((x - y) * (x - z)))

goal (1 subgoal):
 1. cmod (\<F> n x / (x - y) - \<F> n x / (x - z)) \<le> e / r
[PROOF STEP]
also
[PROOF STATE]
proof (state)
this:
cmod (\<F> n x) * cmod (1 / (x - y) - 1 / (x - z)) = cmod (\<F> n x) * cmod ((y - z) / ((x - y) * (x - z)))

goal (1 subgoal):
 1. cmod (\<F> n x / (x - y) - \<F> n x / (x - z)) \<le> e / r
[PROOF STEP]
have "... = cmod (\<F> n x) * (cmod (y - z) / (cmod(x - y) * (2/3 * r)))"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. cmod (\<F> n x) * cmod ((y - z) / ((x - y) * (x - z))) = cmod (\<F> n x) * (cmod (y - z) / (cmod (x - y) * (2 / 3 * r)))
[PROOF STEP]
by (simp add: norm_mult norm_divide that)
[PROOF STATE]
proof (state)
this:
cmod (\<F> n x) * cmod ((y - z) / ((x - y) * (x - z))) = cmod (\<F> n x) * (cmod (y - z) / (cmod (x - y) * (2 / 3 * r)))

goal (1 subgoal):
 1. cmod (\<F> n x / (x - y) - \<F> n x / (x - z)) \<le> e / r
[PROOF STEP]
also
[PROOF STATE]
proof (state)
this:
cmod (\<F> n x) * cmod ((y - z) / ((x - y) * (x - z))) = cmod (\<F> n x) * (cmod (y - z) / (cmod (x - y) * (2 / 3 * r)))

goal (1 subgoal):
 1. cmod (\<F> n x / (x - y) - \<F> n x / (x - z)) \<le> e / r
[PROOF STEP]
have "... \<le> M * (cmod (y - z) / (cmod(x - y) * (2/3 * r)))"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. cmod (\<F> n x) * (cmod (y - z) / (cmod (x - y) * (2 / 3 * r))) \<le> M * (cmod (y - z) / (cmod (x - y) * (2 / 3 * r)))
[PROOF STEP]
using \<open>r > 0\<close> \<open>M > 0\<close>
[PROOF STATE]
proof (prove)
using this:
0 < r
0 < M

goal (1 subgoal):
 1. cmod (\<F> n x) * (cmod (y - z) / (cmod (x - y) * (2 / 3 * r))) \<le> M * (cmod (y - z) / (cmod (x - y) * (2 / 3 * r)))
[PROOF STEP]
by (intro mult_mono [OF leM]) auto
[PROOF STATE]
proof (state)
this:
cmod (\<F> n x) * (cmod (y - z) / (cmod (x - y) * (2 / 3 * r))) \<le> M * (cmod (y - z) / (cmod (x - y) * (2 / 3 * r)))

goal (1 subgoal):
 1. cmod (\<F> n x / (x - y) - \<F> n x / (x - z)) \<le> e / r
[PROOF STEP]
also
[PROOF STATE]
proof (state)
this:
cmod (\<F> n x) * (cmod (y - z) / (cmod (x - y) * (2 / 3 * r))) \<le> M * (cmod (y - z) / (cmod (x - y) * (2 / 3 * r)))

goal (1 subgoal):
 1. cmod (\<F> n x / (x - y) - \<F> n x / (x - z)) \<le> e / r
[PROOF STEP]
have "... < M * ((e * r / (6 * M)) / (cmod(x - y) * (2/3 * r)))"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. M * (cmod (y - z) / (cmod (x - y) * (2 / 3 * r))) < M * (e * r / (6 * M) / (cmod (x - y) * (2 / 3 * r)))
[PROOF STEP]
unfolding mult_less_cancel_left
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (0 \<le> M \<longrightarrow> cmod (y - z) / (cmod (x - y) * (2 / 3 * r)) < e * r / (6 * M) / (cmod (x - y) * (2 / 3 * r))) \<and> (M \<le> 0 \<longrightarrow> e * r / (6 * M) / (cmod (x - y) * (2 / 3 * r)) < cmod (y - z) / (cmod (x - y) * (2 / 3 * r)))
[PROOF STEP]
using y_near_z(2) \<open>M > 0\<close> \<open>r > 0\<close> neq
[PROOF STATE]
proof (prove)
using this:
cmod (z - y) < e * r / (6 * M)
0 < M
0 < r
x \<noteq> y
x \<noteq> z

goal (1 subgoal):
 1. (0 \<le> M \<longrightarrow> cmod (y - z) / (cmod (x - y) * (2 / 3 * r)) < e * r / (6 * M) / (cmod (x - y) * (2 / 3 * r))) \<and> (M \<le> 0 \<longrightarrow> e * r / (6 * M) / (cmod (x - y) * (2 / 3 * r)) < cmod (y - z) / (cmod (x - y) * (2 / 3 * r)))
[PROOF STEP]
by (simp add: field_simps mult_less_0_iff norm_minus_commute)
[PROOF STATE]
proof (state)
this:
M * (cmod (y - z) / (cmod (x - y) * (2 / 3 * r))) < M * (e * r / (6 * M) / (cmod (x - y) * (2 / 3 * r)))

goal (1 subgoal):
 1. cmod (\<F> n x / (x - y) - \<F> n x / (x - z)) \<le> e / r
[PROOF STEP]
also
[PROOF STATE]
proof (state)
this:
M * (cmod (y - z) / (cmod (x - y) * (2 / 3 * r))) < M * (e * r / (6 * M) / (cmod (x - y) * (2 / 3 * r)))

goal (1 subgoal):
 1. cmod (\<F> n x / (x - y) - \<F> n x / (x - z)) \<le> e / r
[PROOF STEP]
have "... \<le> e/r"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. M * (e * r / (6 * M) / (cmod (x - y) * (2 / 3 * r))) \<le> e / r
[PROOF STEP]
using \<open>e > 0\<close> \<open>r > 0\<close> r4_le_xy
[PROOF STATE]
proof (prove)
using this:
0 < e
0 < r
r / 4 \<le> cmod (x - y)

goal (1 subgoal):
 1. M * (e * r / (6 * M) / (cmod (x - y) * (2 / 3 * r))) \<le> e / r
[PROOF STEP]
by (simp add: field_split_simps)
[PROOF STATE]
proof (state)
this:
M * (e * r / (6 * M) / (cmod (x - y) * (2 / 3 * r))) \<le> e / r

goal (1 subgoal):
 1. cmod (\<F> n x / (x - y) - \<F> n x / (x - z)) \<le> e / r
[PROOF STEP]
finally
[PROOF STATE]
proof (chain)
picking this:
cmod (\<F> n x / (x - y) - \<F> n x / (x - z)) < e / r
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
cmod (\<F> n x / (x - y) - \<F> n x / (x - z)) < e / r

goal (1 subgoal):
 1. cmod (\<F> n x / (x - y) - \<F> n x / (x - z)) \<le> e / r
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
cmod (\<F> n x / (x - y) - \<F> n x / (x - z)) \<le> e / r

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
cmod (?x - z) = r / 3 + r / 3 \<Longrightarrow> cmod (\<F> n ?x / (?x - y) - \<F> n ?x / (?x - z)) \<le> e / r

goal (1 subgoal):
 1. cmod (\<F> n z - \<F> n y) < e
[PROOF STEP]
have "(2 * pi) * cmod (\<F> n y - \<F> n z) = cmod ((2 * pi) * \<i> * \<F> n y - (2 * pi) * \<i> * \<F> n z)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. 2 * pi * cmod (\<F> n y - \<F> n z) = cmod (complex_of_real (2 * pi) * \<i> * \<F> n y - complex_of_real (2 * pi) * \<i> * \<F> n z)
[PROOF STEP]
by (simp add: right_diff_distrib [symmetric] norm_mult)
[PROOF STATE]
proof (state)
this:
2 * pi * cmod (\<F> n y - \<F> n z) = cmod (complex_of_real (2 * pi) * \<i> * \<F> n y - complex_of_real (2 * pi) * \<i> * \<F> n z)

goal (1 subgoal):
 1. cmod (\<F> n z - \<F> n y) < e
[PROOF STEP]
also
[PROOF STATE]
proof (state)
this:
2 * pi * cmod (\<F> n y - \<F> n z) = cmod (complex_of_real (2 * pi) * \<i> * \<F> n y - complex_of_real (2 * pi) * \<i> * \<F> n z)

goal (1 subgoal):
 1. cmod (\<F> n z - \<F> n y) < e
[PROOF STEP]
have "cmod ((2 * pi) * \<i> * \<F> n y - (2 * pi) * \<i> * \<F> n z) \<le> e / r * (2 * pi * (2/3 * r))"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. cmod (complex_of_real (2 * pi) * \<i> * \<F> n y - complex_of_real (2 * pi) * \<i> * \<F> n z) \<le> e / r * (2 * pi * (2 / 3 * r))
[PROOF STEP]
proof (rule has_contour_integral_bound_circlepath [OF has_contour_integral_diff [OF y z]])
[PROOF STATE]
proof (state)
goal (3 subgoals):
 1. 0 \<le> e / r
 2. 0 < 2 / 3 * r
 3. \<And>x. cmod (x - z) = 2 / 3 * r \<Longrightarrow> cmod (\<F> n x / (x - y) - \<F> n x / (x - z)) \<le> e / r
[PROOF STEP]
show "\<And>x. cmod (x - z) = 2/3 * r \<Longrightarrow> cmod (\<F> n x / (x - y) - \<F> n x / (x - z)) \<le> e / r"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>x. cmod (x - z) = 2 / 3 * r \<Longrightarrow> cmod (\<F> n x / (x - y) - \<F> n x / (x - z)) \<le> e / r
[PROOF STEP]
using le_er
[PROOF STATE]
proof (prove)
using this:
cmod (?x - z) = r / 3 + r / 3 \<Longrightarrow> cmod (\<F> n ?x / (?x - y) - \<F> n ?x / (?x - z)) \<le> e / r

goal (1 subgoal):
 1. \<And>x. cmod (x - z) = 2 / 3 * r \<Longrightarrow> cmod (\<F> n x / (x - y) - \<F> n x / (x - z)) \<le> e / r
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
cmod (?x - z) = 2 / 3 * r \<Longrightarrow> cmod (\<F> n ?x / (?x - y) - \<F> n ?x / (?x - z)) \<le> e / r

goal (2 subgoals):
 1. 0 \<le> e / r
 2. 0 < 2 / 3 * r
[PROOF STEP]
qed (use \<open>e > 0\<close> \<open>r > 0\<close> in auto)
[PROOF STATE]
proof (state)
this:
cmod (complex_of_real (2 * pi) * \<i> * \<F> n y - complex_of_real (2 * pi) * \<i> * \<F> n z) \<le> e / r * (2 * pi * (2 / 3 * r))

goal (1 subgoal):
 1. cmod (\<F> n z - \<F> n y) < e
[PROOF STEP]
also
[PROOF STATE]
proof (state)
this:
cmod (complex_of_real (2 * pi) * \<i> * \<F> n y - complex_of_real (2 * pi) * \<i> * \<F> n z) \<le> e / r * (2 * pi * (2 / 3 * r))

goal (1 subgoal):
 1. cmod (\<F> n z - \<F> n y) < e
[PROOF STEP]
have "... = (2 * pi) * e * ((2/3))"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. e / r * (2 * pi * (2 / 3 * r)) = 2 * pi * e * (2 / 3)
[PROOF STEP]
using \<open>r > 0\<close>
[PROOF STATE]
proof (prove)
using this:
0 < r

goal (1 subgoal):
 1. e / r * (2 * pi * (2 / 3 * r)) = 2 * pi * e * (2 / 3)
[PROOF STEP]
by (simp add: field_split_simps)
[PROOF STATE]
proof (state)
this:
e / r * (2 * pi * (2 / 3 * r)) = 2 * pi * e * (2 / 3)

goal (1 subgoal):
 1. cmod (\<F> n z - \<F> n y) < e
[PROOF STEP]
finally
[PROOF STATE]
proof (chain)
picking this:
2 * pi * cmod (\<F> n y - \<F> n z) \<le> 2 * pi * e * (2 / 3)
[PROOF STEP]
have "cmod (\<F> n y - \<F> n z) \<le> e * (2/3)"
[PROOF STATE]
proof (prove)
using this:
2 * pi * cmod (\<F> n y - \<F> n z) \<le> 2 * pi * e * (2 / 3)

goal (1 subgoal):
 1. cmod (\<F> n y - \<F> n z) \<le> e * (2 / 3)
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
cmod (\<F> n y - \<F> n z) \<le> e * (2 / 3)

goal (1 subgoal):
 1. cmod (\<F> n z - \<F> n y) < e
[PROOF STEP]
also
[PROOF STATE]
proof (state)
this:
cmod (\<F> n y - \<F> n z) \<le> e * (2 / 3)

goal (1 subgoal):
 1. cmod (\<F> n z - \<F> n y) < e
[PROOF STEP]
have "... < e"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. e * (2 / 3) < e
[PROOF STEP]
using \<open>e > 0\<close>
[PROOF STATE]
proof (prove)
using this:
0 < e

goal (1 subgoal):
 1. e * (2 / 3) < e
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
e * (2 / 3) < e

goal (1 subgoal):
 1. cmod (\<F> n z - \<F> n y) < e
[PROOF STEP]
finally
[PROOF STATE]
proof (chain)
picking this:
cmod (\<F> n y - \<F> n z) < e
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
cmod (\<F> n y - \<F> n z) < e

goal (1 subgoal):
 1. cmod (\<F> n z - \<F> n y) < e
[PROOF STEP]
by (simp add: norm_minus_commute)
[PROOF STATE]
proof (state)
this:
cmod (\<F> n z - \<F> n y) < e

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
\<lbrakk>?y \<in> K i; cmod (z - ?y) < r / 3; cmod (z - ?y) < e * r / (6 * M)\<rbrakk> \<Longrightarrow> cmod (\<F> ?n z - \<F> ?n ?y) < e

goal (1 subgoal):
 1. \<exists>d>0. \<forall>n y. y \<in> K i \<and> cmod (z - y) < d \<longrightarrow> cmod (\<F> n z - \<F> n y) < e
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
\<lbrakk>?y \<in> K i; cmod (z - ?y) < r / 3; cmod (z - ?y) < e * r / (6 * M)\<rbrakk> \<Longrightarrow> cmod (\<F> ?n z - \<F> ?n ?y) < e
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
\<lbrakk>?y \<in> K i; cmod (z - ?y) < r / 3; cmod (z - ?y) < e * r / (6 * M)\<rbrakk> \<Longrightarrow> cmod (\<F> ?n z - \<F> ?n ?y) < e

goal (1 subgoal):
 1. \<exists>d>0. \<forall>n y. y \<in> K i \<and> cmod (z - y) < d \<longrightarrow> cmod (\<F> n z - \<F> n y) < e
[PROOF STEP]
apply (rule_tac x="min (r/3) ((e * r)/(6 * M))" in exI)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (\<And>y n. \<lbrakk>y \<in> K i; cmod (z - y) < r / 3; cmod (z - y) < e * r / (6 * M)\<rbrakk> \<Longrightarrow> cmod (\<F> n z - \<F> n y) < e) \<Longrightarrow> 0 < min (r / 3) (e * r / (6 * M)) \<and> (\<forall>n y. y \<in> K i \<and> cmod (z - y) < min (r / 3) (e * r / (6 * M)) \<longrightarrow> cmod (\<F> n z - \<F> n y) < e)
[PROOF STEP]
using \<open>0 < e\<close> \<open>0 < r\<close> \<open>0 < M\<close>
[PROOF STATE]
proof (prove)
using this:
0 < e
0 < r
0 < M

goal (1 subgoal):
 1. (\<And>y n. \<lbrakk>y \<in> K i; cmod (z - y) < r / 3; cmod (z - y) < e * r / (6 * M)\<rbrakk> \<Longrightarrow> cmod (\<F> n z - \<F> n y) < e) \<Longrightarrow> 0 < min (r / 3) (e * r / (6 * M)) \<and> (\<forall>n y. y \<in> K i \<and> cmod (z - y) < min (r / 3) (e * r / (6 * M)) \<longrightarrow> cmod (\<F> n z - \<F> n y) < e)
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
\<exists>d>0. \<forall>n y. y \<in> K i \<and> cmod (z - y) < d \<longrightarrow> cmod (\<F> n z - \<F> n y) < e

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
\<lbrakk>?z \<in> K i; 0 < ?e\<rbrakk> \<Longrightarrow> \<exists>d>0. \<forall>n y. y \<in> K i \<and> cmod (?z - y) < d \<longrightarrow> cmod (\<F> n ?z - \<F> n y) < ?e

goal (3 subgoals):
 1. (\<And>g k. \<lbrakk>continuous_on (K i) g; strict_mono k; \<And>e. 0 < e \<Longrightarrow> \<exists>N. \<forall>n\<ge>N. \<forall>x\<in>K i. cmod (\<F> (k n) x - g x) < e\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> compact (K i)
 2. \<And>n x. \<lbrakk>\<And>g k. \<lbrakk>continuous_on (K i) g; strict_mono k; \<And>e. 0 < e \<Longrightarrow> \<exists>N. \<forall>n\<ge>N. \<forall>x\<in>K i. cmod (\<F> (k n) x - g x) < e\<rbrakk> \<Longrightarrow> thesis; x \<in> K i\<rbrakk> \<Longrightarrow> cmod (\<F> n x) \<le> B i
 3. \<And>g k. \<lbrakk>\<And>g k. \<lbrakk>continuous_on (K i) g; strict_mono k; \<And>e. 0 < e \<Longrightarrow> \<exists>N. \<forall>n\<ge>N. \<forall>x\<in>K i. cmod (\<F> (k n) x - g x) < e\<rbrakk> \<Longrightarrow> thesis; continuous_on (K i) g; strict_mono k; \<And>e. 0 < e \<Longrightarrow> \<exists>N. \<forall>n x. N \<le> n \<and> x \<in> K i \<longrightarrow> cmod (\<F> (k n) x - g x) < e\<rbrakk> \<Longrightarrow> thesis
[PROOF STEP]
show "\<And>n x.  x \<in> K i \<Longrightarrow> cmod (\<F> n x) \<le> B i"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>n x. x \<in> K i \<Longrightarrow> cmod (\<F> n x) \<le> B i
[PROOF STEP]
using B \<open>\<And>n. \<F> n \<in> \<H>\<close>
[PROOF STATE]
proof (prove)
using this:
\<lbrakk>?h \<in> \<H>; ?z \<in> K ?i\<rbrakk> \<Longrightarrow> cmod (?h ?z) \<le> B ?i
\<F> ?n \<in> \<H>

goal (1 subgoal):
 1. \<And>n x. x \<in> K i \<Longrightarrow> cmod (\<F> n x) \<le> B i
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
?x \<in> K i \<Longrightarrow> cmod (\<F> ?n ?x) \<le> B i

goal (2 subgoals):
 1. (\<And>g k. \<lbrakk>continuous_on (K i) g; strict_mono k; \<And>e. 0 < e \<Longrightarrow> \<exists>N. \<forall>n\<ge>N. \<forall>x\<in>K i. cmod (\<F> (k n) x - g x) < e\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> compact (K i)
 2. \<And>g k. \<lbrakk>\<And>g k. \<lbrakk>continuous_on (K i) g; strict_mono k; \<And>e. 0 < e \<Longrightarrow> \<exists>N. \<forall>n\<ge>N. \<forall>x\<in>K i. cmod (\<F> (k n) x - g x) < e\<rbrakk> \<Longrightarrow> thesis; continuous_on (K i) g; strict_mono k; \<And>e. 0 < e \<Longrightarrow> \<exists>N. \<forall>n x. N \<le> n \<and> x \<in> K i \<longrightarrow> cmod (\<F> (k n) x - g x) < e\<rbrakk> \<Longrightarrow> thesis
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. (\<And>g k. \<lbrakk>continuous_on (K i) g; strict_mono k; \<And>e. 0 < e \<Longrightarrow> \<exists>N. \<forall>n\<ge>N. \<forall>x\<in>K i. cmod (\<F> (k n) x - g x) < e\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> compact (K i)
 2. \<And>g k. \<lbrakk>\<And>g k. \<lbrakk>continuous_on (K i) g; strict_mono k; \<And>e. 0 < e \<Longrightarrow> \<exists>N. \<forall>n\<ge>N. \<forall>x\<in>K i. cmod (\<F> (k n) x - g x) < e\<rbrakk> \<Longrightarrow> thesis; continuous_on (K i) g; strict_mono k; \<And>e. 0 < e \<Longrightarrow> \<exists>N. \<forall>n x. N \<le> n \<and> x \<in> K i \<longrightarrow> cmod (\<F> (k n) x - g x) < e\<rbrakk> \<Longrightarrow> thesis
[PROOF STEP]
fix g :: "complex \<Rightarrow> complex" and k :: "nat \<Rightarrow> nat"
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. (\<And>g k. \<lbrakk>continuous_on (K i) g; strict_mono k; \<And>e. 0 < e \<Longrightarrow> \<exists>N. \<forall>n\<ge>N. \<forall>x\<in>K i. cmod (\<F> (k n) x - g x) < e\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> compact (K i)
 2. \<And>g k. \<lbrakk>\<And>g k. \<lbrakk>continuous_on (K i) g; strict_mono k; \<And>e. 0 < e \<Longrightarrow> \<exists>N. \<forall>n\<ge>N. \<forall>x\<in>K i. cmod (\<F> (k n) x - g x) < e\<rbrakk> \<Longrightarrow> thesis; continuous_on (K i) g; strict_mono k; \<And>e. 0 < e \<Longrightarrow> \<exists>N. \<forall>n x. N \<le> n \<and> x \<in> K i \<longrightarrow> cmod (\<F> (k n) x - g x) < e\<rbrakk> \<Longrightarrow> thesis
[PROOF STEP]
assume *: "\<And>(g::complex\<Rightarrow>complex) (k::nat\<Rightarrow>nat). continuous_on (K i) g \<Longrightarrow>
                  strict_mono k \<Longrightarrow>
                  (\<And>e. 0 < e \<Longrightarrow> \<exists>N. \<forall>n\<ge>N. \<forall>x\<in>K i. cmod (\<F> (k n) x - g x) < e) \<Longrightarrow> thesis"
           "continuous_on (K i) g"
           "strict_mono k"
           "\<And>e. 0 < e \<Longrightarrow> \<exists>N. \<forall>n x. N \<le> n \<and> x \<in> K i \<longrightarrow> cmod (\<F> (k n) x - g x) < e"
[PROOF STATE]
proof (state)
this:
\<lbrakk>continuous_on (K i) ?g; strict_mono ?k; \<And>e. 0 < e \<Longrightarrow> \<exists>N. \<forall>n\<ge>N. \<forall>x\<in>K i. cmod (\<F> (?k n) x - ?g x) < e\<rbrakk> \<Longrightarrow> thesis
continuous_on (K i) g
strict_mono k
0 < ?e \<Longrightarrow> \<exists>N. \<forall>n x. N \<le> n \<and> x \<in> K i \<longrightarrow> cmod (\<F> (k n) x - g x) < ?e

goal (2 subgoals):
 1. (\<And>g k. \<lbrakk>continuous_on (K i) g; strict_mono k; \<And>e. 0 < e \<Longrightarrow> \<exists>N. \<forall>n\<ge>N. \<forall>x\<in>K i. cmod (\<F> (k n) x - g x) < e\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> compact (K i)
 2. \<And>g k. \<lbrakk>\<And>g k. \<lbrakk>continuous_on (K i) g; strict_mono k; \<And>e. 0 < e \<Longrightarrow> \<exists>N. \<forall>n\<ge>N. \<forall>x\<in>K i. cmod (\<F> (k n) x - g x) < e\<rbrakk> \<Longrightarrow> thesis; continuous_on (K i) g; strict_mono k; \<And>e. 0 < e \<Longrightarrow> \<exists>N. \<forall>n x. N \<le> n \<and> x \<in> K i \<longrightarrow> cmod (\<F> (k n) x - g x) < e\<rbrakk> \<Longrightarrow> thesis
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. thesis
[PROOF STEP]
by (rule *(1)[OF *(2,3)], drule *(4)) auto
[PROOF STATE]
proof (state)
this:
thesis

goal (1 subgoal):
 1. (\<And>g k. \<lbrakk>continuous_on (K i) g; strict_mono k; \<And>e. 0 < e \<Longrightarrow> \<exists>N. \<forall>n\<ge>N. \<forall>x\<in>K i. cmod (\<F> (k n) x - g x) < e\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> compact (K i)
[PROOF STEP]
qed (use comK in simp_all)
[PROOF STATE]
proof (state)
this:
continuous_on (K i) g
strict_mono k
0 < ?e \<Longrightarrow> \<exists>N. \<forall>n\<ge>N. \<forall>x\<in>K i. cmod (\<F> (k n) x - g x) < ?e

goal (1 subgoal):
 1. \<exists>r g. strict_mono r \<and> (\<forall>e>0. \<exists>N. \<forall>n\<ge>N. \<forall>x\<in>K i. cmod ((\<F> \<circ> r) n x - g x) < e)
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
continuous_on (K i) g
strict_mono k
0 < ?e \<Longrightarrow> \<exists>N. \<forall>n\<ge>N. \<forall>x\<in>K i. cmod (\<F> (k n) x - g x) < ?e
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
continuous_on (K i) g
strict_mono k
0 < ?e \<Longrightarrow> \<exists>N. \<forall>n\<ge>N. \<forall>x\<in>K i. cmod (\<F> (k n) x - g x) < ?e

goal (1 subgoal):
 1. \<exists>r g. strict_mono r \<and> (\<forall>e>0. \<exists>N. \<forall>n\<ge>N. \<forall>x\<in>K i. cmod ((\<F> \<circ> r) n x - g x) < e)
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
\<exists>r g. strict_mono r \<and> (\<forall>e>0. \<exists>N. \<forall>n\<ge>N. \<forall>x\<in>K i. cmod ((\<F> \<circ> r) n x - g x) < e)

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
(\<And>n. ?\<F> n \<in> \<H>) \<Longrightarrow> \<exists>r g. strict_mono r \<and> (\<forall>e>0. \<exists>N. \<forall>n\<ge>N. \<forall>x\<in>K ?i. cmod ((?\<F> \<circ> r) n x - g x) < e)

goal (1 subgoal):
 1. (\<And>g r. \<lbrakk>g holomorphic_on S; strict_mono r; \<And>x. x \<in> S \<Longrightarrow> (\<lambda>n. \<F> (r n) x) \<longlonglongrightarrow> g x; \<And>K. \<lbrakk>compact K; K \<subseteq> S\<rbrakk> \<Longrightarrow> uniform_limit K (\<F> \<circ> r) g sequentially\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
define \<Phi> where "\<Phi> \<equiv> \<lambda>g i r. \<lambda>k::nat\<Rightarrow>nat. \<forall>e>0. \<exists>N. \<forall>n\<ge>N. \<forall>x\<in>K i. cmod ((\<F> \<circ> (r \<circ> k)) n x - g x) < e"
[PROOF STATE]
proof (state)
this:
\<Phi> \<equiv> \<lambda>g i r k. \<forall>e>0. \<exists>N. \<forall>n\<ge>N. \<forall>x\<in>K i. cmod ((\<F> \<circ> (r \<circ> k)) n x - g x) < e

goal (1 subgoal):
 1. (\<And>g r. \<lbrakk>g holomorphic_on S; strict_mono r; \<And>x. x \<in> S \<Longrightarrow> (\<lambda>n. \<F> (r n) x) \<longlonglongrightarrow> g x; \<And>K. \<lbrakk>compact K; K \<subseteq> S\<rbrakk> \<Longrightarrow> uniform_limit K (\<F> \<circ> r) g sequentially\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
obtain k :: "nat \<Rightarrow> nat" where "strict_mono k" and k: "\<And>i. \<exists>g. \<Phi> g i id k"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (\<And>k. \<lbrakk>strict_mono k; \<And>i. \<exists>g. \<Phi> g i id k\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
proof (rule subsequence_diagonalization_lemma [where r=id])
[PROOF STATE]
proof (state)
goal (3 subgoals):
 1. \<And>i r. (\<And>k. \<lbrakk>strict_mono k; \<And>i. \<exists>g. \<Phi> g i id k\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> \<exists>k. strict_mono k \<and> ?P2 i (r \<circ> k)
 2. \<And>i r k1 k2 N. \<lbrakk>\<And>k. \<lbrakk>strict_mono k; \<And>i. \<exists>g. \<Phi> g i id k\<rbrakk> \<Longrightarrow> thesis; ?P2 i (r \<circ> k1); \<And>j. N \<le> j \<Longrightarrow> \<exists>j'\<ge>j. k2 j = k1 j'\<rbrakk> \<Longrightarrow> ?P2 i (r \<circ> k2)
 3. \<And>k. \<lbrakk>\<And>k. \<lbrakk>strict_mono k; \<And>i. \<exists>g. \<Phi> g i id k\<rbrakk> \<Longrightarrow> thesis; strict_mono k; \<And>i. ?P2 i (id \<circ> k)\<rbrakk> \<Longrightarrow> thesis
[PROOF STEP]
show "\<exists>g. \<Phi> g i id (r \<circ> k2)"
      if ex: "\<exists>g. \<Phi> g i id (r \<circ> k1)" and "\<And>j. N \<le> j \<Longrightarrow> \<exists>j'\<ge>j. k2 j = k1 j'"
      for i k1 k2 N and r::"nat\<Rightarrow>nat"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<exists>g. \<Phi> g i id (r \<circ> k2)
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<exists>g. \<Phi> g i id (r \<circ> k2)
[PROOF STEP]
obtain g where "\<Phi> g i id (r \<circ> k1)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (\<And>g. \<Phi> g i id (r \<circ> k1) \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
using ex
[PROOF STATE]
proof (prove)
using this:
\<exists>g. \<Phi> g i id (r \<circ> k1)

goal (1 subgoal):
 1. (\<And>g. \<Phi> g i id (r \<circ> k1) \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
\<Phi> g i id (r \<circ> k1)

goal (1 subgoal):
 1. \<exists>g. \<Phi> g i id (r \<circ> k2)
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
\<Phi> g i id (r \<circ> k1)
[PROOF STEP]
have "\<Phi> g i id (r \<circ> k2)"
[PROOF STATE]
proof (prove)
using this:
\<Phi> g i id (r \<circ> k1)

goal (1 subgoal):
 1. \<Phi> g i id (r \<circ> k2)
[PROOF STEP]
using that
[PROOF STATE]
proof (prove)
using this:
\<Phi> g i id (r \<circ> k1)
\<exists>g. \<Phi> g i id (r \<circ> k1)
N \<le> ?j \<Longrightarrow> \<exists>j'\<ge>?j. k2 ?j = k1 j'

goal (1 subgoal):
 1. \<Phi> g i id (r \<circ> k2)
[PROOF STEP]
by (simp add: \<Phi>_def) (metis (no_types, opaque_lifting) le_trans linear)
[PROOF STATE]
proof (state)
this:
\<Phi> g i id (r \<circ> k2)

goal (1 subgoal):
 1. \<exists>g. \<Phi> g i id (r \<circ> k2)
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
\<Phi> g i id (r \<circ> k2)
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
\<Phi> g i id (r \<circ> k2)

goal (1 subgoal):
 1. \<exists>g. \<Phi> g i id (r \<circ> k2)
[PROOF STEP]
by metis
[PROOF STATE]
proof (state)
this:
\<exists>g. \<Phi> g i id (r \<circ> k2)

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
\<lbrakk>\<exists>g. \<Phi> g ?i id (?r \<circ> ?k1.0); \<And>j. ?N \<le> j \<Longrightarrow> \<exists>j'\<ge>j. ?k2.0 j = ?k1.0 j'\<rbrakk> \<Longrightarrow> \<exists>g. \<Phi> g ?i id (?r \<circ> ?k2.0)

goal (2 subgoals):
 1. \<And>i r. (\<And>k. \<lbrakk>strict_mono k; \<And>i. \<exists>g. \<Phi> g i id k\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> \<exists>k. strict_mono k \<and> (\<exists>g. \<Phi> g (?i15 i (r \<circ> k)) id (r \<circ> k))
 2. \<And>k. \<lbrakk>\<And>k. \<lbrakk>strict_mono k; \<And>i. \<exists>g. \<Phi> g i id k\<rbrakk> \<Longrightarrow> thesis; strict_mono k; \<And>i. \<exists>g. \<Phi> g (?i15 i (id \<circ> k)) id (id \<circ> k)\<rbrakk> \<Longrightarrow> thesis
flex-flex pairs:
\<lambda>i r k1 k2 N g. ?i15 i (r \<circ> k1) \<equiv>\<^sup>? \<lambda>i r k1 k2 N g. ?i15 i (r \<circ> k2)
[PROOF STEP]
have "\<exists>k g. strict_mono (k::nat\<Rightarrow>nat) \<and> \<Phi> g i id (r \<circ> k)" for i r
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<exists>k g. strict_mono k \<and> \<Phi> g i id (r \<circ> k)
[PROOF STEP]
unfolding \<Phi>_def o_assoc
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<exists>k g. strict_mono k \<and> (\<forall>e>0. \<exists>N. \<forall>n\<ge>N. \<forall>x\<in>K i. cmod ((\<F> \<circ> id \<circ> r \<circ> k) n x - g x) < e)
[PROOF STEP]
using rng_f
[PROOF STATE]
proof (prove)
using this:
range \<F> \<subseteq> \<H>

goal (1 subgoal):
 1. \<exists>k g. strict_mono k \<and> (\<forall>e>0. \<exists>N. \<forall>n\<ge>N. \<forall>x\<in>K i. cmod ((\<F> \<circ> id \<circ> r \<circ> k) n x - g x) < e)
[PROOF STEP]
by (force intro!: *)
[PROOF STATE]
proof (state)
this:
\<exists>k g. strict_mono k \<and> \<Phi> g ?i id (?r \<circ> k)

goal (2 subgoals):
 1. \<And>i r. (\<And>k. \<lbrakk>strict_mono k; \<And>i. \<exists>g. \<Phi> g i id k\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> \<exists>k. strict_mono k \<and> (\<exists>g. \<Phi> g (?i15 i (r \<circ> k)) id (r \<circ> k))
 2. \<And>k. \<lbrakk>\<And>k. \<lbrakk>strict_mono k; \<And>i. \<exists>g. \<Phi> g i id k\<rbrakk> \<Longrightarrow> thesis; strict_mono k; \<And>i. \<exists>g. \<Phi> g (?i15 i (id \<circ> k)) id (id \<circ> k)\<rbrakk> \<Longrightarrow> thesis
flex-flex pairs:
\<lambda>i r k1 k2 N g. ?i15 i (r \<circ> k1) \<equiv>\<^sup>? \<lambda>i r k1 k2 N g. ?i15 i (r \<circ> k2)
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
\<exists>k g. strict_mono k \<and> \<Phi> g ?i id (?r \<circ> k)
[PROOF STEP]
show "\<And>i r. \<exists>k. strict_mono (k::nat\<Rightarrow>nat) \<and> (\<exists>g. \<Phi> g i id (r \<circ> k))"
[PROOF STATE]
proof (prove)
using this:
\<exists>k g. strict_mono k \<and> \<Phi> g ?i id (?r \<circ> k)

goal (1 subgoal):
 1. \<And>i r. \<exists>k. strict_mono k \<and> (\<exists>g. \<Phi> g i id (r \<circ> k))
[PROOF STEP]
by force
[PROOF STATE]
proof (state)
this:
\<exists>k. strict_mono k \<and> (\<exists>g. \<Phi> g ?i id (?r \<circ> k))

goal (1 subgoal):
 1. \<And>k. \<lbrakk>\<And>k. \<lbrakk>strict_mono k; \<And>i. \<exists>g. \<Phi> g i id k\<rbrakk> \<Longrightarrow> thesis; strict_mono k; \<And>i. \<exists>g. \<Phi> g (?i25 i) id (id \<circ> k)\<rbrakk> \<Longrightarrow> thesis
flex-flex pairs:
\<lambda>i r k1 k2 N g. ?i25 i \<equiv>\<^sup>? \<lambda>i r k1 k2 N g. ?i25 i
[PROOF STEP]
qed fastforce
[PROOF STATE]
proof (state)
this:
strict_mono k
\<exists>g. \<Phi> g ?i id k

goal (1 subgoal):
 1. (\<And>g r. \<lbrakk>g holomorphic_on S; strict_mono r; \<And>x. x \<in> S \<Longrightarrow> (\<lambda>n. \<F> (r n) x) \<longlonglongrightarrow> g x; \<And>K. \<lbrakk>compact K; K \<subseteq> S\<rbrakk> \<Longrightarrow> uniform_limit K (\<F> \<circ> r) g sequentially\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
have "\<exists>l. \<forall>e>0. \<exists>N. \<forall>n\<ge>N. norm(\<F> (k n) z - l) < e" if "z \<in> S" for z
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<exists>l. \<forall>e>0. \<exists>N. \<forall>n\<ge>N. cmod (\<F> (k n) z - l) < e
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<exists>l. \<forall>e>0. \<exists>N. \<forall>n\<ge>N. cmod (\<F> (k n) z - l) < e
[PROOF STEP]
obtain G where G: "\<And>i e. e > 0 \<Longrightarrow> \<exists>M. \<forall>n\<ge>M. \<forall>x\<in>K i. cmod ((\<F> \<circ> k) n x - G i x) < e"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (\<And>G. (\<And>i e. 0 < e \<Longrightarrow> \<exists>M. \<forall>n\<ge>M. \<forall>x\<in>K i. cmod ((\<F> \<circ> k) n x - G i x) < e) \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
using k
[PROOF STATE]
proof (prove)
using this:
\<exists>g. \<Phi> g ?i id k

goal (1 subgoal):
 1. (\<And>G. (\<And>i e. 0 < e \<Longrightarrow> \<exists>M. \<forall>n\<ge>M. \<forall>x\<in>K i. cmod ((\<F> \<circ> k) n x - G i x) < e) \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
unfolding \<Phi>_def
[PROOF STATE]
proof (prove)
using this:
\<exists>g. \<forall>e>0. \<exists>N. \<forall>n\<ge>N. \<forall>x\<in>K ?i. cmod ((\<F> \<circ> (id \<circ> k)) n x - g x) < e

goal (1 subgoal):
 1. (\<And>G. (\<And>i e. 0 < e \<Longrightarrow> \<exists>M. \<forall>n\<ge>M. \<forall>x\<in>K i. cmod ((\<F> \<circ> k) n x - G i x) < e) \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by (metis id_comp)
[PROOF STATE]
proof (state)
this:
0 < ?e \<Longrightarrow> \<exists>M. \<forall>n\<ge>M. \<forall>x\<in>K ?i. cmod ((\<F> \<circ> k) n x - G ?i x) < ?e

goal (1 subgoal):
 1. \<exists>l. \<forall>e>0. \<exists>N. \<forall>n\<ge>N. cmod (\<F> (k n) z - l) < e
[PROOF STEP]
obtain N where "\<And>n. n \<ge> N \<Longrightarrow> z \<in> K n"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (\<And>N. (\<And>n. N \<le> n \<Longrightarrow> z \<in> K n) \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
using subK [of "{z}"] that \<open>z \<in> S\<close>
[PROOF STATE]
proof (prove)
using this:
\<lbrakk>compact {z}; {z} \<subseteq> S\<rbrakk> \<Longrightarrow> \<exists>N. \<forall>n\<ge>N. {z} \<subseteq> K n
(\<And>n. ?N \<le> n \<Longrightarrow> z \<in> K n) \<Longrightarrow> thesis
z \<in> S

goal (1 subgoal):
 1. (\<And>N. (\<And>n. N \<le> n \<Longrightarrow> z \<in> K n) \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
N \<le> ?n \<Longrightarrow> z \<in> K ?n

goal (1 subgoal):
 1. \<exists>l. \<forall>e>0. \<exists>N. \<forall>n\<ge>N. cmod (\<F> (k n) z - l) < e
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
N \<le> ?n \<Longrightarrow> z \<in> K ?n

goal (1 subgoal):
 1. \<exists>l. \<forall>e>0. \<exists>N. \<forall>n\<ge>N. cmod (\<F> (k n) z - l) < e
[PROOF STEP]
have "\<And>e. e > 0 \<Longrightarrow> \<exists>M. \<forall>n\<ge>M. \<forall>x\<in>K N. cmod ((\<F> \<circ> k) n x - G N x) < e"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>e. 0 < e \<Longrightarrow> \<exists>M. \<forall>n\<ge>M. \<forall>x\<in>K N. cmod ((\<F> \<circ> k) n x - G N x) < e
[PROOF STEP]
using G
[PROOF STATE]
proof (prove)
using this:
0 < ?e \<Longrightarrow> \<exists>M. \<forall>n\<ge>M. \<forall>x\<in>K ?i. cmod ((\<F> \<circ> k) n x - G ?i x) < ?e

goal (1 subgoal):
 1. \<And>e. 0 < e \<Longrightarrow> \<exists>M. \<forall>n\<ge>M. \<forall>x\<in>K N. cmod ((\<F> \<circ> k) n x - G N x) < e
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
0 < ?e \<Longrightarrow> \<exists>M. \<forall>n\<ge>M. \<forall>x\<in>K N. cmod ((\<F> \<circ> k) n x - G N x) < ?e

goal (1 subgoal):
 1. \<exists>l. \<forall>e>0. \<exists>N. \<forall>n\<ge>N. cmod (\<F> (k n) z - l) < e
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
N \<le> ?n \<Longrightarrow> z \<in> K ?n
0 < ?e \<Longrightarrow> \<exists>M. \<forall>n\<ge>M. \<forall>x\<in>K N. cmod ((\<F> \<circ> k) n x - G N x) < ?e
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
N \<le> ?n \<Longrightarrow> z \<in> K ?n
0 < ?e \<Longrightarrow> \<exists>M. \<forall>n\<ge>M. \<forall>x\<in>K N. cmod ((\<F> \<circ> k) n x - G N x) < ?e

goal (1 subgoal):
 1. \<exists>l. \<forall>e>0. \<exists>N. \<forall>n\<ge>N. cmod (\<F> (k n) z - l) < e
[PROOF STEP]
by (metis comp_apply order_refl)
[PROOF STATE]
proof (state)
this:
\<exists>l. \<forall>e>0. \<exists>N. \<forall>n\<ge>N. cmod (\<F> (k n) z - l) < e

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
?z \<in> S \<Longrightarrow> \<exists>l. \<forall>e>0. \<exists>N. \<forall>n\<ge>N. cmod (\<F> (k n) ?z - l) < e

goal (1 subgoal):
 1. (\<And>g r. \<lbrakk>g holomorphic_on S; strict_mono r; \<And>x. x \<in> S \<Longrightarrow> (\<lambda>n. \<F> (r n) x) \<longlonglongrightarrow> g x; \<And>K. \<lbrakk>compact K; K \<subseteq> S\<rbrakk> \<Longrightarrow> uniform_limit K (\<F> \<circ> r) g sequentially\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
?z \<in> S \<Longrightarrow> \<exists>l. \<forall>e>0. \<exists>N. \<forall>n\<ge>N. cmod (\<F> (k n) ?z - l) < e
[PROOF STEP]
obtain g where g: "\<And>z e. \<lbrakk>z \<in> S; e > 0\<rbrakk> \<Longrightarrow> \<exists>N. \<forall>n\<ge>N. norm(\<F> (k n) z - g z) < e"
[PROOF STATE]
proof (prove)
using this:
?z \<in> S \<Longrightarrow> \<exists>l. \<forall>e>0. \<exists>N. \<forall>n\<ge>N. cmod (\<F> (k n) ?z - l) < e

goal (1 subgoal):
 1. (\<And>g. (\<And>z e. \<lbrakk>z \<in> S; 0 < e\<rbrakk> \<Longrightarrow> \<exists>N. \<forall>n\<ge>N. cmod (\<F> (k n) z - g z) < e) \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by metis
[PROOF STATE]
proof (state)
this:
\<lbrakk>?z \<in> S; 0 < ?e\<rbrakk> \<Longrightarrow> \<exists>N. \<forall>n\<ge>N. cmod (\<F> (k n) ?z - g ?z) < ?e

goal (1 subgoal):
 1. (\<And>g r. \<lbrakk>g holomorphic_on S; strict_mono r; \<And>x. x \<in> S \<Longrightarrow> (\<lambda>n. \<F> (r n) x) \<longlonglongrightarrow> g x; \<And>K. \<lbrakk>compact K; K \<subseteq> S\<rbrakk> \<Longrightarrow> uniform_limit K (\<F> \<circ> r) g sequentially\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. thesis
[PROOF STEP]
proof
[PROOF STATE]
proof (state)
goal (4 subgoals):
 1. ?g holomorphic_on S
 2. strict_mono ?r
 3. \<And>x. x \<in> S \<Longrightarrow> (\<lambda>n. \<F> (?r n) x) \<longlonglongrightarrow> ?g x
 4. \<And>K. \<lbrakk>compact K; K \<subseteq> S\<rbrakk> \<Longrightarrow> uniform_limit K (\<F> \<circ> ?r) ?g sequentially
[PROOF STEP]
show g_lim: "\<And>x. x \<in> S \<Longrightarrow> (\<lambda>n. \<F> (k n) x) \<longlonglongrightarrow> g x"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>x. x \<in> S \<Longrightarrow> (\<lambda>n. \<F> (k n) x) \<longlonglongrightarrow> g x
[PROOF STEP]
by (simp add: lim_sequentially g dist_norm)
[PROOF STATE]
proof (state)
this:
?x \<in> S \<Longrightarrow> (\<lambda>n. \<F> (k n) ?x) \<longlonglongrightarrow> g ?x

goal (3 subgoals):
 1. g holomorphic_on S
 2. strict_mono k
 3. \<And>K. \<lbrakk>compact K; K \<subseteq> S\<rbrakk> \<Longrightarrow> uniform_limit K (\<F> \<circ> k) g sequentially
[PROOF STEP]
have dg_le_e: "\<exists>N. \<forall>n\<ge>N. \<forall>x\<in>T. cmod (\<F> (k n) x - g x) < e"
      if T: "compact T" "T \<subseteq> S" and "0 < e" for T e
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<exists>N. \<forall>n\<ge>N. \<forall>x\<in>T. cmod (\<F> (k n) x - g x) < e
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<exists>N. \<forall>n\<ge>N. \<forall>x\<in>T. cmod (\<F> (k n) x - g x) < e
[PROOF STEP]
obtain N where N: "\<And>n. n \<ge> N \<Longrightarrow> T \<subseteq> K n"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (\<And>N. (\<And>n. N \<le> n \<Longrightarrow> T \<subseteq> K n) \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
using subK [OF T]
[PROOF STATE]
proof (prove)
using this:
\<exists>N. \<forall>n\<ge>N. T \<subseteq> K n

goal (1 subgoal):
 1. (\<And>N. (\<And>n. N \<le> n \<Longrightarrow> T \<subseteq> K n) \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
N \<le> ?n \<Longrightarrow> T \<subseteq> K ?n

goal (1 subgoal):
 1. \<exists>N. \<forall>n\<ge>N. \<forall>x\<in>T. cmod (\<F> (k n) x - g x) < e
[PROOF STEP]
obtain h where h: "\<And>e. e>0 \<Longrightarrow> \<exists>M. \<forall>n\<ge>M. \<forall>x\<in>K N. cmod ((\<F> \<circ> k) n x - h x) < e"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (\<And>h. (\<And>e. 0 < e \<Longrightarrow> \<exists>M. \<forall>n\<ge>M. \<forall>x\<in>K N. cmod ((\<F> \<circ> k) n x - h x) < e) \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
using k
[PROOF STATE]
proof (prove)
using this:
\<exists>g. \<Phi> g ?i id k

goal (1 subgoal):
 1. (\<And>h. (\<And>e. 0 < e \<Longrightarrow> \<exists>M. \<forall>n\<ge>M. \<forall>x\<in>K N. cmod ((\<F> \<circ> k) n x - h x) < e) \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
unfolding \<Phi>_def
[PROOF STATE]
proof (prove)
using this:
\<exists>g. \<forall>e>0. \<exists>N. \<forall>n\<ge>N. \<forall>x\<in>K ?i. cmod ((\<F> \<circ> (id \<circ> k)) n x - g x) < e

goal (1 subgoal):
 1. (\<And>h. (\<And>e. 0 < e \<Longrightarrow> \<exists>M. \<forall>n\<ge>M. \<forall>x\<in>K N. cmod ((\<F> \<circ> k) n x - h x) < e) \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by (metis id_comp)
[PROOF STATE]
proof (state)
this:
0 < ?e \<Longrightarrow> \<exists>M. \<forall>n\<ge>M. \<forall>x\<in>K N. cmod ((\<F> \<circ> k) n x - h x) < ?e

goal (1 subgoal):
 1. \<exists>N. \<forall>n\<ge>N. \<forall>x\<in>T. cmod (\<F> (k n) x - g x) < e
[PROOF STEP]
have geq: "g w = h w" if "w \<in> T" for w
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. g w = h w
[PROOF STEP]
proof (rule LIMSEQ_unique)
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. ?X \<longlonglongrightarrow> g w
 2. ?X \<longlonglongrightarrow> h w
[PROOF STEP]
show "(\<lambda>n. \<F> (k n) w) \<longlonglongrightarrow> g w"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (\<lambda>n. \<F> (k n) w) \<longlonglongrightarrow> g w
[PROOF STEP]
using \<open>T \<subseteq> S\<close> g_lim that
[PROOF STATE]
proof (prove)
using this:
T \<subseteq> S
?x \<in> S \<Longrightarrow> (\<lambda>n. \<F> (k n) ?x) \<longlonglongrightarrow> g ?x
w \<in> T

goal (1 subgoal):
 1. (\<lambda>n. \<F> (k n) w) \<longlonglongrightarrow> g w
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
(\<lambda>n. \<F> (k n) w) \<longlonglongrightarrow> g w

goal (1 subgoal):
 1. (\<lambda>n. \<F> (k n) w) \<longlonglongrightarrow> h w
[PROOF STEP]
show "(\<lambda>n. \<F> (k n) w) \<longlonglongrightarrow> h w"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (\<lambda>n. \<F> (k n) w) \<longlonglongrightarrow> h w
[PROOF STEP]
using h N that
[PROOF STATE]
proof (prove)
using this:
0 < ?e \<Longrightarrow> \<exists>M. \<forall>n\<ge>M. \<forall>x\<in>K N. cmod ((\<F> \<circ> k) n x - h x) < ?e
N \<le> ?n \<Longrightarrow> T \<subseteq> K ?n
w \<in> T

goal (1 subgoal):
 1. (\<lambda>n. \<F> (k n) w) \<longlonglongrightarrow> h w
[PROOF STEP]
by (force simp: lim_sequentially dist_norm)
[PROOF STATE]
proof (state)
this:
(\<lambda>n. \<F> (k n) w) \<longlonglongrightarrow> h w

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
?w \<in> T \<Longrightarrow> g ?w = h ?w

goal (1 subgoal):
 1. \<exists>N. \<forall>n\<ge>N. \<forall>x\<in>T. cmod (\<F> (k n) x - g x) < e
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<exists>N. \<forall>n\<ge>N. \<forall>x\<in>T. cmod (\<F> (k n) x - g x) < e
[PROOF STEP]
using T h N \<open>0 < e\<close>
[PROOF STATE]
proof (prove)
using this:
compact T
T \<subseteq> S
0 < ?e \<Longrightarrow> \<exists>M. \<forall>n\<ge>M. \<forall>x\<in>K N. cmod ((\<F> \<circ> k) n x - h x) < ?e
N \<le> ?n \<Longrightarrow> T \<subseteq> K ?n
0 < e

goal (1 subgoal):
 1. \<exists>N. \<forall>n\<ge>N. \<forall>x\<in>T. cmod (\<F> (k n) x - g x) < e
[PROOF STEP]
by (fastforce simp add: geq)
[PROOF STATE]
proof (state)
this:
\<exists>N. \<forall>n\<ge>N. \<forall>x\<in>T. cmod (\<F> (k n) x - g x) < e

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
\<lbrakk>compact ?T; ?T \<subseteq> S; 0 < ?e\<rbrakk> \<Longrightarrow> \<exists>N. \<forall>n\<ge>N. \<forall>x\<in>?T. cmod (\<F> (k n) x - g x) < ?e

goal (3 subgoals):
 1. g holomorphic_on S
 2. strict_mono k
 3. \<And>K. \<lbrakk>compact K; K \<subseteq> S\<rbrakk> \<Longrightarrow> uniform_limit K (\<F> \<circ> k) g sequentially
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
\<lbrakk>compact ?T; ?T \<subseteq> S; 0 < ?e\<rbrakk> \<Longrightarrow> \<exists>N. \<forall>n\<ge>N. \<forall>x\<in>?T. cmod (\<F> (k n) x - g x) < ?e
[PROOF STEP]
show "\<And>K. \<lbrakk>compact K; K \<subseteq> S\<rbrakk>
         \<Longrightarrow> uniform_limit K (\<F> \<circ> k) g sequentially"
[PROOF STATE]
proof (prove)
using this:
\<lbrakk>compact ?T; ?T \<subseteq> S; 0 < ?e\<rbrakk> \<Longrightarrow> \<exists>N. \<forall>n\<ge>N. \<forall>x\<in>?T. cmod (\<F> (k n) x - g x) < ?e

goal (1 subgoal):
 1. \<And>K. \<lbrakk>compact K; K \<subseteq> S\<rbrakk> \<Longrightarrow> uniform_limit K (\<F> \<circ> k) g sequentially
[PROOF STEP]
by (simp add: uniform_limit_iff dist_norm eventually_sequentially)
[PROOF STATE]
proof (state)
this:
\<lbrakk>compact ?K; ?K \<subseteq> S\<rbrakk> \<Longrightarrow> uniform_limit ?K (\<F> \<circ> k) g sequentially

goal (2 subgoals):
 1. g holomorphic_on S
 2. strict_mono k
[PROOF STEP]
show "g holomorphic_on S"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. g holomorphic_on S
[PROOF STEP]
proof (rule holomorphic_uniform_sequence [OF \<open>open S\<close> \<H>])
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. \<And>n. ?f n \<in> \<H>
 2. \<And>x. x \<in> S \<Longrightarrow> \<exists>d>0. cball x d \<subseteq> S \<and> uniform_limit (cball x d) ?f g sequentially
[PROOF STEP]
show "\<And>n. (\<F> \<circ> k) n \<in> \<H>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>n. (\<F> \<circ> k) n \<in> \<H>
[PROOF STEP]
by (simp add: range_subsetD rng_f)
[PROOF STATE]
proof (state)
this:
(\<F> \<circ> k) ?n \<in> \<H>

goal (1 subgoal):
 1. \<And>x. x \<in> S \<Longrightarrow> \<exists>d>0. cball x d \<subseteq> S \<and> uniform_limit (cball x d) (\<lambda>n. (\<F> \<circ> k) (?n5 n)) g sequentially
[PROOF STEP]
show "\<exists>d>0. cball z d \<subseteq> S \<and> uniform_limit (cball z d) (\<lambda>n. (\<F> \<circ> k) n) g sequentially"
        if "z \<in> S" for z
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<exists>d>0. cball z d \<subseteq> S \<and> uniform_limit (cball z d) (\<F> \<circ> k) g sequentially
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<exists>d>0. cball z d \<subseteq> S \<and> uniform_limit (cball z d) (\<F> \<circ> k) g sequentially
[PROOF STEP]
obtain d where d: "d>0" "cball z d \<subseteq> S"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (\<And>d. \<lbrakk>0 < d; cball z d \<subseteq> S\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
using \<open>open S\<close> \<open>z \<in> S\<close> open_contains_cball
[PROOF STATE]
proof (prove)
using this:
open S
z \<in> S
open ?S = (\<forall>x\<in>?S. \<exists>e>0. cball x e \<subseteq> ?S)

goal (1 subgoal):
 1. (\<And>d. \<lbrakk>0 < d; cball z d \<subseteq> S\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
0 < d
cball z d \<subseteq> S

goal (1 subgoal):
 1. \<exists>d>0. cball z d \<subseteq> S \<and> uniform_limit (cball z d) (\<F> \<circ> k) g sequentially
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
0 < d
cball z d \<subseteq> S
[PROOF STEP]
have "uniform_limit (cball z d) (\<F> \<circ> k) g sequentially"
[PROOF STATE]
proof (prove)
using this:
0 < d
cball z d \<subseteq> S

goal (1 subgoal):
 1. uniform_limit (cball z d) (\<F> \<circ> k) g sequentially
[PROOF STEP]
using dg_le_e compact_cball
[PROOF STATE]
proof (prove)
using this:
0 < d
cball z d \<subseteq> S
\<lbrakk>compact ?T; ?T \<subseteq> S; 0 < ?e\<rbrakk> \<Longrightarrow> \<exists>N. \<forall>n\<ge>N. \<forall>x\<in>?T. cmod (\<F> (k n) x - g x) < ?e
compact (cball ?x ?e)

goal (1 subgoal):
 1. uniform_limit (cball z d) (\<F> \<circ> k) g sequentially
[PROOF STEP]
by (auto simp: uniform_limit_iff eventually_sequentially dist_norm)
[PROOF STATE]
proof (state)
this:
uniform_limit (cball z d) (\<F> \<circ> k) g sequentially

goal (1 subgoal):
 1. \<exists>d>0. cball z d \<subseteq> S \<and> uniform_limit (cball z d) (\<F> \<circ> k) g sequentially
[PROOF STEP]
with d
[PROOF STATE]
proof (chain)
picking this:
0 < d
cball z d \<subseteq> S
uniform_limit (cball z d) (\<F> \<circ> k) g sequentially
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
0 < d
cball z d \<subseteq> S
uniform_limit (cball z d) (\<F> \<circ> k) g sequentially

goal (1 subgoal):
 1. \<exists>d>0. cball z d \<subseteq> S \<and> uniform_limit (cball z d) (\<F> \<circ> k) g sequentially
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
\<exists>d>0. cball z d \<subseteq> S \<and> uniform_limit (cball z d) (\<F> \<circ> k) g sequentially

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
?z \<in> S \<Longrightarrow> \<exists>d>0. cball ?z d \<subseteq> S \<and> uniform_limit (cball ?z d) (\<F> \<circ> k) g sequentially

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
g holomorphic_on S

goal (1 subgoal):
 1. strict_mono k
[PROOF STEP]
qed (auto simp: \<open>strict_mono k\<close>)
[PROOF STATE]
proof (state)
this:
thesis

goal:
No subgoals!
[PROOF STEP]
qed


[STATEMENT]
lemma arg_swap_morphism:
  assumes "f \<in> X \<rightarrow>\<^sub>Q exp_qbs Y Z"
  shows "(\<lambda>y x. f x y) \<in> Y \<rightarrow>\<^sub>Q exp_qbs X Z"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (\<lambda>y x. f x y) \<in> Y \<rightarrow>\<^sub>Q X \<Rightarrow>\<^sub>Q Z
[PROOF STEP]
using curry_preserves_morphisms[OF qbs_morphism_pair_swap[OF uncurry_preserves_morphisms[OF assms]]]
[PROOF STATE]
proof (prove)
using this:
curry (\<lambda>(x, y). case (y, x) of (x, xa) \<Rightarrow> f x xa) \<in> Y \<rightarrow>\<^sub>Q X \<Rightarrow>\<^sub>Q Z

goal (1 subgoal):
 1. (\<lambda>y x. f x y) \<in> Y \<rightarrow>\<^sub>Q X \<Rightarrow>\<^sub>Q Z
[PROOF STEP]
by simp


[STATEMENT]
lemma map_scale_sum_distrib_left: "(k::'b::semiring_0) \<cdot> (sum f A) = (\<Sum>a\<in>A. k \<cdot> f a)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. k \<cdot> sum f A = (\<Sum>a\<in>A. k \<cdot> f a)
[PROOF STEP]
by (induct A rule: infinite_finite_induct) (simp_all add: map_scale_distrib_left)


[STATEMENT]
lemma (in field) inv_pair_lemma: "x \<in> Units R \<Longrightarrow> y \<in> Units R \<Longrightarrow>
    {x, inv x} \<noteq> {y, inv y} \<Longrightarrow> {x, inv x} \<inter> {y, inv y} = {}"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<lbrakk>x \<in> Units R; y \<in> Units R; {x, inv x} \<noteq> {y, inv y}\<rbrakk> \<Longrightarrow> {x, inv x} \<inter> {y, inv y} = {}
[PROOF STEP]
apply auto
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. \<lbrakk>x \<in> Units R; y \<in> Units R; x \<noteq> y; x \<noteq> inv x; inv y = inv x\<rbrakk> \<Longrightarrow> False
 2. \<lbrakk>x \<in> Units R; y \<in> Units R; y \<noteq> x; y \<noteq> inv x; inv y = inv x\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
apply (metis Units_inv_inv)+
[PROOF STATE]
proof (prove)
goal:
No subgoals!
[PROOF STEP]
done


[STATEMENT]
lemma list_succ_altdef:
  "list_succ xs x = (let n = index xs x in if n + 1 = length xs then xs ! 0 else if n + 1 < length xs then xs ! (n + 1) else x)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. list_succ xs x = (let n = index xs x in if n + 1 = length xs then xs ! 0 else if n + 1 < length xs then xs ! (n + 1) else x)
[PROOF STEP]
using index_le_size[of xs x]
[PROOF STATE]
proof (prove)
using this:
index xs x \<le> length xs

goal (1 subgoal):
 1. list_succ xs x = (let n = index xs x in if n + 1 = length xs then xs ! 0 else if n + 1 < length xs then xs ! (n + 1) else x)
[PROOF STEP]
unfolding list_succ_def index_less_size_conv[symmetric]
[PROOF STATE]
proof (prove)
using this:
index xs x \<le> length xs

goal (1 subgoal):
 1. (if index xs x < length xs then xs ! ((index xs x + 1) mod length xs) else x) = (let n = index xs x in if n + 1 = length xs then xs ! 0 else if n + 1 < length xs then xs ! (n + 1) else x)
[PROOF STEP]
by (auto simp: Let_def)


[STATEMENT]
lemma [code]:
  "meld' z (Some t # xs) (Some r # ys) =
    z # (meld' (Some (merge t r)) xs ys)"
  "meld' (Some t) (Some r # xs) (None # ys) =
    None # (meld' (Some (merge t r)) xs ys)"
  "meld' (Some t) (None # xs) (Some r # ys) =
    None # (meld' (Some (merge t r)) xs ys)"
  "meld' None (x # xs) (None # ys) = x # (meld' None xs ys)"
  "meld' None (None # xs) (y # ys) = y # (meld' None xs ys)"
  "meld' z (None # xs) (None # ys) = z # (meld' None xs ys)"
  "meld' z xs [] = meld' z [] xs"
  "meld' z [] (y # ys) = meld' None [z] (y # ys)"
  "meld' (Some t) [] ys = meld' None [Some t] ys"
  "meld' None [] ys = ys"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. ((meld' z (Some t # xs) (Some r # ys) = z # meld' (Some (merge t r)) xs ys &&& meld' (Some t) (Some r # xs) (None # ys) = None # meld' (Some (merge t r)) xs ys) &&& meld' (Some t) (None # xs) (Some r # ys) = None # meld' (Some (merge t r)) xs ys &&& meld' None (x # xs) (None # ys) = x # meld' None xs ys &&& meld' None (None # xs) (y # ys) = y # meld' None xs ys) &&& (meld' z (None # xs) (None # ys) = z # meld' None xs ys &&& meld' z xs [] = meld' z [] xs) &&& meld' z [] (y # ys) = meld' None [z] (y # ys) &&& meld' (Some t) [] ys = meld' None [Some t] ys &&& meld' None [] ys = ys
[PROOF STEP]
by (simp add: meld'_def | cases z)+


[STATEMENT]
lemma ab_group_add_ow_UNIV_axioms:
  "ab_group_add_ow (UNIV::'a::ab_group_add set) (+) 0 (-) uminus"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. ab_group_add_ow UNIV (+) (0::'a) (-) uminus
[PROOF STEP]
by (fold ab_group_add_ow) (rule ab_group_add_class.ab_group_add_axioms)


[STATEMENT]
lemma finite_all_edges_between': "finite (all_edges_between X Y)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. finite (all_edges_between X Y)
[PROOF STEP]
using finV wellformed
[PROOF STATE]
proof (prove)
using this:
finite V
?e \<in> E \<Longrightarrow> ?e \<subseteq> V

goal (1 subgoal):
 1. finite (all_edges_between X Y)
[PROOF STEP]
by (metis all_edges_between_rem_wf finite_Int finite_all_edges_between)


[STATEMENT]
lemma Lin_irrefl: "L:Lin \<Longrightarrow> (a,b):L \<Longrightarrow> (b,a):L \<Longrightarrow> False"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<lbrakk>L \<in> Lin; (a, b) \<in> L; (b, a) \<in> L\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
by(simp add:slo_defs)(metis trans_def)


[STATEMENT]
lemma length_take_or_pad: "length (take_or_pad a n) = n"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. length (take_or_pad a n) = n
[PROOF STEP]
by (induction n) (simp_all add: take_or_pad_def length_padding)


[STATEMENT]
lemma index_vec_of_list: "i<length xs \<Longrightarrow> (vec_of_list xs) $ i = xs ! i"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. i < length xs \<Longrightarrow> vec_of_list xs $ i = xs ! i
[PROOF STEP]
by (metis vec.abs_eq index_vec vec_of_list.abs_eq)


[STATEMENT]
lemma less_one_multI:
  fixes e x::real
  shows "e \<le> 1 \<Longrightarrow> 0 < x \<Longrightarrow> x < 1 \<Longrightarrow> e * x < 1"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<lbrakk>e \<le> 1; 0 < x; x < 1\<rbrakk> \<Longrightarrow> e * x < 1
[PROOF STEP]
by (metis (erased, opaque_lifting) less_eq_real_def monoid_mult_class.mult.left_neutral
    mult_strict_mono zero_less_one)


[STATEMENT]
lemma \<gamma>_inf: "\<gamma>_ivl (iv1 \<sqinter> iv2) = \<gamma>_ivl iv1 \<inter> \<gamma>_ivl iv2"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<gamma>_ivl (iv1 \<sqinter> iv2) = \<gamma>_ivl iv1 \<inter> \<gamma>_ivl iv2
[PROOF STEP]
by transfer (rule \<gamma>_inf_rep)


[STATEMENT]
lemma agg_delta:
  fixes f :: "'a::finite \<Rightarrow> 'b::aggregation_order"
  shows "(\<Sum>\<^sub>l if l = j then f l else zero) = f j + bot"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. aggregation.sum_0 (\<lambda>l. if l = j then f l else zero) {l. True} = f j + bot
[PROOF STEP]
apply (subst aggregation.sum_0.delta)
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. finite {l. True}
 2. (if j \<in> {l. True} then f j + zero else zero) = f j + bot
[PROOF STEP]
apply simp
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (if j \<in> {l. True} then f j + zero else zero) = f j + bot
[PROOF STEP]
by (metis add.commute add.left_commute add_add_bot mem_Collect_eq)


[STATEMENT]
lemma bij_betw_permutations:
  assumes "bij_betw f A B"
  shows   "bij_betw (\<lambda>\<pi> x. if x \<in> B then f (\<pi> (inv_into A f x)) else x)
             {\<pi>. \<pi> permutes A} {\<pi>. \<pi> permutes B}" (is "bij_betw ?f _ _")
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. bij_betw (\<lambda>\<pi> x. if x \<in> B then f (\<pi> (inv_into A f x)) else x) {\<pi>. \<pi> permutes A} {\<pi>. \<pi> permutes B}
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. bij_betw (\<lambda>\<pi> x. if x \<in> B then f (\<pi> (inv_into A f x)) else x) {\<pi>. \<pi> permutes A} {\<pi>. \<pi> permutes B}
[PROOF STEP]
let ?g = "(\<lambda>\<pi> x. if x \<in> A then inv_into A f (\<pi> (f x)) else x)"
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. bij_betw (\<lambda>\<pi> x. if x \<in> B then f (\<pi> (inv_into A f x)) else x) {\<pi>. \<pi> permutes A} {\<pi>. \<pi> permutes B}
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. bij_betw (\<lambda>\<pi> x. if x \<in> B then f (\<pi> (inv_into A f x)) else x) {\<pi>. \<pi> permutes A} {\<pi>. \<pi> permutes B}
[PROOF STEP]
proof (rule bij_betw_byWitness [of _ ?g], goal_cases)
[PROOF STATE]
proof (state)
goal (4 subgoals):
 1. \<forall>a\<in>{\<pi>. \<pi> permutes A}. (\<lambda>x. if x \<in> A then inv_into A f (if f x \<in> B then f (a (inv_into A f (f x))) else f x) else x) = a
 2. \<forall>a'\<in>{\<pi>. \<pi> permutes B}. (\<lambda>x. if x \<in> B then f (if inv_into A f x \<in> A then inv_into A f (a' (f (inv_into A f x))) else inv_into A f x) else x) = a'
 3. (\<lambda>\<pi> x. if x \<in> B then f (\<pi> (inv_into A f x)) else x) ` {\<pi>. \<pi> permutes A} \<subseteq> {\<pi>. \<pi> permutes B}
 4. (\<lambda>\<pi> x. if x \<in> A then inv_into A f (\<pi> (f x)) else x) ` {\<pi>. \<pi> permutes B} \<subseteq> {\<pi>. \<pi> permutes A}
[PROOF STEP]
case 3
[PROOF STATE]
proof (state)
this:

goal (4 subgoals):
 1. \<forall>a\<in>{\<pi>. \<pi> permutes A}. (\<lambda>x. if x \<in> A then inv_into A f (if f x \<in> B then f (a (inv_into A f (f x))) else f x) else x) = a
 2. \<forall>a'\<in>{\<pi>. \<pi> permutes B}. (\<lambda>x. if x \<in> B then f (if inv_into A f x \<in> A then inv_into A f (a' (f (inv_into A f x))) else inv_into A f x) else x) = a'
 3. (\<lambda>\<pi> x. if x \<in> B then f (\<pi> (inv_into A f x)) else x) ` {\<pi>. \<pi> permutes A} \<subseteq> {\<pi>. \<pi> permutes B}
 4. (\<lambda>\<pi> x. if x \<in> A then inv_into A f (\<pi> (f x)) else x) ` {\<pi>. \<pi> permutes B} \<subseteq> {\<pi>. \<pi> permutes A}
[PROOF STEP]
show ?case
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (\<lambda>\<pi> x. if x \<in> B then f (\<pi> (inv_into A f x)) else x) ` {\<pi>. \<pi> permutes A} \<subseteq> {\<pi>. \<pi> permutes B}
[PROOF STEP]
using permutes_bij_inv_into[OF _ assms]
[PROOF STATE]
proof (prove)
using this:
?p permutes A \<Longrightarrow> (\<lambda>x. if x \<in> B then f (?p (inv_into A f x)) else x) permutes B

goal (1 subgoal):
 1. (\<lambda>\<pi> x. if x \<in> B then f (\<pi> (inv_into A f x)) else x) ` {\<pi>. \<pi> permutes A} \<subseteq> {\<pi>. \<pi> permutes B}
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
(\<lambda>\<pi> x. if x \<in> B then f (\<pi> (inv_into A f x)) else x) ` {\<pi>. \<pi> permutes A} \<subseteq> {\<pi>. \<pi> permutes B}

goal (3 subgoals):
 1. \<forall>a\<in>{\<pi>. \<pi> permutes A}. (\<lambda>x. if x \<in> A then inv_into A f (if f x \<in> B then f (a (inv_into A f (f x))) else f x) else x) = a
 2. \<forall>a'\<in>{\<pi>. \<pi> permutes B}. (\<lambda>x. if x \<in> B then f (if inv_into A f x \<in> A then inv_into A f (a' (f (inv_into A f x))) else inv_into A f x) else x) = a'
 3. (\<lambda>\<pi> x. if x \<in> A then inv_into A f (\<pi> (f x)) else x) ` {\<pi>. \<pi> permutes B} \<subseteq> {\<pi>. \<pi> permutes A}
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (3 subgoals):
 1. \<forall>a\<in>{\<pi>. \<pi> permutes A}. (\<lambda>x. if x \<in> A then inv_into A f (if f x \<in> B then f (a (inv_into A f (f x))) else f x) else x) = a
 2. \<forall>a'\<in>{\<pi>. \<pi> permutes B}. (\<lambda>x. if x \<in> B then f (if inv_into A f x \<in> A then inv_into A f (a' (f (inv_into A f x))) else inv_into A f x) else x) = a'
 3. (\<lambda>\<pi> x. if x \<in> A then inv_into A f (\<pi> (f x)) else x) ` {\<pi>. \<pi> permutes B} \<subseteq> {\<pi>. \<pi> permutes A}
[PROOF STEP]
case 4
[PROOF STATE]
proof (state)
this:

goal (3 subgoals):
 1. \<forall>a\<in>{\<pi>. \<pi> permutes A}. (\<lambda>x. if x \<in> A then inv_into A f (if f x \<in> B then f (a (inv_into A f (f x))) else f x) else x) = a
 2. \<forall>a'\<in>{\<pi>. \<pi> permutes B}. (\<lambda>x. if x \<in> B then f (if inv_into A f x \<in> A then inv_into A f (a' (f (inv_into A f x))) else inv_into A f x) else x) = a'
 3. (\<lambda>\<pi> x. if x \<in> A then inv_into A f (\<pi> (f x)) else x) ` {\<pi>. \<pi> permutes B} \<subseteq> {\<pi>. \<pi> permutes A}
[PROOF STEP]
have bij_inv: "bij_betw (inv_into A f) B A"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. bij_betw (inv_into A f) B A
[PROOF STEP]
by (intro bij_betw_inv_into assms)
[PROOF STATE]
proof (state)
this:
bij_betw (inv_into A f) B A

goal (3 subgoals):
 1. \<forall>a\<in>{\<pi>. \<pi> permutes A}. (\<lambda>x. if x \<in> A then inv_into A f (if f x \<in> B then f (a (inv_into A f (f x))) else f x) else x) = a
 2. \<forall>a'\<in>{\<pi>. \<pi> permutes B}. (\<lambda>x. if x \<in> B then f (if inv_into A f x \<in> A then inv_into A f (a' (f (inv_into A f x))) else inv_into A f x) else x) = a'
 3. (\<lambda>\<pi> x. if x \<in> A then inv_into A f (\<pi> (f x)) else x) ` {\<pi>. \<pi> permutes B} \<subseteq> {\<pi>. \<pi> permutes A}
[PROOF STEP]
{
[PROOF STATE]
proof (state)
this:
bij_betw (inv_into A f) B A

goal (3 subgoals):
 1. \<forall>a\<in>{\<pi>. \<pi> permutes A}. (\<lambda>x. if x \<in> A then inv_into A f (if f x \<in> B then f (a (inv_into A f (f x))) else f x) else x) = a
 2. \<forall>a'\<in>{\<pi>. \<pi> permutes B}. (\<lambda>x. if x \<in> B then f (if inv_into A f x \<in> A then inv_into A f (a' (f (inv_into A f x))) else inv_into A f x) else x) = a'
 3. (\<lambda>\<pi> x. if x \<in> A then inv_into A f (\<pi> (f x)) else x) ` {\<pi>. \<pi> permutes B} \<subseteq> {\<pi>. \<pi> permutes A}
[PROOF STEP]
fix \<pi>
[PROOF STATE]
proof (state)
goal (3 subgoals):
 1. \<forall>a\<in>{\<pi>. \<pi> permutes A}. (\<lambda>x. if x \<in> A then inv_into A f (if f x \<in> B then f (a (inv_into A f (f x))) else f x) else x) = a
 2. \<forall>a'\<in>{\<pi>. \<pi> permutes B}. (\<lambda>x. if x \<in> B then f (if inv_into A f x \<in> A then inv_into A f (a' (f (inv_into A f x))) else inv_into A f x) else x) = a'
 3. (\<lambda>\<pi> x. if x \<in> A then inv_into A f (\<pi> (f x)) else x) ` {\<pi>. \<pi> permutes B} \<subseteq> {\<pi>. \<pi> permutes A}
[PROOF STEP]
assume "\<pi> permutes B"
[PROOF STATE]
proof (state)
this:
\<pi> permutes B

goal (3 subgoals):
 1. \<forall>a\<in>{\<pi>. \<pi> permutes A}. (\<lambda>x. if x \<in> A then inv_into A f (if f x \<in> B then f (a (inv_into A f (f x))) else f x) else x) = a
 2. \<forall>a'\<in>{\<pi>. \<pi> permutes B}. (\<lambda>x. if x \<in> B then f (if inv_into A f x \<in> A then inv_into A f (a' (f (inv_into A f x))) else inv_into A f x) else x) = a'
 3. (\<lambda>\<pi> x. if x \<in> A then inv_into A f (\<pi> (f x)) else x) ` {\<pi>. \<pi> permutes B} \<subseteq> {\<pi>. \<pi> permutes A}
[PROOF STEP]
from permutes_bij_inv_into[OF this bij_inv] and assms
[PROOF STATE]
proof (chain)
picking this:
(\<lambda>x. if x \<in> A then inv_into A f (\<pi> (inv_into B (inv_into A f) x)) else x) permutes A
bij_betw f A B
[PROOF STEP]
have "(\<lambda>x. if x \<in> A then inv_into A f (\<pi> (f x)) else x) permutes A"
[PROOF STATE]
proof (prove)
using this:
(\<lambda>x. if x \<in> A then inv_into A f (\<pi> (inv_into B (inv_into A f) x)) else x) permutes A
bij_betw f A B

goal (1 subgoal):
 1. (\<lambda>x. if x \<in> A then inv_into A f (\<pi> (f x)) else x) permutes A
[PROOF STEP]
by (simp add: inv_into_inv_into_eq cong: if_cong)
[PROOF STATE]
proof (state)
this:
(\<lambda>x. if x \<in> A then inv_into A f (\<pi> (f x)) else x) permutes A

goal (3 subgoals):
 1. \<forall>a\<in>{\<pi>. \<pi> permutes A}. (\<lambda>x. if x \<in> A then inv_into A f (if f x \<in> B then f (a (inv_into A f (f x))) else f x) else x) = a
 2. \<forall>a'\<in>{\<pi>. \<pi> permutes B}. (\<lambda>x. if x \<in> B then f (if inv_into A f x \<in> A then inv_into A f (a' (f (inv_into A f x))) else inv_into A f x) else x) = a'
 3. (\<lambda>\<pi> x. if x \<in> A then inv_into A f (\<pi> (f x)) else x) ` {\<pi>. \<pi> permutes B} \<subseteq> {\<pi>. \<pi> permutes A}
[PROOF STEP]
}
[PROOF STATE]
proof (state)
this:
?\<pi>2 permutes B \<Longrightarrow> (\<lambda>x. if x \<in> A then inv_into A f (?\<pi>2 (f x)) else x) permutes A

goal (3 subgoals):
 1. \<forall>a\<in>{\<pi>. \<pi> permutes A}. (\<lambda>x. if x \<in> A then inv_into A f (if f x \<in> B then f (a (inv_into A f (f x))) else f x) else x) = a
 2. \<forall>a'\<in>{\<pi>. \<pi> permutes B}. (\<lambda>x. if x \<in> B then f (if inv_into A f x \<in> A then inv_into A f (a' (f (inv_into A f x))) else inv_into A f x) else x) = a'
 3. (\<lambda>\<pi> x. if x \<in> A then inv_into A f (\<pi> (f x)) else x) ` {\<pi>. \<pi> permutes B} \<subseteq> {\<pi>. \<pi> permutes A}
[PROOF STEP]
from this
[PROOF STATE]
proof (chain)
picking this:
?\<pi>2 permutes B \<Longrightarrow> (\<lambda>x. if x \<in> A then inv_into A f (?\<pi>2 (f x)) else x) permutes A
[PROOF STEP]
show ?case
[PROOF STATE]
proof (prove)
using this:
?\<pi>2 permutes B \<Longrightarrow> (\<lambda>x. if x \<in> A then inv_into A f (?\<pi>2 (f x)) else x) permutes A

goal (1 subgoal):
 1. (\<lambda>\<pi> x. if x \<in> A then inv_into A f (\<pi> (f x)) else x) ` {\<pi>. \<pi> permutes B} \<subseteq> {\<pi>. \<pi> permutes A}
[PROOF STEP]
by (auto simp: permutes_inv)
[PROOF STATE]
proof (state)
this:
(\<lambda>\<pi> x. if x \<in> A then inv_into A f (\<pi> (f x)) else x) ` {\<pi>. \<pi> permutes B} \<subseteq> {\<pi>. \<pi> permutes A}

goal (2 subgoals):
 1. \<forall>a\<in>{\<pi>. \<pi> permutes A}. (\<lambda>x. if x \<in> A then inv_into A f (if f x \<in> B then f (a (inv_into A f (f x))) else f x) else x) = a
 2. \<forall>a'\<in>{\<pi>. \<pi> permutes B}. (\<lambda>x. if x \<in> B then f (if inv_into A f x \<in> A then inv_into A f (a' (f (inv_into A f x))) else inv_into A f x) else x) = a'
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. \<forall>a\<in>{\<pi>. \<pi> permutes A}. (\<lambda>x. if x \<in> A then inv_into A f (if f x \<in> B then f (a (inv_into A f (f x))) else f x) else x) = a
 2. \<forall>a'\<in>{\<pi>. \<pi> permutes B}. (\<lambda>x. if x \<in> B then f (if inv_into A f x \<in> A then inv_into A f (a' (f (inv_into A f x))) else inv_into A f x) else x) = a'
[PROOF STEP]
case 1
[PROOF STATE]
proof (state)
this:

goal (2 subgoals):
 1. \<forall>a\<in>{\<pi>. \<pi> permutes A}. (\<lambda>x. if x \<in> A then inv_into A f (if f x \<in> B then f (a (inv_into A f (f x))) else f x) else x) = a
 2. \<forall>a'\<in>{\<pi>. \<pi> permutes B}. (\<lambda>x. if x \<in> B then f (if inv_into A f x \<in> A then inv_into A f (a' (f (inv_into A f x))) else inv_into A f x) else x) = a'
[PROOF STEP]
thus ?case
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<forall>a\<in>{\<pi>. \<pi> permutes A}. (\<lambda>x. if x \<in> A then inv_into A f (if f x \<in> B then f (a (inv_into A f (f x))) else f x) else x) = a
[PROOF STEP]
using assms
[PROOF STATE]
proof (prove)
using this:
bij_betw f A B

goal (1 subgoal):
 1. \<forall>a\<in>{\<pi>. \<pi> permutes A}. (\<lambda>x. if x \<in> A then inv_into A f (if f x \<in> B then f (a (inv_into A f (f x))) else f x) else x) = a
[PROOF STEP]
by (auto simp: fun_eq_iff permutes_not_in permutes_in_image bij_betw_inv_into_left
               dest: bij_betwE)
[PROOF STATE]
proof (state)
this:
\<forall>a\<in>{\<pi>. \<pi> permutes A}. (\<lambda>x. if x \<in> A then inv_into A f (if f x \<in> B then f (a (inv_into A f (f x))) else f x) else x) = a

goal (1 subgoal):
 1. \<forall>a'\<in>{\<pi>. \<pi> permutes B}. (\<lambda>x. if x \<in> B then f (if inv_into A f x \<in> A then inv_into A f (a' (f (inv_into A f x))) else inv_into A f x) else x) = a'
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<forall>a'\<in>{\<pi>. \<pi> permutes B}. (\<lambda>x. if x \<in> B then f (if inv_into A f x \<in> A then inv_into A f (a' (f (inv_into A f x))) else inv_into A f x) else x) = a'
[PROOF STEP]
case 2
[PROOF STATE]
proof (state)
this:

goal (1 subgoal):
 1. \<forall>a'\<in>{\<pi>. \<pi> permutes B}. (\<lambda>x. if x \<in> B then f (if inv_into A f x \<in> A then inv_into A f (a' (f (inv_into A f x))) else inv_into A f x) else x) = a'
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:

goal (1 subgoal):
 1. \<forall>a'\<in>{\<pi>. \<pi> permutes B}. (\<lambda>x. if x \<in> B then f (if inv_into A f x \<in> A then inv_into A f (a' (f (inv_into A f x))) else inv_into A f x) else x) = a'
[PROOF STEP]
have "bij_betw (inv_into A f) B A"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. bij_betw (inv_into A f) B A
[PROOF STEP]
by (intro bij_betw_inv_into assms)
[PROOF STATE]
proof (state)
this:
bij_betw (inv_into A f) B A

goal (1 subgoal):
 1. \<forall>a'\<in>{\<pi>. \<pi> permutes B}. (\<lambda>x. if x \<in> B then f (if inv_into A f x \<in> A then inv_into A f (a' (f (inv_into A f x))) else inv_into A f x) else x) = a'
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
bij_betw (inv_into A f) B A
[PROOF STEP]
show ?case
[PROOF STATE]
proof (prove)
using this:
bij_betw (inv_into A f) B A

goal (1 subgoal):
 1. \<forall>a'\<in>{\<pi>. \<pi> permutes B}. (\<lambda>x. if x \<in> B then f (if inv_into A f x \<in> A then inv_into A f (a' (f (inv_into A f x))) else inv_into A f x) else x) = a'
[PROOF STEP]
using assms
[PROOF STATE]
proof (prove)
using this:
bij_betw (inv_into A f) B A
bij_betw f A B

goal (1 subgoal):
 1. \<forall>a'\<in>{\<pi>. \<pi> permutes B}. (\<lambda>x. if x \<in> B then f (if inv_into A f x \<in> A then inv_into A f (a' (f (inv_into A f x))) else inv_into A f x) else x) = a'
[PROOF STEP]
by (auto simp: fun_eq_iff permutes_not_in permutes_in_image bij_betw_inv_into_right
               dest: bij_betwE)
[PROOF STATE]
proof (state)
this:
\<forall>a'\<in>{\<pi>. \<pi> permutes B}. (\<lambda>x. if x \<in> B then f (if inv_into A f x \<in> A then inv_into A f (a' (f (inv_into A f x))) else inv_into A f x) else x) = a'

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
bij_betw (\<lambda>\<pi> x. if x \<in> B then f (\<pi> (inv_into A f x)) else x) {\<pi>. \<pi> permutes A} {\<pi>. \<pi> permutes B}

goal:
No subgoals!
[PROOF STEP]
qed


[STATEMENT]
lemma ccsubspace_plus_sup: "y \<le> x \<Longrightarrow> z \<le> x \<Longrightarrow> y + z \<le> x"
  for x y z :: "'a::complex_normed_vector ccsubspace"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<lbrakk>y \<le> x; z \<le> x\<rbrakk> \<Longrightarrow> y + z \<le> x
[PROOF STEP]
unfolding plus_ccsubspace_def
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<lbrakk>y \<le> x; z \<le> x\<rbrakk> \<Longrightarrow> y \<squnion> z \<le> x
[PROOF STEP]
by auto


[STATEMENT]
lemma subset_eq[code_pred_inline]:
  "(P :: 'a \<Rightarrow> bool) < (Q :: 'a \<Rightarrow> bool) \<equiv> ((\<exists>x. Q x \<and> (\<not> P x)) \<and> (\<forall>x. P x \<longrightarrow> Q x))"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. P < Q \<equiv> (\<exists>x. Q x \<and> \<not> P x) \<and> (\<forall>x. P x \<longrightarrow> Q x)
[PROOF STEP]
by (rule eq_reflection) (auto simp add: less_fun_def le_fun_def)


[STATEMENT]
lemma distinct_names_map[rule_format]:
  "(\<forall>x\<in>set cld_dcl_list. case_prod (\<lambda>cld. (=) (class_name_f cld)) x) \<and> distinct (map snd cld_dcl_list)
      \<longrightarrow> distinct_names_f (map fst cld_dcl_list)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (\<forall>x\<in>set cld_dcl_list. case x of (cld, x) \<Rightarrow> class_name_f cld = x) \<and> distinct (map snd cld_dcl_list) \<longrightarrow> distinct_names_f (map fst cld_dcl_list)
[PROOF STEP]
apply(induct cld_dcl_list)
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. (\<forall>x\<in>set []. case x of (cld, a) \<Rightarrow> class_name_f cld = a) \<and> distinct (map snd []) \<longrightarrow> distinct_names_f (map fst [])
 2. \<And>a cld_dcl_list. (\<forall>x\<in>set cld_dcl_list. case x of (cld, a) \<Rightarrow> class_name_f cld = a) \<and> distinct (map snd cld_dcl_list) \<longrightarrow> distinct_names_f (map fst cld_dcl_list) \<Longrightarrow> (\<forall>x\<in>set (a # cld_dcl_list). case x of (cld, a) \<Rightarrow> class_name_f cld = a) \<and> distinct (map snd (a # cld_dcl_list)) \<longrightarrow> distinct_names_f (map fst (a # cld_dcl_list))
[PROOF STEP]
apply(clarsimp simp add: distinct_names_f_def)+
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>a cld_dcl_list aa b. \<lbrakk>distinct (map (class_name_f \<circ> fst) cld_dcl_list); \<forall>x\<in>set cld_dcl_list. case x of (cld, x) \<Rightarrow> class_name_f cld = x; class_name_f aa \<notin> snd ` set cld_dcl_list; distinct (map snd cld_dcl_list); class_name_f a = class_name_f aa; (aa, b) \<in> set cld_dcl_list\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
apply(force)
[PROOF STATE]
proof (prove)
goal:
No subgoals!
[PROOF STEP]
done


[STATEMENT]
lemma subsuming_states_map_add:
  "(\<And>x. x \<in> dom m1 \<inter> dom m2 \<Longrightarrow> m1 x = m2 x) \<Longrightarrow>
  m1 ++ m2 \<subseteq>\<^sub>m s \<longleftrightarrow> (m1 \<subseteq>\<^sub>m s \<and> m2 \<subseteq>\<^sub>m s)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (\<And>x. x \<in> dom m1 \<inter> dom m2 \<Longrightarrow> m1 x = m2 x) \<Longrightarrow> (m1 ++ m2 \<subseteq>\<^sub>m s) = (m1 \<subseteq>\<^sub>m s \<and> m2 \<subseteq>\<^sub>m s)
[PROOF STEP]
by(auto simp: map_add_le_mapI intro: first_map_add_submap map_add_le_mapE)


[STATEMENT]
lemma Bseq_iff: "Bseq X \<longleftrightarrow> (\<exists>N. \<forall>n. norm (X n) \<le> real(Suc N))"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. Bseq X = (\<exists>N. \<forall>n. norm (X n) \<le> real (Suc N))
[PROOF STEP]
by (simp add: Bseq_def) (simp add: lemma_NBseq_def)