YES Problem 1: (VAR v_NonEmpty:S @l1:S @l2:S @t:S @t1:S @t2:S @x:S @xs:S) (RULES append(@l1:S,@l2:S) -> append#1(@l1:S,@l2:S) append#1(::(@x:S,@xs:S),@l2:S) -> ::(@x:S,append(@xs:S,@l2:S)) append#1(nil,@l2:S) -> @l2:S subtrees(@t:S) -> subtrees#1(@t:S) subtrees#1(leaf) -> nil subtrees#1(node(@x:S,@t1:S,@t2:S)) -> subtrees#2(subtrees(@t1:S),@t1:S,@t2:S,@x:S) subtrees#2(@l1:S,@t1:S,@t2:S,@x:S) -> subtrees#3(subtrees(@t2:S),@l1:S,@t1:S,@t2:S,@x:S) subtrees#3(@l2:S,@l1:S,@t1:S,@t2:S,@x:S) -> ::(node(@x:S,@t1:S,@t2:S),append(@l1:S,@l2:S)) ) (STRATEGY INNERMOST) Problem 1: Dependency Pairs Processor: -> Pairs: APPEND(@l1:S,@l2:S) -> APPEND#1(@l1:S,@l2:S) APPEND#1(::(@x:S,@xs:S),@l2:S) -> APPEND(@xs:S,@l2:S) SUBTREES(@t:S) -> SUBTREES#1(@t:S) SUBTREES#1(node(@x:S,@t1:S,@t2:S)) -> SUBTREES(@t1:S) SUBTREES#1(node(@x:S,@t1:S,@t2:S)) -> SUBTREES#2(subtrees(@t1:S),@t1:S,@t2:S,@x:S) SUBTREES#2(@l1:S,@t1:S,@t2:S,@x:S) -> SUBTREES(@t2:S) SUBTREES#2(@l1:S,@t1:S,@t2:S,@x:S) -> SUBTREES#3(subtrees(@t2:S),@l1:S,@t1:S,@t2:S,@x:S) SUBTREES#3(@l2:S,@l1:S,@t1:S,@t2:S,@x:S) -> APPEND(@l1:S,@l2:S) -> Rules: append(@l1:S,@l2:S) -> append#1(@l1:S,@l2:S) append#1(::(@x:S,@xs:S),@l2:S) -> ::(@x:S,append(@xs:S,@l2:S)) append#1(nil,@l2:S) -> @l2:S subtrees(@t:S) -> subtrees#1(@t:S) subtrees#1(leaf) -> nil subtrees#1(node(@x:S,@t1:S,@t2:S)) -> subtrees#2(subtrees(@t1:S),@t1:S,@t2:S,@x:S) subtrees#2(@l1:S,@t1:S,@t2:S,@x:S) -> subtrees#3(subtrees(@t2:S),@l1:S,@t1:S,@t2:S,@x:S) subtrees#3(@l2:S,@l1:S,@t1:S,@t2:S,@x:S) -> ::(node(@x:S,@t1:S,@t2:S),append(@l1:S,@l2:S)) Problem 1: SCC Processor: -> Pairs: APPEND(@l1:S,@l2:S) -> APPEND#1(@l1:S,@l2:S) APPEND#1(::(@x:S,@xs:S),@l2:S) -> APPEND(@xs:S,@l2:S) SUBTREES(@t:S) -> SUBTREES#1(@t:S) SUBTREES#1(node(@x:S,@t1:S,@t2:S)) -> SUBTREES(@t1:S) SUBTREES#1(node(@x:S,@t1:S,@t2:S)) -> SUBTREES#2(subtrees(@t1:S),@t1:S,@t2:S,@x:S) SUBTREES#2(@l1:S,@t1:S,@t2:S,@x:S) -> SUBTREES(@t2:S) SUBTREES#2(@l1:S,@t1:S,@t2:S,@x:S) -> SUBTREES#3(subtrees(@t2:S),@l1:S,@t1:S,@t2:S,@x:S) SUBTREES#3(@l2:S,@l1:S,@t1:S,@t2:S,@x:S) -> APPEND(@l1:S,@l2:S) -> Rules: append(@l1:S,@l2:S) -> append#1(@l1:S,@l2:S) append#1(::(@x:S,@xs:S),@l2:S) -> ::(@x:S,append(@xs:S,@l2:S)) append#1(nil,@l2:S) -> @l2:S subtrees(@t:S) -> subtrees#1(@t:S) subtrees#1(leaf) -> nil subtrees#1(node(@x:S,@t1:S,@t2:S)) -> subtrees#2(subtrees(@t1:S),@t1:S,@t2:S,@x:S) subtrees#2(@l1:S,@t1:S,@t2:S,@x:S) -> subtrees#3(subtrees(@t2:S),@l1:S,@t1:S,@t2:S,@x:S) subtrees#3(@l2:S,@l1:S,@t1:S,@t2:S,@x:S) -> ::(node(@x:S,@t1:S,@t2:S),append(@l1:S,@l2:S)) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: APPEND(@l1:S,@l2:S) -> APPEND#1(@l1:S,@l2:S) APPEND#1(::(@x:S,@xs:S),@l2:S) -> APPEND(@xs:S,@l2:S) ->->-> Rules: append(@l1:S,@l2:S) -> append#1(@l1:S,@l2:S) append#1(::(@x:S,@xs:S),@l2:S) -> ::(@x:S,append(@xs:S,@l2:S)) append#1(nil,@l2:S) -> @l2:S subtrees(@t:S) -> subtrees#1(@t:S) subtrees#1(leaf) -> nil subtrees#1(node(@x:S,@t1:S,@t2:S)) -> subtrees#2(subtrees(@t1:S),@t1:S,@t2:S,@x:S) subtrees#2(@l1:S,@t1:S,@t2:S,@x:S) -> subtrees#3(subtrees(@t2:S),@l1:S,@t1:S,@t2:S,@x:S) subtrees#3(@l2:S,@l1:S,@t1:S,@t2:S,@x:S) -> ::(node(@x:S,@t1:S,@t2:S),append(@l1:S,@l2:S)) ->->Cycle: ->->-> Pairs: SUBTREES(@t:S) -> SUBTREES#1(@t:S) SUBTREES#1(node(@x:S,@t1:S,@t2:S)) -> SUBTREES(@t1:S) SUBTREES#1(node(@x:S,@t1:S,@t2:S)) -> SUBTREES#2(subtrees(@t1:S),@t1:S,@t2:S,@x:S) SUBTREES#2(@l1:S,@t1:S,@t2:S,@x:S) -> SUBTREES(@t2:S) ->->-> Rules: append(@l1:S,@l2:S) -> append#1(@l1:S,@l2:S) append#1(::(@x:S,@xs:S),@l2:S) -> ::(@x:S,append(@xs:S,@l2:S)) append#1(nil,@l2:S) -> @l2:S subtrees(@t:S) -> subtrees#1(@t:S) subtrees#1(leaf) -> nil subtrees#1(node(@x:S,@t1:S,@t2:S)) -> subtrees#2(subtrees(@t1:S),@t1:S,@t2:S,@x:S) subtrees#2(@l1:S,@t1:S,@t2:S,@x:S) -> subtrees#3(subtrees(@t2:S),@l1:S,@t1:S,@t2:S,@x:S) subtrees#3(@l2:S,@l1:S,@t1:S,@t2:S,@x:S) -> ::(node(@x:S,@t1:S,@t2:S),append(@l1:S,@l2:S)) The problem is decomposed in 2 subproblems. Problem 1.1: Subterm Processor: -> Pairs: APPEND(@l1:S,@l2:S) -> APPEND#1(@l1:S,@l2:S) APPEND#1(::(@x:S,@xs:S),@l2:S) -> APPEND(@xs:S,@l2:S) -> Rules: append(@l1:S,@l2:S) -> append#1(@l1:S,@l2:S) append#1(::(@x:S,@xs:S),@l2:S) -> ::(@x:S,append(@xs:S,@l2:S)) append#1(nil,@l2:S) -> @l2:S subtrees(@t:S) -> subtrees#1(@t:S) subtrees#1(leaf) -> nil subtrees#1(node(@x:S,@t1:S,@t2:S)) -> subtrees#2(subtrees(@t1:S),@t1:S,@t2:S,@x:S) subtrees#2(@l1:S,@t1:S,@t2:S,@x:S) -> subtrees#3(subtrees(@t2:S),@l1:S,@t1:S,@t2:S,@x:S) subtrees#3(@l2:S,@l1:S,@t1:S,@t2:S,@x:S) -> ::(node(@x:S,@t1:S,@t2:S),append(@l1:S,@l2:S)) ->Projection: pi(APPEND) = 1 pi(APPEND#1) = 1 Problem 1.1: SCC Processor: -> Pairs: APPEND(@l1:S,@l2:S) -> APPEND#1(@l1:S,@l2:S) -> Rules: append(@l1:S,@l2:S) -> append#1(@l1:S,@l2:S) append#1(::(@x:S,@xs:S),@l2:S) -> ::(@x:S,append(@xs:S,@l2:S)) append#1(nil,@l2:S) -> @l2:S subtrees(@t:S) -> subtrees#1(@t:S) subtrees#1(leaf) -> nil subtrees#1(node(@x:S,@t1:S,@t2:S)) -> subtrees#2(subtrees(@t1:S),@t1:S,@t2:S,@x:S) subtrees#2(@l1:S,@t1:S,@t2:S,@x:S) -> subtrees#3(subtrees(@t2:S),@l1:S,@t1:S,@t2:S,@x:S) subtrees#3(@l2:S,@l1:S,@t1:S,@t2:S,@x:S) -> ::(node(@x:S,@t1:S,@t2:S),append(@l1:S,@l2:S)) ->Strongly Connected Components: There is no strongly connected component The problem is finite. Problem 1.2: Subterm Processor: -> Pairs: SUBTREES(@t:S) -> SUBTREES#1(@t:S) SUBTREES#1(node(@x:S,@t1:S,@t2:S)) -> SUBTREES(@t1:S) SUBTREES#1(node(@x:S,@t1:S,@t2:S)) -> SUBTREES#2(subtrees(@t1:S),@t1:S,@t2:S,@x:S) SUBTREES#2(@l1:S,@t1:S,@t2:S,@x:S) -> SUBTREES(@t2:S) -> Rules: append(@l1:S,@l2:S) -> append#1(@l1:S,@l2:S) append#1(::(@x:S,@xs:S),@l2:S) -> ::(@x:S,append(@xs:S,@l2:S)) append#1(nil,@l2:S) -> @l2:S subtrees(@t:S) -> subtrees#1(@t:S) subtrees#1(leaf) -> nil subtrees#1(node(@x:S,@t1:S,@t2:S)) -> subtrees#2(subtrees(@t1:S),@t1:S,@t2:S,@x:S) subtrees#2(@l1:S,@t1:S,@t2:S,@x:S) -> subtrees#3(subtrees(@t2:S),@l1:S,@t1:S,@t2:S,@x:S) subtrees#3(@l2:S,@l1:S,@t1:S,@t2:S,@x:S) -> ::(node(@x:S,@t1:S,@t2:S),append(@l1:S,@l2:S)) ->Projection: pi(SUBTREES) = 1 pi(SUBTREES#1) = 1 pi(SUBTREES#2) = 3 Problem 1.2: SCC Processor: -> Pairs: SUBTREES(@t:S) -> SUBTREES#1(@t:S) SUBTREES#2(@l1:S,@t1:S,@t2:S,@x:S) -> SUBTREES(@t2:S) -> Rules: append(@l1:S,@l2:S) -> append#1(@l1:S,@l2:S) append#1(::(@x:S,@xs:S),@l2:S) -> ::(@x:S,append(@xs:S,@l2:S)) append#1(nil,@l2:S) -> @l2:S subtrees(@t:S) -> subtrees#1(@t:S) subtrees#1(leaf) -> nil subtrees#1(node(@x:S,@t1:S,@t2:S)) -> subtrees#2(subtrees(@t1:S),@t1:S,@t2:S,@x:S) subtrees#2(@l1:S,@t1:S,@t2:S,@x:S) -> subtrees#3(subtrees(@t2:S),@l1:S,@t1:S,@t2:S,@x:S) subtrees#3(@l2:S,@l1:S,@t1:S,@t2:S,@x:S) -> ::(node(@x:S,@t1:S,@t2:S),append(@l1:S,@l2:S)) ->Strongly Connected Components: There is no strongly connected component The problem is finite.