YES

Problem:
 f(a(),a()) -> f(a(),b())
 f(a(),b()) -> f(s(a()),c())
 f(s(X),c()) -> f(X,c())
 f(c(),c()) -> f(a(),a())

Proof:
 DP Processor:
  DPs:
   f#(a(),a()) -> f#(a(),b())
   f#(a(),b()) -> f#(s(a()),c())
   f#(s(X),c()) -> f#(X,c())
   f#(c(),c()) -> f#(a(),a())
  TRS:
   f(a(),a()) -> f(a(),b())
   f(a(),b()) -> f(s(a()),c())
   f(s(X),c()) -> f(X,c())
   f(c(),c()) -> f(a(),a())
  Matrix Interpretation Processor: dim=3
   
   interpretation:
    [f#](x0, x1) = [2 0 1]x0 + [1 2 0]x1,
    
          [1]
    [c] = [0]
          [3],
    
              [1 0 0]     [0]
    [s](x0) = [0 0 0]x0 + [0]
              [0 0 1]     [1],
    
          [3]
    [b] = [0]
          [3],
    
                  [1 0 0]     [0 1 1]     [0]
    [f](x0, x1) = [2 0 0]x0 + [0 0 0]x1 + [0]
                  [0 0 0]     [0 0 0]     [3],
    
          [0]
    [a] = [2]
          [1]
   orientation:
    f#(a(),a()) = 5 >= 4 = f#(a(),b())
    
    f#(a(),b()) = 4 >= 3 = f#(s(a()),c())
    
    f#(s(X),c()) = [2 0 1]X + [2] >= [2 0 1]X + [1] = f#(X,c())
    
    f#(c(),c()) = 6 >= 5 = f#(a(),a())
    
                 [3]    [3]             
    f(a(),a()) = [0] >= [0] = f(a(),b())
                 [3]    [3]             
    
                 [3]    [3]                
    f(a(),b()) = [0] >= [0] = f(s(a()),c())
                 [3]    [3]                
    
                  [1 0 0]    [3]    [1 0 0]    [3]           
    f(s(X),c()) = [2 0 0]X + [0] >= [2 0 0]X + [0] = f(X,c())
                  [0 0 0]    [3]    [0 0 0]    [3]           
    
                 [4]    [3]             
    f(c(),c()) = [2] >= [0] = f(a(),a())
                 [3]    [3]             
   problem:
    DPs:
     
    TRS:
     f(a(),a()) -> f(a(),b())
     f(a(),b()) -> f(s(a()),c())
     f(s(X),c()) -> f(X,c())
     f(c(),c()) -> f(a(),a())
   Qed