YES Problem: din(der(plus(X,Y))) -> u21(din(der(X)),X,Y) u21(dout(DX),X,Y) -> u22(din(der(Y)),X,Y,DX) u22(dout(DY),X,Y,DX) -> dout(plus(DX,DY)) din(der(times(X,Y))) -> u31(din(der(X)),X,Y) u31(dout(DX),X,Y) -> u32(din(der(Y)),X,Y,DX) u32(dout(DY),X,Y,DX) -> dout(plus(times(X,DY),times(Y,DX))) din(der(der(X))) -> u41(din(der(X)),X) u41(dout(DX),X) -> u42(din(der(DX)),X,DX) u42(dout(DDX),X,DX) -> dout(DDX) Proof: DP Processor: DPs: din#(der(plus(X,Y))) -> din#(der(X)) din#(der(plus(X,Y))) -> u21#(din(der(X)),X,Y) u21#(dout(DX),X,Y) -> din#(der(Y)) u21#(dout(DX),X,Y) -> u22#(din(der(Y)),X,Y,DX) din#(der(times(X,Y))) -> din#(der(X)) din#(der(times(X,Y))) -> u31#(din(der(X)),X,Y) u31#(dout(DX),X,Y) -> din#(der(Y)) u31#(dout(DX),X,Y) -> u32#(din(der(Y)),X,Y,DX) din#(der(der(X))) -> din#(der(X)) din#(der(der(X))) -> u41#(din(der(X)),X) u41#(dout(DX),X) -> din#(der(DX)) u41#(dout(DX),X) -> u42#(din(der(DX)),X,DX) TRS: din(der(plus(X,Y))) -> u21(din(der(X)),X,Y) u21(dout(DX),X,Y) -> u22(din(der(Y)),X,Y,DX) u22(dout(DY),X,Y,DX) -> dout(plus(DX,DY)) din(der(times(X,Y))) -> u31(din(der(X)),X,Y) u31(dout(DX),X,Y) -> u32(din(der(Y)),X,Y,DX) u32(dout(DY),X,Y,DX) -> dout(plus(times(X,DY),times(Y,DX))) din(der(der(X))) -> u41(din(der(X)),X) u41(dout(DX),X) -> u42(din(der(DX)),X,DX) u42(dout(DDX),X,DX) -> dout(DDX) EDG Processor: DPs: din#(der(plus(X,Y))) -> din#(der(X)) din#(der(plus(X,Y))) -> u21#(din(der(X)),X,Y) u21#(dout(DX),X,Y) -> din#(der(Y)) u21#(dout(DX),X,Y) -> u22#(din(der(Y)),X,Y,DX) din#(der(times(X,Y))) -> din#(der(X)) din#(der(times(X,Y))) -> u31#(din(der(X)),X,Y) u31#(dout(DX),X,Y) -> din#(der(Y)) u31#(dout(DX),X,Y) -> u32#(din(der(Y)),X,Y,DX) din#(der(der(X))) -> din#(der(X)) din#(der(der(X))) -> u41#(din(der(X)),X) u41#(dout(DX),X) -> din#(der(DX)) u41#(dout(DX),X) -> u42#(din(der(DX)),X,DX) TRS: din(der(plus(X,Y))) -> u21(din(der(X)),X,Y) u21(dout(DX),X,Y) -> u22(din(der(Y)),X,Y,DX) u22(dout(DY),X,Y,DX) -> dout(plus(DX,DY)) din(der(times(X,Y))) -> u31(din(der(X)),X,Y) u31(dout(DX),X,Y) -> u32(din(der(Y)),X,Y,DX) u32(dout(DY),X,Y,DX) -> dout(plus(times(X,DY),times(Y,DX))) din(der(der(X))) -> u41(din(der(X)),X) u41(dout(DX),X) -> u42(din(der(DX)),X,DX) u42(dout(DDX),X,DX) -> dout(DDX) graph: u41#(dout(DX),X) -> din#(der(DX)) -> din#(der(plus(X,Y))) -> din#(der(X)) u41#(dout(DX),X) -> din#(der(DX)) -> din#(der(plus(X,Y))) -> u21#(din(der(X)),X,Y) u41#(dout(DX),X) -> din#(der(DX)) -> din#(der(times(X,Y))) -> din#(der(X)) u41#(dout(DX),X) -> din#(der(DX)) -> din#(der(times(X,Y))) -> u31#(din(der(X)),X,Y) u41#(dout(DX),X) -> din#(der(DX)) -> din#(der(der(X))) -> din#(der(X)) u41#(dout(DX),X) -> din#(der(DX)) -> din#(der(der(X))) -> u41#(din(der(X)),X) u31#(dout(DX),X,Y) -> din#(der(Y)) -> din#(der(plus(X,Y))) -> din#(der(X)) u31#(dout(DX),X,Y) -> din#(der(Y)) -> din#(der(plus(X,Y))) -> u21#(din(der(X)),X,Y) u31#(dout(DX),X,Y) -> din#(der(Y)) -> din#(der(times(X,Y))) -> din#(der(X)) u31#(dout(DX),X,Y) -> din#(der(Y)) -> din#(der(times(X,Y))) -> u31#(din(der(X)),X,Y) u31#(dout(DX),X,Y) -> din#(der(Y)) -> din#(der(der(X))) -> din#(der(X)) u31#(dout(DX),X,Y) -> din#(der(Y)) -> din#(der(der(X))) -> u41#(din(der(X)),X) u21#(dout(DX),X,Y) -> din#(der(Y)) -> din#(der(plus(X,Y))) -> din#(der(X)) u21#(dout(DX),X,Y) -> din#(der(Y)) -> din#(der(plus(X,Y))) -> u21#(din(der(X)),X,Y) u21#(dout(DX),X,Y) -> din#(der(Y)) -> din#(der(times(X,Y))) -> din#(der(X)) u21#(dout(DX),X,Y) -> din#(der(Y)) -> din#(der(times(X,Y))) -> u31#(din(der(X)),X,Y) u21#(dout(DX),X,Y) -> din#(der(Y)) -> din#(der(der(X))) -> din#(der(X)) u21#(dout(DX),X,Y) -> din#(der(Y)) -> din#(der(der(X))) -> u41#(din(der(X)),X) din#(der(times(X,Y))) -> u31#(din(der(X)),X,Y) -> u31#(dout(DX),X,Y) -> din#(der(Y)) din#(der(times(X,Y))) -> u31#(din(der(X)),X,Y) -> u31#(dout(DX),X,Y) -> u32#(din(der(Y)),X,Y,DX) din#(der(times(X,Y))) -> din#(der(X)) -> din#(der(plus(X,Y))) -> din#(der(X)) din#(der(times(X,Y))) -> din#(der(X)) -> din#(der(plus(X,Y))) -> u21#(din(der(X)),X,Y) din#(der(times(X,Y))) -> din#(der(X)) -> din#(der(times(X,Y))) -> din#(der(X)) din#(der(times(X,Y))) -> din#(der(X)) -> din#(der(times(X,Y))) -> u31#(din(der(X)),X,Y) din#(der(times(X,Y))) -> din#(der(X)) -> din#(der(der(X))) -> din#(der(X)) din#(der(times(X,Y))) -> din#(der(X)) -> din#(der(der(X))) -> u41#(din(der(X)),X) din#(der(der(X))) -> u41#(din(der(X)),X) -> u41#(dout(DX),X) -> din#(der(DX)) din#(der(der(X))) -> u41#(din(der(X)),X) -> u41#(dout(DX),X) -> u42#(din(der(DX)),X,DX) din#(der(der(X))) -> din#(der(X)) -> din#(der(plus(X,Y))) -> din#(der(X)) din#(der(der(X))) -> din#(der(X)) -> din#(der(plus(X,Y))) -> u21#(din(der(X)),X,Y) din#(der(der(X))) -> din#(der(X)) -> din#(der(times(X,Y))) -> din#(der(X)) din#(der(der(X))) -> din#(der(X)) -> din#(der(times(X,Y))) -> u31#(din(der(X)),X,Y) din#(der(der(X))) -> din#(der(X)) -> din#(der(der(X))) -> din#(der(X)) din#(der(der(X))) -> din#(der(X)) -> din#(der(der(X))) -> u41#(din(der(X)),X) din#(der(plus(X,Y))) -> u21#(din(der(X)),X,Y) -> u21#(dout(DX),X,Y) -> din#(der(Y)) din#(der(plus(X,Y))) -> u21#(din(der(X)),X,Y) -> u21#(dout(DX),X,Y) -> u22#(din(der(Y)),X,Y,DX) din#(der(plus(X,Y))) -> din#(der(X)) -> din#(der(plus(X,Y))) -> din#(der(X)) din#(der(plus(X,Y))) -> din#(der(X)) -> din#(der(plus(X,Y))) -> u21#(din(der(X)),X,Y) din#(der(plus(X,Y))) -> din#(der(X)) -> din#(der(times(X,Y))) -> din#(der(X)) din#(der(plus(X,Y))) -> din#(der(X)) -> din#(der(times(X,Y))) -> u31#(din(der(X)),X,Y) din#(der(plus(X,Y))) -> din#(der(X)) -> din#(der(der(X))) -> din#(der(X)) din#(der(plus(X,Y))) -> din#(der(X)) -> din#(der(der(X))) -> u41#(din(der(X)),X) SCC Processor: #sccs: 1 #rules: 9 #arcs: 42/144 DPs: u41#(dout(DX),X) -> din#(der(DX)) din#(der(der(X))) -> u41#(din(der(X)),X) din#(der(der(X))) -> din#(der(X)) din#(der(times(X,Y))) -> u31#(din(der(X)),X,Y) u31#(dout(DX),X,Y) -> din#(der(Y)) din#(der(times(X,Y))) -> din#(der(X)) din#(der(plus(X,Y))) -> u21#(din(der(X)),X,Y) u21#(dout(DX),X,Y) -> din#(der(Y)) din#(der(plus(X,Y))) -> din#(der(X)) TRS: din(der(plus(X,Y))) -> u21(din(der(X)),X,Y) u21(dout(DX),X,Y) -> u22(din(der(Y)),X,Y,DX) u22(dout(DY),X,Y,DX) -> dout(plus(DX,DY)) din(der(times(X,Y))) -> u31(din(der(X)),X,Y) u31(dout(DX),X,Y) -> u32(din(der(Y)),X,Y,DX) u32(dout(DY),X,Y,DX) -> dout(plus(times(X,DY),times(Y,DX))) din(der(der(X))) -> u41(din(der(X)),X) u41(dout(DX),X) -> u42(din(der(DX)),X,DX) u42(dout(DDX),X,DX) -> dout(DDX) Matrix Interpretation Processor: dimension: 1 interpretation: [u41#](x0, x1) = x0, [u31#](x0, x1, x2) = 0, [u21#](x0, x1, x2) = 0, [din#](x0) = 0, [u42](x0, x1, x2) = 1, [u41](x0, x1) = x0, [u32](x0, x1, x2, x3) = x0, [u31](x0, x1, x2) = 0, [times](x0, x1) = 0, [u22](x0, x1, x2, x3) = x0, [dout](x0) = 1, [u21](x0, x1, x2) = 0, [din](x0) = 0, [der](x0) = 0, [plus](x0, x1) = 0 orientation: u41#(dout(DX),X) = 1 >= 0 = din#(der(DX)) din#(der(der(X))) = 0 >= 0 = u41#(din(der(X)),X) din#(der(der(X))) = 0 >= 0 = din#(der(X)) din#(der(times(X,Y))) = 0 >= 0 = u31#(din(der(X)),X,Y) u31#(dout(DX),X,Y) = 0 >= 0 = din#(der(Y)) din#(der(times(X,Y))) = 0 >= 0 = din#(der(X)) din#(der(plus(X,Y))) = 0 >= 0 = u21#(din(der(X)),X,Y) u21#(dout(DX),X,Y) = 0 >= 0 = din#(der(Y)) din#(der(plus(X,Y))) = 0 >= 0 = din#(der(X)) din(der(plus(X,Y))) = 0 >= 0 = u21(din(der(X)),X,Y) u21(dout(DX),X,Y) = 0 >= 0 = u22(din(der(Y)),X,Y,DX) u22(dout(DY),X,Y,DX) = 1 >= 1 = dout(plus(DX,DY)) din(der(times(X,Y))) = 0 >= 0 = u31(din(der(X)),X,Y) u31(dout(DX),X,Y) = 0 >= 0 = u32(din(der(Y)),X,Y,DX) u32(dout(DY),X,Y,DX) = 1 >= 1 = dout(plus(times(X,DY),times(Y,DX))) din(der(der(X))) = 0 >= 0 = u41(din(der(X)),X) u41(dout(DX),X) = 1 >= 1 = u42(din(der(DX)),X,DX) u42(dout(DDX),X,DX) = 1 >= 1 = dout(DDX) problem: DPs: din#(der(der(X))) -> u41#(din(der(X)),X) din#(der(der(X))) -> din#(der(X)) din#(der(times(X,Y))) -> u31#(din(der(X)),X,Y) u31#(dout(DX),X,Y) -> din#(der(Y)) din#(der(times(X,Y))) -> din#(der(X)) din#(der(plus(X,Y))) -> u21#(din(der(X)),X,Y) u21#(dout(DX),X,Y) -> din#(der(Y)) din#(der(plus(X,Y))) -> din#(der(X)) TRS: din(der(plus(X,Y))) -> u21(din(der(X)),X,Y) u21(dout(DX),X,Y) -> u22(din(der(Y)),X,Y,DX) u22(dout(DY),X,Y,DX) -> dout(plus(DX,DY)) din(der(times(X,Y))) -> u31(din(der(X)),X,Y) u31(dout(DX),X,Y) -> u32(din(der(Y)),X,Y,DX) u32(dout(DY),X,Y,DX) -> dout(plus(times(X,DY),times(Y,DX))) din(der(der(X))) -> u41(din(der(X)),X) u41(dout(DX),X) -> u42(din(der(DX)),X,DX) u42(dout(DDX),X,DX) -> dout(DDX) Matrix Interpretation Processor: dimension: 1 interpretation: [u41#](x0, x1) = 0, [u31#](x0, x1, x2) = 0, [u21#](x0, x1, x2) = x0, [din#](x0) = 0, [u42](x0, x1, x2) = x0, [u41](x0, x1) = 0, [u32](x0, x1, x2, x3) = x0, [u31](x0, x1, x2) = 0, [times](x0, x1) = 0, [u22](x0, x1, x2, x3) = x0, [dout](x0) = 1, [u21](x0, x1, x2) = 0, [din](x0) = 0, [der](x0) = 0, [plus](x0, x1) = 0 orientation: din#(der(der(X))) = 0 >= 0 = u41#(din(der(X)),X) din#(der(der(X))) = 0 >= 0 = din#(der(X)) din#(der(times(X,Y))) = 0 >= 0 = u31#(din(der(X)),X,Y) u31#(dout(DX),X,Y) = 0 >= 0 = din#(der(Y)) din#(der(times(X,Y))) = 0 >= 0 = din#(der(X)) din#(der(plus(X,Y))) = 0 >= 0 = u21#(din(der(X)),X,Y) u21#(dout(DX),X,Y) = 1 >= 0 = din#(der(Y)) din#(der(plus(X,Y))) = 0 >= 0 = din#(der(X)) din(der(plus(X,Y))) = 0 >= 0 = u21(din(der(X)),X,Y) u21(dout(DX),X,Y) = 0 >= 0 = u22(din(der(Y)),X,Y,DX) u22(dout(DY),X,Y,DX) = 1 >= 1 = dout(plus(DX,DY)) din(der(times(X,Y))) = 0 >= 0 = u31(din(der(X)),X,Y) u31(dout(DX),X,Y) = 0 >= 0 = u32(din(der(Y)),X,Y,DX) u32(dout(DY),X,Y,DX) = 1 >= 1 = dout(plus(times(X,DY),times(Y,DX))) din(der(der(X))) = 0 >= 0 = u41(din(der(X)),X) u41(dout(DX),X) = 0 >= 0 = u42(din(der(DX)),X,DX) u42(dout(DDX),X,DX) = 1 >= 1 = dout(DDX) problem: DPs: din#(der(der(X))) -> u41#(din(der(X)),X) din#(der(der(X))) -> din#(der(X)) din#(der(times(X,Y))) -> u31#(din(der(X)),X,Y) u31#(dout(DX),X,Y) -> din#(der(Y)) din#(der(times(X,Y))) -> din#(der(X)) din#(der(plus(X,Y))) -> u21#(din(der(X)),X,Y) din#(der(plus(X,Y))) -> din#(der(X)) TRS: din(der(plus(X,Y))) -> u21(din(der(X)),X,Y) u21(dout(DX),X,Y) -> u22(din(der(Y)),X,Y,DX) u22(dout(DY),X,Y,DX) -> dout(plus(DX,DY)) din(der(times(X,Y))) -> u31(din(der(X)),X,Y) u31(dout(DX),X,Y) -> u32(din(der(Y)),X,Y,DX) u32(dout(DY),X,Y,DX) -> dout(plus(times(X,DY),times(Y,DX))) din(der(der(X))) -> u41(din(der(X)),X) u41(dout(DX),X) -> u42(din(der(DX)),X,DX) u42(dout(DDX),X,DX) -> dout(DDX) Matrix Interpretation Processor: dimension: 1 interpretation: [u41#](x0, x1) = 1, [u31#](x0, x1, x2) = x0 + 1, [u21#](x0, x1, x2) = 0, [din#](x0) = x0, [u42](x0, x1, x2) = x0 + 1, [u41](x0, x1) = x0, [u32](x0, x1, x2, x3) = x0, [u31](x0, x1, x2) = 0, [times](x0, x1) = 0, [u22](x0, x1, x2, x3) = x0, [dout](x0) = x0 + 1, [u21](x0, x1, x2) = 0, [din](x0) = 0, [der](x0) = 1, [plus](x0, x1) = 0 orientation: din#(der(der(X))) = 1 >= 1 = u41#(din(der(X)),X) din#(der(der(X))) = 1 >= 1 = din#(der(X)) din#(der(times(X,Y))) = 1 >= 1 = u31#(din(der(X)),X,Y) u31#(dout(DX),X,Y) = DX + 2 >= 1 = din#(der(Y)) din#(der(times(X,Y))) = 1 >= 1 = din#(der(X)) din#(der(plus(X,Y))) = 1 >= 0 = u21#(din(der(X)),X,Y) din#(der(plus(X,Y))) = 1 >= 1 = din#(der(X)) din(der(plus(X,Y))) = 0 >= 0 = u21(din(der(X)),X,Y) u21(dout(DX),X,Y) = 0 >= 0 = u22(din(der(Y)),X,Y,DX) u22(dout(DY),X,Y,DX) = DY + 1 >= 1 = dout(plus(DX,DY)) din(der(times(X,Y))) = 0 >= 0 = u31(din(der(X)),X,Y) u31(dout(DX),X,Y) = 0 >= 0 = u32(din(der(Y)),X,Y,DX) u32(dout(DY),X,Y,DX) = DY + 1 >= 1 = dout(plus(times(X,DY),times(Y,DX))) din(der(der(X))) = 0 >= 0 = u41(din(der(X)),X) u41(dout(DX),X) = DX + 1 >= 1 = u42(din(der(DX)),X,DX) u42(dout(DDX),X,DX) = DDX + 2 >= DDX + 1 = dout(DDX) problem: DPs: din#(der(der(X))) -> u41#(din(der(X)),X) din#(der(der(X))) -> din#(der(X)) din#(der(times(X,Y))) -> u31#(din(der(X)),X,Y) din#(der(times(X,Y))) -> din#(der(X)) din#(der(plus(X,Y))) -> din#(der(X)) TRS: din(der(plus(X,Y))) -> u21(din(der(X)),X,Y) u21(dout(DX),X,Y) -> u22(din(der(Y)),X,Y,DX) u22(dout(DY),X,Y,DX) -> dout(plus(DX,DY)) din(der(times(X,Y))) -> u31(din(der(X)),X,Y) u31(dout(DX),X,Y) -> u32(din(der(Y)),X,Y,DX) u32(dout(DY),X,Y,DX) -> dout(plus(times(X,DY),times(Y,DX))) din(der(der(X))) -> u41(din(der(X)),X) u41(dout(DX),X) -> u42(din(der(DX)),X,DX) u42(dout(DDX),X,DX) -> dout(DDX) Matrix Interpretation Processor: dimension: 1 interpretation: [u41#](x0, x1) = x0, [u31#](x0, x1, x2) = 0, [din#](x0) = x0, [u42](x0, x1, x2) = x0, [u41](x0, x1) = 1, [u32](x0, x1, x2, x3) = x0, [u31](x0, x1, x2) = 1, [times](x0, x1) = 0, [u22](x0, x1, x2, x3) = 0, [dout](x0) = 0, [u21](x0, x1, x2) = 0, [din](x0) = 1, [der](x0) = 1, [plus](x0, x1) = 0 orientation: din#(der(der(X))) = 1 >= 1 = u41#(din(der(X)),X) din#(der(der(X))) = 1 >= 1 = din#(der(X)) din#(der(times(X,Y))) = 1 >= 0 = u31#(din(der(X)),X,Y) din#(der(times(X,Y))) = 1 >= 1 = din#(der(X)) din#(der(plus(X,Y))) = 1 >= 1 = din#(der(X)) din(der(plus(X,Y))) = 1 >= 0 = u21(din(der(X)),X,Y) u21(dout(DX),X,Y) = 0 >= 0 = u22(din(der(Y)),X,Y,DX) u22(dout(DY),X,Y,DX) = 0 >= 0 = dout(plus(DX,DY)) din(der(times(X,Y))) = 1 >= 1 = u31(din(der(X)),X,Y) u31(dout(DX),X,Y) = 1 >= 1 = u32(din(der(Y)),X,Y,DX) u32(dout(DY),X,Y,DX) = 0 >= 0 = dout(plus(times(X,DY),times(Y,DX))) din(der(der(X))) = 1 >= 1 = u41(din(der(X)),X) u41(dout(DX),X) = 1 >= 1 = u42(din(der(DX)),X,DX) u42(dout(DDX),X,DX) = 0 >= 0 = dout(DDX) problem: DPs: din#(der(der(X))) -> u41#(din(der(X)),X) din#(der(der(X))) -> din#(der(X)) din#(der(times(X,Y))) -> din#(der(X)) din#(der(plus(X,Y))) -> din#(der(X)) TRS: din(der(plus(X,Y))) -> u21(din(der(X)),X,Y) u21(dout(DX),X,Y) -> u22(din(der(Y)),X,Y,DX) u22(dout(DY),X,Y,DX) -> dout(plus(DX,DY)) din(der(times(X,Y))) -> u31(din(der(X)),X,Y) u31(dout(DX),X,Y) -> u32(din(der(Y)),X,Y,DX) u32(dout(DY),X,Y,DX) -> dout(plus(times(X,DY),times(Y,DX))) din(der(der(X))) -> u41(din(der(X)),X) u41(dout(DX),X) -> u42(din(der(DX)),X,DX) u42(dout(DDX),X,DX) -> dout(DDX) Matrix Interpretation Processor: dimension: 1 interpretation: [u41#](x0, x1) = x1, [din#](x0) = x0, [u42](x0, x1, x2) = 0, [u41](x0, x1) = x0, [u32](x0, x1, x2, x3) = 0, [u31](x0, x1, x2) = x0, [times](x0, x1) = x0 + 1, [u22](x0, x1, x2, x3) = 0, [dout](x0) = 0, [u21](x0, x1, x2) = 0, [din](x0) = 1, [der](x0) = x0, [plus](x0, x1) = x0 orientation: din#(der(der(X))) = X >= X = u41#(din(der(X)),X) din#(der(der(X))) = X >= X = din#(der(X)) din#(der(times(X,Y))) = X + 1 >= X = din#(der(X)) din#(der(plus(X,Y))) = X >= X = din#(der(X)) din(der(plus(X,Y))) = 1 >= 0 = u21(din(der(X)),X,Y) u21(dout(DX),X,Y) = 0 >= 0 = u22(din(der(Y)),X,Y,DX) u22(dout(DY),X,Y,DX) = 0 >= 0 = dout(plus(DX,DY)) din(der(times(X,Y))) = 1 >= 1 = u31(din(der(X)),X,Y) u31(dout(DX),X,Y) = 0 >= 0 = u32(din(der(Y)),X,Y,DX) u32(dout(DY),X,Y,DX) = 0 >= 0 = dout(plus(times(X,DY),times(Y,DX))) din(der(der(X))) = 1 >= 1 = u41(din(der(X)),X) u41(dout(DX),X) = 0 >= 0 = u42(din(der(DX)),X,DX) u42(dout(DDX),X,DX) = 0 >= 0 = dout(DDX) problem: DPs: din#(der(der(X))) -> u41#(din(der(X)),X) din#(der(der(X))) -> din#(der(X)) din#(der(plus(X,Y))) -> din#(der(X)) TRS: din(der(plus(X,Y))) -> u21(din(der(X)),X,Y) u21(dout(DX),X,Y) -> u22(din(der(Y)),X,Y,DX) u22(dout(DY),X,Y,DX) -> dout(plus(DX,DY)) din(der(times(X,Y))) -> u31(din(der(X)),X,Y) u31(dout(DX),X,Y) -> u32(din(der(Y)),X,Y,DX) u32(dout(DY),X,Y,DX) -> dout(plus(times(X,DY),times(Y,DX))) din(der(der(X))) -> u41(din(der(X)),X) u41(dout(DX),X) -> u42(din(der(DX)),X,DX) u42(dout(DDX),X,DX) -> dout(DDX) Matrix Interpretation Processor: dimension: 1 interpretation: [u41#](x0, x1) = x1, [din#](x0) = x0, [u42](x0, x1, x2) = 0, [u41](x0, x1) = 1, [u32](x0, x1, x2, x3) = x0, [u31](x0, x1, x2) = 1, [times](x0, x1) = 0, [u22](x0, x1, x2, x3) = 0, [dout](x0) = 0, [u21](x0, x1, x2) = 0, [din](x0) = 1, [der](x0) = x0, [plus](x0, x1) = x0 + 1 orientation: din#(der(der(X))) = X >= X = u41#(din(der(X)),X) din#(der(der(X))) = X >= X = din#(der(X)) din#(der(plus(X,Y))) = X + 1 >= X = din#(der(X)) din(der(plus(X,Y))) = 1 >= 0 = u21(din(der(X)),X,Y) u21(dout(DX),X,Y) = 0 >= 0 = u22(din(der(Y)),X,Y,DX) u22(dout(DY),X,Y,DX) = 0 >= 0 = dout(plus(DX,DY)) din(der(times(X,Y))) = 1 >= 1 = u31(din(der(X)),X,Y) u31(dout(DX),X,Y) = 1 >= 1 = u32(din(der(Y)),X,Y,DX) u32(dout(DY),X,Y,DX) = 0 >= 0 = dout(plus(times(X,DY),times(Y,DX))) din(der(der(X))) = 1 >= 1 = u41(din(der(X)),X) u41(dout(DX),X) = 1 >= 0 = u42(din(der(DX)),X,DX) u42(dout(DDX),X,DX) = 0 >= 0 = dout(DDX) problem: DPs: din#(der(der(X))) -> u41#(din(der(X)),X) din#(der(der(X))) -> din#(der(X)) TRS: din(der(plus(X,Y))) -> u21(din(der(X)),X,Y) u21(dout(DX),X,Y) -> u22(din(der(Y)),X,Y,DX) u22(dout(DY),X,Y,DX) -> dout(plus(DX,DY)) din(der(times(X,Y))) -> u31(din(der(X)),X,Y) u31(dout(DX),X,Y) -> u32(din(der(Y)),X,Y,DX) u32(dout(DY),X,Y,DX) -> dout(plus(times(X,DY),times(Y,DX))) din(der(der(X))) -> u41(din(der(X)),X) u41(dout(DX),X) -> u42(din(der(DX)),X,DX) u42(dout(DDX),X,DX) -> dout(DDX) Subterm Criterion Processor: simple projection: pi(din#) = 0 pi(u41#) = 1 problem: DPs: TRS: din(der(plus(X,Y))) -> u21(din(der(X)),X,Y) u21(dout(DX),X,Y) -> u22(din(der(Y)),X,Y,DX) u22(dout(DY),X,Y,DX) -> dout(plus(DX,DY)) din(der(times(X,Y))) -> u31(din(der(X)),X,Y) u31(dout(DX),X,Y) -> u32(din(der(Y)),X,Y,DX) u32(dout(DY),X,Y,DX) -> dout(plus(times(X,DY),times(Y,DX))) din(der(der(X))) -> u41(din(der(X)),X) u41(dout(DX),X) -> u42(din(der(DX)),X,DX) u42(dout(DDX),X,DX) -> dout(DDX) Qed