Proofs: Gauss sieve
These are the human proofs of Gauss sieve, at full length.
The Gauss sieve terminates, keeps a pairwise reduced list of at most kissing-number size, and returns a nonzero lattice vector no longer than any vector it processed full
This proof shows: correctness, termination.
Setting. The input is linearly independent rows of the lattice , a collision limit and a sample budget . The algorithm keeps a list and a stack of vectors, a collision counter and a sample counter. Line numbers refer to the pseudocode on the page. All arithmetic is exact. Two vectors are Gauss-reduced with respect to each other when
The result proved here is about what the algorithm guarantees. That the output is a shortest vector is not proved; for the Gauss sieve this is a heuristic, supported by experiments, and it is not claimed below.
Lemma 1 (one reduction step). Let and with , and let be the nearest integer to . Then , and when .
Proof. . If then and , with equality in both only for , , which is excluded; so and the product is negative. The case is symmetric. Integer combinations of lattice vectors are lattice vectors.
The condition used on lines L4 and L6 is .
Lemma 2 (discreteness). Let be a common denominator of the entries of . Every vector the algorithm handles is in , so its entries are in and its squared length is in .
Proof. Basis rows and samples are in ; reductions keep by Lemma 1.
Lemma 3 (line L4 terminates). The reduction loop of line L4 stops, and when it stops either or for every with .
Proof. Each reduction makes strictly smaller (Lemma 1), and by Lemma 2 these values lie in the discrete set , so there are finitely many reductions. The loop stops either at or after a full pass over without a reduction, which is the stated condition.
Lemma 4 (the list invariant). At every test of line L2, every vector of is a nonzero vector of , and every two vectors at different positions of are Gauss-reduced.
Proof. Initially is empty. The list changes only on lines L7 and L8, after line L4 has produced a nonzero . Pairs of vectors that stay in the list are unchanged. For the new vector and a vector that stays: if , Lemma 3 gives ; if , then stays only when .
Lemma 5 (size of the list). At every moment , the kissing number in dimension , the largest number of points on the unit sphere of with pairwise angles at least .
Proof. The vectors of lie in , a space of dimension . For two of them at different positions, Lemma 4 gives
so the angle between and is between and . In particular no two of them are equal or opposite, so the unit vectors are distinct points on the unit sphere with pairwise angles at least .
Lemma 6 (the shortest list vector only improves). Let be the smallest squared length in (with while is empty). Then never increases, and after a nonzero vector is taken on line L3, from then on.
Proof. Line L7 removes a vector only when the vector added on line L8 has , so the minimum does not go up. Line L4 does not change . Now take on line L3. If line L4 makes no reduction, itself is added on line L8. Otherwise its first reduction uses some with , so already . Since never increases, the bound holds from then on.
Lemma 7 (termination). The main loop ends.
Proof. Each iteration either draws a sample, which happens at most times, or pops a vector from . We show that only finitely many iterations of the second kind can follow each other. Let be the multiset of the squared lengths of all vectors in and in , ordered by the multiset order (Dershowitz and Manna), which is well-founded because the values lie in the well-ordered set (Lemma 2). Consider an iteration that pops from .
- If line L4 reduces to 0, the value leaves : decreases.
- Otherwise is replaced by a vector of squared length at most and moved to , and every vector moved from to on line L7 is replaced by a strictly shorter one (Lemma 1). If any of these lengths strictly decreased, decreases. If none did, is unchanged and decreased by 1, since left and nothing was pushed.
So the pair decreases in the lexicographic order at each such iteration, which is again a well-founded order. Line L4 terminates by Lemma 3, and the other lines are finite. So the loop runs for finitely many iterations.
Theorem. The procedure terminates. Its output is a vector of the final list, of the smallest length in it, and
- is a nonzero vector of , with and for every nonzero vector taken on line L3;
- the final list is pairwise Gauss-reduced and has at most vectors.
Proof. Termination is Lemma 7. The loop stops only when is empty, so all basis rows, which start on , were taken on line L3. The first of them, , meets an empty list, so it is added and is nonempty from then on; by Lemmas 4 and 6, the list never becomes empty again, because a vector is removed only when another is added. So the minimum on line L9 exists, and by Lemma 4, and Lemma 6 gives for every nonzero processed, in particular for every . Part 2 is Lemmas 4 and 5.
What is not proved. Nothing above shows . Micciancio and Voulgaris proved bounds of the form for the related List Sieve, but not for the Gauss sieve, where the stack can make the number of iterations grow without a known bound in terms of . The success of the method rests on experiments and on heuristic arguments about random samples.