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