A Verified Implementation of the Berlekamp-Zassenhaus Factorization Algorithm

J Autom Reason. 2020;64(4):699-735. doi: 10.1007/s10817-019-09526-y. Epub 2019 Jun 17.

Abstract

We formally verify the Berlekamp-Zassenhaus algorithm for factoring square-free integer polynomials in Isabelle/HOL. We further adapt an existing formalization of Yun's square-free factorization algorithm to integer polynomials, and thus provide an efficient and certified factorization algorithm for arbitrary univariate polynomials. The algorithm first performs factorization in the prime field GF ( p ) and then performs computations in the ring of integers modulo p k , where both p and k are determined at runtime. Since a natural modeling of these structures via dependent types is not possible in Isabelle/HOL, we formalize the whole algorithm using locales and local type definitions. Through experiments we verify that our algorithm factors polynomials of degree up to 500 within seconds.

Keywords: Factor bounds; Hensel lifting; Isabelle/HOL; Local type definitions; Polynomial factorization; Theorem proving.