YES

Problem:
 active(f(f(a()))) -> mark(f(g(f(a()))))
 active(g(X)) -> g(active(X))
 g(mark(X)) -> mark(g(X))
 proper(f(X)) -> f(proper(X))
 proper(a()) -> ok(a())
 proper(g(X)) -> g(proper(X))
 f(ok(X)) -> ok(f(X))
 g(ok(X)) -> ok(g(X))
 top(mark(X)) -> top(proper(X))
 top(ok(X)) -> top(active(X))

Proof:
 Matrix Interpretation Processor: dim=3
  
  interpretation:
               [1 1 1]  
   [top](x0) = [0 0 0]x0
               [1 1 1]  ,
   
                   [1]
   [ok](x0) = x0 + [0]
                   [0],
   
                       [1]
   [proper](x0) = x0 + [0]
                       [0],
   
                [1 0 0]     [0]
   [mark](x0) = [0 1 1]x0 + [1]
                [0 0 0]     [0],
   
             [1 0 0]  
   [g](x0) = [0 1 1]x0
             [0 0 0]  ,
   
                  [1 1 1]     [0]
   [active](x0) = [0 0 0]x0 + [1]
                  [0 0 0]     [0],
   
             [1 0 0]  
   [f](x0) = [0 0 0]x0
             [0 0 1]  ,
   
         [0]
   [a] = [0]
         [1]
  orientation:
                       [1]    [0]                     
   active(f(f(a()))) = [1] >= [1] = mark(f(g(f(a()))))
                       [0]    [0]                     
   
                  [1 1 1]    [0]    [1 1 1]    [0]               
   active(g(X)) = [0 0 0]X + [1] >= [0 0 0]X + [1] = g(active(X))
                  [0 0 0]    [0]    [0 0 0]    [0]               
   
                [1 0 0]    [0]    [1 0 0]    [0]             
   g(mark(X)) = [0 1 1]X + [1] >= [0 1 1]X + [1] = mark(g(X))
                [0 0 0]    [0]    [0 0 0]    [0]             
   
                  [1 0 0]    [1]    [1 0 0]    [1]               
   proper(f(X)) = [0 0 0]X + [0] >= [0 0 0]X + [0] = f(proper(X))
                  [0 0 1]    [0]    [0 0 1]    [0]               
   
                 [1]    [1]          
   proper(a()) = [0] >= [0] = ok(a())
                 [1]    [1]          
   
                  [1 0 0]    [1]    [1 0 0]    [1]               
   proper(g(X)) = [0 1 1]X + [0] >= [0 1 1]X + [0] = g(proper(X))
                  [0 0 0]    [0]    [0 0 0]    [0]               
   
              [1 0 0]    [1]    [1 0 0]    [1]           
   f(ok(X)) = [0 0 0]X + [0] >= [0 0 0]X + [0] = ok(f(X))
              [0 0 1]    [0]    [0 0 1]    [0]           
   
              [1 0 0]    [1]    [1 0 0]    [1]           
   g(ok(X)) = [0 1 1]X + [0] >= [0 1 1]X + [0] = ok(g(X))
              [0 0 0]    [0]    [0 0 0]    [0]           
   
                  [1 1 1]    [1]    [1 1 1]    [1]                 
   top(mark(X)) = [0 0 0]X + [0] >= [0 0 0]X + [0] = top(proper(X))
                  [1 1 1]    [1]    [1 1 1]    [1]                 
   
                [1 1 1]    [1]    [1 1 1]    [1]                 
   top(ok(X)) = [0 0 0]X + [0] >= [0 0 0]X + [0] = top(active(X))
                [1 1 1]    [1]    [1 1 1]    [1]                 
  problem:
   active(g(X)) -> g(active(X))
   g(mark(X)) -> mark(g(X))
   proper(f(X)) -> f(proper(X))
   proper(a()) -> ok(a())
   proper(g(X)) -> g(proper(X))
   f(ok(X)) -> ok(f(X))
   g(ok(X)) -> ok(g(X))
   top(mark(X)) -> top(proper(X))
   top(ok(X)) -> top(active(X))
  Matrix Interpretation Processor: dim=1
   
   interpretation:
    [top](x0) = 3x0 + 1,
    
    [ok](x0) = x0 + 4,
    
    [proper](x0) = x0 + 4,
    
    [mark](x0) = x0 + 4,
    
    [g](x0) = x0 + 2,
    
    [active](x0) = x0 + 1,
    
    [f](x0) = x0 + 2,
    
    [a] = 4
   orientation:
    active(g(X)) = X + 3 >= X + 3 = g(active(X))
    
    g(mark(X)) = X + 6 >= X + 6 = mark(g(X))
    
    proper(f(X)) = X + 6 >= X + 6 = f(proper(X))
    
    proper(a()) = 8 >= 8 = ok(a())
    
    proper(g(X)) = X + 6 >= X + 6 = g(proper(X))
    
    f(ok(X)) = X + 6 >= X + 6 = ok(f(X))
    
    g(ok(X)) = X + 6 >= X + 6 = ok(g(X))
    
    top(mark(X)) = 3X + 13 >= 3X + 13 = top(proper(X))
    
    top(ok(X)) = 3X + 13 >= 3X + 4 = top(active(X))
   problem:
    active(g(X)) -> g(active(X))
    g(mark(X)) -> mark(g(X))
    proper(f(X)) -> f(proper(X))
    proper(a()) -> ok(a())
    proper(g(X)) -> g(proper(X))
    f(ok(X)) -> ok(f(X))
    g(ok(X)) -> ok(g(X))
    top(mark(X)) -> top(proper(X))
   Matrix Interpretation Processor: dim=1
    
    interpretation:
     [top](x0) = x0 + 1,
     
     [ok](x0) = 2x0 + 3,
     
     [proper](x0) = 2x0 + 3,
     
     [mark](x0) = 3x0 + 6,
     
     [g](x0) = 2x0 + 3,
     
     [active](x0) = 3x0 + 6,
     
     [f](x0) = 2x0 + 3,
     
     [a] = 0
    orientation:
     active(g(X)) = 6X + 15 >= 6X + 15 = g(active(X))
     
     g(mark(X)) = 6X + 15 >= 6X + 15 = mark(g(X))
     
     proper(f(X)) = 4X + 9 >= 4X + 9 = f(proper(X))
     
     proper(a()) = 3 >= 3 = ok(a())
     
     proper(g(X)) = 4X + 9 >= 4X + 9 = g(proper(X))
     
     f(ok(X)) = 4X + 9 >= 4X + 9 = ok(f(X))
     
     g(ok(X)) = 4X + 9 >= 4X + 9 = ok(g(X))
     
     top(mark(X)) = 3X + 7 >= 2X + 4 = top(proper(X))
    problem:
     active(g(X)) -> g(active(X))
     g(mark(X)) -> mark(g(X))
     proper(f(X)) -> f(proper(X))
     proper(a()) -> ok(a())
     proper(g(X)) -> g(proper(X))
     f(ok(X)) -> ok(f(X))
     g(ok(X)) -> ok(g(X))
    Matrix Interpretation Processor: dim=1
     
     interpretation:
      [ok](x0) = 4x0 + 4,
      
      [proper](x0) = 5x0 + 4,
      
      [mark](x0) = x0,
      
      [g](x0) = 2x0 + 1,
      
      [active](x0) = 4x0 + 3,
      
      [f](x0) = x0,
      
      [a] = 0
     orientation:
      active(g(X)) = 8X + 7 >= 8X + 7 = g(active(X))
      
      g(mark(X)) = 2X + 1 >= 2X + 1 = mark(g(X))
      
      proper(f(X)) = 5X + 4 >= 5X + 4 = f(proper(X))
      
      proper(a()) = 4 >= 4 = ok(a())
      
      proper(g(X)) = 10X + 9 >= 10X + 9 = g(proper(X))
      
      f(ok(X)) = 4X + 4 >= 4X + 4 = ok(f(X))
      
      g(ok(X)) = 8X + 9 >= 8X + 8 = ok(g(X))
     problem:
      active(g(X)) -> g(active(X))
      g(mark(X)) -> mark(g(X))
      proper(f(X)) -> f(proper(X))
      proper(a()) -> ok(a())
      proper(g(X)) -> g(proper(X))
      f(ok(X)) -> ok(f(X))
     Matrix Interpretation Processor: dim=1
      
      interpretation:
       [ok](x0) = x0 + 1,
       
       [proper](x0) = 2x0 + 1,
       
       [mark](x0) = x0,
       
       [g](x0) = 5x0 + 4,
       
       [active](x0) = 6x0 + 5,
       
       [f](x0) = 4x0 + 3,
       
       [a] = 0
      orientation:
       active(g(X)) = 30X + 29 >= 30X + 29 = g(active(X))
       
       g(mark(X)) = 5X + 4 >= 5X + 4 = mark(g(X))
       
       proper(f(X)) = 8X + 7 >= 8X + 7 = f(proper(X))
       
       proper(a()) = 1 >= 1 = ok(a())
       
       proper(g(X)) = 10X + 9 >= 10X + 9 = g(proper(X))
       
       f(ok(X)) = 4X + 7 >= 4X + 4 = ok(f(X))
      problem:
       active(g(X)) -> g(active(X))
       g(mark(X)) -> mark(g(X))
       proper(f(X)) -> f(proper(X))
       proper(a()) -> ok(a())
       proper(g(X)) -> g(proper(X))
      DP Processor:
       DPs:
        active#(g(X)) -> active#(X)
        active#(g(X)) -> g#(active(X))
        g#(mark(X)) -> g#(X)
        proper#(f(X)) -> proper#(X)
        proper#(g(X)) -> proper#(X)
        proper#(g(X)) -> g#(proper(X))
       TRS:
        active(g(X)) -> g(active(X))
        g(mark(X)) -> mark(g(X))
        proper(f(X)) -> f(proper(X))
        proper(a()) -> ok(a())
        proper(g(X)) -> g(proper(X))
       TDG Processor:
        DPs:
         active#(g(X)) -> active#(X)
         active#(g(X)) -> g#(active(X))
         g#(mark(X)) -> g#(X)
         proper#(f(X)) -> proper#(X)
         proper#(g(X)) -> proper#(X)
         proper#(g(X)) -> g#(proper(X))
        TRS:
         active(g(X)) -> g(active(X))
         g(mark(X)) -> mark(g(X))
         proper(f(X)) -> f(proper(X))
         proper(a()) -> ok(a())
         proper(g(X)) -> g(proper(X))
        graph:
         proper#(g(X)) -> proper#(X) -> proper#(g(X)) -> g#(proper(X))
         proper#(g(X)) -> proper#(X) -> proper#(g(X)) -> proper#(X)
         proper#(g(X)) -> proper#(X) -> proper#(f(X)) -> proper#(X)
         proper#(g(X)) -> g#(proper(X)) -> g#(mark(X)) -> g#(X)
         proper#(f(X)) -> proper#(X) -> proper#(g(X)) -> g#(proper(X))
         proper#(f(X)) -> proper#(X) -> proper#(g(X)) -> proper#(X)
         proper#(f(X)) -> proper#(X) -> proper#(f(X)) -> proper#(X)
         g#(mark(X)) -> g#(X) -> g#(mark(X)) -> g#(X)
         active#(g(X)) -> g#(active(X)) -> g#(mark(X)) -> g#(X)
         active#(g(X)) -> active#(X) -> active#(g(X)) -> g#(active(X))
         active#(g(X)) -> active#(X) -> active#(g(X)) -> active#(X)
        SCC Processor:
         #sccs: 3
         #rules: 4
         #arcs: 11/36
         DPs:
          active#(g(X)) -> active#(X)
         TRS:
          active(g(X)) -> g(active(X))
          g(mark(X)) -> mark(g(X))
          proper(f(X)) -> f(proper(X))
          proper(a()) -> ok(a())
          proper(g(X)) -> g(proper(X))
         Subterm Criterion Processor:
          simple projection:
           pi(active#) = 0
          problem:
           DPs:
            
           TRS:
            active(g(X)) -> g(active(X))
            g(mark(X)) -> mark(g(X))
            proper(f(X)) -> f(proper(X))
            proper(a()) -> ok(a())
            proper(g(X)) -> g(proper(X))
          Qed
         
         DPs:
          proper#(g(X)) -> proper#(X)
          proper#(f(X)) -> proper#(X)
         TRS:
          active(g(X)) -> g(active(X))
          g(mark(X)) -> mark(g(X))
          proper(f(X)) -> f(proper(X))
          proper(a()) -> ok(a())
          proper(g(X)) -> g(proper(X))
         Subterm Criterion Processor:
          simple projection:
           pi(proper#) = 0
          problem:
           DPs:
            
           TRS:
            active(g(X)) -> g(active(X))
            g(mark(X)) -> mark(g(X))
            proper(f(X)) -> f(proper(X))
            proper(a()) -> ok(a())
            proper(g(X)) -> g(proper(X))
          Qed
         
         DPs:
          g#(mark(X)) -> g#(X)
         TRS:
          active(g(X)) -> g(active(X))
          g(mark(X)) -> mark(g(X))
          proper(f(X)) -> f(proper(X))
          proper(a()) -> ok(a())
          proper(g(X)) -> g(proper(X))
         Subterm Criterion Processor:
          simple projection:
           pi(g#) = 0
          problem:
           DPs:
            
           TRS:
            active(g(X)) -> g(active(X))
            g(mark(X)) -> mark(g(X))
            proper(f(X)) -> f(proper(X))
            proper(a()) -> ok(a())
            proper(g(X)) -> g(proper(X))
          Qed