prompt = "here comes a prompt by the user"
context += prompt
for _ in range(N): context += evaluate_llm(context)
Calling it "refinement" is dismissive. It's generating new information, which is in many cases well beyond the scope of the original prompt.
Reasoning models today are just a marketing spin on chain-of-thought techniques that benefit from reinforcement learning.