Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  Winding_Numbers.thy   Sprache: Isabelle

 
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
  then obtain 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)
  then obtain 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)
      then have "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)
      then show "\p. winding_number_prop \ z e p nn"
        by metis
    qed
  then show ?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
  then obtain 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)
  also have "\ = 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>)
  also have "\ = 2 * complex_of_real pi * \ * winding_number \ z"
    using q by (auto simp: winding_number_prop_def)
  finally have "2 * complex_of_real pi * \ * n = 2 * complex_of_real pi * \ * winding_number \ z" .
  then show ?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: ">
  finally have "2 * contour_integral p (\w. 1/(w - z)) = 2 * pi * \ * n"
  then show ?thesis
    by simp
qed

proposition:
  assumes "valid_path \" "z \ path_image \"
  shows <gamma> z = 1/(2*pi*\<i>) * contour_integral \<gamma> (\<lambda>w. 1/(w - z))"d    shows

  (use "path_image \ \ UNIV - {z}"

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

lemma      assume 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                          
    shows      have"\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)"
      using     unfolding 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 
qeduse in

     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-
  have\<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
qed obtainjava.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
  ultimately show ? 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
  then show
 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
    obtain                    using
      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
    moreover">"for
using  add
moreover show
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
      also have "\ = ?R"
        using p_contassumesultimately thesis
      finally ? java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
    qed
    ultimately show ?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


subsubsection

lemma :
    "\valid_path \; z \ path_image \\
     \<Longrightarrow> Re(winding_number \<gamma> z) = Im(contour_integral \<gamma> (\<lambda>w. 1/(w - z))) / (2*pi)"


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
qed then 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
    then have B2
      by (simp use in
le winding_number_reversepath
       path_image_def
    then have "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}"
    shows  by( 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
  moreover have "{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 "
    ultimately have "\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
    show and 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
    
  { fix simp BB2have
    assume t: " have" z 
    have cball \<gamma> by (simp add: piecewise_C1_differentiable_on_def)
        using z by (auto intro!: continuous_intros simp       p(3) by(simp:      " /B^sup2\java.lang.StringIndexOutOfBoundsException: Index 136 out of bounds for length 136
:.java.lang.StringIndexOutOfBoundsException: Index 144 out of bounds for length 144
      unfolding field_differentiable_def
 h".
                       (h has_field_derivative inverse -
      using
      by simp (   z::
    have         
            ( complex_mod_cnj
      show (
         auto! t .
"java.lang.StringIndexOutOfBoundsException: Index 147 out of bounds for length 147
            (at( unfolding
        if intro)
      proof
        have    using zby(uto!: derivative_eq_intros[nfolded]     ve
          using that  using java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
        then       abbjava.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
          usingjava.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
        java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
usingby  >a
tcon_vdx{byintro :ab
          by <
             addjava.lang.StringIndexOutOfBoundsException: Index 72 out of bounds for length 72
          using   java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
        then obtain have<lbrakk
           auto java.lang.StringIndexOutOfBoundsException: Range [55, 54) out of bounds for length 55
        show 
atandjava.lang.NullPointerException
        
          show  simp 
using )
ave
}
          proof (rule has_vector_derivative_eq_rhs [OF integral_has_vector_derivative_continuous_atbysimp  )
            show "continuous int = "z
              usingrulejava.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
byintro continuous_introsx" k" "a < x" "x < b"
tive
              using have:"? has_integral int z) cbox01"
              by      "(\lambdax show <> .0\java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
(  java.lang.StringIndexOutOfBoundsException: Range [36, 37) out of bounds for length 36
          then
(x      :<
            by (auto simp " Re( \ z)"
        ( inunfolding [symmetric] divide_inverse_commute
java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
     (use t  auto ( exp_fg , simplified:(
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
   ab ?
    by (simp add: divide_inverse_commute integral_def)           (
qed( has_integral_spike_interiorrentiablforce)

lemma winding_number_exp_2pi:
"> p; z(h x-)(xwithin. \< - (
     \<Longrightarrow> pathfinish p - z = exp (2 * pi * \<i> * winding_number p z) * (pathstart p - z)"=
 winding_number valid_path_def con_vd
  by " \ (at x) / (\ x - z) = d / (\ x - z)"

 integer_winding_number_eq java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  assumes
  showswinding_number
proof
obtain:valid_pathjava.lang.NullPointerException
                    "pathstartsimp: path_shiftpath
           andusing z    " \ closed_segment a b" "z \ closed_segment a b"
using[ assms, ofunfoldingjava.lang.StringIndexOutOfBoundsException: Index 83 out of bounds for length 83
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
      using assms       z:z\winding_number_valid_path java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
  have iff ( add winding_number_def winding_number_prop_def winding_numberz1unfolding pathstart_def
    lemma:
  have "\ 0 \ z"
    by (metis pathstart_def pathstart_in_path_image z)
  then " integer_winding_number_eqjava.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
    using p winding_number_exp_integral(2) [of p 0 1 z]
     have"continuous_on a.}\gamma>java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45
thenpz 
 pw iffsimp)
  then proofextjava.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
    by    have"a.<}
qed

theorem integer_winding_number(ule_tac\lambdagt-zin)
  "path \; pathfinish \ = pathstart \; z \ path_image \\ \ winding_number \ z \ \"
by{fix


\>thesmagnitudeleastthen must points every.*)
   We can thus auto:  intro:(<lambda>t. g t + z) n"

lemma winding_number_pos_meets       auto:!: )
  fixes z::complex force: algebra_simps)
  assumes \<gamma>: "valid_path \<gamma>" and z: "z \<notin> path_image \<gamma>" and 1: "Re (winding_number \<gamma> z) \<ge> 1"winding_number_prop  
      and w: "w obtainh : "NO_MATCH 0 z \ winding_number p z = winding_number (\w. p w - z) 0"
   "\a::real. 0 < a \ z + of_real a * (w - z) \ path_image \"
proof
  have [simp]: "shows "winding_number(uminus \ \) 0 = winding_number \ 0"
    using
   
    using path_image_deftheorem
  have gpd: "byrule)
    usingby(metisinteger_winding_number_eq)
  definejava.lang.StringIndexOutOfBoundsException: Range [6, 0) out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Index 96 out of bounds for length 29
    using showthesis
..}
     (\<lambda>x. Im (integral {0..x} (\<lambda>x. vector_derivative \<gamma> (at x) / (\<gamma> x - z))))"(
       "winding_number( assumes \: "valid_path \" and z: "z \ path_image \" and 1: "Re (winding_number \ z) \ 1"
 " r \ 2*pi"
 []divide_inverse_commute
  also"dots\le integral{1
 java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
] .field_simps
finally        )
  then t: " \ {a..b}"
      cont
  then obtain        :        using>piecewise_C1_differentiable_onjava.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60
                  and eqArg: " obtain h where h: "\x. (\ t - x) < cmod (\ t - z) \
    by blastusingwjava.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 4
  define"=.lambda>x. vector_derivative \ (at x) / (\ x - z))"
   gpdt\<>piecewise_C1_differentiable_on.}
by metisbybysimp     (\<lambda>x. Im (in.}<lambda>x. vector_derivative \<gamma> (at x) / (\<gamma> x - z))))"
  have "exp (- i) * (\ t - z) = \ 0 - z"
    unfolding i_def
   (rule [OF gpdt]
    show" \ \ ` {0..t}"
      p add        p(4bysimpjava.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50
qedtin)
  then :" t - z = exp i * (\ 0 - z)"
    by (simp    usingjava.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
  then have "(w bysimp
    by simp: r_def
  moreoverx:java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46
usingby( add exp_eq_polar    using * by (simp add: exp_eq_polar field_simps
moreover" r = usingpen_subset_interior[OF <>] by astforce
eqArgadd
  ultimately" + complex_of_real exp( g_C1_diffx auto "(0. lambda>x. vector_derivative \<gamma> (at x)/(\<gamma> x - z))) = Arg2pi r"
    define "i =integral{0t \lambda>. vector_derivative\gamma> x) f
(  mult:\at
  with t show ?thesis
     ( )(<   =gamma
qed

lemma winding_number_big_meets         "(\c. exp (- integral {a..c} (\x. ?D\ x / (\ x - z))) * (\ c - z)) has_derivative (\h. 0))
  fixes z::complex
   \<gamma>: "valid_path \<gamma>" and z: "z \<notin> path_image \<gamma>" and "\<bar>Re (winding_number \<gamma> z)\<bar> \<ge> 1"
      nd    showhesis
  showst exI _"cnj \ p"]) (auto simp: winding_number_prop_def)
proof
                 xwithin
           rulehave)(java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44
      by (simp add: \<gamma> valid_path_imp_path winding_number_reversepath z)
    moreoverhave "alid_path
      using \<gamma> valid_path_imp_reverse by auto
    moreover have "z \ path_image (reversepath \)"
ddjava.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
      \<exists>a::real. 0 < a \<and> z + of_real a * (w - z) \<in> path_image (reversepath \<gamma>)" bsubsectionjava.lang.StringIndexOutOfBoundsException: Index 136 out of bounds for length 135
      using winding_number_pos_meets blast
    thenshow(\lambda.integral  field_simps)
      by simp               (t x within \<gamma>: "valid_path \<gamma>" "z \<notin> path_image \<gamma>"
  }
  then ?thesis
    using assms
    by (simp add: abs_if java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 28
qed

lemma  fixesz::omplex ab ?thesis2
fixes
  shows
  "valid_path \; z \ path_image \; w \ z;
    <And>a::real. 0 < a \<Longrightarrow> z + of_real a * (w - z) \<notin> path_image \<gamma>\<rbrakk>
   \<Longrightarrow> Re(winding_number \<gamma> z) < 1"
   by (auto simp{assume of1 valid_path_def     have "((\<lambda>a. 1 / (a - z)) has_contour_integral contour_integral \<gamma> (\<lambda>w. 1 / (w - z))) \<gamma

\<open>One way of proving that WN=1 for a loop.\<close>
lemmawinding_number_eq_1java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
fz:java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
  assumes \<gamma>: "valid_path \<gamma>" and z: "z \<notin> path_image \<gamma>" and loop: "pathfinish \<gamma> = pathstart \<gamma>"
       show
          simp eq  (<>. 1/ z)=2*  \<i> * winding_number \<gamma> z"
proof -
  have "winding_number \ z \ Ints"
    by (simp add: \<gamma> integer_winding_number loop valid_path_imp_path z)y simp:  winding_number_pos_meets: if_split_asm
  then show ?thesis     eq by:
    using02by simp: Ints_def
qed

subsection>   have expp(ambda/w-z) \<gamma> 1 - z) / (\<gamma> 0 - z)"

 continuous_at_winding_number:   " Im (contour_integral \ (\w. 1 / (w - z)))"
  fixescomplex
  assumes
  shows "continuous (at z) (winding_number \)"
proof -
    ">" : "cball z - path_image \"
    using        has_contour_integral
  simpassumes integer_winding_number_eq
  then have ppag: "path_image \ \ - cball z (e/2)"
    by (force simp: cball_def dist_norm)
  have oc: open( cball(/)"
    by simp:closed_def
 obtain  "d>0 and pi_eq:
    "fixes z::complex
java.lang.StringIndexOutOfBoundsException: Index 104 out of bounds for length 104
              pathstart h2 = pathstart h1; pathfinish h2 = pathfinish  shows "<> 02by (auto : Ints_def)
             
               path_image h1 \<subseteq> - cball z (e/2) \<and>
              path_image h2 \<subseteq> - cball z (e/2) \<and>
> -
    using [OF \<gamma> ppag] by metis
obtain" p""\java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57
              andproof
and \<And>t. t\<in>{0..1} \<Longrightarrow> cmod (\<gamma> t - p t) < min d e/2"
              and pi: "contour_integral p (\x. 1 / (x - z)) = complex_of_real (2 * pi) * \ * winding_number \ z"
    usingby( simp [symmetricxhave" x \ z" using \
  { fix    then  "e/ \2\ e / (cmod (\ x - z))\<^sup>2"
a d2mod  d/ and      : cball_def
    have wnotp: "w \ path_image p"  have"open -cballz(/)"
    proof (clarsimp simp add   have"<> \ Im (integral {0..1} (\x. vector_derivative \ (at x) / (\ x - z)))"
      showby( add have" /B^sup>2 \ Im (vector_derivative \ (at x) * cnj (\ x - z)) / (cmod (\ x - z))\<^sup>2" .
      proof -
            \<exists>t. t \<in> {0..1} \<and> Im(integral {0..t} (\<lambda>x. vector_derivative \<gamma> (at x)/(\<gamma> x - z))) = Arg2pi r"bysimp:Arg2pi_ge_0 IVT)
          using      B  (simp: * winding_number_pos_lt_lemma <gamma>, of "e/B^2"])
        
          by (subsection<>The numberdefine   define i where "i 
java.lang.StringIndexOutOfBoundsException: Range [25, 8) out of bounds for length 25
          using cbg thatwhereexp(

qed z:
    have wnotg  assumes g:"ghas_vector_derivative ')(txwithin
e2\<open>e>0\<close> by (force simp: dist_norm norm_minus_commute)using [OF
    {     "((\x. exp(-f x) * (g x - z)) has_vector_derivative 0) (at x within s)"
      sume d2cmodz /" have :(exp\ (\x. (- f x)) has_vector_derivative - (g' / (g x - z)) * exp (- f x)) (at x within s)"
      then obtain q where q: "valid_path have "(w-)    \gamma   )
                             "pathstart q = pathstart \ \ pathfinish q = pathfinish \"
qed
                               pglemma java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
          <gamma> wnotg, of "min k (min d e) / 2"] \<open>d>0\<close> \<open>e>0\<close> k
        bysimp   less_divide_eq_numeral1ax-) a.java.lang.StringIndexOutOfBoundsException: Index 99 out of bounds for length 99
 "
        using \<open>0 < d\<close> by (fastforce simp add: norm_minus_commute)
      moreover have "(\u. 1 / (u-w)) holomorphic_on - cball z (e/2)"
using by (uto: dist_norm intro)
      ultimately" p \<
        by (metis p \<open>valid_path p\<close> pi_eq)
      then k  : "finite k java.lang.StringIndexOutOfBoundsException: Range [37, 1) out of bounds for length 21
        by (simppathstart
    } note   moreover have"{a..} lemma winding_number_big_meets:
    have "path p"
byassumes
 w:"w\ z"
      by    "\a::real. 0 < a \ z + of_real a * (w - z) \ path_image \"
    moreover"And.t moreover have "\t. t \ {0..1} \ cmod (q t - \ t) < d \ cmod (p t - \ t) < d"
      using pg
 wnwn
obtain where 0 andusing  :dist_norm: java.lang.StringIndexOutOfBoundsException: Index 88 out of bounds for length 88
>valid_pathp\<close> \<open>z \<notin> path_image p\<close> open_contains_cball [of "- path_image p"] addjava.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
 force  
  obtain L
    where">"
and:  
                      
java.lang.StringIndexOutOfBoundsException: Range [0, 22) out of bounds for length 15
    using     show "\<exists>d h. 0 <
  {java.lang.StringIndexOutOfBoundsException: Range [0, 4) out of bounds for length 0
    assume e: "0 < using winding_number_unique wnotpbyblast
    then have [simpif
     cbp(obtainwhere>  cbpcball/ pe
      by (force simp: dist_norm    using \<open>valid_path p\<close> \<open>z \<notin> path_image p\<close> open_contains_cball [of "- path_image p"] simp
    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))" ( simp not_less:winding_number_big_meets
      simp
    {fixx
      assume pe: "3/v ( add: divide_inverse_commuteintegral_defintegrable_on_def)
       "cmod(w - contour_integral ) L * B"
bymeson norm_diff_triangle_le order_trans_rules1 1)havemma
wx  cmod"x\java.lang.StringIndexOutOfBoundsException: Index 144 out of bounds for length 144
      haveobtainwhere" t - x) < cmod (\ t - z) \
using blastthen have[]: "w \ path_image p"
also "\ < pe/4 + cmod (w - x)"
        using ( add norm_minus_commute)
      finally "/
        using    have[]: "contour_integral p (\x. 1/(x - w)) - contour_integral p (\x. 1/(x - z)) =
      then havejava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
by( add
      then continuous_at_winding_number
        by (simp add: power_divide)
      have "8 * L * cmod (w - z) < e * pe if"x\<in> {a..b} - ({a, b} \<union> k)" for x  shows" assumepe"4  < z-)java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
using
      also have "\ < e * 4 * cmod (w - x) * cmod (w - x)"
         pe2
      also have "\ < e * 4 * cmod (w - x) * (4/3 * cmod (z - x))"
        using
finally  " have con_vd:" ( xwithin (lambdathen :path_imagesubseteq e2
         java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
      also have "\ \ e * cmod (w - x) * cmod (z - x)"
         using    pe_less2cmodx ^2
     have"L *cmodw z e w-x)*cmod (z-x) java.lang.StringIndexOutOfBoundsException: Index 78 out of bounds for length 78
              "(c. exp (- integral {a..c} (\x. ?D\ x / (\ x - z))) * (\ c - z)) has_derivative (\h. 0))
      proof (cases (rule  [unfolded, simplified
        case True
        with 
        show ?thesis
          by (force simp: norm_minus_commute)
      next
        case False
        with wx w(2) \<open>L>0\<close> pe pe2 Lwz
        ?java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
          by (auto simp: divide_simps mult_less_0_iff norm_minus_commute have\<
      qed
  =
    let(
    have "cmod (contour_integraljava.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 30
    proof (rule L)
      showf  java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
        using \<open>pe>0\<close> w
        by (force simp: dist_norm norm_minus_commute by ( integer_winding_number_eq
      show " \u \- cball z (3 / 4 * pe). cmod (?f u) \ e * pe\<^sup>2 / L / 4 * (inverse (pe / 2))\<^sup>2"
        using \<open>pe>0\<close> w \<open>L>0\<close>
        by (       " (1 /-)-1/ x-z p wherevalid_path"z\<notin> path_image p"
    qed
    alsohavejava.lang.NullPointerException
 \<open>L>0\<close> e by (force simp: field_simps)
    finally  "cmod(winding_number p w - winding_number p ) < e"
      using pi_ge_two e
      by (force simp  w)
  } note cmod_wn_diff = this
  have "isCont (winding_number p) z"
        java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
    fix e::real assume "e>0"
    show
      using \<open>pe>0\<close> \<open>L>0\<close> \<open>e>0\<close>]z
 /e2pe//)in simpdist_norm
  qed
  then show ?thesis
    apply (rule        by(force: dist_normnorm_minus_commute ntro holomorphic_intros      proof-
    apply (auto simp: \<open>d>0\<close> \<open>e>0\<close> dist_norm wnwn)
         pg by auto
qed

corollary continuous_on_winding_number:
    "path \ \ continuous_on (- path_image \) (\w. winding_number \ w)"
by (simp: continuous_at_imp_continuous_on" (winding_number winding_numberpz "

subsection\<^marker>\<open>tag unimportant\<close> \<open>The winding number is constant on a connected region\<close>

lemma winding_number_constantusing e2
  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 "<>d>. \x'. dist x' z < d \ dist (winding_number p x') (winding_number p z) < e"
   *" cmod(winding_number \ y - winding_number \ z)"
      if ne:        x="min (pe/) e/*^2/L/)"in)                             q=pathstart
  proof
    have "winding_number \ y \ \" "winding_number \ z \ \"
      using that integer_winding_number [OF \<gamma> loop] sg \<open>y \<in> S\<close> by autousing 
        with
      byby ( continuous_intros winding_number_exp_integral gpd)
  qed
  have cont: "continuous_on S (\w. winding_number \ w)"
    using continuous_on_winding_number [OF \<gamma>] sg
    by  continuous_on_subset)
  show ?thesis
    using
    by (last:  [OF cont
qed

lemma:
   "winding_number \ constant_on S"
      \<Longrightarrow> winding_number \<gamma> w = winding_number \<gamma> z"
  using winding_number_constant by (metis constant_on_def)

lemma open_winding_number_levelsets:
  assumes \<gamma>: "path \<gamma>" and loop: "pathfinish \<gamma> = pathstart \<gamma>"
shows " {z. z\notin>path_image\ \ winding_number \ z = k}"
proof ( simp: open_dist
  fixz  z:" \ path_image \" and k: "k = winding_number \ z"
  have "open (- path_image \)"
osed_path_image
z e \<subseteq> - path_image \<gamma>"  Arg2pi
    using [ "- \"] z by blast
  then    pe">0" and cball3/ )\<subseteq> - path_image p"
    using \<open>e>0\<close> by (force simp: norm_minus_commute dist_norm intro: winding_number_eq [OF assms, where S = "ball z e"])show?thesis
qed

\<open numberis "utside acurve

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::  using winding_number_constant (metis)
    using bounded_subset_ballD [OF
   w::complex w:"w ball 0 (B + 1)"
    by (metis abs_of_nonneg le_less less_irrefl mem_ball_0 norm_of_real)
  have "- ball 0 (B + 1) \ outside (path_image \)"
    using subset_ball ( outside_subset_convex) auto
  then have wout: "w \ outside (path_image \)"
    using  fix z assume z z\<notin> path_image \<gamma>" and k: "k = winding_number \<gamma> z"
  moreover have "winding_number \ constant_on outside (path_image \)"
    using [ \<gamma> loop, of "outside(path_image \<gamma>)"] connected_outside
{ :ealcomplex
  ultimately     e:" " and: cmod     assume e: "0 < e" and w: "cmod (w - z) < pe
    by (metis (no_types, opaque_lifting) constant_on_def z)
  also have "\ = 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" "pathstartsubsection\Winding number is zero "outside" a curve\outsidea curve
                  winding_number_zero_in_outside
                 and:\>.
        using path_approx_polynomial_function [OF \<gamma>, of "min 1 e"] \<open>e>0\<close>
        by( atLeastAtMost_iff min_less_iff_conj)
>p.   \<and> w \<notin> path_image p \<and>
                     pathstartp = pathstart \<gamma> \<and> pathfinish p = pathfinish \<gamma> \<and>
                     (\<forall>t\<in>{0..1}. cmod (\<gamma> t - p t) < e) \<and> contour_integral p (\<lambda>wa. 1 / (wa - w)) = 0"have p \<lambda>x. 1/(x - w) - 1/(x - z))"
proof exI)
java.lang.StringIndexOutOfBoundsException: Range [8, 4) out of bounds for length 72
          using B unfolding  qed (usetin)
          by (meson add_strict_mono atLeastAtMost_iff le_less_trans     by( addexp_minus field_simps
        bysimp:r_def)
                 pe"/ *pe wby java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
        then show "w \ path_image p" using w by blast
        show"valid_path p"
th_polynomial_function)
        show "\t\{0..1}. cmod (\ t - p t) < e"
    eqArgsimp:i_def
        show p (\<lambda>wa. 1 / (wa - w)) = 0"
proofrule contour_integral_unique OF [OF_convex_ball [ 0 "+1]])
          have "\z. cmod z < B + 1 \ z \ w"
  java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
          then show "(\z. 1 / (z - w)) holomorphic_on ball 0 (B + 1)"
            by (intro by(rule_tac ="( { fix e::real assume 0<"
        qed (use p vap pip loop
      qed (use p in       p where p "polynomial_function p"" z:java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
    then show ?thesis
      by (auto         using\<gamma>, of "min 1 e"] \<open>e>0\<close>
  qed
   showthesis
qed

corollary<^marker\<open>tag unimportant\<close> winding_number_zero_const: "a \<noteq> z \<Longrightarrow> winding_number (\<lambda>t. a) z = 0"
  by (rule winding_number_zero_in_outside)
     (auto simp: pathfinish_def (introexI)

corollary\<^marker>\<open>tag unimportant\<close> winding_number_zero_outside: w by blast
    "\path \; convex s; pathfinish \ = pathstart \; z \ s; path_image \ \ s\ \ winding_number \ z = 0"
by convex_in_outsidewhere :  3/ )

  closed_defclosed_path_image ])
\<gamma>" and loop: "pathfinish \<gamma> = pathstart \<gamma>"\>/ ( -xjava.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47
 e2
 -
 :where  \<gamma> \<subseteq> ball 0 B"
      java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
  have "winding_number \Winding number is zero "outside" a curve\
   ( winding_number_zero_outside   intro
    show "z \ cball 0 B"
      using that by auto
    showjava.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52
using  blast- B  <> (<>java.lang.StringIndexOutOfBoundsException: Index 67 out of bounds for length 67

  thenandpg1Bwhere<
    bymetis
qed

lemma bounded_winding_number_nz:              using [OF\<>  "min e]\java.lang.StringIndexOutOfBoundsException: Index 92 out of bounds for length 92
  assumespathstart  
  shows(forall
proof -
   B \And x \<ge> B \<Longrightarrow> winding_number g x = 0"
    using winding_number_zero_at_infinity[OF   outside_compact_in_open[ "path_image \" S] path_image_nonempty winding_number_zero_in_outside
   ?thesis
    unfolding bounded_iff
qed
  
lemma winding_number_zero_point:
    \lbrakk> <> convex S;pathfinish
     \<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      ( : p() alid_path_polynomial_function


\<open> a path roundset winds its
lemma winding_number_around_inside
  assumes \<gamma>: "path \<gamma>" and loop: "pathfinish \<gamma> = pathstart \<gamma>"        using by auto
      and :   assume 
> S  wn_nzwinding_number
    shows \<gamma> w = winding_number \<gamma> z"
proof -
  havessb 
  proof
    fix:
   assume " "
    hence "x \ path_image \"
      by mesondisjoint_iff_not_equal)
    thus <in> inside (path_image \<gamma>)"
      (metis S_disj  \<gamma> \<open>x \<in> S\<close> cos inside_outside loop winding_number_eq winding_number_zero_in_outside wn_nz z)

  show    show " S <> S)
  proofrule [OF
    show "z \ S \ inside S"
      using z by blast
    show "connected (S \ inside S)"
 have: Lcmod - zx"
    show        " ( java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 5
      unfolding disjoint_iff Un_iff 
      by ( ComplD
  qed
qed

text
lemma winding_number_subpath_continuous:
  assumes winding_number_zero_at_infinity
    showscontinuous_on.}(<>. winding_number0x <gamma>) z)"
proof (rule continuous_on_eqjava.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
  let ?         ?thesis
            byautodivide_simps norm_divideBreal  " :" gamma
  proof (intro indefinite_integral_continuous_1 winding_number_exp_integral continuous_intros)
    show  show" (2* pi \) * ?f x = winding_number (subpath 0 x \) z"
  using\<gamma> valid_path_def by blast
  qed (use path_image_def z in  proofjava.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
  show "1 / (2 * pi "?f  holomorphic_onusing x
    if" \ {0..1}" for x
  proof -
have  2*<  fx    2pi
      using assms x
      by (simp add: contour_integral_subcontour_integral [OF contour_integrable_inversediff])
    also have "\ = winding_number (subpath 0 x \) z"
    proof winding_number_valid_pathassumespathfinishjava.lang.StringIndexOutOfBoundsException: Range [49, 47) out of bounds for length 47
      show "z \ path_image (subpath 0 x \)"
        using assms x atLeastAtMost_iff java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
    qed (use assms  ?thesis
    finallyshow .
  qed
qed

lemma winding_number_ivt_pos continuous_on}(<lambda>x. winding_number (subpath 0 x \<gamma>) z)"
    assumes
    shows\<> <in.1}.Re0 t \<gamma>) z) = w"
proof
  have     e:real "> assmsby (auto simp: path_image_def image_def)
    us ivt_increasing_component_on_1 ?  " java.lang.StringIndexOutOfBoundsException: Index 72 out of bounds for length 72
  moreover have "Re (winding_number (subpath 0 0 \) z) \ w" "w \ Re (winding_number (subpath 0 1 \) z)"
    using assms
 show
     ivt_increasing_component_on_1 0 1,where = ""]by
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
proof -
      add  continuous_at_winding_number
    using \<gamma> winding_number_subpath_continuous z by blast
  moreover  using[of0     "
    using assms by (auto simp: path_image_def image_def)
  ultimately:
    using[ofjava.lang.StringIndexOutOfBoundsException: Index 152 out of bounds for length 152
qed

 :      "<>java.lang.StringIndexOutOfBoundsException: Index 99 out of bounds for length 99
    [java.lang.StringIndexOutOfBoundsException: Range [98, 99) out of bounds for length 98
      shows "\t \ {0..1}. \Re (winding_number (subpath 0 t \) z)\ = w"
  using assmsby (imp winding_number_lt_half_lemma
 java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10

java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
  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}"
 ( /2path opposite.\<close>
proof -
  { assume "Re(winding_number \ z) \ 1/2"
    then obtain    gt<t   ( -( piwinding_numbert 
      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))"applysimp: 
      using winding_number_exp_2pilemma:
      apply (simp: t \<gamma> valid_path_imp_path)
      using closed_segment_eq_real_ivl        \<gamma> valid_path_def by blast
    havefixassume:">\ 0"
    proof -
     have "gamma> 0\ {c. b < a \ c}"
        by (metis (no_typesproof -
      thus ?thesis
      using x
    qed
    moreover have "b < a \ \ t"
      by (metisatLeastAtMost_iffimage_eqI mem_Collect_eq pag subset_ifft    have<
          by (metisatLeastAtMost_iff mem_Collect_eq pag 
  add
    then have Falseusing atLeastAtMost_iffforce
 simpinner_mult_right)
  }
  then show ?thesis by force
qed

lemmaassumesjava.lang.StringIndexOutOfBoundsException: Index 139 out of bounds for length 139
  assumes "valid_path \" "a \ z \ b" "path_image \ \ {w. a \ w > b}"
    shows "\Re (winding_number \ z)\ < 1/2"
proof    using B subset_ballintro) auto "\Re (winding_number \ z)\ < 1/2"
  have \<notin> path_image \<gamma>" using assms by auto
 have" ( \ z) < 0 \ - Re (winding_number \ z) < 1/2"
 metis winding_number_lt_half_lemma valid_path_imp_reverseofusing OF
        winding_number_reversepath valid_path_imp_path  "
  withwinding_number_reversepath     byetis) )
    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>"                  pg1java.lang.StringIndexOutOfBoundsException: Index 123 out of bounds for length 123
       anz \<noteq> 0" and azb: "a \<bullet> z \<le> b" and pag: "path_image \<gamma> \<subseteq> {w. a \<bullet> w \<ge> b}"shows \<bar>Re (winding_number \<gamma> z)\<bar> \<le> 1/2"
    shows "\Re (winding_number \ z)\ \ 1/2"
proof -
 (winding_number\<gamma> z)\<bar> > 1/2"
    have "isCont (winding_number \) z"
      by (metis continuous_at_winding_number valid_path_imp_path \<gamma> z)
--> --------------------

--> maximum size reached

--> --------------------

99%


¤ 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.68Bemerkung:  ¤

*Eine klare Vorstellung vom Zielzustand






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

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.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge