Term Rewriting System R: [y, x, u, z] minus(0, y) -> 0 minus(s(x), 0) -> s(x) minus(s(x), s(y)) -> minus(x, y) le(0, y) -> true le(s(x), 0) -> false le(s(x), s(y)) -> le(x, y) if(true, x, y) -> x if(false, x, y) -> y perfectp(0) -> false perfectp(s(x)) -> f(x, s(0), s(x), s(x)) f(0, y, 0, u) -> true f(0, y, s(z), u) -> false f(s(x), 0, z, u) -> f(x, u, minus(z, s(x)), u) f(s(x), s(y), z, u) -> if(le(x, y), f(s(x), minus(y, x), z, u), f(x, u, z, u)) Termination of R to be shown. This program has no overlaps, so it is sufficient to show innermost termination. R contains the following Dependency Pairs: LE(s(x), s(y)) -> LE(x, y) PERFECTP(s(x)) -> F(x, s(0), s(x), s(x)) MINUS(s(x), s(y)) -> MINUS(x, y) F(s(x), 0, z, u) -> F(x, u, minus(z, s(x)), u) F(s(x), 0, z, u) -> MINUS(z, s(x)) F(s(x), s(y), z, u) -> IF(le(x, y), f(s(x), minus(y, x), z, u), f(x, u, z, u)) F(s(x), s(y), z, u) -> LE(x, y) F(s(x), s(y), z, u) -> F(s(x), minus(y, x), z, u) F(s(x), s(y), z, u) -> MINUS(y, x) F(s(x), s(y), z, u) -> F(x, u, z, u) Furthermore, R contains three SCCs. SCC1: LE(s(x), s(y)) -> LE(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(LE(x_1, x_2)) = 1 + x_1 + x_2 POL(s(x_1)) = 1 + x_1 The following Dependency Pairs can be deleted: LE(s(x), s(y)) -> LE(x, y) This transformation is resulting in no new subcycles. SCC2: MINUS(s(x), s(y)) -> MINUS(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)) = 1 + x_1 POL(MINUS(x_1, x_2)) = 1 + x_1 + x_2 The following Dependency Pairs can be deleted: MINUS(s(x), s(y)) -> MINUS(x, y) This transformation is resulting in no new subcycles. SCC3: F(s(x), s(y), z, u) -> F(x, u, z, u) F(s(x), 0, z, u) -> F(x, u, minus(z, s(x)), u) F(s(x), s(y), z, u) -> F(s(x), minus(y, x), z, u) 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)) = 1 + x_1 POL(minus(x_1, x_2)) = 0 POL(F(x_1, x_2, x_3, x_4)) = x_1 POL(0) = 0 resulting in one subcycle. SCC3.Polo1: F(s(x), s(y), z, u) -> F(s(x), minus(y, x), z, u) By using a polynomial ordering, at least one Dependency Pair of this SCC can be strictly oriented. Additionally, the following rules can be oriented: minus(0, y) -> 0 minus(s(x), 0) -> s(x) minus(s(x), s(y)) -> minus(x, y) Used ordering: Polynomial ordering with Polynomial interpretation: POL(s(x_1)) = 1 + x_1 POL(minus(x_1, x_2)) = x_1 POL(F(x_1, x_2, x_3, x_4)) = 1 + x_2 + x_4 POL(0) = 0 resulting in no subcycles. Termination of R successfully shown. Duration: 1.64 seconds.