YES Problem 1: (VAR v_NonEmpty:S l:S l1:S l2:S x:S y:S z:S) (RULES *(*(x:S,y:S),z:S) -> *(x:S,*(y:S,z:S)) *(0(x:S),y:S) -> 0(*(x:S,y:S)) *(#,x:S) -> # *(1(x:S),y:S) -> +(0(*(x:S,y:S)),y:S) *(x:S,+(y:S,z:S)) -> +(*(x:S,y:S),*(x:S,z:S)) +(+(x:S,y:S),z:S) -> +(x:S,+(y:S,z:S)) +(0(x:S),0(y:S)) -> 0(+(x:S,y:S)) +(0(x:S),1(y:S)) -> 1(+(x:S,y:S)) +(#,x:S) -> x:S +(1(x:S),0(y:S)) -> 1(+(x:S,y:S)) +(1(x:S),1(y:S)) -> 0(+(+(x:S,y:S),1(#))) +(x:S,#) -> x:S 0(#) -> # app(cons(x:S,l1:S),l2:S) -> cons(x:S,app(l1:S,l2:S)) app(nil,l:S) -> l:S prod(app(l1:S,l2:S)) -> *(prod(l1:S),prod(l2:S)) prod(cons(x:S,l:S)) -> *(x:S,prod(l:S)) prod(nil) -> 1(#) sum(app(l1:S,l2:S)) -> +(sum(l1:S),sum(l2:S)) sum(cons(x:S,l:S)) -> +(x:S,sum(l:S)) sum(nil) -> 0(#) ) Problem 1: Dependency Pairs Processor: -> Pairs: *#(*(x:S,y:S),z:S) -> *#(x:S,*(y:S,z:S)) *#(*(x:S,y:S),z:S) -> *#(y:S,z:S) *#(0(x:S),y:S) -> *#(x:S,y:S) *#(0(x:S),y:S) -> 0#(*(x:S,y:S)) *#(1(x:S),y:S) -> *#(x:S,y:S) *#(1(x:S),y:S) -> +#(0(*(x:S,y:S)),y:S) *#(1(x:S),y:S) -> 0#(*(x:S,y:S)) *#(x:S,+(y:S,z:S)) -> *#(x:S,y:S) *#(x:S,+(y:S,z:S)) -> *#(x:S,z:S) *#(x:S,+(y:S,z:S)) -> +#(*(x:S,y:S),*(x:S,z:S)) +#(+(x:S,y:S),z:S) -> +#(x:S,+(y:S,z:S)) +#(+(x:S,y:S),z:S) -> +#(y:S,z:S) +#(0(x:S),0(y:S)) -> +#(x:S,y:S) +#(0(x:S),0(y:S)) -> 0#(+(x:S,y:S)) +#(0(x:S),1(y:S)) -> +#(x:S,y:S) +#(1(x:S),0(y:S)) -> +#(x:S,y:S) +#(1(x:S),1(y:S)) -> +#(+(x:S,y:S),1(#)) +#(1(x:S),1(y:S)) -> +#(x:S,y:S) +#(1(x:S),1(y:S)) -> 0#(+(+(x:S,y:S),1(#))) APP(cons(x:S,l1:S),l2:S) -> APP(l1:S,l2:S) PROD(app(l1:S,l2:S)) -> *#(prod(l1:S),prod(l2:S)) PROD(app(l1:S,l2:S)) -> PROD(l1:S) PROD(app(l1:S,l2:S)) -> PROD(l2:S) PROD(cons(x:S,l:S)) -> *#(x:S,prod(l:S)) PROD(cons(x:S,l:S)) -> PROD(l:S) SUM(app(l1:S,l2:S)) -> +#(sum(l1:S),sum(l2:S)) SUM(app(l1:S,l2:S)) -> SUM(l1:S) SUM(app(l1:S,l2:S)) -> SUM(l2:S) SUM(cons(x:S,l:S)) -> +#(x:S,sum(l:S)) SUM(cons(x:S,l:S)) -> SUM(l:S) SUM(nil) -> 0#(#) -> Rules: *(*(x:S,y:S),z:S) -> *(x:S,*(y:S,z:S)) *(0(x:S),y:S) -> 0(*(x:S,y:S)) *(#,x:S) -> # *(1(x:S),y:S) -> +(0(*(x:S,y:S)),y:S) *(x:S,+(y:S,z:S)) -> +(*(x:S,y:S),*(x:S,z:S)) +(+(x:S,y:S),z:S) -> +(x:S,+(y:S,z:S)) +(0(x:S),0(y:S)) -> 0(+(x:S,y:S)) +(0(x:S),1(y:S)) -> 1(+(x:S,y:S)) +(#,x:S) -> x:S +(1(x:S),0(y:S)) -> 1(+(x:S,y:S)) +(1(x:S),1(y:S)) -> 0(+(+(x:S,y:S),1(#))) +(x:S,#) -> x:S 0(#) -> # app(cons(x:S,l1:S),l2:S) -> cons(x:S,app(l1:S,l2:S)) app(nil,l:S) -> l:S prod(app(l1:S,l2:S)) -> *(prod(l1:S),prod(l2:S)) prod(cons(x:S,l:S)) -> *(x:S,prod(l:S)) prod(nil) -> 1(#) sum(app(l1:S,l2:S)) -> +(sum(l1:S),sum(l2:S)) sum(cons(x:S,l:S)) -> +(x:S,sum(l:S)) sum(nil) -> 0(#) Problem 1: SCC Processor: -> Pairs: *#(*(x:S,y:S),z:S) -> *#(x:S,*(y:S,z:S)) *#(*(x:S,y:S),z:S) -> *#(y:S,z:S) *#(0(x:S),y:S) -> *#(x:S,y:S) *#(0(x:S),y:S) -> 0#(*(x:S,y:S)) *#(1(x:S),y:S) -> *#(x:S,y:S) *#(1(x:S),y:S) -> +#(0(*(x:S,y:S)),y:S) *#(1(x:S),y:S) -> 0#(*(x:S,y:S)) *#(x:S,+(y:S,z:S)) -> *#(x:S,y:S) *#(x:S,+(y:S,z:S)) -> *#(x:S,z:S) *#(x:S,+(y:S,z:S)) -> +#(*(x:S,y:S),*(x:S,z:S)) +#(+(x:S,y:S),z:S) -> +#(x:S,+(y:S,z:S)) +#(+(x:S,y:S),z:S) -> +#(y:S,z:S) +#(0(x:S),0(y:S)) -> +#(x:S,y:S) +#(0(x:S),0(y:S)) -> 0#(+(x:S,y:S)) +#(0(x:S),1(y:S)) -> +#(x:S,y:S) +#(1(x:S),0(y:S)) -> +#(x:S,y:S) +#(1(x:S),1(y:S)) -> +#(+(x:S,y:S),1(#)) +#(1(x:S),1(y:S)) -> +#(x:S,y:S) +#(1(x:S),1(y:S)) -> 0#(+(+(x:S,y:S),1(#))) APP(cons(x:S,l1:S),l2:S) -> APP(l1:S,l2:S) PROD(app(l1:S,l2:S)) -> *#(prod(l1:S),prod(l2:S)) PROD(app(l1:S,l2:S)) -> PROD(l1:S) PROD(app(l1:S,l2:S)) -> PROD(l2:S) PROD(cons(x:S,l:S)) -> *#(x:S,prod(l:S)) PROD(cons(x:S,l:S)) -> PROD(l:S) SUM(app(l1:S,l2:S)) -> +#(sum(l1:S),sum(l2:S)) SUM(app(l1:S,l2:S)) -> SUM(l1:S) SUM(app(l1:S,l2:S)) -> SUM(l2:S) SUM(cons(x:S,l:S)) -> +#(x:S,sum(l:S)) SUM(cons(x:S,l:S)) -> SUM(l:S) SUM(nil) -> 0#(#) -> Rules: *(*(x:S,y:S),z:S) -> *(x:S,*(y:S,z:S)) *(0(x:S),y:S) -> 0(*(x:S,y:S)) *(#,x:S) -> # *(1(x:S),y:S) -> +(0(*(x:S,y:S)),y:S) *(x:S,+(y:S,z:S)) -> +(*(x:S,y:S),*(x:S,z:S)) +(+(x:S,y:S),z:S) -> +(x:S,+(y:S,z:S)) +(0(x:S),0(y:S)) -> 0(+(x:S,y:S)) +(0(x:S),1(y:S)) -> 1(+(x:S,y:S)) +(#,x:S) -> x:S +(1(x:S),0(y:S)) -> 1(+(x:S,y:S)) +(1(x:S),1(y:S)) -> 0(+(+(x:S,y:S),1(#))) +(x:S,#) -> x:S 0(#) -> # app(cons(x:S,l1:S),l2:S) -> cons(x:S,app(l1:S,l2:S)) app(nil,l:S) -> l:S prod(app(l1:S,l2:S)) -> *(prod(l1:S),prod(l2:S)) prod(cons(x:S,l:S)) -> *(x:S,prod(l:S)) prod(nil) -> 1(#) sum(app(l1:S,l2:S)) -> +(sum(l1:S),sum(l2:S)) sum(cons(x:S,l:S)) -> +(x:S,sum(l:S)) sum(nil) -> 0(#) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: APP(cons(x:S,l1:S),l2:S) -> APP(l1:S,l2:S) ->->-> Rules: *(*(x:S,y:S),z:S) -> *(x:S,*(y:S,z:S)) *(0(x:S),y:S) -> 0(*(x:S,y:S)) *(#,x:S) -> # *(1(x:S),y:S) -> +(0(*(x:S,y:S)),y:S) *(x:S,+(y:S,z:S)) -> +(*(x:S,y:S),*(x:S,z:S)) +(+(x:S,y:S),z:S) -> +(x:S,+(y:S,z:S)) +(0(x:S),0(y:S)) -> 0(+(x:S,y:S)) +(0(x:S),1(y:S)) -> 1(+(x:S,y:S)) +(#,x:S) -> x:S +(1(x:S),0(y:S)) -> 1(+(x:S,y:S)) +(1(x:S),1(y:S)) -> 0(+(+(x:S,y:S),1(#))) +(x:S,#) -> x:S 0(#) -> # app(cons(x:S,l1:S),l2:S) -> cons(x:S,app(l1:S,l2:S)) app(nil,l:S) -> l:S prod(app(l1:S,l2:S)) -> *(prod(l1:S),prod(l2:S)) prod(cons(x:S,l:S)) -> *(x:S,prod(l:S)) prod(nil) -> 1(#) sum(app(l1:S,l2:S)) -> +(sum(l1:S),sum(l2:S)) sum(cons(x:S,l:S)) -> +(x:S,sum(l:S)) sum(nil) -> 0(#) ->->Cycle: ->->-> Pairs: +#(+(x:S,y:S),z:S) -> +#(x:S,+(y:S,z:S)) +#(+(x:S,y:S),z:S) -> +#(y:S,z:S) +#(0(x:S),0(y:S)) -> +#(x:S,y:S) +#(0(x:S),1(y:S)) -> +#(x:S,y:S) +#(1(x:S),0(y:S)) -> +#(x:S,y:S) +#(1(x:S),1(y:S)) -> +#(+(x:S,y:S),1(#)) +#(1(x:S),1(y:S)) -> +#(x:S,y:S) ->->-> Rules: *(*(x:S,y:S),z:S) -> *(x:S,*(y:S,z:S)) *(0(x:S),y:S) -> 0(*(x:S,y:S)) *(#,x:S) -> # *(1(x:S),y:S) -> +(0(*(x:S,y:S)),y:S) *(x:S,+(y:S,z:S)) -> +(*(x:S,y:S),*(x:S,z:S)) +(+(x:S,y:S),z:S) -> +(x:S,+(y:S,z:S)) +(0(x:S),0(y:S)) -> 0(+(x:S,y:S)) +(0(x:S),1(y:S)) -> 1(+(x:S,y:S)) +(#,x:S) -> x:S +(1(x:S),0(y:S)) -> 1(+(x:S,y:S)) +(1(x:S),1(y:S)) -> 0(+(+(x:S,y:S),1(#))) +(x:S,#) -> x:S 0(#) -> # app(cons(x:S,l1:S),l2:S) -> cons(x:S,app(l1:S,l2:S)) app(nil,l:S) -> l:S prod(app(l1:S,l2:S)) -> *(prod(l1:S),prod(l2:S)) prod(cons(x:S,l:S)) -> *(x:S,prod(l:S)) prod(nil) -> 1(#) sum(app(l1:S,l2:S)) -> +(sum(l1:S),sum(l2:S)) sum(cons(x:S,l:S)) -> +(x:S,sum(l:S)) sum(nil) -> 0(#) ->->Cycle: ->->-> Pairs: SUM(app(l1:S,l2:S)) -> SUM(l1:S) SUM(app(l1:S,l2:S)) -> SUM(l2:S) SUM(cons(x:S,l:S)) -> SUM(l:S) ->->-> Rules: *(*(x:S,y:S),z:S) -> *(x:S,*(y:S,z:S)) *(0(x:S),y:S) -> 0(*(x:S,y:S)) *(#,x:S) -> # *(1(x:S),y:S) -> +(0(*(x:S,y:S)),y:S) *(x:S,+(y:S,z:S)) -> +(*(x:S,y:S),*(x:S,z:S)) +(+(x:S,y:S),z:S) -> +(x:S,+(y:S,z:S)) +(0(x:S),0(y:S)) -> 0(+(x:S,y:S)) +(0(x:S),1(y:S)) -> 1(+(x:S,y:S)) +(#,x:S) -> x:S +(1(x:S),0(y:S)) -> 1(+(x:S,y:S)) +(1(x:S),1(y:S)) -> 0(+(+(x:S,y:S),1(#))) +(x:S,#) -> x:S 0(#) -> # app(cons(x:S,l1:S),l2:S) -> cons(x:S,app(l1:S,l2:S)) app(nil,l:S) -> l:S prod(app(l1:S,l2:S)) -> *(prod(l1:S),prod(l2:S)) prod(cons(x:S,l:S)) -> *(x:S,prod(l:S)) prod(nil) -> 1(#) sum(app(l1:S,l2:S)) -> +(sum(l1:S),sum(l2:S)) sum(cons(x:S,l:S)) -> +(x:S,sum(l:S)) sum(nil) -> 0(#) ->->Cycle: ->->-> Pairs: *#(*(x:S,y:S),z:S) -> *#(x:S,*(y:S,z:S)) *#(*(x:S,y:S),z:S) -> *#(y:S,z:S) *#(0(x:S),y:S) -> *#(x:S,y:S) *#(1(x:S),y:S) -> *#(x:S,y:S) *#(x:S,+(y:S,z:S)) -> *#(x:S,y:S) *#(x:S,+(y:S,z:S)) -> *#(x:S,z:S) ->->-> Rules: *(*(x:S,y:S),z:S) -> *(x:S,*(y:S,z:S)) *(0(x:S),y:S) -> 0(*(x:S,y:S)) *(#,x:S) -> # *(1(x:S),y:S) -> +(0(*(x:S,y:S)),y:S) *(x:S,+(y:S,z:S)) -> +(*(x:S,y:S),*(x:S,z:S)) +(+(x:S,y:S),z:S) -> +(x:S,+(y:S,z:S)) +(0(x:S),0(y:S)) -> 0(+(x:S,y:S)) +(0(x:S),1(y:S)) -> 1(+(x:S,y:S)) +(#,x:S) -> x:S +(1(x:S),0(y:S)) -> 1(+(x:S,y:S)) +(1(x:S),1(y:S)) -> 0(+(+(x:S,y:S),1(#))) +(x:S,#) -> x:S 0(#) -> # app(cons(x:S,l1:S),l2:S) -> cons(x:S,app(l1:S,l2:S)) app(nil,l:S) -> l:S prod(app(l1:S,l2:S)) -> *(prod(l1:S),prod(l2:S)) prod(cons(x:S,l:S)) -> *(x:S,prod(l:S)) prod(nil) -> 1(#) sum(app(l1:S,l2:S)) -> +(sum(l1:S),sum(l2:S)) sum(cons(x:S,l:S)) -> +(x:S,sum(l:S)) sum(nil) -> 0(#) ->->Cycle: ->->-> Pairs: PROD(app(l1:S,l2:S)) -> PROD(l1:S) PROD(app(l1:S,l2:S)) -> PROD(l2:S) PROD(cons(x:S,l:S)) -> PROD(l:S) ->->-> Rules: *(*(x:S,y:S),z:S) -> *(x:S,*(y:S,z:S)) *(0(x:S),y:S) -> 0(*(x:S,y:S)) *(#,x:S) -> # *(1(x:S),y:S) -> +(0(*(x:S,y:S)),y:S) *(x:S,+(y:S,z:S)) -> +(*(x:S,y:S),*(x:S,z:S)) +(+(x:S,y:S),z:S) -> +(x:S,+(y:S,z:S)) +(0(x:S),0(y:S)) -> 0(+(x:S,y:S)) +(0(x:S),1(y:S)) -> 1(+(x:S,y:S)) +(#,x:S) -> x:S +(1(x:S),0(y:S)) -> 1(+(x:S,y:S)) +(1(x:S),1(y:S)) -> 0(+(+(x:S,y:S),1(#))) +(x:S,#) -> x:S 0(#) -> # app(cons(x:S,l1:S),l2:S) -> cons(x:S,app(l1:S,l2:S)) app(nil,l:S) -> l:S prod(app(l1:S,l2:S)) -> *(prod(l1:S),prod(l2:S)) prod(cons(x:S,l:S)) -> *(x:S,prod(l:S)) prod(nil) -> 1(#) sum(app(l1:S,l2:S)) -> +(sum(l1:S),sum(l2:S)) sum(cons(x:S,l:S)) -> +(x:S,sum(l:S)) sum(nil) -> 0(#) The problem is decomposed in 5 subproblems. Problem 1.1: Subterm Processor: -> Pairs: APP(cons(x:S,l1:S),l2:S) -> APP(l1:S,l2:S) -> Rules: *(*(x:S,y:S),z:S) -> *(x:S,*(y:S,z:S)) *(0(x:S),y:S) -> 0(*(x:S,y:S)) *(#,x:S) -> # *(1(x:S),y:S) -> +(0(*(x:S,y:S)),y:S) *(x:S,+(y:S,z:S)) -> +(*(x:S,y:S),*(x:S,z:S)) +(+(x:S,y:S),z:S) -> +(x:S,+(y:S,z:S)) +(0(x:S),0(y:S)) -> 0(+(x:S,y:S)) +(0(x:S),1(y:S)) -> 1(+(x:S,y:S)) +(#,x:S) -> x:S +(1(x:S),0(y:S)) -> 1(+(x:S,y:S)) +(1(x:S),1(y:S)) -> 0(+(+(x:S,y:S),1(#))) +(x:S,#) -> x:S 0(#) -> # app(cons(x:S,l1:S),l2:S) -> cons(x:S,app(l1:S,l2:S)) app(nil,l:S) -> l:S prod(app(l1:S,l2:S)) -> *(prod(l1:S),prod(l2:S)) prod(cons(x:S,l:S)) -> *(x:S,prod(l:S)) prod(nil) -> 1(#) sum(app(l1:S,l2:S)) -> +(sum(l1:S),sum(l2:S)) sum(cons(x:S,l:S)) -> +(x:S,sum(l:S)) sum(nil) -> 0(#) ->Projection: pi(APP) = 1 Problem 1.1: SCC Processor: -> Pairs: Empty -> Rules: *(*(x:S,y:S),z:S) -> *(x:S,*(y:S,z:S)) *(0(x:S),y:S) -> 0(*(x:S,y:S)) *(#,x:S) -> # *(1(x:S),y:S) -> +(0(*(x:S,y:S)),y:S) *(x:S,+(y:S,z:S)) -> +(*(x:S,y:S),*(x:S,z:S)) +(+(x:S,y:S),z:S) -> +(x:S,+(y:S,z:S)) +(0(x:S),0(y:S)) -> 0(+(x:S,y:S)) +(0(x:S),1(y:S)) -> 1(+(x:S,y:S)) +(#,x:S) -> x:S +(1(x:S),0(y:S)) -> 1(+(x:S,y:S)) +(1(x:S),1(y:S)) -> 0(+(+(x:S,y:S),1(#))) +(x:S,#) -> x:S 0(#) -> # app(cons(x:S,l1:S),l2:S) -> cons(x:S,app(l1:S,l2:S)) app(nil,l:S) -> l:S prod(app(l1:S,l2:S)) -> *(prod(l1:S),prod(l2:S)) prod(cons(x:S,l:S)) -> *(x:S,prod(l:S)) prod(nil) -> 1(#) sum(app(l1:S,l2:S)) -> +(sum(l1:S),sum(l2:S)) sum(cons(x:S,l:S)) -> +(x:S,sum(l:S)) sum(nil) -> 0(#) ->Strongly Connected Components: There is no strongly connected component The problem is finite. Problem 1.2: Reduction Pair Processor: -> Pairs: +#(+(x:S,y:S),z:S) -> +#(x:S,+(y:S,z:S)) +#(+(x:S,y:S),z:S) -> +#(y:S,z:S) +#(0(x:S),0(y:S)) -> +#(x:S,y:S) +#(0(x:S),1(y:S)) -> +#(x:S,y:S) +#(1(x:S),0(y:S)) -> +#(x:S,y:S) +#(1(x:S),1(y:S)) -> +#(+(x:S,y:S),1(#)) +#(1(x:S),1(y:S)) -> +#(x:S,y:S) -> Rules: *(*(x:S,y:S),z:S) -> *(x:S,*(y:S,z:S)) *(0(x:S),y:S) -> 0(*(x:S,y:S)) *(#,x:S) -> # *(1(x:S),y:S) -> +(0(*(x:S,y:S)),y:S) *(x:S,+(y:S,z:S)) -> +(*(x:S,y:S),*(x:S,z:S)) +(+(x:S,y:S),z:S) -> +(x:S,+(y:S,z:S)) +(0(x:S),0(y:S)) -> 0(+(x:S,y:S)) +(0(x:S),1(y:S)) -> 1(+(x:S,y:S)) +(#,x:S) -> x:S +(1(x:S),0(y:S)) -> 1(+(x:S,y:S)) +(1(x:S),1(y:S)) -> 0(+(+(x:S,y:S),1(#))) +(x:S,#) -> x:S 0(#) -> # app(cons(x:S,l1:S),l2:S) -> cons(x:S,app(l1:S,l2:S)) app(nil,l:S) -> l:S prod(app(l1:S,l2:S)) -> *(prod(l1:S),prod(l2:S)) prod(cons(x:S,l:S)) -> *(x:S,prod(l:S)) prod(nil) -> 1(#) sum(app(l1:S,l2:S)) -> +(sum(l1:S),sum(l2:S)) sum(cons(x:S,l:S)) -> +(x:S,sum(l:S)) sum(nil) -> 0(#) -> Usable rules: +(+(x:S,y:S),z:S) -> +(x:S,+(y:S,z:S)) +(0(x:S),0(y:S)) -> 0(+(x:S,y:S)) +(0(x:S),1(y:S)) -> 1(+(x:S,y:S)) +(#,x:S) -> x:S +(1(x:S),0(y:S)) -> 1(+(x:S,y:S)) +(1(x:S),1(y:S)) -> 0(+(+(x:S,y:S),1(#))) +(x:S,#) -> x:S 0(#) -> # ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [+](X1,X2) = X1 + X2 + 1 [0](X) = X [#] = 0 [1](X) = X + 1 [+#](X1,X2) = 2.X1 + 2.X2 Problem 1.2: SCC Processor: -> Pairs: +#(+(x:S,y:S),z:S) -> +#(x:S,+(y:S,z:S)) +#(0(x:S),0(y:S)) -> +#(x:S,y:S) +#(0(x:S),1(y:S)) -> +#(x:S,y:S) +#(1(x:S),0(y:S)) -> +#(x:S,y:S) +#(1(x:S),1(y:S)) -> +#(+(x:S,y:S),1(#)) +#(1(x:S),1(y:S)) -> +#(x:S,y:S) -> Rules: *(*(x:S,y:S),z:S) -> *(x:S,*(y:S,z:S)) *(0(x:S),y:S) -> 0(*(x:S,y:S)) *(#,x:S) -> # *(1(x:S),y:S) -> +(0(*(x:S,y:S)),y:S) *(x:S,+(y:S,z:S)) -> +(*(x:S,y:S),*(x:S,z:S)) +(+(x:S,y:S),z:S) -> +(x:S,+(y:S,z:S)) +(0(x:S),0(y:S)) -> 0(+(x:S,y:S)) +(0(x:S),1(y:S)) -> 1(+(x:S,y:S)) +(#,x:S) -> x:S +(1(x:S),0(y:S)) -> 1(+(x:S,y:S)) +(1(x:S),1(y:S)) -> 0(+(+(x:S,y:S),1(#))) +(x:S,#) -> x:S 0(#) -> # app(cons(x:S,l1:S),l2:S) -> cons(x:S,app(l1:S,l2:S)) app(nil,l:S) -> l:S prod(app(l1:S,l2:S)) -> *(prod(l1:S),prod(l2:S)) prod(cons(x:S,l:S)) -> *(x:S,prod(l:S)) prod(nil) -> 1(#) sum(app(l1:S,l2:S)) -> +(sum(l1:S),sum(l2:S)) sum(cons(x:S,l:S)) -> +(x:S,sum(l:S)) sum(nil) -> 0(#) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: +#(+(x:S,y:S),z:S) -> +#(x:S,+(y:S,z:S)) +#(0(x:S),0(y:S)) -> +#(x:S,y:S) +#(0(x:S),1(y:S)) -> +#(x:S,y:S) +#(1(x:S),0(y:S)) -> +#(x:S,y:S) +#(1(x:S),1(y:S)) -> +#(+(x:S,y:S),1(#)) +#(1(x:S),1(y:S)) -> +#(x:S,y:S) ->->-> Rules: *(*(x:S,y:S),z:S) -> *(x:S,*(y:S,z:S)) *(0(x:S),y:S) -> 0(*(x:S,y:S)) *(#,x:S) -> # *(1(x:S),y:S) -> +(0(*(x:S,y:S)),y:S) *(x:S,+(y:S,z:S)) -> +(*(x:S,y:S),*(x:S,z:S)) +(+(x:S,y:S),z:S) -> +(x:S,+(y:S,z:S)) +(0(x:S),0(y:S)) -> 0(+(x:S,y:S)) +(0(x:S),1(y:S)) -> 1(+(x:S,y:S)) +(#,x:S) -> x:S +(1(x:S),0(y:S)) -> 1(+(x:S,y:S)) +(1(x:S),1(y:S)) -> 0(+(+(x:S,y:S),1(#))) +(x:S,#) -> x:S 0(#) -> # app(cons(x:S,l1:S),l2:S) -> cons(x:S,app(l1:S,l2:S)) app(nil,l:S) -> l:S prod(app(l1:S,l2:S)) -> *(prod(l1:S),prod(l2:S)) prod(cons(x:S,l:S)) -> *(x:S,prod(l:S)) prod(nil) -> 1(#) sum(app(l1:S,l2:S)) -> +(sum(l1:S),sum(l2:S)) sum(cons(x:S,l:S)) -> +(x:S,sum(l:S)) sum(nil) -> 0(#) Problem 1.2: Reduction Pair Processor: -> Pairs: +#(+(x:S,y:S),z:S) -> +#(x:S,+(y:S,z:S)) +#(0(x:S),0(y:S)) -> +#(x:S,y:S) +#(0(x:S),1(y:S)) -> +#(x:S,y:S) +#(1(x:S),0(y:S)) -> +#(x:S,y:S) +#(1(x:S),1(y:S)) -> +#(+(x:S,y:S),1(#)) +#(1(x:S),1(y:S)) -> +#(x:S,y:S) -> Rules: *(*(x:S,y:S),z:S) -> *(x:S,*(y:S,z:S)) *(0(x:S),y:S) -> 0(*(x:S,y:S)) *(#,x:S) -> # *(1(x:S),y:S) -> +(0(*(x:S,y:S)),y:S) *(x:S,+(y:S,z:S)) -> +(*(x:S,y:S),*(x:S,z:S)) +(+(x:S,y:S),z:S) -> +(x:S,+(y:S,z:S)) +(0(x:S),0(y:S)) -> 0(+(x:S,y:S)) +(0(x:S),1(y:S)) -> 1(+(x:S,y:S)) +(#,x:S) -> x:S +(1(x:S),0(y:S)) -> 1(+(x:S,y:S)) +(1(x:S),1(y:S)) -> 0(+(+(x:S,y:S),1(#))) +(x:S,#) -> x:S 0(#) -> # app(cons(x:S,l1:S),l2:S) -> cons(x:S,app(l1:S,l2:S)) app(nil,l:S) -> l:S prod(app(l1:S,l2:S)) -> *(prod(l1:S),prod(l2:S)) prod(cons(x:S,l:S)) -> *(x:S,prod(l:S)) prod(nil) -> 1(#) sum(app(l1:S,l2:S)) -> +(sum(l1:S),sum(l2:S)) sum(cons(x:S,l:S)) -> +(x:S,sum(l:S)) sum(nil) -> 0(#) -> Usable rules: +(+(x:S,y:S),z:S) -> +(x:S,+(y:S,z:S)) +(0(x:S),0(y:S)) -> 0(+(x:S,y:S)) +(0(x:S),1(y:S)) -> 1(+(x:S,y:S)) +(#,x:S) -> x:S +(1(x:S),0(y:S)) -> 1(+(x:S,y:S)) +(1(x:S),1(y:S)) -> 0(+(+(x:S,y:S),1(#))) +(x:S,#) -> x:S 0(#) -> # ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [+](X1,X2) = X1 + X2 + 1 [0](X) = X + 1 [#] = 0 [1](X) = X + 2 [+#](X1,X2) = 2.X1 + 2.X2 Problem 1.2: SCC Processor: -> Pairs: +#(+(x:S,y:S),z:S) -> +#(x:S,+(y:S,z:S)) +#(0(x:S),1(y:S)) -> +#(x:S,y:S) +#(1(x:S),0(y:S)) -> +#(x:S,y:S) +#(1(x:S),1(y:S)) -> +#(+(x:S,y:S),1(#)) +#(1(x:S),1(y:S)) -> +#(x:S,y:S) -> Rules: *(*(x:S,y:S),z:S) -> *(x:S,*(y:S,z:S)) *(0(x:S),y:S) -> 0(*(x:S,y:S)) *(#,x:S) -> # *(1(x:S),y:S) -> +(0(*(x:S,y:S)),y:S) *(x:S,+(y:S,z:S)) -> +(*(x:S,y:S),*(x:S,z:S)) +(+(x:S,y:S),z:S) -> +(x:S,+(y:S,z:S)) +(0(x:S),0(y:S)) -> 0(+(x:S,y:S)) +(0(x:S),1(y:S)) -> 1(+(x:S,y:S)) +(#,x:S) -> x:S +(1(x:S),0(y:S)) -> 1(+(x:S,y:S)) +(1(x:S),1(y:S)) -> 0(+(+(x:S,y:S),1(#))) +(x:S,#) -> x:S 0(#) -> # app(cons(x:S,l1:S),l2:S) -> cons(x:S,app(l1:S,l2:S)) app(nil,l:S) -> l:S prod(app(l1:S,l2:S)) -> *(prod(l1:S),prod(l2:S)) prod(cons(x:S,l:S)) -> *(x:S,prod(l:S)) prod(nil) -> 1(#) sum(app(l1:S,l2:S)) -> +(sum(l1:S),sum(l2:S)) sum(cons(x:S,l:S)) -> +(x:S,sum(l:S)) sum(nil) -> 0(#) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: +#(+(x:S,y:S),z:S) -> +#(x:S,+(y:S,z:S)) +#(0(x:S),1(y:S)) -> +#(x:S,y:S) +#(1(x:S),0(y:S)) -> +#(x:S,y:S) +#(1(x:S),1(y:S)) -> +#(+(x:S,y:S),1(#)) +#(1(x:S),1(y:S)) -> +#(x:S,y:S) ->->-> Rules: *(*(x:S,y:S),z:S) -> *(x:S,*(y:S,z:S)) *(0(x:S),y:S) -> 0(*(x:S,y:S)) *(#,x:S) -> # *(1(x:S),y:S) -> +(0(*(x:S,y:S)),y:S) *(x:S,+(y:S,z:S)) -> +(*(x:S,y:S),*(x:S,z:S)) +(+(x:S,y:S),z:S) -> +(x:S,+(y:S,z:S)) +(0(x:S),0(y:S)) -> 0(+(x:S,y:S)) +(0(x:S),1(y:S)) -> 1(+(x:S,y:S)) +(#,x:S) -> x:S +(1(x:S),0(y:S)) -> 1(+(x:S,y:S)) +(1(x:S),1(y:S)) -> 0(+(+(x:S,y:S),1(#))) +(x:S,#) -> x:S 0(#) -> # app(cons(x:S,l1:S),l2:S) -> cons(x:S,app(l1:S,l2:S)) app(nil,l:S) -> l:S prod(app(l1:S,l2:S)) -> *(prod(l1:S),prod(l2:S)) prod(cons(x:S,l:S)) -> *(x:S,prod(l:S)) prod(nil) -> 1(#) sum(app(l1:S,l2:S)) -> +(sum(l1:S),sum(l2:S)) sum(cons(x:S,l:S)) -> +(x:S,sum(l:S)) sum(nil) -> 0(#) Problem 1.2: Reduction Pair Processor: -> Pairs: +#(+(x:S,y:S),z:S) -> +#(x:S,+(y:S,z:S)) +#(0(x:S),1(y:S)) -> +#(x:S,y:S) +#(1(x:S),0(y:S)) -> +#(x:S,y:S) +#(1(x:S),1(y:S)) -> +#(+(x:S,y:S),1(#)) +#(1(x:S),1(y:S)) -> +#(x:S,y:S) -> Rules: *(*(x:S,y:S),z:S) -> *(x:S,*(y:S,z:S)) *(0(x:S),y:S) -> 0(*(x:S,y:S)) *(#,x:S) -> # *(1(x:S),y:S) -> +(0(*(x:S,y:S)),y:S) *(x:S,+(y:S,z:S)) -> +(*(x:S,y:S),*(x:S,z:S)) +(+(x:S,y:S),z:S) -> +(x:S,+(y:S,z:S)) +(0(x:S),0(y:S)) -> 0(+(x:S,y:S)) +(0(x:S),1(y:S)) -> 1(+(x:S,y:S)) +(#,x:S) -> x:S +(1(x:S),0(y:S)) -> 1(+(x:S,y:S)) +(1(x:S),1(y:S)) -> 0(+(+(x:S,y:S),1(#))) +(x:S,#) -> x:S 0(#) -> # app(cons(x:S,l1:S),l2:S) -> cons(x:S,app(l1:S,l2:S)) app(nil,l:S) -> l:S prod(app(l1:S,l2:S)) -> *(prod(l1:S),prod(l2:S)) prod(cons(x:S,l:S)) -> *(x:S,prod(l:S)) prod(nil) -> 1(#) sum(app(l1:S,l2:S)) -> +(sum(l1:S),sum(l2:S)) sum(cons(x:S,l:S)) -> +(x:S,sum(l:S)) sum(nil) -> 0(#) -> Usable rules: +(+(x:S,y:S),z:S) -> +(x:S,+(y:S,z:S)) +(0(x:S),0(y:S)) -> 0(+(x:S,y:S)) +(0(x:S),1(y:S)) -> 1(+(x:S,y:S)) +(#,x:S) -> x:S +(1(x:S),0(y:S)) -> 1(+(x:S,y:S)) +(1(x:S),1(y:S)) -> 0(+(+(x:S,y:S),1(#))) +(x:S,#) -> x:S 0(#) -> # ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [+](X1,X2) = X1 + X2 + 1 [0](X) = X + 1 [#] = 0 [1](X) = X + 2 [+#](X1,X2) = 2.X1 + 2.X2 Problem 1.2: SCC Processor: -> Pairs: +#(+(x:S,y:S),z:S) -> +#(x:S,+(y:S,z:S)) +#(1(x:S),0(y:S)) -> +#(x:S,y:S) +#(1(x:S),1(y:S)) -> +#(+(x:S,y:S),1(#)) +#(1(x:S),1(y:S)) -> +#(x:S,y:S) -> Rules: *(*(x:S,y:S),z:S) -> *(x:S,*(y:S,z:S)) *(0(x:S),y:S) -> 0(*(x:S,y:S)) *(#,x:S) -> # *(1(x:S),y:S) -> +(0(*(x:S,y:S)),y:S) *(x:S,+(y:S,z:S)) -> +(*(x:S,y:S),*(x:S,z:S)) +(+(x:S,y:S),z:S) -> +(x:S,+(y:S,z:S)) +(0(x:S),0(y:S)) -> 0(+(x:S,y:S)) +(0(x:S),1(y:S)) -> 1(+(x:S,y:S)) +(#,x:S) -> x:S +(1(x:S),0(y:S)) -> 1(+(x:S,y:S)) +(1(x:S),1(y:S)) -> 0(+(+(x:S,y:S),1(#))) +(x:S,#) -> x:S 0(#) -> # app(cons(x:S,l1:S),l2:S) -> cons(x:S,app(l1:S,l2:S)) app(nil,l:S) -> l:S prod(app(l1:S,l2:S)) -> *(prod(l1:S),prod(l2:S)) prod(cons(x:S,l:S)) -> *(x:S,prod(l:S)) prod(nil) -> 1(#) sum(app(l1:S,l2:S)) -> +(sum(l1:S),sum(l2:S)) sum(cons(x:S,l:S)) -> +(x:S,sum(l:S)) sum(nil) -> 0(#) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: +#(+(x:S,y:S),z:S) -> +#(x:S,+(y:S,z:S)) +#(1(x:S),0(y:S)) -> +#(x:S,y:S) +#(1(x:S),1(y:S)) -> +#(+(x:S,y:S),1(#)) +#(1(x:S),1(y:S)) -> +#(x:S,y:S) ->->-> Rules: *(*(x:S,y:S),z:S) -> *(x:S,*(y:S,z:S)) *(0(x:S),y:S) -> 0(*(x:S,y:S)) *(#,x:S) -> # *(1(x:S),y:S) -> +(0(*(x:S,y:S)),y:S) *(x:S,+(y:S,z:S)) -> +(*(x:S,y:S),*(x:S,z:S)) +(+(x:S,y:S),z:S) -> +(x:S,+(y:S,z:S)) +(0(x:S),0(y:S)) -> 0(+(x:S,y:S)) +(0(x:S),1(y:S)) -> 1(+(x:S,y:S)) +(#,x:S) -> x:S +(1(x:S),0(y:S)) -> 1(+(x:S,y:S)) +(1(x:S),1(y:S)) -> 0(+(+(x:S,y:S),1(#))) +(x:S,#) -> x:S 0(#) -> # app(cons(x:S,l1:S),l2:S) -> cons(x:S,app(l1:S,l2:S)) app(nil,l:S) -> l:S prod(app(l1:S,l2:S)) -> *(prod(l1:S),prod(l2:S)) prod(cons(x:S,l:S)) -> *(x:S,prod(l:S)) prod(nil) -> 1(#) sum(app(l1:S,l2:S)) -> +(sum(l1:S),sum(l2:S)) sum(cons(x:S,l:S)) -> +(x:S,sum(l:S)) sum(nil) -> 0(#) Problem 1.2: Reduction Pair Processor: -> Pairs: +#(+(x:S,y:S),z:S) -> +#(x:S,+(y:S,z:S)) +#(1(x:S),0(y:S)) -> +#(x:S,y:S) +#(1(x:S),1(y:S)) -> +#(+(x:S,y:S),1(#)) +#(1(x:S),1(y:S)) -> +#(x:S,y:S) -> Rules: *(*(x:S,y:S),z:S) -> *(x:S,*(y:S,z:S)) *(0(x:S),y:S) -> 0(*(x:S,y:S)) *(#,x:S) -> # *(1(x:S),y:S) -> +(0(*(x:S,y:S)),y:S) *(x:S,+(y:S,z:S)) -> +(*(x:S,y:S),*(x:S,z:S)) +(+(x:S,y:S),z:S) -> +(x:S,+(y:S,z:S)) +(0(x:S),0(y:S)) -> 0(+(x:S,y:S)) +(0(x:S),1(y:S)) -> 1(+(x:S,y:S)) +(#,x:S) -> x:S +(1(x:S),0(y:S)) -> 1(+(x:S,y:S)) +(1(x:S),1(y:S)) -> 0(+(+(x:S,y:S),1(#))) +(x:S,#) -> x:S 0(#) -> # app(cons(x:S,l1:S),l2:S) -> cons(x:S,app(l1:S,l2:S)) app(nil,l:S) -> l:S prod(app(l1:S,l2:S)) -> *(prod(l1:S),prod(l2:S)) prod(cons(x:S,l:S)) -> *(x:S,prod(l:S)) prod(nil) -> 1(#) sum(app(l1:S,l2:S)) -> +(sum(l1:S),sum(l2:S)) sum(cons(x:S,l:S)) -> +(x:S,sum(l:S)) sum(nil) -> 0(#) -> Usable rules: +(+(x:S,y:S),z:S) -> +(x:S,+(y:S,z:S)) +(0(x:S),0(y:S)) -> 0(+(x:S,y:S)) +(0(x:S),1(y:S)) -> 1(+(x:S,y:S)) +(#,x:S) -> x:S +(1(x:S),0(y:S)) -> 1(+(x:S,y:S)) +(1(x:S),1(y:S)) -> 0(+(+(x:S,y:S),1(#))) +(x:S,#) -> x:S 0(#) -> # ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [+](X1,X2) = X1 + X2 [0](X) = X [#] = 2 [1](X) = X + 2 [+#](X1,X2) = 2.X1 + 2.X2 Problem 1.2: SCC Processor: -> Pairs: +#(+(x:S,y:S),z:S) -> +#(x:S,+(y:S,z:S)) +#(1(x:S),1(y:S)) -> +#(+(x:S,y:S),1(#)) +#(1(x:S),1(y:S)) -> +#(x:S,y:S) -> Rules: *(*(x:S,y:S),z:S) -> *(x:S,*(y:S,z:S)) *(0(x:S),y:S) -> 0(*(x:S,y:S)) *(#,x:S) -> # *(1(x:S),y:S) -> +(0(*(x:S,y:S)),y:S) *(x:S,+(y:S,z:S)) -> +(*(x:S,y:S),*(x:S,z:S)) +(+(x:S,y:S),z:S) -> +(x:S,+(y:S,z:S)) +(0(x:S),0(y:S)) -> 0(+(x:S,y:S)) +(0(x:S),1(y:S)) -> 1(+(x:S,y:S)) +(#,x:S) -> x:S +(1(x:S),0(y:S)) -> 1(+(x:S,y:S)) +(1(x:S),1(y:S)) -> 0(+(+(x:S,y:S),1(#))) +(x:S,#) -> x:S 0(#) -> # app(cons(x:S,l1:S),l2:S) -> cons(x:S,app(l1:S,l2:S)) app(nil,l:S) -> l:S prod(app(l1:S,l2:S)) -> *(prod(l1:S),prod(l2:S)) prod(cons(x:S,l:S)) -> *(x:S,prod(l:S)) prod(nil) -> 1(#) sum(app(l1:S,l2:S)) -> +(sum(l1:S),sum(l2:S)) sum(cons(x:S,l:S)) -> +(x:S,sum(l:S)) sum(nil) -> 0(#) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: +#(+(x:S,y:S),z:S) -> +#(x:S,+(y:S,z:S)) +#(1(x:S),1(y:S)) -> +#(+(x:S,y:S),1(#)) +#(1(x:S),1(y:S)) -> +#(x:S,y:S) ->->-> Rules: *(*(x:S,y:S),z:S) -> *(x:S,*(y:S,z:S)) *(0(x:S),y:S) -> 0(*(x:S,y:S)) *(#,x:S) -> # *(1(x:S),y:S) -> +(0(*(x:S,y:S)),y:S) *(x:S,+(y:S,z:S)) -> +(*(x:S,y:S),*(x:S,z:S)) +(+(x:S,y:S),z:S) -> +(x:S,+(y:S,z:S)) +(0(x:S),0(y:S)) -> 0(+(x:S,y:S)) +(0(x:S),1(y:S)) -> 1(+(x:S,y:S)) +(#,x:S) -> x:S +(1(x:S),0(y:S)) -> 1(+(x:S,y:S)) +(1(x:S),1(y:S)) -> 0(+(+(x:S,y:S),1(#))) +(x:S,#) -> x:S 0(#) -> # app(cons(x:S,l1:S),l2:S) -> cons(x:S,app(l1:S,l2:S)) app(nil,l:S) -> l:S prod(app(l1:S,l2:S)) -> *(prod(l1:S),prod(l2:S)) prod(cons(x:S,l:S)) -> *(x:S,prod(l:S)) prod(nil) -> 1(#) sum(app(l1:S,l2:S)) -> +(sum(l1:S),sum(l2:S)) sum(cons(x:S,l:S)) -> +(x:S,sum(l:S)) sum(nil) -> 0(#) Problem 1.2: Reduction Pair Processor: -> Pairs: +#(+(x:S,y:S),z:S) -> +#(x:S,+(y:S,z:S)) +#(1(x:S),1(y:S)) -> +#(+(x:S,y:S),1(#)) +#(1(x:S),1(y:S)) -> +#(x:S,y:S) -> Rules: *(*(x:S,y:S),z:S) -> *(x:S,*(y:S,z:S)) *(0(x:S),y:S) -> 0(*(x:S,y:S)) *(#,x:S) -> # *(1(x:S),y:S) -> +(0(*(x:S,y:S)),y:S) *(x:S,+(y:S,z:S)) -> +(*(x:S,y:S),*(x:S,z:S)) +(+(x:S,y:S),z:S) -> +(x:S,+(y:S,z:S)) +(0(x:S),0(y:S)) -> 0(+(x:S,y:S)) +(0(x:S),1(y:S)) -> 1(+(x:S,y:S)) +(#,x:S) -> x:S +(1(x:S),0(y:S)) -> 1(+(x:S,y:S)) +(1(x:S),1(y:S)) -> 0(+(+(x:S,y:S),1(#))) +(x:S,#) -> x:S 0(#) -> # app(cons(x:S,l1:S),l2:S) -> cons(x:S,app(l1:S,l2:S)) app(nil,l:S) -> l:S prod(app(l1:S,l2:S)) -> *(prod(l1:S),prod(l2:S)) prod(cons(x:S,l:S)) -> *(x:S,prod(l:S)) prod(nil) -> 1(#) sum(app(l1:S,l2:S)) -> +(sum(l1:S),sum(l2:S)) sum(cons(x:S,l:S)) -> +(x:S,sum(l:S)) sum(nil) -> 0(#) -> Usable rules: +(+(x:S,y:S),z:S) -> +(x:S,+(y:S,z:S)) +(0(x:S),0(y:S)) -> 0(+(x:S,y:S)) +(0(x:S),1(y:S)) -> 1(+(x:S,y:S)) +(#,x:S) -> x:S +(1(x:S),0(y:S)) -> 1(+(x:S,y:S)) +(1(x:S),1(y:S)) -> 0(+(+(x:S,y:S),1(#))) +(x:S,#) -> x:S 0(#) -> # ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [+](X1,X2) = X1 + X2 + 1 [0](X) = X [#] = 0 [1](X) = X + 2 [+#](X1,X2) = X1 + X2 Problem 1.2: SCC Processor: -> Pairs: +#(+(x:S,y:S),z:S) -> +#(x:S,+(y:S,z:S)) +#(1(x:S),1(y:S)) -> +#(x:S,y:S) -> Rules: *(*(x:S,y:S),z:S) -> *(x:S,*(y:S,z:S)) *(0(x:S),y:S) -> 0(*(x:S,y:S)) *(#,x:S) -> # *(1(x:S),y:S) -> +(0(*(x:S,y:S)),y:S) *(x:S,+(y:S,z:S)) -> +(*(x:S,y:S),*(x:S,z:S)) +(+(x:S,y:S),z:S) -> +(x:S,+(y:S,z:S)) +(0(x:S),0(y:S)) -> 0(+(x:S,y:S)) +(0(x:S),1(y:S)) -> 1(+(x:S,y:S)) +(#,x:S) -> x:S +(1(x:S),0(y:S)) -> 1(+(x:S,y:S)) +(1(x:S),1(y:S)) -> 0(+(+(x:S,y:S),1(#))) +(x:S,#) -> x:S 0(#) -> # app(cons(x:S,l1:S),l2:S) -> cons(x:S,app(l1:S,l2:S)) app(nil,l:S) -> l:S prod(app(l1:S,l2:S)) -> *(prod(l1:S),prod(l2:S)) prod(cons(x:S,l:S)) -> *(x:S,prod(l:S)) prod(nil) -> 1(#) sum(app(l1:S,l2:S)) -> +(sum(l1:S),sum(l2:S)) sum(cons(x:S,l:S)) -> +(x:S,sum(l:S)) sum(nil) -> 0(#) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: +#(+(x:S,y:S),z:S) -> +#(x:S,+(y:S,z:S)) +#(1(x:S),1(y:S)) -> +#(x:S,y:S) ->->-> Rules: *(*(x:S,y:S),z:S) -> *(x:S,*(y:S,z:S)) *(0(x:S),y:S) -> 0(*(x:S,y:S)) *(#,x:S) -> # *(1(x:S),y:S) -> +(0(*(x:S,y:S)),y:S) *(x:S,+(y:S,z:S)) -> +(*(x:S,y:S),*(x:S,z:S)) +(+(x:S,y:S),z:S) -> +(x:S,+(y:S,z:S)) +(0(x:S),0(y:S)) -> 0(+(x:S,y:S)) +(0(x:S),1(y:S)) -> 1(+(x:S,y:S)) +(#,x:S) -> x:S +(1(x:S),0(y:S)) -> 1(+(x:S,y:S)) +(1(x:S),1(y:S)) -> 0(+(+(x:S,y:S),1(#))) +(x:S,#) -> x:S 0(#) -> # app(cons(x:S,l1:S),l2:S) -> cons(x:S,app(l1:S,l2:S)) app(nil,l:S) -> l:S prod(app(l1:S,l2:S)) -> *(prod(l1:S),prod(l2:S)) prod(cons(x:S,l:S)) -> *(x:S,prod(l:S)) prod(nil) -> 1(#) sum(app(l1:S,l2:S)) -> +(sum(l1:S),sum(l2:S)) sum(cons(x:S,l:S)) -> +(x:S,sum(l:S)) sum(nil) -> 0(#) Problem 1.2: Subterm Processor: -> Pairs: +#(+(x:S,y:S),z:S) -> +#(x:S,+(y:S,z:S)) +#(1(x:S),1(y:S)) -> +#(x:S,y:S) -> Rules: *(*(x:S,y:S),z:S) -> *(x:S,*(y:S,z:S)) *(0(x:S),y:S) -> 0(*(x:S,y:S)) *(#,x:S) -> # *(1(x:S),y:S) -> +(0(*(x:S,y:S)),y:S) *(x:S,+(y:S,z:S)) -> +(*(x:S,y:S),*(x:S,z:S)) +(+(x:S,y:S),z:S) -> +(x:S,+(y:S,z:S)) +(0(x:S),0(y:S)) -> 0(+(x:S,y:S)) +(0(x:S),1(y:S)) -> 1(+(x:S,y:S)) +(#,x:S) -> x:S +(1(x:S),0(y:S)) -> 1(+(x:S,y:S)) +(1(x:S),1(y:S)) -> 0(+(+(x:S,y:S),1(#))) +(x:S,#) -> x:S 0(#) -> # app(cons(x:S,l1:S),l2:S) -> cons(x:S,app(l1:S,l2:S)) app(nil,l:S) -> l:S prod(app(l1:S,l2:S)) -> *(prod(l1:S),prod(l2:S)) prod(cons(x:S,l:S)) -> *(x:S,prod(l:S)) prod(nil) -> 1(#) sum(app(l1:S,l2:S)) -> +(sum(l1:S),sum(l2:S)) sum(cons(x:S,l:S)) -> +(x:S,sum(l:S)) sum(nil) -> 0(#) ->Projection: pi(+#) = 1 Problem 1.2: SCC Processor: -> Pairs: Empty -> Rules: *(*(x:S,y:S),z:S) -> *(x:S,*(y:S,z:S)) *(0(x:S),y:S) -> 0(*(x:S,y:S)) *(#,x:S) -> # *(1(x:S),y:S) -> +(0(*(x:S,y:S)),y:S) *(x:S,+(y:S,z:S)) -> +(*(x:S,y:S),*(x:S,z:S)) +(+(x:S,y:S),z:S) -> +(x:S,+(y:S,z:S)) +(0(x:S),0(y:S)) -> 0(+(x:S,y:S)) +(0(x:S),1(y:S)) -> 1(+(x:S,y:S)) +(#,x:S) -> x:S +(1(x:S),0(y:S)) -> 1(+(x:S,y:S)) +(1(x:S),1(y:S)) -> 0(+(+(x:S,y:S),1(#))) +(x:S,#) -> x:S 0(#) -> # app(cons(x:S,l1:S),l2:S) -> cons(x:S,app(l1:S,l2:S)) app(nil,l:S) -> l:S prod(app(l1:S,l2:S)) -> *(prod(l1:S),prod(l2:S)) prod(cons(x:S,l:S)) -> *(x:S,prod(l:S)) prod(nil) -> 1(#) sum(app(l1:S,l2:S)) -> +(sum(l1:S),sum(l2:S)) sum(cons(x:S,l:S)) -> +(x:S,sum(l:S)) sum(nil) -> 0(#) ->Strongly Connected Components: There is no strongly connected component The problem is finite. Problem 1.3: Subterm Processor: -> Pairs: SUM(app(l1:S,l2:S)) -> SUM(l1:S) SUM(app(l1:S,l2:S)) -> SUM(l2:S) SUM(cons(x:S,l:S)) -> SUM(l:S) -> Rules: *(*(x:S,y:S),z:S) -> *(x:S,*(y:S,z:S)) *(0(x:S),y:S) -> 0(*(x:S,y:S)) *(#,x:S) -> # *(1(x:S),y:S) -> +(0(*(x:S,y:S)),y:S) *(x:S,+(y:S,z:S)) -> +(*(x:S,y:S),*(x:S,z:S)) +(+(x:S,y:S),z:S) -> +(x:S,+(y:S,z:S)) +(0(x:S),0(y:S)) -> 0(+(x:S,y:S)) +(0(x:S),1(y:S)) -> 1(+(x:S,y:S)) +(#,x:S) -> x:S +(1(x:S),0(y:S)) -> 1(+(x:S,y:S)) +(1(x:S),1(y:S)) -> 0(+(+(x:S,y:S),1(#))) +(x:S,#) -> x:S 0(#) -> # app(cons(x:S,l1:S),l2:S) -> cons(x:S,app(l1:S,l2:S)) app(nil,l:S) -> l:S prod(app(l1:S,l2:S)) -> *(prod(l1:S),prod(l2:S)) prod(cons(x:S,l:S)) -> *(x:S,prod(l:S)) prod(nil) -> 1(#) sum(app(l1:S,l2:S)) -> +(sum(l1:S),sum(l2:S)) sum(cons(x:S,l:S)) -> +(x:S,sum(l:S)) sum(nil) -> 0(#) ->Projection: pi(SUM) = 1 Problem 1.3: SCC Processor: -> Pairs: Empty -> Rules: *(*(x:S,y:S),z:S) -> *(x:S,*(y:S,z:S)) *(0(x:S),y:S) -> 0(*(x:S,y:S)) *(#,x:S) -> # *(1(x:S),y:S) -> +(0(*(x:S,y:S)),y:S) *(x:S,+(y:S,z:S)) -> +(*(x:S,y:S),*(x:S,z:S)) +(+(x:S,y:S),z:S) -> +(x:S,+(y:S,z:S)) +(0(x:S),0(y:S)) -> 0(+(x:S,y:S)) +(0(x:S),1(y:S)) -> 1(+(x:S,y:S)) +(#,x:S) -> x:S +(1(x:S),0(y:S)) -> 1(+(x:S,y:S)) +(1(x:S),1(y:S)) -> 0(+(+(x:S,y:S),1(#))) +(x:S,#) -> x:S 0(#) -> # app(cons(x:S,l1:S),l2:S) -> cons(x:S,app(l1:S,l2:S)) app(nil,l:S) -> l:S prod(app(l1:S,l2:S)) -> *(prod(l1:S),prod(l2:S)) prod(cons(x:S,l:S)) -> *(x:S,prod(l:S)) prod(nil) -> 1(#) sum(app(l1:S,l2:S)) -> +(sum(l1:S),sum(l2:S)) sum(cons(x:S,l:S)) -> +(x:S,sum(l:S)) sum(nil) -> 0(#) ->Strongly Connected Components: There is no strongly connected component The problem is finite. Problem 1.4: Subterm Processor: -> Pairs: *#(*(x:S,y:S),z:S) -> *#(x:S,*(y:S,z:S)) *#(*(x:S,y:S),z:S) -> *#(y:S,z:S) *#(0(x:S),y:S) -> *#(x:S,y:S) *#(1(x:S),y:S) -> *#(x:S,y:S) *#(x:S,+(y:S,z:S)) -> *#(x:S,y:S) *#(x:S,+(y:S,z:S)) -> *#(x:S,z:S) -> Rules: *(*(x:S,y:S),z:S) -> *(x:S,*(y:S,z:S)) *(0(x:S),y:S) -> 0(*(x:S,y:S)) *(#,x:S) -> # *(1(x:S),y:S) -> +(0(*(x:S,y:S)),y:S) *(x:S,+(y:S,z:S)) -> +(*(x:S,y:S),*(x:S,z:S)) +(+(x:S,y:S),z:S) -> +(x:S,+(y:S,z:S)) +(0(x:S),0(y:S)) -> 0(+(x:S,y:S)) +(0(x:S),1(y:S)) -> 1(+(x:S,y:S)) +(#,x:S) -> x:S +(1(x:S),0(y:S)) -> 1(+(x:S,y:S)) +(1(x:S),1(y:S)) -> 0(+(+(x:S,y:S),1(#))) +(x:S,#) -> x:S 0(#) -> # app(cons(x:S,l1:S),l2:S) -> cons(x:S,app(l1:S,l2:S)) app(nil,l:S) -> l:S prod(app(l1:S,l2:S)) -> *(prod(l1:S),prod(l2:S)) prod(cons(x:S,l:S)) -> *(x:S,prod(l:S)) prod(nil) -> 1(#) sum(app(l1:S,l2:S)) -> +(sum(l1:S),sum(l2:S)) sum(cons(x:S,l:S)) -> +(x:S,sum(l:S)) sum(nil) -> 0(#) ->Projection: pi(*#) = 1 Problem 1.4: SCC Processor: -> Pairs: *#(x:S,+(y:S,z:S)) -> *#(x:S,y:S) *#(x:S,+(y:S,z:S)) -> *#(x:S,z:S) -> Rules: *(*(x:S,y:S),z:S) -> *(x:S,*(y:S,z:S)) *(0(x:S),y:S) -> 0(*(x:S,y:S)) *(#,x:S) -> # *(1(x:S),y:S) -> +(0(*(x:S,y:S)),y:S) *(x:S,+(y:S,z:S)) -> +(*(x:S,y:S),*(x:S,z:S)) +(+(x:S,y:S),z:S) -> +(x:S,+(y:S,z:S)) +(0(x:S),0(y:S)) -> 0(+(x:S,y:S)) +(0(x:S),1(y:S)) -> 1(+(x:S,y:S)) +(#,x:S) -> x:S +(1(x:S),0(y:S)) -> 1(+(x:S,y:S)) +(1(x:S),1(y:S)) -> 0(+(+(x:S,y:S),1(#))) +(x:S,#) -> x:S 0(#) -> # app(cons(x:S,l1:S),l2:S) -> cons(x:S,app(l1:S,l2:S)) app(nil,l:S) -> l:S prod(app(l1:S,l2:S)) -> *(prod(l1:S),prod(l2:S)) prod(cons(x:S,l:S)) -> *(x:S,prod(l:S)) prod(nil) -> 1(#) sum(app(l1:S,l2:S)) -> +(sum(l1:S),sum(l2:S)) sum(cons(x:S,l:S)) -> +(x:S,sum(l:S)) sum(nil) -> 0(#) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: *#(x:S,+(y:S,z:S)) -> *#(x:S,y:S) *#(x:S,+(y:S,z:S)) -> *#(x:S,z:S) ->->-> Rules: *(*(x:S,y:S),z:S) -> *(x:S,*(y:S,z:S)) *(0(x:S),y:S) -> 0(*(x:S,y:S)) *(#,x:S) -> # *(1(x:S),y:S) -> +(0(*(x:S,y:S)),y:S) *(x:S,+(y:S,z:S)) -> +(*(x:S,y:S),*(x:S,z:S)) +(+(x:S,y:S),z:S) -> +(x:S,+(y:S,z:S)) +(0(x:S),0(y:S)) -> 0(+(x:S,y:S)) +(0(x:S),1(y:S)) -> 1(+(x:S,y:S)) +(#,x:S) -> x:S +(1(x:S),0(y:S)) -> 1(+(x:S,y:S)) +(1(x:S),1(y:S)) -> 0(+(+(x:S,y:S),1(#))) +(x:S,#) -> x:S 0(#) -> # app(cons(x:S,l1:S),l2:S) -> cons(x:S,app(l1:S,l2:S)) app(nil,l:S) -> l:S prod(app(l1:S,l2:S)) -> *(prod(l1:S),prod(l2:S)) prod(cons(x:S,l:S)) -> *(x:S,prod(l:S)) prod(nil) -> 1(#) sum(app(l1:S,l2:S)) -> +(sum(l1:S),sum(l2:S)) sum(cons(x:S,l:S)) -> +(x:S,sum(l:S)) sum(nil) -> 0(#) Problem 1.4: Subterm Processor: -> Pairs: *#(x:S,+(y:S,z:S)) -> *#(x:S,y:S) *#(x:S,+(y:S,z:S)) -> *#(x:S,z:S) -> Rules: *(*(x:S,y:S),z:S) -> *(x:S,*(y:S,z:S)) *(0(x:S),y:S) -> 0(*(x:S,y:S)) *(#,x:S) -> # *(1(x:S),y:S) -> +(0(*(x:S,y:S)),y:S) *(x:S,+(y:S,z:S)) -> +(*(x:S,y:S),*(x:S,z:S)) +(+(x:S,y:S),z:S) -> +(x:S,+(y:S,z:S)) +(0(x:S),0(y:S)) -> 0(+(x:S,y:S)) +(0(x:S),1(y:S)) -> 1(+(x:S,y:S)) +(#,x:S) -> x:S +(1(x:S),0(y:S)) -> 1(+(x:S,y:S)) +(1(x:S),1(y:S)) -> 0(+(+(x:S,y:S),1(#))) +(x:S,#) -> x:S 0(#) -> # app(cons(x:S,l1:S),l2:S) -> cons(x:S,app(l1:S,l2:S)) app(nil,l:S) -> l:S prod(app(l1:S,l2:S)) -> *(prod(l1:S),prod(l2:S)) prod(cons(x:S,l:S)) -> *(x:S,prod(l:S)) prod(nil) -> 1(#) sum(app(l1:S,l2:S)) -> +(sum(l1:S),sum(l2:S)) sum(cons(x:S,l:S)) -> +(x:S,sum(l:S)) sum(nil) -> 0(#) ->Projection: pi(*#) = 2 Problem 1.4: SCC Processor: -> Pairs: Empty -> Rules: *(*(x:S,y:S),z:S) -> *(x:S,*(y:S,z:S)) *(0(x:S),y:S) -> 0(*(x:S,y:S)) *(#,x:S) -> # *(1(x:S),y:S) -> +(0(*(x:S,y:S)),y:S) *(x:S,+(y:S,z:S)) -> +(*(x:S,y:S),*(x:S,z:S)) +(+(x:S,y:S),z:S) -> +(x:S,+(y:S,z:S)) +(0(x:S),0(y:S)) -> 0(+(x:S,y:S)) +(0(x:S),1(y:S)) -> 1(+(x:S,y:S)) +(#,x:S) -> x:S +(1(x:S),0(y:S)) -> 1(+(x:S,y:S)) +(1(x:S),1(y:S)) -> 0(+(+(x:S,y:S),1(#))) +(x:S,#) -> x:S 0(#) -> # app(cons(x:S,l1:S),l2:S) -> cons(x:S,app(l1:S,l2:S)) app(nil,l:S) -> l:S prod(app(l1:S,l2:S)) -> *(prod(l1:S),prod(l2:S)) prod(cons(x:S,l:S)) -> *(x:S,prod(l:S)) prod(nil) -> 1(#) sum(app(l1:S,l2:S)) -> +(sum(l1:S),sum(l2:S)) sum(cons(x:S,l:S)) -> +(x:S,sum(l:S)) sum(nil) -> 0(#) ->Strongly Connected Components: There is no strongly connected component The problem is finite. Problem 1.5: Subterm Processor: -> Pairs: PROD(app(l1:S,l2:S)) -> PROD(l1:S) PROD(app(l1:S,l2:S)) -> PROD(l2:S) PROD(cons(x:S,l:S)) -> PROD(l:S) -> Rules: *(*(x:S,y:S),z:S) -> *(x:S,*(y:S,z:S)) *(0(x:S),y:S) -> 0(*(x:S,y:S)) *(#,x:S) -> # *(1(x:S),y:S) -> +(0(*(x:S,y:S)),y:S) *(x:S,+(y:S,z:S)) -> +(*(x:S,y:S),*(x:S,z:S)) +(+(x:S,y:S),z:S) -> +(x:S,+(y:S,z:S)) +(0(x:S),0(y:S)) -> 0(+(x:S,y:S)) +(0(x:S),1(y:S)) -> 1(+(x:S,y:S)) +(#,x:S) -> x:S +(1(x:S),0(y:S)) -> 1(+(x:S,y:S)) +(1(x:S),1(y:S)) -> 0(+(+(x:S,y:S),1(#))) +(x:S,#) -> x:S 0(#) -> # app(cons(x:S,l1:S),l2:S) -> cons(x:S,app(l1:S,l2:S)) app(nil,l:S) -> l:S prod(app(l1:S,l2:S)) -> *(prod(l1:S),prod(l2:S)) prod(cons(x:S,l:S)) -> *(x:S,prod(l:S)) prod(nil) -> 1(#) sum(app(l1:S,l2:S)) -> +(sum(l1:S),sum(l2:S)) sum(cons(x:S,l:S)) -> +(x:S,sum(l:S)) sum(nil) -> 0(#) ->Projection: pi(PROD) = 1 Problem 1.5: SCC Processor: -> Pairs: Empty -> Rules: *(*(x:S,y:S),z:S) -> *(x:S,*(y:S,z:S)) *(0(x:S),y:S) -> 0(*(x:S,y:S)) *(#,x:S) -> # *(1(x:S),y:S) -> +(0(*(x:S,y:S)),y:S) *(x:S,+(y:S,z:S)) -> +(*(x:S,y:S),*(x:S,z:S)) +(+(x:S,y:S),z:S) -> +(x:S,+(y:S,z:S)) +(0(x:S),0(y:S)) -> 0(+(x:S,y:S)) +(0(x:S),1(y:S)) -> 1(+(x:S,y:S)) +(#,x:S) -> x:S +(1(x:S),0(y:S)) -> 1(+(x:S,y:S)) +(1(x:S),1(y:S)) -> 0(+(+(x:S,y:S),1(#))) +(x:S,#) -> x:S 0(#) -> # app(cons(x:S,l1:S),l2:S) -> cons(x:S,app(l1:S,l2:S)) app(nil,l:S) -> l:S prod(app(l1:S,l2:S)) -> *(prod(l1:S),prod(l2:S)) prod(cons(x:S,l:S)) -> *(x:S,prod(l:S)) prod(nil) -> 1(#) sum(app(l1:S,l2:S)) -> +(sum(l1:S),sum(l2:S)) sum(cons(x:S,l:S)) -> +(x:S,sum(l:S)) sum(nil) -> 0(#) ->Strongly Connected Components: There is no strongly connected component The problem is finite.