Lemma UNIQUE: A set of linear equations (no term multiplied by 0) will not have a unique solution if it contains more unknowns than equations.
Proof: The set of values for N unknowns can be viewed as an N- dimensional space. The solutions to a single linear equation form an N-1-dimensional hyperplane in this space. The solution to M such independent equations is the intersection of M such independent hyperplanes, forming an N-M dimensional space. Spaces greater than 0-dimensional contain multiple points, representing multiple solutions to the set of M equations with N unknowns. When the set of equations is not independent, there are effectively even fewer than M of them.
Theorem 4N/3: Given a number S, all the values of
the sequence r, and N equations of type 1, 2, and/or 3 below, there
will be at least 4N/3 unknowns.
Proof:Suppose a set of equations has I 1's, J 2's, and K
3's. We can put a lower bound on the number of unknowns that will
appear.
What is 2I+2J+3K-min(I,J)-2min(I,K)-min(J,K)+min(I,J,K)+1?
Therefore N equations will have at least 4N/3 unknowns.
Corollary N/3: Theorem 4N/3, combined with lemma UNIQUE),
imply that that given N equations of the form 1, 2, or 3, at least N/3
additional equations explaining a, m, y, and x must be given before
the unknowns in the original equations have a unique solution.
Note that this treats the sequences m, x, and y as truly independent.
In the generator ISAAC, it is known that
values of x and y are chosen from the previous SIZE values of m in
some deterministic fashion. Guessing the choice correctly for some
value of x or y would supply an additional equation with no extra
unknowns. There are 2^8 possible guesses for each value. If the
choices are independent for each value, it is not practical today to
guess more than about 5 values this way.
ISAAC starts with 256 unknowns (the initial values in m[]).
Combine that with theorem 4/3, and after the user
sees N results, there are 256+(N/3) more unknowns that linear
equations. In order for Gaussian Elimination to be useful, extra
equations must be found faster than extra unknowns are produced.
a_i = a_{i-1} + m_{i-S/2} /* 1 */
r_i = m_{i-S} + y_i /* 2 */
m_i = r_i + a_i + x_i /* 3 */
1 alone: 3I - (I-1) = 2I+1, all but one a_i can be an a_{i-1}.
2 alone: 2J, since all r's are known.
3 alone: 3K, since all r's are known.
1+2: 2I+2J-min(I,J)+1, since m_{i-S} and m_{i-S/2} can overlap.
1+3: 2I+3K-2min(I,K)+1, since m's and a's can overlap.
2+3: 2J+3K-min(J,K) since m's can overlap (r's are known).
1+2+3: 2I+2J+3K-min(I,J)-2min(I,K)-min(J,K)+min(I,J,K)+1,
since the overlap of m's is only 2x not 3x
I<J<K: 2I+2J+3K-I-2I-J+I+1 = J+3K+1 > (4/3)(I+J+K)
I<K<J: 2I+2J+3K-I-2I-K+I+1 = 2J+2K+1 > (4/3)(I+J+K)
J<I<K: 2I+2J+3K-J-2I-J+J+1 = J+3K+1 > (4/3)(I+J+K)
J<K<I: 2I+2J+3K-J-2K-J+J+1 = 2I+J+K+1 > (4/3)(I+J+K)
K<I<J: 2I+2J+3K-I-2K-K+K+1 = I+2J+K+1 > (4/3)(I+J+K)
K<J<I: 2I+2J+3K-J-2K-K+K+1 = 2I+J+K+1 > (4/3)(I+J+K)
Gotta show that, not only can you not solve for all 4N/3 unknowns
without finding N/3 more equations, you can't find the values for any
M unknowns without finding at least M/3 more equations.