YES

Problem:
 a(a(x1)) -> b(b(x1))
 c(c(b(x1))) -> d(c(a(x1)))
 a(x1) -> d(c(c(x1)))
 c(d(x1)) -> b(c(x1))

Proof:
 Arctic Interpretation Processor:
  dimension: 2
  interpretation:
             [0  1 ]  
   [d](x0) = [-& 0 ]x0,
   
             [0  -&]  
   [c](x0) = [-& -&]x0,
   
             [0  0 ]  
   [b](x0) = [-& -&]x0,
   
             [0 0]  
   [a](x0) = [2 2]x0
  orientation:
              [2 2]      [0  0 ]             
   a(a(x1)) = [4 4]x1 >= [-& -&]x1 = b(b(x1))
   
                 [0  0 ]      [0  0 ]                
   c(c(b(x1))) = [-& -&]x1 >= [-& -&]x1 = d(c(a(x1)))
   
           [0 0]      [0  -&]                
   a(x1) = [2 2]x1 >= [-& -&]x1 = d(c(c(x1)))
   
              [0  1 ]      [0  -&]             
   c(d(x1)) = [-& -&]x1 >= [-& -&]x1 = b(c(x1))
  problem:
   c(c(b(x1))) -> d(c(a(x1)))
   a(x1) -> d(c(c(x1)))
   c(d(x1)) -> b(c(x1))
  String Reversal Processor:
   b(c(c(x1))) -> a(c(d(x1)))
   a(x1) -> c(c(d(x1)))
   d(c(x1)) -> c(b(x1))
   DP Processor:
    DPs:
     b#(c(c(x1))) -> d#(x1)
     b#(c(c(x1))) -> a#(c(d(x1)))
     a#(x1) -> d#(x1)
     d#(c(x1)) -> b#(x1)
    TRS:
     b(c(c(x1))) -> a(c(d(x1)))
     a(x1) -> c(c(d(x1)))
     d(c(x1)) -> c(b(x1))
    TDG Processor:
     DPs:
      b#(c(c(x1))) -> d#(x1)
      b#(c(c(x1))) -> a#(c(d(x1)))
      a#(x1) -> d#(x1)
      d#(c(x1)) -> b#(x1)
     TRS:
      b(c(c(x1))) -> a(c(d(x1)))
      a(x1) -> c(c(d(x1)))
      d(c(x1)) -> c(b(x1))
     graph:
      a#(x1) -> d#(x1) -> d#(c(x1)) -> b#(x1)
      d#(c(x1)) -> b#(x1) -> b#(c(c(x1))) -> a#(c(d(x1)))
      d#(c(x1)) -> b#(x1) -> b#(c(c(x1))) -> d#(x1)
      b#(c(c(x1))) -> a#(c(d(x1))) -> a#(x1) -> d#(x1)
      b#(c(c(x1))) -> d#(x1) -> d#(c(x1)) -> b#(x1)
     Matrix Interpretation Processor: dim=4
      
      interpretation:
       [a#](x0) = [0 0 0 1]x0,
       
       [d#](x0) = [0 0 0 1]x0,
       
       [b#](x0) = [0 0 1 0]x0,
       
                 [0 0 0 1]     [1]
                 [0 0 0 0]     [0]
       [d](x0) = [0 0 0 1]x0 + [0]
                 [0 0 0 1]     [0],
       
                 [0 0 0 1]     [1]
                 [0 0 0 0]     [0]
       [c](x0) = [1 0 0 0]x0 + [0]
                 [0 0 1 0]     [0],
       
                 [0 0 1 0]  
                 [0 0 0 0]  
       [b](x0) = [0 0 1 0]x0
                 [0 0 1 0]  ,
       
                 [0 1 0 1]     [1]
                 [0 0 0 0]     [0]
       [a](x0) = [0 0 0 1]x0 + [1]
                 [0 1 0 1]     [1]
      orientation:
       b#(c(c(x1))) = [0 0 0 1]x1 + [1] >= [0 0 0 1]x1 = d#(x1)
       
       b#(c(c(x1))) = [0 0 0 1]x1 + [1] >= [0 0 0 1]x1 = a#(c(d(x1)))
       
       a#(x1) = [0 0 0 1]x1 >= [0 0 0 1]x1 = d#(x1)
       
       d#(c(x1)) = [0 0 1 0]x1 >= [0 0 1 0]x1 = b#(x1)
       
                     [0 0 0 1]     [1]    [0 0 0 1]     [1]              
                     [0 0 0 0]     [0]    [0 0 0 0]     [0]              
       b(c(c(x1))) = [0 0 0 1]x1 + [1] >= [0 0 0 1]x1 + [1] = a(c(d(x1)))
                     [0 0 0 1]     [1]    [0 0 0 1]     [1]              
       
               [0 1 0 1]     [1]    [0 0 0 1]     [1]              
               [0 0 0 0]     [0]    [0 0 0 0]     [0]              
       a(x1) = [0 0 0 1]x1 + [1] >= [0 0 0 1]x1 + [1] = c(c(d(x1)))
               [0 1 0 1]     [1]    [0 0 0 1]     [1]              
       
                  [0 0 1 0]     [1]    [0 0 1 0]     [1]           
                  [0 0 0 0]     [0]    [0 0 0 0]     [0]           
       d(c(x1)) = [0 0 1 0]x1 + [0] >= [0 0 1 0]x1 + [0] = c(b(x1))
                  [0 0 1 0]     [0]    [0 0 1 0]     [0]           
      problem:
       DPs:
        a#(x1) -> d#(x1)
        d#(c(x1)) -> b#(x1)
       TRS:
        b(c(c(x1))) -> a(c(d(x1)))
        a(x1) -> c(c(d(x1)))
        d(c(x1)) -> c(b(x1))
      Restore Modifier:
       DPs:
        a#(x1) -> d#(x1)
        d#(c(x1)) -> b#(x1)
       TRS:
        b(c(c(x1))) -> a(c(d(x1)))
        a(x1) -> c(c(d(x1)))
        d(c(x1)) -> c(b(x1))
       EDG Processor:
        DPs:
         a#(x1) -> d#(x1)
         d#(c(x1)) -> b#(x1)
        TRS:
         b(c(c(x1))) -> a(c(d(x1)))
         a(x1) -> c(c(d(x1)))
         d(c(x1)) -> c(b(x1))
        graph:
         a#(x1) -> d#(x1) -> d#(c(x1)) -> b#(x1)
        CDG Processor:
         DPs:
          a#(x1) -> d#(x1)
          d#(c(x1)) -> b#(x1)
         TRS:
          b(c(c(x1))) -> a(c(d(x1)))
          a(x1) -> c(c(d(x1)))
          d(c(x1)) -> c(b(x1))
         graph:
          
         Qed