src/HOL/SPARK/Examples/Sqrt/Sqrt.adb
author wenzelm
Mon, 11 Feb 2013 14:39:04 +0100
changeset 51085 d90218288d51
parent 41561 d1318f3c86ba
permissions -rw-r--r--
make WWW_Find work again, now that its ML modules reside within a theory context (cf. bf5b45870110) -- patch by Rafal Kolanski;
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
41561
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
     1
package body Sqrt is
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
     2
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
     3
   function Isqrt(N: Natural) return Natural
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
     4
   is
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
     5
     R: Natural;
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
     6
   begin
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
     7
      R := 0;
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
     8
      loop
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
     9
         --# assert R * R <= N;
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    10
         exit when N - R * R < 2 * R + 1;
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    11
         R := R + 1;
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    12
      end loop;
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    13
      return R;
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    14
   end Isqrt;
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    15
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    16
end Sqrt;