YES Problem: +(x,0()) -> x +(0(),x) -> x +(s(x),s(y)) -> s(s(+(x,y))) *(x,0()) -> 0() *(0(),x) -> 0() *(s(x),s(y)) -> s(+(*(x,y),+(x,y))) sum(nil()) -> 0() sum(cons(x,l)) -> +(x,sum(l)) prod(nil()) -> s(0()) prod(cons(x,l)) -> *(x,prod(l)) Proof: DP Processor: DPs: +#(s(x),s(y)) -> +#(x,y) *#(s(x),s(y)) -> +#(x,y) *#(s(x),s(y)) -> *#(x,y) *#(s(x),s(y)) -> +#(*(x,y),+(x,y)) sum#(cons(x,l)) -> sum#(l) sum#(cons(x,l)) -> +#(x,sum(l)) prod#(cons(x,l)) -> prod#(l) prod#(cons(x,l)) -> *#(x,prod(l)) TRS: +(x,0()) -> x +(0(),x) -> x +(s(x),s(y)) -> s(s(+(x,y))) *(x,0()) -> 0() *(0(),x) -> 0() *(s(x),s(y)) -> s(+(*(x,y),+(x,y))) sum(nil()) -> 0() sum(cons(x,l)) -> +(x,sum(l)) prod(nil()) -> s(0()) prod(cons(x,l)) -> *(x,prod(l)) TDG Processor: DPs: +#(s(x),s(y)) -> +#(x,y) *#(s(x),s(y)) -> +#(x,y) *#(s(x),s(y)) -> *#(x,y) *#(s(x),s(y)) -> +#(*(x,y),+(x,y)) sum#(cons(x,l)) -> sum#(l) sum#(cons(x,l)) -> +#(x,sum(l)) prod#(cons(x,l)) -> prod#(l) prod#(cons(x,l)) -> *#(x,prod(l)) TRS: +(x,0()) -> x +(0(),x) -> x +(s(x),s(y)) -> s(s(+(x,y))) *(x,0()) -> 0() *(0(),x) -> 0() *(s(x),s(y)) -> s(+(*(x,y),+(x,y))) sum(nil()) -> 0() sum(cons(x,l)) -> +(x,sum(l)) prod(nil()) -> s(0()) prod(cons(x,l)) -> *(x,prod(l)) graph: prod#(cons(x,l)) -> prod#(l) -> prod#(cons(x,l)) -> *#(x,prod(l)) prod#(cons(x,l)) -> prod#(l) -> prod#(cons(x,l)) -> prod#(l) prod#(cons(x,l)) -> *#(x,prod(l)) -> *#(s(x),s(y)) -> +#(*(x,y),+(x,y)) prod#(cons(x,l)) -> *#(x,prod(l)) -> *#(s(x),s(y)) -> *#(x,y) prod#(cons(x,l)) -> *#(x,prod(l)) -> *#(s(x),s(y)) -> +#(x,y) sum#(cons(x,l)) -> sum#(l) -> sum#(cons(x,l)) -> +#(x,sum(l)) sum#(cons(x,l)) -> sum#(l) -> sum#(cons(x,l)) -> sum#(l) sum#(cons(x,l)) -> +#(x,sum(l)) -> +#(s(x),s(y)) -> +#(x,y) *#(s(x),s(y)) -> *#(x,y) -> *#(s(x),s(y)) -> +#(*(x,y),+(x,y)) *#(s(x),s(y)) -> *#(x,y) -> *#(s(x),s(y)) -> *#(x,y) *#(s(x),s(y)) -> *#(x,y) -> *#(s(x),s(y)) -> +#(x,y) *#(s(x),s(y)) -> +#(*(x,y),+(x,y)) -> +#(s(x),s(y)) -> +#(x,y) *#(s(x),s(y)) -> +#(x,y) -> +#(s(x),s(y)) -> +#(x,y) +#(s(x),s(y)) -> +#(x,y) -> +#(s(x),s(y)) -> +#(x,y) SCC Processor: #sccs: 4 #rules: 4 #arcs: 14/64 DPs: sum#(cons(x,l)) -> sum#(l) TRS: +(x,0()) -> x +(0(),x) -> x +(s(x),s(y)) -> s(s(+(x,y))) *(x,0()) -> 0() *(0(),x) -> 0() *(s(x),s(y)) -> s(+(*(x,y),+(x,y))) sum(nil()) -> 0() sum(cons(x,l)) -> +(x,sum(l)) prod(nil()) -> s(0()) prod(cons(x,l)) -> *(x,prod(l)) Arctic Interpretation Processor: dimension: 1 interpretation: [sum#](x0) = x0, [prod](x0) = x0 + 1, [cons](x0, x1) = 4x0 + 2x1 + 3, [sum](x0) = 1x0 + 2, [nil] = 2, [*](x0, x1) = 2, [s](x0) = 0, [+](x0, x1) = 1x0 + 1x1 + 2, [0] = 0 orientation: sum#(cons(x,l)) = 2l + 4x + 3 >= l = sum#(l) +(x,0()) = 1x + 2 >= x = x +(0(),x) = 1x + 2 >= x = x +(s(x),s(y)) = 2 >= 0 = s(s(+(x,y))) *(x,0()) = 2 >= 0 = 0() *(0(),x) = 2 >= 0 = 0() *(s(x),s(y)) = 2 >= 0 = s(+(*(x,y),+(x,y))) sum(nil()) = 3 >= 0 = 0() sum(cons(x,l)) = 3l + 5x + 4 >= 2l + 1x + 3 = +(x,sum(l)) prod(nil()) = 2 >= 0 = s(0()) prod(cons(x,l)) = 2l + 4x + 3 >= 2 = *(x,prod(l)) problem: DPs: TRS: +(x,0()) -> x +(0(),x) -> x +(s(x),s(y)) -> s(s(+(x,y))) *(x,0()) -> 0() *(0(),x) -> 0() *(s(x),s(y)) -> s(+(*(x,y),+(x,y))) sum(nil()) -> 0() sum(cons(x,l)) -> +(x,sum(l)) prod(nil()) -> s(0()) prod(cons(x,l)) -> *(x,prod(l)) Qed DPs: prod#(cons(x,l)) -> prod#(l) TRS: +(x,0()) -> x +(0(),x) -> x +(s(x),s(y)) -> s(s(+(x,y))) *(x,0()) -> 0() *(0(),x) -> 0() *(s(x),s(y)) -> s(+(*(x,y),+(x,y))) sum(nil()) -> 0() sum(cons(x,l)) -> +(x,sum(l)) prod(nil()) -> s(0()) prod(cons(x,l)) -> *(x,prod(l)) Arctic Interpretation Processor: dimension: 1 interpretation: [prod#](x0) = x0, [prod](x0) = x0 + 1, [cons](x0, x1) = 4x0 + 2x1 + 3, [sum](x0) = 1x0 + 2, [nil] = 2, [*](x0, x1) = 2, [s](x0) = 0, [+](x0, x1) = 1x0 + 1x1 + 2, [0] = 0 orientation: prod#(cons(x,l)) = 2l + 4x + 3 >= l = prod#(l) +(x,0()) = 1x + 2 >= x = x +(0(),x) = 1x + 2 >= x = x +(s(x),s(y)) = 2 >= 0 = s(s(+(x,y))) *(x,0()) = 2 >= 0 = 0() *(0(),x) = 2 >= 0 = 0() *(s(x),s(y)) = 2 >= 0 = s(+(*(x,y),+(x,y))) sum(nil()) = 3 >= 0 = 0() sum(cons(x,l)) = 3l + 5x + 4 >= 2l + 1x + 3 = +(x,sum(l)) prod(nil()) = 2 >= 0 = s(0()) prod(cons(x,l)) = 2l + 4x + 3 >= 2 = *(x,prod(l)) problem: DPs: TRS: +(x,0()) -> x +(0(),x) -> x +(s(x),s(y)) -> s(s(+(x,y))) *(x,0()) -> 0() *(0(),x) -> 0() *(s(x),s(y)) -> s(+(*(x,y),+(x,y))) sum(nil()) -> 0() sum(cons(x,l)) -> +(x,sum(l)) prod(nil()) -> s(0()) prod(cons(x,l)) -> *(x,prod(l)) Qed DPs: *#(s(x),s(y)) -> *#(x,y) TRS: +(x,0()) -> x +(0(),x) -> x +(s(x),s(y)) -> s(s(+(x,y))) *(x,0()) -> 0() *(0(),x) -> 0() *(s(x),s(y)) -> s(+(*(x,y),+(x,y))) sum(nil()) -> 0() sum(cons(x,l)) -> +(x,sum(l)) prod(nil()) -> s(0()) prod(cons(x,l)) -> *(x,prod(l)) LPO Processor: argument filtering: pi(0) = [] pi(+) = [0,1] pi(s) = [0] pi(*) = [0,1] pi(nil) = [] pi(sum) = [0] pi(cons) = [0,1] pi(prod) = 0 pi(*#) = 0 precedence: cons > * > sum ~ nil ~ + > *# ~ prod ~ s ~ 0 problem: DPs: TRS: +(x,0()) -> x +(0(),x) -> x +(s(x),s(y)) -> s(s(+(x,y))) *(x,0()) -> 0() *(0(),x) -> 0() *(s(x),s(y)) -> s(+(*(x,y),+(x,y))) sum(nil()) -> 0() sum(cons(x,l)) -> +(x,sum(l)) prod(nil()) -> s(0()) prod(cons(x,l)) -> *(x,prod(l)) Qed DPs: +#(s(x),s(y)) -> +#(x,y) TRS: +(x,0()) -> x +(0(),x) -> x +(s(x),s(y)) -> s(s(+(x,y))) *(x,0()) -> 0() *(0(),x) -> 0() *(s(x),s(y)) -> s(+(*(x,y),+(x,y))) sum(nil()) -> 0() sum(cons(x,l)) -> +(x,sum(l)) prod(nil()) -> s(0()) prod(cons(x,l)) -> *(x,prod(l)) LPO Processor: argument filtering: pi(0) = [] pi(+) = [0,1] pi(s) = [0] pi(*) = [0,1] pi(nil) = [] pi(sum) = [0] pi(cons) = [0,1] pi(prod) = 0 pi(+#) = 0 precedence: cons > * > sum ~ nil ~ + > +# ~ prod ~ s ~ 0 problem: DPs: TRS: +(x,0()) -> x +(0(),x) -> x +(s(x),s(y)) -> s(s(+(x,y))) *(x,0()) -> 0() *(0(),x) -> 0() *(s(x),s(y)) -> s(+(*(x,y),+(x,y))) sum(nil()) -> 0() sum(cons(x,l)) -> +(x,sum(l)) prod(nil()) -> s(0()) prod(cons(x,l)) -> *(x,prod(l)) Qed