src/HOL/SPARK/Manual/document/Gcd.adb
author paulson <lp15@cam.ac.uk>
Sat, 17 Oct 2020 11:32:03 +0100
changeset 72492 2dd41a8893aa
parent 45044 2fae15f8984d
permissions -rw-r--r--
type class reduction
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
45044
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
     1
package body Greatest_Common_Divisor
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
     2
is
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
     3
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
     4
   procedure G_C_D(M, N: in Natural; G: out Natural)
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
     5
   is
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
     6
      C, D, R: Integer;
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
     7
   begin
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
     8
      C := M; D := N;
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
     9
      while D /= 0 loop
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    10
         --# assert C >= 0 and D > 0 and Gcd(C, D) = Gcd(M, N);
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    11
         R := C rem D;
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    12
         C := D; D := R;
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    13
      end loop;
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    14
      G := C;
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    15
   end G_C_D;
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    16
2fae15f8984d Added documentation for HOL-SPARK
berghofe
parents:
diff changeset
    17
end Greatest_Common_Divisor;