YES Problem: p(0()) -> 0() p(s(x)) -> x minus(x,0()) -> x minus(x,s(y)) -> minus(p(x),y) Proof: DP Processor: DPs: minus#(x,s(y)) -> p#(x) minus#(x,s(y)) -> minus#(p(x),y) TRS: p(0()) -> 0() p(s(x)) -> x minus(x,0()) -> x minus(x,s(y)) -> minus(p(x),y) Usable Rule Processor: DPs: minus#(x,s(y)) -> p#(x) minus#(x,s(y)) -> minus#(p(x),y) TRS: p(0()) -> 0() p(s(x)) -> x CDG Processor: DPs: minus#(x,s(y)) -> p#(x) minus#(x,s(y)) -> minus#(p(x),y) TRS: p(0()) -> 0() p(s(x)) -> x graph: minus#(x,s(y)) -> minus#(p(x),y) -> minus#(x,s(y)) -> p#(x) minus#(x,s(y)) -> minus#(p(x),y) -> minus#(x,s(y)) -> minus#(p(x),y) Restore Modifier: DPs: minus#(x,s(y)) -> p#(x) minus#(x,s(y)) -> minus#(p(x),y) TRS: p(0()) -> 0() p(s(x)) -> x minus(x,0()) -> x minus(x,s(y)) -> minus(p(x),y) SCC Processor: #sccs: 1 #rules: 1 #arcs: 2/4 DPs: minus#(x,s(y)) -> minus#(p(x),y) TRS: p(0()) -> 0() p(s(x)) -> x minus(x,0()) -> x minus(x,s(y)) -> minus(p(x),y) Matrix Interpretation Processor: dimension: 1 interpretation: [minus#](x0, x1) = x1, [minus](x0, x1) = x0, [s](x0) = x0 + 1, [p](x0) = x0, [0] = 0 orientation: minus#(x,s(y)) = y + 1 >= y = minus#(p(x),y) p(0()) = 0 >= 0 = 0() p(s(x)) = x + 1 >= x = x minus(x,0()) = x >= x = x minus(x,s(y)) = x >= x = minus(p(x),y) problem: DPs: TRS: p(0()) -> 0() p(s(x)) -> x minus(x,0()) -> x minus(x,s(y)) -> minus(p(x),y) Qed