Bagaimana loop invarian diperoleh dalam algoritma pencarian akar terikat kuadrat ini?

Awalnya pada matematika. SE tetapi tidak dijawab di sana. Pertimbangkan algoritma berikut. u := 0 v := n+1; while ( (u + 1) is not equal to v) do x := (u + v) / 2; if ( x * x <= n) u := x; else v := x; end_if end_while di mana u, v, dan n adalah bilangan bulat dan operasi divisi...