The idea: It turns out that interlacing is just one way of implementing Anand's solution to the problem.

His idea was to take a list of numbers from 1 to n and group them in the following way:

First, he separates the evens and the odds. i.e. write all the odds first say 1, 3, 5, ... followed by the evens 2, 4, 6, ... If the sequence contains three terms in arithmetic progression then all three of these terms must come from the same group, all evens or odds. Otherwise, the three terms will have one difference even and the other odd.

Now he goes on and divides up the odds into two groups, one group is congruent to 1 modulo 4 and the other is 3 modulo 4. In the evens he divides the numbers in 2 modulo 4 and 0 modulo 4. He then argues that the three numbers must all be within the same group again. For example, in the odd group, the terms have been divided into two groups 1, 5, 9, ... (all 1 modulo 4) followed by 3, 7, 11,.. (all 3 modulo 4). If all three terms are in the odd group then they must all be in the first (1 modulo 4) group or all in the (3 modulo 4) group. Otherwise, the three terms (call them a, b, c) will have a-b and b-c congruent to different terms modulo 4! (Only two cases to check if not convinced: Using == to mean congruence modulo 4 we have a == b == 1 and c == 3 which gives a-b == 0 and b-c == -2 or a == 1 and b == c == 3 which gives a-b == -2 and b-c == 0)

Anyways, you get the point, we can continue grouping subsets of this sequence into smaller and smaller halves until eventually all the groups contain 2 or less numbers! This means that we have arranged the numbers so that there are no arithmetic sequences in it.

This of course has to be implemented somehow and that's what we happened to have stumbled onto that day. At the time I thought I had a different "short" proof, but I was totally wrong. Luckily the method was still correct. So here you go, a proof:

Definitions:

The Juice Sequence: The first Juice Sequence (JS1) will be 3,1,0,2 decreed by the master juicer.
For n >= 2: The nth Juice Sequence (JSn) will be given by taking JS(n-1) and interlacing it with its own terms added to 2^n.
Thus, the (2k-1)th term of JSn will be the kth term of JS(n-1) and the (2k)th term of JSn will be the kth term of JS(n-1) PLUS 2^n.
Example: n = 2, JS2 is 3, 3+4, 1, 1+4, 0, 0+4, 2, 2+4 which is 3, 7, 1, 5, 0, 4, 2, 6.

Anti-arithmetic: (See problem)

Denote == to mean "congruent to" under the appropriate divisor.

Lemma 1: It is sufficient to show that if a sequence has an arithmetic progression then it has 3 terms in arithmetic progression.
Solution: (obvious) An arithmetic progression has 3 or more terms, so if the sequence has an arithmetic progression then it has 3 terms in arithmetic progression.

Prelude to Theorem 1: Each JSn has all its odd terms listed followed by its even terms. Eg. 3, 7, 1, 5, followed by 0, 4, 2, 6. Each JSn (n>=1) has consecutive blocks of terms with each term in the first block == 3 mod 4, followed by terms == 1 mod 4, then by terms == 0 mod 4, and finally == 2 mod 4. Eg. 3, 7, 1, 5, 0, 4, 2, 6. Each JSn (n >=2) has consecutive blocks of terms with the blocks having all its terms congruent to 3, 7, 1, 5, 0, 4, 2, 6 for the 1st, 2nd, 3rd, 4th, ... 8th blocks respectively. And so on...

Theorem 1: For each JSn, and 1 <= k <= n+1, the sequence is divided into 2^k blocks with each block having a unique remainder upon division by 2^k and all the terms in each block having the same remainder upon division by 2^k.
Proof: We will show this result by mathematical induction on n.

Base Case: n = 1. JS1 is 3, 1, 0, 2. k = 1. Behold, the sequence is divided into 2 blocks (3, 1) and (0, 2) with each block having a unique remainder upon division by 2. The first half is odd and the second half is even.
Similarly, k = 2 we have 2^2 = 4 distinct terms.

Assume that the result holds true for JSm, some m >= 1. Now consider JS(m+1). For each k, 1 <= k <= m+1, we have that JSm is divided into 2^k blocks with the desired properties. Now this carries over to JS(m+1). All that happens is that each block in JSm goes into a block in JS(m+1) as follows. All the terms in one of the 2^k blocks in JSm goes into a block with all these terms and with all these terms each added to 2^(m+1). Adding 2^(m+1) to each term will not change the remainders under division by 2^k. Thus the remainders are preserved. Thus JS(m+1) can be divided into 2^k groups with the desired properties for 1 <= k <= m+1.
Now we show that JS(m+1) can be divided into 2^(m+2) blocks with the required properties. JS(m+1) only has 2^(m+2) terms so it is sufficient to show that all these terms are distinct modulo 2^(m+2). JS(m+1) can be divided into 2^(m+1) blocks (2 terms in each) which are distinct modulo 2^(m+1) from above. Further more, by construction, the two terms in each block have the form A, A+2^(m+1). These are unique modulo 2^(m+2) so all the terms are unique modulo 2^(m+2). (Note: This last step for k = m+2 is obvious if I had shown earlier or if one is convinced that all the numbers from 1 to 2^(m+2) are represented.)

Prelude to the main theorem: Now we want to show that indeed if there are three terms in arithmetic progression, then they are all in the same block no matter how small the block gets.

Theorem 2: JSn is anti-arithmetic for all n >= 1.
Proof: Suppose on the contrary that JSn is arithmetic for some n >= 1. Then by Lemma 1, there exists 3 terms in JSn in arithmetic progression. We show by induction on m, that if there are 3 terms in arithmetic progression then they must all be in the same block when JSn is divided into 2^m blocks (1 <= m <= n+1). Base Case: m = 1. By Theorem 1, JSn can be divided into 2 blocks with all the odds in one block and all the evens in another block. Hence all 3 terms of the arithmetic progression must be from one of the 2 blocks. Assume that for some k >= 1, all 3 terms in the arithmetic progression are in the same block when JSn is divided into 2^k consecutive blocks. Say it is in block B. Now consider JSn divided into 2^(k+1) consecutive blocks. Each of the 2^k consecutive blocks are just divided into 2 halves. Thus B is divided into two blocks with distinct remainders modulo 2^(k+1) by Theorem 1. Thus we reason that all 3 terms must all be in one of the new blocks. (Similar reasoning modulo 2^(k+1). If the numbers are a, b, and c. Then a == b == c == w modulo 2^k since they are in the same block. Now they are all congruent modulo 2^(k+1) and we are finished or a == b == u and c == v modulo 2^(k+1) or a == u and b == c == v modulo 2^(k+1) since the original block is divided into two blocks, the first half say == u modulo 2^(k+1) and the second half say == v modulo 2^(k+1). In either case, a - b and b - c given difference values modulo 2^(k+1) so all three must be in the same block.) Thus all 3 terms must be in the same block no matter how small the block since we can take JSn in 2^(m+1) blocks. But then each block has only 1 term! This is impossible, so JSn is anti-arithmetic.

Corollary 1: Any subsequence of JSn, for all n, is also anti-arithmetic.
Proof: If otherwise, then there are three terms in the original JSn that are in arithmetic progression. Impossible. In our solution, we used Corollary 1 by generating the largest possible JSn that we could. Then for any value, N, less than or equal to 2^(n+1) the problem wanted we output the subsequence of JSn with values <= N in the order in which the appear in JSn.