YES 2.2 gcd x y gcd y x gcd x y gcd y x minus x s y minus x y if_gcd false s x s y minus y x if_gcd true s x s y minus x y le s x s y le x y if_gcd false s x s y gcd minus y x s x gcd s x s y if_gcd le y x s x s y minus x s y pred minus x y if_gcd true s x s y gcd minus x y s y gcd s x s y le y x if_gcd true s x s y gcd minus x y s y gcd s x s y if_gcd le y x s x s y if_gcd false s x s y gcd minus y x s x gcd x y gcd y x true 1 le 2 1 s 1 1 3 le 2 0 minus 2 1 1 gcd 2 0 false 0 1 true 0 1 pred 1 1 0 0 0 1 minus 2 0 pred 1 0 if_gcd 3 0 if_gcd 3 1 2 3 0 gcd 2 1 2 2 if_gcd false s x s y gcd minus y x s x gcd s x s y if_gcd le y x s x s y if_gcd true s x s y gcd minus x y s y pred s x x le 0 y true le s x s y le x y minus x 0 x minus x s y pred minus x y le s x 0 false gcd x y gcd y x true if_gcd false s x s y minus y x false if_gcd true s x s y minus x y false gcd s x s y le y x false le s x s y le x y true 1 le 2 1 s 1 1 3 le 2 1 0 minus 2 1 1 gcd 2 0 false 0 1 true 0 1 pred 1 1 0 0 0 1 minus 2 0 pred 1 0 if_gcd 3 0 if_gcd 3 1 0 gcd 2 1 2 2 le s x s y le x y pred s x x le 0 y true le s x s y le x y minus x 0 x minus x s y pred minus x y le s x 0 false minus x s y minus x y true 1 le 2 1 s 1 1 3 le 2 0 minus 2 1 1 gcd 2 0 false 0 1 true 0 1 pred 1 1 0 0 0 1 minus 2 2 0 pred 1 0 if_gcd 3 0 if_gcd 3 1 0 gcd 2 1 2 2 minus x s y minus x y pred s x x le 0 y true le s x s y le x y minus x 0 x minus x s y pred minus x y le s x 0 false minus x s y pred minus x y false gcd x y gcd y x true NaTT 1.7