YES Problem: app(app(app(comp(),f),g),x) -> app(f,app(g,x)) app(twice(),f) -> app(app(comp(),f),f) Proof: Uncurry Processor: comp3(f,g,x) -> app(f,app(g,x)) twice1(f) -> comp2(f,f) app(comp2(x4,x3),x5) -> comp3(x4,x3,x5) app(comp1(x4),x5) -> comp2(x4,x5) app(comp(),x5) -> comp1(x5) app(twice(),x5) -> twice1(x5) DP Processor: DPs: comp{3,#}(f,g,x) -> app#(g,x) comp{3,#}(f,g,x) -> app#(f,app(g,x)) app#(comp2(x4,x3),x5) -> comp{3,#}(x4,x3,x5) app#(twice(),x5) -> twice{1,#}(x5) TRS: comp3(f,g,x) -> app(f,app(g,x)) twice1(f) -> comp2(f,f) app(comp2(x4,x3),x5) -> comp3(x4,x3,x5) app(comp1(x4),x5) -> comp2(x4,x5) app(comp(),x5) -> comp1(x5) app(twice(),x5) -> twice1(x5) TDG Processor: DPs: comp{3,#}(f,g,x) -> app#(g,x) comp{3,#}(f,g,x) -> app#(f,app(g,x)) app#(comp2(x4,x3),x5) -> comp{3,#}(x4,x3,x5) app#(twice(),x5) -> twice{1,#}(x5) TRS: comp3(f,g,x) -> app(f,app(g,x)) twice1(f) -> comp2(f,f) app(comp2(x4,x3),x5) -> comp3(x4,x3,x5) app(comp1(x4),x5) -> comp2(x4,x5) app(comp(),x5) -> comp1(x5) app(twice(),x5) -> twice1(x5) graph: app#(comp2(x4,x3),x5) -> comp{3,#}(x4,x3,x5) -> comp{3,#}(f,g,x) -> app#(f,app(g,x)) app#(comp2(x4,x3),x5) -> comp{3,#}(x4,x3,x5) -> comp{3,#}(f,g,x) -> app#(g,x) comp{3,#}(f,g,x) -> app#(g,x) -> app#(twice(),x5) -> twice{1,#}(x5) comp{3,#}(f,g,x) -> app#(g,x) -> app#(comp2(x4,x3),x5) -> comp{3,#}(x4,x3,x5) comp{3,#}(f,g,x) -> app#(f,app(g,x)) -> app#(twice(),x5) -> twice{1,#}(x5) comp{3,#}(f,g,x) -> app#(f,app(g,x)) -> app#(comp2(x4,x3),x5) -> comp{3,#}(x4,x3,x5) SCC Processor: #sccs: 1 #rules: 3 #arcs: 6/16 DPs: app#(comp2(x4,x3),x5) -> comp{3,#}(x4,x3,x5) comp{3,#}(f,g,x) -> app#(g,x) comp{3,#}(f,g,x) -> app#(f,app(g,x)) TRS: comp3(f,g,x) -> app(f,app(g,x)) twice1(f) -> comp2(f,f) app(comp2(x4,x3),x5) -> comp3(x4,x3,x5) app(comp1(x4),x5) -> comp2(x4,x5) app(comp(),x5) -> comp1(x5) app(twice(),x5) -> twice1(x5) Size-Change Termination Processor: DPs: TRS: comp3(f,g,x) -> app(f,app(g,x)) twice1(f) -> comp2(f,f) app(comp2(x4,x3),x5) -> comp3(x4,x3,x5) app(comp1(x4),x5) -> comp2(x4,x5) app(comp(),x5) -> comp1(x5) app(twice(),x5) -> twice1(x5) The DP: app#(comp2(x4,x3),x5) -> comp{3,#}(x4,x3,x5) has the edges: 0 > 1 0 > 0 1 >= 2 The DP: comp{3,#}(f,g,x) -> app#(g,x) has the edges: 1 >= 0 2 >= 1 The DP: comp{3,#}(f,g,x) -> app#(f,app(g,x)) has the edges: 0 >= 0 Qed