YES Problem: a__f(g(X),Y) -> a__f(mark(X),f(g(X),Y)) mark(f(X1,X2)) -> a__f(mark(X1),X2) mark(g(X)) -> g(mark(X)) a__f(X1,X2) -> f(X1,X2) Proof: DP Processor: DPs: a__f#(g(X),Y) -> mark#(X) a__f#(g(X),Y) -> a__f#(mark(X),f(g(X),Y)) mark#(f(X1,X2)) -> mark#(X1) mark#(f(X1,X2)) -> a__f#(mark(X1),X2) mark#(g(X)) -> mark#(X) TRS: a__f(g(X),Y) -> a__f(mark(X),f(g(X),Y)) mark(f(X1,X2)) -> a__f(mark(X1),X2) mark(g(X)) -> g(mark(X)) a__f(X1,X2) -> f(X1,X2) KBO Processor: argument filtering: pi(g) = [0] pi(a__f) = [0] pi(mark) = [0] pi(f) = [0] pi(a__f#) = [0] pi(mark#) = 0 weight function: w0 = 1 w(mark#) = w(a__f#) = w(f) = w(a__f) = w(g) = 1 w(mark) = 0 precedence: mark > a__f > f > mark# ~ a__f# ~ g problem: DPs: TRS: a__f(g(X),Y) -> a__f(mark(X),f(g(X),Y)) mark(f(X1,X2)) -> a__f(mark(X1),X2) mark(g(X)) -> g(mark(X)) a__f(X1,X2) -> f(X1,X2) Qed