The Factorization Algorithm of Berlekamp and Zassenhaus


Title: The Factorization Algorithm of Berlekamp and Zassenhaus
Authors: Jose Divasón, Sebastiaan Joosten (sebastiaan /dot/ joosten /at/ uibk /dot/ ac /dot/ at), René Thiemann (rene /dot/ thiemann /at/ uibk /dot/ ac /dot/ at) and Akihisa Yamada (akihisa /dot/ yamada /at/ uibk /dot/ ac /dot/ at)
Submission date: 2016-10-14

We formalize 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 a factorization in the prime field GF(p) and then performs computations in the integer ring 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 Isabelle’s recent addition of local type definitions.

Through experiments we verify that our algorithm factors polynomials of degree 100 within seconds.

  author  = {Jose Divasón and Sebastiaan Joosten and René Thiemann and Akihisa Yamada},
  title   = {The Factorization Algorithm of Berlekamp and Zassenhaus},
  journal = {Archive of Formal Proofs},
  month   = oct,
  year    = 2016,
  note    = {\url{},
            Formal proof development},
  ISSN    = {2150-914x},
License: BSD License
Depends on: Containers, Efficient-Mergesort, Jordan_Normal_Form, Native_Word, Polynomial_Factorization, Polynomial_Interpolation, Show, Sqrt_Babylonian
Used by: Algebraic_Numbers