A generic package with a generic function to compute a gcd of two elements of a Euclidean Ring and to use SPARK to prove correctness of output.
See share/euclidean/html/index.html
for automatically generated documentation.
alr with gnatprove
if not already installed and using Aliregnatprove
, or prove from SPARK menu in GNAT Studio
alr build
if using Aliregnatmake -P euclidean
alternately
alr run
if using Alirebin/main
on my machine
gnatdoc -l -w --custom-tags-definition=more_tags.py -P euclidean
-
2023-07-26 Finally compiles with something that resembles correctness:
Gcd'Result
≠ 0Gcd'Result
≤A
Gcd'Result
≤B
Getting
Gcd'Result rem A = Zero
, and the same forB
, is impractical at the moment.