Thanks for the positive comments about the novelty and effectiveness of our approach. We will respond to the weaknesses here and urge the reviewer to increase their score if we resolve their concerns.
**W1.** The strongest weakness is Theorem 4.1. The code is shown in Appendix D, but the construction proof is not justified at all.
*Response:* We are not sure that we understand the issue here. RASP provides us with a way to construct programs that can directly be translated to transformer weights. So, we illustrate a program that predicts the next token that would be needed to simulate a turing machine by copying the tape and making updates and moving the head according to the rules of the turing machine with comments explaining what is going on in each step. This program then directly defines the construction. If there are particular steps of the construction that are unclear, we are happy to provide more explanation, just let us know.
**W2.** Authors didn't spend any time on explaining why HAlibi embedding is strongly needed and what practitioners can do to solve similar math problems without using this embedding. In particular it's not obvious how to escape from embedding choice and rely only on the multiple CoT idea.
*Response:* We should have made it clearer why HAlibi is useful here. The HAlibi positional encoding is crucial for length generalization of Turing Programs because it allows the task of copying to length generalize. The copying capability of HAlibi is already discovered here (https://arxiv.org/abs/2402.01032). Also, if we observe the mistakes made by other positional encodings when we use Turing Program, they are almost always due to errors when copying the tape content. Thus, if we stick with the Turing Program CoT, HAlibi is very important. It is an interesting direction for future research to improve length generalization of copying with other positional encodings. Perhaps with larger models that are trained with long enough context lengths to fit two consecutive states of the tape, this copying issue is less of a problem.
**W3.** In general, ideas and theorems are not well motivated and explained.
*Response:* We are not exactly certain what the reviewer means by this. But if you can provide specific questions or examples of things that are unclear, we are happy to provide better explanations.
**W4.** It's not obvious how to extend this idea to fairly similar arithmetic tasks, for example 20-multiplication.
*Response:* The idea is that any task which you can write a Turing machine for (which is any computable task) can be worked into this framework (up to issues with repeated n-grams discussed in the theory).
For example, the current CoT for multiplication should also work for 20-multiplication. To illustrate, here are the CoT for 1, 2, 3, and 4-multiplication, and we just need to follow this pattern to get the data for 20-multiplication. The explanation for these CoT is described in Figure 4 as you have pointed out. For longer sequences, we just have to stuff more digits in the parenthesis which keeps track of the carry.
```
$4324*1|432e*1(04~0,4)|43c*1(02~0,24)|4d*1(03~0,324)|e*1(04~0,4324)|4324
$4324*12|432e*12(048~04,8)|43c*12(024~02,88)|4d*12(036~03,888)|e*12(048~05,1888)|^*12(000~00,51888)|51888.
$4324*123|432e*123(0492~049,2)|43c*123(0246~029,52)|4d*123(0369~039,852)|e*123(0492~053,1852)|^*123(0000~005,31852)|^*123(0000~000,531852)|531852.
$4324*1234|432e*1234(04936~0493,6)|43c*1234(02468~0296,16)|4d*1234(03702~0399,816)|e*1234(04936~0533,5816)|^*1234(00000~0053,35816)|^*1234(00000~0005,335816)|^*1234(00000~0000,5335816)|5335816.
```
**Q1.** Did authors think about other algorithm classes which can be learnt with a copying based CoT?
*Response:* Any computable algorithm that does not involve repeating n-grams should be doable here.
**Q2.** Is there any limitation of this idea for longer sequence, i.e. going with a 3x generalization multiplier? Did authors collected some results there?
*Response:* We don’t have any result that shows a 3x generalization. However, in all the algorithms we tried, the mistakes are due to failures of tape copying: as the CoT becomes long, we need to copy more times, and mistakes become more common. Thus, it is definitely possible to construct toy tasks that require limited copying so that we get longer generalization. For instance, the task of copying a single time can be generalized > 3x as shown here (https://arxiv.org/abs/2402.01032).
**Q3.** Are there additional tasks the authors think of to show the full potential of this idea? Maybe some graph related tasks?
*Response:* Yes, there are lots of other interesting tasks that this could be extended to. We haven’t thought deeply about graph related tasks yet, but it is definitely a good thing to explore next. This could even be extended to more practical tasks related to e.g. formal verification or code execution or other computable problems of practical interest.