MAYBE Problem: minus(0(),x) -> 0() minus(s(x),0()) -> s(x) minus(s(x),s(y)) -> minus(x,y) mod(x,0()) -> 0() mod(x,s(y)) -> if(lt(x,s(y)),x,s(y)) if(true(),x,y) -> x if(false(),x,y) -> mod(minus(x,y),y) gcd(x,0()) -> x gcd(0(),s(y)) -> s(y) gcd(s(x),s(y)) -> gcd(mod(s(x),s(y)),mod(s(y),s(x))) lt(x,0()) -> false() lt(0(),s(x)) -> true() lt(s(x),s(y)) -> lt(x,y) Proof: DP Processor: DPs: minus#(s(x),s(y)) -> minus#(x,y) mod#(x,s(y)) -> lt#(x,s(y)) mod#(x,s(y)) -> if#(lt(x,s(y)),x,s(y)) if#(false(),x,y) -> minus#(x,y) if#(false(),x,y) -> mod#(minus(x,y),y) gcd#(s(x),s(y)) -> mod#(s(y),s(x)) gcd#(s(x),s(y)) -> mod#(s(x),s(y)) gcd#(s(x),s(y)) -> gcd#(mod(s(x),s(y)),mod(s(y),s(x))) lt#(s(x),s(y)) -> lt#(x,y) TRS: minus(0(),x) -> 0() minus(s(x),0()) -> s(x) minus(s(x),s(y)) -> minus(x,y) mod(x,0()) -> 0() mod(x,s(y)) -> if(lt(x,s(y)),x,s(y)) if(true(),x,y) -> x if(false(),x,y) -> mod(minus(x,y),y) gcd(x,0()) -> x gcd(0(),s(y)) -> s(y) gcd(s(x),s(y)) -> gcd(mod(s(x),s(y)),mod(s(y),s(x))) lt(x,0()) -> false() lt(0(),s(x)) -> true() lt(s(x),s(y)) -> lt(x,y) Usable Rule Processor: DPs: minus#(s(x),s(y)) -> minus#(x,y) mod#(x,s(y)) -> lt#(x,s(y)) mod#(x,s(y)) -> if#(lt(x,s(y)),x,s(y)) if#(false(),x,y) -> minus#(x,y) if#(false(),x,y) -> mod#(minus(x,y),y) gcd#(s(x),s(y)) -> mod#(s(y),s(x)) gcd#(s(x),s(y)) -> mod#(s(x),s(y)) gcd#(s(x),s(y)) -> gcd#(mod(s(x),s(y)),mod(s(y),s(x))) lt#(s(x),s(y)) -> lt#(x,y) TRS: lt(0(),s(x)) -> true() lt(s(x),s(y)) -> lt(x,y) lt(x,0()) -> false() minus(0(),x) -> 0() minus(s(x),0()) -> s(x) minus(s(x),s(y)) -> minus(x,y) mod(x,s(y)) -> if(lt(x,s(y)),x,s(y)) if(true(),x,y) -> x if(false(),x,y) -> mod(minus(x,y),y) mod(x,0()) -> 0() Open