Proofs: Summation polynomial index calculus
These are the human proofs of Summation polynomial index calculus, at full length.
Correctness of summation polynomial index calculus full
This proof shows: correctness, termination.
Let be the curve over , of order , and . For termination we treat the draws of line L10 as independent: and uniform in , and a random affine point in which every affine point of has positive probability, which holds for the sampling described on the page. DECOMPOSE is a function of : its internal random choices in the root finding change only the time, because the roots are returned in increasing order.
Lemma 1 (the frame). For each prime power put , and . If , then if and only if for every . In that case, if for every , the of line L7 satisfies , and it is the only such in .
Proof. The have greatest common divisor , so there are integers with . If , then . Conversely, if for every , then . For with , because has order , so . Uniqueness in holds since has order .
Lemma 2 (the Sylow subgroup). If is a prime with and , then , has order , , and with of order . If moreover , then .
Proof. divides , which divides , so , and has order . The kernel of is a subgroup whose order is a power of dividing . It contains , so it has order exactly and equals . Hence has order , which is prime to . So , and the orders multiply to , which gives the direct sum. Finally , so lies in the kernel.
Lemma 3 (rows are true). If DECOMPOSE returns , then .
Proof. At line L16, with , and , so and with the sign returned. At line L20 the equality is checked before the row is returned, and the row adds at and at , also when .
Lemma 4 (elimination). After relations have been processed in lines L12 to L15, every stored row of and every dependency found so far satisfy and , where is the combination kept with . The dependencies found so far form a basis of the left kernel .
Proof. A new row starts with combination $c = $ the unit vector at . Each step of line L12 subtracts a multiple of a stored row together with its combination, and line L15 scales both by the same unit, so the relation is kept. A row that reduces to gives a dependency. The stored rows have distinct leading columns, and a stored row with leading column has zeros before ; reducing the new row column by column in increasing order makes it zero at every stored leading column, so a nonzero result has a new leading column. Hence the stored rows stay in echelon form and are linearly independent, and they span the same space as modulo , because each operation is invertible. So is the rank of . Each relation adds either a row to or a dependency, so dependencies have been found. The dependency found at relation has coefficient at and after , so these vectors are linearly independent. The left kernel has dimension , so they form a basis.
Lemma 5 (a dependency gives the logarithm). In RELATIONS with , and , let be a dependency with and . Then . So if , line L14 returns .
Proof. Take the as integers in . By Lemma 3, for an integer vector , so . Let . Then . On the other side, , so . Hence , and because .
Correctness. If , then and line L2 returns NONE correctly. Otherwise, for each : if , baby-step giant-step on of order returns with or reports that none exists. If , Lemma 2 gives and Lemma 5 shows that RELATIONS returns with . By Lemma 1, line L5 returns NONE exactly when , and otherwise line L7 returns the unique with .
Termination. Lines L1 to L7 run over finitely many primes, and baby-step giant-step stops. Drawing stops with probability , because the right side of the curve equation is a square for some ; for example , which the implementation checks. Root finding in DECOMPOSE stops with probability (see the Cantor-Zassenhaus algorithm), and its loops are finite. It remains to show that the loop of lines L9 to L15 stops with probability .
Fix and . By Lemma 2 write with , and pick an affine with : if , take , which is affine since ; otherwise any preimage is affine. Let be the probability that . For every , and hold exactly when and , which has probability . So each draw gives with probability , and given that, is uniform in , independently of the other draws. DECOMPOSE returns a row at line L16. Hence, with probability , there are two relations with and , because . Their rows are equal, since DECOMPOSE is a function of , so the vector with at and at is in the left kernel after relation , with . Suppose the loop has not stopped when relation has been processed. Then every dependency found so far had . By Lemma 4 they span the left kernel, and is linear in , so on the whole kernel, a contradiction. So the loop stops by relation , and the algorithm stops with probability .