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