These are the human proofs of Lehmer-Schur method, at full length.
The Lehmer-Schur method keeps a disc that contains a zero and shrinks it by at least 33/64 per pass full
This proof shows: correctness, termination, global-convergence.
Write D(c,r) for the open disc, ρ=1613, β=167, ωj for the eight directions of the implementation, and F={1,3233,3231,6465,6463} for the radius factors tried by COUNT. All factors lie in [3231,3233]. The Schur-Cohn test is exact: when it returns a number, that number is the count of zeros in the open disc (see the Schur-Cohn correctness proof).
Lemma 1: the starting disc
Let M=maxi<n∣ai/an∣. Every zero z of p satisfies ∣z∣<1+M≤B, so D(0,B) contains all n zeros.
Proof. If ∣z∣≥1+M, then ∣z∣>1 and
anznp(z)≥1−i<n∑M∣z∣i−n>1−∣z∣−1M≥0,
so p(z)=0. The implementation uses ∣Rex∣+∣Imx∣≥∣x∣ for x=ai/an, so its B is at least 1+M. □
Lemma 2: the covering
Let z satisfy 6431r≤∣z−c∣<r. Then for some j, and for every f∈[3231,3233], ∣z−(c+ρrωj)∣<βfr.
Proof. Scale so that c=0 and r=1, and write z=seiθ with 6431≤s<1. The directions have arguments exactly kπ/4, because the diagonal ones have equal parts ±256181; their moduli are 1 or 2561812∈[0.99989,1], so the centres ρωj have modulus ρj∈[0.8124,0.8125]. Choose j with ∣θ−jπ/4∣≤π/8. Then
using cos(π/8)>0.9238. The function g is convex, so on [6431,1] it is at most max(g(6431),g(1))<max(0.16774,0.1592)=0.16774. On the other hand (βf)2≥(167⋅3231)2>0.1796. Hence ∣z−ρjeijπ/4∣<βf. □
Lemma 3: one pass keeps the invariant
Suppose that at the start of a pass D(c,r) contains at least one zero and count is the number of zeros in it. If the pass does not return, the same holds at its end, with the new radius at most 6433 times the old one.
Proof. Line L4 tests D(c,fr/2) for f∈F in turn. If all are singular the pass returns. Otherwise let r′=fr/2 be the radius of the first regular test and m its count.
If m≥1, the new disc D(c,r′) contains m≥1 zeros, exactly, and r′≤6433r.
If m=0, no zero lies in D(c,r′), and r′≥6431r. By the invariant some zero z lies in D(c,r), so 6431r≤r′≤∣z−c∣<r. By Lemma 2 there is a j such that z∈D(cj,βfr) for every f∈F. Lines L5 and L6 test the discs in order. If one of them, possibly before reaching j, returns a regular count m≥1, the new disc contains exactly m zeros and has radius βfr≤167⋅3233r=512231r<6433r. If none does, then in particular the disc j gave no regular count with m≥1; since it contains z, a regular test there would have returned m≥1, so all five of its tests were singular, and the pass returns "failure" at L7. □
Theorem
(a) If the method returns "converged", then D(c,r) with r≤δ contains exactly count≥1 zeros of p; in particular some zero z has ∣z−c∣<r≤δ.
(b) The method returns after at most kmax passes, and it returns "converged" after at most ⌈log(B/δ)/log(64/33)⌉ passes unless some test is singular for all five radii.
(c) "Failure" and "singular" are returned only when some test is singular for all five radii.
Proof. By Lemma 1 the invariant holds at the first pass, with count=n. By Lemma 3 and induction it holds at the start of every pass, which gives (a) at line L3. After k passes that do not return, r≤B(33/64)k, which is at most δ once k≥log(B/δ)/log(64/33); then line L3 returns, which gives (b) together with the bound kmax on the loop. Lemma 3 shows (c). □
Remark on the singular case
A test on D(c′,r′′) is singular when p(c′+r′′w) and its reciprocal have a common zero, for example a zero of p on the circle, or when a constant term vanishes by accident. Five radii are tried; for all five to fail the polynomial must meet one of these conditions five times, which never happened in the tests. The proof does not rule it out, and the method then reports it instead of returning a wrong disc.