src/HOL/SPARK/Examples/Sqrt/Sqrt.adb
author wenzelm
Mon, 20 May 2024 15:43:51 +0200
changeset 80182 29f2b8ff84f3
parent 41561 d1318f3c86ba
permissions -rw-r--r--
proper support for "isabelle update -D DIR": avoid accidental exclusion of select_dirs (amending e5dafe9e120f);

package body Sqrt is

   function Isqrt(N: Natural) return Natural
   is
     R: Natural;
   begin
      R := 0;
      loop
         --# assert R * R <= N;
         exit when N - R * R < 2 * R + 1;
         R := R + 1;
      end loop;
      return R;
   end Isqrt;

end Sqrt;