YES

Problem:
 active(g(X)) -> mark(h(X))
 active(c()) -> mark(d())
 active(h(d())) -> mark(g(c()))
 proper(g(X)) -> g(proper(X))
 proper(h(X)) -> h(proper(X))
 proper(c()) -> ok(c())
 proper(d()) -> ok(d())
 g(ok(X)) -> ok(g(X))
 h(ok(X)) -> ok(h(X))
 top(mark(X)) -> top(proper(X))
 top(ok(X)) -> top(active(X))

Proof:
 DP Processor:
  DPs:
   active#(g(X)) -> h#(X)
   active#(h(d())) -> g#(c())
   proper#(g(X)) -> proper#(X)
   proper#(g(X)) -> g#(proper(X))
   proper#(h(X)) -> proper#(X)
   proper#(h(X)) -> h#(proper(X))
   g#(ok(X)) -> g#(X)
   h#(ok(X)) -> h#(X)
   top#(mark(X)) -> proper#(X)
   top#(mark(X)) -> top#(proper(X))
   top#(ok(X)) -> active#(X)
   top#(ok(X)) -> top#(active(X))
  TRS:
   active(g(X)) -> mark(h(X))
   active(c()) -> mark(d())
   active(h(d())) -> mark(g(c()))
   proper(g(X)) -> g(proper(X))
   proper(h(X)) -> h(proper(X))
   proper(c()) -> ok(c())
   proper(d()) -> ok(d())
   g(ok(X)) -> ok(g(X))
   h(ok(X)) -> ok(h(X))
   top(mark(X)) -> top(proper(X))
   top(ok(X)) -> top(active(X))
  TDG Processor:
   DPs:
    active#(g(X)) -> h#(X)
    active#(h(d())) -> g#(c())
    proper#(g(X)) -> proper#(X)
    proper#(g(X)) -> g#(proper(X))
    proper#(h(X)) -> proper#(X)
    proper#(h(X)) -> h#(proper(X))
    g#(ok(X)) -> g#(X)
    h#(ok(X)) -> h#(X)
    top#(mark(X)) -> proper#(X)
    top#(mark(X)) -> top#(proper(X))
    top#(ok(X)) -> active#(X)
    top#(ok(X)) -> top#(active(X))
   TRS:
    active(g(X)) -> mark(h(X))
    active(c()) -> mark(d())
    active(h(d())) -> mark(g(c()))
    proper(g(X)) -> g(proper(X))
    proper(h(X)) -> h(proper(X))
    proper(c()) -> ok(c())
    proper(d()) -> ok(d())
    g(ok(X)) -> ok(g(X))
    h(ok(X)) -> ok(h(X))
    top(mark(X)) -> top(proper(X))
    top(ok(X)) -> top(active(X))
   graph:
    top#(ok(X)) -> top#(active(X)) -> top#(ok(X)) -> top#(active(X))
    top#(ok(X)) -> top#(active(X)) -> top#(ok(X)) -> active#(X)
    top#(ok(X)) -> top#(active(X)) ->
    top#(mark(X)) -> top#(proper(X))
    top#(ok(X)) -> top#(active(X)) -> top#(mark(X)) -> proper#(X)
    top#(ok(X)) -> active#(X) -> active#(h(d())) -> g#(c())
    top#(ok(X)) -> active#(X) -> active#(g(X)) -> h#(X)
    top#(mark(X)) -> top#(proper(X)) ->
    top#(ok(X)) -> top#(active(X))
    top#(mark(X)) -> top#(proper(X)) -> top#(ok(X)) -> active#(X)
    top#(mark(X)) -> top#(proper(X)) ->
    top#(mark(X)) -> top#(proper(X))
    top#(mark(X)) -> top#(proper(X)) -> top#(mark(X)) -> proper#(X)
    top#(mark(X)) -> proper#(X) -> proper#(h(X)) -> h#(proper(X))
    top#(mark(X)) -> proper#(X) -> proper#(h(X)) -> proper#(X)
    top#(mark(X)) -> proper#(X) -> proper#(g(X)) -> g#(proper(X))
    top#(mark(X)) -> proper#(X) -> proper#(g(X)) -> proper#(X)
    proper#(h(X)) -> proper#(X) -> proper#(h(X)) -> h#(proper(X))
    proper#(h(X)) -> proper#(X) -> proper#(h(X)) -> proper#(X)
    proper#(h(X)) -> proper#(X) -> proper#(g(X)) -> g#(proper(X))
    proper#(h(X)) -> proper#(X) -> proper#(g(X)) -> proper#(X)
    proper#(h(X)) -> h#(proper(X)) -> h#(ok(X)) -> h#(X)
    proper#(g(X)) -> proper#(X) -> proper#(h(X)) -> h#(proper(X))
    proper#(g(X)) -> proper#(X) -> proper#(h(X)) -> proper#(X)
    proper#(g(X)) -> proper#(X) -> proper#(g(X)) -> g#(proper(X))
    proper#(g(X)) -> proper#(X) -> proper#(g(X)) -> proper#(X)
    proper#(g(X)) -> g#(proper(X)) -> g#(ok(X)) -> g#(X)
    g#(ok(X)) -> g#(X) -> g#(ok(X)) -> g#(X)
    h#(ok(X)) -> h#(X) -> h#(ok(X)) -> h#(X)
    active#(h(d())) -> g#(c()) -> g#(ok(X)) -> g#(X)
    active#(g(X)) -> h#(X) -> h#(ok(X)) -> h#(X)
   EDG Processor:
    DPs:
     active#(g(X)) -> h#(X)
     active#(h(d())) -> g#(c())
     proper#(g(X)) -> proper#(X)
     proper#(g(X)) -> g#(proper(X))
     proper#(h(X)) -> proper#(X)
     proper#(h(X)) -> h#(proper(X))
     g#(ok(X)) -> g#(X)
     h#(ok(X)) -> h#(X)
     top#(mark(X)) -> proper#(X)
     top#(mark(X)) -> top#(proper(X))
     top#(ok(X)) -> active#(X)
     top#(ok(X)) -> top#(active(X))
    TRS:
     active(g(X)) -> mark(h(X))
     active(c()) -> mark(d())
     active(h(d())) -> mark(g(c()))
     proper(g(X)) -> g(proper(X))
     proper(h(X)) -> h(proper(X))
     proper(c()) -> ok(c())
     proper(d()) -> ok(d())
     g(ok(X)) -> ok(g(X))
     h(ok(X)) -> ok(h(X))
     top(mark(X)) -> top(proper(X))
     top(ok(X)) -> top(active(X))
    graph:
     top#(ok(X)) -> top#(active(X)) -> top#(mark(X)) -> proper#(X)
     top#(ok(X)) -> top#(active(X)) ->
     top#(mark(X)) -> top#(proper(X))
     top#(ok(X)) -> top#(active(X)) -> top#(ok(X)) -> active#(X)
     top#(ok(X)) -> top#(active(X)) -> top#(ok(X)) -> top#(active(X))
     top#(ok(X)) -> active#(X) -> active#(g(X)) -> h#(X)
     top#(ok(X)) -> active#(X) -> active#(h(d())) -> g#(c())
     top#(mark(X)) -> top#(proper(X)) ->
     top#(mark(X)) -> proper#(X)
     top#(mark(X)) -> top#(proper(X)) ->
     top#(mark(X)) -> top#(proper(X))
     top#(mark(X)) -> top#(proper(X)) -> top#(ok(X)) -> active#(X)
     top#(mark(X)) -> top#(proper(X)) -> top#(ok(X)) -> top#(active(X))
     top#(mark(X)) -> proper#(X) -> proper#(g(X)) -> proper#(X)
     top#(mark(X)) -> proper#(X) -> proper#(g(X)) -> g#(proper(X))
     top#(mark(X)) -> proper#(X) -> proper#(h(X)) -> proper#(X)
     top#(mark(X)) -> proper#(X) -> proper#(h(X)) -> h#(proper(X))
     proper#(h(X)) -> proper#(X) -> proper#(g(X)) -> proper#(X)
     proper#(h(X)) -> proper#(X) -> proper#(g(X)) -> g#(proper(X))
     proper#(h(X)) -> proper#(X) -> proper#(h(X)) -> proper#(X)
     proper#(h(X)) -> proper#(X) -> proper#(h(X)) -> h#(proper(X))
     proper#(h(X)) -> h#(proper(X)) -> h#(ok(X)) -> h#(X)
     proper#(g(X)) -> proper#(X) -> proper#(g(X)) -> proper#(X)
     proper#(g(X)) -> proper#(X) -> proper#(g(X)) -> g#(proper(X))
     proper#(g(X)) -> proper#(X) -> proper#(h(X)) -> proper#(X)
     proper#(g(X)) -> proper#(X) -> proper#(h(X)) -> h#(proper(X))
     proper#(g(X)) -> g#(proper(X)) -> g#(ok(X)) -> g#(X)
     g#(ok(X)) -> g#(X) -> g#(ok(X)) -> g#(X)
     h#(ok(X)) -> h#(X) -> h#(ok(X)) -> h#(X)
     active#(g(X)) -> h#(X) -> h#(ok(X)) -> h#(X)
    CDG Processor:
     DPs:
      active#(g(X)) -> h#(X)
      active#(h(d())) -> g#(c())
      proper#(g(X)) -> proper#(X)
      proper#(g(X)) -> g#(proper(X))
      proper#(h(X)) -> proper#(X)
      proper#(h(X)) -> h#(proper(X))
      g#(ok(X)) -> g#(X)
      h#(ok(X)) -> h#(X)
      top#(mark(X)) -> proper#(X)
      top#(mark(X)) -> top#(proper(X))
      top#(ok(X)) -> active#(X)
      top#(ok(X)) -> top#(active(X))
     TRS:
      active(g(X)) -> mark(h(X))
      active(c()) -> mark(d())
      active(h(d())) -> mark(g(c()))
      proper(g(X)) -> g(proper(X))
      proper(h(X)) -> h(proper(X))
      proper(c()) -> ok(c())
      proper(d()) -> ok(d())
      g(ok(X)) -> ok(g(X))
      h(ok(X)) -> ok(h(X))
      top(mark(X)) -> top(proper(X))
      top(ok(X)) -> top(active(X))
     graph:
      top#(ok(X)) -> top#(active(X)) ->
      top#(ok(X)) -> top#(active(X))
      top#(ok(X)) -> top#(active(X)) -> top#(ok(X)) -> active#(X)
      top#(ok(X)) -> top#(active(X)) ->
      top#(mark(X)) -> top#(proper(X))
      top#(ok(X)) -> top#(active(X)) -> top#(mark(X)) -> proper#(X)
      top#(mark(X)) -> top#(proper(X)) ->
      top#(ok(X)) -> top#(active(X))
      top#(mark(X)) -> top#(proper(X)) -> top#(ok(X)) -> active#(X)
      top#(mark(X)) -> top#(proper(X)) ->
      top#(mark(X)) -> top#(proper(X))
      top#(mark(X)) -> top#(proper(X)) -> top#(mark(X)) -> proper#(X)
      proper#(h(X)) -> h#(proper(X)) -> h#(ok(X)) -> h#(X)
      proper#(g(X)) -> g#(proper(X)) -> g#(ok(X)) -> g#(X)
     SCC Processor:
      #sccs: 1
      #rules: 2
      #arcs: 10/144
      DPs:
       top#(ok(X)) -> top#(active(X))
       top#(mark(X)) -> top#(proper(X))
      TRS:
       active(g(X)) -> mark(h(X))
       active(c()) -> mark(d())
       active(h(d())) -> mark(g(c()))
       proper(g(X)) -> g(proper(X))
       proper(h(X)) -> h(proper(X))
       proper(c()) -> ok(c())
       proper(d()) -> ok(d())
       g(ok(X)) -> ok(g(X))
       h(ok(X)) -> ok(h(X))
       top(mark(X)) -> top(proper(X))
       top(ok(X)) -> top(active(X))
      Matrix Interpretation Processor: dim=2
       
       interpretation:
        [top#](x0) = [2 0]x0,
        
                    [0]
        [top](x0) = [0],
        
                   [0 2]     [1]
        [ok](x0) = [1 0]x0 + [0],
        
                       [0 2]     [1]
        [proper](x0) = [1 0]x0 + [0],
        
              [3]
        [d] = [0],
        
              [0]
        [c] = [1],
        
                     [0 2]     [2]
        [mark](x0) = [0 0]x0 + [0],
        
                  [0 2]     [1]
        [h](x0) = [1 0]x0 + [0],
        
                       [0 2]  
        [active](x0) = [0 0]x0,
        
                  [1 2]     [2]
        [g](x0) = [1 1]x0 + [1]
       orientation:
        top#(ok(X)) = [0 4]X + [2] >= [0 4]X = top#(active(X))
        
        top#(mark(X)) = [0 4]X + [4] >= [0 4]X + [2] = top#(proper(X))
        
                       [2 2]    [2]    [2 0]    [2]             
        active(g(X)) = [0 0]X + [0] >= [0 0]X + [0] = mark(h(X))
        
                      [2]    [2]            
        active(c()) = [0] >= [0] = mark(d())
        
                         [6]    [6]               
        active(h(d())) = [0] >= [0] = mark(g(c()))
        
                       [2 2]    [3]    [2 2]    [3]               
        proper(g(X)) = [1 2]X + [2] >= [1 2]X + [2] = g(proper(X))
        
                       [2 0]    [1]    [2 0]    [1]               
        proper(h(X)) = [0 2]X + [1] >= [0 2]X + [1] = h(proper(X))
        
                      [3]    [3]          
        proper(c()) = [0] >= [0] = ok(c())
        
                      [1]    [1]          
        proper(d()) = [3] >= [3] = ok(d())
        
                   [2 2]    [3]    [2 2]    [3]           
        g(ok(X)) = [1 2]X + [2] >= [1 2]X + [2] = ok(g(X))
        
                   [2 0]    [1]    [2 0]    [1]           
        h(ok(X)) = [0 2]X + [1] >= [0 2]X + [1] = ok(h(X))
        
                       [0]    [0]                 
        top(mark(X)) = [0] >= [0] = top(proper(X))
        
                     [0]    [0]                 
        top(ok(X)) = [0] >= [0] = top(active(X))
       problem:
        DPs:
         
        TRS:
         active(g(X)) -> mark(h(X))
         active(c()) -> mark(d())
         active(h(d())) -> mark(g(c()))
         proper(g(X)) -> g(proper(X))
         proper(h(X)) -> h(proper(X))
         proper(c()) -> ok(c())
         proper(d()) -> ok(d())
         g(ok(X)) -> ok(g(X))
         h(ok(X)) -> ok(h(X))
         top(mark(X)) -> top(proper(X))
         top(ok(X)) -> top(active(X))
       Qed