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)) -(x,0()) -> x -(s(x),s(y)) -> -(x,y) gcd(s(x),s(y)) -> gcd(-(s(max(x,y)),s(min(x,y))),s(min(x,y))) Proof: Open