Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- EXTENDS Integers
- p | q == \E d \in 1..q : q = p * d
- Divisors(q) == {d \in 1..q : d | q}
- Maximum(S) == CHOOSE x \in S : \A y \in S : x >= y
- GCD(p,q) == Maximum(Divisors(p) \cap Divisors(q))
- Number == Nat \ {0}
- CONSTANTS M, N
- VARIABLES x, y
- Init == (x = M) /\ (y = N)
- Next == \/ /\ x < y
- /\ y' = y - x
- /\ x' = x
- \/ /\ y < x
- /\ x' = x-y
- /\ y' = y
- Spec == Init /\ [][Next]_<<x,y>>
- ResultCorrect == (x = y) => x = GCD(M, N)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement