MAYBE

Problem:
 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)

Proof:
 RT Transformation Processor:
  strict:
   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)
  weak:
   
  Matrix Interpretation Processor:
   dimension: 1
   interpretation:
    [f''](x0) = x0 + 4,
    
    [triple](x0, x1, x2) = x0 + x1 + x2 + 19,
    
    [f'](x0, x1) = x0 + x1 + 4,
    
    [foldC](x0, x1) = x0 + x1 + 2,
    
    [f](x0, x1) = x0 + x1 + 8,
    
    [s](x0) = x0 + 25,
    
    [foldB](x0, x1) = x0 + x1 + 12,
    
    [0] = 1,
    
    [C] = 8,
    
    [B] = 12,
    
    [g](x0) = x0 + 29,
    
    [A] = 5
   orientation:
    g(A()) = 34 >= 5 = A()
    
    g(B()) = 41 >= 5 = A()
    
    g(B()) = 41 >= 12 = B()
    
    g(C()) = 37 >= 5 = A()
    
    g(C()) = 37 >= 12 = B()
    
    g(C()) = 37 >= 8 = C()
    
    foldB(t,0()) = t + 13 >= t = t
    
    foldB(t,s(n)) = n + t + 37 >= n + t + 32 = f(foldB(t,n),B())
    
    foldC(t,0()) = t + 3 >= t = t
    
    foldC(t,s(n)) = n + t + 27 >= n + t + 18 = f(foldC(t,n),C())
    
    f(t,x) = t + x + 8 >= t + x + 33 = f'(t,g(x))
    
    f'(triple(a,b,c),C()) = a + b + c + 31 >= a + b + c + 44 = triple(a,b,s(c))
    
    f'(triple(a,b,c),B()) = a + b + c + 35 >= a + b + c + 32 = f(triple(a,b,c),A())
    
    f'(triple(a,b,c),A()) = a + b + c + 28 >= a + b + c + 61 = f''(foldB(triple(s(a),0(),c),b))
    
    f''(triple(a,b,c)) = a + b + c + 23 >= a + b + c + 22 = foldC(triple(a,b,0()),c)
   problem:
    strict:
     f(t,x) -> f'(t,g(x))
     f'(triple(a,b,c),C()) -> triple(a,b,s(c))
     f'(triple(a,b,c),A()) -> f''(foldB(triple(s(a),0(),c),b))
    weak:
     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'(triple(a,b,c),B()) -> f(triple(a,b,c),A())
     f''(triple(a,b,c)) -> foldC(triple(a,b,0()),c)
   Matrix Interpretation Processor:
    dimension: 1
    interpretation:
     [f''](x0) = x0,
     
     [triple](x0, x1, x2) = x0 + x1 + x2,
     
     [f'](x0, x1) = x0 + x1 + 27,
     
     [foldC](x0, x1) = x0 + x1,
     
     [f](x0, x1) = x0 + x1,
     
     [s](x0) = x0,
     
     [foldB](x0, x1) = x0 + x1 + 2,
     
     [0] = 0,
     
     [C] = 0,
     
     [B] = 0,
     
     [g](x0) = x0 + 3,
     
     [A] = 2
    orientation:
     f(t,x) = t + x >= t + x + 30 = f'(t,g(x))
     
     f'(triple(a,b,c),C()) = a + b + c + 27 >= a + b + c = triple(a,b,s(c))
     
     f'(triple(a,b,c),A()) = a + b + c + 29 >= a + b + c + 2 = f''(foldB(triple(s(a),0(),c),b))
     
     g(A()) = 5 >= 2 = A()
     
     g(B()) = 3 >= 2 = A()
     
     g(B()) = 3 >= 0 = B()
     
     g(C()) = 3 >= 2 = A()
     
     g(C()) = 3 >= 0 = B()
     
     g(C()) = 3 >= 0 = C()
     
     foldB(t,0()) = t + 2 >= t = t
     
     foldB(t,s(n)) = n + t + 2 >= n + t + 2 = f(foldB(t,n),B())
     
     foldC(t,0()) = t >= t = t
     
     foldC(t,s(n)) = n + t >= n + t = f(foldC(t,n),C())
     
     f'(triple(a,b,c),B()) = a + b + c + 27 >= a + b + c + 2 = f(triple(a,b,c),A())
     
     f''(triple(a,b,c)) = a + b + c >= a + b + c = foldC(triple(a,b,0()),c)
    problem:
     strict:
      f(t,x) -> f'(t,g(x))
     weak:
      f'(triple(a,b,c),C()) -> triple(a,b,s(c))
      f'(triple(a,b,c),A()) -> f''(foldB(triple(s(a),0(),c),b))
      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'(triple(a,b,c),B()) -> f(triple(a,b,c),A())
      f''(triple(a,b,c)) -> foldC(triple(a,b,0()),c)
    Open