YES

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

Proof:
 DP Processor:
  DPs:
   a#(a(x1)) -> b#(x1)
   a#(a(x1)) -> c#(b(x1))
   a#(a(x1)) -> a#(c(b(x1)))
   a#(a(x1)) -> b#(a(c(b(x1))))
   b#(b(x1)) -> a#(x1)
   b#(b(x1)) -> a#(a(x1))
  TRS:
   a(a(x1)) -> b(a(c(b(x1))))
   b(b(x1)) -> a(a(x1))
   c(a(x1)) -> x1
  TDG Processor:
   DPs:
    a#(a(x1)) -> b#(x1)
    a#(a(x1)) -> c#(b(x1))
    a#(a(x1)) -> a#(c(b(x1)))
    a#(a(x1)) -> b#(a(c(b(x1))))
    b#(b(x1)) -> a#(x1)
    b#(b(x1)) -> a#(a(x1))
   TRS:
    a(a(x1)) -> b(a(c(b(x1))))
    b(b(x1)) -> a(a(x1))
    c(a(x1)) -> x1
   graph:
    b#(b(x1)) -> a#(a(x1)) -> a#(a(x1)) -> b#(a(c(b(x1))))
    b#(b(x1)) -> a#(a(x1)) -> a#(a(x1)) -> a#(c(b(x1)))
    b#(b(x1)) -> a#(a(x1)) -> a#(a(x1)) -> c#(b(x1))
    b#(b(x1)) -> a#(a(x1)) -> a#(a(x1)) -> b#(x1)
    b#(b(x1)) -> a#(x1) -> a#(a(x1)) -> b#(a(c(b(x1))))
    b#(b(x1)) -> a#(x1) -> a#(a(x1)) -> a#(c(b(x1)))
    b#(b(x1)) -> a#(x1) -> a#(a(x1)) -> c#(b(x1))
    b#(b(x1)) -> a#(x1) -> a#(a(x1)) -> b#(x1)
    a#(a(x1)) -> b#(a(c(b(x1)))) -> b#(b(x1)) -> a#(a(x1))
    a#(a(x1)) -> b#(a(c(b(x1)))) -> b#(b(x1)) -> a#(x1)
    a#(a(x1)) -> b#(x1) -> b#(b(x1)) -> a#(a(x1))
    a#(a(x1)) -> b#(x1) -> b#(b(x1)) -> a#(x1)
    a#(a(x1)) -> a#(c(b(x1))) -> a#(a(x1)) -> b#(a(c(b(x1))))
    a#(a(x1)) -> a#(c(b(x1))) -> a#(a(x1)) -> a#(c(b(x1)))
    a#(a(x1)) -> a#(c(b(x1))) -> a#(a(x1)) -> c#(b(x1))
    a#(a(x1)) -> a#(c(b(x1))) -> a#(a(x1)) -> b#(x1)
   SCC Processor:
    #sccs: 1
    #rules: 5
    #arcs: 16/36
    DPs:
     b#(b(x1)) -> a#(a(x1))
     a#(a(x1)) -> b#(x1)
     b#(b(x1)) -> a#(x1)
     a#(a(x1)) -> a#(c(b(x1)))
     a#(a(x1)) -> b#(a(c(b(x1))))
    TRS:
     a(a(x1)) -> b(a(c(b(x1))))
     b(b(x1)) -> a(a(x1))
     c(a(x1)) -> x1
    Arctic Interpretation Processor:
     dimension: 3
     usable rules:
      a(a(x1)) -> b(a(c(b(x1))))
      b(b(x1)) -> a(a(x1))
      c(a(x1)) -> x1
     interpretation:
      [b#](x0) = [0 0 0]x0 + [0],
      
      [a#](x0) = [0 0 0]x0 + [0],
      
                [-& 0  -&]     [0]
      [c](x0) = [-& 0  0 ]x0 + [0]
                [-& 0  0 ]     [0],
      
                [1  1  1 ]     [1]
      [b](x0) = [0  -& -&]x0 + [0]
                [-& 0  0 ]     [1],
      
                [1  0  0 ]     [1]
      [a](x0) = [0  -& 0 ]x0 + [1]
                [-& 0  0 ]     [1]
     orientation:
      b#(b(x1)) = [1 1 1]x1 + [1] >= [1 0 0]x1 + [1] = a#(a(x1))
      
      a#(a(x1)) = [1 0 0]x1 + [1] >= [0 0 0]x1 + [0] = b#(x1)
      
      b#(b(x1)) = [1 1 1]x1 + [1] >= [0 0 0]x1 + [0] = a#(x1)
      
      a#(a(x1)) = [1 0 0]x1 + [1] >= [0 0 0]x1 + [1] = a#(c(b(x1)))
      
      a#(a(x1)) = [1 0 0]x1 + [1] >= [1 0 0]x1 + [1] = b#(a(c(b(x1))))
      
                 [2 1 1]     [2]    [2 1 1]     [2]                 
      a(a(x1)) = [1 0 0]x1 + [1] >= [1 0 0]x1 + [1] = b(a(c(b(x1))))
                 [0 0 0]     [1]    [0 0 0]     [1]                 
      
                 [2 2 2]     [2]    [2 1 1]     [2]           
      b(b(x1)) = [1 1 1]x1 + [1] >= [1 0 0]x1 + [1] = a(a(x1))
                 [0 0 0]     [1]    [0 0 0]     [1]           
      
                 [0  -& 0 ]     [1]           
      c(a(x1)) = [0  0  0 ]x1 + [1] >= x1 = x1
                 [0  0  0 ]     [1]           
     problem:
      DPs:
       b#(b(x1)) -> a#(a(x1))
       a#(a(x1)) -> b#(x1)
       a#(a(x1)) -> a#(c(b(x1)))
       a#(a(x1)) -> b#(a(c(b(x1))))
      TRS:
       a(a(x1)) -> b(a(c(b(x1))))
       b(b(x1)) -> a(a(x1))
       c(a(x1)) -> x1
     Restore Modifier:
      DPs:
       b#(b(x1)) -> a#(a(x1))
       a#(a(x1)) -> b#(x1)
       a#(a(x1)) -> a#(c(b(x1)))
       a#(a(x1)) -> b#(a(c(b(x1))))
      TRS:
       a(a(x1)) -> b(a(c(b(x1))))
       b(b(x1)) -> a(a(x1))
       c(a(x1)) -> x1
      EDG Processor:
       DPs:
        b#(b(x1)) -> a#(a(x1))
        a#(a(x1)) -> b#(x1)
        a#(a(x1)) -> a#(c(b(x1)))
        a#(a(x1)) -> b#(a(c(b(x1))))
       TRS:
        a(a(x1)) -> b(a(c(b(x1))))
        b(b(x1)) -> a(a(x1))
        c(a(x1)) -> x1
       graph:
        b#(b(x1)) -> a#(a(x1)) -> a#(a(x1)) -> b#(x1)
        b#(b(x1)) -> a#(a(x1)) -> a#(a(x1)) -> a#(c(b(x1)))
        b#(b(x1)) -> a#(a(x1)) -> a#(a(x1)) -> b#(a(c(b(x1))))
        a#(a(x1)) -> b#(a(c(b(x1)))) -> b#(b(x1)) -> a#(a(x1))
        a#(a(x1)) -> b#(x1) -> b#(b(x1)) -> a#(a(x1))
        a#(a(x1)) -> a#(c(b(x1))) -> a#(a(x1)) -> b#(x1)
        a#(a(x1)) -> a#(c(b(x1))) -> a#(a(x1)) -> a#(c(b(x1)))
        a#(a(x1)) -> a#(c(b(x1))) -> a#(a(x1)) -> b#(a(c(b(x1))))
       Arctic Interpretation Processor:
        dimension: 3
        usable rules:
         a(a(x1)) -> b(a(c(b(x1))))
         b(b(x1)) -> a(a(x1))
         c(a(x1)) -> x1
        interpretation:
         [b#](x0) = [0 0 0]x0 + [0],
         
         [a#](x0) = [0  -& -&]x0 + [0],
         
                   [-& 0  -&]     [0]
         [c](x0) = [0  0  0 ]x0 + [0]
                   [-& -& 0 ]     [0],
         
                   [1  0  0 ]     [1]
         [b](x0) = [0  -& -&]x0 + [0]
                   [0  0  0 ]     [1],
         
                   [1 0 0]     [1]
         [a](x0) = [0 0 0]x0 + [0]
                   [0 0 0]     [0]
        orientation:
         b#(b(x1)) = [1 0 0]x1 + [1] >= [1 0 0]x1 + [1] = a#(a(x1))
         
         a#(a(x1)) = [1 0 0]x1 + [1] >= [0 0 0]x1 + [0] = b#(x1)
         
         a#(a(x1)) = [1 0 0]x1 + [1] >= [0  -& -&]x1 + [0] = a#(c(b(x1)))
         
         a#(a(x1)) = [1 0 0]x1 + [1] >= [1 0 0]x1 + [1] = b#(a(c(b(x1))))
         
                    [2 1 1]     [2]    [2 1 1]     [2]                 
         a(a(x1)) = [1 0 0]x1 + [1] >= [1 0 0]x1 + [1] = b(a(c(b(x1))))
                    [1 0 0]     [1]    [1 0 0]     [1]                 
         
                    [2 1 1]     [2]    [2 1 1]     [2]           
         b(b(x1)) = [1 0 0]x1 + [1] >= [1 0 0]x1 + [1] = a(a(x1))
                    [1 0 0]     [1]    [1 0 0]     [1]           
         
                    [0 0 0]     [0]           
         c(a(x1)) = [1 0 0]x1 + [1] >= x1 = x1
                    [0 0 0]     [0]           
        problem:
         DPs:
          b#(b(x1)) -> a#(a(x1))
          a#(a(x1)) -> b#(x1)
          a#(a(x1)) -> b#(a(c(b(x1))))
         TRS:
          a(a(x1)) -> b(a(c(b(x1))))
          b(b(x1)) -> a(a(x1))
          c(a(x1)) -> x1
        Restore Modifier:
         DPs:
          b#(b(x1)) -> a#(a(x1))
          a#(a(x1)) -> b#(x1)
          a#(a(x1)) -> b#(a(c(b(x1))))
         TRS:
          a(a(x1)) -> b(a(c(b(x1))))
          b(b(x1)) -> a(a(x1))
          c(a(x1)) -> x1
         EDG Processor:
          DPs:
           b#(b(x1)) -> a#(a(x1))
           a#(a(x1)) -> b#(x1)
           a#(a(x1)) -> b#(a(c(b(x1))))
          TRS:
           a(a(x1)) -> b(a(c(b(x1))))
           b(b(x1)) -> a(a(x1))
           c(a(x1)) -> x1
          graph:
           b#(b(x1)) -> a#(a(x1)) -> a#(a(x1)) -> b#(a(c(b(x1))))
           b#(b(x1)) -> a#(a(x1)) -> a#(a(x1)) -> b#(x1)
           a#(a(x1)) -> b#(a(c(b(x1)))) -> b#(b(x1)) -> a#(a(x1))
           a#(a(x1)) -> b#(x1) -> b#(b(x1)) -> a#(a(x1))
          Arctic Interpretation Processor:
           dimension: 3
           usable rules:
            a(a(x1)) -> b(a(c(b(x1))))
            b(b(x1)) -> a(a(x1))
            c(a(x1)) -> x1
           interpretation:
            [b#](x0) = [0 1 0]x0 + [0],
            
            [a#](x0) = [0  1  -&]x0 + [0],
            
                      [-& -& 0 ]     [0]
            [c](x0) = [0  -& 0 ]x0 + [0]
                      [0  -& 0 ]     [0],
            
                      [0 0 0]     [0]
            [b](x0) = [1 1 1]x0 + [1]
                      [0 0 0]     [0],
            
                      [0 0 0]     [-&]
            [a](x0) = [1 1 1]x0 + [1 ]
                      [0 0 0]     [0 ]
           orientation:
            b#(b(x1)) = [2 2 2]x1 + [2] >= [2 2 2]x1 + [2] = a#(a(x1))
            
            a#(a(x1)) = [2 2 2]x1 + [2] >= [0 1 0]x1 + [0] = b#(x1)
            
            a#(a(x1)) = [2 2 2]x1 + [2] >= [2 2 2]x1 + [2] = b#(a(c(b(x1))))
            
                       [1 1 1]     [1]    [1 1 1]     [1]                 
            a(a(x1)) = [2 2 2]x1 + [2] >= [2 2 2]x1 + [2] = b(a(c(b(x1))))
                       [1 1 1]     [1]    [1 1 1]     [1]                 
            
                       [1 1 1]     [1]    [1 1 1]     [1]           
            b(b(x1)) = [2 2 2]x1 + [2] >= [2 2 2]x1 + [2] = a(a(x1))
                       [1 1 1]     [1]    [1 1 1]     [1]           
            
                       [0 0 0]     [0]           
            c(a(x1)) = [0 0 0]x1 + [0] >= x1 = x1
                       [0 0 0]     [0]           
           problem:
            DPs:
             b#(b(x1)) -> a#(a(x1))
             a#(a(x1)) -> b#(a(c(b(x1))))
            TRS:
             a(a(x1)) -> b(a(c(b(x1))))
             b(b(x1)) -> a(a(x1))
             c(a(x1)) -> x1
           Restore Modifier:
            DPs:
             b#(b(x1)) -> a#(a(x1))
             a#(a(x1)) -> b#(a(c(b(x1))))
            TRS:
             a(a(x1)) -> b(a(c(b(x1))))
             b(b(x1)) -> a(a(x1))
             c(a(x1)) -> x1
            EDG Processor:
             DPs:
              b#(b(x1)) -> a#(a(x1))
              a#(a(x1)) -> b#(a(c(b(x1))))
             TRS:
              a(a(x1)) -> b(a(c(b(x1))))
              b(b(x1)) -> a(a(x1))
              c(a(x1)) -> x1
             graph:
              b#(b(x1)) -> a#(a(x1)) -> a#(a(x1)) -> b#(a(c(b(x1))))
              a#(a(x1)) -> b#(a(c(b(x1)))) -> b#(b(x1)) -> a#(a(x1))
             Arctic Interpretation Processor:
              dimension: 3
              usable rules:
               a(a(x1)) -> b(a(c(b(x1))))
               b(b(x1)) -> a(a(x1))
               c(a(x1)) -> x1
              interpretation:
               [b#](x0) = [0 0 1]x0 + [0],
               
               [a#](x0) = [0 0 0]x0 + [0],
               
                         [0  -& -&]     [0]
               [c](x0) = [0  -& -&]x0 + [0]
                         [0  -& -&]     [0],
               
                         [0  -& 0 ]     [0]
               [b](x0) = [0  0  1 ]x0 + [0]
                         [1  0  1 ]     [1],
               
                         [0 0 0]     [0]
               [a](x0) = [1 0 1]x0 + [1]
                         [0 0 0]     [0]
              orientation:
               b#(b(x1)) = [2 1 2]x1 + [2] >= [1 0 1]x1 + [1] = a#(a(x1))
               
               a#(a(x1)) = [1 0 1]x1 + [1] >= [1  -& 1 ]x1 + [1] = b#(a(c(b(x1))))
               
                          [1 0 1]     [1]    [0  -& 0 ]     [0]                 
               a(a(x1)) = [1 1 1]x1 + [1] >= [1  -& 1 ]x1 + [1] = b(a(c(b(x1))))
                          [1 0 1]     [1]    [1  -& 1 ]     [1]                 
               
                          [1 0 1]     [1]    [1 0 1]     [1]           
               b(b(x1)) = [2 1 2]x1 + [2] >= [1 1 1]x1 + [1] = a(a(x1))
                          [2 1 2]     [2]    [1 0 1]     [1]           
               
                          [0 0 0]     [0]           
               c(a(x1)) = [0 0 0]x1 + [0] >= x1 = x1
                          [0 0 0]     [0]           
              problem:
               DPs:
                a#(a(x1)) -> b#(a(c(b(x1))))
               TRS:
                a(a(x1)) -> b(a(c(b(x1))))
                b(b(x1)) -> a(a(x1))
                c(a(x1)) -> x1
              Restore Modifier:
               DPs:
                a#(a(x1)) -> b#(a(c(b(x1))))
               TRS:
                a(a(x1)) -> b(a(c(b(x1))))
                b(b(x1)) -> a(a(x1))
                c(a(x1)) -> x1
               EDG Processor:
                DPs:
                 a#(a(x1)) -> b#(a(c(b(x1))))
                TRS:
                 a(a(x1)) -> b(a(c(b(x1))))
                 b(b(x1)) -> a(a(x1))
                 c(a(x1)) -> x1
                graph:
                 
                Qed