YES Problem: __(__(X,Y),Z) -> __(X,__(Y,Z)) __(X,nil()) -> X __(nil(),X) -> X and(tt(),X) -> activate(X) isNePal(__(I,__(P,I))) -> tt() activate(X) -> X Proof: DP Processor: DPs: __#(__(X,Y),Z) -> __#(Y,Z) __#(__(X,Y),Z) -> __#(X,__(Y,Z)) and#(tt(),X) -> activate#(X) TRS: __(__(X,Y),Z) -> __(X,__(Y,Z)) __(X,nil()) -> X __(nil(),X) -> X and(tt(),X) -> activate(X) isNePal(__(I,__(P,I))) -> tt() activate(X) -> X Usable Rule Processor: DPs: __#(__(X,Y),Z) -> __#(Y,Z) __#(__(X,Y),Z) -> __#(X,__(Y,Z)) and#(tt(),X) -> activate#(X) TRS: __(__(X,Y),Z) -> __(X,__(Y,Z)) __(X,nil()) -> X __(nil(),X) -> X Matrix Interpretation Processor: dim=3 usable rules: __(__(X,Y),Z) -> __(X,__(Y,Z)) __(X,nil()) -> X __(nil(),X) -> X interpretation: [activate#](x0) = [0], [and#](x0, x1) = [1], [__#](x0, x1) = [1 0 1]x0 + [1 0 0]x1, [0] [tt] = [0] [0], [0] [nil] = [0] [0], [0] [__](x0, x1) = x0 + x1 + [0] [1] orientation: __#(__(X,Y),Z) = [1 0 1]X + [1 0 1]Y + [1 0 0]Z + [1] >= [1 0 1]Y + [1 0 0]Z = __#(Y,Z) __#(__(X,Y),Z) = [1 0 1]X + [1 0 1]Y + [1 0 0]Z + [1] >= [1 0 1]X + [1 0 0]Y + [1 0 0]Z = __#(X,__(Y,Z)) and#(tt(),X) = [1] >= [0] = activate#(X) [0] [0] __(__(X,Y),Z) = X + Y + Z + [0] >= X + Y + Z + [0] = __(X,__(Y,Z)) [2] [2] [0] __(X,nil()) = X + [0] >= X = X [1] [0] __(nil(),X) = X + [0] >= X = X [1] problem: DPs: TRS: __(__(X,Y),Z) -> __(X,__(Y,Z)) __(X,nil()) -> X __(nil(),X) -> X Qed