Term Rewriting System R: [x, y, z, l] 0(#) -> # +(x, #) -> x +(#, x) -> x +(0(x), 0(y)) -> 0(+(x, y)) +(0(x), 1(y)) -> 1(+(x, y)) +(1(x), 0(y)) -> 1(+(x, y)) +(1(x), 1(y)) -> 0(+(+(x, y), 1(#))) +(+(x, y), z) -> +(x, +(y, z)) *(#, x) -> # *(0(x), y) -> 0(*(x, y)) *(1(x), y) -> +(0(*(x, y)), y) *(*(x, y), z) -> *(x, *(y, z)) sum(nil) -> 0(#) sum(cons(x, l)) -> +(x, sum(l)) prod(nil) -> 1(#) prod(cons(x, l)) -> *(x, prod(l)) Termination of R to be shown. R contains the following Dependency Pairs: *'(1(x), y) -> +'(0(*(x, y)), y) *'(1(x), y) -> 0'(*(x, y)) *'(1(x), y) -> *'(x, y) *'(*(x, y), z) -> *'(x, *(y, z)) *'(*(x, y), z) -> *'(y, z) *'(0(x), y) -> 0'(*(x, y)) *'(0(x), y) -> *'(x, y) +'(0(x), 1(y)) -> +'(x, y) +'(1(x), 0(y)) -> +'(x, y) +'(0(x), 0(y)) -> 0'(+(x, y)) +'(0(x), 0(y)) -> +'(x, y) +'(1(x), 1(y)) -> 0'(+(+(x, y), 1(#))) +'(1(x), 1(y)) -> +'(+(x, y), 1(#)) +'(1(x), 1(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) SUM(nil) -> 0'(#) SUM(cons(x, l)) -> +'(x, sum(l)) SUM(cons(x, l)) -> SUM(l) Furthermore, R contains four SCCs. SCC1: +'(+(x, y), z) -> +'(y, z) +'(+(x, y), z) -> +'(x, +(y, z)) +'(1(x), 1(y)) -> +'(x, y) +'(1(x), 1(y)) -> +'(+(x, y), 1(#)) +'(0(x), 0(y)) -> +'(x, y) +'(1(x), 0(y)) -> +'(x, y) +'(0(x), 1(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(1(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(x_1)) = x_1 POL(#) = 0 No Dependency Pairs can be deleted. The following rules of R can be deleted: *(1(x), y) -> +(0(*(x, y)), y) *(*(x, y), z) -> *(x, *(y, z)) *(0(x), y) -> 0(*(x, y)) *(#, x) -> # prod(cons(x, l)) -> *(x, prod(l)) prod(nil) -> 1(#) sum(nil) -> 0(#) sum(cons(x, l)) -> +(x, sum(l)) This transformation is resulting in one new subcycle: SCC1.MRR1: +'(+(x, y), z) -> +'(x, +(y, z)) +'(1(x), 1(y)) -> +'(x, y) +'(1(x), 1(y)) -> +'(+(x, y), 1(#)) +'(0(x), 0(y)) -> +'(x, y) +'(1(x), 0(y)) -> +'(x, y) +'(0(x), 1(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(1(x_1)) = 1 + x_1 POL(+'(x_1, x_2)) = 1 + x_1 + x_2 POL(+(x_1, x_2)) = x_1 + x_2 POL(0(x_1)) = x_1 POL(#) = 0 The following Dependency Pairs can be deleted: +'(1(x), 1(y)) -> +'(x, y) +'(1(x), 1(y)) -> +'(+(x, y), 1(#)) +'(1(x), 0(y)) -> +'(x, y) +'(0(x), 1(y)) -> +'(x, y) The following rules of R can be deleted: +(1(x), 1(y)) -> 0(+(+(x, y), 1(#))) This transformation is resulting in one new subcycle: SCC1.MRR1.MRR1: +'(+(x, y), z) -> +'(y, z) +'(0(x), 0(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(1(x_1)) = x_1 POL(+'(x_1, x_2)) = x_1 + x_2 POL(+(x_1, x_2)) = x_1 + x_2 POL(0(x_1)) = 1 + x_1 POL(#) = 0 The following Dependency Pairs can be deleted: +'(0(x), 0(y)) -> +'(x, y) The following rules of R can be deleted: +(0(x), 1(y)) -> 1(+(x, y)) +(1(x), 0(y)) -> 1(+(x, y)) +(0(x), 0(y)) -> 0(+(x, y)) 0(#) -> # +(x, #) -> x +(#, x) -> x This transformation is resulting in one new subcycle: SCC1.MRR1.MRR1.MRR1: +'(+(x, y), z) -> +'(x, +(y, z)) +'(+(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(+'(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: SCC1.MRR1.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(+(x_1, x_2)) = 1 + x_1 POL(+'(x_1, x_2)) = x_1 resulting in no subcycles. SCC2: *'(0(x), y) -> *'(x, y) *'(*(x, y), z) -> *'(y, z) *'(*(x, y), z) -> *'(x, *(y, z)) *'(1(x), 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(1(x_1)) = 1 + x_1 POL(*'(x_1, x_2)) = x_1 POL(+(x_1, x_2)) = 0 POL(0(x_1)) = 1 + x_1 POL(#) = 0 resulting in no subcycles. SCC3: 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(cons(x_1, x_2)) = 1 + x_1 + x_2 The following Dependency Pairs can be deleted: SUM(cons(x, l)) -> SUM(l) This transformation is resulting in no new subcycles. SCC4: 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(cons(x_1, x_2)) = 1 + x_1 + x_2 The following Dependency Pairs can be deleted: PROD(cons(x, l)) -> PROD(l) This transformation is resulting in no new subcycles. Termination of R successfully shown. Duration: 1.210 seconds.