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

  Qed