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 TDG 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 graph: activate#(n__f(X)) -> activate#(X) -> activate#(n__true()) -> true#() activate#(n__f(X)) -> activate#(X) -> activate#(n__f(X)) -> f#(activate(X)) activate#(n__f(X)) -> activate#(X) -> activate#(n__f(X)) -> activate#(X) activate#(n__f(X)) -> f#(activate(X)) -> f#(X) -> if#(X,c(),n__f(n__true())) if#(false(),X,Y) -> activate#(Y) -> activate#(n__true()) -> true#() if#(false(),X,Y) -> activate#(Y) -> activate#(n__f(X)) -> f#(activate(X)) if#(false(),X,Y) -> activate#(Y) -> activate#(n__f(X)) -> activate#(X) f#(X) -> if#(X,c(),n__f(n__true())) -> if#(false(),X,Y) -> activate#(Y) CDG 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 graph: activate#(n__f(X)) -> activate#(X) -> activate#(n__f(X)) -> activate#(X) activate#(n__f(X)) -> activate#(X) -> activate#(n__f(X)) -> f#(activate(X)) activate#(n__f(X)) -> activate#(X) -> activate#(n__true()) -> true#() activate#(n__f(X)) -> f#(activate(X)) -> f#(X) -> if#(X,c(),n__f(n__true())) if#(false(),X,Y) -> activate#(Y) -> activate#(n__f(X)) -> activate#(X) if#(false(),X,Y) -> activate#(Y) -> activate#(n__f(X)) -> f#(activate(X)) if#(false(),X,Y) -> activate#(Y) -> activate#(n__true()) -> true#() SCC Processor: #sccs: 1 #rules: 1 #arcs: 7/25 DPs: activate#(n__f(X)) -> activate#(X) 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=3 interpretation: [activate#](x0) = [0 1 1]x0 + [1], [activate](x0) = x0 , [1] [false] = [0] [1], [0] [true] = [0] [0], [0 0 0] [if](x0, x1, x2) = [0 0 0]x0 + x1 + x2 [1 0 1] , [0 0 0] [0] [n__f](x0) = [0 0 0]x0 + [1] [1 1 1] [0], [0] [n__true] = [0] [0], [0] [c] = [0] [0], [0 0 0] [0] [f](x0) = [0 0 0]x0 + [1] [1 1 1] [0] orientation: activate#(n__f(X)) = [1 1 1]X + [2] >= [0 1 1]X + [1] = activate#(X) [0 0 0] [0] [0 0 0] [0] f(X) = [0 0 0]X + [1] >= [0 0 0]X + [1] = if(X,c(),n__f(n__true())) [1 1 1] [0] [1 0 1] [0] if(true(),X,Y) = X + Y >= X = X [0] if(false(),X,Y) = X + Y + [0] >= Y = activate(Y) [2] [0 0 0] [0] [0 0 0] [0] f(X) = [0 0 0]X + [1] >= [0 0 0]X + [1] = n__f(X) [1 1 1] [0] [1 1 1] [0] [0] [0] true() = [0] >= [0] = n__true() [0] [0] [0 0 0] [0] [0 0 0] [0] activate(n__f(X)) = [0 0 0]X + [1] >= [0 0 0]X + [1] = f(activate(X)) [1 1 1] [0] [1 1 1] [0] [0] [0] activate(n__true()) = [0] >= [0] = true() [0] [0] 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