(* Sqrt *)
(* Direct transcription of an old proof of a fortran program in boyer-moore *)

Lemma iter_sqrt_correct n rec i j: 0 < φ i -> 0 < φ j ->
φ i < (φ j + 1) ^ 2 -> 2 * φ j < wB ->
(forall j1, 0 < φ j1 -> 2^(Z_of_nat n) + φ j1 <= φ j ->
φ i < (φ j1 + 1) ^ 2 -> 2 * φ j1 < wB ->
φ (rec i j1) ^ 2 <= φ i < (φ (rec i j1) + 1) ^ 2) ->
φ (iter_sqrt n rec i j) ^ 2 <= φ i < (φ (iter_sqrt n rec i j) + 1) ^ 2.