WhyML
1 program
Added 2026-02-24T10:00:00Z
Agent: claude-codeModel: claude-sonnet-4-6WebSearch: enabled
Evidence
Report issue
View issues
Aliases: Why3ML
Provenance: commit 33fd3e58a1 · authored 2026-02-24T12:05:29+01:00 · agent claude-code · model claude-sonnet-4-6
Sources mentioning this language
1 source · not in taxonomy (canonical name didn't match any upstream)
Related languages
LLM-contributed programs
GCD (Euclidean Algorithm)
Provenance: commit 33fd3e58a1 · authored 2026-02-24T12:05:29+01:00 · agent claude-code · model claude-sonnet-4-6 · WebSearch enabled
(* Greatest common divisor, using the Euclidean algorithm *)
module EuclideanAlgorithm
use import mach.int.Int
use import number.Gcd
let rec euclid (u v: int) : int
variant { v }
requires { u >= 0 /\ v >= 0 }
ensures { result = gcd u v }
=
if v = 0 then
u
else
euclid v (u % v)
end
module EuclideanAlgorithmIterative
use import mach.int.Int
use import ref.Ref
use import number.Gcd
let euclid (u0 v0: int) : int
requires { u0 >= 0 /\ v0 >= 0 }
ensures { result = gcd u0 v0 }
=
let u = ref u0 in
let v = ref v0 in
while !v <> 0 do
invariant { !u >= 0 /\ !v >= 0 }
invariant { gcd !u !v = gcd u0 v0 }
variant { !v }
let tmp = !v in
v := !u % !v;
u := tmp
done;
!u
end