Term Rewriting System R: [x, y, z, l, l1, l2] +(x, 0) -> x +(0, x) -> x +(s(x), s(y)) -> s(s(+(x, y))) +(+(x, y), z) -> +(x, +(y, z)) *(x, 0) -> 0 *(0, x) -> 0 *(s(x), s(y)) -> s(+(*(x, y), +(x, y))) *(*(x, y), z) -> *(x, *(y, z)) app(nil, l) -> l app(cons(x, l1), l2) -> cons(x, app(l1, l2)) sum(nil) -> 0 sum(cons(x, l)) -> +(x, sum(l)) sum(app(l1, l2)) -> +(sum(l1), sum(l2)) prod(nil) -> s(0) prod(cons(x, l)) -> *(x, prod(l)) prod(app(l1, l2)) -> *(prod(l1), prod(l2)) Termination of R to be shown. R contains the following Dependency Pairs: APP(cons(x, l1), l2) -> APP(l1, l2) +'(s(x), s(y)) -> +'(x, y) +'(+(x, y), z) -> +'(x, +(y, z)) +'(+(x, y), z) -> +'(y, z) PROD(cons(x, l)) -> *'(x, prod(l)) PROD(cons(x, l)) -> PROD(l) PROD(app(l1, l2)) -> *'(prod(l1), prod(l2)) PROD(app(l1, l2)) -> PROD(l1) PROD(app(l1, l2)) -> PROD(l2) *'(s(x), s(y)) -> +'(*(x, y), +(x, y)) *'(s(x), s(y)) -> *'(x, y) *'(s(x), s(y)) -> +'(x, y) *'(*(x, y), z) -> *'(x, *(y, z)) *'(*(x, y), z) -> *'(y, z) SUM(cons(x, l)) -> +'(x, sum(l)) SUM(cons(x, l)) -> SUM(l) SUM(app(l1, l2)) -> +'(sum(l1), sum(l2)) SUM(app(l1, l2)) -> SUM(l1) SUM(app(l1, l2)) -> SUM(l2) Furthermore, R contains five SCCs. SCC1: APP(cons(x, l1), l2) -> APP(l1, l2) Removing rules from R by ordering and analyzing Dependency Pairs, Usable Rules, and Usable Equations. This is possible by using the following (C_E-compatible) Polynomial ordering. Polynomial interpretation: POL(APP(x_1, x_2)) = 1 + x_1 + x_2 POL(cons(x_1, x_2)) = 1 + x_1 + x_2 The following Dependency Pairs can be deleted: APP(cons(x, l1), l2) -> APP(l1, l2) This transformation is resulting in no new subcycles. SCC2: +'(+(x, y), z) -> +'(y, z) +'(+(x, y), z) -> +'(x, +(y, z)) +'(s(x), s(y)) -> +'(x, y) Removing rules from R by ordering and analyzing Dependency Pairs, Usable Rules, and Usable Equations. This is possible by using the following (C_E-compatible) Polynomial ordering. Polynomial interpretation: POL(s(x_1)) = x_1 POL(+'(x_1, x_2)) = 1 + x_1 + x_2 POL(+(x_1, x_2)) = x_1 + x_2 POL(0) = 1 No Dependency Pairs can be deleted. The following rules of R can be deleted: app(nil, l) -> l app(cons(x, l1), l2) -> cons(x, app(l1, l2)) prod(cons(x, l)) -> *(x, prod(l)) prod(app(l1, l2)) -> *(prod(l1), prod(l2)) prod(nil) -> s(0) *(s(x), s(y)) -> s(+(*(x, y), +(x, y))) *(*(x, y), z) -> *(x, *(y, z)) *(0, x) -> 0 *(x, 0) -> 0 sum(cons(x, l)) -> +(x, sum(l)) sum(nil) -> 0 sum(app(l1, l2)) -> +(sum(l1), sum(l2)) +(0, x) -> x +(x, 0) -> x This transformation is resulting in one new subcycle: SCC2.MRR1: +'(+(x, y), z) -> +'(x, +(y, z)) +'(s(x), s(y)) -> +'(x, y) +'(+(x, y), z) -> +'(y, z) Removing rules from R by ordering and analyzing Dependency Pairs, Usable Rules, and Usable Equations. This is possible by using the following (C_E-compatible) Polynomial ordering. Polynomial interpretation: POL(s(x_1)) = x_1 POL(+'(x_1, x_2)) = 1 + x_1 + x_2 POL(+(x_1, x_2)) = 1 + x_1 + x_2 The following Dependency Pairs can be deleted: +'(+(x, y), z) -> +'(y, z) No rules of R can be deleted. This transformation is resulting in one new subcycle: SCC2.MRR1.MRR1: +'(s(x), s(y)) -> +'(x, y) +'(+(x, y), z) -> +'(x, +(y, z)) Removing rules from R by ordering and analyzing Dependency Pairs, Usable Rules, and Usable Equations. This is possible by using the following (C_E-compatible) Polynomial ordering. Polynomial interpretation: POL(s(x_1)) = 1 + x_1 POL(+'(x_1, x_2)) = 1 + x_1 + x_2 POL(+(x_1, x_2)) = x_1 + x_2 The following Dependency Pairs can be deleted: +'(s(x), s(y)) -> +'(x, y) No rules of R can be deleted. This transformation is resulting in one new subcycle: SCC2.MRR1.MRR1.MRR1: +'(+(x, y), z) -> +'(x, +(y, z)) By using a polynomial ordering, at least one Dependency Pair of this SCC can be strictly oriented. No rules need to be oriented. Used ordering: Polynomial ordering with Polynomial interpretation: POL(s(x_1)) = 0 POL(+(x_1, x_2)) = 1 + x_1 POL(+'(x_1, x_2)) = x_1 resulting in no subcycles. SCC3: *'(*(x, y), z) -> *'(y, z) *'(*(x, y), z) -> *'(x, *(y, z)) *'(s(x), s(y)) -> *'(x, y) By using a polynomial ordering, at least one Dependency Pair of this SCC can be strictly oriented. No rules need to be oriented. Used ordering: Polynomial ordering with Polynomial interpretation: POL(*(x_1, x_2)) = 1 + x_1 + x_2 POL(s(x_1)) = 1 + x_1 POL(*'(x_1, x_2)) = x_1 POL(+(x_1, x_2)) = 0 POL(0) = 0 resulting in no subcycles. SCC4: SUM(app(l1, l2)) -> SUM(l2) SUM(app(l1, l2)) -> SUM(l1) SUM(cons(x, l)) -> SUM(l) Removing rules from R by ordering and analyzing Dependency Pairs, Usable Rules, and Usable Equations. This is possible by using the following (C_E-compatible) Polynomial ordering. Polynomial interpretation: POL(SUM(x_1)) = 1 + x_1 POL(app(x_1, x_2)) = 1 + x_1 + x_2 POL(cons(x_1, x_2)) = 1 + x_1 + x_2 The following Dependency Pairs can be deleted: SUM(app(l1, l2)) -> SUM(l2) SUM(app(l1, l2)) -> SUM(l1) SUM(cons(x, l)) -> SUM(l) This transformation is resulting in no new subcycles. SCC5: PROD(app(l1, l2)) -> PROD(l2) PROD(app(l1, l2)) -> PROD(l1) PROD(cons(x, l)) -> PROD(l) Removing rules from R by ordering and analyzing Dependency Pairs, Usable Rules, and Usable Equations. This is possible by using the following (C_E-compatible) Polynomial ordering. Polynomial interpretation: POL(PROD(x_1)) = 1 + x_1 POL(app(x_1, x_2)) = 1 + x_1 + x_2 POL(cons(x_1, x_2)) = 1 + x_1 + x_2 The following Dependency Pairs can be deleted: PROD(app(l1, l2)) -> PROD(l2) PROD(app(l1, l2)) -> PROD(l1) PROD(cons(x, l)) -> PROD(l) This transformation is resulting in no new subcycles. Termination of R successfully shown. Duration: 1.29 seconds.