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) linear polynomial interpretations on N: g_A(x1) = x1 + 1 g#_A(x1) = 1 A_A = 1 A#_A = 0 B_A = 4 B#_A = 2 C_A = 3 C#_A = 3 foldB_A(x1,x2) = x1 + x2 foldB#_A(x1,x2) = x1 + x2 + 5 0_A = 1 0#_A = 4 s_A(x1) = x1 + 10 s#_A(x1) = 4 f_A(x1,x2) = x1 + 10 f#_A(x1,x2) = x1 + x2 + 9 foldC_A(x1,x2) = x1 + x2 + 1 foldC#_A(x1,x2) = x1 + x2 + 4 f'_A(x1,x2) = x1 + 10 f'#_A(x1,x2) = x1 + x2 + 7 triple_A(x1,x2,x3) = x2 + x3 triple#_A(x1,x2,x3) = 5 f''_A(x1) = x1 + 2 f''#_A(x1) = x1 + 6 precedence: f' > f'' > triple > foldB = s = foldC > C = f > A > g = 0 > B