YES Problem: f(X) -> if(X,c(),n__f(n__true())) if(true(),X,Y) -> X if(false(),X,Y) -> activate(Y) f(X) -> n__f(X) true() -> n__true() activate(n__f(X)) -> f(activate(X)) activate(n__true()) -> true() activate(X) -> X Proof: DP Processor: DPs: f#(X) -> if#(X,c(),n__f(n__true())) if#(false(),X,Y) -> activate#(Y) activate#(n__f(X)) -> activate#(X) activate#(n__f(X)) -> f#(activate(X)) activate#(n__true()) -> true#() TRS: f(X) -> if(X,c(),n__f(n__true())) if(true(),X,Y) -> X if(false(),X,Y) -> activate(Y) f(X) -> n__f(X) true() -> n__true() activate(n__f(X)) -> f(activate(X)) activate(n__true()) -> true() activate(X) -> X Matrix Interpretation Processor: dim=1 interpretation: [true#] = 0, [activate#](x0) = 2x0 + 2, [if#](x0, x1, x2) = x0 + 2x2 + 1, [f#](x0) = x0 + 5/2, [activate](x0) = x0, [false] = 3, [true] = 0, [if](x0, x1, x2) = 2x1 + x2, [n__f](x0) = x0 + 1/2, [n__true] = 0, [c] = 0, [f](x0) = x0 + 1/2 orientation: f#(X) = X + 5/2 >= X + 2 = if#(X,c(),n__f(n__true())) if#(false(),X,Y) = 2Y + 4 >= 2Y + 2 = activate#(Y) activate#(n__f(X)) = 2X + 3 >= 2X + 2 = activate#(X) activate#(n__f(X)) = 2X + 3 >= X + 5/2 = f#(activate(X)) activate#(n__true()) = 2 >= 0 = true#() f(X) = X + 1/2 >= 1/2 = if(X,c(),n__f(n__true())) if(true(),X,Y) = 2X + Y >= X = X if(false(),X,Y) = 2X + Y >= Y = activate(Y) f(X) = X + 1/2 >= X + 1/2 = n__f(X) true() = 0 >= 0 = n__true() activate(n__f(X)) = X + 1/2 >= X + 1/2 = f(activate(X)) activate(n__true()) = 0 >= 0 = true() activate(X) = X >= X = X problem: DPs: TRS: f(X) -> if(X,c(),n__f(n__true())) if(true(),X,Y) -> X if(false(),X,Y) -> activate(Y) f(X) -> n__f(X) true() -> n__true() activate(n__f(X)) -> f(activate(X)) activate(n__true()) -> true() activate(X) -> X Qed