YES Problem 1: (VAR v_NonEmpty:S x:S y:S z:S) (RULES div(div(x:S,y:S),z:S) -> div(x:S,times(y:S,z:S)) div(0,y:S) -> 0 div(x:S,y:S) -> quot(x:S,y:S,y:S) divides(y:S,x:S) -> eq(x:S,times(div(x:S,y:S),y:S)) eq(0,0) -> ttrue eq(0,s(y:S)) -> ffalse eq(s(x:S),0) -> ffalse eq(s(x:S),s(y:S)) -> eq(x:S,y:S) if(ffalse,x:S,y:S) -> pr(x:S,y:S) if(ttrue,x:S,y:S) -> ffalse p(0) -> 0 p(s(x:S)) -> x:S plus(0,y:S) -> y:S plus(s(x:S),y:S) -> s(plus(p(s(x:S)),y:S)) plus(s(x:S),y:S) -> s(plus(x:S,y:S)) plus(x:S,0) -> x:S plus(x:S,s(y:S)) -> s(plus(x:S,p(s(y:S)))) pr(x:S,s(0)) -> ttrue pr(x:S,s(s(y:S))) -> if(divides(s(s(y:S)),x:S),x:S,s(y:S)) prime(s(s(x:S))) -> pr(s(s(x:S)),s(x:S)) quot(0,s(y:S),z:S) -> 0 quot(s(x:S),s(y:S),z:S) -> quot(x:S,y:S,z:S) quot(x:S,0,s(z:S)) -> s(div(x:S,s(z:S))) times(0,y:S) -> 0 times(s(0),y:S) -> y:S times(s(x:S),y:S) -> plus(y:S,times(x:S,y:S)) ) Problem 1: Dependency Pairs Processor: -> Pairs: DIV(div(x:S,y:S),z:S) -> DIV(x:S,times(y:S,z:S)) DIV(div(x:S,y:S),z:S) -> TIMES(y:S,z:S) DIV(x:S,y:S) -> QUOT(x:S,y:S,y:S) DIVIDES(y:S,x:S) -> DIV(x:S,y:S) DIVIDES(y:S,x:S) -> EQ(x:S,times(div(x:S,y:S),y:S)) DIVIDES(y:S,x:S) -> TIMES(div(x:S,y:S),y:S) EQ(s(x:S),s(y:S)) -> EQ(x:S,y:S) IF(ffalse,x:S,y:S) -> PR(x:S,y:S) PLUS(s(x:S),y:S) -> P(s(x:S)) PLUS(s(x:S),y:S) -> PLUS(p(s(x:S)),y:S) PLUS(s(x:S),y:S) -> PLUS(x:S,y:S) PLUS(x:S,s(y:S)) -> P(s(y:S)) PLUS(x:S,s(y:S)) -> PLUS(x:S,p(s(y:S))) PR(x:S,s(s(y:S))) -> DIVIDES(s(s(y:S)),x:S) PR(x:S,s(s(y:S))) -> IF(divides(s(s(y:S)),x:S),x:S,s(y:S)) PRIME(s(s(x:S))) -> PR(s(s(x:S)),s(x:S)) QUOT(s(x:S),s(y:S),z:S) -> QUOT(x:S,y:S,z:S) QUOT(x:S,0,s(z:S)) -> DIV(x:S,s(z:S)) TIMES(s(x:S),y:S) -> PLUS(y:S,times(x:S,y:S)) TIMES(s(x:S),y:S) -> TIMES(x:S,y:S) -> Rules: div(div(x:S,y:S),z:S) -> div(x:S,times(y:S,z:S)) div(0,y:S) -> 0 div(x:S,y:S) -> quot(x:S,y:S,y:S) divides(y:S,x:S) -> eq(x:S,times(div(x:S,y:S),y:S)) eq(0,0) -> ttrue eq(0,s(y:S)) -> ffalse eq(s(x:S),0) -> ffalse eq(s(x:S),s(y:S)) -> eq(x:S,y:S) if(ffalse,x:S,y:S) -> pr(x:S,y:S) if(ttrue,x:S,y:S) -> ffalse p(0) -> 0 p(s(x:S)) -> x:S plus(0,y:S) -> y:S plus(s(x:S),y:S) -> s(plus(p(s(x:S)),y:S)) plus(s(x:S),y:S) -> s(plus(x:S,y:S)) plus(x:S,0) -> x:S plus(x:S,s(y:S)) -> s(plus(x:S,p(s(y:S)))) pr(x:S,s(0)) -> ttrue pr(x:S,s(s(y:S))) -> if(divides(s(s(y:S)),x:S),x:S,s(y:S)) prime(s(s(x:S))) -> pr(s(s(x:S)),s(x:S)) quot(0,s(y:S),z:S) -> 0 quot(s(x:S),s(y:S),z:S) -> quot(x:S,y:S,z:S) quot(x:S,0,s(z:S)) -> s(div(x:S,s(z:S))) times(0,y:S) -> 0 times(s(0),y:S) -> y:S times(s(x:S),y:S) -> plus(y:S,times(x:S,y:S)) Problem 1: SCC Processor: -> Pairs: DIV(div(x:S,y:S),z:S) -> DIV(x:S,times(y:S,z:S)) DIV(div(x:S,y:S),z:S) -> TIMES(y:S,z:S) DIV(x:S,y:S) -> QUOT(x:S,y:S,y:S) DIVIDES(y:S,x:S) -> DIV(x:S,y:S) DIVIDES(y:S,x:S) -> EQ(x:S,times(div(x:S,y:S),y:S)) DIVIDES(y:S,x:S) -> TIMES(div(x:S,y:S),y:S) EQ(s(x:S),s(y:S)) -> EQ(x:S,y:S) IF(ffalse,x:S,y:S) -> PR(x:S,y:S) PLUS(s(x:S),y:S) -> P(s(x:S)) PLUS(s(x:S),y:S) -> PLUS(p(s(x:S)),y:S) PLUS(s(x:S),y:S) -> PLUS(x:S,y:S) PLUS(x:S,s(y:S)) -> P(s(y:S)) PLUS(x:S,s(y:S)) -> PLUS(x:S,p(s(y:S))) PR(x:S,s(s(y:S))) -> DIVIDES(s(s(y:S)),x:S) PR(x:S,s(s(y:S))) -> IF(divides(s(s(y:S)),x:S),x:S,s(y:S)) PRIME(s(s(x:S))) -> PR(s(s(x:S)),s(x:S)) QUOT(s(x:S),s(y:S),z:S) -> QUOT(x:S,y:S,z:S) QUOT(x:S,0,s(z:S)) -> DIV(x:S,s(z:S)) TIMES(s(x:S),y:S) -> PLUS(y:S,times(x:S,y:S)) TIMES(s(x:S),y:S) -> TIMES(x:S,y:S) -> Rules: div(div(x:S,y:S),z:S) -> div(x:S,times(y:S,z:S)) div(0,y:S) -> 0 div(x:S,y:S) -> quot(x:S,y:S,y:S) divides(y:S,x:S) -> eq(x:S,times(div(x:S,y:S),y:S)) eq(0,0) -> ttrue eq(0,s(y:S)) -> ffalse eq(s(x:S),0) -> ffalse eq(s(x:S),s(y:S)) -> eq(x:S,y:S) if(ffalse,x:S,y:S) -> pr(x:S,y:S) if(ttrue,x:S,y:S) -> ffalse p(0) -> 0 p(s(x:S)) -> x:S plus(0,y:S) -> y:S plus(s(x:S),y:S) -> s(plus(p(s(x:S)),y:S)) plus(s(x:S),y:S) -> s(plus(x:S,y:S)) plus(x:S,0) -> x:S plus(x:S,s(y:S)) -> s(plus(x:S,p(s(y:S)))) pr(x:S,s(0)) -> ttrue pr(x:S,s(s(y:S))) -> if(divides(s(s(y:S)),x:S),x:S,s(y:S)) prime(s(s(x:S))) -> pr(s(s(x:S)),s(x:S)) quot(0,s(y:S),z:S) -> 0 quot(s(x:S),s(y:S),z:S) -> quot(x:S,y:S,z:S) quot(x:S,0,s(z:S)) -> s(div(x:S,s(z:S))) times(0,y:S) -> 0 times(s(0),y:S) -> y:S times(s(x:S),y:S) -> plus(y:S,times(x:S,y:S)) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: PLUS(s(x:S),y:S) -> PLUS(p(s(x:S)),y:S) PLUS(s(x:S),y:S) -> PLUS(x:S,y:S) PLUS(x:S,s(y:S)) -> PLUS(x:S,p(s(y:S))) ->->-> Rules: div(div(x:S,y:S),z:S) -> div(x:S,times(y:S,z:S)) div(0,y:S) -> 0 div(x:S,y:S) -> quot(x:S,y:S,y:S) divides(y:S,x:S) -> eq(x:S,times(div(x:S,y:S),y:S)) eq(0,0) -> ttrue eq(0,s(y:S)) -> ffalse eq(s(x:S),0) -> ffalse eq(s(x:S),s(y:S)) -> eq(x:S,y:S) if(ffalse,x:S,y:S) -> pr(x:S,y:S) if(ttrue,x:S,y:S) -> ffalse p(0) -> 0 p(s(x:S)) -> x:S plus(0,y:S) -> y:S plus(s(x:S),y:S) -> s(plus(p(s(x:S)),y:S)) plus(s(x:S),y:S) -> s(plus(x:S,y:S)) plus(x:S,0) -> x:S plus(x:S,s(y:S)) -> s(plus(x:S,p(s(y:S)))) pr(x:S,s(0)) -> ttrue pr(x:S,s(s(y:S))) -> if(divides(s(s(y:S)),x:S),x:S,s(y:S)) prime(s(s(x:S))) -> pr(s(s(x:S)),s(x:S)) quot(0,s(y:S),z:S) -> 0 quot(s(x:S),s(y:S),z:S) -> quot(x:S,y:S,z:S) quot(x:S,0,s(z:S)) -> s(div(x:S,s(z:S))) times(0,y:S) -> 0 times(s(0),y:S) -> y:S times(s(x:S),y:S) -> plus(y:S,times(x:S,y:S)) ->->Cycle: ->->-> Pairs: TIMES(s(x:S),y:S) -> TIMES(x:S,y:S) ->->-> Rules: div(div(x:S,y:S),z:S) -> div(x:S,times(y:S,z:S)) div(0,y:S) -> 0 div(x:S,y:S) -> quot(x:S,y:S,y:S) divides(y:S,x:S) -> eq(x:S,times(div(x:S,y:S),y:S)) eq(0,0) -> ttrue eq(0,s(y:S)) -> ffalse eq(s(x:S),0) -> ffalse eq(s(x:S),s(y:S)) -> eq(x:S,y:S) if(ffalse,x:S,y:S) -> pr(x:S,y:S) if(ttrue,x:S,y:S) -> ffalse p(0) -> 0 p(s(x:S)) -> x:S plus(0,y:S) -> y:S plus(s(x:S),y:S) -> s(plus(p(s(x:S)),y:S)) plus(s(x:S),y:S) -> s(plus(x:S,y:S)) plus(x:S,0) -> x:S plus(x:S,s(y:S)) -> s(plus(x:S,p(s(y:S)))) pr(x:S,s(0)) -> ttrue pr(x:S,s(s(y:S))) -> if(divides(s(s(y:S)),x:S),x:S,s(y:S)) prime(s(s(x:S))) -> pr(s(s(x:S)),s(x:S)) quot(0,s(y:S),z:S) -> 0 quot(s(x:S),s(y:S),z:S) -> quot(x:S,y:S,z:S) quot(x:S,0,s(z:S)) -> s(div(x:S,s(z:S))) times(0,y:S) -> 0 times(s(0),y:S) -> y:S times(s(x:S),y:S) -> plus(y:S,times(x:S,y:S)) ->->Cycle: ->->-> Pairs: EQ(s(x:S),s(y:S)) -> EQ(x:S,y:S) ->->-> Rules: div(div(x:S,y:S),z:S) -> div(x:S,times(y:S,z:S)) div(0,y:S) -> 0 div(x:S,y:S) -> quot(x:S,y:S,y:S) divides(y:S,x:S) -> eq(x:S,times(div(x:S,y:S),y:S)) eq(0,0) -> ttrue eq(0,s(y:S)) -> ffalse eq(s(x:S),0) -> ffalse eq(s(x:S),s(y:S)) -> eq(x:S,y:S) if(ffalse,x:S,y:S) -> pr(x:S,y:S) if(ttrue,x:S,y:S) -> ffalse p(0) -> 0 p(s(x:S)) -> x:S plus(0,y:S) -> y:S plus(s(x:S),y:S) -> s(plus(p(s(x:S)),y:S)) plus(s(x:S),y:S) -> s(plus(x:S,y:S)) plus(x:S,0) -> x:S plus(x:S,s(y:S)) -> s(plus(x:S,p(s(y:S)))) pr(x:S,s(0)) -> ttrue pr(x:S,s(s(y:S))) -> if(divides(s(s(y:S)),x:S),x:S,s(y:S)) prime(s(s(x:S))) -> pr(s(s(x:S)),s(x:S)) quot(0,s(y:S),z:S) -> 0 quot(s(x:S),s(y:S),z:S) -> quot(x:S,y:S,z:S) quot(x:S,0,s(z:S)) -> s(div(x:S,s(z:S))) times(0,y:S) -> 0 times(s(0),y:S) -> y:S times(s(x:S),y:S) -> plus(y:S,times(x:S,y:S)) ->->Cycle: ->->-> Pairs: DIV(div(x:S,y:S),z:S) -> DIV(x:S,times(y:S,z:S)) DIV(x:S,y:S) -> QUOT(x:S,y:S,y:S) QUOT(s(x:S),s(y:S),z:S) -> QUOT(x:S,y:S,z:S) QUOT(x:S,0,s(z:S)) -> DIV(x:S,s(z:S)) ->->-> Rules: div(div(x:S,y:S),z:S) -> div(x:S,times(y:S,z:S)) div(0,y:S) -> 0 div(x:S,y:S) -> quot(x:S,y:S,y:S) divides(y:S,x:S) -> eq(x:S,times(div(x:S,y:S),y:S)) eq(0,0) -> ttrue eq(0,s(y:S)) -> ffalse eq(s(x:S),0) -> ffalse eq(s(x:S),s(y:S)) -> eq(x:S,y:S) if(ffalse,x:S,y:S) -> pr(x:S,y:S) if(ttrue,x:S,y:S) -> ffalse p(0) -> 0 p(s(x:S)) -> x:S plus(0,y:S) -> y:S plus(s(x:S),y:S) -> s(plus(p(s(x:S)),y:S)) plus(s(x:S),y:S) -> s(plus(x:S,y:S)) plus(x:S,0) -> x:S plus(x:S,s(y:S)) -> s(plus(x:S,p(s(y:S)))) pr(x:S,s(0)) -> ttrue pr(x:S,s(s(y:S))) -> if(divides(s(s(y:S)),x:S),x:S,s(y:S)) prime(s(s(x:S))) -> pr(s(s(x:S)),s(x:S)) quot(0,s(y:S),z:S) -> 0 quot(s(x:S),s(y:S),z:S) -> quot(x:S,y:S,z:S) quot(x:S,0,s(z:S)) -> s(div(x:S,s(z:S))) times(0,y:S) -> 0 times(s(0),y:S) -> y:S times(s(x:S),y:S) -> plus(y:S,times(x:S,y:S)) ->->Cycle: ->->-> Pairs: IF(ffalse,x:S,y:S) -> PR(x:S,y:S) PR(x:S,s(s(y:S))) -> IF(divides(s(s(y:S)),x:S),x:S,s(y:S)) ->->-> Rules: div(div(x:S,y:S),z:S) -> div(x:S,times(y:S,z:S)) div(0,y:S) -> 0 div(x:S,y:S) -> quot(x:S,y:S,y:S) divides(y:S,x:S) -> eq(x:S,times(div(x:S,y:S),y:S)) eq(0,0) -> ttrue eq(0,s(y:S)) -> ffalse eq(s(x:S),0) -> ffalse eq(s(x:S),s(y:S)) -> eq(x:S,y:S) if(ffalse,x:S,y:S) -> pr(x:S,y:S) if(ttrue,x:S,y:S) -> ffalse p(0) -> 0 p(s(x:S)) -> x:S plus(0,y:S) -> y:S plus(s(x:S),y:S) -> s(plus(p(s(x:S)),y:S)) plus(s(x:S),y:S) -> s(plus(x:S,y:S)) plus(x:S,0) -> x:S plus(x:S,s(y:S)) -> s(plus(x:S,p(s(y:S)))) pr(x:S,s(0)) -> ttrue pr(x:S,s(s(y:S))) -> if(divides(s(s(y:S)),x:S),x:S,s(y:S)) prime(s(s(x:S))) -> pr(s(s(x:S)),s(x:S)) quot(0,s(y:S),z:S) -> 0 quot(s(x:S),s(y:S),z:S) -> quot(x:S,y:S,z:S) quot(x:S,0,s(z:S)) -> s(div(x:S,s(z:S))) times(0,y:S) -> 0 times(s(0),y:S) -> y:S times(s(x:S),y:S) -> plus(y:S,times(x:S,y:S)) The problem is decomposed in 5 subproblems. Problem 1.1: Reduction Pair Processor: -> Pairs: PLUS(s(x:S),y:S) -> PLUS(p(s(x:S)),y:S) PLUS(s(x:S),y:S) -> PLUS(x:S,y:S) PLUS(x:S,s(y:S)) -> PLUS(x:S,p(s(y:S))) -> Rules: div(div(x:S,y:S),z:S) -> div(x:S,times(y:S,z:S)) div(0,y:S) -> 0 div(x:S,y:S) -> quot(x:S,y:S,y:S) divides(y:S,x:S) -> eq(x:S,times(div(x:S,y:S),y:S)) eq(0,0) -> ttrue eq(0,s(y:S)) -> ffalse eq(s(x:S),0) -> ffalse eq(s(x:S),s(y:S)) -> eq(x:S,y:S) if(ffalse,x:S,y:S) -> pr(x:S,y:S) if(ttrue,x:S,y:S) -> ffalse p(0) -> 0 p(s(x:S)) -> x:S plus(0,y:S) -> y:S plus(s(x:S),y:S) -> s(plus(p(s(x:S)),y:S)) plus(s(x:S),y:S) -> s(plus(x:S,y:S)) plus(x:S,0) -> x:S plus(x:S,s(y:S)) -> s(plus(x:S,p(s(y:S)))) pr(x:S,s(0)) -> ttrue pr(x:S,s(s(y:S))) -> if(divides(s(s(y:S)),x:S),x:S,s(y:S)) prime(s(s(x:S))) -> pr(s(s(x:S)),s(x:S)) quot(0,s(y:S),z:S) -> 0 quot(s(x:S),s(y:S),z:S) -> quot(x:S,y:S,z:S) quot(x:S,0,s(z:S)) -> s(div(x:S,s(z:S))) times(0,y:S) -> 0 times(s(0),y:S) -> y:S times(s(x:S),y:S) -> plus(y:S,times(x:S,y:S)) -> Usable rules: p(0) -> 0 p(s(x:S)) -> x:S ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [p](X) = X [0] = 1 [s](X) = 2.X + 2 [PLUS](X1,X2) = 2.X1 + 2.X2 Problem 1.1: SCC Processor: -> Pairs: PLUS(s(x:S),y:S) -> PLUS(p(s(x:S)),y:S) PLUS(x:S,s(y:S)) -> PLUS(x:S,p(s(y:S))) -> Rules: div(div(x:S,y:S),z:S) -> div(x:S,times(y:S,z:S)) div(0,y:S) -> 0 div(x:S,y:S) -> quot(x:S,y:S,y:S) divides(y:S,x:S) -> eq(x:S,times(div(x:S,y:S),y:S)) eq(0,0) -> ttrue eq(0,s(y:S)) -> ffalse eq(s(x:S),0) -> ffalse eq(s(x:S),s(y:S)) -> eq(x:S,y:S) if(ffalse,x:S,y:S) -> pr(x:S,y:S) if(ttrue,x:S,y:S) -> ffalse p(0) -> 0 p(s(x:S)) -> x:S plus(0,y:S) -> y:S plus(s(x:S),y:S) -> s(plus(p(s(x:S)),y:S)) plus(s(x:S),y:S) -> s(plus(x:S,y:S)) plus(x:S,0) -> x:S plus(x:S,s(y:S)) -> s(plus(x:S,p(s(y:S)))) pr(x:S,s(0)) -> ttrue pr(x:S,s(s(y:S))) -> if(divides(s(s(y:S)),x:S),x:S,s(y:S)) prime(s(s(x:S))) -> pr(s(s(x:S)),s(x:S)) quot(0,s(y:S),z:S) -> 0 quot(s(x:S),s(y:S),z:S) -> quot(x:S,y:S,z:S) quot(x:S,0,s(z:S)) -> s(div(x:S,s(z:S))) times(0,y:S) -> 0 times(s(0),y:S) -> y:S times(s(x:S),y:S) -> plus(y:S,times(x:S,y:S)) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: PLUS(s(x:S),y:S) -> PLUS(p(s(x:S)),y:S) PLUS(x:S,s(y:S)) -> PLUS(x:S,p(s(y:S))) ->->-> Rules: div(div(x:S,y:S),z:S) -> div(x:S,times(y:S,z:S)) div(0,y:S) -> 0 div(x:S,y:S) -> quot(x:S,y:S,y:S) divides(y:S,x:S) -> eq(x:S,times(div(x:S,y:S),y:S)) eq(0,0) -> ttrue eq(0,s(y:S)) -> ffalse eq(s(x:S),0) -> ffalse eq(s(x:S),s(y:S)) -> eq(x:S,y:S) if(ffalse,x:S,y:S) -> pr(x:S,y:S) if(ttrue,x:S,y:S) -> ffalse p(0) -> 0 p(s(x:S)) -> x:S plus(0,y:S) -> y:S plus(s(x:S),y:S) -> s(plus(p(s(x:S)),y:S)) plus(s(x:S),y:S) -> s(plus(x:S,y:S)) plus(x:S,0) -> x:S plus(x:S,s(y:S)) -> s(plus(x:S,p(s(y:S)))) pr(x:S,s(0)) -> ttrue pr(x:S,s(s(y:S))) -> if(divides(s(s(y:S)),x:S),x:S,s(y:S)) prime(s(s(x:S))) -> pr(s(s(x:S)),s(x:S)) quot(0,s(y:S),z:S) -> 0 quot(s(x:S),s(y:S),z:S) -> quot(x:S,y:S,z:S) quot(x:S,0,s(z:S)) -> s(div(x:S,s(z:S))) times(0,y:S) -> 0 times(s(0),y:S) -> y:S times(s(x:S),y:S) -> plus(y:S,times(x:S,y:S)) Problem 1.1: Reduction Pair Processor: -> Pairs: PLUS(s(x:S),y:S) -> PLUS(p(s(x:S)),y:S) PLUS(x:S,s(y:S)) -> PLUS(x:S,p(s(y:S))) -> Rules: div(div(x:S,y:S),z:S) -> div(x:S,times(y:S,z:S)) div(0,y:S) -> 0 div(x:S,y:S) -> quot(x:S,y:S,y:S) divides(y:S,x:S) -> eq(x:S,times(div(x:S,y:S),y:S)) eq(0,0) -> ttrue eq(0,s(y:S)) -> ffalse eq(s(x:S),0) -> ffalse eq(s(x:S),s(y:S)) -> eq(x:S,y:S) if(ffalse,x:S,y:S) -> pr(x:S,y:S) if(ttrue,x:S,y:S) -> ffalse p(0) -> 0 p(s(x:S)) -> x:S plus(0,y:S) -> y:S plus(s(x:S),y:S) -> s(plus(p(s(x:S)),y:S)) plus(s(x:S),y:S) -> s(plus(x:S,y:S)) plus(x:S,0) -> x:S plus(x:S,s(y:S)) -> s(plus(x:S,p(s(y:S)))) pr(x:S,s(0)) -> ttrue pr(x:S,s(s(y:S))) -> if(divides(s(s(y:S)),x:S),x:S,s(y:S)) prime(s(s(x:S))) -> pr(s(s(x:S)),s(x:S)) quot(0,s(y:S),z:S) -> 0 quot(s(x:S),s(y:S),z:S) -> quot(x:S,y:S,z:S) quot(x:S,0,s(z:S)) -> s(div(x:S,s(z:S))) times(0,y:S) -> 0 times(s(0),y:S) -> y:S times(s(x:S),y:S) -> plus(y:S,times(x:S,y:S)) -> Usable rules: p(0) -> 0 p(s(x:S)) -> x:S ->Interpretation type: Linear ->Coefficients: All rationals ->Dimension: 1 ->Bound: 2 ->Interpretation: [p](X) = 1/2.X [0] = 0 [s](X) = 2.X + 1/2 [PLUS](X1,X2) = 2.X1 Problem 1.1: SCC Processor: -> Pairs: PLUS(x:S,s(y:S)) -> PLUS(x:S,p(s(y:S))) -> Rules: div(div(x:S,y:S),z:S) -> div(x:S,times(y:S,z:S)) div(0,y:S) -> 0 div(x:S,y:S) -> quot(x:S,y:S,y:S) divides(y:S,x:S) -> eq(x:S,times(div(x:S,y:S),y:S)) eq(0,0) -> ttrue eq(0,s(y:S)) -> ffalse eq(s(x:S),0) -> ffalse eq(s(x:S),s(y:S)) -> eq(x:S,y:S) if(ffalse,x:S,y:S) -> pr(x:S,y:S) if(ttrue,x:S,y:S) -> ffalse p(0) -> 0 p(s(x:S)) -> x:S plus(0,y:S) -> y:S plus(s(x:S),y:S) -> s(plus(p(s(x:S)),y:S)) plus(s(x:S),y:S) -> s(plus(x:S,y:S)) plus(x:S,0) -> x:S plus(x:S,s(y:S)) -> s(plus(x:S,p(s(y:S)))) pr(x:S,s(0)) -> ttrue pr(x:S,s(s(y:S))) -> if(divides(s(s(y:S)),x:S),x:S,s(y:S)) prime(s(s(x:S))) -> pr(s(s(x:S)),s(x:S)) quot(0,s(y:S),z:S) -> 0 quot(s(x:S),s(y:S),z:S) -> quot(x:S,y:S,z:S) quot(x:S,0,s(z:S)) -> s(div(x:S,s(z:S))) times(0,y:S) -> 0 times(s(0),y:S) -> y:S times(s(x:S),y:S) -> plus(y:S,times(x:S,y:S)) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: PLUS(x:S,s(y:S)) -> PLUS(x:S,p(s(y:S))) ->->-> Rules: div(div(x:S,y:S),z:S) -> div(x:S,times(y:S,z:S)) div(0,y:S) -> 0 div(x:S,y:S) -> quot(x:S,y:S,y:S) divides(y:S,x:S) -> eq(x:S,times(div(x:S,y:S),y:S)) eq(0,0) -> ttrue eq(0,s(y:S)) -> ffalse eq(s(x:S),0) -> ffalse eq(s(x:S),s(y:S)) -> eq(x:S,y:S) if(ffalse,x:S,y:S) -> pr(x:S,y:S) if(ttrue,x:S,y:S) -> ffalse p(0) -> 0 p(s(x:S)) -> x:S plus(0,y:S) -> y:S plus(s(x:S),y:S) -> s(plus(p(s(x:S)),y:S)) plus(s(x:S),y:S) -> s(plus(x:S,y:S)) plus(x:S,0) -> x:S plus(x:S,s(y:S)) -> s(plus(x:S,p(s(y:S)))) pr(x:S,s(0)) -> ttrue pr(x:S,s(s(y:S))) -> if(divides(s(s(y:S)),x:S),x:S,s(y:S)) prime(s(s(x:S))) -> pr(s(s(x:S)),s(x:S)) quot(0,s(y:S),z:S) -> 0 quot(s(x:S),s(y:S),z:S) -> quot(x:S,y:S,z:S) quot(x:S,0,s(z:S)) -> s(div(x:S,s(z:S))) times(0,y:S) -> 0 times(s(0),y:S) -> y:S times(s(x:S),y:S) -> plus(y:S,times(x:S,y:S)) Problem 1.1: Reduction Pair Processor: -> Pairs: PLUS(x:S,s(y:S)) -> PLUS(x:S,p(s(y:S))) -> Rules: div(div(x:S,y:S),z:S) -> div(x:S,times(y:S,z:S)) div(0,y:S) -> 0 div(x:S,y:S) -> quot(x:S,y:S,y:S) divides(y:S,x:S) -> eq(x:S,times(div(x:S,y:S),y:S)) eq(0,0) -> ttrue eq(0,s(y:S)) -> ffalse eq(s(x:S),0) -> ffalse eq(s(x:S),s(y:S)) -> eq(x:S,y:S) if(ffalse,x:S,y:S) -> pr(x:S,y:S) if(ttrue,x:S,y:S) -> ffalse p(0) -> 0 p(s(x:S)) -> x:S plus(0,y:S) -> y:S plus(s(x:S),y:S) -> s(plus(p(s(x:S)),y:S)) plus(s(x:S),y:S) -> s(plus(x:S,y:S)) plus(x:S,0) -> x:S plus(x:S,s(y:S)) -> s(plus(x:S,p(s(y:S)))) pr(x:S,s(0)) -> ttrue pr(x:S,s(s(y:S))) -> if(divides(s(s(y:S)),x:S),x:S,s(y:S)) prime(s(s(x:S))) -> pr(s(s(x:S)),s(x:S)) quot(0,s(y:S),z:S) -> 0 quot(s(x:S),s(y:S),z:S) -> quot(x:S,y:S,z:S) quot(x:S,0,s(z:S)) -> s(div(x:S,s(z:S))) times(0,y:S) -> 0 times(s(0),y:S) -> y:S times(s(x:S),y:S) -> plus(y:S,times(x:S,y:S)) -> Usable rules: p(0) -> 0 p(s(x:S)) -> x:S ->Interpretation type: Linear ->Coefficients: All rationals ->Dimension: 1 ->Bound: 2 ->Interpretation: [p](X) = 1/2.X + 1/2 [0] = 1/2 [s](X) = 2.X + 2 [PLUS](X1,X2) = 2.X2 Problem 1.1: SCC Processor: -> Pairs: Empty -> Rules: div(div(x:S,y:S),z:S) -> div(x:S,times(y:S,z:S)) div(0,y:S) -> 0 div(x:S,y:S) -> quot(x:S,y:S,y:S) divides(y:S,x:S) -> eq(x:S,times(div(x:S,y:S),y:S)) eq(0,0) -> ttrue eq(0,s(y:S)) -> ffalse eq(s(x:S),0) -> ffalse eq(s(x:S),s(y:S)) -> eq(x:S,y:S) if(ffalse,x:S,y:S) -> pr(x:S,y:S) if(ttrue,x:S,y:S) -> ffalse p(0) -> 0 p(s(x:S)) -> x:S plus(0,y:S) -> y:S plus(s(x:S),y:S) -> s(plus(p(s(x:S)),y:S)) plus(s(x:S),y:S) -> s(plus(x:S,y:S)) plus(x:S,0) -> x:S plus(x:S,s(y:S)) -> s(plus(x:S,p(s(y:S)))) pr(x:S,s(0)) -> ttrue pr(x:S,s(s(y:S))) -> if(divides(s(s(y:S)),x:S),x:S,s(y:S)) prime(s(s(x:S))) -> pr(s(s(x:S)),s(x:S)) quot(0,s(y:S),z:S) -> 0 quot(s(x:S),s(y:S),z:S) -> quot(x:S,y:S,z:S) quot(x:S,0,s(z:S)) -> s(div(x:S,s(z:S))) times(0,y:S) -> 0 times(s(0),y:S) -> y:S times(s(x:S),y:S) -> plus(y:S,times(x:S,y:S)) ->Strongly Connected Components: There is no strongly connected component The problem is finite. Problem 1.2: Subterm Processor: -> Pairs: TIMES(s(x:S),y:S) -> TIMES(x:S,y:S) -> Rules: div(div(x:S,y:S),z:S) -> div(x:S,times(y:S,z:S)) div(0,y:S) -> 0 div(x:S,y:S) -> quot(x:S,y:S,y:S) divides(y:S,x:S) -> eq(x:S,times(div(x:S,y:S),y:S)) eq(0,0) -> ttrue eq(0,s(y:S)) -> ffalse eq(s(x:S),0) -> ffalse eq(s(x:S),s(y:S)) -> eq(x:S,y:S) if(ffalse,x:S,y:S) -> pr(x:S,y:S) if(ttrue,x:S,y:S) -> ffalse p(0) -> 0 p(s(x:S)) -> x:S plus(0,y:S) -> y:S plus(s(x:S),y:S) -> s(plus(p(s(x:S)),y:S)) plus(s(x:S),y:S) -> s(plus(x:S,y:S)) plus(x:S,0) -> x:S plus(x:S,s(y:S)) -> s(plus(x:S,p(s(y:S)))) pr(x:S,s(0)) -> ttrue pr(x:S,s(s(y:S))) -> if(divides(s(s(y:S)),x:S),x:S,s(y:S)) prime(s(s(x:S))) -> pr(s(s(x:S)),s(x:S)) quot(0,s(y:S),z:S) -> 0 quot(s(x:S),s(y:S),z:S) -> quot(x:S,y:S,z:S) quot(x:S,0,s(z:S)) -> s(div(x:S,s(z:S))) times(0,y:S) -> 0 times(s(0),y:S) -> y:S times(s(x:S),y:S) -> plus(y:S,times(x:S,y:S)) ->Projection: pi(TIMES) = 1 Problem 1.2: SCC Processor: -> Pairs: Empty -> Rules: div(div(x:S,y:S),z:S) -> div(x:S,times(y:S,z:S)) div(0,y:S) -> 0 div(x:S,y:S) -> quot(x:S,y:S,y:S) divides(y:S,x:S) -> eq(x:S,times(div(x:S,y:S),y:S)) eq(0,0) -> ttrue eq(0,s(y:S)) -> ffalse eq(s(x:S),0) -> ffalse eq(s(x:S),s(y:S)) -> eq(x:S,y:S) if(ffalse,x:S,y:S) -> pr(x:S,y:S) if(ttrue,x:S,y:S) -> ffalse p(0) -> 0 p(s(x:S)) -> x:S plus(0,y:S) -> y:S plus(s(x:S),y:S) -> s(plus(p(s(x:S)),y:S)) plus(s(x:S),y:S) -> s(plus(x:S,y:S)) plus(x:S,0) -> x:S plus(x:S,s(y:S)) -> s(plus(x:S,p(s(y:S)))) pr(x:S,s(0)) -> ttrue pr(x:S,s(s(y:S))) -> if(divides(s(s(y:S)),x:S),x:S,s(y:S)) prime(s(s(x:S))) -> pr(s(s(x:S)),s(x:S)) quot(0,s(y:S),z:S) -> 0 quot(s(x:S),s(y:S),z:S) -> quot(x:S,y:S,z:S) quot(x:S,0,s(z:S)) -> s(div(x:S,s(z:S))) times(0,y:S) -> 0 times(s(0),y:S) -> y:S times(s(x:S),y:S) -> plus(y:S,times(x:S,y:S)) ->Strongly Connected Components: There is no strongly connected component The problem is finite. Problem 1.3: Subterm Processor: -> Pairs: EQ(s(x:S),s(y:S)) -> EQ(x:S,y:S) -> Rules: div(div(x:S,y:S),z:S) -> div(x:S,times(y:S,z:S)) div(0,y:S) -> 0 div(x:S,y:S) -> quot(x:S,y:S,y:S) divides(y:S,x:S) -> eq(x:S,times(div(x:S,y:S),y:S)) eq(0,0) -> ttrue eq(0,s(y:S)) -> ffalse eq(s(x:S),0) -> ffalse eq(s(x:S),s(y:S)) -> eq(x:S,y:S) if(ffalse,x:S,y:S) -> pr(x:S,y:S) if(ttrue,x:S,y:S) -> ffalse p(0) -> 0 p(s(x:S)) -> x:S plus(0,y:S) -> y:S plus(s(x:S),y:S) -> s(plus(p(s(x:S)),y:S)) plus(s(x:S),y:S) -> s(plus(x:S,y:S)) plus(x:S,0) -> x:S plus(x:S,s(y:S)) -> s(plus(x:S,p(s(y:S)))) pr(x:S,s(0)) -> ttrue pr(x:S,s(s(y:S))) -> if(divides(s(s(y:S)),x:S),x:S,s(y:S)) prime(s(s(x:S))) -> pr(s(s(x:S)),s(x:S)) quot(0,s(y:S),z:S) -> 0 quot(s(x:S),s(y:S),z:S) -> quot(x:S,y:S,z:S) quot(x:S,0,s(z:S)) -> s(div(x:S,s(z:S))) times(0,y:S) -> 0 times(s(0),y:S) -> y:S times(s(x:S),y:S) -> plus(y:S,times(x:S,y:S)) ->Projection: pi(EQ) = 1 Problem 1.3: SCC Processor: -> Pairs: Empty -> Rules: div(div(x:S,y:S),z:S) -> div(x:S,times(y:S,z:S)) div(0,y:S) -> 0 div(x:S,y:S) -> quot(x:S,y:S,y:S) divides(y:S,x:S) -> eq(x:S,times(div(x:S,y:S),y:S)) eq(0,0) -> ttrue eq(0,s(y:S)) -> ffalse eq(s(x:S),0) -> ffalse eq(s(x:S),s(y:S)) -> eq(x:S,y:S) if(ffalse,x:S,y:S) -> pr(x:S,y:S) if(ttrue,x:S,y:S) -> ffalse p(0) -> 0 p(s(x:S)) -> x:S plus(0,y:S) -> y:S plus(s(x:S),y:S) -> s(plus(p(s(x:S)),y:S)) plus(s(x:S),y:S) -> s(plus(x:S,y:S)) plus(x:S,0) -> x:S plus(x:S,s(y:S)) -> s(plus(x:S,p(s(y:S)))) pr(x:S,s(0)) -> ttrue pr(x:S,s(s(y:S))) -> if(divides(s(s(y:S)),x:S),x:S,s(y:S)) prime(s(s(x:S))) -> pr(s(s(x:S)),s(x:S)) quot(0,s(y:S),z:S) -> 0 quot(s(x:S),s(y:S),z:S) -> quot(x:S,y:S,z:S) quot(x:S,0,s(z:S)) -> s(div(x:S,s(z:S))) times(0,y:S) -> 0 times(s(0),y:S) -> y:S times(s(x:S),y:S) -> plus(y:S,times(x:S,y:S)) ->Strongly Connected Components: There is no strongly connected component The problem is finite. Problem 1.4: Subterm Processor: -> Pairs: DIV(div(x:S,y:S),z:S) -> DIV(x:S,times(y:S,z:S)) DIV(x:S,y:S) -> QUOT(x:S,y:S,y:S) QUOT(s(x:S),s(y:S),z:S) -> QUOT(x:S,y:S,z:S) QUOT(x:S,0,s(z:S)) -> DIV(x:S,s(z:S)) -> Rules: div(div(x:S,y:S),z:S) -> div(x:S,times(y:S,z:S)) div(0,y:S) -> 0 div(x:S,y:S) -> quot(x:S,y:S,y:S) divides(y:S,x:S) -> eq(x:S,times(div(x:S,y:S),y:S)) eq(0,0) -> ttrue eq(0,s(y:S)) -> ffalse eq(s(x:S),0) -> ffalse eq(s(x:S),s(y:S)) -> eq(x:S,y:S) if(ffalse,x:S,y:S) -> pr(x:S,y:S) if(ttrue,x:S,y:S) -> ffalse p(0) -> 0 p(s(x:S)) -> x:S plus(0,y:S) -> y:S plus(s(x:S),y:S) -> s(plus(p(s(x:S)),y:S)) plus(s(x:S),y:S) -> s(plus(x:S,y:S)) plus(x:S,0) -> x:S plus(x:S,s(y:S)) -> s(plus(x:S,p(s(y:S)))) pr(x:S,s(0)) -> ttrue pr(x:S,s(s(y:S))) -> if(divides(s(s(y:S)),x:S),x:S,s(y:S)) prime(s(s(x:S))) -> pr(s(s(x:S)),s(x:S)) quot(0,s(y:S),z:S) -> 0 quot(s(x:S),s(y:S),z:S) -> quot(x:S,y:S,z:S) quot(x:S,0,s(z:S)) -> s(div(x:S,s(z:S))) times(0,y:S) -> 0 times(s(0),y:S) -> y:S times(s(x:S),y:S) -> plus(y:S,times(x:S,y:S)) ->Projection: pi(DIV) = 1 pi(QUOT) = 1 Problem 1.4: SCC Processor: -> Pairs: DIV(x:S,y:S) -> QUOT(x:S,y:S,y:S) QUOT(x:S,0,s(z:S)) -> DIV(x:S,s(z:S)) -> Rules: div(div(x:S,y:S),z:S) -> div(x:S,times(y:S,z:S)) div(0,y:S) -> 0 div(x:S,y:S) -> quot(x:S,y:S,y:S) divides(y:S,x:S) -> eq(x:S,times(div(x:S,y:S),y:S)) eq(0,0) -> ttrue eq(0,s(y:S)) -> ffalse eq(s(x:S),0) -> ffalse eq(s(x:S),s(y:S)) -> eq(x:S,y:S) if(ffalse,x:S,y:S) -> pr(x:S,y:S) if(ttrue,x:S,y:S) -> ffalse p(0) -> 0 p(s(x:S)) -> x:S plus(0,y:S) -> y:S plus(s(x:S),y:S) -> s(plus(p(s(x:S)),y:S)) plus(s(x:S),y:S) -> s(plus(x:S,y:S)) plus(x:S,0) -> x:S plus(x:S,s(y:S)) -> s(plus(x:S,p(s(y:S)))) pr(x:S,s(0)) -> ttrue pr(x:S,s(s(y:S))) -> if(divides(s(s(y:S)),x:S),x:S,s(y:S)) prime(s(s(x:S))) -> pr(s(s(x:S)),s(x:S)) quot(0,s(y:S),z:S) -> 0 quot(s(x:S),s(y:S),z:S) -> quot(x:S,y:S,z:S) quot(x:S,0,s(z:S)) -> s(div(x:S,s(z:S))) times(0,y:S) -> 0 times(s(0),y:S) -> y:S times(s(x:S),y:S) -> plus(y:S,times(x:S,y:S)) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: DIV(x:S,y:S) -> QUOT(x:S,y:S,y:S) QUOT(x:S,0,s(z:S)) -> DIV(x:S,s(z:S)) ->->-> Rules: div(div(x:S,y:S),z:S) -> div(x:S,times(y:S,z:S)) div(0,y:S) -> 0 div(x:S,y:S) -> quot(x:S,y:S,y:S) divides(y:S,x:S) -> eq(x:S,times(div(x:S,y:S),y:S)) eq(0,0) -> ttrue eq(0,s(y:S)) -> ffalse eq(s(x:S),0) -> ffalse eq(s(x:S),s(y:S)) -> eq(x:S,y:S) if(ffalse,x:S,y:S) -> pr(x:S,y:S) if(ttrue,x:S,y:S) -> ffalse p(0) -> 0 p(s(x:S)) -> x:S plus(0,y:S) -> y:S plus(s(x:S),y:S) -> s(plus(p(s(x:S)),y:S)) plus(s(x:S),y:S) -> s(plus(x:S,y:S)) plus(x:S,0) -> x:S plus(x:S,s(y:S)) -> s(plus(x:S,p(s(y:S)))) pr(x:S,s(0)) -> ttrue pr(x:S,s(s(y:S))) -> if(divides(s(s(y:S)),x:S),x:S,s(y:S)) prime(s(s(x:S))) -> pr(s(s(x:S)),s(x:S)) quot(0,s(y:S),z:S) -> 0 quot(s(x:S),s(y:S),z:S) -> quot(x:S,y:S,z:S) quot(x:S,0,s(z:S)) -> s(div(x:S,s(z:S))) times(0,y:S) -> 0 times(s(0),y:S) -> y:S times(s(x:S),y:S) -> plus(y:S,times(x:S,y:S)) Problem 1.4: Reduction Pair Processor: -> Pairs: DIV(x:S,y:S) -> QUOT(x:S,y:S,y:S) QUOT(x:S,0,s(z:S)) -> DIV(x:S,s(z:S)) -> Rules: div(div(x:S,y:S),z:S) -> div(x:S,times(y:S,z:S)) div(0,y:S) -> 0 div(x:S,y:S) -> quot(x:S,y:S,y:S) divides(y:S,x:S) -> eq(x:S,times(div(x:S,y:S),y:S)) eq(0,0) -> ttrue eq(0,s(y:S)) -> ffalse eq(s(x:S),0) -> ffalse eq(s(x:S),s(y:S)) -> eq(x:S,y:S) if(ffalse,x:S,y:S) -> pr(x:S,y:S) if(ttrue,x:S,y:S) -> ffalse p(0) -> 0 p(s(x:S)) -> x:S plus(0,y:S) -> y:S plus(s(x:S),y:S) -> s(plus(p(s(x:S)),y:S)) plus(s(x:S),y:S) -> s(plus(x:S,y:S)) plus(x:S,0) -> x:S plus(x:S,s(y:S)) -> s(plus(x:S,p(s(y:S)))) pr(x:S,s(0)) -> ttrue pr(x:S,s(s(y:S))) -> if(divides(s(s(y:S)),x:S),x:S,s(y:S)) prime(s(s(x:S))) -> pr(s(s(x:S)),s(x:S)) quot(0,s(y:S),z:S) -> 0 quot(s(x:S),s(y:S),z:S) -> quot(x:S,y:S,z:S) quot(x:S,0,s(z:S)) -> s(div(x:S,s(z:S))) times(0,y:S) -> 0 times(s(0),y:S) -> y:S times(s(x:S),y:S) -> plus(y:S,times(x:S,y:S)) -> Usable rules: Empty ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [0] = 2 [s](X) = 0 [DIV](X1,X2) = 2.X1 + 2.X2 + 2 [QUOT](X1,X2,X3) = 2.X1 + X2 + X3 Problem 1.4: SCC Processor: -> Pairs: QUOT(x:S,0,s(z:S)) -> DIV(x:S,s(z:S)) -> Rules: div(div(x:S,y:S),z:S) -> div(x:S,times(y:S,z:S)) div(0,y:S) -> 0 div(x:S,y:S) -> quot(x:S,y:S,y:S) divides(y:S,x:S) -> eq(x:S,times(div(x:S,y:S),y:S)) eq(0,0) -> ttrue eq(0,s(y:S)) -> ffalse eq(s(x:S),0) -> ffalse eq(s(x:S),s(y:S)) -> eq(x:S,y:S) if(ffalse,x:S,y:S) -> pr(x:S,y:S) if(ttrue,x:S,y:S) -> ffalse p(0) -> 0 p(s(x:S)) -> x:S plus(0,y:S) -> y:S plus(s(x:S),y:S) -> s(plus(p(s(x:S)),y:S)) plus(s(x:S),y:S) -> s(plus(x:S,y:S)) plus(x:S,0) -> x:S plus(x:S,s(y:S)) -> s(plus(x:S,p(s(y:S)))) pr(x:S,s(0)) -> ttrue pr(x:S,s(s(y:S))) -> if(divides(s(s(y:S)),x:S),x:S,s(y:S)) prime(s(s(x:S))) -> pr(s(s(x:S)),s(x:S)) quot(0,s(y:S),z:S) -> 0 quot(s(x:S),s(y:S),z:S) -> quot(x:S,y:S,z:S) quot(x:S,0,s(z:S)) -> s(div(x:S,s(z:S))) times(0,y:S) -> 0 times(s(0),y:S) -> y:S times(s(x:S),y:S) -> plus(y:S,times(x:S,y:S)) ->Strongly Connected Components: There is no strongly connected component The problem is finite. Problem 1.5: Subterm Processor: -> Pairs: IF(ffalse,x:S,y:S) -> PR(x:S,y:S) PR(x:S,s(s(y:S))) -> IF(divides(s(s(y:S)),x:S),x:S,s(y:S)) -> Rules: div(div(x:S,y:S),z:S) -> div(x:S,times(y:S,z:S)) div(0,y:S) -> 0 div(x:S,y:S) -> quot(x:S,y:S,y:S) divides(y:S,x:S) -> eq(x:S,times(div(x:S,y:S),y:S)) eq(0,0) -> ttrue eq(0,s(y:S)) -> ffalse eq(s(x:S),0) -> ffalse eq(s(x:S),s(y:S)) -> eq(x:S,y:S) if(ffalse,x:S,y:S) -> pr(x:S,y:S) if(ttrue,x:S,y:S) -> ffalse p(0) -> 0 p(s(x:S)) -> x:S plus(0,y:S) -> y:S plus(s(x:S),y:S) -> s(plus(p(s(x:S)),y:S)) plus(s(x:S),y:S) -> s(plus(x:S,y:S)) plus(x:S,0) -> x:S plus(x:S,s(y:S)) -> s(plus(x:S,p(s(y:S)))) pr(x:S,s(0)) -> ttrue pr(x:S,s(s(y:S))) -> if(divides(s(s(y:S)),x:S),x:S,s(y:S)) prime(s(s(x:S))) -> pr(s(s(x:S)),s(x:S)) quot(0,s(y:S),z:S) -> 0 quot(s(x:S),s(y:S),z:S) -> quot(x:S,y:S,z:S) quot(x:S,0,s(z:S)) -> s(div(x:S,s(z:S))) times(0,y:S) -> 0 times(s(0),y:S) -> y:S times(s(x:S),y:S) -> plus(y:S,times(x:S,y:S)) ->Projection: pi(IF) = 3 pi(PR) = 2 Problem 1.5: SCC Processor: -> Pairs: IF(ffalse,x:S,y:S) -> PR(x:S,y:S) -> Rules: div(div(x:S,y:S),z:S) -> div(x:S,times(y:S,z:S)) div(0,y:S) -> 0 div(x:S,y:S) -> quot(x:S,y:S,y:S) divides(y:S,x:S) -> eq(x:S,times(div(x:S,y:S),y:S)) eq(0,0) -> ttrue eq(0,s(y:S)) -> ffalse eq(s(x:S),0) -> ffalse eq(s(x:S),s(y:S)) -> eq(x:S,y:S) if(ffalse,x:S,y:S) -> pr(x:S,y:S) if(ttrue,x:S,y:S) -> ffalse p(0) -> 0 p(s(x:S)) -> x:S plus(0,y:S) -> y:S plus(s(x:S),y:S) -> s(plus(p(s(x:S)),y:S)) plus(s(x:S),y:S) -> s(plus(x:S,y:S)) plus(x:S,0) -> x:S plus(x:S,s(y:S)) -> s(plus(x:S,p(s(y:S)))) pr(x:S,s(0)) -> ttrue pr(x:S,s(s(y:S))) -> if(divides(s(s(y:S)),x:S),x:S,s(y:S)) prime(s(s(x:S))) -> pr(s(s(x:S)),s(x:S)) quot(0,s(y:S),z:S) -> 0 quot(s(x:S),s(y:S),z:S) -> quot(x:S,y:S,z:S) quot(x:S,0,s(z:S)) -> s(div(x:S,s(z:S))) times(0,y:S) -> 0 times(s(0),y:S) -> y:S times(s(x:S),y:S) -> plus(y:S,times(x:S,y:S)) ->Strongly Connected Components: There is no strongly connected component The problem is finite.