Proofs: Kronecker's factorization method
These are the human proofs of Kronecker's factorization method, at full length.
Kronecker's method returns the factorization into irreducibles full
This proof shows: correctness, termination.
All polynomials are in . The input is primitive of degree with . Write for the current value of the variable .
Fact 1 (interpolation). For distinct integers and values , there is exactly one polynomial of degree at most with for all .
Proof. Existence is the Lagrange formula. If and both qualify, has degree at most and roots, so it is zero.
Fact 2. If divides and is primitive, then is primitive.
Proof. If , the content of divides every coefficient of , so it divides .
Lemma (completeness of one round). Let and let be primitive. If has a factor of degree in , the loop of line L5 finds a factor of of degree . Any it returns divides and has degree .
Proof. The second sentence is the test at line L7. For the first, let with . Since and with integer factors, is a nonzero divisor of . In particular , and replacing by if necessary gives . So . When the loop reaches this tuple, or an earlier one that passes the test, line L6 computes the unique interpolant of Fact 1, which for this tuple is itself, and passes line L7. The product is finite, so the loop reaches every tuple unless it stops earlier with a factor.
Invariant. At each test of line L2:
(K1) , and is primitive with . (K2) Each element of factors is irreducible of positive degree with a positive leading coefficient. (K3) has no factor of degree with .
Initialization. factors is empty, and . (K1) and (K2) are clear, and (K3) is empty.
Maintenance, a factor is found. Line L8 appends , normalized so that , and replaces by . Then , the leading coefficient of is positive, and is primitive by Fact 2 since . So (K1) holds. The factor has degree . If with , then would be a factor of of degree less than , contradicting (K3). So is irreducible, and (K2) holds. Every factor of is a factor of , so (K3) holds for with the same .
Maintenance, no factor is found. By the lemma has no factor of degree . Together with (K3) it has no factor of degree for , which is (K3) after line L9.
Termination. Each pass either increases by one or lowers by , and both and are bounded. So the number of passes is at most . Each pass runs over a finite product of finite divisor sets, since .
Correctness at exit. At exit . If , suppose with . Then , which contradicts (K3). So is irreducible, and line L10 appends it. It is primitive with positive leading coefficient by (K1). If , then is a positive primitive constant, so . In both cases (K1) and (K2) show that the returned list consists of irreducible polynomials of positive degree with positive leading coefficients whose product is .