YES

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

Proof:
 Matrix Interpretation Processor: dim=3
  
  interpretation:
                [1 0 0]  
   [mark](x0) = [0 0 0]x0
                [0 1 1]  ,
   
             [1 0 0]  
   [g](x0) = [0 1 1]x0
             [0 0 0]  ,
   
                  [1 0 0]  
   [active](x0) = [0 0 0]x0
                  [0 1 1]  ,
   
             [1 0 1]     [0]
   [f](x0) = [0 0 0]x0 + [0]
             [0 0 0]     [1],
   
         [0]
   [a] = [0]
         [0]
  orientation:
                       [1]    [0]                     
   active(f(f(a()))) = [0] >= [0] = mark(f(g(f(a()))))
                       [1]    [1]                     
   
                [1 0 1]    [0]    [1 0 1]    [0]               
   mark(f(X)) = [0 0 0]X + [0] >= [0 0 0]X + [0] = active(f(X))
                [0 0 0]    [1]    [0 0 0]    [1]               
   
               [0]    [0]              
   mark(a()) = [0] >= [0] = active(a())
               [0]    [0]              
   
                [1 0 0]     [1 0 0]                      
   mark(g(X)) = [0 0 0]X >= [0 0 0]X = active(g(mark(X)))
                [0 1 1]     [0 1 1]                      
   
                [1 1 1]    [0]    [1 0 1]    [0]       
   f(mark(X)) = [0 0 0]X + [0] >= [0 0 0]X + [0] = f(X)
                [0 0 0]    [1]    [0 0 0]    [1]       
   
                  [1 1 1]    [0]    [1 0 1]    [0]       
   f(active(X)) = [0 0 0]X + [0] >= [0 0 0]X + [0] = f(X)
                  [0 0 0]    [1]    [0 0 0]    [1]       
   
                [1 0 0]     [1 0 0]        
   g(mark(X)) = [0 1 1]X >= [0 1 1]X = g(X)
                [0 0 0]     [0 0 0]        
   
                  [1 0 0]     [1 0 0]        
   g(active(X)) = [0 1 1]X >= [0 1 1]X = g(X)
                  [0 0 0]     [0 0 0]        
  problem:
   mark(f(X)) -> active(f(X))
   mark(a()) -> active(a())
   mark(g(X)) -> active(g(mark(X)))
   f(mark(X)) -> f(X)
   f(active(X)) -> f(X)
   g(mark(X)) -> g(X)
   g(active(X)) -> g(X)
  Matrix Interpretation Processor: dim=1
   
   interpretation:
    [mark](x0) = 2x0,
    
    [g](x0) = x0 + 2,
    
    [active](x0) = x0,
    
    [f](x0) = 4x0,
    
    [a] = 5
   orientation:
    mark(f(X)) = 8X >= 4X = active(f(X))
    
    mark(a()) = 10 >= 5 = active(a())
    
    mark(g(X)) = 2X + 4 >= 2X + 2 = active(g(mark(X)))
    
    f(mark(X)) = 8X >= 4X = f(X)
    
    f(active(X)) = 4X >= 4X = f(X)
    
    g(mark(X)) = 2X + 2 >= X + 2 = g(X)
    
    g(active(X)) = X + 2 >= X + 2 = g(X)
   problem:
    mark(f(X)) -> active(f(X))
    f(mark(X)) -> f(X)
    f(active(X)) -> f(X)
    g(mark(X)) -> g(X)
    g(active(X)) -> g(X)
   Matrix Interpretation Processor: dim=1
    
    interpretation:
     [mark](x0) = 3x0 + 6,
     
     [g](x0) = 4x0 + 6,
     
     [active](x0) = 3x0 + 2,
     
     [f](x0) = x0 + 4
    orientation:
     mark(f(X)) = 3X + 18 >= 3X + 14 = active(f(X))
     
     f(mark(X)) = 3X + 10 >= X + 4 = f(X)
     
     f(active(X)) = 3X + 6 >= X + 4 = f(X)
     
     g(mark(X)) = 12X + 30 >= 4X + 6 = g(X)
     
     g(active(X)) = 12X + 14 >= 4X + 6 = g(X)
    problem:
     
    Qed