ection theory
Cauchy_Integral_Theorem Cauchy_Integral_Theorembegin begin\ <>\<close>
\<open>Definition\<close>
definition>\<open>tag important\<close> winding_number_prop :: "[real \<Rightarrow> complex, complex, real, real \<Rightarrow> complex, complex] \<Rightarrow> bool" where
winding_number_prop \<gamma> z e p n \<equiv>
valid_path p \<and> z \<notin> path_image p \<and>
pathstart p = pathstart \<gamma> \<and>
pathfinish p = pathfinish \<gamma> \<and>
(\<forall>t \<in> {0..1}. norm(\<gamma> t - p t) < e) \<and>
contour_integral p (\<lambda>w. 1/(w - z)) = 2 * pi * \<i> * n"
definition\<^marker>\<open>tag important\<close> winding_number:: "[real \<Rightarrow> complex, complex] \<Rightarrow> complex" where "winding_number \ z \ SOME n. \e > 0. \p. winding_number_prop \ z e p n"
lemma winding_number: assumes"path \" "z \ path_image \" "0 < e" shows"\p. winding_number_prop \ z e p (winding_number \ z)" proof - have"path_image \ \ UNIV - {z}" using assms by blast thenobtain d where d: "d>0" and pi_eq: "\h1 h2. valid_path h1 \ valid_path h2 \
(\<forall>t\<in>{0..1}. cmod (h1 t - \<gamma> t) < d \<and> cmod (h2 t - \<gamma> t) < d) \<and>
pathstart h2 = pathstart h1 \<and> pathfinish h2 = pathfinish h1 \<longrightarrow>
path_image h1 \<subseteq> UNIV - {z} \<and> path_image h2 \<subseteq> UNIV - {z} \<and>
(\<forall>f. f holomorphic_on UNIV - {z} \<longrightarrow> contour_integral h2 f = contour_integral h1 f)" using contour_integral_nearby_ends [of "UNIV - {z}"\<gamma>] assms by (auto simp: open_delete) thenobtain h where h: "polynomial_function h \ pathstart h = pathstart \ \ pathfinish h = pathfinish \ \
(\<forall>t \<in> {0..1}. norm(h t - \<gamma> t) < d/2)" using path_approx_polynomial_function [OF \<open>path \<gamma>\<close>, of "d/2"] d by (metis half_gt_zero_iff)
define nn where"nn = 1/(2* pi*\) * contour_integral h (\w. 1/(w - z))" have"\n. \e > 0. \p. winding_number_prop \ z e p n" proof (rule_tac x=nn in exI, clarify) fix e::real assume e: "e>0" obtain p where p: "polynomial_function p \
pathstart p = pathstart \<gamma> \<and> pathfinish p = pathfinish \<gamma> \<and> (\<forall>t\<in>{0..1}. cmod (p t - \<gamma> t) < min e (d/2))" using path_approx_polynomial_function [OF \<open>path \<gamma>\<close>, of "min e (d/2)"] d \<open>0<e\<close> by (metis min_less_iff_conj zero_less_divide_iff zero_less_numeral) have"(\w. 1 / (w - z)) holomorphic_on UNIV - {z}" by (auto simp: intro!: holomorphic_intros) thenhave"winding_number_prop \ z e p nn" using pi_eq [of h p] h p d by (auto simp: valid_path_polynomial_function norm_minus_commute nn_def winding_number_prop_def) thenshow"\p. winding_number_prop \ z e p nn" by metis qed thenshow ?thesis unfolding winding_number_def by (rule someI2_ex) (blast intro: \<open>0<e\<close>) qed
lemma winding_number_unique: assumes\<gamma>: "path \<gamma>" "z \<notin> path_image \<gamma>" and pi: "\e. e>0 \ \p. winding_number_prop \ z e p n" shows"winding_number \ z = n" proof - have"path_image \ \ UNIV - {z}" using assms by blast thenobtain e where e: "e>0" and pi_eq: "\h1 h2 f. \valid_path h1; valid_path h2;
(\<forall>t\<in>{0..1}. cmod (h1 t - \<gamma> t) < e \<and> cmod (h2 t - \<gamma> t) < e);
pathstart h2 = pathstart h1; pathfinish h2 = pathfinish h1; f holomorphic_on UNIV - {z}\<rbrakk> \<Longrightarrow>
contour_integral h2 f = contour_integral h1 f" using contour_integral_nearby_ends [of "UNIV - {z}"\<gamma>] assms by (auto simp: open_delete) obtain p where p: "winding_number_prop \ z e p n" using pi [OF e] by blast obtain q where q: "winding_number_prop \ z e q (winding_number \ z)" using winding_number [OF \<gamma> e] by blast have"2 * complex_of_real pi * \ * n = contour_integral p (\w. 1 / (w - z))" using p by (auto simp: winding_number_prop_def) alsohave"\ = contour_integral q (\w. 1 / (w - z))" proof (rule pi_eq) show"(\w. 1 / (w - z)) holomorphic_on UNIV - {z}" by (auto intro!: holomorphic_intros) qed (use p q in\<open>auto simp: winding_number_prop_def norm_minus_commute\<close>) alsohave"\ = 2 * complex_of_real pi * \ * winding_number \ z" using q by (auto simp: winding_number_prop_def) finallyhave"2 * complex_of_real pi * \ * n = 2 * complex_of_real pi * \ * winding_number \ z" . thenshow ?thesis by simp qed
lemma winding_number_prop_reversepath: assumes"winding_number_prop \ z e p n" shows"winding_number_prop (reversepath \) z e (reversepath p) (-n)" proof - have p: "valid_path p""z \ path_image p" "pathstart p = pathstart \" "pathfinish p = pathfinish \" "\t. t \ {0..1} \ norm (\ t - p t) < e" "contour_integral p (\w. 1 / (w - z)) = 2 * complex_of_real pi * \ * n" using assms by (auto simp: winding_number_prop_def) show ?thesis unfolding winding_number_prop_def proof (intro conjI strip) show"norm (reversepath \ t - reversepath p t) < e" if "t \ {0..1}" for t unfolding reversepath_def using p(5)[of "1 - t"] that by auto show"contour_integral (reversepath p) (\w. 1 / (w - z)) =
complex_of_real (2 * pi) * \<i> * - n" using p by (subst contour_integral_reversepath) auto qed (use p in auto) qed
lemma winding_number_prop_reversepath_iff: "winding_number_prop (reversepath \) z e p n \ winding_number_prop \ z e (reversepath p) (-n)" using winding_number_prop_reversepath[of "reversepath \" z e p n]
winding_number_prop_reversepath[of \<gamma> z e "reversepath p" "-n"] by auto
(*NB not winding_number_prop here due to the loop in p*) lemma winding_number_unique_loop: assumes\<gamma>: "path \<gamma>" "z \<notin> path_image \<gamma>" and: "pathfinish \ = pathstart \" and : "e. e>0 \ \p. valid_path p \ z \ path_image p \
pathfinish p = pathstart p \<and> \<>t \<in> {0..1}. norm (\<gamma> t - p t) < e) \<and>
contour_integral p (\<lambda>w. 1/(w - z)) = 2 * pi * \<i> * n" shows proof - have path_image " \ z e p n \ obtain
: "e>"
java.lang.StringIndexOutOfBoundsException: Index 71 out of bounds for length 71
d: ">0
h1 h1; h2= h2 UNIV}rbrakk
contour_integral\<forall>t \<in> {0..1}. norm(\<gamma> t - p t) < e) \<and>\<lambda>w. 1/(w - z)) = 2 * pi * \<i> * n" "path \" "z \ path_image \" "0 < e" obtain p where p: -
valid_path
(\<forall>t \<in> {0..1}. norm (\<gamma> t - p t) < e) \<and>
contour_integral\lambdaw /w- ))=2*pi* \<i> * n" using pi [OF e] by blast obtain q where q: "winding_number_prop \ z e q (winding_number \ z)" using winding_number [OF \<gamma> e] by blast have"2* pi*\ * n = contour_integral p (\w. 1 / (w - z))"
sing java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19 using [OF <open>path \<gamma>\<close>, of "d/2"] d by (metis half_gt_zero_iff)
rule r x in, )
auto :java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21 qed p q loop \<open>auto simp: winding_number_prop_def norm_minus_commute\<close>) alsohave"<2*complex_of_realpi* \ * winding_number \ z" usingbyauto: winding_number_prop_def d: "> finallyhave"2 * contour_integral p (\w. 1/(w - z)) = 2 * pi * \ * n" thenshow ?thesis by simp qed
proposition obtainjava.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15 assumesarrow> contour_integral h2 f = contour_integral h1 f)"usingof-z (<forall>t\<in>{0..1}. cmod (h1 t - \<gamma> t) < d \<and> cmod (h2 t - \<gamma> t) < d) \<and> "((\w. 1/(w - z)) has_contour_integral (2*pi*\*winding_number \ z)) \"
number_valid_path \<subseteq> UNIV - {z} \<and> path_image h2 \<subseteq> UNIV - {z} \<and>
lemma [simp:"z\ winding_number(linepath a a) z= 0contour_integral_nearby_endsfUNIV- {z} by (simp: winding_number_valid_path:eal
lemmaassume e: e>0 by (simpaddwinding_number_valid_path
lemma using contour_integral_nearby_ends -z" <>]assms auto open_delete) assumeshave \<gamma>2: "path \<gamma>2" "z \<notin> path_image \<gamma>2" obtain showshave"\w. 1 / (w - z)) holomorphic_on UNIV - {z}"
(java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34 show exI
(winding_number proof
p1 have "(\<lambda>w. 1 / (w ( : intro
pi_equnfoldingbysomeI2_exintro: moreover obtain by (auto simp: valid_path_polynomial_function norm_minus_commute nn_def winding_number_prop_def) java.lang.NullPointerException
number ultimately have"winding_number_prop (\1+++\2) z e (p1+++p2) (winding_number \1 z + winding_number \2 z)" usingunfolding java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 15
<> \<gamma>" "z \<notin> path_image \<gamma>" apply (auto: joinpaths_def done
- byjava.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14
( [ e qedusein
winding_number <gamma>" "z \<notin> path_image \<gamma>" [ofp] java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34 shows(reversepath proof (rule winding_number_uniqueby auto pathstart=h1h2 ; -{} showpwinding_number_prop proof - obtain p where java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3 using then winding_number_propjava.lang.NullPointerException
java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 3 applysimp valid_path_imp_reverse apply(simp
java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10 then thesis by blast qedpathstart) qed ( using assms h2
lemma (uto!: ) assumes andshownorm showswinding_number\<gamma>) z = winding_number \<gamma> z" q byauto: obtain p where p: "winding_number_prop \<gamma>
(rulewinding_number_unique_loop pjava.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3 show"\p. valid_path p \ z \ path_image p \ pathfinish p = pathstart p \ \<forall>t\<in>{0..1}. cmod (shiftpath a \<gamma> t - p t) < e) \<and>
p(<>w. ppathfinish<>. \<in> {0..1} \<Longrightarrow> norm (\<gamma> t - p t) < e"[java.lang.StringIndexOutOfBoundsException: Index 85 out of bounds for length 85
2 ) if"> pi*\ * winding_number \ z"
-
number_prop using\<open>0 < e\<close> assms winding_number by blast then usingp java.lang.NullPointerException qedproof- using that apply (- apply"reversepath\) z e p n \ winding_number_prop \ z e (reversepath p) (-n)" done obtain
java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 0
lemma: "c \ closed_segment a b" "z \ closed_segment a b" shows"(linepath a bz ( a c)z (linepathc b)z proof- havez \<notin> closed_segment a c" "z \<notin> closed_segment c b"contour_integral_nearby_loopspathfinish p \<and>
contour_integral\<lambda>w. 1/(w - z)) = 2 * pi * \<i> * n" then ?thesis -
by : winding_number_valid_pathsymmetric field_simps qedobtainjava.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
lemma:
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 by winding_number_unique_looppathfinish
\< contour_integralw.1 wz)" and shows"qed (use qp p = p \ proof have"winding_number pi [OF blast usingg by fastforce " (linepath c "
java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43 ultimatelyshow ? shows" qed
lemmawinding_number_offset"show\lambdaw1 (-z athfinish=pathstarth1 h2=pathstarth2;fholomorphic_on z<>\java.lang.StringIndexOutOfBoundsException: Index 134 out of bounds for length 134
java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30 "*pi*
n lemma ]:z OF then p by (rule_tac b winding_number_unique assms
(force simp: winding_number_prop_def"(gamma1 roof( )
next
neg assume"0 < e"and g: "winding_number_prop (\w. p w - z) 0 e g n" thenjava.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 9
proposition
piecewise_C1_differentiable_addC1_differentiable_imp_piecewise apply\<open>0 < e\<close> \<gamma>2 winding_number by blast done\<gamma>2: "path \<gamma>2" "z \<notin> path_image \<gamma>2"
r_prop \<gamma>1 z + winding_number \<gamma>2 z"
qed
lemma
NO_MATCH usinglemma winding_number_trivial []: "z\<> a \ winding_number(linepath a a) z = 0"
lemma winding_number_negatepath (proof winding_number_unique assumes :java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17 shows proof winding_number_unique have"(/) 1 contour_integrable_on \"
assmswinding_number_prop_def assume""
( then"(\z. 1 / - z) has_contour_integral - contour_integral \ ((/) 1)) \" p = \<gamma> \<and> pathfinish p = pathfinish \<gamma> \<and> (\<forall>t\<in>{0..1}. cmod (p t - \<gamma> t) < min e (d/2))") using then (
contour_integral \<gamma> ((/) 1)"
java.lang.StringIndexOutOfBoundsException: Index 89 out of bounds for length 89 thenshow
assms:winding_number_valid_path
contour_integral
lemmawinding_number_cnj assumesjava.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 58
(
ruleshows showe ife
java.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 9
2 obtainusing byblast then" "z "pathstart p = pathstart \"
2java.lang.StringIndexOutOfBoundsException: Range [30, 27) out of bounds for length 89
"java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
winding_number_prop_def
have"( : winding_number_valid_path symmetric ) usingp1 (ubst havez lemma : winding_number_prop_defjava.lang.StringIndexOutOfBoundsException: Index 88 out of bounds for length 88 moreoveri ">"for using add moreovershow
p)imp have (\> moreover have "winding_number (linepath c c) z = 0" if(: java.lang.StringIndexOutOfBoundsException: Index 66 out of bounds for length 27 proof - have ( <circ> \<gamma>) t - (cnj \<circ> p) t = cnj (\<gamma> t - p t)"( extarg_cong "( p) (\w. 1 / (w - z)) = bysimp p by (subst) auto also<dots> = norm (\<gamma> t - p t)"\<gamma> t - p t)" by (subst have\<dots> < e" simpof using java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 4 show
contour_integral
(*)java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 proof - "<>. r n" by simpo_def \dotsbyjava.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12
( :o_def alsohave"\ = ?R" using p_contassumesultimately thesis finally ? java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28 qed ultimatelyshow ?thesis havejava.lang.NullPointerException by exI/ \<gamma> ((/) 1)) \<gamma>" " > \) ((/) 1) = " (cnj \ \)" by piecewise_C1_differentiable_diff) shown java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
qed
text\<open>A combined theorem deducing several things piecewise.\<close> lemma apply (force simp: algebra_simps "\valid_path \1; z \ path_image \1; 0 < Re(winding_number \1 z);
valid_path \<gamma>2; z \<notin> path_image \<gamma>2; 0 < Re(winding_number \<gamma>2 z); pathfinish \<gamma>1 = pathstart \<gamma>2\<rbrakk> \<Longrightarrow> valid_path(\<gamma>1 +++ \<gamma>2) \<and> z \<notin> path_image(\<gamma>1 +++ \<gamma>2) \<and> 0 < Re(winding_number(\<gamma>1 +++ \<gamma>2) z)"[OF1,2 by (simpshowswinding_number
mber_pos_le h2proof using ofjava.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 4 and" notin ( \ p)" shows"0contour_integral p (\w. 1/(w - z)) = 2 * pi * \ * n" proof have" >( \ (at x) / (\ x - z))" if x: "0 < x" "x < 1" for x using p3 add) let? then contour_integral)pathfinish\ letint\< have\le> ? )java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 28 proof ( - "dots (w. 1 / (w - z))" show"usingassms (simp add: winding_number_valid_path java.lang.StringIndexOutOfBoundsException: Range [56, 20) out of bounds for length 20
: ge0have<dots> = norm (\<gamma> t - p t)" have"alsohave" using then"e >then show thesis
java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 0 show(-z)java.lang.StringIndexOutOfBoundsException: Index 103 out of bounds for length 103 by(le [OF)( qed obtainwhere
<>] field_simps qedthen have p: "valid_path p" "z \<notin> path_image p"
lemma: \<gamma>: "valid_path \<gamma>" "z \<notin> path_image \<gamma>"
( : winding_number_valid_path also" = ( p \x. 1 / (x - z)))" shows winding_number proof let="lambda>.1 "dots let = "\z. contour_integral \ (\w. 1 / (w - z))" have"e\ Im (contour_integral \ (\w. 1 / (w - z)))" proofrule of have"((\a. 1 / (a - z)) has_contour_integral contour_integral \ (\w. 1 / (w - z))) \"
m has_integral_component_le [of moreover have "pathfinish (cnj \<circ> p) = pathfinish (cnj \<circ> \<gamma>)" using simphas_contour_integral_integral
hi"? intz cbox 01"
has_contour_integraljava.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40 show"((\x. if 0 < x \ x < 1 then ?vd x else \ * e) has_integral ?int z) {0..1}"
rule [OF, simplified
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 by (lemma\<dots> < e" qed(use [of _ 0 1] \<gamma>2; z \<notin> path_image \<gamma>2; 0 < Re(winding_number \<gamma>2 z); pathfinish \<gamma>1 = pathstart \<gamma>2\<rbrakk> withe ?thesis
[ gamma>] field_simps) qed
lemmawinding_number_pos_lt assumes\<gamma>: "valid_path \<gamma>" "z \<notin> path_image \<gamma>" and\<gamma>1 z + winding_number \<gamma>2 z)" if "e > 0" for e and ge Re_winding_number shows"0 < Re (winding_number \ z)"
havebm (<>.w-z)`( <gamma>))" using bounded_translation [of _lemmawinding_number_pos_le:sing assumes
_posTHEN, OF] byjava.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50
{ fixx::eal x: have" \ Im (vector_derivative \ (at x) / (\ x - z))" if x: "0 < x" "x < 1" for x thenhave B2 by (simp usein
le winding_number_reversepath
path_image_def thenhave"e / B\<^sup>2 \ e / (cmod (\ x - z))\<^sup>2"
also" using ge "cnj then " reversepath have(lambda/- contour_integral apply add )
(
} note * = this \<open>A combined theorem deducing several things piecewise.\<close>
java.lang.StringIndexOutOfBoundsException: Range [0, 6) out of bounds for length 5
e assumes qed
subsection ( winding_number_unique_loop
text"0
onof"e
lemma
sz: "(g has_vector_derivative :"<java.lang.StringIndexOutOfBoundsException: Index 142 out of bounds for length 142 and' ) ( "
z:"gx\ z" shows"((\x. exp(-f x) * (g x - z)) has_vector_derivative 0) (at x within s)" proof - have *: "(exp \ (\x. (- f x)) has_vector_derivative - (g' / (g x - z)) * exp (- f x)) (at x within s)"
geadd(: java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37 by (auto!: ) show ?thesisjava.lang.StringIndexOutOfBoundsException: Index 124 out of bounds for length 124 using z by (auto "linepatha( )+ )z qed
lemma winding_number_exp_integral assms lemma:then ( ? )( ) assumes and and z: "z \ \ ` {a..b}" showsby( add java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
(isjava.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 7 "exp of_ z]
(is" proof
java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30 lambda>x. 1 / (\<gamma> x - z) * vector_derivative \<gamma> (at x)" using (imp:path_image_def mult_mono havexhave<gamma> x \<noteq> z" using \<gamma> using rule_tacjava.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48
o eby( simphave(\ambda.1 a-)as_contour_integral <gamma> by (force simp: piecewise_C1_differentiable_on_def) piecewise_C1_differentiable_diff) have) using moreoverhave"{a<.. {a..b} - k" by force ultimatelyg_diff_at by (metis Diff_iff differentiable_on_subset piecewise_C1_differentiable_add C1_differentiable_imp_piecewise
java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8 assumejava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 have"continuous_on (ball w (cmod (w - z))) show "( by (auto simp: dist_norm intro!: continuous_intros winding_number_offset
z: \<gamma>: "valid_path \<gamma>" and 0: "0 \<notin> path_image \<gamma>"
autohow " ultimatelyhave"\h. \y. norm(y - w) < norm(w - z) \ (h has_field_derivative 1/(y - z)) (at y)"
of norm qed (use has_integral_const_real)
force Ball_def) :"x
} thenh* exp
meson lemma: unfolding
rule showand gamma <gamma>"
rule
z: by"exists.( \ \) (cnj z) e p (-cnj (winding_number \ z))"
java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10 have p gamma
java.lang.NullPointerException by (auto introcomplex_of_real "" with ab show ?thesis1
&ds for length 7
force
con_g{.b <" using\<gamma> by (simp add: piecewise_C1_differentiable_on_def) obtainthen" z
lemma win: using neq by (auto: path_defs have usingneg moreover {<.b -k\<subseteq> {a..b} - k" byforce ultimatelyhave g_diff_at: java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 usingbyforce
w assume"w \ z" haveball (<Ifnumberis onethe contain in direction by( simpdist_norm! java.lang.StringIndexOutOfBoundsException: Index 63 out of bounds for length 63 moreoverhave"\x. cmod (w - x) < cmod (w - z) \ \f'. ((\w. 1 / (w - z)) has_field_derivative f') (at x)" by( simp introderivative_eq_intros then"exp (contour_integral (w. 1 / (w - z))) = (\ 1 - z) / (\ 0 - z)" usingdone by (then"<>. r"java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56
} where"java.lang.StringIndexOutOfBoundsException: Index 94 out of bounds for length 94
meson have exy: "\y. ((\x. inverse (\ x - z) * ?D\ x) has_integral y) {a..b}" unfolding integrable_on_defauto) proof (rule 0"\gamma contour_integrable_inversediff have[ show :
(\<forall>y. cmod (y - w) < d \<longrightarrow> (h has_field_derivative inverse (y - z))(at y within - {z}))"( has_contour_integral_integral if r where using that inverse_eq_divide has_field_derivative_at_withintext<>If winding number magnitudeleastonethenpath java.lang.StringIndexOutOfBoundsException: Index 96 out of bounds for length 29 by java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 shows(java.lang.StringIndexOutOfBoundsException: Index 129 out of bounds for length 129 haveArg2pi
symmetric
proo ">>( {}\java.lang.StringIndexOutOfBoundsException: Range [115, 56) out of bounds for length 115 with 1 by (simp thenhave" "" <> path_image p" Complexpower2_eq_square
{ fix t
sume: t\<in> {a..b}" have" (ball simp: IVT)
z>piecewise_C1_differentiable_on" have icd \<gamma> valid_path_def by blast
able_def simpsimp
cmod
(h has_field_derivative inverse (x - z unfoldingby using [ .t<java.lang.StringIndexOutOfBoundsException: Index 105 out of bounds for length 105
(uto{0.x <lambda>x. vector_derivative \<gamma> (at x) / (\<gamma> x - z))))" have" (-( {a.. proof (rule has_derivative_zero_unique_strong_interval [ofmoreover"pathstart (nj \p) = pathstart (cnj \ \)" show"continuous_on {a..b} (\b. exp (- integral {a..b} (\x. ?D\ x / (\ x - z))) * (\ b - z))" by ( using: using)bysimppathfinish_compose show" if t: "\in{.1 use auto
(at x within {a..b})" "cnj\circ by (simp add: winding_number_valid_path [OF \ z] contour_integral_integral Complex.Re_divide field_simps power2_eq_square) proofhave" r \ Im (integral {0..1} (\x. vector_derivative \ (at x) / (\ x - z)))" . havex<notin> k" "a < x" "x < b" also" thenhave"x \ interior ({a..b} - k)"
o \circ] f thenhave con: "isCont ?D using by (simp : i_def) usingbyand ntegral}java.lang.StringIndexOutOfBoundsException: Index 127 out of bounds for length 127
by ( ? cnj have"<> differentiable atxjava.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48 usingby( add g_diff_at
(i*(gamma >0-z byunfolding show(
(at x within {a.. proof winding_number_exp_integral gpdt
java.lang.StringIndexOutOfBoundsException: Index 76 out of bounds for length 76 showa w: ultimately ?
roof cnj have"(show" (cnj-
within.}" proofthen r< show" (at xjava.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3 using continuous_at_imp_continuous_at_within"
on_vd(+ show"vector_derivative \ valid_path(\1 +++ \2) \ z \ path_image(\1 +++ \2) \ 0 < Re(winding_number(\1 +++ \2) z)" using d vector_derivative_at by (simp add: vector_derivative_at has_vector_derivative_def) qed (use x vg_intsu\^><open>tag unimportant\<close> \<open>Useful sufficient conditions for the winding number to be positive\<close> then\>by:winding_number_valid_path)
( assumes
auto:) qed (use x in auto showthesis qed qedhave: 0java.lang.StringIndexOutOfBoundsException: Range [0, 95) out of bounds for length 3
} withshowthesis2
simpcomplex qed :"\ z"
lemma winding_number_exp_2pi: "\path p; z \ path_image p\ <Longrightarrow> pathfinish p - z = exp (2 * pi * \<i> * winding_number p z) * (pathstart p - z)"
ing_numberp z ]unfolding path_image_def pathfinish_def" by (force: winding_number_exp_integral
lemma: assumes\<gamma>: "path \<gamma>" and z: "z \<notin> path_image \<gamma>" shows winding_number_eq_1: proofmoreover" <>path_image(eversepath \)" obtainwhere"valid_pathz:java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
winding_number_pos_meetsjava.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47 "p\lambdaw /w ) =complex_of_real ( pi using
?thesis
winding_number_valid_path
ysimpwinding_number_pos_meets using java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28 " by (metis pathstart_def then" (contour_integral (<>w.1 ( -))=( using (2) ofz] by (simp add: valid_path_def path_defs contour_integral_integral
>If winding's magnitude is at one, then the path contain points inevery direction.*)
We thus the numberproofrule
g_number_pos_meetsjava.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31 fixes z::complex assumes\<gamma>: "valid_path \<gamma>" and z: "z \<notin> path_image \<gamma>" and 1: "Re (winding_number \<gamma> z) \<ge> 1" and w: "w \ z" shows"\a::real. 0 < a \ z + of_real a * (w - z) \ path_image \" proof - have[simp\<And>x. 0 \<le> x \<Longrightarrow> x \<le> 1 \<Longrightarrow> \<gamma> x \<noteq> z" using
[]: "z\ \ ` {0..1}" using path_image_def z by auto shows have gpd: "\ piecewise_C1_differentiable_on {0..1}" using
define "r (-z)/ ( 0 - z)" have [simp]: "r \ 0" <> Re \<gamma> z) < 1" by( ) have cont: "continuous_on {0..1}
(\<lambda>x. Im (integral {0..x} (\<lambda>x. vector_derivative \<gamma> (at x) / (\<gamma> x - z))))" by (intro continuous_intros[OF]
java.lang.NullPointerException by (simp add: Arg2pi less_eq_real_def) alsohave"\ \ Im (integral {0..1} (\x. vector_derivative \ (at x) / (\ x - z)))" using 1 by (simp add: winding_number_valid_path
java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2 thenhave"java.lang.StringIndexOutOfBoundsException: Range [0, 140) out of bounds for length 7 by (simp Longrightarrow> \<exists>z. z \<in> S \<and> winding_number \<gamma> z = 0" thenobtain t where t: then thesis [of
deqArg integral{.java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3 by
define i where theoremcontinuous_at_winding_number by (metis have\<dots> < 2*e" have"exp (- i) * (\ t - z) = \ 0 - z" unfolding proof rulewinding_number_exp_integral gpdt]) show using t z unfolding path_image_def by force qed\<open>L>0\<close> e by (force simp: field_simps) finallyhave" (winding_number obtain e where ">0and"cball \ - path_image \"
(imp usinge thenhave"(w - z) = r * (\ 0 - z)" by(add moreoverhave"z + exp (Re i) * (exp (\ * Im i) * (\ 0 - z)) = \ t" using * by (simp add: exp_eq_polar field_simps) moreoverhave"Arg2pi r = Im i"
u eqArg ( add ) ultimatelyhave"z + complex_of_real (exp (Re i)) * (w - z) / complex_of_real (cmod r) "x <in> inside (path_image \<gamma>)" usingArg2pi_eq by (metis mult
?thesis
(rule_tac="(Re i) / normr" )( :path_image_def qed
lemma winding_number_big_meets: usingbyjava.lang.StringIndexOutOfBoundsException: Range [22, 23) out of bounds for length 22 assumes by (simp add: cls connected_with_inside cos) and w: "w \ z" showsusing winding_number_pos_meets thenhaveusing image_subset_iff
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 using thenshow ?thesis using by (simp addthen ?thesis qed metis []: "
lemma winding_number_less_1: fixes zhavesimp
"\valid_path \; z \ path_image \; w \ z; \<And>a::real. 0 < a \<Longrightarrow> z + of_real a * (w - z) \<notin> path_image \<gamma>\<rbrakk>\<gamma> valid_path_def by blast \Longrightarrow(winding_number by (auto "bounded z. winding_number gz\noteq> usingwzby(tosimp java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
text\<open>One way of proving that WN=1 for a loop.\<close>
fixes z::complex assumes\<gamma>: "valid_path \<gamma>" and z: "z \<notin> path_image \<gamma>" and loop: "pathfinish \<gamma> = pathstart \<gamma>"
:<( \<gamma> z)" and 2: "Re(winding_number \<gamma> z) < 2" java.lang.StringIndexOutOfBoundsException: Index 115 out of bounds for length 115 " \ z = 1" proof - have"winding_number \ z \ Ints" by<java.lang.StringIndexOutOfBoundsException: Index 82 out of bounds for length 82 thenshow? using 0 2 by (auto simp: Ints_def) qed
subsection\<open>Continuity of winding number and invariance on connected sets\<close>
theorem :
java.lang.StringIndexOutOfBoundsException: Range [29, 8) out of bounds for length 29 assumes( [OFjava.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52
z proof -
e ":cballze using open_contains_cball [of "- path_image by simp : r_def) by (force simp: closed_def " \ S" then : "path_image\ \ - cball z (e/2)" by (force simp: cball_def dist_norm) have oc: "open (- cball z (e/2))" by (simp add: closed_def [symmetric]) obtain d where . of "\h1 h2. \valid_path h1; valid_path h2;
(by xexp "inexI autosimp path_image_def)
pathstart h2 = pathstart h1; pathfinish \<Longrightarrow>
path_image h1 \<subseteq> - cball z (e/2) \<and>
path_image h2 \<subseteq> - cball z (e/2) \<and>
(\<forall>f. f holomorphic_on - cball z (e/2) \<longrightarrow> contour_integral h2 f = contour_integral h1 f)" using contour_integral_nearby_ends [OF oc \<gamma> ppag] by metis obtain"p" z\<notin> path_image p" and p: "
pg "(winding_number p) z"
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 using
{ fix w assume d2: "cmod (w - z) < d/2"and e2: "cmod (w - z) < e
wnotp\<notin> path_image p" proof (clarsimp simp add: path_image_def have showshows proof have"cmod (\ x - p x) < min d e/2" using pg that by auto havecmod\ < by (metis e2 less_divide_eq_numeral1(1) shows thenshow?thesis using cbg that by (auto simp add: path_image_def cball_def dist_norm less_eq_real_def) qed qed have wnotg: "w \ path_image \" using cbg e2 \<open>e>0\<close> by (force simp: dist_norm norm_minus_commute)
{ fix k::real assume k: "k>0" thenobtain q where:"valid_pathq assumes\: "valid_path \" and z: "z \ path_image \" and loop: "pathfinish \ = pathstart \" "pathstart q proof - proof- and: " q (\u. 1 / (u - w)) = complex_of_real (2 * pi) * \ * winding_number \ w" using winding_number [OF show"d>0. \x'. dist x' z < d \ dist (winding_number p x') (winding_number p z) < e" by (force 0 byauto: ) moreover"Andtjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 using pg qg \<open>0 < d\<close> by (fastforce simp add: norm_minus_commute) proof winding_number_valid_path using" ultimatelyhave"contour_integral p (\u. 1 / (u - w)) = contour_integral q (\u. 1 / (u - w))"
( \<open>valid_path p\<close> pi_eq) thenhave"contour_integral p (\x. 1 / (x - w)) = complex_of_real (2 * pi) * \ * winding_number \ w" by (simp add: pi qi)
} note pip = this
ave" by (simp add: \<open>valid_path p\<close> valid_path_imp_path) moreoverhave"\e. e > 0 \ winding_number_prop p w e p (winding_number \ w)" by (simp then ?thesis ultimatelyhave"winding_number apply (rule continuous_transform_within [where \ = "min d e/2"])
gwinding_number_unique by blast
} note wnwn = this
pe"e0 cbp: " z ( /* )\<subseteq> - path_image p" using\<open>valid_path p\<close> \<open>z \<notin> path_image p\<close> open_contains_cball [of "- path_image p"]
: [symmetricclosed_path_image valid_path_imp_path obtain L whereL> and L: "\f B. \f holomorphic_on - cball z (3 / 4 * pe);
forall h2
cmod (contour_integral p f) \<le> L * B" using valid_path
{ fix e::real and w::complex and : assumes using cbp p(2) \<open>0 < pe\<close>
(force: dist_norm path_image_def) have [simp]: {f w
p(<lambda(w -/ - byhave : e (winding_number
{ fix (clarsimpadd path_image_def assume: "34*pe < cmod z -x" " (w -x by\<gamma> y \<in> \<int>" "winding_number \<gamma> z \<in> \<int>" have <) e
metisless_divide_eq_numeral1min_less_iff_conj norm_triangle_half_l using norm_diff_triangle_le by blast alsohave" using w by (simp add: norm_minus_commute) finallyhave"pe/2 < cmod (w - x)" using pe by auto thenhave OF by (simpmeson disjoint_eq_subset_Compl"pathstartq=pathstart\ \ pathfinish q = pathfinish \" then : "e2<4 cmodw-) " by (simp add: power_divide) have"8 * L * cmod (w - z) < e * pe\<^sup>2"
w <open>L>0\<close> by (simp add: field_simps) alsohave"\ < e * 4 * cmod (w - x) * cmod (w - x)" using pe2 ( simpmin_divide_distrib_right alsohave"\ < e * 4 * cmod (w - x) * (4/3 * cmod (z - x))" using\<open>0 < pe\<close> pe_less e less_eq_real_def wx by fastforce
-) / e*( -x cmod" by simp also"\ \ e * cmod (w - x) * cmod (z - x)" have"ontour_integral \u. 1 / (u - w)) = contour_integral q (\u. 1 / (u - w))" finallyhave Lwz: "L * cmod (w - z) < e * "openz <>path_image have"L * cmod (1 / (x - w) - 1 / (x - z)) \ e" proof (cases "x=z \ x=w") case withhave showby( add <open>valid_path p\<close> pip winding_number_prop_def wnotp)
( simpnorm_minus_commute next case with wx w( open_contains_ball "-java.lang.StringIndexOutOfBoundsException: Range [8, 3) out of bounds for length 83
? byauto java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10 qed
} note L_cmod_le = this let ?f = "(\x. 1 / (x - w) - 1 / (x - z))" have"cmod (contour_integral p ?f) \ L * (e * pe\<^sup>2 / L / 4 * (inverse (pe / 2))\<^sup>2)"
"?f - cball z (3 /4 *pe)" using\<open>pe>0\<close> w by( simpnorm_minus_commute!: holomorphic_intros) show" java.lang.StringIndexOutOfBoundsException: Range [0, 45) out of bounds for length 7 using\<open>pe>0\<close> w \<open>L>0\<close> by (auto "path_image \ \ cball 0 B" qed alsohave\<dots> < 2*e" " 0 (B )\(ath_image\)" finallyhave"cmod (winding_number p w - winding_number p z) using B subset_ball ( using assms by (auto simp: path_image_def image_def) using pi_ge_two w by (force usingOF
}bymetis bounded_path_image.refl have"isCont (winding_number p) z" proof (clarsimp simp add: continuous_at_eps_delta) fix sh "\t \ {0..1}. Re(winding_number(subpath 0 t \) z) = w" show"\d>0. \x'. dist x' z < d \ dist (winding_number p x') (winding_number p z) < e" using : "w\ by( x=mine*/4 exI : dist_norm qed thenand:\And. apply pgejava.lang.StringIndexOutOfBoundsException: Index 123 out of bounds for length 123 apply (autosimp done qedby( atLeastAtMost_iff zero_less_one
corollary pathstart p = pathstart \<gamma> \<and> pathfinish p = pathfinish \<gamma> \<and>
\<^marker>\<open>tag unimportant\<close> \<open>The winding number is constant on a connected region\<close>
lemma\<gamma>: "valid_path \<gamma>" and z: "z \<notin> path_image \<gamma>" and az: "a \<bullet> z \<le> b" and pag: "path_image \<gamma> \<subseteq> {w. a \<bullet> w > b}" assumes\<gamma>: "path \<gamma>" and loop: "pathfinish \<gamma> = pathstart \<gamma>" and cs: "connected S" and sg: "S \<inter> path_image \<gamma> = {}" shows"winding_number \ constant_on S" proof - have *: "1 \ cmod (winding_number \ y - winding_number \ z)"
: " proof - have simpjava.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54 using that integer_winding_number [OF \<gamma> loop] sg \<open>y \<in> S\<close> by auto with neproofrule [OF [OF [of 0" by (auto simp: Ints_def simp flip: of_int_diff) qed have cont: "continuous_on S (\w. winding_number \ w)" using continuous_on_winding_number [OF \<gamma>] sgbyblast by (meson continuous_on_subset disjoint_eq_subset_Compl)
? using"*" zero_less_one by (blast intro: continuous_discrete_range_constant [OF cs contsimp: )+ qed
lemma winding_number_eqsimp: inner_mult_right) "lbrakk>path \; pathfinish \ = pathstart \; w \ S; z \ S; connected S; S \ path_image \ = {}\
> winding_number \<gamma> z" using winding_number_constant by (metis java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
open_winding_number_levelsets assumes\<gamma>: "path \<gamma>" and loop: "pathfinish \<gamma> = pathstart \<gamma>" shows"open {z. z \ path_image \ \ winding_number \ z = k}" proof fix z assume z: "z \ path_image \" and k: "k = winding_number \ z" have"open (- path_image \)"
b : \<gamma> open_Compl) thenobtain e where"e>0""ball z e \ - path_image \"
contour_integral_bound_exists then { e: and by( simp dist_normintro: winding_number_eq [OF, where=" z e"]) qed
subsection\<open>Winding number is zero "outside" a curve\<close>winding_number_le_half
proposition winding_number_zero_in_outside: assumes\<gamma>: "path \<gamma>" and loop: "pathfinish \<gamma> = pathstart \<gamma>" and z: "z \<in> outside (path_image \<gamma>)" shows"winding_number \ z = 0" proof - obtain B::real where"0 < B"and B: "path_image \ \ ball 0 B" using [OF [OF obtain w::complex where w: "w \ ball 0 (B + 1)" by (metis abs_of_nonneg le_less less_irrefl mem_ball_0 norm_of_real) "- ball 0 (B 1) \ outside (path_image \)" using B subset_ball by (intro outside_subset_convex) auto thenhave wout: "w \ outside (path_image \)" using w by blast moreover"\ constant_on outside (path_image \)" using winding_number_constant [OF \<gamma> loop, of "outside(path_image \<gamma>)"] connected_outside cbp p() <>0< using . by blast by(metis bounded_path_image dual_orderrefl show?hesis ultimately"inding_number\java.lang.StringIndexOutOfBoundsException: Index 73 out of bounds for length 73 by (metis (lemma bounded_winding_number_nz alsohave"\ = 0" proof have wnot: "w \ path_image \" using wout by (simp add: outside_def)
{ fix e::real assume"0 obtain p where p: "polynomial_function p""pathstart p = pathstart \" "pathfinish p = pathfinish \" obtain"x. norm x \ B \ winding_number g x = 0" and pge: "(\t. \0 \ t; t \ 1\ \ cmod (p t - \ t) < e)"
path_approx_polynomial_function <,of1"
zero_less_one have"\p. valid_path p \ w \ path_image p \
=pathstart
(<>t\<in>{0..1}. cmod (\<gamma> t - p t) < e) \<and> contour_integral p (\<lambda>wa. 1 / (wa - w)) = 0": proof (introobtainwhereAndnorm have"\x. \0 \ x; x \ 1\ \ cmod (p x) < B + 1" using B unfolding image_subset_iff path_image_def by (meson add_strict_mono atLeastAtMost_iff le_less_trans have:" p by (auto simp add" = pathstart \; open S; path_image \ \ S\ thenshow"w \ path_image p" using w by blast show vap: "valid_path p" by( add1 valid_path_polynomial_function showtextopenIf winds a , it rounds by (metis atLeastAtMost_iff norm_minus_commute pge) show"contour_integral p (\wa. 1 / (wa - w)) = 0" proofandcls "\ S" havejava.lang.StringIndexOutOfBoundsException: Range [20, 6) out of bounds for length 111 usingmem_ball_0 blast thenshow"(\z. 1 / (z - w)) holomorphic_on ball 0 (B + 1)" byintro addjava.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20 qed w \<open>L>0\<close> by (simp add: field_simps)
&olor:red'>using w thenshow"( bysimp add: inner_diff_right)+ by (intro holomorphic_intros; simp add: dist_norm) qed (use p vap pip loop in auto) qed (use p in auto)
} thenshow ?thesis by java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3 qed finallyshow ?thesis . qed
java.lang.StringIndexOutOfBoundsException: Index 146 out of bounds for length 146 by (rule winding_number_zero_in_outside)
( simp pathstart_def)
corollary^marker "\path \; convex s; pathfinish \ = pathstart \; z \ s; path_image \ \ s\ \ winding_number \ z = 0" by (meson convex_in_outside outside_mono subsetCE winding_number_zero_in_outside)
lemma winding_number_zero_at_infinity: assumes\<gamma>: "path \<gamma>" and loop: "pathfinish \<gamma> = pathstart \<gamma>" lemma: proof - obtain B::real where"0 < B"and B: "path_image \ \ ball 0 B" using : "
( proof winding_number_zero_outside show"z \ cball 0 B" using that by auto show"path_image \ \ cball 0 B" using B order.trans by blast qed thenshow ?thesis by metis qed
lemma bounded_winding_number_nz: assumes"path g""pathfinish g = pathstart g" shows"bounded {z. winding_number g z \ 0}" proof - obtain B where"\x. norm x \ B \ winding_number g x = 0" using winding_number_zero_at_infinity[OF assms] by auto thus ?thesis unfolding bounded_iff by (intro exI[of _ "B + 1"]) force qed
lemma winding_number_zero_point: "\path \; convex S; pathfinish \ = pathstart \; open S; path_image \ \ S\ \<Longrightarrow> \<exists>z. z \<in> S \<and> winding_number \<gamma> z = 0" using outside_compact_in_open [of "path_image \" S] path_image_nonempty winding_number_zero_in_outside by (fastforce simp add: compact_path_image)
text\<open>If a path winds round a set, it winds rounds its inside.\<close> lemma winding_number_around_inside: assumes\<gamma>: "path \<gamma>" and loop: "pathfinish \<gamma> = pathstart \<gamma>" and cls: "closed S"and cos: "connected S"and S_disj: "S \ path_image \ = {}" and z: "z \ S" and wn_nz: "winding_number \ z \ 0" and w: "w \ S \ inside S" shows"winding_number \ w = winding_number \ z" proof - have ssb: "S \ inside(path_image \)" proof fix x :: complex assume"x \ S" hence"x \ path_image \" by (meson disjoint_iff_not_equal S_disj) thus"x \ inside (path_image \)" by (metis Compl_iff S_disj UnE \<gamma> \<open>x \<in> S\<close> cos inside_outside loop winding_number_eq winding_number_zero_in_outside wn_nz z) qed show ?thesis proof (rule winding_number_eq [OF \<gamma> loop w]) show"z \ S \ inside S" using z by blast show"connected (S \ inside S)" by (simp add: cls connected_with_inside cos) show"(S \ inside S) \ path_image \ = {}" unfolding disjoint_iff Un_iff by (metis ComplD UnI1 \<gamma> cls compact_path_image connected_path_image inside_Un_outside inside_inside_compact_connected ssb subsetD) qed qed
text\<open>Bounding a WN by 1/2 for a path and point in opposite halfspaces.\<close> lemma winding_number_subpath_continuous: assumes\<gamma>: "valid_path \<gamma>" and z: "z \<notin> path_image \<gamma>" shows"continuous_on {0..1} (\x. winding_number(subpath 0 x \) z)" proof (rule continuous_on_eq) let ?f = "\x. integral {0..x} (\t. vector_derivative \ (at t) / (\ t - z))" show"continuous_on {0..1} (\x. 1 / (2 * pi * \) * ?f x)" proof (intro indefinite_integral_continuous_1 winding_number_exp_integral continuous_intros) show"\ piecewise_C1_differentiable_on {0..1}" using\<gamma> valid_path_def by blast qed (use path_image_def z in auto) show"1 / (2 * pi * \) * ?f x = winding_number (subpath 0 x \) z" if x: "x \ {0..1}" for x proof - have"1 / (2*pi*\) * ?f x = 1 / (2*pi*\) * contour_integral (subpath 0 x \) (\w. 1/(w - z))" using assms x by (simp add: contour_integral_subcontour_integral [OF contour_integrable_inversediff]) alsohave"\ = winding_number (subpath 0 x \) z" proof (subst winding_number_valid_path) show"z \ path_image (subpath 0 x \)" using assms x atLeastAtMost_iff path_image_subpath_subset by force qed (use assms x valid_path_subpath in\<open>force+\<close>) finallyshow ?thesis . qed qed
lemma winding_number_ivt_pos: assumes\<gamma>: "valid_path \<gamma>" and z: "z \<notin> path_image \<gamma>" and "0 \<le> w" "w \<le> Re(winding_number \<gamma> z)" shows"\t \ {0..1}. Re(winding_number(subpath 0 t \) z) = w" proof - have"continuous_on {0..1} (\x. winding_number (subpath 0 x \) z)" using\<gamma> winding_number_subpath_continuous z by blast moreoverhave"Re (winding_number (subpath 0 0 \) z) \ w" "w \ Re (winding_number (subpath 0 1 \) z)" using assms by (auto simp: path_image_def image_def) ultimatelyshow ?thesis using ivt_increasing_component_on_1[of 0 1, where ?k = "1"] by force qed
lemma winding_number_ivt_neg: assumes\<gamma>: "valid_path \<gamma>" and z: "z \<notin> path_image \<gamma>" and "Re(winding_number \<gamma> z) \<le> w" "w \<le> 0" shows"\t \ {0..1}. Re(winding_number(subpath 0 t \) z) = w" proof - have"continuous_on {0..1} (\x. winding_number (subpath 0 x \) z)" using\<gamma> winding_number_subpath_continuous z by blast moreoverhave"Re (winding_number (subpath 0 0 \) z) \ w" "w \ Re (winding_number (subpath 0 1 \) z)" using assms by (auto simp: path_image_def image_def) ultimatelyshow ?thesis using ivt_decreasing_component_on_1[of 0 1, where ?k = "1"] by force qed
lemma winding_number_ivt_abs: assumes\<gamma>: "valid_path \<gamma>" and z: "z \<notin> path_image \<gamma>" and "0 \<le> w" "w \<le> \<bar>Re(winding_number \<gamma> z)\<bar>" shows"\t \ {0..1}. \Re (winding_number (subpath 0 t \) z)\ = w" using assms winding_number_ivt_pos [of \<gamma> z w] winding_number_ivt_neg [of \<gamma> z "-w"] by force
lemma winding_number_lt_half_lemma: assumes\<gamma>: "valid_path \<gamma>" and z: "z \<notin> path_image \<gamma>" and az: "a \<bullet> z \<le> b" and pag: "path_image \<gamma> \<subseteq> {w. a \<bullet> w > b}" shows"Re(winding_number \ z) < 1/2" proof -
{ assume"Re(winding_number \ z) \ 1/2" thenobtain t::real where t: "0 \ t" "t \ 1" and sub12: "Re (winding_number (subpath 0 t \) z) = 1/2" using winding_number_ivt_pos [OF \<gamma> z, of "1/2"] by auto have gt: "\ t - z = - (of_real (exp (- (2 * pi * Im (winding_number (subpath 0 t \) z)))) * (\ 0 - z))" using winding_number_exp_2pi [of "subpath 0 t \" z] apply (simp add: t \<gamma> valid_path_imp_path) using closed_segment_eq_real_ivl path_image_def t z by (fastforce simp: path_image_subpath Euler sub12) have"b < a \ \ 0" proof - have"\ 0 \ {c. b < a \ c}" by (metis (no_types) pag atLeastAtMost_iff image_subset_iff order_refl path_image_def zero_le_one) thus ?thesis by blast qed moreoverhave"b < a \ \ t" by (metis atLeastAtMost_iff image_eqI mem_Collect_eq pag path_image_def subset_iff t) ultimatelyhave"0 < a \ (\ 0 - z)" "0 < a \ (\ t - z)" using az by (simp add: inner_diff_right)+ thenhave False by (simp add: gt inner_mult_right mult_less_0_iff)
} thenshow ?thesis by force qed
lemma winding_number_lt_half: assumes"valid_path \" "a \ z \ b" "path_image \ \ {w. a \ w > b}" shows"\Re (winding_number \ z)\ < 1/2" proof - have"z \ path_image \" using assms by auto with assms have"Re (winding_number \ z) < 0 \ - Re (winding_number \ z) < 1/2" by (metis complex_inner_1_right winding_number_lt_half_lemma [OF valid_path_imp_reverse, of \<gamma> z a b]
winding_number_reversepath valid_path_imp_path inner_minus_left path_image_reversepath) with assms show ?thesis using\<open>z \<notin> path_image \<gamma>\<close> winding_number_lt_half_lemma by fastforce qed
lemma winding_number_le_half: assumes\<gamma>: "valid_path \<gamma>" and z: "z \<notin> path_image \<gamma>" and anz: "a \ 0" and azb: "a \ z \ b" and pag: "path_image \ \ {w. a \ w \ b}" shows"\Re (winding_number \ z)\ \ 1/2" proof -
{ assume wnz_12: "\Re (winding_number \ z)\ > 1/2" have"isCont (winding_number \) z" by (metis continuous_at_winding_number valid_path_imp_path \<gamma> z)
--> --------------------
--> maximum size reached
--> --------------------
pan>:
0( 1java.lang.StringIndexOutOfBoundsException: Index 67 out of bounds for length 67 shows proof - have" with assms Re(inding_number\ z) < 0 \ - Re (winding_number \ z) < 1/2" by( complex_inner_1_right [OF, ofusing\<gamma> loop, of "outside(path_image \<gamma>)"] connected_outside byultimately winding_number
valid_path_imp_path ( no_types constant_on_def withusing using\<open>z \<notin> path_image \<gamma>\<close> winding_number_lt_half_lemma by fastforce qed
lemma winding_number_le_half: assumes\<gamma>: "valid_path \<gamma>" and z: "z \<notin> path_image \<gamma>" and anz: "a \ 0" and azb: "a \ z \ b" and pag: "path_image \ \ {w. a \ w \ b}" shows" proof -
{ assume wnz_12: "\Re (winding_number \ z)\ > 1/2"
pathstart \<gamma> \<and> pathfinish p = pathfinish \<gamma> \<and> by (metis { assume wnz_12: "\<bar>Re \<gamma> z)\<bar> > 1/2"
--> --------------------
--> maximum size reached
--> --------------------
¤ Dauer der Verarbeitung: 0.49 Sekunden
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.