YES Problem: app(app(append(),nil()),ys) -> ys app(app(append(),app(app(cons(),x),xs)),ys) -> app(app(cons(),x),app(app(append(),xs),ys)) app(app(flatwith(),f),app(leaf(),x)) -> app(app(cons(),app(f,x)),nil()) app(app(flatwith(),f),app(node(),xs)) -> app(app(flatwithsub(),f),xs) app(app(flatwithsub(),f),nil()) -> nil() app(app(flatwithsub(),f),app(app(cons(),x),xs)) -> app(app(append(),app(app(flatwith(),f),x)),app(app(flatwithsub(),f),xs)) Proof: DP Processor: DPs: app#(app(append(),app(app(cons(),x),xs)),ys) -> app#(append(),xs) app#(app(append(),app(app(cons(),x),xs)),ys) -> app#(app(append(),xs),ys) app#(app(append(),app(app(cons(),x),xs)),ys) -> app#(app(cons(),x),app(app(append(),xs),ys)) app#(app(flatwith(),f),app(leaf(),x)) -> app#(f,x) app#(app(flatwith(),f),app(leaf(),x)) -> app#(cons(),app(f,x)) app#(app(flatwith(),f),app(leaf(),x)) -> app#(app(cons(),app(f,x)),nil()) app#(app(flatwith(),f),app(node(),xs)) -> app#(flatwithsub(),f) app#(app(flatwith(),f),app(node(),xs)) -> app#(app(flatwithsub(),f),xs) app#(app(flatwithsub(),f),app(app(cons(),x),xs)) -> app#(app(flatwithsub(),f),xs) app#(app(flatwithsub(),f),app(app(cons(),x),xs)) -> app#(flatwith(),f) app#(app(flatwithsub(),f),app(app(cons(),x),xs)) -> app#(app(flatwith(),f),x) app#(app(flatwithsub(),f),app(app(cons(),x),xs)) -> app#(append(),app(app(flatwith(),f),x)) app#(app(flatwithsub(),f),app(app(cons(),x),xs)) -> app#(app(append(),app(app(flatwith(),f),x)),app(app(flatwithsub(),f),xs)) TRS: app(app(append(),nil()),ys) -> ys app(app(append(),app(app(cons(),x),xs)),ys) -> app(app(cons(),x),app(app(append(),xs),ys)) app(app(flatwith(),f),app(leaf(),x)) -> app(app(cons(),app(f,x)),nil()) app(app(flatwith(),f),app(node(),xs)) -> app(app(flatwithsub(),f),xs) app(app(flatwithsub(),f),nil()) -> nil() app(app(flatwithsub(),f),app(app(cons(),x),xs)) -> app(app(append(),app(app(flatwith(),f),x)),app(app(flatwithsub(),f),xs)) EDG Processor: DPs: app#(app(append(),app(app(cons(),x),xs)),ys) -> app#(append(),xs) app#(app(append(),app(app(cons(),x),xs)),ys) -> app#(app(append(),xs),ys) app#(app(append(),app(app(cons(),x),xs)),ys) -> app#(app(cons(),x),app(app(append(),xs),ys)) app#(app(flatwith(),f),app(leaf(),x)) -> app#(f,x) app#(app(flatwith(),f),app(leaf(),x)) -> app#(cons(),app(f,x)) app#(app(flatwith(),f),app(leaf(),x)) -> app#(app(cons(),app(f,x)),nil()) app#(app(flatwith(),f),app(node(),xs)) -> app#(flatwithsub(),f) app#(app(flatwith(),f),app(node(),xs)) -> app#(app(flatwithsub(),f),xs) app#(app(flatwithsub(),f),app(app(cons(),x),xs)) -> app#(app(flatwithsub(),f),xs) app#(app(flatwithsub(),f),app(app(cons(),x),xs)) -> app#(flatwith(),f) app#(app(flatwithsub(),f),app(app(cons(),x),xs)) -> app#(app(flatwith(),f),x) app#(app(flatwithsub(),f),app(app(cons(),x),xs)) -> app#(append(),app(app(flatwith(),f),x)) app#(app(flatwithsub(),f),app(app(cons(),x),xs)) -> app#(app(append(),app(app(flatwith(),f),x)),app(app(flatwithsub(),f),xs)) TRS: app(app(append(),nil()),ys) -> ys app(app(append(),app(app(cons(),x),xs)),ys) -> app(app(cons(),x),app(app(append(),xs),ys)) app(app(flatwith(),f),app(leaf(),x)) -> app(app(cons(),app(f,x)),nil()) app(app(flatwith(),f),app(node(),xs)) -> app(app(flatwithsub(),f),xs) app(app(flatwithsub(),f),nil()) -> nil() app(app(flatwithsub(),f),app(app(cons(),x),xs)) -> app(app(append(),app(app(flatwith(),f),x)),app(app(flatwithsub(),f),xs)) graph: app#(app(flatwithsub(),f),app(app(cons(),x),xs)) -> app#(app(flatwithsub(),f),xs) -> app#(app(flatwithsub(),f),app(app(cons(),x),xs)) -> app#(app(flatwithsub(),f),xs) app#(app(flatwithsub(),f),app(app(cons(),x),xs)) -> app#(app(flatwithsub(),f),xs) -> app#(app(flatwithsub(),f),app(app(cons(),x),xs)) -> app#(flatwith(),f) app#(app(flatwithsub(),f),app(app(cons(),x),xs)) -> app#(app(flatwithsub(),f),xs) -> app#(app(flatwithsub(),f),app(app(cons(),x),xs)) -> app#(app(flatwith(),f),x) app#(app(flatwithsub(),f),app(app(cons(),x),xs)) -> app#(app(flatwithsub(),f),xs) -> app#(app(flatwithsub(),f),app(app(cons(),x),xs)) -> app#(append(),app(app(flatwith(),f),x)) app#(app(flatwithsub(),f),app(app(cons(),x),xs)) -> app#(app(flatwithsub(),f),xs) -> app#(app(flatwithsub(),f),app(app(cons(),x),xs)) -> app#(app(append(),app(app(flatwith(),f),x)),app(app(flatwithsub(),f),xs)) app#(app(flatwithsub(),f),app(app(cons(),x),xs)) -> app#(app(flatwith(),f),x) -> app#(app(flatwith(),f),app(leaf(),x)) -> app#(f,x) app#(app(flatwithsub(),f),app(app(cons(),x),xs)) -> app#(app(flatwith(),f),x) -> app#(app(flatwith(),f),app(leaf(),x)) -> app#(cons(),app(f,x)) app#(app(flatwithsub(),f),app(app(cons(),x),xs)) -> app#(app(flatwith(),f),x) -> app#(app(flatwith(),f),app(leaf(),x)) -> app#(app(cons(),app(f,x)),nil()) app#(app(flatwithsub(),f),app(app(cons(),x),xs)) -> app#(app(flatwith(),f),x) -> app#(app(flatwith(),f),app(node(),xs)) -> app#(flatwithsub(),f) app#(app(flatwithsub(),f),app(app(cons(),x),xs)) -> app#(app(flatwith(),f),x) -> app#(app(flatwith(),f),app(node(),xs)) -> app#(app(flatwithsub(),f),xs) app#(app(flatwithsub(),f),app(app(cons(),x),xs)) -> app#(app(append(),app(app(flatwith(),f),x)),app(app(flatwithsub(),f),xs)) -> app#(app(append(),app(app(cons(),x),xs)),ys) -> app#(append(),xs) app#(app(flatwithsub(),f),app(app(cons(),x),xs)) -> app#(app(append(),app(app(flatwith(),f),x)),app(app(flatwithsub(),f),xs)) -> app#(app(append(),app(app(cons(),x),xs)),ys) -> app#(app(append(),xs),ys) app#(app(flatwithsub(),f),app(app(cons(),x),xs)) -> app#(app(append(),app(app(flatwith(),f),x)),app(app(flatwithsub(),f),xs)) -> app#(app(append(),app(app(cons(),x),xs)),ys) -> app#(app(cons(),x),app(app(append(),xs),ys)) app#(app(flatwith(),f),app(node(),xs)) -> app#(app(flatwithsub(),f),xs) -> app#(app(flatwithsub(),f),app(app(cons(),x),xs)) -> app#(app(flatwithsub(),f),xs) app#(app(flatwith(),f),app(node(),xs)) -> app#(app(flatwithsub(),f),xs) -> app#(app(flatwithsub(),f),app(app(cons(),x),xs)) -> app#(flatwith(),f) app#(app(flatwith(),f),app(node(),xs)) -> app#(app(flatwithsub(),f),xs) -> app#(app(flatwithsub(),f),app(app(cons(),x),xs)) -> app#(app(flatwith(),f),x) app#(app(flatwith(),f),app(node(),xs)) -> app#(app(flatwithsub(),f),xs) -> app#(app(flatwithsub(),f),app(app(cons(),x),xs)) -> app#(append(),app(app(flatwith(),f),x)) app#(app(flatwith(),f),app(node(),xs)) -> app#(app(flatwithsub(),f),xs) -> app#(app(flatwithsub(),f),app(app(cons(),x),xs)) -> app#(app(append(),app(app(flatwith(),f),x)),app(app(flatwithsub(),f),xs)) app#(app(flatwith(),f),app(leaf(),x)) -> app#(f,x) -> app#(app(append(),app(app(cons(),x),xs)),ys) -> app#(append(),xs) app#(app(flatwith(),f),app(leaf(),x)) -> app#(f,x) -> app#(app(append(),app(app(cons(),x),xs)),ys) -> app#(app(append(),xs),ys) app#(app(flatwith(),f),app(leaf(),x)) -> app#(f,x) -> app#(app(append(),app(app(cons(),x),xs)),ys) -> app#(app(cons(),x),app(app(append(),xs),ys)) app#(app(flatwith(),f),app(leaf(),x)) -> app#(f,x) -> app#(app(flatwith(),f),app(leaf(),x)) -> app#(f,x) app#(app(flatwith(),f),app(leaf(),x)) -> app#(f,x) -> app#(app(flatwith(),f),app(leaf(),x)) -> app#(cons(),app(f,x)) app#(app(flatwith(),f),app(leaf(),x)) -> app#(f,x) -> app#(app(flatwith(),f),app(leaf(),x)) -> app#(app(cons(),app(f,x)),nil()) app#(app(flatwith(),f),app(leaf(),x)) -> app#(f,x) -> app#(app(flatwith(),f),app(node(),xs)) -> app#(flatwithsub(),f) app#(app(flatwith(),f),app(leaf(),x)) -> app#(f,x) -> app#(app(flatwith(),f),app(node(),xs)) -> app#(app(flatwithsub(),f),xs) app#(app(flatwith(),f),app(leaf(),x)) -> app#(f,x) -> app#(app(flatwithsub(),f),app(app(cons(),x),xs)) -> app#(app(flatwithsub(),f),xs) app#(app(flatwith(),f),app(leaf(),x)) -> app#(f,x) -> app#(app(flatwithsub(),f),app(app(cons(),x),xs)) -> app#(flatwith(),f) app#(app(flatwith(),f),app(leaf(),x)) -> app#(f,x) -> app#(app(flatwithsub(),f),app(app(cons(),x),xs)) -> app#(app(flatwith(),f),x) app#(app(flatwith(),f),app(leaf(),x)) -> app#(f,x) -> app#(app(flatwithsub(),f),app(app(cons(),x),xs)) -> app#(append(),app(app(flatwith(),f),x)) app#(app(flatwith(),f),app(leaf(),x)) -> app#(f,x) -> app#(app(flatwithsub(),f),app(app(cons(),x),xs)) -> app#(app(append(),app(app(flatwith(),f),x)),app(app(flatwithsub(),f),xs)) app#(app(append(),app(app(cons(),x),xs)),ys) -> app#(app(append(),xs),ys) -> app#(app(append(),app(app(cons(),x),xs)),ys) -> app#(append(),xs) app#(app(append(),app(app(cons(),x),xs)),ys) -> app#(app(append(),xs),ys) -> app#(app(append(),app(app(cons(),x),xs)),ys) -> app#(app(append(),xs),ys) app#(app(append(),app(app(cons(),x),xs)),ys) -> app#(app(append(),xs),ys) -> app#(app(append(),app(app(cons(),x),xs)),ys) -> app#(app(cons(),x),app(app(append(),xs),ys)) SCC Processor: #sccs: 2 #rules: 5 #arcs: 34/169 DPs: app#(app(flatwithsub(),f),app(app(cons(),x),xs)) -> app#(app(flatwithsub(),f),xs) app#(app(flatwithsub(),f),app(app(cons(),x),xs)) -> app#(app(flatwith(),f),x) app#(app(flatwith(),f),app(node(),xs)) -> app#(app(flatwithsub(),f),xs) app#(app(flatwith(),f),app(leaf(),x)) -> app#(f,x) TRS: app(app(append(),nil()),ys) -> ys app(app(append(),app(app(cons(),x),xs)),ys) -> app(app(cons(),x),app(app(append(),xs),ys)) app(app(flatwith(),f),app(leaf(),x)) -> app(app(cons(),app(f,x)),nil()) app(app(flatwith(),f),app(node(),xs)) -> app(app(flatwithsub(),f),xs) app(app(flatwithsub(),f),nil()) -> nil() app(app(flatwithsub(),f),app(app(cons(),x),xs)) -> app(app(append(),app(app(flatwith(),f),x)),app(app(flatwithsub(),f),xs)) Subterm Criterion Processor: simple projection: pi(app#) = 1 problem: DPs: TRS: app(app(append(),nil()),ys) -> ys app(app(append(),app(app(cons(),x),xs)),ys) -> app(app(cons(),x),app(app(append(),xs),ys)) app(app(flatwith(),f),app(leaf(),x)) -> app(app(cons(),app(f,x)),nil()) app(app(flatwith(),f),app(node(),xs)) -> app(app(flatwithsub(),f),xs) app(app(flatwithsub(),f),nil()) -> nil() app(app(flatwithsub(),f),app(app(cons(),x),xs)) -> app(app(append(),app(app(flatwith(),f),x)),app(app(flatwithsub(),f),xs)) Qed DPs: app#(app(append(),app(app(cons(),x),xs)),ys) -> app#(app(append(),xs),ys) TRS: app(app(append(),nil()),ys) -> ys app(app(append(),app(app(cons(),x),xs)),ys) -> app(app(cons(),x),app(app(append(),xs),ys)) app(app(flatwith(),f),app(leaf(),x)) -> app(app(cons(),app(f,x)),nil()) app(app(flatwith(),f),app(node(),xs)) -> app(app(flatwithsub(),f),xs) app(app(flatwithsub(),f),nil()) -> nil() app(app(flatwithsub(),f),app(app(cons(),x),xs)) -> app(app(append(),app(app(flatwith(),f),x)),app(app(flatwithsub(),f),xs)) Usable Rule Processor: DPs: app#(app(append(),app(app(cons(),x),xs)),ys) -> app#(app(append(),xs),ys) TRS: Bounds Processor: bound: 1 enrichment: match-dp automaton: final states: {5} transitions: app{#,0}(6,4) -> 5* app0(3,1) -> 3* app0(3,3) -> 3* app0(1,2) -> 3* app0(2,1) -> 3* app0(2,3) -> 3* app0(3,2) -> 3* app0(1,1) -> 3* app0(1,3) -> 3* app0(2,2) -> 3* app0(2,4) -> 6* append0() -> 2* cons0() -> 1* app{#,1}(8,4) -> 5* app1(7,1) -> 8* app1(7,3) -> 8* app1(7,2) -> 8* append1() -> 7* 1 -> 4* 2 -> 4* 3 -> 4* problem: DPs: TRS: Qed