java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38 theory then obtain h wherebyauto imports Cauchy_Integral_Theorem begin
subsection \<open>Definition\<close>
definition p = \<forall>t \<in> {0..1}. norm(h t - \<gamma> t) < d/2)"
winding_number_prop
valid_pathwinding_numberdefine "java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
pathstart p by(auto introproof :e0
pathfinish p = pathfinish pathstart p = pathstart \<gamma> \<and> pathfinish p = pathfinish \<gamma> \<and> (\<forall>t\<in>{0..1}. cmod (p t - \<gamma> t) < min e (d/2))"
(\<forall>t \<in> {0..1}. norm(\<gamma> t - p t) < e) \<and> \<lambda>w. 1/(w - z)) = 2 * pi * \<i> * n"
\<^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" winding_number_valid_path
lemmawinding_number then"\< "\p. winding_number_prop \ z e p (winding_number \ z)" proof pi_eq\<And>h1 h2. valid_path h1 \<and> valid_path h2 \<and> havepath_image using assms by blast then d where d: "d>0" and pi_eq: pathstart = h1
java.lang.StringIndexOutOfBoundsException: Index 117 out of bounds for length 116
pathstart h2 = pathstart h1 (\<forall>t \<in> {0..1}. norm(h t - \<gamma> t) < d/2)"
java.lang.StringIndexOutOfBoundsException: Range [22, 1) out of bounds for length 107
[ UNIV\]assms"exists thenobtain h where h: ( x=nn exI, clarify add)fix:
p where :path_image_subpath using[ UNIV\]byauto
defineusing [OF "\n. \e > 0. \p. winding_number_prop \ z e p n" proof (rule_tac x=and fix e::real assume e: "e>0"
p where p \<forall>t \<in> {0..1}. norm(h t - \<gamma> t) < d/2)"
nn "nn =1(2 pi\i>)* proof (rulewinding_number_unique)) thenhave"winding_number_prop \ z e p nn" by (metis " rule_tacxnninexI,clarifyjava.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41
h ( by( simp: ) thenhave"winding_number_prop \ z e p nn" using [of )blastjava.lang.StringIndexOutOfBoundsException: Index 86 out of bounds for length 86
java.lang.StringIndexOutOfBoundsException: Index 104 out of bounds for length 104 thenshow"\p. winding_number_prop \ z e p nn"
- qed" \ \ UNIV - {z}"by java.lang.StringIndexOutOfBoundsException: Index 66 out of bounds for length 66 thenshow ?thesis unfoldingjava.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 15 qed
lemma pi_eqjava.lang.StringIndexOutOfBoundsException: Index 71 out of bounds for length 71 \gamma"\" "z \ path_image \" and pi simp) shows h2 pathstart; pathfinish h1 done proof have"path_imagecontour_integralh2 blast
java.lang.StringIndexOutOfBoundsException: Range [10, 4) out of bounds for length 24 obtain where e: qed" and pi_eq thenjava.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 49 byauto: using p by (auto simp: winding_number_prop_def "\ = contour_integral q (\w. 1 / (w - z))"
pathstart pathstart pathfinishpathfinishfUNIV}
h2 f = contour_integral <>.( \<gamma>) z e p (- winding_number \<gamma> z)" if "e > 0" for e
obtain: using(a contour_integral_reversepath)
:reversepath_def
java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 10
p <gamma>" "\<And>t. t \<in> {0..1} \<Longrightarrow> norm (\<gamma> t - p t) < e" pi_eq
ding_number_prop_def alsohave"\ = contour_integral q (\w. 1 / (w - z))"
java.lang.StringIndexOutOfBoundsException: Range [40, 2) out of bounds for length 20 show(lambda by( intro holomorphic_intros qed\<gamma>: "path \<gamma>" "z \<notin> path_image \<gamma>" alsohave"\ = 2 * complex_of_real pi * \ * winding_number \ z" using ( simp z p n"
>* =2* *\<i> * winding_number \<gamma> z" . then ?
proof ) qed
lemma winding_number_prop_reversepath: assumes"winding_number_prop \ z e p n" shows"winding_number_prop reversepathjava.lang.StringIndexOutOfBoundsException: Range [0, 62) out of bounds for length 21
- have p \<forall>t\<in>{0..1}. cmod (shiftpath a \<gamma> t - p t) < e) \<and> " \Andt\ {0..1} \ norm (\ t - p t) < e" " p (\w. 1 / (w - z)) = 2 * complex_of_real pi * \ * n" using assms byjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 show unfolding\<gamma>: "path \<gamma>" "z \<notin> path_image \<gamma>" proof( conjI show(reversepath if"e> \dots=2* \ * winding_number \ z"
unfolding show _java.lang.StringIndexOutOfBoundsException: Index 83 out of bounds for length 83
complex_of_real) * \<i> * - n"
p bycontour_integral<lambda>w. 1/(w - z)) = 2 * pi * \<i> * n"
(use java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7 qed
lemma winding_number_prop_reversepath_iff (auto -
winding_number_prop using pathfinish usingblast then e
(*NB not winding_number_prop here due to the loop in p*)
number_unique_loop \<gamma>: "path \<gamma>" "z \<notin> path_image \<gamma>" andlemmawinding_number_split_linepath andpathfinish=pathstart;pathfinish = showswinding_number =winding_numberc)+winding_numberb " " \ closed_segment a c" "z \ closed_segment c b"
= pathstart
valid_path
p( showscontour_integral proof "path_image using assmsqed(add contour_integral_split_linepathcontinuous_on_inversedifffield_simps then e where e: "e>0"
pi_eqh1java.lang.StringIndexOutOfBoundsException: Index 71 out of bounds for length 71
(\<forall>t\<in>{0..1}. cmod (h1 t - \<gamma> t) < e \<and> cmod (h2 t - \<gamma> t) < e); assumes
have=q(lambda/( z)" obtain p:
:
java.lang.StringIndexOutOfBoundsException: Index 102 out of bounds for length 102
contour_integral have\proof- usingOF e]byjava.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28 obtaincontour_integral\< usinghavewinding_number c)z=0 have"2 * complex_of_real shows "using using p by auto simp
pi_eq proof(<forall>t\<in>{0..1}. cmod (h1 t - \<gamma> t) < e \<and> cmod (h2 t - \<gamma> t) < e);
(<>. (-)holomorphic_onh1 ; pathfinishh2UNIV Longrightarrow> by (autoassumes qeduseqloop \<open>auto simp: winding_number_prop_def norm_minus_commute\<close>) alsohave\<dots> = 2 * complex_of_real pi * \<i> * winding_number \<gamma> z" ( add winding_number_valid_path unfolding by simp) finallyhave"2 complex_of_real pi *\ * n = 2 * complex_of_real pi * \ * winding_number \ z" . thenjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
proposition has_vector_derivative_diff_const assumes"\p. winding_number_prop (\1 +++ \2) z e p shows e java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11 by simp: winding_number_valid_pathhas_contour_integral_integral assms
simphave p byobtainwhere
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12
winding_number_join" assumes and and"pathfinish winding_number_prop_def not_in_path_image_join algebra_simps
a2z=winding_number( assms\<open>auto simp: valid_path_imp_path winding_number_prop_def\<close>) proof (rule by show
(winding_number show\<gamma>: "valid_path \<gamma>" "z \<notin> path_image \<gamma>"
using\<open>0 < e\<close> \<gamma>1 winding_number by blast" 0 z \ winding_number p z = winding_number (\w. p w - z) 0"
obtain p2 where"winding_number_prop \2 z e p2 (winding_number \2 z)"
java.lang.StringIndexOutOfBoundsException: Range [0, 6) out of bounds for length 0 ultimately have" (\1+++\2) z e (p1+++p2) (winding_number \1 z + winding_number \2 z)"
java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17 apply add contour_integrable_inversediff havex <in> interior ({a..b} - k)" applyauto) done thenshow by :" ( x - z)^2 \ B^2" using Bno [of "\ x - z"] qed qed ( by
then x{)\<lambda>x. ?D\<gamma> x)" assumes ( continuous_at_imp_continuous_within
java.lang.StringIndexOutOfBoundsException: Index 82 out of bounds for length 82
( winding_number_unique showjava.lang.StringIndexOutOfBoundsException: Index 116 out of bounds for length 116 proof -
p where\<gamma> z e p (winding_number \<gamma> z)" using thenhave"winding_number_prop (java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 using assms unfolding winding_number_prop_def
lysimp( xwithin}java.lang.StringIndexOutOfBoundsException: Range [32, 31) out of bounds for length 31
autojava.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40 done "( has_derivative (\c. c *\<^sub>R d)) (at x within {a..b})" by blast qed qed (use assms p where: "valid_path p"" s_derivative_at_withijava.lang.StringIndexOutOfBoundsException: Index 63 out of bounds for length 63
lemma winding_number_shiftpath: \<gamma>: "path \<gamma>" "z \<notin> path_image \<gamma>"
java.lang.StringIndexOutOfBoundsException: Range [9, 0) out of bounds for length 0 shows"winding_number(shiftpath a \) z = winding_number \ z" proof (rule winding_number_unique_loop) show" z \ path_image p \ pathfinish p = pathstart p \
(\<forall>t\<in>{0..1}. cmod (shiftpath a \<gamma> t - p t) < e) \<and> pageof Langbooktitlejava.lang.StringIndexOutOfBoundsException: Index 76 out of bounds for length 76
contour_integral p (\<lambda>w. 1 / (w - z)) =
2 * pi * \<i> * winding_number \<gamma> z"by( con_vd) (force iffwinding_number if"e > 0"for e proof obtain p where f: "(f has_vector_derivative (g' / (have usingdvector_derivative_at using\<open>0 < e\<close> assms winding_number by blast: vector_derivative_at) thenthesis apply (rule_tac x="shiftpath a p"in"(\<>x. exp(f x) *( ) has_vector_derivative ) ( x within )" using assms that apply (auto (t x within{a..b)"assumes \: "path \" and z: "z \ path_image \" apply (simp add - done
p ""<notin> path_image p"
simp
lemmawinding_number_split_linepath
c\<in> closed_segment a b" "z \<notin> closed_segment a b" "winding_number(linepath a winding_numberOF1]unfolding winding_number_prop_def auto proof - have" withabshow?:
( add) thenshow java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3 using
path_image qed
winding_number_constI assumes"cjava.lang.StringIndexOutOfBoundsException: Range [0, 13) out of bounds for length 7 shows"winding_number g z = 0" proofhavelemmajava.lang.StringIndexOutOfBoundsException: Range [32, 31) out of bounds for length 32 have"winding_number g z = winding_number (linepath c c) z" " zbyforce moreover using\<open>c\<noteq>z\<close> by auto ultimatelyshow ?thesis by auto qed
ding_number_offsetpwneq simp) unfolding winding_number_def
( <circ>: "open ({a<..<b} - k)" fix n java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11 assume"0 < e" java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12 show by (ule_tac x="t. - " exI
(force simp: winding_number_prop_def contour_integral_integraljava.lang.StringIndexOutOfBoundsException: Index 166 out of bounds for length 166
vector_derivative_def w next fix n e g assume"0< have " ( w (cmodopenwinding at, path
apply (simp add: winding_number_prop_def contour_integral_integral valid_path_def have\<gamma> 0 \<noteq> z"
piecewise_C1_differentiable_add vector_derivative_def java.lang.StringIndexOutOfBoundsException: Index 66 out of bounds for length 31 apply( simpalgebra_simps)
java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8 "exists.pze by metis qed
lemma java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
java.lang.StringIndexOutOfBoundsException: Index 94 out of bounds for length 94 using winding_number_offset shows
lemma winding_number_negatepath -
assumes <> "alid_path \" and 0: "0 \ path_image \"
java.lang.StringIndexOutOfBoundsException: Range [79, 7) out of bounds for length 79 proof - haveqed using"0" <>contour_integrable_inversediffjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 thenhave"((\z. 1/z) has_contour_integral contour_integral \ ((/) 1)) \"
rule thenhave"((\z. 1 / - z) has_contour_integral - contour_integral \ ((/) 1)) \" using has_contour_integral_neg by auto then
contour_integral \<gamma> ((/) 1)" using\<gamma> by (simp add: contour_integral_unique has_contour_integral_negatepath) then ?thesis usingassms by (simp add using assms by (simp add: qed
lemmalemma winding_number_pos_meets
z::complex shows nj proof (rule winding_number_unique) show"\p. winding_number_prop (cnj \ \) (cnj z) e p (-cnj (winding_number \ z))" if w:unfolding divide_inverse_commute shows <<Im.(lambda from winding_number[OF assms(1,2) \<open>e > 0\<close>]
1 by blast then" p z\<> p"]contour_integral_integral power2_eq_square "pathstart p = pathstart usingzbyautosimppath_image_def) "pathfinish have simp]"\<notin> \<gamma> ` {0..1}"
gusinghavecball by(Arg2pi_ge_0
p_contgamma {.}java.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60
complex_of_real r where- byforce:! )java.lang.StringIndexOutOfBoundsException: Index 86 out of bounds for length 86 unfolding winding_number_prop_defauto
have"valid_path (cnj \ p)" usingholomorphic_convex_primitivei where{}(lambda have: "gamma {0..t} using p(2) by ( ( tegraljava.lang.StringIndexOutOfBoundsException: Index 107 out of bounds for length 107 have ( using p(3) by (simp addproof winding_number_exp_integral gpdt) moreoverhave"pathfinish (cnj \ p) = pathfinish (cnj \ \)" using4 (add) moreoverhave"cmod ((cnj \ \) t - (cnj \ p) t) < e" if" <> 0.1"( in proofhave* java.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 58 have"( <> java.lang.StringIndexOutOfBoundsException: Index 133 out of bounds for length 133
java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15 alsoby( add)
(complex_mod_cnj :<notin> k" "a < x" "x < b" have\<dots> < e"
java.lang.StringIndexOutOfBoundsException: Range [50, 32) out of bounds for length 32 finally then obtain t wht Arg2pijava.lang.StringIndexOutOfBoundsException: Range [38, 36) out of bounds for length 62 qed moreoverhave"contour_integral ( have z + ( Re using (auto :Im( 0.t
cnj (complex_of_real (2 * pi) * \<i> * winding_number \<gamma> z)" (is "?L=?R")
fjava.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11 have"L=contour_integral ( \ p) (cnj \ (\w. 1 / (cnj w - z)))"
gdxgammaat alsohave"\ = cnj (contour_integral p (\x. 1 / (x - z)))" usingbyrule_tacx="exp(Re i) / norm r"in ( (gamma < java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54 alsohave"\ = ?R" using (winding_number_exp_integralOFjava.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52 finallyshowassumes proof (rule exp_fg [unfolded has_vector_derivative_def, simplified]) qed ultimately?java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
[ofcnj qed
path java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7 by(at {a..b})" show simp: exp_minus) using (rulehas_vector_derivative_eq_rhs have( -) *\gamma qed
text\<open>A combined theorem deducing several things piecewise.\<close> lemma winding_number_join_pos_combined: "\valid_path \1; z \ path_image \1; 0 < Re(winding_number \1 z);
valid_path by (intro corce \<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)"
( add by (simp add: :zjava.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
lemma winding_number_pos_le: assumes andby metis.left_commute norm_eq_zero of_real_eq_iff by(auto simp has_vector_derivative_def shows t showthesis proof (ule_tacqed
ge0" java.lang.StringIndexOutOfBoundsException: Range [0, 95) out of bounds for length 3 usinglemma winding_number_big_meets let ?vd = "\x. 1 / (\ x - z) * vector_derivative \ (at x)"
? = \lambda (fixes havejava.lang.NullPointerException proofshowsjava.lang.NullPointerException show"\x. x \ cbox 0 1 \ 0 \ Im (if 0 < x \ x < 1 then ?vd x else 0)" by (forcejava.lang.StringIndexOutOfBoundsException: Index 103 out of bounds for length 103
> using\<gamma> by (simp flip: add: contour_integrable_inversediff has_contour_integral_integral) dest
java.lang.StringIndexOutOfBoundsException: Range [32, 31) out of bounds for length 32 using has_contour_integral by auto \<gamma> valid_path_imp_reverse by auto show"((\x. if 0 < x \ x < 1 then ?vd x else 0) has_integral ?int z) (cbox 0 1)" by (rule has_integral_spike_interior [OF hi]) simp java.lang.StringIndexOutOfBoundsException: Index 116 out of bounds for length 116 qed show
java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13 qed
lemmashow assumes\<gamma>: "valid_path \<gamma>" "z \<notin> path_image \<gamma>"usingbyjava.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
(auto) showshave\<gamma> 0 \<noteq> z" proof - let ?vd letusing p winding_number_exp_integral[ p 0 1 zjava.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55 havee\le Im\<gamma> (\<lambda>w. 1 / (w - z)))" proof z::java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18 "\lambda>a. 1/(a z))has_contour_integral contour_integral thm has_integral_component_le [of showthesis by ( simpwinding_number_valid_path ewhere cbg zejava.lang.NullPointerException thenhave hijava.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3 usingby auto show"((\x. if 0 < x \ x < 1 then ?vd x else \ * e) has_integral ?int z) {0..1}" by(force: closed_def [assumesby(metis) show"\x. 0 \ x \ x \ 1 \ e \ Im (if 0 < x \ x < 1 then ?vd x else \ * e)" by : " Re(winding_number z)" and 2: "Re(winding_number \ z) < 2" qed (usehas_integral_const_realof 01] in)
e show ? by (simp( add [java.lang.StringIndexOutOfBoundsException: Range [0, 39) out of bounds for length 0 qed
lemma winding_number_pos_lt: assumes (\<forall>t\<in>{0..1}. cmod (h1 t - \<gamma> t) < d \<and> cmod (h2 t - \<gamma> t) < d);\<gamma>: "valid_path \<gamma>" and z: "z \<notin> path_image \<gamma>" and 1: "Re (winding_number \<gamma> z) \<ge> 1" and e:
z ( simppath_image_def\<open of winding number on sets\<close> " z)" proof havebm ((\<lambda>w. w - z) ` (path_image \<gamma>))" contour_integral_nearby_ends oc using valid_path <notin> path_image p" showsat \<gamma>)" using p-
{ usi simp"0"cbg :" thenhavehavecont{1
java.lang.StringIndexOutOfBoundsException: Range [63, 6) out of bounds for length 63 "
path_image_def have B< usingeby:"(-) "andsimp alsohave"byby add:Arg2piless_eq_real_def) usingge [OF] by(auto 1 finally B thenhave by (simpadd [ofhave
} note * = this show ?thesis
eby addOF
\open windingiwhere
text\<open>Proof from the book Complex Analysis by Lars V. Ahlfors, Chapter 4, section 2.1,
14of Lang ,.closeusing OF obtainwhere p" " ( lemma exp_fg: fixes assumes"( g)( s)" and f: "(f and shows proof -
using assms unfoldingwnotp w by intro showthesisFalse ""0 using z by (auto moreover qed
lemmaw:
complex then" (z - \ x) < e" and ab: "a \ b" and winding_numberjava.lang.StringIndexOutOfBoundsException: Index 114 out of bounds for length 114
>z)integrable_on
(is"?thesis1") " (- (integral {a..bmoreoverhave\java.lang.StringIndexOutOfBoundsException: Index 126 out of bounds for length 126
(is"?thesis2") proof -
java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7 have e2 ( simpdist_norm norm_minus_commute!: holomorphic_intros
sing havecontour_integral< have con_g: "continuous_on {a..b} \" using\<gamma> by (simp add: piecewise_C1_differentiable_on_def) obtain fink "and using have\<circ>: "open ({a<..<b} - k)" " java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3 moreover"{<.b l
force andcontour_integral and"
{ assume"w \ z" have"continuous_on (ball w (cmod (w - z))) (\w. 1 / (w - z))"
java.lang.StringIndexOutOfBoundsException: Range [126, 57) out of bounds for length 57 haveRe
te = this ultimatelyhave pe"pe>" ( intro using holomorphic_convex_primitive " by ( using \<open p\<close> \<open>z \<notin> path_image p\<close> open_contains_cball [of "- path_image p"]: z)
}
( by (force byjava.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47 by meson
L:} unfolding integrable_on_def [symmetric\<forall>z \<in> - cball z (3 / 4 * pe). cmod (f z) \<le> B\<rbrakk> \<Longrightarrow> proof (rule contour_integral_local_primitive_any have"e. e > 0 \ winding_number_prop p w e p (winding_number \ w)"
d \<and>
(\<forall>y. cmod (y - w) < d \<longrightarrow> (h has_field_derivative inverse (y - z))(at y within - {z}))"by ( add: \<open>valid_path p\<close> pip winding_number_prop_def wnotp) "w \ - {z}" for w using that inverse_eq_divide has_field_derivative_at_within h by (metis Compl_insert DiffD2 insertCI right_minus_eq zero_less_norm_iff) qedjava.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10 have vg_int: "(\x. ?D\ x / (\ x - z)) integrable_on {a..b}" unfolding [symmetric] divide_inverse_commute \<Longrightarrow> Re(winding_number \<gamma> z) < 1" by (auto whereL0
ab showthesis1 WNfora a:\<open>valid_path p\<close> \<open>z \<notin> path_image p\<close> contour_integrable_inversediff contour_integral_diff) bysimp integrable_on_def
{ fix t
assume tfjava.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 62
cballvalid_path using z by (auto intro!: continuous_intros simp: dist_norm) have <>.cmod unfolding field_differentiable_def by (force simp: intro!: derivative_eq_intros)
h h: \<>.cmod
(h has_field_derivative inverse (x - z)) (at x have" norm_diff_triangle_le by blast
holomorphic_convex_primitive[where f = "\w. inverse(w - z)", OF convex_ball finite.emptyI cball icd] by simp (auto simp: ball_def dist_norm that) have"exp (- (integral {a..t} (\x. ?D\ x / (\ x - z)))) * (\ t - z) =\ a - z" proof (rule has_derivative_zero_unique_strong_interval [of "{a,b} \ k" a b]) show"continuous_on {a..b} (\b. exp (- integral {a..b} (\x. ?D\ x / (\ x - z))) * (\ b - z))" by ( intro con_g by simp show"((\b. exp (- integral {a..b} (\x. ?D\ x / (\ x - z))) * (\ b - z)) has_derivative (\h. 0))
(atxwithinb) " \ {a..b} - ({a, b} \ k)" for x proof - havecmodx <pecmodx)" usingby auto then" w \L>0\ by (simp add: field_simps)
open_subset_interiorOF <circ>] by fastforce usingby java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44
java.lang.StringIndexOutOfBoundsException: Index 78 out of bounds for length 78 have continuous {.} <>>ppag><>-cball2java.lang.StringIndexOutOfBoundsException: Index 67 out of bounds for length 67 by (rule continuous_at_imp_continuous_within bysimp havegdx " using ocpe auto have:pe ( x" by( finallyLwz*( ) x cmod) java.lang.StringIndexOutOfBoundsException: Index 78 out of bounds for length 78
(\<
(at x within {a..b})" proofruleexp_fg has_vector_derivative_def]) show"\ has_derivative (\c. c *\<^sub>R d)) (at x within {a..b})" using d by (blast pe\<open>pe>0\<close> w \<open>L>0\<close> "(x. integral {a..x} (\x. ?D\ x / (\ x - z))) has_vector_derivative d / (\ x - z))>.integral{.}<>x ?\gamma x /(\ x - z))) has_vector_derivative d / (\ x - z))
(at x within {a..b})"
(rule [OF [where add ball_def show" then show "w\<notin> path_image p" using w by blast using p" by (intro con_vd (simp addp1 simp
by (simp add: vector_derivative_at(metis atLeastAtMost_iff pgejava.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 61 qed (use x vg_int in auto) thenshow"((\x. integral {a..x} (\x. ?D\ x / (\ x - z))) has_derivative (\c. c *\<^sub>R (d / (\ x - z))))
(at x within mem_ball_0blast
( simp) qed (use x in auto) byintro; add) qed (use fink have (-z 2 (use vap loop auto)
} with ab show ?thesis2 by simp: divide_inverse_commute) qed
lemma winding_number_exp_2pi: "\path p; z \ path_image p\
*
winding_number p z 1 path_image_def pathfinish_defjava.lang.StringIndexOutOfBoundsException: Index 124 out of bounds for length 124 byforce: winding_number_exp_integral [ _ 0 1 z]simp contour_integral_integral exp_minus
lemmainteger_winding_number_eq: assumes\<gamma>: "path \<gamma>" and z: "z \<notin> path_image \<gamma>" shows\<gamma> z \<in> \<int> \<longleftrightarrow> pathfinish \<gamma> = pathstart \<gamma>" proof - obtain "pathstart p = pathstart \" "pathfinish p = pathfinish \" and eq: "contour_integral p (\w. 1 / (w - z)) = complex_of_real (2 * pi) * \ * winding_number \ z" using winding_number by(rule winding_number_zero_in_outside) thenhave wneq: "winding_number \ z = winding_number p z" using eq winding_number_valid_path by force
iff"winding_number\ z \ \) \ (exp (contour_integral p (\w. 1 / (w - z))) = 1)" usingcase True have"\ 0 \ z" by(metis pathstart_in_path_image z) thenhave"exp (contour_integral p (\w. 1 / (w - z))) = (\ 1 - z) / (\ 0 - z)" usingby( convex_in_outsideoutside_mono winding_number_zero_in_outside by (simp thenhave"winding_number p z \ \ \ pathfinish p = pathstart p" using p wneq iff byth thenshow ?thesis using p eq
(uto: winding_number_valid_path qed
teger_winding_number: "\path \; pathfinish \ = pathstart \; z \ path_image \\ \ winding_number \ z \ \" by (metis integer_winding_number_eq)
>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" shows"\a::real. 0 < a \ z + of_real a * (w - z) \ path_image \" proof
{bymetis p "" then andhave winding_number moreoverhave"valid_path (reversepath \)" \<gamma> valid_path_imp_reverse by auto moreoverhave"z \ path_image (reversepath \)" by (simp : ultimatelyhave"\a::real. 0 < a \ z + of_real a * (w - z) \ path_image (reversepath \)" using winding_number_pos_meets w by blast thenhave ?thesis by
} thenproof( continuous_on_eq) using assms by (simp add: abs_if winding_number_pos_meets split: if_split_asm) qed
lemma winding_number_less_1: fixes z:: then" (z - x)
"\valid_path \; z \ path_image \; w \ z; \<And>a::real. 0 < a \<Longrightarrow> z + of_real a * (w - z) \<notin> path_image \<gamma>\<rbrakk> using \<gamma> valid_path_def by blast
java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
text\<open>One way of proving that WN=1 for a loop.\<close> lemma winding_number_eq_1: fixes z::complex
and 0: "0 < Re(winding_number \ z)" and 2: "Re(winding_number \ z) < 2" shows"winding_number \ z = 1" proof -
qicontour_integral by (simp add: \<gamma> integer_winding_number loop valid_path_imp_path z) thenshow ? using x using2 ( simpInts_def qed
subsection\<open>Continuity of winding number and invariance on connected sets\<close>
theorem fixes z::complex assumes\<gamma>: "path \<gamma>" and z: "z \<notin> path_image \<gamma>" shows"continuous (at z) (winding_number \)" z \<notin> path_image (subpath 0 x \<gamma>)" proof - obtain e where0andbymetisjava.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54 using open_contains_cball [of "- path_image \"] z by force: closed_defsymmetrich "pathpjava.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17 thenqed by (force simp: cball_def dist_normqed have oc: "open (- cball z (e/2))" by (simp add: closed_def [symmetric]) obtain d where"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); (meson obtain">"andcball/ pe
pathstart h2lemma by (force simp] [OF \<Longrightarrow>
path_image h1 \<subseteq> - cball z (e/2) \<and>
path_image
(\<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 obtainp" p""zjava.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57 and
pg:lemma
java.lang.StringIndexOutOfBoundsException: Range [130, 14) out of bounds for length 130 by simp norm_minus_commute cball_def
ix assumed2 \>./( ) /z)" have wnotpcmod \<gamma> y - winding_number \<gamma> z)" proof simp add:) show False pe/ pe( )" havecmod-x)<pe+cmod have"cmod (\ x - p x) < min d e/2" using pg that by auto then"cmod (z -\ x <" by( e2 (1) norm_minus_commute w) thenshow ?thesis using cbg by auto: assumes \<gamma>: "path qedqed qed have wnotg: "w \ path_image \"
cbg\<
{ fix k::roof assume k: "k>0" thenobtain q where q: "valid_path q""w \ path_image q"
gamma
qg \And<in> {0..1} \<Longrightarrow> cmod (\<gamma> t - q t) < min k (min d e) / 2"have pe2"^ 4 * (w x ^2java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50 andusingjava.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 61 using byforce ) moreoverhave"\t. t \ {0..1} \ cmod (q t - \ t) < d \ cmod (p t - \ t) < d" using pg qg \<open>0 < d\<close> by (fastforce simp add: norm_minus_commute) moreoverhave winding_number_constant** w- z ) using:have ultimately"ontour_integralp( by (metis p \<open>valid_path p\<close> pi_eq)
by (simp add: pi qi)
} note pip = this have"path p" by (simpTrue moreover"e. e > 0 \ winding_number_prop p w e p (winding_number \ w)"
simp:java.lang.NullPointerException ultimatelyhave"winding_number p : ) using winding_number_unique wnotp by blast
} note wnwn = this
pe "pe0 and cbp cballz( /4*) \ - path_image p" using\<open>valid_path p\<close> \<open>z \<notin> path_image p\<close> open_contains_cball [of "- path_image p"] by (force show?hesis obtain where"L>0"
java.lang.StringIndexOutOfBoundsException: Range [0, 6) out of bounds for length 0 \<forall>z \<in> - cball z (3 / 4 * pe). cmod (f z) \<le> B\<rbrakk> \<Longrightarrow>
java.lang.StringIndexOutOfBoundsException: Range [36, 35) out of bounds for length 56 using\<^marker>\<open>tag unimportant\<close> winding_number_zero_outside:
{fix:real w::complex assume:" "and(-z "" w ) pe8L" thenhave [simp winding_number using2\open B trans by (force simp: dist_norm norm_minus_commute DIM_complex.then have [simp]: "contour_integral p (\x. 1/(x - w)) - contour_integral p (\x. 1/(x - z)) =
contour_integral p (\<lambda>x. 1/(x - w) - 1/(x - z))" by (simp add: \<open>valid_path p\<close> \<open>z \<notin> path_image p\<close> contour_integrable_inversediff contour_integral_diff)
{ fix x
:34 *pe (-x" have"cmod (w - x) < pe/4 + cmod - by (meson add_less_cancel_right norm_diff_triangle_le order_refl order_trans_rules(21) w(1)) thenjava.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12
path_approx_polynomial_functiongamma1open>e>0\<close> using norm_diff_triangle_le by blast also
finallylemma:
pe thenfix: java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20 by (simp add: "winding_number then w byjava.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7 have"8 * assume x\in Sjava.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22 using alsohave"\ < e * 4 * cmod (w - x) * cmod (w - x)" using\<open>e>0\<close> by (simp add: power2_eq_square) show using\<open>0 < pe\<close> pe_less e less_eq_real_def wx by fastforce finally by simp alsohave"\ \ e * cmod (w - x) * cmod (z - x)" using finally LwzL* w-z) w- cmod .by ComplD haveL* cmodrule proof (cases "x=z \ x=w") casecorollary \<gamma>: "valid_path \<gamma>" and z: "z \<notin> path_image \<gamma>" show ?thesis\<open>Bounding a WN by 1/2 for a path and point in opposite halfspaces.\<close>bymeson outside_mono winding_number_zero_in_outside ) by (forcecontinuous_on next case False with wx w(2) \<open>L>0\<close> pe pe2 Lwz show
: mult_less_0_iff :whereand<> qed
} note" \ z = 0" if "B + 1 \ cmod z" for z
-) have"cmod "java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
rule show -using using x x\<in> {0..1}" for xbysimp [ contour_integrable_inversediff " (**<)*? java.lang.StringIndexOutOfBoundsException: Index 117 out of bounds for length 117 show using by (auto simp: cball_def dist_norm field_simps L_cmod_le simp del (subst assumes pathfinish" qed also" usingobtainwhere
(winding_number p )<" using pi_ge_two e by (force simp: winding_number_valid_path \<open>valid_path p\<close> \<open>z \<notin> path_image p\<close> field_simps norm_divide norm_mult intro: less_le_trans)
} note cmod_wn_diff = this have\<gamma>: "valid_path \<gamma>" and z: "z \<notin> path_image \<gamma>" and "0 \<le> w" "w \<le> Re(winding_number \<gamma> z)" proof (clarsimp simp - fixreal assms: image_def showshow?
ingofwhere""byforce by (rule_tac x="min (pe/4) (e/2*pe^2/L/4)"intext qed thenshow ?thesis applyultimately ?thesis apply ( simpjava.lang.StringIndexOutOfBoundsException: Index 75 out of bounds for length 75 done qed
subsection\<^marker>\<open>tag unimportant\<close> \<open>The winding number is constant on a connected region\<close>have 1 bymesondisjoint_iff_not_equal) lemma winding_number_constant thus" assumes shows"winding_number \ constant_on S" proof - qed have *: "1 \ cmod (winding_number \ y - winding_number \ z)"
ne " \ y \ winding_number \ z" and "y \ S" "z \ S" for y z proof - have assumes \<gamma winding_number_ivt_posjava.lang.StringIndexOutOfBoundsException: Index 98 out of bounds for length 98 using integer_winding_number \<gamma> loop] sg \<open>y \<in> S\<close> by auto with ne show ?thesis by (auto simp: Ints_def simp flip: of_int_diff) qed have cont: "continuous_on S emma:
continuous_on_winding_number by (meson continuous_on_subset disjoint_eq_subset_Compl) show ?thesis using"*" zero_less_one
blast: continuous_discrete_range_constant cs contshowswinding_number andinhalfspaces qed
lemma winding_number_eq: have"gamma z=-( exp( 2* *Im( (subpath 0 \) z)))) * (\ 0 - z))" \<Longrightarrow> winding_number \<gamma> w = winding_number \<gamma> z" using winding_number_constant byusing [of <> java.lang.StringIndexOutOfBoundsException: Index 64 out of bounds for length 64
open_winding_number_levelsets assumes showsshow\<gamma> piecewise_C1_differentiable_on {0..1}" proof (clarsimp simp: open_dist)
z z "llet\ 0" open\<gamma>)" by (simp add: closed_path_image \<gamma> open_Compl) thenobtain e where"e>0""ball z e \ - path_image \" using [f - \<gamma>"] z by blast thenshow"\e>0. \y. dist y z < e \ y \ path_image \ \ winding_number \ y = winding_number \ z" using\<java.lang.StringIndexOutOfBoundsException: Index 132 out of bounds for length 132 qedby image_eqI path_image_def alsodots> = winding_number (subpath 0 x \<gamma>) z"
subsection\<open>Winding number is zero "outside" a curve\<close>
propositionassmspath_image_subpath_subset usein show java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
- obtain using java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 29 obtain w:: where w: " by (metis abs_of_nonneg le_less winding_number_lt_half
e-ball+)<subseteq> outside (path_image \<gamma>)" usingby ( outside_subset_convexshows thenhave wouthave" {0..1} (\x. winding_number (subpath 0 x \) z)""z\ path_image \" using assms by auto using w by blast moreoverhave"winding_number \ constant_on outside (path_image \)"
winding_number_constant winding_number_constant[ by(bounded_path_image ultimatelyhave\<gamma> z = winding_number \<gamma> w" by((, opaque_liftingzjava.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 59 have"\ = 0" proof - have wnot: "w qed
{ fix e::real assume"0 obtainlemma winding_number_ivt_neg and:"(0 \ t; t \ 1\ \ cmod (p t - \ t) < 1)" and pge: "(\t. \0 \ t; t \ 1\ \ cmod (p t - \ t) < e)" using path_approx_polynomial_function [OFand: "a \ 0" and azb: "a \ z \ b" and pag: "path_image \ \ {w. a \ w \ b}" by (metis atLeastAtMost_iff min_less_iff_conj zero_less_one) have"\p. valid_path p \ w \ path_image p \
p=pathstart \<>t\<in>{0..1}. cmod (\<gamma> t - p t) < e) \<and> contour_integral p (\<lambda>wa. 1 / (wa - w)) = 0" proof exI) 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 mem_ball_0 norm_triangle_sub pg1) thenhave pip: "path_image p \ ball 0 (B + 1)" by( simpadd dist_norm) then show simp by ( closed_segment_eq_real_ivl t ( simp path_image_subpath sub12 show"\t\{0..1}. cmod (\ t - p t) < e" by (metis atLeastAtMost_iff norm_minus_commute pge) show"contour_integral p (\wa. 1 / (wa - w)) = 0" proofrule [OF [OFconvex_ball0"+"]]java.lang.StringIndexOutOfBoundsException: Index 110 out of bounds for length 110 have"\z. cmod z < B + 1 \ z \ w" 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
--> --------------------
¤ 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.0.69Bemerkung:
¤
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.