MAYBE Problem: min(x,0()) -> 0() min(0(),y) -> 0() min(s(x),s(y)) -> s(min(x,y)) max(x,0()) -> x max(0(),y) -> y max(s(x),s(y)) -> s(max(x,y)) minus(x,0()) -> x minus(s(x),s(y)) -> s(minus(x,y)) gcd(s(x),s(y)) -> gcd(minus(max(x,y),min(x,transform(y))),s(min(x,y))) transform(x) -> s(s(x)) transform(cons(x,y)) -> cons(cons(x,x),x) transform(cons(x,y)) -> y transform(s(x)) -> s(s(transform(x))) cons(x,y) -> y cons(x,cons(y,s(z))) -> cons(y,x) cons(cons(x,z),s(y)) -> transform(x) Proof: Open