Then, we could allow the student to "solve" an equation the way they really should, by skipping over two or three steps at a time, but when we see them do something wrong, we can use our table of "errors the student is most likely to make" to explore the space of possible errors between step 4 and step 5, and give focused feedback about what they did wrong. Using that table there's really only a couple hundred possibilities; if that fails we can always ask the student themselves to break it down more tightly. Presumably if someone were making a business out of this, there would be someone on the lookout for errors the computer can't figure out to add what rules they can to the system. (Though there will always be an irreducible residue of incomprehensible error.)
Teaching a student math would then be about reducing each of these errors to zero over time. You'd have the computer custom create problems that hold a constant probability of the student making an error at some point during solving it; say 20% or so. Then as the student demonstrates mastery, you naturally make the problems more complex as you have to put in more steps to make the probability of error go that high.
Instead of a klunky, chunky "ok now we learn this and you blindly practice it, now you learn this and you blindly practice it, and we hope at the end you've learned everything we taught", you would in theory get a naturally progressive, customized difficulty curve that keeps the student continuously engaged with being about 80% correct, but always progressing forward. This approach also naturally ensures that just because we're covering the quadratic equation this week does not mean you get to forget fractions; once you've seen the simple stuff with integers, we're naturally going to fold fractions back in to the problems, for instance.
There's some elaborations on the theme after that, such as pre-examining the generated problems to ensure that the most likely mistakes are all distinguishable by producing different error output.
But I don't have time to do this. I'm at least reasonably confident it would work, though.