TRS:
 {a__f(f(X)) -> a__c(f(g(f(X)))),
     a__c(X) -> d(X),
     a__h(X) -> a__c(d(X)),
  mark(f(X)) -> a__f(mark(X)),
  mark(c(X)) -> a__c(X),
  mark(h(X)) -> a__h(mark(X)),
  mark(g(X)) -> g(X),
  mark(d(X)) -> d(X),
     a__f(X) -> f(X),
     a__c(X) -> c(X),
     a__h(X) -> h(X)}
 POP* + Boolean Semantic Labelling:
  Normal positions:
  pi(mark_sl=1) = [1], pi(mark_sl=0) = [1], pi(a__h_sl=1) = [1], pi(a__f_sl=1) = [1], pi(a__c_sl=1) = [1]
  
Safe positions:
   pi(h_sl=1) = [1], pi(h_sl=0) = [1], pi(c_sl=1) = [1], pi(c_sl=0) = [1], pi(a__h_sl=0) = [1], pi(d_sl=1) = [1], pi(d_sl=0) = [1], pi(a__f_sl=0) = [1], pi(g_sl=1) = [1], pi(g_sl=0) = [1], pi(f_sl=1) = [1], pi(f_sl=0) = [1], pi(a__c_sl=0) = [1]
  
Precedence:
   mark_sl=1 > a__c_sl=0, 
   mark_sl=1 > a__c_sl=1, 
   mark_sl=1 > a__f_sl=0, 
   mark_sl=1 > a__h_sl=0, 
   mark_sl=1 > mark_sl=0, 
   a__h_sl=1 > a__c_sl=0, 
   a__h_sl=1 > d_sl=1, 
   a__h_sl=1 > h_sl=1, 
   a__h_sl=0 > a__c_sl=0, 
   a__h_sl=0 > d_sl=1, 
   a__h_sl=0 > h_sl=1, 
   a__f_sl=0 > a__c_sl=0, 
   a__f_sl=0 > f_sl=0, 
   a__f_sl=0 > g_sl=0, 
   a__c_sl=1 > d_sl=1, 
   a__c_sl=1 > c_sl=0, 
   a__c_sl=0 > d_sl=1, 
   a__c_sl=0 > c_sl=0
   empty
  
Interpretation:
   a__c^(1):
   0 | 0
   1 | 0
   f^(1):
   0 | 0
   1 | 0
   g^(1):
   0 | 0
   1 | 0
   a__f^(1):
   0 | 0
   1 | 0
   d^(1):
   0 | 0
   1 | 0
   a__h^(1):
   0 | 0
   1 | 0
   mark^(1):
   0 | 0
   1 | 0
   c^(1):
   0 | 0
   1 | 0
   h^(1):
   0 | 0
   1 | 0
   
  
Labelling:
   a__c^(1):
   0 | 0
   1 | 1
   f^(1):
   0 | 0
   1 | 0
   g^(1):
   0 | 0
   1 | 0
   a__f^(1):
   0 | 0
   1 | 0
   d^(1):
   0 | 1
   1 | 1
   a__h^(1):
   0 | 0
   1 | 1
   mark^(1):
   0 | 1
   1 | 0
   c^(1):
   0 | 0
   1 | 0
   h^(1):
   0 | 1
   1 | 1
   
  
Labelled predicative System:
   {a__f_sl=0(;f_sl=0(;X)) -> a__c_sl=0(;f_sl=0(;g_sl=0(;f_sl=0(;X)))),
    a__f_sl=0(;f_sl=0(;X)) -> a__c_sl=0(;f_sl=0(;g_sl=0(;f_sl=0(;X)))),
             a__c_sl=0(;X) -> d_sl=1(;X),
             a__c_sl=1(X;) -> d_sl=1(;X),
             a__h_sl=0(;X) -> a__c_sl=0(;d_sl=1(;X)),
             a__h_sl=1(X;) -> a__c_sl=0(;d_sl=1(;X)),
    mark_sl=1(f_sl=0(;X);) -> a__f_sl=0(;mark_sl=1(X;)),
    mark_sl=1(f_sl=0(;X);) -> a__f_sl=0(;mark_sl=0(X;)),
    mark_sl=1(c_sl=0(;X);) -> a__c_sl=0(;X),
    mark_sl=1(c_sl=0(;X);) -> a__c_sl=1(X;),
    mark_sl=1(h_sl=1(;X);) -> a__h_sl=0(;mark_sl=1(X;)),
    mark_sl=1(h_sl=1(;X);) -> a__h_sl=0(;mark_sl=0(X;)),
    mark_sl=1(g_sl=0(;X);) -> g_sl=0(;X),
    mark_sl=1(g_sl=0(;X);) -> g_sl=0(;X),
    mark_sl=1(d_sl=1(;X);) -> d_sl=1(;X),
    mark_sl=1(d_sl=1(;X);) -> d_sl=1(;X),
             a__f_sl=0(;X) -> f_sl=0(;X),
             a__f_sl=0(;X) -> f_sl=0(;X),
             a__c_sl=0(;X) -> c_sl=0(;X),
             a__c_sl=1(X;) -> c_sl=0(;X),
             a__h_sl=0(;X) -> h_sl=1(;X),
             a__h_sl=1(X;) -> h_sl=1(;X)}
  

  Qed