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: trivial reduction triple (T x T, T x T, Φ) base order 2: lexicographic combination of reduction triples: 1. marked-algebra reduction triple (>=A, >=A!, >A!): max/plus interpretation on natural numbers: ap#_A(x1,x2) = max{0, x1 - 9, x2 - 9} ff_1_A(x1) = max{8, x1 - 10} ff_2#_A(x1,x2) = max{0, x1 - 19, x2 - 9} ap_A(x1,x2) = max{6, x1 - 22, x2 - 10} cons_2_A(x1,x2) = max{6, x1 - 35} nil_0_A = 0 cons_0_A = 0 cons_1_A(x1) = max{6, x1 - 13} ff_0_A = 30 ff_2_A(x1,x2) = max{6, x1 - 42, x2 - 45} ap#!_A(x1,x2) = max{x1 + 21, x2 + 21} ff_1!_A(x1) = 0 ff_2#!_A(x1,x2) = max{29, x1 + 2, x2 + 21} ap!_A(x1,x2) = x1 + 19 cons_2!_A(x1,x2) = max{7, x1 + 3} nil_0!_A = 28 cons_0!_A = 2 cons_1!_A(x1) = 1 ff_0!_A = 0 ff_2!_A(x1,x2) = max{26, x1 + 8} 2. marked-algebra reduction triple (>=A, >=A!, >A!): max/plus interpretation on natural numbers: ap#_A(x1,x2) = 1 ff_1_A(x1) = max{16, x1 + 3} ff_2#_A(x1,x2) = 1 ap_A(x1,x2) = max{x1 - 17, x2 + 3} cons_2_A(x1,x2) = max{0, x1 - 17, x2 - 4} nil_0_A = 0 cons_0_A = 33 cons_1_A(x1) = max{16, x1 + 3} ff_0_A = 33 ff_2_A(x1,x2) = max{3, x1 - 14, x2 - 2} ap#!_A(x1,x2) = max{1, x1 - 2, x2 - 21} ff_1!_A(x1) = 11 ff_2#!_A(x1,x2) = max{13, x1 - 1} ap!_A(x1,x2) = max{x1 - 2, x2 + 10} cons_2!_A(x1,x2) = max{13, x1 - 1} nil_0!_A = 13 cons_0!_A = 1 cons_1!_A(x1) = x1 + 10 ff_0!_A = 11 ff_2!_A(x1,x2) = max{12, x2 + 5} partial status: pi(ap#) = [2] pi(ff_1) = [] pi(ff_2#) = [2] pi(ap) = [2] pi(cons_2) = [] pi(nil_0) = [] pi(cons_0) = [] pi(cons_1) = [] pi(ff_0) = [] pi(ff_2) = [2] The following rules are removed: p1, p2, p3 Then no dependency pair remains.