Abstract
In complex analysis, the winding number measures the number of times a path (counter-clockwise) winds around a point, while the Cauchy index can approximate how the path winds. We formalise this approximation in the Isabelle theorem prover, and provide a tactic to evaluate winding numbers through Cauchy indices. By further combining this approximation with the argument principle, we are able to make use of remainder sequences to effectively count the number of complex roots of a polynomial within some domains, such as a rectangular box and a half-plane.
Highlights
The winding number, given by n(γ, z) = 1 dw, 2πi γ w − z measures how the path γ winds around the complex point z
In the middle of the proof, we show that the complex point i is not on the image of the linear path Lr (i.e., linepath (-R) (R::complex)) in Isabelle/HOL), following which we apply Lemma 11 to derive Indp(Lr, i) = −1: the evaluation process is automatic through the command auto, given the assumption R>1
We have described a novel tactic winding_eval to evaluate winding numbers via Cauchy indices: given a goal of the form n(γ1 + γ2 + · · · + γn, z0) = k, the tactic converts the target into an equality about Cauchy indices: Indp(γ1, z0) + Indp(γ2, z0) + · · · + Indp(γn, z0) = −2k
Summary
When formally evaluating the winding number in proof assistants such as Isabelle/HOL and HOL Light, unexpected difficulties arise, as pointed out by Harrison [8] and Li et al [14]. To address this problem, we formalise a theory of the Cauchy index on the complex plane, thereby approximating how the path winds. – a novel tactic to enable users to evaluate the winding number through Cauchy indices, – and novel verified procedures to count complex roots of a polynomial. We discuss related work (Sect. 8) and present conclusions (Sect. 9)
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have