does the algorithm tries to make minimal changes to the free variables ?
If we have 1 + 1 = 2 and change 2 -> 4 then -100000 + 100004 = 4 is also a valid solution.
When I tried it it changed it to 2 + 2 so perhaps there is optimization but also a valid optimization can be minimal free variable changes in which case it would be 1+3 = 4 and we update 1 free variable instead of 2.
I have no idea which is better just curios how it works.
I like the idea very much.