monus S x' S x monus x' x gcd x y gcd[Ite] equal0 x y x y equal0 a b equal0[Ite] < a b a b < S x S y < x y < 0 S y True < x 0 False gcd[Ite] False x y gcd[False][Ite] < x y x y gcd[Ite] True x y x gcd[False][Ite] False x y gcd y monus y x gcd[False][Ite] True x y gcd monus x y y equal0[Ite] False a b False equal0[Ite] True a b equal0[True][Ite] < b a a b equal0[True][Ite] False a b False equal0[True][Ite] True a b True True 0 S 1 < 2 equal0[True][Ite] 3 gcd 2 gcd[Ite] 3 0 0 gcd[False][Ite] 3 monus 2 equal0 2 equal0[Ite] 3 False 0 INNERMOST Frederiksen_Others/gexgcd2.tml.trs