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())) Instead we prove termination of the uncurried system: ap(cons_0(),y) -> cons_1(y) ap(cons_1(x1),y) -> cons_2(x1,y) ap(ff_0(),y) -> ff_1(y) ap(ff_1(x1),y) -> ff_2(x1,y) ff_2(x,x) -> ap(ap(x,ff_1(x)),cons_2(x,nil_0())) -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: ap#(ff_1(x1),y) -> ff_2#(x1,y) p2: ff_2#(x,x) -> ap#(ap(x,ff_1(x)),cons_2(x,nil_0())) p3: ff_2#(x,x) -> ap#(x,ff_1(x)) and R consists of: r1: ap(cons_0(),y) -> cons_1(y) r2: ap(cons_1(x1),y) -> cons_2(x1,y) r3: ap(ff_0(),y) -> ff_1(y) r4: ap(ff_1(x1),y) -> ff_2(x1,y) r5: ff_2(x,x) -> ap(ap(x,ff_1(x)),cons_2(x,nil_0())) The estimated dependency graph contains the following SCCs: {p1, p2, p3} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: ap#(ff_1(x1),y) -> ff_2#(x1,y) p2: ff_2#(x,x) -> ap#(x,ff_1(x)) p3: ff_2#(x,x) -> ap#(ap(x,ff_1(x)),cons_2(x,nil_0())) and R consists of: r1: ap(cons_0(),y) -> cons_1(y) r2: ap(cons_1(x1),y) -> cons_2(x1,y) r3: ap(ff_0(),y) -> ff_1(y) r4: ap(ff_1(x1),y) -> ff_2(x1,y) r5: ff_2(x,x) -> ap(ap(x,ff_1(x)),cons_2(x,nil_0())) The set of usable rules consists of r1, r2, r3, r4, r5 Take the reduction pair: generalized weighted path order (>=MG, >G) base order 1: max/plus interpretation on natural numbers: ap#_A(x1,x2) = max{x1 + 19, x2 + 19} ff_1_A(x1) = max{26, x1 - 9} ff_2#_A(x1,x2) = max{45, x2 + 19} ap_A(x1,x2) = max{0, x1 - 5, x2 - 8} cons_2_A(x1,x2) = max{20, x1 - 15} nil_0_A = 12 cons_0_A = 32 cons_1_A(x1) = max{26, x1 - 9} ff_0_A = 32 ff_2_A(x1,x2) = max{13, x1 - 14, x2 - 10} base order 2: marked-algebra reduction triple (>=A, >=A!, >A!): matrix interpretation with standard point-wise order: carrier: N^1 order: standard order interpretations: ap#_A(x1,x2) = 0 ff_1_A(x1) = x1 + 1 ff_2#_A(x1,x2) = 0 ap_A(x1,x2) = x2 + 1 cons_2_A(x1,x2) = 0 nil_0_A() = 1 cons_0_A() = 1 cons_1_A(x1) = 1 ff_0_A() = 1 ff_2_A(x1,x2) = x2 + 1 ap#!_A(x1,x2) = x1 + 3 ff_1!_A(x1) = 1 ff_2#!_A(x1,x2) = x1 + 4 ap!_A(x1,x2) = x2 + 2 cons_2!_A(x1,x2) = 5 nil_0!_A() = 1 cons_0!_A() = 0 cons_1!_A(x1) = 6 ff_0!_A() = 0 ff_2!_A(x1,x2) = x2 + 2 partial status: pi(ap#) = [] pi(ff_1) = [] pi(ff_2#) = [] pi(ap) = [] pi(cons_2) = [] pi(nil_0) = [] pi(cons_0) = [] pi(cons_1) = [] pi(ff_0) = [] pi(ff_2) = [] The following rules are removed: p2, p3 -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: ap#(ff_1(x1),y) -> ff_2#(x1,y) and R consists of: r1: ap(cons_0(),y) -> cons_1(y) r2: ap(cons_1(x1),y) -> cons_2(x1,y) r3: ap(ff_0(),y) -> ff_1(y) r4: ap(ff_1(x1),y) -> ff_2(x1,y) r5: ff_2(x,x) -> ap(ap(x,ff_1(x)),cons_2(x,nil_0())) The estimated dependency graph contains the following SCCs: (no SCCs)