YES Problem 1: (VAR v_NonEmpty:S p:S x:S xs:S y:S) (RULES app(app(app(if,ttrue),x:S),y:S) -> x:S app(app(app(if,ttrue),x:S),y:S) -> y:S app(app(dropWhile,p:S),app(app(cons,x:S),xs:S)) -> app(app(app(if,app(p:S,x:S)),app(app(dropWhile,p:S),xs:S)),app(app(cons,x:S),xs:S)) app(app(dropWhile,p:S),nil) -> nil app(app(takeWhile,p:S),app(app(cons,x:S),xs:S)) -> app(app(app(if,app(p:S,x:S)),app(app(cons,x:S),app(app(takeWhile,p:S),xs:S))),nil) app(app(takeWhile,p:S),nil) -> nil ) Problem 1: Dependency Pairs Processor: -> Pairs: APP(app(dropWhile,p:S),app(app(cons,x:S),xs:S)) -> APP(app(app(if,app(p:S,x:S)),app(app(dropWhile,p:S),xs:S)),app(app(cons,x:S),xs:S)) APP(app(dropWhile,p:S),app(app(cons,x:S),xs:S)) -> APP(app(dropWhile,p:S),xs:S) APP(app(dropWhile,p:S),app(app(cons,x:S),xs:S)) -> APP(app(if,app(p:S,x:S)),app(app(dropWhile,p:S),xs:S)) APP(app(dropWhile,p:S),app(app(cons,x:S),xs:S)) -> APP(if,app(p:S,x:S)) APP(app(dropWhile,p:S),app(app(cons,x:S),xs:S)) -> APP(p:S,x:S) APP(app(takeWhile,p:S),app(app(cons,x:S),xs:S)) -> APP(app(app(if,app(p:S,x:S)),app(app(cons,x:S),app(app(takeWhile,p:S),xs:S))),nil) APP(app(takeWhile,p:S),app(app(cons,x:S),xs:S)) -> APP(app(cons,x:S),app(app(takeWhile,p:S),xs:S)) APP(app(takeWhile,p:S),app(app(cons,x:S),xs:S)) -> APP(app(if,app(p:S,x:S)),app(app(cons,x:S),app(app(takeWhile,p:S),xs:S))) APP(app(takeWhile,p:S),app(app(cons,x:S),xs:S)) -> APP(app(takeWhile,p:S),xs:S) APP(app(takeWhile,p:S),app(app(cons,x:S),xs:S)) -> APP(if,app(p:S,x:S)) APP(app(takeWhile,p:S),app(app(cons,x:S),xs:S)) -> APP(p:S,x:S) -> Rules: app(app(app(if,ttrue),x:S),y:S) -> x:S app(app(app(if,ttrue),x:S),y:S) -> y:S app(app(dropWhile,p:S),app(app(cons,x:S),xs:S)) -> app(app(app(if,app(p:S,x:S)),app(app(dropWhile,p:S),xs:S)),app(app(cons,x:S),xs:S)) app(app(dropWhile,p:S),nil) -> nil app(app(takeWhile,p:S),app(app(cons,x:S),xs:S)) -> app(app(app(if,app(p:S,x:S)),app(app(cons,x:S),app(app(takeWhile,p:S),xs:S))),nil) app(app(takeWhile,p:S),nil) -> nil Problem 1: SCC Processor: -> Pairs: APP(app(dropWhile,p:S),app(app(cons,x:S),xs:S)) -> APP(app(app(if,app(p:S,x:S)),app(app(dropWhile,p:S),xs:S)),app(app(cons,x:S),xs:S)) APP(app(dropWhile,p:S),app(app(cons,x:S),xs:S)) -> APP(app(dropWhile,p:S),xs:S) APP(app(dropWhile,p:S),app(app(cons,x:S),xs:S)) -> APP(app(if,app(p:S,x:S)),app(app(dropWhile,p:S),xs:S)) APP(app(dropWhile,p:S),app(app(cons,x:S),xs:S)) -> APP(if,app(p:S,x:S)) APP(app(dropWhile,p:S),app(app(cons,x:S),xs:S)) -> APP(p:S,x:S) APP(app(takeWhile,p:S),app(app(cons,x:S),xs:S)) -> APP(app(app(if,app(p:S,x:S)),app(app(cons,x:S),app(app(takeWhile,p:S),xs:S))),nil) APP(app(takeWhile,p:S),app(app(cons,x:S),xs:S)) -> APP(app(cons,x:S),app(app(takeWhile,p:S),xs:S)) APP(app(takeWhile,p:S),app(app(cons,x:S),xs:S)) -> APP(app(if,app(p:S,x:S)),app(app(cons,x:S),app(app(takeWhile,p:S),xs:S))) APP(app(takeWhile,p:S),app(app(cons,x:S),xs:S)) -> APP(app(takeWhile,p:S),xs:S) APP(app(takeWhile,p:S),app(app(cons,x:S),xs:S)) -> APP(if,app(p:S,x:S)) APP(app(takeWhile,p:S),app(app(cons,x:S),xs:S)) -> APP(p:S,x:S) -> Rules: app(app(app(if,ttrue),x:S),y:S) -> x:S app(app(app(if,ttrue),x:S),y:S) -> y:S app(app(dropWhile,p:S),app(app(cons,x:S),xs:S)) -> app(app(app(if,app(p:S,x:S)),app(app(dropWhile,p:S),xs:S)),app(app(cons,x:S),xs:S)) app(app(dropWhile,p:S),nil) -> nil app(app(takeWhile,p:S),app(app(cons,x:S),xs:S)) -> app(app(app(if,app(p:S,x:S)),app(app(cons,x:S),app(app(takeWhile,p:S),xs:S))),nil) app(app(takeWhile,p:S),nil) -> nil ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: APP(app(dropWhile,p:S),app(app(cons,x:S),xs:S)) -> APP(app(dropWhile,p:S),xs:S) APP(app(dropWhile,p:S),app(app(cons,x:S),xs:S)) -> APP(p:S,x:S) APP(app(takeWhile,p:S),app(app(cons,x:S),xs:S)) -> APP(app(takeWhile,p:S),xs:S) APP(app(takeWhile,p:S),app(app(cons,x:S),xs:S)) -> APP(p:S,x:S) ->->-> Rules: app(app(app(if,ttrue),x:S),y:S) -> x:S app(app(app(if,ttrue),x:S),y:S) -> y:S app(app(dropWhile,p:S),app(app(cons,x:S),xs:S)) -> app(app(app(if,app(p:S,x:S)),app(app(dropWhile,p:S),xs:S)),app(app(cons,x:S),xs:S)) app(app(dropWhile,p:S),nil) -> nil app(app(takeWhile,p:S),app(app(cons,x:S),xs:S)) -> app(app(app(if,app(p:S,x:S)),app(app(cons,x:S),app(app(takeWhile,p:S),xs:S))),nil) app(app(takeWhile,p:S),nil) -> nil Problem 1: Subterm Processor: -> Pairs: APP(app(dropWhile,p:S),app(app(cons,x:S),xs:S)) -> APP(app(dropWhile,p:S),xs:S) APP(app(dropWhile,p:S),app(app(cons,x:S),xs:S)) -> APP(p:S,x:S) APP(app(takeWhile,p:S),app(app(cons,x:S),xs:S)) -> APP(app(takeWhile,p:S),xs:S) APP(app(takeWhile,p:S),app(app(cons,x:S),xs:S)) -> APP(p:S,x:S) -> Rules: app(app(app(if,ttrue),x:S),y:S) -> x:S app(app(app(if,ttrue),x:S),y:S) -> y:S app(app(dropWhile,p:S),app(app(cons,x:S),xs:S)) -> app(app(app(if,app(p:S,x:S)),app(app(dropWhile,p:S),xs:S)),app(app(cons,x:S),xs:S)) app(app(dropWhile,p:S),nil) -> nil app(app(takeWhile,p:S),app(app(cons,x:S),xs:S)) -> app(app(app(if,app(p:S,x:S)),app(app(cons,x:S),app(app(takeWhile,p:S),xs:S))),nil) app(app(takeWhile,p:S),nil) -> nil ->Projection: pi(APP) = 1 Problem 1: SCC Processor: -> Pairs: APP(app(dropWhile,p:S),app(app(cons,x:S),xs:S)) -> APP(app(dropWhile,p:S),xs:S) APP(app(takeWhile,p:S),app(app(cons,x:S),xs:S)) -> APP(app(takeWhile,p:S),xs:S) -> Rules: app(app(app(if,ttrue),x:S),y:S) -> x:S app(app(app(if,ttrue),x:S),y:S) -> y:S app(app(dropWhile,p:S),app(app(cons,x:S),xs:S)) -> app(app(app(if,app(p:S,x:S)),app(app(dropWhile,p:S),xs:S)),app(app(cons,x:S),xs:S)) app(app(dropWhile,p:S),nil) -> nil app(app(takeWhile,p:S),app(app(cons,x:S),xs:S)) -> app(app(app(if,app(p:S,x:S)),app(app(cons,x:S),app(app(takeWhile,p:S),xs:S))),nil) app(app(takeWhile,p:S),nil) -> nil ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: APP(app(takeWhile,p:S),app(app(cons,x:S),xs:S)) -> APP(app(takeWhile,p:S),xs:S) ->->-> Rules: app(app(app(if,ttrue),x:S),y:S) -> x:S app(app(app(if,ttrue),x:S),y:S) -> y:S app(app(dropWhile,p:S),app(app(cons,x:S),xs:S)) -> app(app(app(if,app(p:S,x:S)),app(app(dropWhile,p:S),xs:S)),app(app(cons,x:S),xs:S)) app(app(dropWhile,p:S),nil) -> nil app(app(takeWhile,p:S),app(app(cons,x:S),xs:S)) -> app(app(app(if,app(p:S,x:S)),app(app(cons,x:S),app(app(takeWhile,p:S),xs:S))),nil) app(app(takeWhile,p:S),nil) -> nil ->->Cycle: ->->-> Pairs: APP(app(dropWhile,p:S),app(app(cons,x:S),xs:S)) -> APP(app(dropWhile,p:S),xs:S) ->->-> Rules: app(app(app(if,ttrue),x:S),y:S) -> x:S app(app(app(if,ttrue),x:S),y:S) -> y:S app(app(dropWhile,p:S),app(app(cons,x:S),xs:S)) -> app(app(app(if,app(p:S,x:S)),app(app(dropWhile,p:S),xs:S)),app(app(cons,x:S),xs:S)) app(app(dropWhile,p:S),nil) -> nil app(app(takeWhile,p:S),app(app(cons,x:S),xs:S)) -> app(app(app(if,app(p:S,x:S)),app(app(cons,x:S),app(app(takeWhile,p:S),xs:S))),nil) app(app(takeWhile,p:S),nil) -> nil The problem is decomposed in 2 subproblems. Problem 1.1: Subterm Processor: -> Pairs: APP(app(takeWhile,p:S),app(app(cons,x:S),xs:S)) -> APP(app(takeWhile,p:S),xs:S) -> Rules: app(app(app(if,ttrue),x:S),y:S) -> x:S app(app(app(if,ttrue),x:S),y:S) -> y:S app(app(dropWhile,p:S),app(app(cons,x:S),xs:S)) -> app(app(app(if,app(p:S,x:S)),app(app(dropWhile,p:S),xs:S)),app(app(cons,x:S),xs:S)) app(app(dropWhile,p:S),nil) -> nil app(app(takeWhile,p:S),app(app(cons,x:S),xs:S)) -> app(app(app(if,app(p:S,x:S)),app(app(cons,x:S),app(app(takeWhile,p:S),xs:S))),nil) app(app(takeWhile,p:S),nil) -> nil ->Projection: pi(APP) = 2 Problem 1.1: SCC Processor: -> Pairs: Empty -> Rules: app(app(app(if,ttrue),x:S),y:S) -> x:S app(app(app(if,ttrue),x:S),y:S) -> y:S app(app(dropWhile,p:S),app(app(cons,x:S),xs:S)) -> app(app(app(if,app(p:S,x:S)),app(app(dropWhile,p:S),xs:S)),app(app(cons,x:S),xs:S)) app(app(dropWhile,p:S),nil) -> nil app(app(takeWhile,p:S),app(app(cons,x:S),xs:S)) -> app(app(app(if,app(p:S,x:S)),app(app(cons,x:S),app(app(takeWhile,p:S),xs:S))),nil) app(app(takeWhile,p:S),nil) -> nil ->Strongly Connected Components: There is no strongly connected component The problem is finite. Problem 1.2: Subterm Processor: -> Pairs: APP(app(dropWhile,p:S),app(app(cons,x:S),xs:S)) -> APP(app(dropWhile,p:S),xs:S) -> Rules: app(app(app(if,ttrue),x:S),y:S) -> x:S app(app(app(if,ttrue),x:S),y:S) -> y:S app(app(dropWhile,p:S),app(app(cons,x:S),xs:S)) -> app(app(app(if,app(p:S,x:S)),app(app(dropWhile,p:S),xs:S)),app(app(cons,x:S),xs:S)) app(app(dropWhile,p:S),nil) -> nil app(app(takeWhile,p:S),app(app(cons,x:S),xs:S)) -> app(app(app(if,app(p:S,x:S)),app(app(cons,x:S),app(app(takeWhile,p:S),xs:S))),nil) app(app(takeWhile,p:S),nil) -> nil ->Projection: pi(APP) = 2 Problem 1.2: SCC Processor: -> Pairs: Empty -> Rules: app(app(app(if,ttrue),x:S),y:S) -> x:S app(app(app(if,ttrue),x:S),y:S) -> y:S app(app(dropWhile,p:S),app(app(cons,x:S),xs:S)) -> app(app(app(if,app(p:S,x:S)),app(app(dropWhile,p:S),xs:S)),app(app(cons,x:S),xs:S)) app(app(dropWhile,p:S),nil) -> nil app(app(takeWhile,p:S),app(app(cons,x:S),xs:S)) -> app(app(app(if,app(p:S,x:S)),app(app(cons,x:S),app(app(takeWhile,p:S),xs:S))),nil) app(app(takeWhile,p:S),nil) -> nil ->Strongly Connected Components: There is no strongly connected component The problem is finite.