YES Problem: a__and(tt(),X) -> mark(X) a__plus(N,0()) -> mark(N) a__plus(N,s(M)) -> s(a__plus(mark(N),mark(M))) mark(and(X1,X2)) -> a__and(mark(X1),X2) mark(plus(X1,X2)) -> a__plus(mark(X1),mark(X2)) mark(tt()) -> tt() mark(0()) -> 0() mark(s(X)) -> s(mark(X)) a__and(X1,X2) -> and(X1,X2) a__plus(X1,X2) -> plus(X1,X2) Proof: DP Processor: DPs: a__and#(tt(),X) -> mark#(X) a__plus#(N,0()) -> mark#(N) a__plus#(N,s(M)) -> mark#(M) a__plus#(N,s(M)) -> mark#(N) a__plus#(N,s(M)) -> a__plus#(mark(N),mark(M)) mark#(and(X1,X2)) -> mark#(X1) mark#(and(X1,X2)) -> a__and#(mark(X1),X2) mark#(plus(X1,X2)) -> mark#(X2) mark#(plus(X1,X2)) -> mark#(X1) mark#(plus(X1,X2)) -> a__plus#(mark(X1),mark(X2)) mark#(s(X)) -> mark#(X) TRS: a__and(tt(),X) -> mark(X) a__plus(N,0()) -> mark(N) a__plus(N,s(M)) -> s(a__plus(mark(N),mark(M))) mark(and(X1,X2)) -> a__and(mark(X1),X2) mark(plus(X1,X2)) -> a__plus(mark(X1),mark(X2)) mark(tt()) -> tt() mark(0()) -> 0() mark(s(X)) -> s(mark(X)) a__and(X1,X2) -> and(X1,X2) a__plus(X1,X2) -> plus(X1,X2) KBO Processor: argument filtering: pi(tt) = [] pi(a__and) = [0,1] pi(mark) = [0] pi(0) = [] pi(a__plus) = [0,1] pi(s) = [0] pi(and) = [0,1] pi(plus) = [0,1] pi(a__and#) = [0,1] pi(mark#) = [0] pi(a__plus#) = [0,1] weight function: w0 = 1 w(mark#) = w(plus) = w(and) = w(s) = w(a__plus) = w(0) = w(a__and) = w( tt) = 1 w(a__plus#) = w(a__and#) = w(mark) = 0 precedence: a__plus# ~ mark > a__and > a__and# ~ a__plus > mark# ~ plus ~ and ~ s ~ 0 ~ tt problem: DPs: TRS: a__and(tt(),X) -> mark(X) a__plus(N,0()) -> mark(N) a__plus(N,s(M)) -> s(a__plus(mark(N),mark(M))) mark(and(X1,X2)) -> a__and(mark(X1),X2) mark(plus(X1,X2)) -> a__plus(mark(X1),mark(X2)) mark(tt()) -> tt() mark(0()) -> 0() mark(s(X)) -> s(mark(X)) a__and(X1,X2) -> and(X1,X2) a__plus(X1,X2) -> plus(X1,X2) Qed