Do we think that was necessary? What would have happened if OP had just asked it to rewrite and test/validate each piece as it went until everything is verified and complete?
My gut feeling is this is doing way too much, and it would've figured it out.
converting code to more abstract and denser representations and then manipulating them makes sense to me. Finding better representations is like half of mathematics.
Is code being converted to / represented in maths that much more helpful for an LLM that deals in language primarily, by definition? I have no idea, interesting though!
1. Extract the data representation
Ask the LLM to represent your code as any combination of:
2 Operate on the representations3 Convert representations back to code