YES TRS: g(A()) -> A() g(B()) -> A() g(B()) -> B() g(C()) -> A() g(C()) -> B() g(C()) -> C() foldB(t,0()) -> t foldB(t,s(n)) -> f(foldB(t,n),B()) foldC(t,0()) -> t foldC(t,s(n)) -> f(foldC(t,n),C()) f(t,x) -> f'(t,g(x)) f'(triple(a,b,c),C()) -> triple(a,b,s(c)) f'(triple(a,b,c),B()) -> f(triple(a,b,c),A()) f'(triple(a,b,c),A()) -> f''(foldB(triple(s(a),0(),c),b)) f''(triple(a,b,c)) -> foldC(triple(a,b,0()),c) fold(t,x,0()) -> t fold(t,x,s(n)) -> f(fold(t,x,n),x) linear polynomial interpretations on N: g_A(x1) = x1 + 1 g#_A(x1) = 13 A_A = 1 A#_A = 0 B_A = 4 B#_A = 1 C_A = 3 C#_A = 2 foldB_A(x1,x2) = x1 + x2 + 1 foldB#_A(x1,x2) = x1 + x2 + 9 0_A = 1 0#_A = 1 s_A(x1) = x1 + 11 s#_A(x1) = 3 f_A(x1,x2) = x1 + 11 f#_A(x1,x2) = x1 + x2 + 14 foldC_A(x1,x2) = x1 + x2 + 1 foldC#_A(x1,x2) = x1 + x2 + 8 f'_A(x1,x2) = x1 + 11 f'#_A(x1,x2) = x1 + x2 + 12 triple_A(x1,x2,x3) = x2 + x3 + 1 triple#_A(x1,x2,x3) = x3 + 4 f''_A(x1) = x1 + 2 f''#_A(x1) = x1 + 10 fold_A(x1,x2,x3) = x1 + x3 + 1 fold#_A(x1,x2,x3) = x1 + x2 + x3 + 5 precedence: g > A > f' > f'' > foldC = triple > foldB = 0 = s > C = f = fold > B