YES We show the termination of the TRS R: ap(ap(ff(),x),x) -> ap(ap(x,ap(ff(),x)),ap(ap(cons(),x),nil())) -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: ap#(ap(ff(),x),x) -> ap#(ap(x,ap(ff(),x)),ap(ap(cons(),x),nil())) p2: ap#(ap(ff(),x),x) -> ap#(x,ap(ff(),x)) p3: ap#(ap(ff(),x),x) -> ap#(ap(cons(),x),nil()) p4: ap#(ap(ff(),x),x) -> ap#(cons(),x) and R consists of: r1: ap(ap(ff(),x),x) -> ap(ap(x,ap(ff(),x)),ap(ap(cons(),x),nil())) The estimated dependency graph contains the following SCCs: {p1, p2} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: ap#(ap(ff(),x),x) -> ap#(ap(x,ap(ff(),x)),ap(ap(cons(),x),nil())) p2: ap#(ap(ff(),x),x) -> ap#(x,ap(ff(),x)) and R consists of: r1: ap(ap(ff(),x),x) -> ap(ap(x,ap(ff(),x)),ap(ap(cons(),x),nil())) The set of usable rules consists of r1 Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: standard order interpretations: ap#_A(x1,x2) = ((0,1),(0,0)) x1 + ((1,0),(0,0)) x2 + (4,1) ap_A(x1,x2) = ((0,0),(1,0)) x1 + ((0,0),(0,1)) x2 ff_A() = (3,2) cons_A() = (8,4) nil_A() = (0,0) precedence: ff = nil > cons > ap# = ap partial status: pi(ap#) = [] pi(ap) = [] pi(ff) = [] pi(cons) = [] pi(nil) = [] The next rules are strictly ordered: p2 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: ap#(ap(ff(),x),x) -> ap#(ap(x,ap(ff(),x)),ap(ap(cons(),x),nil())) and R consists of: r1: ap(ap(ff(),x),x) -> ap(ap(x,ap(ff(),x)),ap(ap(cons(),x),nil())) The estimated dependency graph contains the following SCCs: {p1} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: ap#(ap(ff(),x),x) -> ap#(ap(x,ap(ff(),x)),ap(ap(cons(),x),nil())) and R consists of: r1: ap(ap(ff(),x),x) -> ap(ap(x,ap(ff(),x)),ap(ap(cons(),x),nil())) The set of usable rules consists of r1 Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: standard order interpretations: ap#_A(x1,x2) = x1 + ((0,1),(0,0)) x2 + (2,2) ap_A(x1,x2) = ((0,1),(0,0)) x1 + ((0,0),(0,1)) x2 + (3,0) ff_A() = (1,1) cons_A() = (7,1) nil_A() = (2,0) precedence: ap# = ff > ap = nil > cons partial status: pi(ap#) = [1] pi(ap) = [] pi(ff) = [] pi(cons) = [] pi(nil) = [] The next rules are strictly ordered: p1 We remove them from the problem. Then no dependency pair remains.