Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/PVS/digraphs/   (Beweissystem der NASA Version 6.0.9©)  Datei vom 28.9.2014 mit Größe 9 kB image not shown  

Quelle  Winding_Numbers.thy   Sprache: Isabelle

 
 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
  then obtain 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))
              then have "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: )
      then have "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
      then show "\p. winding_number_prop \ z e p nn"
         -
    qed " \ \ UNIV - {z}" by java.lang.StringIndexOutOfBoundsException: Index 66 out of bounds for length 66
  then show ?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
  also have "\ = 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>"
  also have "\ = 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
    
qed

proposition
    usingauto
  shows "winding_number \ z = 1/(2*pi*\) * contour_integral \ (\w. 1/(w - z))"
  by (rule)
  (use in \<open>auto simp: valid_path_imp_path winding_number_prop_def\<close>) \<gamma>1: "path \<gamma>1" "z \<notin> path_image \<gamma>1" ">2"

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
  by     obtain where 

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         have<in> interior ({a..b} - k)"
applyauto)
      done
    then show
      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
    then have "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)
  then show  java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
    using
 path_image
qed

lemma winding_number_cong
   " (is "?thesis1"
  bysimp:winding_number_defwinding_number_prop_defusing[  1unfoldingpath_image_def winding_number_prop_def

 winding_number_constI
  assumes "cjava.lang.StringIndexOutOfBoundsException: Range [0, 13) out of bounds for length 7
  shows "winding_number g z = 0"
proof havelemmajava.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
  ultimately show ?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
  then have "((\z. 1/z) has_contour_integral contour_integral \ ((/) 1)) \"
     rule
  then have "((\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 wherebyforce:! )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)
    moreover have "pathfinish (cnj \ p) = pathfinish (cnj \ \)"
      using4 (add)
    moreover have "cmod ((cnj \ \) t - (cnj \ p) t) < e"
      if" <> 0.1"(  in
    proof have* 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
    moreover have "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
      also have "\ = 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
      also have "\ = ?R"
using (winding_number_exp_integralOFjava.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52
      finally showassumes        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


<marker<

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

lemma winding_number_pos_le:
  assumes
      and    by 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
    using lemma winding_number_big_meets
  let ?vd = "\x. 1 / (\ x - z) * vector_derivative \ (at x)"
 ? = \lambda   (fixes
  havejava.lang.NullPointerException
  proof  showsjava.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

lemma   show
  assumes \<gamma>: "valid_path \<gamma>" "z \<notin> path_image \<gamma>"using byjava.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
      java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
          (auto)
    shows   have\<gamma> 0 \<noteq> z"
proof -
  let ?vd
  let    using 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
    then have hijava.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
      using by 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 :"
    then have   havecont{1
java.lang.StringIndexOutOfBoundsException: Range [63, 6) out of bounds for length 63
      "
       path_image_def
have B< 
usingeby:"(-) "andsimp
    also have "byby add:Arg2piless_eq_real_def)
usingge [OF] by(auto     1
    finally B
    then have    
      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
    ultimately have    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)"
          using  by auto
        then " w \L>0\ by (simp add: field_simps)
           open_subset_interiorOF <circ>] by fastforce
                using by 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)
          then show "((\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)
  then have 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)"
    using        case True
  have "\ 0 \ z"
    by(metis pathstart_in_path_image z)
  then have "exp (contour_integral p (\w. 1 / (w - z))) = (\ 1 - z) / (\ 0 - z)"
    usingby( convex_in_outsideoutside_mono winding_number_zero_in_outside
    by (simp
  then have "winding_number p z \ \ \ pathfinish p = pathstart p"
    using p wneq iff byth
  then show ?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
  then have "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"
  then obtain 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
  then have "(w - z) = r * (\ 0 - z)"
    by(add
  moreover have "z + exp (Re i) * (exp (\ * Im i) * (\ 0 - z)) = \ t"
    using * by (simp add: exp_eq_polar field_simps)
  moreover have "Arg2pi r = Im i"
u eqArg ( add )
  ultimately have "z + complex_of_real (exp (Re i)) * (w - z) / complex_of_real (cmod r) "<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:
        using byjava.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
    moreover have "valid_path (reversepath \)"
      \<gamma> valid_path_imp_reverse by auto
    moreover have "z \ path_image (reversepath \)"
      by (simp :
    ultimately have "\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)
  then show ?      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)
        then show ?thesis
          using cbg      by auto:   assumes \<gamma>: "path 
      qedqed
    qed
    have wnotg: "w \ path_image \"
       cbg\<
    { fix k::roof
      assume k: "k>0"
      then obtain 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  )
      moreover have "\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)
      moreover have 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
    ultimately have "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"
    then have [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

      finally lemma:
         pe
      then    fix: 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
      also have "\ < 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
      also have "\ \ e * cmod (w - x) * cmod (z - x)"
         using
      finally LwzL* w-z)   w- cmod .by ComplD
haveL* cmodrule
      proof (cases "x=z \ x=w")
        case corollary
         \<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 "
      using  obtainwhere
 (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
    show   show?
ingofwhere""byforce
      by (rule_tac x="min (pe/4) (e/2*pe^2/L/4)" intext
  qed
  then show ?thesis
    apply  ultimately ?thesis
    apply ( simpjava.lang.StringIndexOutOfBoundsException: Index 75 out of bounds for length 75
    done
qed

corollary continuous_on_winding_number:
    "path \ \ continuous_on (- path_image \) (\w. winding_number \ w)"proof
(addcontinuous_at_winding_number

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  and inhalfspaces
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 by       using [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)
  then obtain e where "e>0" "ball z e \ - path_image \"
using [f - \<gamma>"] z by blast
  then show "\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
       use   in
         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>)"
using   by ( outside_subset_convexshows
  then have wouthave" {0..1} (\x. winding_number (subpath 0 x \) z)"   "z\ path_image \" using assms by auto
    using w by blast
  moreover have "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) 
        then have 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  
          then show "( 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)
    }
    then show ?thesis
      by java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
  qed
  finally show ?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
  then show ?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])
    also have "\ = 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>)
    finally show ?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
  moreover have "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)
  ultimately show ?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
  moreover have "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)
  ultimately show ?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"
    then obtain 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
    moreover have "b < a \ \ t"
      by (metis atLeastAtMost_iff image_eqI mem_Collect_eq pag path_image_def subset_iff t)
    ultimately have "0 < a \ (\ 0 - z)" "0 < a \ (\ t - z)" using az
      by (simp add: inner_diff_right)+
    then have False
      by (simp add: gt inner_mult_right mult_less_0_iff)
  }
  then show ?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

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

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

*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.