Term Rewriting System R: [y, x] le(0, y) -> true le(s(x), 0) -> false le(s(x), s(y)) -> le(x, y) minus(x, 0) -> x minus(s(x), s(y)) -> minus(x, y) mod(0, y) -> 0 mod(s(x), 0) -> 0 mod(s(x), s(y)) -> if_mod(le(y, x), s(x), s(y)) if_mod(true, x, y) -> mod(minus(x, y), y) if_mod(false, s(x), s(y)) -> s(x) Innermost Termination of R to be shown. R contains the following Dependency Pairs: LE(s(x), s(y)) -> LE(x, y) MOD(s(x), s(y)) -> IF_MOD(le(y, x), s(x), s(y)) MOD(s(x), s(y)) -> LE(y, x) IF_MOD(true, x, y) -> MOD(minus(x, y), y) IF_MOD(true, x, y) -> MINUS(x, y) MINUS(s(x), s(y)) -> MINUS(x, y) 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: IF_MOD(true, x, y) -> MOD(minus(x, y), y) MOD(s(x), s(y)) -> IF_MOD(le(y, x), s(x), s(y)) On this Scc, a Narrowing SCC transformation can be performed. As a result of transforming the rule MOD(s(x), s(y)) -> IF_MOD(le(y, x), s(x), s(y)) three new Dependency Pairs are created: MOD(s(s(y'')), s(s(x''))) -> IF_MOD(le(x'', y''), s(s(y'')), s(s(x''))) MOD(s(x'), s(0)) -> IF_MOD(true, s(x'), s(0)) MOD(s(0), s(s(x''))) -> IF_MOD(false, s(0), s(s(x''))) The transformation is resulting in one subcycle: SCC3.Nar1: MOD(s(x'), s(0)) -> IF_MOD(true, s(x'), s(0)) MOD(s(s(y'')), s(s(x''))) -> IF_MOD(le(x'', y''), s(s(y'')), s(s(x''))) IF_MOD(true, x, y) -> MOD(minus(x, y), y) On this Scc, a Narrowing SCC transformation can be performed. As a result of transforming the rule IF_MOD(true, x, y) -> MOD(minus(x, y), y) two new Dependency Pairs are created: IF_MOD(true, s(x''), s(y'')) -> MOD(minus(x'', y''), s(y'')) IF_MOD(true, x'', 0) -> MOD(x'', 0) The transformation is resulting in one subcycle: SCC3.Nar1.Nar1: MOD(s(s(y'')), s(s(x''))) -> IF_MOD(le(x'', y''), s(s(y'')), s(s(x''))) IF_MOD(true, s(x''), s(y'')) -> MOD(minus(x'', y''), s(y'')) MOD(s(x'), s(0)) -> IF_MOD(true, s(x'), s(0)) On this Scc, a Instantiation SCC transformation can be performed. As a result of transforming the rule IF_MOD(true, s(x''), s(y'')) -> MOD(minus(x'', y''), s(y'')) two new Dependency Pairs are created: IF_MOD(true, s(s(y'''')), s(s(x''''))) -> MOD(minus(s(y''''), s(x'''')), s(s(x''''))) IF_MOD(true, s(x''''), s(0)) -> MOD(minus(x'''', 0), s(0)) The transformation is resulting in two subcycles: SCC3.Nar1.Nar1.Inst1: IF_MOD(true, s(s(y'''')), s(s(x''''))) -> MOD(minus(s(y''''), s(x'''')), s(s(x''''))) MOD(s(s(y'')), s(s(x''))) -> IF_MOD(le(x'', y''), s(s(y'')), s(s(x''))) On this Scc, a Rewriting SCC transformation can be performed. As a result of transforming the rule IF_MOD(true, s(s(y'''')), s(s(x''''))) -> MOD(minus(s(y''''), s(x'''')), s(s(x''''))) one new Dependency Pair is created: IF_MOD(true, s(s(y'''')), s(s(x''''))) -> MOD(minus(y'''', x''''), s(s(x''''))) The transformation is resulting in one subcycle: SCC3.Nar1.Nar1.Inst1.Rewr1: IF_MOD(true, s(s(y'''')), s(s(x''''))) -> MOD(minus(y'''', x''''), s(s(x''''))) MOD(s(s(y'')), s(s(x''))) -> IF_MOD(le(x'', y''), s(s(y'')), s(s(x''))) 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(s(x), s(y)) -> minus(x, y) minus(x, 0) -> x Used ordering: Polynomial ordering with Polynomial interpretation: POL(IF_MOD(x_1, x_2, x_3)) = x_2 POL(s(x_1)) = 1 + x_1 POL(le(x_1, x_2)) = 0 POL(MOD(x_1, x_2)) = 1 + x_1 POL(minus(x_1, x_2)) = x_1 POL(true) = 0 POL(0) = 0 POL(false) = 0 resulting in no subcycles. SCC3.Nar1.Nar1.Inst2: IF_MOD(true, s(x''''), s(0)) -> MOD(minus(x'''', 0), s(0)) MOD(s(x'), s(0)) -> IF_MOD(true, s(x'), s(0)) On this Scc, a Rewriting SCC transformation can be performed. As a result of transforming the rule IF_MOD(true, s(x''''), s(0)) -> MOD(minus(x'''', 0), s(0)) one new Dependency Pair is created: IF_MOD(true, s(x''''), s(0)) -> MOD(x'''', s(0)) The transformation is resulting in one subcycle: SCC3.Nar1.Nar1.Inst2.Rewr1: IF_MOD(true, s(x''''), s(0)) -> MOD(x'''', s(0)) MOD(s(x'), s(0)) -> IF_MOD(true, s(x'), s(0)) 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(IF_MOD(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(s(x_1)) = x_1 POL(MOD(x_1, x_2)) = x_1 + x_2 POL(true) = 0 POL(0) = 0 No Dependency Pairs can be deleted. The following rules of R can be deleted: minus(s(x), s(y)) -> minus(x, y) minus(x, 0) -> x le(s(x), s(y)) -> le(x, y) le(0, y) -> true le(s(x), 0) -> false This transformation is resulting in one new subcycle: SCC3.Nar1.Nar1.Inst2.Rewr1.MRR1: MOD(s(x'), s(0)) -> IF_MOD(true, s(x'), s(0)) IF_MOD(true, s(x''''), s(0)) -> MOD(x'''', s(0)) 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(IF_MOD(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(s(x_1)) = 1 + x_1 POL(MOD(x_1, x_2)) = x_1 + x_2 POL(true) = 0 POL(0) = 0 The following Dependency Pairs can be deleted: IF_MOD(true, s(x''''), s(0)) -> MOD(x'''', s(0)) This transformation is resulting in no new subcycles. Innermost Termination of R successfully shown. Duration: 11.54 seconds.