Term Rewriting System R: [x, y, z] rev(nil) -> nil rev(.(x, y)) -> ++(rev(y), .(x, nil)) car(.(x, y)) -> x cdr(.(x, y)) -> y null(nil) -> true null(.(x, y)) -> false ++(nil, y) -> y ++(.(x, y), z) -> .(x, ++(y, z)) Termination of R to be shown. Removing the following rules from R which fullfill a polynomial ordering: rev(nil) -> nil car(.(x, y)) -> x cdr(.(x, y)) -> y where the Polynomial interpretation: POL(nil) = 0 POL(++(x_1, x_2)) = x_1 + x_2 POL(null(x_1)) = x_1 POL(car(x_1)) = 1 + x_1 POL(true) = 0 POL(rev(x_1)) = 1 + x_1 POL(cdr(x_1)) = 2 + x_1 POL(.(x_1, x_2)) = x_1 + x_2 POL(false) = 0 was used. Not all Rules of R can be deleted, so we still have to regard a part of R. Removing the following rules from R which fullfill a polynomial ordering: rev(.(x, y)) -> ++(rev(y), .(x, nil)) null(.(x, y)) -> false where the Polynomial interpretation: POL(nil) = 0 POL(++(x_1, x_2)) = x_1 + x_2 POL(null(x_1)) = x_1 POL(true) = 0 POL(rev(x_1)) = 2*x_1 POL(.(x_1, x_2)) = 1 + x_1 + x_2 POL(false) = 0 was used. Not all Rules of R can be deleted, so we still have to regard a part of R. Removing the following rules from R which fullfill a polynomial ordering: ++(nil, y) -> y null(nil) -> true where the Polynomial interpretation: POL(nil) = 1 POL(++(x_1, x_2)) = x_1 + x_2 POL(null(x_1)) = x_1 POL(true) = 0 POL(.(x_1, x_2)) = x_1 + x_2 was used. Not all Rules of R can be deleted, so we still have to regard a part of R. Removing the following rules from R which fullfill a polynomial ordering: ++(.(x, y), z) -> .(x, ++(y, z)) where the Polynomial interpretation: POL(++(x_1, x_2)) = 2*x_1 + x_2 POL(.(x_1, x_2)) = 1 + x_1 + x_2 was used. All Rules of R can be deleted. Termination of R successfully shown. Duration: 0.434 seconds.