YES Problem 1: (VAR v_NonEmpty:S f:S x:S y:S ys:S) (RULES app(app(app(filtersub,ffalse),f:S),app(app(cons,y:S),ys:S)) -> app(app(filter,f:S),ys:S) app(app(app(filtersub,ttrue),f:S),app(app(cons,y:S),ys:S)) -> app(app(cons,y:S),app(app(filter,f:S),ys:S)) app(app(filter,f:S),app(app(cons,y:S),ys:S)) -> app(app(app(filtersub,app(f:S,y:S)),f:S),app(app(cons,y:S),ys:S)) app(app(filter,f:S),nil) -> nil app(app(neq,app(s,x:S)),app(s,y:S)) -> app(app(neq,x:S),y:S) app(app(neq,app(s,x:S)),0) -> ttrue app(app(neq,0),app(s,y:S)) -> ttrue app(app(neq,0),0) -> ffalse nonzero -> app(filter,app(neq,0)) ) Problem 1: Innermost Equivalent Processor: -> Rules: app(app(app(filtersub,ffalse),f:S),app(app(cons,y:S),ys:S)) -> app(app(filter,f:S),ys:S) app(app(app(filtersub,ttrue),f:S),app(app(cons,y:S),ys:S)) -> app(app(cons,y:S),app(app(filter,f:S),ys:S)) app(app(filter,f:S),app(app(cons,y:S),ys:S)) -> app(app(app(filtersub,app(f:S,y:S)),f:S),app(app(cons,y:S),ys:S)) app(app(filter,f:S),nil) -> nil app(app(neq,app(s,x:S)),app(s,y:S)) -> app(app(neq,x:S),y:S) app(app(neq,app(s,x:S)),0) -> ttrue app(app(neq,0),app(s,y:S)) -> ttrue app(app(neq,0),0) -> ffalse nonzero -> app(filter,app(neq,0)) -> The term rewriting system is non-overlaping or locally confluent overlay system. Therefore, innermost termination implies termination. Problem 1: Dependency Pairs Processor: -> Pairs: APP(app(app(filtersub,ffalse),f:S),app(app(cons,y:S),ys:S)) -> APP(app(filter,f:S),ys:S) APP(app(app(filtersub,ttrue),f:S),app(app(cons,y:S),ys:S)) -> APP(app(cons,y:S),app(app(filter,f:S),ys:S)) APP(app(app(filtersub,ttrue),f:S),app(app(cons,y:S),ys:S)) -> APP(app(filter,f:S),ys:S) APP(app(filter,f:S),app(app(cons,y:S),ys:S)) -> APP(app(app(filtersub,app(f:S,y:S)),f:S),app(app(cons,y:S),ys:S)) APP(app(filter,f:S),app(app(cons,y:S),ys:S)) -> APP(app(filtersub,app(f:S,y:S)),f:S) APP(app(filter,f:S),app(app(cons,y:S),ys:S)) -> APP(filtersub,app(f:S,y:S)) APP(app(filter,f:S),app(app(cons,y:S),ys:S)) -> APP(f:S,y:S) APP(app(neq,app(s,x:S)),app(s,y:S)) -> APP(app(neq,x:S),y:S) -> Rules: app(app(app(filtersub,ffalse),f:S),app(app(cons,y:S),ys:S)) -> app(app(filter,f:S),ys:S) app(app(app(filtersub,ttrue),f:S),app(app(cons,y:S),ys:S)) -> app(app(cons,y:S),app(app(filter,f:S),ys:S)) app(app(filter,f:S),app(app(cons,y:S),ys:S)) -> app(app(app(filtersub,app(f:S,y:S)),f:S),app(app(cons,y:S),ys:S)) app(app(filter,f:S),nil) -> nil app(app(neq,app(s,x:S)),app(s,y:S)) -> app(app(neq,x:S),y:S) app(app(neq,app(s,x:S)),0) -> ttrue app(app(neq,0),app(s,y:S)) -> ttrue app(app(neq,0),0) -> ffalse nonzero -> app(filter,app(neq,0)) Problem 1: SCC Processor: -> Pairs: APP(app(app(filtersub,ffalse),f:S),app(app(cons,y:S),ys:S)) -> APP(app(filter,f:S),ys:S) APP(app(app(filtersub,ttrue),f:S),app(app(cons,y:S),ys:S)) -> APP(app(cons,y:S),app(app(filter,f:S),ys:S)) APP(app(app(filtersub,ttrue),f:S),app(app(cons,y:S),ys:S)) -> APP(app(filter,f:S),ys:S) APP(app(filter,f:S),app(app(cons,y:S),ys:S)) -> APP(app(app(filtersub,app(f:S,y:S)),f:S),app(app(cons,y:S),ys:S)) APP(app(filter,f:S),app(app(cons,y:S),ys:S)) -> APP(app(filtersub,app(f:S,y:S)),f:S) APP(app(filter,f:S),app(app(cons,y:S),ys:S)) -> APP(filtersub,app(f:S,y:S)) APP(app(filter,f:S),app(app(cons,y:S),ys:S)) -> APP(f:S,y:S) APP(app(neq,app(s,x:S)),app(s,y:S)) -> APP(app(neq,x:S),y:S) -> Rules: app(app(app(filtersub,ffalse),f:S),app(app(cons,y:S),ys:S)) -> app(app(filter,f:S),ys:S) app(app(app(filtersub,ttrue),f:S),app(app(cons,y:S),ys:S)) -> app(app(cons,y:S),app(app(filter,f:S),ys:S)) app(app(filter,f:S),app(app(cons,y:S),ys:S)) -> app(app(app(filtersub,app(f:S,y:S)),f:S),app(app(cons,y:S),ys:S)) app(app(filter,f:S),nil) -> nil app(app(neq,app(s,x:S)),app(s,y:S)) -> app(app(neq,x:S),y:S) app(app(neq,app(s,x:S)),0) -> ttrue app(app(neq,0),app(s,y:S)) -> ttrue app(app(neq,0),0) -> ffalse nonzero -> app(filter,app(neq,0)) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: APP(app(neq,app(s,x:S)),app(s,y:S)) -> APP(app(neq,x:S),y:S) ->->-> Rules: app(app(app(filtersub,ffalse),f:S),app(app(cons,y:S),ys:S)) -> app(app(filter,f:S),ys:S) app(app(app(filtersub,ttrue),f:S),app(app(cons,y:S),ys:S)) -> app(app(cons,y:S),app(app(filter,f:S),ys:S)) app(app(filter,f:S),app(app(cons,y:S),ys:S)) -> app(app(app(filtersub,app(f:S,y:S)),f:S),app(app(cons,y:S),ys:S)) app(app(filter,f:S),nil) -> nil app(app(neq,app(s,x:S)),app(s,y:S)) -> app(app(neq,x:S),y:S) app(app(neq,app(s,x:S)),0) -> ttrue app(app(neq,0),app(s,y:S)) -> ttrue app(app(neq,0),0) -> ffalse nonzero -> app(filter,app(neq,0)) ->->Cycle: ->->-> Pairs: APP(app(app(filtersub,ffalse),f:S),app(app(cons,y:S),ys:S)) -> APP(app(filter,f:S),ys:S) APP(app(app(filtersub,ttrue),f:S),app(app(cons,y:S),ys:S)) -> APP(app(filter,f:S),ys:S) APP(app(filter,f:S),app(app(cons,y:S),ys:S)) -> APP(app(app(filtersub,app(f:S,y:S)),f:S),app(app(cons,y:S),ys:S)) APP(app(filter,f:S),app(app(cons,y:S),ys:S)) -> APP(f:S,y:S) ->->-> Rules: app(app(app(filtersub,ffalse),f:S),app(app(cons,y:S),ys:S)) -> app(app(filter,f:S),ys:S) app(app(app(filtersub,ttrue),f:S),app(app(cons,y:S),ys:S)) -> app(app(cons,y:S),app(app(filter,f:S),ys:S)) app(app(filter,f:S),app(app(cons,y:S),ys:S)) -> app(app(app(filtersub,app(f:S,y:S)),f:S),app(app(cons,y:S),ys:S)) app(app(filter,f:S),nil) -> nil app(app(neq,app(s,x:S)),app(s,y:S)) -> app(app(neq,x:S),y:S) app(app(neq,app(s,x:S)),0) -> ttrue app(app(neq,0),app(s,y:S)) -> ttrue app(app(neq,0),0) -> ffalse nonzero -> app(filter,app(neq,0)) The problem is decomposed in 2 subproblems. Problem 1.1: Subterm Processor: -> Pairs: APP(app(neq,app(s,x:S)),app(s,y:S)) -> APP(app(neq,x:S),y:S) -> Rules: app(app(app(filtersub,ffalse),f:S),app(app(cons,y:S),ys:S)) -> app(app(filter,f:S),ys:S) app(app(app(filtersub,ttrue),f:S),app(app(cons,y:S),ys:S)) -> app(app(cons,y:S),app(app(filter,f:S),ys:S)) app(app(filter,f:S),app(app(cons,y:S),ys:S)) -> app(app(app(filtersub,app(f:S,y:S)),f:S),app(app(cons,y:S),ys:S)) app(app(filter,f:S),nil) -> nil app(app(neq,app(s,x:S)),app(s,y:S)) -> app(app(neq,x:S),y:S) app(app(neq,app(s,x:S)),0) -> ttrue app(app(neq,0),app(s,y:S)) -> ttrue app(app(neq,0),0) -> ffalse nonzero -> app(filter,app(neq,0)) ->Projection: pi(APP) = 2 Problem 1.1: SCC Processor: -> Pairs: Empty -> Rules: app(app(app(filtersub,ffalse),f:S),app(app(cons,y:S),ys:S)) -> app(app(filter,f:S),ys:S) app(app(app(filtersub,ttrue),f:S),app(app(cons,y:S),ys:S)) -> app(app(cons,y:S),app(app(filter,f:S),ys:S)) app(app(filter,f:S),app(app(cons,y:S),ys:S)) -> app(app(app(filtersub,app(f:S,y:S)),f:S),app(app(cons,y:S),ys:S)) app(app(filter,f:S),nil) -> nil app(app(neq,app(s,x:S)),app(s,y:S)) -> app(app(neq,x:S),y:S) app(app(neq,app(s,x:S)),0) -> ttrue app(app(neq,0),app(s,y:S)) -> ttrue app(app(neq,0),0) -> ffalse nonzero -> app(filter,app(neq,0)) ->Strongly Connected Components: There is no strongly connected component The problem is finite. Problem 1.2: Subterm Processor: -> Pairs: APP(app(app(filtersub,ffalse),f:S),app(app(cons,y:S),ys:S)) -> APP(app(filter,f:S),ys:S) APP(app(app(filtersub,ttrue),f:S),app(app(cons,y:S),ys:S)) -> APP(app(filter,f:S),ys:S) APP(app(filter,f:S),app(app(cons,y:S),ys:S)) -> APP(app(app(filtersub,app(f:S,y:S)),f:S),app(app(cons,y:S),ys:S)) APP(app(filter,f:S),app(app(cons,y:S),ys:S)) -> APP(f:S,y:S) -> Rules: app(app(app(filtersub,ffalse),f:S),app(app(cons,y:S),ys:S)) -> app(app(filter,f:S),ys:S) app(app(app(filtersub,ttrue),f:S),app(app(cons,y:S),ys:S)) -> app(app(cons,y:S),app(app(filter,f:S),ys:S)) app(app(filter,f:S),app(app(cons,y:S),ys:S)) -> app(app(app(filtersub,app(f:S,y:S)),f:S),app(app(cons,y:S),ys:S)) app(app(filter,f:S),nil) -> nil app(app(neq,app(s,x:S)),app(s,y:S)) -> app(app(neq,x:S),y:S) app(app(neq,app(s,x:S)),0) -> ttrue app(app(neq,0),app(s,y:S)) -> ttrue app(app(neq,0),0) -> ffalse nonzero -> app(filter,app(neq,0)) ->Projection: pi(APP) = 2 Problem 1.2: SCC Processor: -> Pairs: APP(app(filter,f:S),app(app(cons,y:S),ys:S)) -> APP(app(app(filtersub,app(f:S,y:S)),f:S),app(app(cons,y:S),ys:S)) -> Rules: app(app(app(filtersub,ffalse),f:S),app(app(cons,y:S),ys:S)) -> app(app(filter,f:S),ys:S) app(app(app(filtersub,ttrue),f:S),app(app(cons,y:S),ys:S)) -> app(app(cons,y:S),app(app(filter,f:S),ys:S)) app(app(filter,f:S),app(app(cons,y:S),ys:S)) -> app(app(app(filtersub,app(f:S,y:S)),f:S),app(app(cons,y:S),ys:S)) app(app(filter,f:S),nil) -> nil app(app(neq,app(s,x:S)),app(s,y:S)) -> app(app(neq,x:S),y:S) app(app(neq,app(s,x:S)),0) -> ttrue app(app(neq,0),app(s,y:S)) -> ttrue app(app(neq,0),0) -> ffalse nonzero -> app(filter,app(neq,0)) ->Strongly Connected Components: There is no strongly connected component The problem is finite.