A verified LLL algorithm

Ralph Bottesch, Jose Divasón 🌐, Max W. Haslbeck 🌐, Sebastiaan J. C. Joosten 🌐, René Thiemann 🌐 and Akihisa Yamada

February 2, 2018

This is a development version of this entry. It might change over time and is not stable. Please refer to release versions for citations.


The Lenstra-Lenstra-Lovász basis reduction algorithm, also known as LLL algorithm, is an algorithm to find a basis with short, nearly orthogonal vectors of an integer lattice. Thereby, it can also be seen as an approximation to solve the shortest vector problem (SVP), which is an NP-hard problem, where the approximation quality solely depends on the dimension of the lattice, but not the lattice itself. The algorithm also possesses many applications in diverse fields of computer science, from cryptanalysis to number theory, but it is specially well-known since it was used to implement the first polynomial-time algorithm to factor polynomials. In this work we present the first mechanized soundness proof of the LLL algorithm to compute short vectors in lattices. The formalization follows a textbook by von zur Gathen and Gerhard.


BSD License


May 25, 2018
Integrated much faster LLL implementation based on integer arithmetic (Bottesch, Haslbeck, Thiemann)
April 16, 2018
Integrated formal complexity bounds (Haslbeck, Thiemann)


Session LLL_Basis_Reduction