/export/starexec/sandbox2/solver/bin/starexec_run_FirstOrder /export/starexec/sandbox2/benchmark/theBenchmark.xml /export/starexec/sandbox2/output/output_files -------------------------------------------------------------------------------- YES We consider the system theBenchmark. We are asked to determine termination of the following first-order TRS. 0 : [] --> o U101 : [o * o * o] --> o U102 : [o * o * o] --> o U103 : [o * o * o] --> o U104 : [o * o * o] --> o U11 : [o * o * o] --> o U12 : [o * o * o] --> o U13 : [o * o * o] --> o U14 : [o * o * o] --> o U15 : [o * o] --> o U16 : [o] --> o U21 : [o * o] --> o U22 : [o * o] --> o U23 : [o] --> o U31 : [o * o * o] --> o U32 : [o * o * o] --> o U33 : [o * o * o] --> o U34 : [o * o * o] --> o U35 : [o * o] --> o U36 : [o] --> o U41 : [o * o] --> o U42 : [o] --> o U51 : [o] --> o U61 : [o * o] --> o U62 : [o] --> o U71 : [o * o] --> o U72 : [o * o] --> o U81 : [o * o * o] --> o U82 : [o * o * o] --> o U83 : [o * o * o] --> o U84 : [o * o * o] --> o U91 : [o * o] --> o U92 : [o] --> o activate : [o] --> o isNat : [o] --> o isNatKind : [o] --> o n!6220!62200 : [] --> o n!6220!6220plus : [o * o] --> o n!6220!6220s : [o] --> o n!6220!6220x : [o * o] --> o plus : [o * o] --> o s : [o] --> o tt : [] --> o x : [o * o] --> o U101(tt, X, Y) => U102(isNatKind(activate(X)), activate(X), activate(Y)) U102(tt, X, Y) => U103(isNat(activate(Y)), activate(X), activate(Y)) U103(tt, X, Y) => U104(isNatKind(activate(Y)), activate(X), activate(Y)) U104(tt, X, Y) => plus(x(activate(Y), activate(X)), activate(Y)) U11(tt, X, Y) => U12(isNatKind(activate(X)), activate(X), activate(Y)) U12(tt, X, Y) => U13(isNatKind(activate(Y)), activate(X), activate(Y)) U13(tt, X, Y) => U14(isNatKind(activate(Y)), activate(X), activate(Y)) U14(tt, X, Y) => U15(isNat(activate(X)), activate(Y)) U15(tt, X) => U16(isNat(activate(X))) U16(tt) => tt U21(tt, X) => U22(isNatKind(activate(X)), activate(X)) U22(tt, X) => U23(isNat(activate(X))) U23(tt) => tt U31(tt, X, Y) => U32(isNatKind(activate(X)), activate(X), activate(Y)) U32(tt, X, Y) => U33(isNatKind(activate(Y)), activate(X), activate(Y)) U33(tt, X, Y) => U34(isNatKind(activate(Y)), activate(X), activate(Y)) U34(tt, X, Y) => U35(isNat(activate(X)), activate(Y)) U35(tt, X) => U36(isNat(activate(X))) U36(tt) => tt U41(tt, X) => U42(isNatKind(activate(X))) U42(tt) => tt U51(tt) => tt U61(tt, X) => U62(isNatKind(activate(X))) U62(tt) => tt U71(tt, X) => U72(isNatKind(activate(X)), activate(X)) U72(tt, X) => activate(X) U81(tt, X, Y) => U82(isNatKind(activate(X)), activate(X), activate(Y)) U82(tt, X, Y) => U83(isNat(activate(Y)), activate(X), activate(Y)) U83(tt, X, Y) => U84(isNatKind(activate(Y)), activate(X), activate(Y)) U84(tt, X, Y) => s(plus(activate(Y), activate(X))) U91(tt, X) => U92(isNatKind(activate(X))) U92(tt) => 0 isNat(n!6220!62200) => tt isNat(n!6220!6220plus(X, Y)) => U11(isNatKind(activate(X)), activate(X), activate(Y)) isNat(n!6220!6220s(X)) => U21(isNatKind(activate(X)), activate(X)) isNat(n!6220!6220x(X, Y)) => U31(isNatKind(activate(X)), activate(X), activate(Y)) isNatKind(n!6220!62200) => tt isNatKind(n!6220!6220plus(X, Y)) => U41(isNatKind(activate(X)), activate(Y)) isNatKind(n!6220!6220s(X)) => U51(isNatKind(activate(X))) isNatKind(n!6220!6220x(X, Y)) => U61(isNatKind(activate(X)), activate(Y)) plus(X, 0) => U71(isNat(X), X) plus(X, s(Y)) => U81(isNat(Y), Y, X) x(X, 0) => U91(isNat(X), X) x(X, s(Y)) => U101(isNat(Y), Y, X) 0 => n!6220!62200 plus(X, Y) => n!6220!6220plus(X, Y) s(X) => n!6220!6220s(X) x(X, Y) => n!6220!6220x(X, Y) activate(n!6220!62200) => 0 activate(n!6220!6220plus(X, Y)) => plus(activate(X), activate(Y)) activate(n!6220!6220s(X)) => s(activate(X)) activate(n!6220!6220x(X, Y)) => x(activate(X), activate(Y)) activate(X) => X We use the dependency pair framework as described in [Kop12, Ch. 6/7], with static dependency pairs (see [KusIsoSakBla09] and the adaptation for AFSMs in [Kop12, Ch. 7.8]). We thus obtain the following dependency pair problem (P_0, R_0, minimal, formative): Dependency Pairs P_0: 0] U101#(tt, X, Y) =#> U102#(isNatKind(activate(X)), activate(X), activate(Y)) 1] U101#(tt, X, Y) =#> isNatKind#(activate(X)) 2] U101#(tt, X, Y) =#> activate#(X) 3] U101#(tt, X, Y) =#> activate#(X) 4] U101#(tt, X, Y) =#> activate#(Y) 5] U102#(tt, X, Y) =#> U103#(isNat(activate(Y)), activate(X), activate(Y)) 6] U102#(tt, X, Y) =#> isNat#(activate(Y)) 7] U102#(tt, X, Y) =#> activate#(Y) 8] U102#(tt, X, Y) =#> activate#(X) 9] U102#(tt, X, Y) =#> activate#(Y) 10] U103#(tt, X, Y) =#> U104#(isNatKind(activate(Y)), activate(X), activate(Y)) 11] U103#(tt, X, Y) =#> isNatKind#(activate(Y)) 12] U103#(tt, X, Y) =#> activate#(Y) 13] U103#(tt, X, Y) =#> activate#(X) 14] U103#(tt, X, Y) =#> activate#(Y) 15] U104#(tt, X, Y) =#> plus#(x(activate(Y), activate(X)), activate(Y)) 16] U104#(tt, X, Y) =#> x#(activate(Y), activate(X)) 17] U104#(tt, X, Y) =#> activate#(Y) 18] U104#(tt, X, Y) =#> activate#(X) 19] U104#(tt, X, Y) =#> activate#(Y) 20] U11#(tt, X, Y) =#> U12#(isNatKind(activate(X)), activate(X), activate(Y)) 21] U11#(tt, X, Y) =#> isNatKind#(activate(X)) 22] U11#(tt, X, Y) =#> activate#(X) 23] U11#(tt, X, Y) =#> activate#(X) 24] U11#(tt, X, Y) =#> activate#(Y) 25] U12#(tt, X, Y) =#> U13#(isNatKind(activate(Y)), activate(X), activate(Y)) 26] U12#(tt, X, Y) =#> isNatKind#(activate(Y)) 27] U12#(tt, X, Y) =#> activate#(Y) 28] U12#(tt, X, Y) =#> activate#(X) 29] U12#(tt, X, Y) =#> activate#(Y) 30] U13#(tt, X, Y) =#> U14#(isNatKind(activate(Y)), activate(X), activate(Y)) 31] U13#(tt, X, Y) =#> isNatKind#(activate(Y)) 32] U13#(tt, X, Y) =#> activate#(Y) 33] U13#(tt, X, Y) =#> activate#(X) 34] U13#(tt, X, Y) =#> activate#(Y) 35] U14#(tt, X, Y) =#> U15#(isNat(activate(X)), activate(Y)) 36] U14#(tt, X, Y) =#> isNat#(activate(X)) 37] U14#(tt, X, Y) =#> activate#(X) 38] U14#(tt, X, Y) =#> activate#(Y) 39] U15#(tt, X) =#> U16#(isNat(activate(X))) 40] U15#(tt, X) =#> isNat#(activate(X)) 41] U15#(tt, X) =#> activate#(X) 42] U21#(tt, X) =#> U22#(isNatKind(activate(X)), activate(X)) 43] U21#(tt, X) =#> isNatKind#(activate(X)) 44] U21#(tt, X) =#> activate#(X) 45] U21#(tt, X) =#> activate#(X) 46] U22#(tt, X) =#> U23#(isNat(activate(X))) 47] U22#(tt, X) =#> isNat#(activate(X)) 48] U22#(tt, X) =#> activate#(X) 49] U31#(tt, X, Y) =#> U32#(isNatKind(activate(X)), activate(X), activate(Y)) 50] U31#(tt, X, Y) =#> isNatKind#(activate(X)) 51] U31#(tt, X, Y) =#> activate#(X) 52] U31#(tt, X, Y) =#> activate#(X) 53] U31#(tt, X, Y) =#> activate#(Y) 54] U32#(tt, X, Y) =#> U33#(isNatKind(activate(Y)), activate(X), activate(Y)) 55] U32#(tt, X, Y) =#> isNatKind#(activate(Y)) 56] U32#(tt, X, Y) =#> activate#(Y) 57] U32#(tt, X, Y) =#> activate#(X) 58] U32#(tt, X, Y) =#> activate#(Y) 59] U33#(tt, X, Y) =#> U34#(isNatKind(activate(Y)), activate(X), activate(Y)) 60] U33#(tt, X, Y) =#> isNatKind#(activate(Y)) 61] U33#(tt, X, Y) =#> activate#(Y) 62] U33#(tt, X, Y) =#> activate#(X) 63] U33#(tt, X, Y) =#> activate#(Y) 64] U34#(tt, X, Y) =#> U35#(isNat(activate(X)), activate(Y)) 65] U34#(tt, X, Y) =#> isNat#(activate(X)) 66] U34#(tt, X, Y) =#> activate#(X) 67] U34#(tt, X, Y) =#> activate#(Y) 68] U35#(tt, X) =#> U36#(isNat(activate(X))) 69] U35#(tt, X) =#> isNat#(activate(X)) 70] U35#(tt, X) =#> activate#(X) 71] U41#(tt, X) =#> U42#(isNatKind(activate(X))) 72] U41#(tt, X) =#> isNatKind#(activate(X)) 73] U41#(tt, X) =#> activate#(X) 74] U61#(tt, X) =#> U62#(isNatKind(activate(X))) 75] U61#(tt, X) =#> isNatKind#(activate(X)) 76] U61#(tt, X) =#> activate#(X) 77] U71#(tt, X) =#> U72#(isNatKind(activate(X)), activate(X)) 78] U71#(tt, X) =#> isNatKind#(activate(X)) 79] U71#(tt, X) =#> activate#(X) 80] U71#(tt, X) =#> activate#(X) 81] U72#(tt, X) =#> activate#(X) 82] U81#(tt, X, Y) =#> U82#(isNatKind(activate(X)), activate(X), activate(Y)) 83] U81#(tt, X, Y) =#> isNatKind#(activate(X)) 84] U81#(tt, X, Y) =#> activate#(X) 85] U81#(tt, X, Y) =#> activate#(X) 86] U81#(tt, X, Y) =#> activate#(Y) 87] U82#(tt, X, Y) =#> U83#(isNat(activate(Y)), activate(X), activate(Y)) 88] U82#(tt, X, Y) =#> isNat#(activate(Y)) 89] U82#(tt, X, Y) =#> activate#(Y) 90] U82#(tt, X, Y) =#> activate#(X) 91] U82#(tt, X, Y) =#> activate#(Y) 92] U83#(tt, X, Y) =#> U84#(isNatKind(activate(Y)), activate(X), activate(Y)) 93] U83#(tt, X, Y) =#> isNatKind#(activate(Y)) 94] U83#(tt, X, Y) =#> activate#(Y) 95] U83#(tt, X, Y) =#> activate#(X) 96] U83#(tt, X, Y) =#> activate#(Y) 97] U84#(tt, X, Y) =#> s#(plus(activate(Y), activate(X))) 98] U84#(tt, X, Y) =#> plus#(activate(Y), activate(X)) 99] U84#(tt, X, Y) =#> activate#(Y) 100] U84#(tt, X, Y) =#> activate#(X) 101] U91#(tt, X) =#> U92#(isNatKind(activate(X))) 102] U91#(tt, X) =#> isNatKind#(activate(X)) 103] U91#(tt, X) =#> activate#(X) 104] U92#(tt) =#> 0# 105] isNat#(n!6220!6220plus(X, Y)) =#> U11#(isNatKind(activate(X)), activate(X), activate(Y)) 106] isNat#(n!6220!6220plus(X, Y)) =#> isNatKind#(activate(X)) 107] isNat#(n!6220!6220plus(X, Y)) =#> activate#(X) 108] isNat#(n!6220!6220plus(X, Y)) =#> activate#(X) 109] isNat#(n!6220!6220plus(X, Y)) =#> activate#(Y) 110] isNat#(n!6220!6220s(X)) =#> U21#(isNatKind(activate(X)), activate(X)) 111] isNat#(n!6220!6220s(X)) =#> isNatKind#(activate(X)) 112] isNat#(n!6220!6220s(X)) =#> activate#(X) 113] isNat#(n!6220!6220s(X)) =#> activate#(X) 114] isNat#(n!6220!6220x(X, Y)) =#> U31#(isNatKind(activate(X)), activate(X), activate(Y)) 115] isNat#(n!6220!6220x(X, Y)) =#> isNatKind#(activate(X)) 116] isNat#(n!6220!6220x(X, Y)) =#> activate#(X) 117] isNat#(n!6220!6220x(X, Y)) =#> activate#(X) 118] isNat#(n!6220!6220x(X, Y)) =#> activate#(Y) 119] isNatKind#(n!6220!6220plus(X, Y)) =#> U41#(isNatKind(activate(X)), activate(Y)) 120] isNatKind#(n!6220!6220plus(X, Y)) =#> isNatKind#(activate(X)) 121] isNatKind#(n!6220!6220plus(X, Y)) =#> activate#(X) 122] isNatKind#(n!6220!6220plus(X, Y)) =#> activate#(Y) 123] isNatKind#(n!6220!6220s(X)) =#> U51#(isNatKind(activate(X))) 124] isNatKind#(n!6220!6220s(X)) =#> isNatKind#(activate(X)) 125] isNatKind#(n!6220!6220s(X)) =#> activate#(X) 126] isNatKind#(n!6220!6220x(X, Y)) =#> U61#(isNatKind(activate(X)), activate(Y)) 127] isNatKind#(n!6220!6220x(X, Y)) =#> isNatKind#(activate(X)) 128] isNatKind#(n!6220!6220x(X, Y)) =#> activate#(X) 129] isNatKind#(n!6220!6220x(X, Y)) =#> activate#(Y) 130] plus#(X, 0) =#> U71#(isNat(X), X) 131] plus#(X, 0) =#> isNat#(X) 132] plus#(X, s(Y)) =#> U81#(isNat(Y), Y, X) 133] plus#(X, s(Y)) =#> isNat#(Y) 134] x#(X, 0) =#> U91#(isNat(X), X) 135] x#(X, 0) =#> isNat#(X) 136] x#(X, s(Y)) =#> U101#(isNat(Y), Y, X) 137] x#(X, s(Y)) =#> isNat#(Y) 138] activate#(n!6220!62200) =#> 0# 139] activate#(n!6220!6220plus(X, Y)) =#> plus#(activate(X), activate(Y)) 140] activate#(n!6220!6220plus(X, Y)) =#> activate#(X) 141] activate#(n!6220!6220plus(X, Y)) =#> activate#(Y) 142] activate#(n!6220!6220s(X)) =#> s#(activate(X)) 143] activate#(n!6220!6220s(X)) =#> activate#(X) 144] activate#(n!6220!6220x(X, Y)) =#> x#(activate(X), activate(Y)) 145] activate#(n!6220!6220x(X, Y)) =#> activate#(X) 146] activate#(n!6220!6220x(X, Y)) =#> activate#(Y) Rules R_0: U101(tt, X, Y) => U102(isNatKind(activate(X)), activate(X), activate(Y)) U102(tt, X, Y) => U103(isNat(activate(Y)), activate(X), activate(Y)) U103(tt, X, Y) => U104(isNatKind(activate(Y)), activate(X), activate(Y)) U104(tt, X, Y) => plus(x(activate(Y), activate(X)), activate(Y)) U11(tt, X, Y) => U12(isNatKind(activate(X)), activate(X), activate(Y)) U12(tt, X, Y) => U13(isNatKind(activate(Y)), activate(X), activate(Y)) U13(tt, X, Y) => U14(isNatKind(activate(Y)), activate(X), activate(Y)) U14(tt, X, Y) => U15(isNat(activate(X)), activate(Y)) U15(tt, X) => U16(isNat(activate(X))) U16(tt) => tt U21(tt, X) => U22(isNatKind(activate(X)), activate(X)) U22(tt, X) => U23(isNat(activate(X))) U23(tt) => tt U31(tt, X, Y) => U32(isNatKind(activate(X)), activate(X), activate(Y)) U32(tt, X, Y) => U33(isNatKind(activate(Y)), activate(X), activate(Y)) U33(tt, X, Y) => U34(isNatKind(activate(Y)), activate(X), activate(Y)) U34(tt, X, Y) => U35(isNat(activate(X)), activate(Y)) U35(tt, X) => U36(isNat(activate(X))) U36(tt) => tt U41(tt, X) => U42(isNatKind(activate(X))) U42(tt) => tt U51(tt) => tt U61(tt, X) => U62(isNatKind(activate(X))) U62(tt) => tt U71(tt, X) => U72(isNatKind(activate(X)), activate(X)) U72(tt, X) => activate(X) U81(tt, X, Y) => U82(isNatKind(activate(X)), activate(X), activate(Y)) U82(tt, X, Y) => U83(isNat(activate(Y)), activate(X), activate(Y)) U83(tt, X, Y) => U84(isNatKind(activate(Y)), activate(X), activate(Y)) U84(tt, X, Y) => s(plus(activate(Y), activate(X))) U91(tt, X) => U92(isNatKind(activate(X))) U92(tt) => 0 isNat(n!6220!62200) => tt isNat(n!6220!6220plus(X, Y)) => U11(isNatKind(activate(X)), activate(X), activate(Y)) isNat(n!6220!6220s(X)) => U21(isNatKind(activate(X)), activate(X)) isNat(n!6220!6220x(X, Y)) => U31(isNatKind(activate(X)), activate(X), activate(Y)) isNatKind(n!6220!62200) => tt isNatKind(n!6220!6220plus(X, Y)) => U41(isNatKind(activate(X)), activate(Y)) isNatKind(n!6220!6220s(X)) => U51(isNatKind(activate(X))) isNatKind(n!6220!6220x(X, Y)) => U61(isNatKind(activate(X)), activate(Y)) plus(X, 0) => U71(isNat(X), X) plus(X, s(Y)) => U81(isNat(Y), Y, X) x(X, 0) => U91(isNat(X), X) x(X, s(Y)) => U101(isNat(Y), Y, X) 0 => n!6220!62200 plus(X, Y) => n!6220!6220plus(X, Y) s(X) => n!6220!6220s(X) x(X, Y) => n!6220!6220x(X, Y) activate(n!6220!62200) => 0 activate(n!6220!6220plus(X, Y)) => plus(activate(X), activate(Y)) activate(n!6220!6220s(X)) => s(activate(X)) activate(n!6220!6220x(X, Y)) => x(activate(X), activate(Y)) activate(X) => X Thus, the original system is terminating if (P_0, R_0, minimal, formative) is finite. We consider the dependency pair problem (P_0, R_0, minimal, formative). We place the elements of P in a dependency graph approximation G (see e.g. [Kop12, Thm. 7.27, 7.29], as follows: * 0 : 5, 6, 7, 8, 9 * 1 : 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129 * 2 : 138, 139, 140, 141, 142, 143, 144, 145, 146 * 3 : 138, 139, 140, 141, 142, 143, 144, 145, 146 * 4 : 138, 139, 140, 141, 142, 143, 144, 145, 146 * 5 : 10, 11, 12, 13, 14 * 6 : 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118 * 7 : 138, 139, 140, 141, 142, 143, 144, 145, 146 * 8 : 138, 139, 140, 141, 142, 143, 144, 145, 146 * 9 : 138, 139, 140, 141, 142, 143, 144, 145, 146 * 10 : 15, 16, 17, 18, 19 * 11 : 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129 * 12 : 138, 139, 140, 141, 142, 143, 144, 145, 146 * 13 : 138, 139, 140, 141, 142, 143, 144, 145, 146 * 14 : 138, 139, 140, 141, 142, 143, 144, 145, 146 * 15 : 130, 131, 132, 133 * 16 : 134, 135, 136, 137 * 17 : 138, 139, 140, 141, 142, 143, 144, 145, 146 * 18 : 138, 139, 140, 141, 142, 143, 144, 145, 146 * 19 : 138, 139, 140, 141, 142, 143, 144, 145, 146 * 20 : 25, 26, 27, 28, 29 * 21 : 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129 * 22 : 138, 139, 140, 141, 142, 143, 144, 145, 146 * 23 : 138, 139, 140, 141, 142, 143, 144, 145, 146 * 24 : 138, 139, 140, 141, 142, 143, 144, 145, 146 * 25 : 30, 31, 32, 33, 34 * 26 : 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129 * 27 : 138, 139, 140, 141, 142, 143, 144, 145, 146 * 28 : 138, 139, 140, 141, 142, 143, 144, 145, 146 * 29 : 138, 139, 140, 141, 142, 143, 144, 145, 146 * 30 : 35, 36, 37, 38 * 31 : 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129 * 32 : 138, 139, 140, 141, 142, 143, 144, 145, 146 * 33 : 138, 139, 140, 141, 142, 143, 144, 145, 146 * 34 : 138, 139, 140, 141, 142, 143, 144, 145, 146 * 35 : 39, 40, 41 * 36 : 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118 * 37 : 138, 139, 140, 141, 142, 143, 144, 145, 146 * 38 : 138, 139, 140, 141, 142, 143, 144, 145, 146 * 39 : * 40 : 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118 * 41 : 138, 139, 140, 141, 142, 143, 144, 145, 146 * 42 : 46, 47, 48 * 43 : 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129 * 44 : 138, 139, 140, 141, 142, 143, 144, 145, 146 * 45 : 138, 139, 140, 141, 142, 143, 144, 145, 146 * 46 : * 47 : 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118 * 48 : 138, 139, 140, 141, 142, 143, 144, 145, 146 * 49 : 54, 55, 56, 57, 58 * 50 : 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129 * 51 : 138, 139, 140, 141, 142, 143, 144, 145, 146 * 52 : 138, 139, 140, 141, 142, 143, 144, 145, 146 * 53 : 138, 139, 140, 141, 142, 143, 144, 145, 146 * 54 : 59, 60, 61, 62, 63 * 55 : 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129 * 56 : 138, 139, 140, 141, 142, 143, 144, 145, 146 * 57 : 138, 139, 140, 141, 142, 143, 144, 145, 146 * 58 : 138, 139, 140, 141, 142, 143, 144, 145, 146 * 59 : 64, 65, 66, 67 * 60 : 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129 * 61 : 138, 139, 140, 141, 142, 143, 144, 145, 146 * 62 : 138, 139, 140, 141, 142, 143, 144, 145, 146 * 63 : 138, 139, 140, 141, 142, 143, 144, 145, 146 * 64 : 68, 69, 70 * 65 : 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118 * 66 : 138, 139, 140, 141, 142, 143, 144, 145, 146 * 67 : 138, 139, 140, 141, 142, 143, 144, 145, 146 * 68 : * 69 : 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118 * 70 : 138, 139, 140, 141, 142, 143, 144, 145, 146 * 71 : * 72 : 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129 * 73 : 138, 139, 140, 141, 142, 143, 144, 145, 146 * 74 : * 75 : 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129 * 76 : 138, 139, 140, 141, 142, 143, 144, 145, 146 * 77 : 81 * 78 : 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129 * 79 : 138, 139, 140, 141, 142, 143, 144, 145, 146 * 80 : 138, 139, 140, 141, 142, 143, 144, 145, 146 * 81 : 138, 139, 140, 141, 142, 143, 144, 145, 146 * 82 : 87, 88, 89, 90, 91 * 83 : 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129 * 84 : 138, 139, 140, 141, 142, 143, 144, 145, 146 * 85 : 138, 139, 140, 141, 142, 143, 144, 145, 146 * 86 : 138, 139, 140, 141, 142, 143, 144, 145, 146 * 87 : 92, 93, 94, 95, 96 * 88 : 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118 * 89 : 138, 139, 140, 141, 142, 143, 144, 145, 146 * 90 : 138, 139, 140, 141, 142, 143, 144, 145, 146 * 91 : 138, 139, 140, 141, 142, 143, 144, 145, 146 * 92 : 97, 98, 99, 100 * 93 : 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129 * 94 : 138, 139, 140, 141, 142, 143, 144, 145, 146 * 95 : 138, 139, 140, 141, 142, 143, 144, 145, 146 * 96 : 138, 139, 140, 141, 142, 143, 144, 145, 146 * 97 : * 98 : 130, 131, 132, 133 * 99 : 138, 139, 140, 141, 142, 143, 144, 145, 146 * 100 : 138, 139, 140, 141, 142, 143, 144, 145, 146 * 101 : 104 * 102 : 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129 * 103 : 138, 139, 140, 141, 142, 143, 144, 145, 146 * 104 : * 105 : 20, 21, 22, 23, 24 * 106 : 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129 * 107 : 138, 139, 140, 141, 142, 143, 144, 145, 146 * 108 : 138, 139, 140, 141, 142, 143, 144, 145, 146 * 109 : 138, 139, 140, 141, 142, 143, 144, 145, 146 * 110 : 42, 43, 44, 45 * 111 : 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129 * 112 : 138, 139, 140, 141, 142, 143, 144, 145, 146 * 113 : 138, 139, 140, 141, 142, 143, 144, 145, 146 * 114 : 49, 50, 51, 52, 53 * 115 : 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129 * 116 : 138, 139, 140, 141, 142, 143, 144, 145, 146 * 117 : 138, 139, 140, 141, 142, 143, 144, 145, 146 * 118 : 138, 139, 140, 141, 142, 143, 144, 145, 146 * 119 : 71, 72, 73 * 120 : 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129 * 121 : 138, 139, 140, 141, 142, 143, 144, 145, 146 * 122 : 138, 139, 140, 141, 142, 143, 144, 145, 146 * 123 : * 124 : 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129 * 125 : 138, 139, 140, 141, 142, 143, 144, 145, 146 * 126 : 74, 75, 76 * 127 : 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129 * 128 : 138, 139, 140, 141, 142, 143, 144, 145, 146 * 129 : 138, 139, 140, 141, 142, 143, 144, 145, 146 * 130 : 77, 78, 79, 80 * 131 : 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118 * 132 : 82, 83, 84, 85, 86 * 133 : 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118 * 134 : 101, 102, 103 * 135 : 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118 * 136 : 0, 1, 2, 3, 4 * 137 : 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118 * 138 : * 139 : 130, 131, 132, 133 * 140 : 138, 139, 140, 141, 142, 143, 144, 145, 146 * 141 : 138, 139, 140, 141, 142, 143, 144, 145, 146 * 142 : * 143 : 138, 139, 140, 141, 142, 143, 144, 145, 146 * 144 : 134, 135, 136, 137 * 145 : 138, 139, 140, 141, 142, 143, 144, 145, 146 * 146 : 138, 139, 140, 141, 142, 143, 144, 145, 146 This graph has the following strongly connected components: P_1: U101#(tt, X, Y) =#> U102#(isNatKind(activate(X)), activate(X), activate(Y)) U101#(tt, X, Y) =#> isNatKind#(activate(X)) U101#(tt, X, Y) =#> activate#(X) U101#(tt, X, Y) =#> activate#(X) U101#(tt, X, Y) =#> activate#(Y) U102#(tt, X, Y) =#> U103#(isNat(activate(Y)), activate(X), activate(Y)) U102#(tt, X, Y) =#> isNat#(activate(Y)) U102#(tt, X, Y) =#> activate#(Y) U102#(tt, X, Y) =#> activate#(X) U102#(tt, X, Y) =#> activate#(Y) U103#(tt, X, Y) =#> U104#(isNatKind(activate(Y)), activate(X), activate(Y)) U103#(tt, X, Y) =#> isNatKind#(activate(Y)) U103#(tt, X, Y) =#> activate#(Y) U103#(tt, X, Y) =#> activate#(X) U103#(tt, X, Y) =#> activate#(Y) U104#(tt, X, Y) =#> plus#(x(activate(Y), activate(X)), activate(Y)) U104#(tt, X, Y) =#> x#(activate(Y), activate(X)) U104#(tt, X, Y) =#> activate#(Y) U104#(tt, X, Y) =#> activate#(X) U104#(tt, X, Y) =#> activate#(Y) U11#(tt, X, Y) =#> U12#(isNatKind(activate(X)), activate(X), activate(Y)) U11#(tt, X, Y) =#> isNatKind#(activate(X)) U11#(tt, X, Y) =#> activate#(X) U11#(tt, X, Y) =#> activate#(X) U11#(tt, X, Y) =#> activate#(Y) U12#(tt, X, Y) =#> U13#(isNatKind(activate(Y)), activate(X), activate(Y)) U12#(tt, X, Y) =#> isNatKind#(activate(Y)) U12#(tt, X, Y) =#> activate#(Y) U12#(tt, X, Y) =#> activate#(X) U12#(tt, X, Y) =#> activate#(Y) U13#(tt, X, Y) =#> U14#(isNatKind(activate(Y)), activate(X), activate(Y)) U13#(tt, X, Y) =#> isNatKind#(activate(Y)) U13#(tt, X, Y) =#> activate#(Y) U13#(tt, X, Y) =#> activate#(X) U13#(tt, X, Y) =#> activate#(Y) U14#(tt, X, Y) =#> U15#(isNat(activate(X)), activate(Y)) U14#(tt, X, Y) =#> isNat#(activate(X)) U14#(tt, X, Y) =#> activate#(X) U14#(tt, X, Y) =#> activate#(Y) U15#(tt, X) =#> isNat#(activate(X)) U15#(tt, X) =#> activate#(X) U21#(tt, X) =#> U22#(isNatKind(activate(X)), activate(X)) U21#(tt, X) =#> isNatKind#(activate(X)) U21#(tt, X) =#> activate#(X) U21#(tt, X) =#> activate#(X) U22#(tt, X) =#> isNat#(activate(X)) U22#(tt, X) =#> activate#(X) U31#(tt, X, Y) =#> U32#(isNatKind(activate(X)), activate(X), activate(Y)) U31#(tt, X, Y) =#> isNatKind#(activate(X)) U31#(tt, X, Y) =#> activate#(X) U31#(tt, X, Y) =#> activate#(X) U31#(tt, X, Y) =#> activate#(Y) U32#(tt, X, Y) =#> U33#(isNatKind(activate(Y)), activate(X), activate(Y)) U32#(tt, X, Y) =#> isNatKind#(activate(Y)) U32#(tt, X, Y) =#> activate#(Y) U32#(tt, X, Y) =#> activate#(X) U32#(tt, X, Y) =#> activate#(Y) U33#(tt, X, Y) =#> U34#(isNatKind(activate(Y)), activate(X), activate(Y)) U33#(tt, X, Y) =#> isNatKind#(activate(Y)) U33#(tt, X, Y) =#> activate#(Y) U33#(tt, X, Y) =#> activate#(X) U33#(tt, X, Y) =#> activate#(Y) U34#(tt, X, Y) =#> U35#(isNat(activate(X)), activate(Y)) U34#(tt, X, Y) =#> isNat#(activate(X)) U34#(tt, X, Y) =#> activate#(X) U34#(tt, X, Y) =#> activate#(Y) U35#(tt, X) =#> isNat#(activate(X)) U35#(tt, X) =#> activate#(X) U41#(tt, X) =#> isNatKind#(activate(X)) U41#(tt, X) =#> activate#(X) U61#(tt, X) =#> isNatKind#(activate(X)) U61#(tt, X) =#> activate#(X) U71#(tt, X) =#> U72#(isNatKind(activate(X)), activate(X)) U71#(tt, X) =#> isNatKind#(activate(X)) U71#(tt, X) =#> activate#(X) U71#(tt, X) =#> activate#(X) U72#(tt, X) =#> activate#(X) U81#(tt, X, Y) =#> U82#(isNatKind(activate(X)), activate(X), activate(Y)) U81#(tt, X, Y) =#> isNatKind#(activate(X)) U81#(tt, X, Y) =#> activate#(X) U81#(tt, X, Y) =#> activate#(X) U81#(tt, X, Y) =#> activate#(Y) U82#(tt, X, Y) =#> U83#(isNat(activate(Y)), activate(X), activate(Y)) U82#(tt, X, Y) =#> isNat#(activate(Y)) U82#(tt, X, Y) =#> activate#(Y) U82#(tt, X, Y) =#> activate#(X) U82#(tt, X, Y) =#> activate#(Y) U83#(tt, X, Y) =#> U84#(isNatKind(activate(Y)), activate(X), activate(Y)) U83#(tt, X, Y) =#> isNatKind#(activate(Y)) U83#(tt, X, Y) =#> activate#(Y) U83#(tt, X, Y) =#> activate#(X) U83#(tt, X, Y) =#> activate#(Y) U84#(tt, X, Y) =#> plus#(activate(Y), activate(X)) U84#(tt, X, Y) =#> activate#(Y) U84#(tt, X, Y) =#> activate#(X) U91#(tt, X) =#> isNatKind#(activate(X)) U91#(tt, X) =#> activate#(X) isNat#(n!6220!6220plus(X, Y)) =#> U11#(isNatKind(activate(X)), activate(X), activate(Y)) isNat#(n!6220!6220plus(X, Y)) =#> isNatKind#(activate(X)) isNat#(n!6220!6220plus(X, Y)) =#> activate#(X) isNat#(n!6220!6220plus(X, Y)) =#> activate#(X) isNat#(n!6220!6220plus(X, Y)) =#> activate#(Y) isNat#(n!6220!6220s(X)) =#> U21#(isNatKind(activate(X)), activate(X)) isNat#(n!6220!6220s(X)) =#> isNatKind#(activate(X)) isNat#(n!6220!6220s(X)) =#> activate#(X) isNat#(n!6220!6220s(X)) =#> activate#(X) isNat#(n!6220!6220x(X, Y)) =#> U31#(isNatKind(activate(X)), activate(X), activate(Y)) isNat#(n!6220!6220x(X, Y)) =#> isNatKind#(activate(X)) isNat#(n!6220!6220x(X, Y)) =#> activate#(X) isNat#(n!6220!6220x(X, Y)) =#> activate#(X) isNat#(n!6220!6220x(X, Y)) =#> activate#(Y) isNatKind#(n!6220!6220plus(X, Y)) =#> U41#(isNatKind(activate(X)), activate(Y)) isNatKind#(n!6220!6220plus(X, Y)) =#> isNatKind#(activate(X)) isNatKind#(n!6220!6220plus(X, Y)) =#> activate#(X) isNatKind#(n!6220!6220plus(X, Y)) =#> activate#(Y) isNatKind#(n!6220!6220s(X)) =#> isNatKind#(activate(X)) isNatKind#(n!6220!6220s(X)) =#> activate#(X) isNatKind#(n!6220!6220x(X, Y)) =#> U61#(isNatKind(activate(X)), activate(Y)) isNatKind#(n!6220!6220x(X, Y)) =#> isNatKind#(activate(X)) isNatKind#(n!6220!6220x(X, Y)) =#> activate#(X) isNatKind#(n!6220!6220x(X, Y)) =#> activate#(Y) plus#(X, 0) =#> U71#(isNat(X), X) plus#(X, 0) =#> isNat#(X) plus#(X, s(Y)) =#> U81#(isNat(Y), Y, X) plus#(X, s(Y)) =#> isNat#(Y) x#(X, 0) =#> U91#(isNat(X), X) x#(X, 0) =#> isNat#(X) x#(X, s(Y)) =#> U101#(isNat(Y), Y, X) x#(X, s(Y)) =#> isNat#(Y) activate#(n!6220!6220plus(X, Y)) =#> plus#(activate(X), activate(Y)) activate#(n!6220!6220plus(X, Y)) =#> activate#(X) activate#(n!6220!6220plus(X, Y)) =#> activate#(Y) activate#(n!6220!6220s(X)) =#> activate#(X) activate#(n!6220!6220x(X, Y)) =#> x#(activate(X), activate(Y)) activate#(n!6220!6220x(X, Y)) =#> activate#(X) activate#(n!6220!6220x(X, Y)) =#> activate#(Y) By [Kop12, Thm. 7.31], we may replace any dependency pair problem (P_0, R_0, m, f) by (P_1, R_0, m, f). Thus, the original system is terminating if (P_1, R_0, minimal, formative) is finite. We consider the dependency pair problem (P_1, R_0, minimal, formative). We will use the reduction pair processor [Kop12, Thm. 7.16]. It suffices to find a standard reduction pair [Kop12, Def. 6.69]. Thus, we must orient: U101#(tt, X, Y) >? U102#(isNatKind(activate(X)), activate(X), activate(Y)) U101#(tt, X, Y) >? isNatKind#(activate(X)) U101#(tt, X, Y) >? activate#(X) U101#(tt, X, Y) >? activate#(X) U101#(tt, X, Y) >? activate#(Y) U102#(tt, X, Y) >? U103#(isNat(activate(Y)), activate(X), activate(Y)) U102#(tt, X, Y) >? isNat#(activate(Y)) U102#(tt, X, Y) >? activate#(Y) U102#(tt, X, Y) >? activate#(X) U102#(tt, X, Y) >? activate#(Y) U103#(tt, X, Y) >? U104#(isNatKind(activate(Y)), activate(X), activate(Y)) U103#(tt, X, Y) >? isNatKind#(activate(Y)) U103#(tt, X, Y) >? activate#(Y) U103#(tt, X, Y) >? activate#(X) U103#(tt, X, Y) >? activate#(Y) U104#(tt, X, Y) >? plus#(x(activate(Y), activate(X)), activate(Y)) U104#(tt, X, Y) >? x#(activate(Y), activate(X)) U104#(tt, X, Y) >? activate#(Y) U104#(tt, X, Y) >? activate#(X) U104#(tt, X, Y) >? activate#(Y) U11#(tt, X, Y) >? U12#(isNatKind(activate(X)), activate(X), activate(Y)) U11#(tt, X, Y) >? isNatKind#(activate(X)) U11#(tt, X, Y) >? activate#(X) U11#(tt, X, Y) >? activate#(X) U11#(tt, X, Y) >? activate#(Y) U12#(tt, X, Y) >? U13#(isNatKind(activate(Y)), activate(X), activate(Y)) U12#(tt, X, Y) >? isNatKind#(activate(Y)) U12#(tt, X, Y) >? activate#(Y) U12#(tt, X, Y) >? activate#(X) U12#(tt, X, Y) >? activate#(Y) U13#(tt, X, Y) >? U14#(isNatKind(activate(Y)), activate(X), activate(Y)) U13#(tt, X, Y) >? isNatKind#(activate(Y)) U13#(tt, X, Y) >? activate#(Y) U13#(tt, X, Y) >? activate#(X) U13#(tt, X, Y) >? activate#(Y) U14#(tt, X, Y) >? U15#(isNat(activate(X)), activate(Y)) U14#(tt, X, Y) >? isNat#(activate(X)) U14#(tt, X, Y) >? activate#(X) U14#(tt, X, Y) >? activate#(Y) U15#(tt, X) >? isNat#(activate(X)) U15#(tt, X) >? activate#(X) U21#(tt, X) >? U22#(isNatKind(activate(X)), activate(X)) U21#(tt, X) >? isNatKind#(activate(X)) U21#(tt, X) >? activate#(X) U21#(tt, X) >? activate#(X) U22#(tt, X) >? isNat#(activate(X)) U22#(tt, X) >? activate#(X) U31#(tt, X, Y) >? U32#(isNatKind(activate(X)), activate(X), activate(Y)) U31#(tt, X, Y) >? isNatKind#(activate(X)) U31#(tt, X, Y) >? activate#(X) U31#(tt, X, Y) >? activate#(X) U31#(tt, X, Y) >? activate#(Y) U32#(tt, X, Y) >? U33#(isNatKind(activate(Y)), activate(X), activate(Y)) U32#(tt, X, Y) >? isNatKind#(activate(Y)) U32#(tt, X, Y) >? activate#(Y) U32#(tt, X, Y) >? activate#(X) U32#(tt, X, Y) >? activate#(Y) U33#(tt, X, Y) >? U34#(isNatKind(activate(Y)), activate(X), activate(Y)) U33#(tt, X, Y) >? isNatKind#(activate(Y)) U33#(tt, X, Y) >? activate#(Y) U33#(tt, X, Y) >? activate#(X) U33#(tt, X, Y) >? activate#(Y) U34#(tt, X, Y) >? U35#(isNat(activate(X)), activate(Y)) U34#(tt, X, Y) >? isNat#(activate(X)) U34#(tt, X, Y) >? activate#(X) U34#(tt, X, Y) >? activate#(Y) U35#(tt, X) >? isNat#(activate(X)) U35#(tt, X) >? activate#(X) U41#(tt, X) >? isNatKind#(activate(X)) U41#(tt, X) >? activate#(X) U61#(tt, X) >? isNatKind#(activate(X)) U61#(tt, X) >? activate#(X) U71#(tt, X) >? U72#(isNatKind(activate(X)), activate(X)) U71#(tt, X) >? isNatKind#(activate(X)) U71#(tt, X) >? activate#(X) U71#(tt, X) >? activate#(X) U72#(tt, X) >? activate#(X) U81#(tt, X, Y) >? U82#(isNatKind(activate(X)), activate(X), activate(Y)) U81#(tt, X, Y) >? isNatKind#(activate(X)) U81#(tt, X, Y) >? activate#(X) U81#(tt, X, Y) >? activate#(X) U81#(tt, X, Y) >? activate#(Y) U82#(tt, X, Y) >? U83#(isNat(activate(Y)), activate(X), activate(Y)) U82#(tt, X, Y) >? isNat#(activate(Y)) U82#(tt, X, Y) >? activate#(Y) U82#(tt, X, Y) >? activate#(X) U82#(tt, X, Y) >? activate#(Y) U83#(tt, X, Y) >? U84#(isNatKind(activate(Y)), activate(X), activate(Y)) U83#(tt, X, Y) >? isNatKind#(activate(Y)) U83#(tt, X, Y) >? activate#(Y) U83#(tt, X, Y) >? activate#(X) U83#(tt, X, Y) >? activate#(Y) U84#(tt, X, Y) >? plus#(activate(Y), activate(X)) U84#(tt, X, Y) >? activate#(Y) U84#(tt, X, Y) >? activate#(X) U91#(tt, X) >? isNatKind#(activate(X)) U91#(tt, X) >? activate#(X) isNat#(n!6220!6220plus(X, Y)) >? U11#(isNatKind(activate(X)), activate(X), activate(Y)) isNat#(n!6220!6220plus(X, Y)) >? isNatKind#(activate(X)) isNat#(n!6220!6220plus(X, Y)) >? activate#(X) isNat#(n!6220!6220plus(X, Y)) >? activate#(X) isNat#(n!6220!6220plus(X, Y)) >? activate#(Y) isNat#(n!6220!6220s(X)) >? U21#(isNatKind(activate(X)), activate(X)) isNat#(n!6220!6220s(X)) >? isNatKind#(activate(X)) isNat#(n!6220!6220s(X)) >? activate#(X) isNat#(n!6220!6220s(X)) >? activate#(X) isNat#(n!6220!6220x(X, Y)) >? U31#(isNatKind(activate(X)), activate(X), activate(Y)) isNat#(n!6220!6220x(X, Y)) >? isNatKind#(activate(X)) isNat#(n!6220!6220x(X, Y)) >? activate#(X) isNat#(n!6220!6220x(X, Y)) >? activate#(X) isNat#(n!6220!6220x(X, Y)) >? activate#(Y) isNatKind#(n!6220!6220plus(X, Y)) >? U41#(isNatKind(activate(X)), activate(Y)) isNatKind#(n!6220!6220plus(X, Y)) >? isNatKind#(activate(X)) isNatKind#(n!6220!6220plus(X, Y)) >? activate#(X) isNatKind#(n!6220!6220plus(X, Y)) >? activate#(Y) isNatKind#(n!6220!6220s(X)) >? isNatKind#(activate(X)) isNatKind#(n!6220!6220s(X)) >? activate#(X) isNatKind#(n!6220!6220x(X, Y)) >? U61#(isNatKind(activate(X)), activate(Y)) isNatKind#(n!6220!6220x(X, Y)) >? isNatKind#(activate(X)) isNatKind#(n!6220!6220x(X, Y)) >? activate#(X) isNatKind#(n!6220!6220x(X, Y)) >? activate#(Y) plus#(X, 0) >? U71#(isNat(X), X) plus#(X, 0) >? isNat#(X) plus#(X, s(Y)) >? U81#(isNat(Y), Y, X) plus#(X, s(Y)) >? isNat#(Y) x#(X, 0) >? U91#(isNat(X), X) x#(X, 0) >? isNat#(X) x#(X, s(Y)) >? U101#(isNat(Y), Y, X) x#(X, s(Y)) >? isNat#(Y) activate#(n!6220!6220plus(X, Y)) >? plus#(activate(X), activate(Y)) activate#(n!6220!6220plus(X, Y)) >? activate#(X) activate#(n!6220!6220plus(X, Y)) >? activate#(Y) activate#(n!6220!6220s(X)) >? activate#(X) activate#(n!6220!6220x(X, Y)) >? x#(activate(X), activate(Y)) activate#(n!6220!6220x(X, Y)) >? activate#(X) activate#(n!6220!6220x(X, Y)) >? activate#(Y) U101(tt, X, Y) >= U102(isNatKind(activate(X)), activate(X), activate(Y)) U102(tt, X, Y) >= U103(isNat(activate(Y)), activate(X), activate(Y)) U103(tt, X, Y) >= U104(isNatKind(activate(Y)), activate(X), activate(Y)) U104(tt, X, Y) >= plus(x(activate(Y), activate(X)), activate(Y)) U11(tt, X, Y) >= U12(isNatKind(activate(X)), activate(X), activate(Y)) U12(tt, X, Y) >= U13(isNatKind(activate(Y)), activate(X), activate(Y)) U13(tt, X, Y) >= U14(isNatKind(activate(Y)), activate(X), activate(Y)) U14(tt, X, Y) >= U15(isNat(activate(X)), activate(Y)) U15(tt, X) >= U16(isNat(activate(X))) U16(tt) >= tt U21(tt, X) >= U22(isNatKind(activate(X)), activate(X)) U22(tt, X) >= U23(isNat(activate(X))) U23(tt) >= tt U31(tt, X, Y) >= U32(isNatKind(activate(X)), activate(X), activate(Y)) U32(tt, X, Y) >= U33(isNatKind(activate(Y)), activate(X), activate(Y)) U33(tt, X, Y) >= U34(isNatKind(activate(Y)), activate(X), activate(Y)) U34(tt, X, Y) >= U35(isNat(activate(X)), activate(Y)) U35(tt, X) >= U36(isNat(activate(X))) U36(tt) >= tt U41(tt, X) >= U42(isNatKind(activate(X))) U42(tt) >= tt U51(tt) >= tt U61(tt, X) >= U62(isNatKind(activate(X))) U62(tt) >= tt U71(tt, X) >= U72(isNatKind(activate(X)), activate(X)) U72(tt, X) >= activate(X) U81(tt, X, Y) >= U82(isNatKind(activate(X)), activate(X), activate(Y)) U82(tt, X, Y) >= U83(isNat(activate(Y)), activate(X), activate(Y)) U83(tt, X, Y) >= U84(isNatKind(activate(Y)), activate(X), activate(Y)) U84(tt, X, Y) >= s(plus(activate(Y), activate(X))) U91(tt, X) >= U92(isNatKind(activate(X))) U92(tt) >= 0 isNat(n!6220!62200) >= tt isNat(n!6220!6220plus(X, Y)) >= U11(isNatKind(activate(X)), activate(X), activate(Y)) isNat(n!6220!6220s(X)) >= U21(isNatKind(activate(X)), activate(X)) isNat(n!6220!6220x(X, Y)) >= U31(isNatKind(activate(X)), activate(X), activate(Y)) isNatKind(n!6220!62200) >= tt isNatKind(n!6220!6220plus(X, Y)) >= U41(isNatKind(activate(X)), activate(Y)) isNatKind(n!6220!6220s(X)) >= U51(isNatKind(activate(X))) isNatKind(n!6220!6220x(X, Y)) >= U61(isNatKind(activate(X)), activate(Y)) plus(X, 0) >= U71(isNat(X), X) plus(X, s(Y)) >= U81(isNat(Y), Y, X) x(X, 0) >= U91(isNat(X), X) x(X, s(Y)) >= U101(isNat(Y), Y, X) 0 >= n!6220!62200 plus(X, Y) >= n!6220!6220plus(X, Y) s(X) >= n!6220!6220s(X) x(X, Y) >= n!6220!6220x(X, Y) activate(n!6220!62200) >= 0 activate(n!6220!6220plus(X, Y)) >= plus(activate(X), activate(Y)) activate(n!6220!6220s(X)) >= s(activate(X)) activate(n!6220!6220x(X, Y)) >= x(activate(X), activate(Y)) activate(X) >= X Since this representation is not advantageous for the higher-order recursive path ordering, we present the strict requirements in their unextended form, which is not problematic since for any F, s and substituion gamma: (F s)gamma beta-reduces to F(s)gamma.) We use a recursive path ordering as defined in [Kop12, Chapter 5]. Argument functions: [[0]] = _|_ [[U11(x_1, x_2, x_3)]] = x_1 [[U12(x_1, x_2, x_3)]] = U12 [[U13(x_1, x_2, x_3)]] = U13 [[U14(x_1, x_2, x_3)]] = x_1 [[U15(x_1, x_2)]] = x_1 [[U16(x_1)]] = x_1 [[U21(x_1, x_2)]] = x_1 [[U21#(x_1, x_2)]] = U21#(x_2) [[U22(x_1, x_2)]] = x_1 [[U22#(x_1, x_2)]] = U22#(x_2) [[U23(x_1)]] = x_1 [[U31(x_1, x_2, x_3)]] = U31 [[U32(x_1, x_2, x_3)]] = U32 [[U33(x_1, x_2, x_3)]] = U33 [[U34(x_1, x_2, x_3)]] = x_1 [[U35(x_1, x_2)]] = x_1 [[U36(x_1)]] = x_1 [[U41(x_1, x_2)]] = x_1 [[U41#(x_1, x_2)]] = U41#(x_2) [[U42(x_1)]] = x_1 [[U51(x_1)]] = x_1 [[U61(x_1, x_2)]] = U61 [[U62(x_1)]] = x_1 [[U72(x_1, x_2)]] = x_2 [[U91(x_1, x_2)]] = _|_ [[U92(x_1)]] = _|_ [[activate(x_1)]] = x_1 [[isNat(x_1)]] = isNat [[isNatKind(x_1)]] = isNatKind [[n!6220!62200]] = _|_ We choose Lex = {} and Mul = {U101, U101#, U102, U102#, U103, U103#, U104, U104#, U11#, U12, U12#, U13, U13#, U14#, U15#, U21#, U22#, U31, U31#, U32, U32#, U33, U33#, U34#, U35#, U41#, U61, U61#, U71, U71#, U72#, U81, U81#, U82, U82#, U83, U83#, U84, U84#, U91#, activate#, isNat, isNatKind, isNatKind#, isNat#, n!6220!6220plus, n!6220!6220s, n!6220!6220x, plus, plus#, s, tt, x, x#}, and the following precedence: U101 = U101# = U102 = U102# = U103 = U103# = U104 = U104# = n!6220!6220x = x = x# > U81 = U81# = U82 = U82# = U83 = U83# = U84 = U84# = n!6220!6220plus = plus = plus# > U31# = U32# > U33# > U34# > U35# > U61# > U91# > U71# = U72# > U11# = U12# = U13# = U14# = U15# = U21# = U22# = isNat# > U41# = isNatKind# > activate# > U71 > n!6220!6220s = s > U12 = U13 = U31 = U32 = U33 = U61 = isNat = isNatKind = tt Taking the argument function into account, and fixing the greater / greater equal choices, the constraints can be denoted as follows: U101#(tt, X, Y) >= U102#(isNatKind, X, Y) U101#(tt, X, Y) >= isNatKind#(X) U101#(tt, X, Y) >= activate#(X) U101#(tt, X, Y) >= activate#(X) U101#(tt, X, Y) >= activate#(Y) U102#(tt, X, Y) >= U103#(isNat, X, Y) U102#(tt, X, Y) >= isNat#(Y) U102#(tt, X, Y) >= activate#(Y) U102#(tt, X, Y) >= activate#(X) U102#(tt, X, Y) >= activate#(Y) U103#(tt, X, Y) >= U104#(isNatKind, X, Y) U103#(tt, X, Y) >= isNatKind#(Y) U103#(tt, X, Y) >= activate#(Y) U103#(tt, X, Y) >= activate#(X) U103#(tt, X, Y) >= activate#(Y) U104#(tt, X, Y) >= plus#(x(Y, X), Y) U104#(tt, X, Y) >= x#(Y, X) U104#(tt, X, Y) >= activate#(Y) U104#(tt, X, Y) >= activate#(X) U104#(tt, X, Y) >= activate#(Y) U11#(tt, X, Y) >= U12#(isNatKind, X, Y) U11#(tt, X, Y) >= isNatKind#(X) U11#(tt, X, Y) >= activate#(X) U11#(tt, X, Y) >= activate#(X) U11#(tt, X, Y) >= activate#(Y) U12#(tt, X, Y) >= U13#(isNatKind, X, Y) U12#(tt, X, Y) >= isNatKind#(Y) U12#(tt, X, Y) >= activate#(Y) U12#(tt, X, Y) >= activate#(X) U12#(tt, X, Y) >= activate#(Y) U13#(tt, X, Y) >= U14#(isNatKind, X, Y) U13#(tt, X, Y) >= isNatKind#(Y) U13#(tt, X, Y) >= activate#(Y) U13#(tt, X, Y) >= activate#(X) U13#(tt, X, Y) >= activate#(Y) U14#(tt, X, Y) >= U15#(isNat, Y) U14#(tt, X, Y) >= isNat#(X) U14#(tt, X, Y) >= activate#(X) U14#(tt, X, Y) >= activate#(Y) U15#(tt, X) >= isNat#(X) U15#(tt, X) >= activate#(X) U21#(X) >= U22#(X) U21#(X) >= isNatKind#(X) U21#(X) >= activate#(X) U21#(X) >= activate#(X) U22#(X) >= isNat#(X) U22#(X) >= activate#(X) U31#(tt, X, Y) >= U32#(isNatKind, X, Y) U31#(tt, X, Y) >= isNatKind#(X) U31#(tt, X, Y) >= activate#(X) U31#(tt, X, Y) >= activate#(X) U31#(tt, X, Y) >= activate#(Y) U32#(tt, X, Y) >= U33#(isNatKind, X, Y) U32#(tt, X, Y) >= isNatKind#(Y) U32#(tt, X, Y) >= activate#(Y) U32#(tt, X, Y) >= activate#(X) U32#(tt, X, Y) >= activate#(Y) U33#(tt, X, Y) >= U34#(isNatKind, X, Y) U33#(tt, X, Y) >= isNatKind#(Y) U33#(tt, X, Y) >= activate#(Y) U33#(tt, X, Y) >= activate#(X) U33#(tt, X, Y) >= activate#(Y) U34#(tt, X, Y) >= U35#(isNat, Y) U34#(tt, X, Y) >= isNat#(X) U34#(tt, X, Y) >= activate#(X) U34#(tt, X, Y) >= activate#(Y) U35#(tt, X) >= isNat#(X) U35#(tt, X) >= activate#(X) U41#(X) >= isNatKind#(X) U41#(X) >= activate#(X) U61#(tt, X) >= isNatKind#(X) U61#(tt, X) > activate#(X) U71#(tt, X) >= U72#(isNatKind, X) U71#(tt, X) >= isNatKind#(X) U71#(tt, X) >= activate#(X) U71#(tt, X) >= activate#(X) U72#(tt, X) >= activate#(X) U81#(tt, X, Y) >= U82#(isNatKind, X, Y) U81#(tt, X, Y) >= isNatKind#(X) U81#(tt, X, Y) >= activate#(X) U81#(tt, X, Y) >= activate#(X) U81#(tt, X, Y) >= activate#(Y) U82#(tt, X, Y) >= U83#(isNat, X, Y) U82#(tt, X, Y) >= isNat#(Y) U82#(tt, X, Y) >= activate#(Y) U82#(tt, X, Y) >= activate#(X) U82#(tt, X, Y) >= activate#(Y) U83#(tt, X, Y) >= U84#(isNatKind, X, Y) U83#(tt, X, Y) >= isNatKind#(Y) U83#(tt, X, Y) >= activate#(Y) U83#(tt, X, Y) >= activate#(X) U83#(tt, X, Y) >= activate#(Y) U84#(tt, X, Y) >= plus#(Y, X) U84#(tt, X, Y) >= activate#(Y) U84#(tt, X, Y) >= activate#(X) U91#(tt, X) >= isNatKind#(X) U91#(tt, X) >= activate#(X) isNat#(n!6220!6220plus(X, Y)) > U11#(isNatKind, X, Y) isNat#(n!6220!6220plus(X, Y)) >= isNatKind#(X) isNat#(n!6220!6220plus(X, Y)) >= activate#(X) isNat#(n!6220!6220plus(X, Y)) >= activate#(X) isNat#(n!6220!6220plus(X, Y)) >= activate#(Y) isNat#(n!6220!6220s(X)) >= U21#(X) isNat#(n!6220!6220s(X)) >= isNatKind#(X) isNat#(n!6220!6220s(X)) >= activate#(X) isNat#(n!6220!6220s(X)) >= activate#(X) isNat#(n!6220!6220x(X, Y)) >= U31#(isNatKind, X, Y) isNat#(n!6220!6220x(X, Y)) >= isNatKind#(X) isNat#(n!6220!6220x(X, Y)) >= activate#(X) isNat#(n!6220!6220x(X, Y)) >= activate#(X) isNat#(n!6220!6220x(X, Y)) >= activate#(Y) isNatKind#(n!6220!6220plus(X, Y)) > U41#(Y) isNatKind#(n!6220!6220plus(X, Y)) >= isNatKind#(X) isNatKind#(n!6220!6220plus(X, Y)) >= activate#(X) isNatKind#(n!6220!6220plus(X, Y)) >= activate#(Y) isNatKind#(n!6220!6220s(X)) >= isNatKind#(X) isNatKind#(n!6220!6220s(X)) >= activate#(X) isNatKind#(n!6220!6220x(X, Y)) >= U61#(isNatKind, Y) isNatKind#(n!6220!6220x(X, Y)) >= isNatKind#(X) isNatKind#(n!6220!6220x(X, Y)) >= activate#(X) isNatKind#(n!6220!6220x(X, Y)) >= activate#(Y) plus#(X, _|_) > U71#(isNat, X) plus#(X, _|_) >= isNat#(X) plus#(X, s(Y)) > U81#(isNat, Y, X) plus#(X, s(Y)) >= isNat#(Y) x#(X, _|_) > U91#(isNat, X) x#(X, _|_) >= isNat#(X) x#(X, s(Y)) > U101#(isNat, Y, X) x#(X, s(Y)) >= isNat#(Y) activate#(n!6220!6220plus(X, Y)) >= plus#(X, Y) activate#(n!6220!6220plus(X, Y)) >= activate#(X) activate#(n!6220!6220plus(X, Y)) >= activate#(Y) activate#(n!6220!6220s(X)) >= activate#(X) activate#(n!6220!6220x(X, Y)) >= x#(X, Y) activate#(n!6220!6220x(X, Y)) >= activate#(X) activate#(n!6220!6220x(X, Y)) >= activate#(Y) U101(tt, X, Y) >= U102(isNatKind, X, Y) U102(tt, X, Y) >= U103(isNat, X, Y) U103(tt, X, Y) >= U104(isNatKind, X, Y) U104(tt, X, Y) >= plus(x(Y, X), Y) tt >= U12 U12 >= U13 U13 >= isNatKind tt >= isNat tt >= isNat tt >= tt tt >= isNatKind tt >= isNat tt >= tt U31 >= U32 U32 >= U33 U33 >= isNatKind tt >= isNat tt >= isNat tt >= tt tt >= isNatKind tt >= tt tt >= tt U61 >= isNatKind tt >= tt U71(tt, X) >= X X >= X U81(tt, X, Y) >= U82(isNatKind, X, Y) U82(tt, X, Y) >= U83(isNat, X, Y) U83(tt, X, Y) >= U84(isNatKind, X, Y) U84(tt, X, Y) >= s(plus(Y, X)) _|_ >= _|_ _|_ >= _|_ isNat >= tt isNat >= isNatKind isNat >= isNatKind isNat >= U31 isNatKind >= tt isNatKind >= isNatKind isNatKind >= isNatKind isNatKind >= U61 plus(X, _|_) >= U71(isNat, X) plus(X, s(Y)) >= U81(isNat, Y, X) x(X, _|_) >= _|_ x(X, s(Y)) >= U101(isNat, Y, X) _|_ >= _|_ plus(X, Y) >= n!6220!6220plus(X, Y) s(X) >= n!6220!6220s(X) x(X, Y) >= n!6220!6220x(X, Y) _|_ >= _|_ n!6220!6220plus(X, Y) >= plus(X, Y) n!6220!6220s(X) >= s(X) n!6220!6220x(X, Y) >= x(X, Y) X >= X With these choices, we have: 1] U101#(tt, X, Y) >= U102#(isNatKind, X, Y) because U101# = U102#, U101# in Mul, [2], [3] and [4], by (Fun) 2] tt >= isNatKind because tt = isNatKind, by (Fun) 3] X >= X by (Meta) 4] Y >= Y by (Meta) 5] U101#(tt, X, Y) >= isNatKind#(X) because [6], by (Star) 6] U101#*(tt, X, Y) >= isNatKind#(X) because U101# > isNatKind# and [7], by (Copy) 7] U101#*(tt, X, Y) >= X because [3], by (Select) 8] U101#(tt, X, Y) >= activate#(X) because [9], by (Star) 9] U101#*(tt, X, Y) >= activate#(X) because U101# > activate# and [7], by (Copy) 10] U101#(tt, X, Y) >= activate#(X) because [9], by (Star) 11] U101#(tt, X, Y) >= activate#(Y) because [12], by (Star) 12] U101#*(tt, X, Y) >= activate#(Y) because U101# > activate# and [13], by (Copy) 13] U101#*(tt, X, Y) >= Y because [4], by (Select) 14] U102#(tt, X, Y) >= U103#(isNat, X, Y) because U102# = U103#, U102# in Mul, [15], [3] and [4], by (Fun) 15] tt >= isNat because tt = isNat, by (Fun) 16] U102#(tt, X, Y) >= isNat#(Y) because [17], by (Star) 17] U102#*(tt, X, Y) >= isNat#(Y) because U102# > isNat# and [18], by (Copy) 18] U102#*(tt, X, Y) >= Y because [4], by (Select) 19] U102#(tt, X, Y) >= activate#(Y) because [20], by (Star) 20] U102#*(tt, X, Y) >= activate#(Y) because U102# > activate# and [18], by (Copy) 21] U102#(tt, X, Y) >= activate#(X) because [22], by (Star) 22] U102#*(tt, X, Y) >= activate#(X) because U102# > activate# and [23], by (Copy) 23] U102#*(tt, X, Y) >= X because [3], by (Select) 24] U102#(tt, X, Y) >= activate#(Y) because [20], by (Star) 25] U103#(tt, X, Y) >= U104#(isNatKind, X, Y) because U103# = U104#, U103# in Mul, [26], [3] and [4], by (Fun) 26] tt >= isNatKind because tt = isNatKind, by (Fun) 27] U103#(tt, X, Y) >= isNatKind#(Y) because [28], by (Star) 28] U103#*(tt, X, Y) >= isNatKind#(Y) because U103# > isNatKind# and [29], by (Copy) 29] U103#*(tt, X, Y) >= Y because [4], by (Select) 30] U103#(tt, X, Y) >= activate#(Y) because [31], by (Star) 31] U103#*(tt, X, Y) >= activate#(Y) because U103# > activate# and [29], by (Copy) 32] U103#(tt, X, Y) >= activate#(X) because [33], by (Star) 33] U103#*(tt, X, Y) >= activate#(X) because U103# > activate# and [34], by (Copy) 34] U103#*(tt, X, Y) >= X because [3], by (Select) 35] U103#(tt, X, Y) >= activate#(Y) because [31], by (Star) 36] U104#(tt, X, Y) >= plus#(x(Y, X), Y) because [37], by (Star) 37] U104#*(tt, X, Y) >= plus#(x(Y, X), Y) because U104# > plus#, [38] and [39], by (Copy) 38] U104#*(tt, X, Y) >= x(Y, X) because U104# = x, U104# in Mul, [3] and [4], by (Stat) 39] U104#*(tt, X, Y) >= Y because [4], by (Select) 40] U104#(tt, X, Y) >= x#(Y, X) because [41], by (Star) 41] U104#*(tt, X, Y) >= x#(Y, X) because U104# = x#, U104# in Mul, [3] and [4], by (Stat) 42] U104#(tt, X, Y) >= activate#(Y) because [43], by (Star) 43] U104#*(tt, X, Y) >= activate#(Y) because U104# > activate# and [39], by (Copy) 44] U104#(tt, X, Y) >= activate#(X) because [45], by (Star) 45] U104#*(tt, X, Y) >= activate#(X) because U104# > activate# and [46], by (Copy) 46] U104#*(tt, X, Y) >= X because [3], by (Select) 47] U104#(tt, X, Y) >= activate#(Y) because [43], by (Star) 48] U11#(tt, X, Y) >= U12#(isNatKind, X, Y) because U11# = U12#, U11# in Mul, [49], [50] and [51], by (Fun) 49] tt >= isNatKind because tt = isNatKind, by (Fun) 50] X >= X by (Meta) 51] Y >= Y by (Meta) 52] U11#(tt, X, Y) >= isNatKind#(X) because [53], by (Star) 53] U11#*(tt, X, Y) >= isNatKind#(X) because U11# > isNatKind# and [54], by (Copy) 54] U11#*(tt, X, Y) >= X because [50], by (Select) 55] U11#(tt, X, Y) >= activate#(X) because [56], by (Star) 56] U11#*(tt, X, Y) >= activate#(X) because U11# > activate# and [54], by (Copy) 57] U11#(tt, X, Y) >= activate#(X) because [56], by (Star) 58] U11#(tt, X, Y) >= activate#(Y) because [59], by (Star) 59] U11#*(tt, X, Y) >= activate#(Y) because U11# > activate# and [60], by (Copy) 60] U11#*(tt, X, Y) >= Y because [51], by (Select) 61] U12#(tt, X, Y) >= U13#(isNatKind, X, Y) because U12# = U13#, U12# in Mul, [62], [50] and [51], by (Fun) 62] tt >= isNatKind because tt = isNatKind, by (Fun) 63] U12#(tt, X, Y) >= isNatKind#(Y) because [64], by (Star) 64] U12#*(tt, X, Y) >= isNatKind#(Y) because U12# > isNatKind# and [65], by (Copy) 65] U12#*(tt, X, Y) >= Y because [51], by (Select) 66] U12#(tt, X, Y) >= activate#(Y) because [67], by (Star) 67] U12#*(tt, X, Y) >= activate#(Y) because U12# > activate# and [65], by (Copy) 68] U12#(tt, X, Y) >= activate#(X) because [69], by (Star) 69] U12#*(tt, X, Y) >= activate#(X) because U12# > activate# and [70], by (Copy) 70] U12#*(tt, X, Y) >= X because [50], by (Select) 71] U12#(tt, X, Y) >= activate#(Y) because [67], by (Star) 72] U13#(tt, X, Y) >= U14#(isNatKind, X, Y) because U13# = U14#, U13# in Mul, [62], [50] and [51], by (Fun) 73] U13#(tt, X, Y) >= isNatKind#(Y) because [74], by (Star) 74] U13#*(tt, X, Y) >= isNatKind#(Y) because U13# > isNatKind# and [75], by (Copy) 75] U13#*(tt, X, Y) >= Y because [51], by (Select) 76] U13#(tt, X, Y) >= activate#(Y) because [77], by (Star) 77] U13#*(tt, X, Y) >= activate#(Y) because U13# > activate# and [75], by (Copy) 78] U13#(tt, X, Y) >= activate#(X) because [79], by (Star) 79] U13#*(tt, X, Y) >= activate#(X) because U13# > activate# and [80], by (Copy) 80] U13#*(tt, X, Y) >= X because [50], by (Select) 81] U13#(tt, X, Y) >= activate#(Y) because [77], by (Star) 82] U14#(tt, X, Y) >= U15#(isNat, Y) because [83], by (Star) 83] U14#*(tt, X, Y) >= U15#(isNat, Y) because U14# = U15#, U14# in Mul, [84] and [51], by (Stat) 84] tt >= isNat because tt = isNat, by (Fun) 85] U14#(tt, X, Y) >= isNat#(X) because [86], by (Star) 86] U14#*(tt, X, Y) >= isNat#(X) because U14# = isNat#, U14# in Mul and [50], by (Stat) 87] U14#(tt, X, Y) >= activate#(X) because [88], by (Star) 88] U14#*(tt, X, Y) >= activate#(X) because U14# > activate# and [89], by (Copy) 89] U14#*(tt, X, Y) >= X because [50], by (Select) 90] U14#(tt, X, Y) >= activate#(Y) because [91], by (Star) 91] U14#*(tt, X, Y) >= activate#(Y) because U14# > activate# and [92], by (Copy) 92] U14#*(tt, X, Y) >= Y because [51], by (Select) 93] U15#(tt, X) >= isNat#(X) because [94], by (Star) 94] U15#*(tt, X) >= isNat#(X) because U15# = isNat#, U15# in Mul and [51], by (Stat) 95] U15#(tt, X) >= activate#(X) because [96], by (Star) 96] U15#*(tt, X) >= activate#(X) because U15# > activate# and [97], by (Copy) 97] U15#*(tt, X) >= X because [51], by (Select) 98] U21#(X) >= U22#(X) because U21# = U22#, U21# in Mul and [50], by (Fun) 99] U21#(X) >= isNatKind#(X) because [100], by (Star) 100] U21#*(X) >= isNatKind#(X) because U21# > isNatKind# and [101], by (Copy) 101] U21#*(X) >= X because [50], by (Select) 102] U21#(X) >= activate#(X) because [103], by (Star) 103] U21#*(X) >= activate#(X) because U21# > activate# and [101], by (Copy) 104] U21#(X) >= activate#(X) because [103], by (Star) 105] U22#(X) >= isNat#(X) because U22# = isNat#, U22# in Mul and [50], by (Fun) 106] U22#(X) >= activate#(X) because [107], by (Star) 107] U22#*(X) >= activate#(X) because U22# > activate# and [108], by (Copy) 108] U22#*(X) >= X because [50], by (Select) 109] U31#(tt, X, Y) >= U32#(isNatKind, X, Y) because U31# = U32#, U31# in Mul, [49], [50] and [51], by (Fun) 110] U31#(tt, X, Y) >= isNatKind#(X) because [111], by (Star) 111] U31#*(tt, X, Y) >= isNatKind#(X) because U31# > isNatKind# and [112], by (Copy) 112] U31#*(tt, X, Y) >= X because [50], by (Select) 113] U31#(tt, X, Y) >= activate#(X) because [114], by (Star) 114] U31#*(tt, X, Y) >= activate#(X) because U31# > activate# and [112], by (Copy) 115] U31#(tt, X, Y) >= activate#(X) because [114], by (Star) 116] U31#(tt, X, Y) >= activate#(Y) because [117], by (Star) 117] U31#*(tt, X, Y) >= activate#(Y) because U31# > activate# and [118], by (Copy) 118] U31#*(tt, X, Y) >= Y because [51], by (Select) 119] U32#(tt, X, Y) >= U33#(isNatKind, X, Y) because [120], by (Star) 120] U32#*(tt, X, Y) >= U33#(isNatKind, X, Y) because U32# > U33#, [121], [122] and [123], by (Copy) 121] U32#*(tt, X, Y) >= isNatKind because U32# > isNatKind, by (Copy) 122] U32#*(tt, X, Y) >= X because [50], by (Select) 123] U32#*(tt, X, Y) >= Y because [51], by (Select) 124] U32#(tt, X, Y) >= isNatKind#(Y) because [125], by (Star) 125] U32#*(tt, X, Y) >= isNatKind#(Y) because U32# > isNatKind# and [123], by (Copy) 126] U32#(tt, X, Y) >= activate#(Y) because [127], by (Star) 127] U32#*(tt, X, Y) >= activate#(Y) because U32# > activate# and [123], by (Copy) 128] U32#(tt, X, Y) >= activate#(X) because [129], by (Star) 129] U32#*(tt, X, Y) >= activate#(X) because U32# > activate# and [122], by (Copy) 130] U32#(tt, X, Y) >= activate#(Y) because [127], by (Star) 131] U33#(tt, X, Y) >= U34#(isNatKind, X, Y) because [132], by (Star) 132] U33#*(tt, X, Y) >= U34#(isNatKind, X, Y) because U33# > U34#, [133], [134] and [135], by (Copy) 133] U33#*(tt, X, Y) >= isNatKind because [62], by (Select) 134] U33#*(tt, X, Y) >= X because [50], by (Select) 135] U33#*(tt, X, Y) >= Y because [51], by (Select) 136] U33#(tt, X, Y) >= isNatKind#(Y) because [137], by (Star) 137] U33#*(tt, X, Y) >= isNatKind#(Y) because U33# > isNatKind# and [135], by (Copy) 138] U33#(tt, X, Y) >= activate#(Y) because [139], by (Star) 139] U33#*(tt, X, Y) >= activate#(Y) because U33# > activate# and [135], by (Copy) 140] U33#(tt, X, Y) >= activate#(X) because [141], by (Star) 141] U33#*(tt, X, Y) >= activate#(X) because U33# > activate# and [134], by (Copy) 142] U33#(tt, X, Y) >= activate#(Y) because [139], by (Star) 143] U34#(tt, X, Y) >= U35#(isNat, Y) because [144], by (Star) 144] U34#*(tt, X, Y) >= U35#(isNat, Y) because U34# > U35#, [145] and [146], by (Copy) 145] U34#*(tt, X, Y) >= isNat because U34# > isNat, by (Copy) 146] U34#*(tt, X, Y) >= Y because [51], by (Select) 147] U34#(tt, X, Y) >= isNat#(X) because [148], by (Star) 148] U34#*(tt, X, Y) >= isNat#(X) because U34# > isNat# and [149], by (Copy) 149] U34#*(tt, X, Y) >= X because [50], by (Select) 150] U34#(tt, X, Y) >= activate#(X) because [151], by (Star) 151] U34#*(tt, X, Y) >= activate#(X) because U34# > activate# and [149], by (Copy) 152] U34#(tt, X, Y) >= activate#(Y) because [153], by (Star) 153] U34#*(tt, X, Y) >= activate#(Y) because U34# > activate# and [146], by (Copy) 154] U35#(tt, X) >= isNat#(X) because [155], by (Star) 155] U35#*(tt, X) >= isNat#(X) because U35# > isNat# and [156], by (Copy) 156] U35#*(tt, X) >= X because [51], by (Select) 157] U35#(tt, X) >= activate#(X) because [158], by (Star) 158] U35#*(tt, X) >= activate#(X) because U35# > activate# and [156], by (Copy) 159] U41#(X) >= isNatKind#(X) because U41# = isNatKind#, U41# in Mul and [51], by (Fun) 160] U41#(X) >= activate#(X) because [161], by (Star) 161] U41#*(X) >= activate#(X) because U41# > activate# and [162], by (Copy) 162] U41#*(X) >= X because [51], by (Select) 163] U61#(tt, X) >= isNatKind#(X) because [164], by (Star) 164] U61#*(tt, X) >= isNatKind#(X) because U61# > isNatKind# and [165], by (Copy) 165] U61#*(tt, X) >= X because [51], by (Select) 166] U61#(tt, X) > activate#(X) because [167], by definition 167] U61#*(tt, X) >= activate#(X) because U61# > activate# and [165], by (Copy) 168] U71#(tt, X) >= U72#(isNatKind, X) because U71# = U72#, U71# in Mul, [26] and [4], by (Fun) 169] U71#(tt, X) >= isNatKind#(X) because [170], by (Star) 170] U71#*(tt, X) >= isNatKind#(X) because U71# > isNatKind# and [171], by (Copy) 171] U71#*(tt, X) >= X because [4], by (Select) 172] U71#(tt, X) >= activate#(X) because [173], by (Star) 173] U71#*(tt, X) >= activate#(X) because U71# > activate# and [171], by (Copy) 174] U71#(tt, X) >= activate#(X) because [173], by (Star) 175] U72#(tt, X) >= activate#(X) because [176], by (Star) 176] U72#*(tt, X) >= activate#(X) because U72# > activate# and [177], by (Copy) 177] U72#*(tt, X) >= X because [4], by (Select) 178] U81#(tt, X, Y) >= U82#(isNatKind, X, Y) because U81# = U82#, U81# in Mul, [2], [3] and [4], by (Fun) 179] U81#(tt, X, Y) >= isNatKind#(X) because [180], by (Star) 180] U81#*(tt, X, Y) >= isNatKind#(X) because U81# > isNatKind# and [181], by (Copy) 181] U81#*(tt, X, Y) >= X because [3], by (Select) 182] U81#(tt, X, Y) >= activate#(X) because [183], by (Star) 183] U81#*(tt, X, Y) >= activate#(X) because U81# > activate# and [181], by (Copy) 184] U81#(tt, X, Y) >= activate#(X) because [183], by (Star) 185] U81#(tt, X, Y) >= activate#(Y) because [186], by (Star) 186] U81#*(tt, X, Y) >= activate#(Y) because U81# > activate# and [187], by (Copy) 187] U81#*(tt, X, Y) >= Y because [4], by (Select) 188] U82#(tt, X, Y) >= U83#(isNat, X, Y) because U82# = U83#, U82# in Mul, [15], [3] and [4], by (Fun) 189] U82#(tt, X, Y) >= isNat#(Y) because [190], by (Star) 190] U82#*(tt, X, Y) >= isNat#(Y) because U82# > isNat# and [191], by (Copy) 191] U82#*(tt, X, Y) >= Y because [4], by (Select) 192] U82#(tt, X, Y) >= activate#(Y) because [193], by (Star) 193] U82#*(tt, X, Y) >= activate#(Y) because U82# > activate# and [191], by (Copy) 194] U82#(tt, X, Y) >= activate#(X) because [195], by (Star) 195] U82#*(tt, X, Y) >= activate#(X) because U82# > activate# and [196], by (Copy) 196] U82#*(tt, X, Y) >= X because [3], by (Select) 197] U82#(tt, X, Y) >= activate#(Y) because [193], by (Star) 198] U83#(tt, X, Y) >= U84#(isNatKind, X, Y) because U83# = U84#, U83# in Mul, [26], [3] and [4], by (Fun) 199] U83#(tt, X, Y) >= isNatKind#(Y) because [200], by (Star) 200] U83#*(tt, X, Y) >= isNatKind#(Y) because U83# > isNatKind# and [201], by (Copy) 201] U83#*(tt, X, Y) >= Y because [4], by (Select) 202] U83#(tt, X, Y) >= activate#(Y) because [203], by (Star) 203] U83#*(tt, X, Y) >= activate#(Y) because U83# > activate# and [201], by (Copy) 204] U83#(tt, X, Y) >= activate#(X) because [205], by (Star) 205] U83#*(tt, X, Y) >= activate#(X) because U83# > activate# and [206], by (Copy) 206] U83#*(tt, X, Y) >= X because [3], by (Select) 207] U83#(tt, X, Y) >= activate#(Y) because [203], by (Star) 208] U84#(tt, X, Y) >= plus#(Y, X) because [209], by (Star) 209] U84#*(tt, X, Y) >= plus#(Y, X) because U84# = plus#, U84# in Mul, [3] and [4], by (Stat) 210] U84#(tt, X, Y) >= activate#(Y) because [211], by (Star) 211] U84#*(tt, X, Y) >= activate#(Y) because U84# > activate# and [212], by (Copy) 212] U84#*(tt, X, Y) >= Y because [4], by (Select) 213] U84#(tt, X, Y) >= activate#(X) because [214], by (Star) 214] U84#*(tt, X, Y) >= activate#(X) because U84# > activate# and [215], by (Copy) 215] U84#*(tt, X, Y) >= X because [3], by (Select) 216] U91#(tt, X) >= isNatKind#(X) because [217], by (Star) 217] U91#*(tt, X) >= isNatKind#(X) because U91# > isNatKind# and [218], by (Copy) 218] U91#*(tt, X) >= X because [4], by (Select) 219] U91#(tt, X) >= activate#(X) because [220], by (Star) 220] U91#*(tt, X) >= activate#(X) because U91# > activate# and [218], by (Copy) 221] isNat#(n!6220!6220plus(X, Y)) > U11#(isNatKind, X, Y) because [222], by definition 222] isNat#*(n!6220!6220plus(X, Y)) >= U11#(isNatKind, X, Y) because isNat# = U11#, isNat# in Mul, [223], [225] and [227], by (Stat) 223] n!6220!6220plus(X, Y) > isNatKind because [224], by definition 224] n!6220!6220plus*(X, Y) >= isNatKind because n!6220!6220plus > isNatKind, by (Copy) 225] n!6220!6220plus(X, Y) > X because [226], by definition 226] n!6220!6220plus*(X, Y) >= X because [50], by (Select) 227] n!6220!6220plus(X, Y) > Y because [228], by definition 228] n!6220!6220plus*(X, Y) >= Y because [51], by (Select) 229] isNat#(n!6220!6220plus(X, Y)) >= isNatKind#(X) because [230], by (Star) 230] isNat#*(n!6220!6220plus(X, Y)) >= isNatKind#(X) because [231], by (Select) 231] n!6220!6220plus(X, Y) >= isNatKind#(X) because [232], by (Star) 232] n!6220!6220plus*(X, Y) >= isNatKind#(X) because n!6220!6220plus > isNatKind# and [226], by (Copy) 233] isNat#(n!6220!6220plus(X, Y)) >= activate#(X) because [234], by (Star) 234] isNat#*(n!6220!6220plus(X, Y)) >= activate#(X) because [235], by (Select) 235] n!6220!6220plus(X, Y) >= activate#(X) because [236], by (Star) 236] n!6220!6220plus*(X, Y) >= activate#(X) because n!6220!6220plus > activate# and [226], by (Copy) 237] isNat#(n!6220!6220plus(X, Y)) >= activate#(X) because [234], by (Star) 238] isNat#(n!6220!6220plus(X, Y)) >= activate#(Y) because [239], by (Star) 239] isNat#*(n!6220!6220plus(X, Y)) >= activate#(Y) because [240], by (Select) 240] n!6220!6220plus(X, Y) >= activate#(Y) because [241], by (Star) 241] n!6220!6220plus*(X, Y) >= activate#(Y) because n!6220!6220plus > activate# and [228], by (Copy) 242] isNat#(n!6220!6220s(X)) >= U21#(X) because isNat# = U21#, isNat# in Mul and [243], by (Fun) 243] n!6220!6220s(X) >= X because [244], by (Star) 244] n!6220!6220s*(X) >= X because [50], by (Select) 245] isNat#(n!6220!6220s(X)) >= isNatKind#(X) because [246], by (Star) 246] isNat#*(n!6220!6220s(X)) >= isNatKind#(X) because isNat# > isNatKind# and [247], by (Copy) 247] isNat#*(n!6220!6220s(X)) >= X because [243], by (Select) 248] isNat#(n!6220!6220s(X)) >= activate#(X) because [249], by (Star) 249] isNat#*(n!6220!6220s(X)) >= activate#(X) because isNat# > activate# and [247], by (Copy) 250] isNat#(n!6220!6220s(X)) >= activate#(X) because [249], by (Star) 251] isNat#(n!6220!6220x(X, Y)) >= U31#(isNatKind, X, Y) because [252], by (Star) 252] isNat#*(n!6220!6220x(X, Y)) >= U31#(isNatKind, X, Y) because [253], by (Select) 253] n!6220!6220x(X, Y) >= U31#(isNatKind, X, Y) because [254], by (Star) 254] n!6220!6220x*(X, Y) >= U31#(isNatKind, X, Y) because n!6220!6220x > U31#, [255], [256] and [257], by (Copy) 255] n!6220!6220x*(X, Y) >= isNatKind because n!6220!6220x > isNatKind, by (Copy) 256] n!6220!6220x*(X, Y) >= X because [50], by (Select) 257] n!6220!6220x*(X, Y) >= Y because [51], by (Select) 258] isNat#(n!6220!6220x(X, Y)) >= isNatKind#(X) because [259], by (Star) 259] isNat#*(n!6220!6220x(X, Y)) >= isNatKind#(X) because [260], by (Select) 260] n!6220!6220x(X, Y) >= isNatKind#(X) because [261], by (Star) 261] n!6220!6220x*(X, Y) >= isNatKind#(X) because n!6220!6220x > isNatKind# and [256], by (Copy) 262] isNat#(n!6220!6220x(X, Y)) >= activate#(X) because [263], by (Star) 263] isNat#*(n!6220!6220x(X, Y)) >= activate#(X) because isNat# > activate# and [264], by (Copy) 264] isNat#*(n!6220!6220x(X, Y)) >= X because [265], by (Select) 265] n!6220!6220x(X, Y) >= X because [256], by (Star) 266] isNat#(n!6220!6220x(X, Y)) >= activate#(X) because [263], by (Star) 267] isNat#(n!6220!6220x(X, Y)) >= activate#(Y) because [268], by (Star) 268] isNat#*(n!6220!6220x(X, Y)) >= activate#(Y) because [269], by (Select) 269] n!6220!6220x(X, Y) >= activate#(Y) because [270], by (Star) 270] n!6220!6220x*(X, Y) >= activate#(Y) because n!6220!6220x > activate# and [257], by (Copy) 271] isNatKind#(n!6220!6220plus(X, Y)) > U41#(Y) because [272], by definition 272] isNatKind#*(n!6220!6220plus(X, Y)) >= U41#(Y) because isNatKind# = U41#, isNatKind# in Mul and [227], by (Stat) 273] isNatKind#(n!6220!6220plus(X, Y)) >= isNatKind#(X) because isNatKind# in Mul and [274], by (Fun) 274] n!6220!6220plus(X, Y) >= X because [226], by (Star) 275] isNatKind#(n!6220!6220plus(X, Y)) >= activate#(X) because [276], by (Star) 276] isNatKind#*(n!6220!6220plus(X, Y)) >= activate#(X) because isNatKind# > activate# and [277], by (Copy) 277] isNatKind#*(n!6220!6220plus(X, Y)) >= X because [274], by (Select) 278] isNatKind#(n!6220!6220plus(X, Y)) >= activate#(Y) because [279], by (Star) 279] isNatKind#*(n!6220!6220plus(X, Y)) >= activate#(Y) because [240], by (Select) 280] isNatKind#(n!6220!6220s(X)) >= isNatKind#(X) because isNatKind# in Mul and [243], by (Fun) 281] isNatKind#(n!6220!6220s(X)) >= activate#(X) because [282], by (Star) 282] isNatKind#*(n!6220!6220s(X)) >= activate#(X) because isNatKind# > activate# and [283], by (Copy) 283] isNatKind#*(n!6220!6220s(X)) >= X because [243], by (Select) 284] isNatKind#(n!6220!6220x(X, Y)) >= U61#(isNatKind, Y) because [285], by (Star) 285] isNatKind#*(n!6220!6220x(X, Y)) >= U61#(isNatKind, Y) because [286], by (Select) 286] n!6220!6220x(X, Y) >= U61#(isNatKind, Y) because [287], by (Star) 287] n!6220!6220x*(X, Y) >= U61#(isNatKind, Y) because n!6220!6220x > U61#, [255] and [257], by (Copy) 288] isNatKind#(n!6220!6220x(X, Y)) >= isNatKind#(X) because isNatKind# in Mul and [289], by (Fun) 289] n!6220!6220x(X, Y) >= X because [256], by (Star) 290] isNatKind#(n!6220!6220x(X, Y)) >= activate#(X) because [291], by (Star) 291] isNatKind#*(n!6220!6220x(X, Y)) >= activate#(X) because isNatKind# > activate# and [292], by (Copy) 292] isNatKind#*(n!6220!6220x(X, Y)) >= X because [289], by (Select) 293] isNatKind#(n!6220!6220x(X, Y)) >= activate#(Y) because [294], by (Star) 294] isNatKind#*(n!6220!6220x(X, Y)) >= activate#(Y) because [269], by (Select) 295] plus#(X, _|_) > U71#(isNat, X) because [296], by definition 296] plus#*(X, _|_) >= U71#(isNat, X) because plus# > U71#, [297] and [298], by (Copy) 297] plus#*(X, _|_) >= isNat because plus# > isNat, by (Copy) 298] plus#*(X, _|_) >= X because [4], by (Select) 299] plus#(X, _|_) >= isNat#(X) because [300], by (Star) 300] plus#*(X, _|_) >= isNat#(X) because plus# > isNat# and [298], by (Copy) 301] plus#(X, s(Y)) > U81#(isNat, Y, X) because [302], by definition 302] plus#*(X, s(Y)) >= U81#(isNat, Y, X) because plus# = U81#, plus# in Mul, [4], [303] and [305], by (Stat) 303] s(Y) > isNat because [304], by definition 304] s*(Y) >= isNat because s > isNat, by (Copy) 305] s(Y) > Y because [306], by definition 306] s*(Y) >= Y because [3], by (Select) 307] plus#(X, s(Y)) >= isNat#(Y) because [308], by (Star) 308] plus#*(X, s(Y)) >= isNat#(Y) because plus# > isNat# and [309], by (Copy) 309] plus#*(X, s(Y)) >= Y because [310], by (Select) 310] s(Y) >= Y because [306], by (Star) 311] x#(X, _|_) > U91#(isNat, X) because [312], by definition 312] x#*(X, _|_) >= U91#(isNat, X) because x# > U91#, [313] and [314], by (Copy) 313] x#*(X, _|_) >= isNat because x# > isNat, by (Copy) 314] x#*(X, _|_) >= X because [4], by (Select) 315] x#(X, _|_) >= isNat#(X) because [316], by (Star) 316] x#*(X, _|_) >= isNat#(X) because x# > isNat# and [314], by (Copy) 317] x#(X, s(Y)) > U101#(isNat, Y, X) because [318], by definition 318] x#*(X, s(Y)) >= U101#(isNat, Y, X) because x# = U101#, x# in Mul, [4], [303] and [305], by (Stat) 319] x#(X, s(Y)) >= isNat#(Y) because [320], by (Star) 320] x#*(X, s(Y)) >= isNat#(Y) because x# > isNat# and [321], by (Copy) 321] x#*(X, s(Y)) >= Y because [310], by (Select) 322] activate#(n!6220!6220plus(X, Y)) >= plus#(X, Y) because [323], by (Star) 323] activate#*(n!6220!6220plus(X, Y)) >= plus#(X, Y) because [324], by (Select) 324] n!6220!6220plus(X, Y) >= plus#(X, Y) because n!6220!6220plus = plus#, n!6220!6220plus in Mul, [325] and [326], by (Fun) 325] X >= X by (Meta) 326] Y >= Y by (Meta) 327] activate#(n!6220!6220plus(X, Y)) >= activate#(X) because activate# in Mul and [328], by (Fun) 328] n!6220!6220plus(X, Y) >= X because [329], by (Star) 329] n!6220!6220plus*(X, Y) >= X because [325], by (Select) 330] activate#(n!6220!6220plus(X, Y)) >= activate#(Y) because [331], by (Star) 331] activate#*(n!6220!6220plus(X, Y)) >= activate#(Y) because activate# in Mul and [332], by (Stat) 332] n!6220!6220plus(X, Y) > Y because [333], by definition 333] n!6220!6220plus*(X, Y) >= Y because [326], by (Select) 334] activate#(n!6220!6220s(X)) >= activate#(X) because [335], by (Star) 335] activate#*(n!6220!6220s(X)) >= activate#(X) because activate# in Mul and [336], by (Stat) 336] n!6220!6220s(X) > X because [337], by definition 337] n!6220!6220s*(X) >= X because [338], by (Select) 338] X >= X by (Meta) 339] activate#(n!6220!6220x(X, Y)) >= x#(X, Y) because [340], by (Star) 340] activate#*(n!6220!6220x(X, Y)) >= x#(X, Y) because [341], by (Select) 341] n!6220!6220x(X, Y) >= x#(X, Y) because n!6220!6220x = x#, n!6220!6220x in Mul, [325] and [326], by (Fun) 342] activate#(n!6220!6220x(X, Y)) >= activate#(X) because [343], by (Star) 343] activate#*(n!6220!6220x(X, Y)) >= activate#(X) because [344], by (Select) 344] n!6220!6220x(X, Y) >= activate#(X) because [345], by (Star) 345] n!6220!6220x*(X, Y) >= activate#(X) because n!6220!6220x > activate# and [346], by (Copy) 346] n!6220!6220x*(X, Y) >= X because [325], by (Select) 347] activate#(n!6220!6220x(X, Y)) >= activate#(Y) because [348], by (Star) 348] activate#*(n!6220!6220x(X, Y)) >= activate#(Y) because [349], by (Select) 349] n!6220!6220x(X, Y) >= activate#(Y) because [350], by (Star) 350] n!6220!6220x*(X, Y) >= activate#(Y) because n!6220!6220x > activate# and [351], by (Copy) 351] n!6220!6220x*(X, Y) >= Y because [326], by (Select) 352] U101(tt, X, Y) >= U102(isNatKind, X, Y) because U101 = U102, U101 in Mul, [2], [3] and [4], by (Fun) 353] U102(tt, X, Y) >= U103(isNat, X, Y) because U102 = U103, U102 in Mul, [15], [3] and [4], by (Fun) 354] U103(tt, X, Y) >= U104(isNatKind, X, Y) because U103 = U104, U103 in Mul, [26], [3] and [4], by (Fun) 355] U104(tt, X, Y) >= plus(x(Y, X), Y) because [356], by (Star) 356] U104*(tt, X, Y) >= plus(x(Y, X), Y) because U104 > plus, [357] and [358], by (Copy) 357] U104*(tt, X, Y) >= x(Y, X) because U104 = x, U104 in Mul, [3] and [4], by (Stat) 358] U104*(tt, X, Y) >= Y because [4], by (Select) 359] tt >= U12 because tt = U12, by (Fun) 360] U12 >= U13 because U12 = U13 and U12 in Mul, by (Fun) 361] U13 >= isNatKind because U13 = isNatKind and U13 in Mul, by (Fun) 362] tt >= isNat because tt = isNat, by (Fun) 363] tt >= isNat because tt = isNat, by (Fun) 364] tt >= tt by (Fun) 365] tt >= isNatKind because tt = isNatKind, by (Fun) 366] tt >= isNat because tt = isNat, by (Fun) 367] tt >= tt by (Fun) 368] U31 >= U32 because U31 = U32 and U31 in Mul, by (Fun) 369] U32 >= U33 because U32 = U33 and U32 in Mul, by (Fun) 370] U33 >= isNatKind because U33 = isNatKind and U33 in Mul, by (Fun) 371] tt >= isNat because tt = isNat, by (Fun) 372] tt >= isNat because tt = isNat, by (Fun) 373] tt >= tt by (Fun) 374] tt >= isNatKind because tt = isNatKind, by (Fun) 375] tt >= tt by (Fun) 376] tt >= tt by (Fun) 377] U61 >= isNatKind because U61 = isNatKind and U61 in Mul, by (Fun) 378] tt >= tt by (Fun) 379] U71(tt, X) >= X because [380], by (Star) 380] U71*(tt, X) >= X because [4], by (Select) 381] X >= X by (Meta) 382] U81(tt, X, Y) >= U82(isNatKind, X, Y) because U81 = U82, U81 in Mul, [2], [3] and [4], by (Fun) 383] U82(tt, X, Y) >= U83(isNat, X, Y) because U82 = U83, U82 in Mul, [15], [3] and [4], by (Fun) 384] U83(tt, X, Y) >= U84(isNatKind, X, Y) because U83 = U84, U83 in Mul, [26], [3] and [4], by (Fun) 385] U84(tt, X, Y) >= s(plus(Y, X)) because [386], by (Star) 386] U84*(tt, X, Y) >= s(plus(Y, X)) because U84 > s and [387], by (Copy) 387] U84*(tt, X, Y) >= plus(Y, X) because U84 = plus, U84 in Mul, [3] and [4], by (Stat) 388] _|_ >= _|_ by (Bot) 389] _|_ >= _|_ by (Bot) 390] isNat >= tt because isNat = tt, by (Fun) 391] isNat >= isNatKind because isNat = isNatKind and isNat in Mul, by (Fun) 392] isNat >= isNatKind because isNat = isNatKind and isNat in Mul, by (Fun) 393] isNat >= U31 because isNat = U31 and isNat in Mul, by (Fun) 394] isNatKind >= tt because isNatKind = tt, by (Fun) 395] isNatKind >= isNatKind because isNatKind in Mul, by (Fun) 396] isNatKind >= isNatKind because isNatKind in Mul, by (Fun) 397] isNatKind >= U61 because isNatKind = U61 and isNatKind in Mul, by (Fun) 398] plus(X, _|_) >= U71(isNat, X) because [399], by (Star) 399] plus*(X, _|_) >= U71(isNat, X) because plus > U71, [400] and [401], by (Copy) 400] plus*(X, _|_) >= isNat because plus > isNat, by (Copy) 401] plus*(X, _|_) >= X because [381], by (Select) 402] plus(X, s(Y)) >= U81(isNat, Y, X) because [403], by (Star) 403] plus*(X, s(Y)) >= U81(isNat, Y, X) because plus = U81, plus in Mul, [4], [303] and [305], by (Stat) 404] x(X, _|_) >= _|_ by (Bot) 405] x(X, s(Y)) >= U101(isNat, Y, X) because [406], by (Star) 406] x*(X, s(Y)) >= U101(isNat, Y, X) because x = U101, x in Mul, [4], [303] and [305], by (Stat) 407] _|_ >= _|_ by (Bot) 408] plus(X, Y) >= n!6220!6220plus(X, Y) because plus = n!6220!6220plus, plus in Mul, [325] and [326], by (Fun) 409] s(X) >= n!6220!6220s(X) because s = n!6220!6220s, s in Mul and [410], by (Fun) 410] X >= X by (Meta) 411] x(X, Y) >= n!6220!6220x(X, Y) because x = n!6220!6220x, x in Mul, [325] and [326], by (Fun) 412] _|_ >= _|_ by (Bot) 413] n!6220!6220plus(X, Y) >= plus(X, Y) because n!6220!6220plus = plus, n!6220!6220plus in Mul, [325] and [326], by (Fun) 414] n!6220!6220s(X) >= s(X) because n!6220!6220s = s, n!6220!6220s in Mul and [415], by (Fun) 415] X >= X by (Meta) 416] n!6220!6220x(X, Y) >= x(X, Y) because n!6220!6220x = x, n!6220!6220x in Mul, [325] and [326], by (Fun) 417] X >= X by (Meta) By the observations in [Kop12, Sec. 6.6], this reduction pair suffices; we may thus replace the dependency pair problem (P_1, R_0, minimal, formative) by (P_2, R_0, minimal, formative), where P_2 consists of: U101#(tt, X, Y) =#> U102#(isNatKind(activate(X)), activate(X), activate(Y)) U101#(tt, X, Y) =#> isNatKind#(activate(X)) U101#(tt, X, Y) =#> activate#(X) U101#(tt, X, Y) =#> activate#(X) U101#(tt, X, Y) =#> activate#(Y) U102#(tt, X, Y) =#> U103#(isNat(activate(Y)), activate(X), activate(Y)) U102#(tt, X, Y) =#> isNat#(activate(Y)) U102#(tt, X, Y) =#> activate#(Y) U102#(tt, X, Y) =#> activate#(X) U102#(tt, X, Y) =#> activate#(Y) U103#(tt, X, Y) =#> U104#(isNatKind(activate(Y)), activate(X), activate(Y)) U103#(tt, X, Y) =#> isNatKind#(activate(Y)) U103#(tt, X, Y) =#> activate#(Y) U103#(tt, X, Y) =#> activate#(X) U103#(tt, X, Y) =#> activate#(Y) U104#(tt, X, Y) =#> plus#(x(activate(Y), activate(X)), activate(Y)) U104#(tt, X, Y) =#> x#(activate(Y), activate(X)) U104#(tt, X, Y) =#> activate#(Y) U104#(tt, X, Y) =#> activate#(X) U104#(tt, X, Y) =#> activate#(Y) U11#(tt, X, Y) =#> U12#(isNatKind(activate(X)), activate(X), activate(Y)) U11#(tt, X, Y) =#> isNatKind#(activate(X)) U11#(tt, X, Y) =#> activate#(X) U11#(tt, X, Y) =#> activate#(X) U11#(tt, X, Y) =#> activate#(Y) U12#(tt, X, Y) =#> U13#(isNatKind(activate(Y)), activate(X), activate(Y)) U12#(tt, X, Y) =#> isNatKind#(activate(Y)) U12#(tt, X, Y) =#> activate#(Y) U12#(tt, X, Y) =#> activate#(X) U12#(tt, X, Y) =#> activate#(Y) U13#(tt, X, Y) =#> U14#(isNatKind(activate(Y)), activate(X), activate(Y)) U13#(tt, X, Y) =#> isNatKind#(activate(Y)) U13#(tt, X, Y) =#> activate#(Y) U13#(tt, X, Y) =#> activate#(X) U13#(tt, X, Y) =#> activate#(Y) U14#(tt, X, Y) =#> U15#(isNat(activate(X)), activate(Y)) U14#(tt, X, Y) =#> isNat#(activate(X)) U14#(tt, X, Y) =#> activate#(X) U14#(tt, X, Y) =#> activate#(Y) U15#(tt, X) =#> isNat#(activate(X)) U15#(tt, X) =#> activate#(X) U21#(tt, X) =#> U22#(isNatKind(activate(X)), activate(X)) U21#(tt, X) =#> isNatKind#(activate(X)) U21#(tt, X) =#> activate#(X) U21#(tt, X) =#> activate#(X) U22#(tt, X) =#> isNat#(activate(X)) U22#(tt, X) =#> activate#(X) U31#(tt, X, Y) =#> U32#(isNatKind(activate(X)), activate(X), activate(Y)) U31#(tt, X, Y) =#> isNatKind#(activate(X)) U31#(tt, X, Y) =#> activate#(X) U31#(tt, X, Y) =#> activate#(X) U31#(tt, X, Y) =#> activate#(Y) U32#(tt, X, Y) =#> U33#(isNatKind(activate(Y)), activate(X), activate(Y)) U32#(tt, X, Y) =#> isNatKind#(activate(Y)) U32#(tt, X, Y) =#> activate#(Y) U32#(tt, X, Y) =#> activate#(X) U32#(tt, X, Y) =#> activate#(Y) U33#(tt, X, Y) =#> U34#(isNatKind(activate(Y)), activate(X), activate(Y)) U33#(tt, X, Y) =#> isNatKind#(activate(Y)) U33#(tt, X, Y) =#> activate#(Y) U33#(tt, X, Y) =#> activate#(X) U33#(tt, X, Y) =#> activate#(Y) U34#(tt, X, Y) =#> U35#(isNat(activate(X)), activate(Y)) U34#(tt, X, Y) =#> isNat#(activate(X)) U34#(tt, X, Y) =#> activate#(X) U34#(tt, X, Y) =#> activate#(Y) U35#(tt, X) =#> isNat#(activate(X)) U35#(tt, X) =#> activate#(X) U41#(tt, X) =#> isNatKind#(activate(X)) U41#(tt, X) =#> activate#(X) U61#(tt, X) =#> isNatKind#(activate(X)) U71#(tt, X) =#> U72#(isNatKind(activate(X)), activate(X)) U71#(tt, X) =#> isNatKind#(activate(X)) U71#(tt, X) =#> activate#(X) U71#(tt, X) =#> activate#(X) U72#(tt, X) =#> activate#(X) U81#(tt, X, Y) =#> U82#(isNatKind(activate(X)), activate(X), activate(Y)) U81#(tt, X, Y) =#> isNatKind#(activate(X)) U81#(tt, X, Y) =#> activate#(X) U81#(tt, X, Y) =#> activate#(X) U81#(tt, X, Y) =#> activate#(Y) U82#(tt, X, Y) =#> U83#(isNat(activate(Y)), activate(X), activate(Y)) U82#(tt, X, Y) =#> isNat#(activate(Y)) U82#(tt, X, Y) =#> activate#(Y) U82#(tt, X, Y) =#> activate#(X) U82#(tt, X, Y) =#> activate#(Y) U83#(tt, X, Y) =#> U84#(isNatKind(activate(Y)), activate(X), activate(Y)) U83#(tt, X, Y) =#> isNatKind#(activate(Y)) U83#(tt, X, Y) =#> activate#(Y) U83#(tt, X, Y) =#> activate#(X) U83#(tt, X, Y) =#> activate#(Y) U84#(tt, X, Y) =#> plus#(activate(Y), activate(X)) U84#(tt, X, Y) =#> activate#(Y) U84#(tt, X, Y) =#> activate#(X) U91#(tt, X) =#> isNatKind#(activate(X)) U91#(tt, X) =#> activate#(X) isNat#(n!6220!6220plus(X, Y)) =#> isNatKind#(activate(X)) isNat#(n!6220!6220plus(X, Y)) =#> activate#(X) isNat#(n!6220!6220plus(X, Y)) =#> activate#(X) isNat#(n!6220!6220plus(X, Y)) =#> activate#(Y) isNat#(n!6220!6220s(X)) =#> U21#(isNatKind(activate(X)), activate(X)) isNat#(n!6220!6220s(X)) =#> isNatKind#(activate(X)) isNat#(n!6220!6220s(X)) =#> activate#(X) isNat#(n!6220!6220s(X)) =#> activate#(X) isNat#(n!6220!6220x(X, Y)) =#> U31#(isNatKind(activate(X)), activate(X), activate(Y)) isNat#(n!6220!6220x(X, Y)) =#> isNatKind#(activate(X)) isNat#(n!6220!6220x(X, Y)) =#> activate#(X) isNat#(n!6220!6220x(X, Y)) =#> activate#(X) isNat#(n!6220!6220x(X, Y)) =#> activate#(Y) isNatKind#(n!6220!6220plus(X, Y)) =#> isNatKind#(activate(X)) isNatKind#(n!6220!6220plus(X, Y)) =#> activate#(X) isNatKind#(n!6220!6220plus(X, Y)) =#> activate#(Y) isNatKind#(n!6220!6220s(X)) =#> isNatKind#(activate(X)) isNatKind#(n!6220!6220s(X)) =#> activate#(X) isNatKind#(n!6220!6220x(X, Y)) =#> U61#(isNatKind(activate(X)), activate(Y)) isNatKind#(n!6220!6220x(X, Y)) =#> isNatKind#(activate(X)) isNatKind#(n!6220!6220x(X, Y)) =#> activate#(X) isNatKind#(n!6220!6220x(X, Y)) =#> activate#(Y) plus#(X, 0) =#> isNat#(X) plus#(X, s(Y)) =#> isNat#(Y) x#(X, 0) =#> isNat#(X) x#(X, s(Y)) =#> isNat#(Y) activate#(n!6220!6220plus(X, Y)) =#> plus#(activate(X), activate(Y)) activate#(n!6220!6220plus(X, Y)) =#> activate#(X) activate#(n!6220!6220plus(X, Y)) =#> activate#(Y) activate#(n!6220!6220s(X)) =#> activate#(X) activate#(n!6220!6220x(X, Y)) =#> x#(activate(X), activate(Y)) activate#(n!6220!6220x(X, Y)) =#> activate#(X) activate#(n!6220!6220x(X, Y)) =#> activate#(Y) Thus, the original system is terminating if (P_2, R_0, minimal, formative) is finite. We consider the dependency pair problem (P_2, R_0, minimal, formative). We place the elements of P in a dependency graph approximation G (see e.g. [Kop12, Thm. 7.27, 7.29], as follows: * 0 : 5, 6, 7, 8, 9 * 1 : 109, 110, 111, 112, 113, 114, 115, 116, 117 * 2 : 122, 123, 124, 125, 126, 127, 128 * 3 : 122, 123, 124, 125, 126, 127, 128 * 4 : 122, 123, 124, 125, 126, 127, 128 * 5 : 10, 11, 12, 13, 14 * 6 : 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108 * 7 : 122, 123, 124, 125, 126, 127, 128 * 8 : 122, 123, 124, 125, 126, 127, 128 * 9 : 122, 123, 124, 125, 126, 127, 128 * 10 : 15, 16, 17, 18, 19 * 11 : 109, 110, 111, 112, 113, 114, 115, 116, 117 * 12 : 122, 123, 124, 125, 126, 127, 128 * 13 : 122, 123, 124, 125, 126, 127, 128 * 14 : 122, 123, 124, 125, 126, 127, 128 * 15 : 118, 119 * 16 : 120, 121 * 17 : 122, 123, 124, 125, 126, 127, 128 * 18 : 122, 123, 124, 125, 126, 127, 128 * 19 : 122, 123, 124, 125, 126, 127, 128 * 20 : 25, 26, 27, 28, 29 * 21 : 109, 110, 111, 112, 113, 114, 115, 116, 117 * 22 : 122, 123, 124, 125, 126, 127, 128 * 23 : 122, 123, 124, 125, 126, 127, 128 * 24 : 122, 123, 124, 125, 126, 127, 128 * 25 : 30, 31, 32, 33, 34 * 26 : 109, 110, 111, 112, 113, 114, 115, 116, 117 * 27 : 122, 123, 124, 125, 126, 127, 128 * 28 : 122, 123, 124, 125, 126, 127, 128 * 29 : 122, 123, 124, 125, 126, 127, 128 * 30 : 35, 36, 37, 38 * 31 : 109, 110, 111, 112, 113, 114, 115, 116, 117 * 32 : 122, 123, 124, 125, 126, 127, 128 * 33 : 122, 123, 124, 125, 126, 127, 128 * 34 : 122, 123, 124, 125, 126, 127, 128 * 35 : 39, 40 * 36 : 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108 * 37 : 122, 123, 124, 125, 126, 127, 128 * 38 : 122, 123, 124, 125, 126, 127, 128 * 39 : 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108 * 40 : 122, 123, 124, 125, 126, 127, 128 * 41 : 45, 46 * 42 : 109, 110, 111, 112, 113, 114, 115, 116, 117 * 43 : 122, 123, 124, 125, 126, 127, 128 * 44 : 122, 123, 124, 125, 126, 127, 128 * 45 : 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108 * 46 : 122, 123, 124, 125, 126, 127, 128 * 47 : 52, 53, 54, 55, 56 * 48 : 109, 110, 111, 112, 113, 114, 115, 116, 117 * 49 : 122, 123, 124, 125, 126, 127, 128 * 50 : 122, 123, 124, 125, 126, 127, 128 * 51 : 122, 123, 124, 125, 126, 127, 128 * 52 : 57, 58, 59, 60, 61 * 53 : 109, 110, 111, 112, 113, 114, 115, 116, 117 * 54 : 122, 123, 124, 125, 126, 127, 128 * 55 : 122, 123, 124, 125, 126, 127, 128 * 56 : 122, 123, 124, 125, 126, 127, 128 * 57 : 62, 63, 64, 65 * 58 : 109, 110, 111, 112, 113, 114, 115, 116, 117 * 59 : 122, 123, 124, 125, 126, 127, 128 * 60 : 122, 123, 124, 125, 126, 127, 128 * 61 : 122, 123, 124, 125, 126, 127, 128 * 62 : 66, 67 * 63 : 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108 * 64 : 122, 123, 124, 125, 126, 127, 128 * 65 : 122, 123, 124, 125, 126, 127, 128 * 66 : 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108 * 67 : 122, 123, 124, 125, 126, 127, 128 * 68 : 109, 110, 111, 112, 113, 114, 115, 116, 117 * 69 : 122, 123, 124, 125, 126, 127, 128 * 70 : 109, 110, 111, 112, 113, 114, 115, 116, 117 * 71 : 75 * 72 : 109, 110, 111, 112, 113, 114, 115, 116, 117 * 73 : 122, 123, 124, 125, 126, 127, 128 * 74 : 122, 123, 124, 125, 126, 127, 128 * 75 : 122, 123, 124, 125, 126, 127, 128 * 76 : 81, 82, 83, 84, 85 * 77 : 109, 110, 111, 112, 113, 114, 115, 116, 117 * 78 : 122, 123, 124, 125, 126, 127, 128 * 79 : 122, 123, 124, 125, 126, 127, 128 * 80 : 122, 123, 124, 125, 126, 127, 128 * 81 : 86, 87, 88, 89, 90 * 82 : 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108 * 83 : 122, 123, 124, 125, 126, 127, 128 * 84 : 122, 123, 124, 125, 126, 127, 128 * 85 : 122, 123, 124, 125, 126, 127, 128 * 86 : 91, 92, 93 * 87 : 109, 110, 111, 112, 113, 114, 115, 116, 117 * 88 : 122, 123, 124, 125, 126, 127, 128 * 89 : 122, 123, 124, 125, 126, 127, 128 * 90 : 122, 123, 124, 125, 126, 127, 128 * 91 : 118, 119 * 92 : 122, 123, 124, 125, 126, 127, 128 * 93 : 122, 123, 124, 125, 126, 127, 128 * 94 : 109, 110, 111, 112, 113, 114, 115, 116, 117 * 95 : 122, 123, 124, 125, 126, 127, 128 * 96 : 109, 110, 111, 112, 113, 114, 115, 116, 117 * 97 : 122, 123, 124, 125, 126, 127, 128 * 98 : 122, 123, 124, 125, 126, 127, 128 * 99 : 122, 123, 124, 125, 126, 127, 128 * 100 : 41, 42, 43, 44 * 101 : 109, 110, 111, 112, 113, 114, 115, 116, 117 * 102 : 122, 123, 124, 125, 126, 127, 128 * 103 : 122, 123, 124, 125, 126, 127, 128 * 104 : 47, 48, 49, 50, 51 * 105 : 109, 110, 111, 112, 113, 114, 115, 116, 117 * 106 : 122, 123, 124, 125, 126, 127, 128 * 107 : 122, 123, 124, 125, 126, 127, 128 * 108 : 122, 123, 124, 125, 126, 127, 128 * 109 : 109, 110, 111, 112, 113, 114, 115, 116, 117 * 110 : 122, 123, 124, 125, 126, 127, 128 * 111 : 122, 123, 124, 125, 126, 127, 128 * 112 : 109, 110, 111, 112, 113, 114, 115, 116, 117 * 113 : 122, 123, 124, 125, 126, 127, 128 * 114 : 70 * 115 : 109, 110, 111, 112, 113, 114, 115, 116, 117 * 116 : 122, 123, 124, 125, 126, 127, 128 * 117 : 122, 123, 124, 125, 126, 127, 128 * 118 : 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108 * 119 : 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108 * 120 : 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108 * 121 : 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108 * 122 : 118, 119 * 123 : 122, 123, 124, 125, 126, 127, 128 * 124 : 122, 123, 124, 125, 126, 127, 128 * 125 : 122, 123, 124, 125, 126, 127, 128 * 126 : 120, 121 * 127 : 122, 123, 124, 125, 126, 127, 128 * 128 : 122, 123, 124, 125, 126, 127, 128 This graph has the following strongly connected components: P_3: U21#(tt, X) =#> U22#(isNatKind(activate(X)), activate(X)) U21#(tt, X) =#> isNatKind#(activate(X)) U21#(tt, X) =#> activate#(X) U21#(tt, X) =#> activate#(X) U22#(tt, X) =#> isNat#(activate(X)) U22#(tt, X) =#> activate#(X) U31#(tt, X, Y) =#> U32#(isNatKind(activate(X)), activate(X), activate(Y)) U31#(tt, X, Y) =#> isNatKind#(activate(X)) U31#(tt, X, Y) =#> activate#(X) U31#(tt, X, Y) =#> activate#(X) U31#(tt, X, Y) =#> activate#(Y) U32#(tt, X, Y) =#> U33#(isNatKind(activate(Y)), activate(X), activate(Y)) U32#(tt, X, Y) =#> isNatKind#(activate(Y)) U32#(tt, X, Y) =#> activate#(Y) U32#(tt, X, Y) =#> activate#(X) U32#(tt, X, Y) =#> activate#(Y) U33#(tt, X, Y) =#> U34#(isNatKind(activate(Y)), activate(X), activate(Y)) U33#(tt, X, Y) =#> isNatKind#(activate(Y)) U33#(tt, X, Y) =#> activate#(Y) U33#(tt, X, Y) =#> activate#(X) U33#(tt, X, Y) =#> activate#(Y) U34#(tt, X, Y) =#> U35#(isNat(activate(X)), activate(Y)) U34#(tt, X, Y) =#> isNat#(activate(X)) U34#(tt, X, Y) =#> activate#(X) U34#(tt, X, Y) =#> activate#(Y) U35#(tt, X) =#> isNat#(activate(X)) U35#(tt, X) =#> activate#(X) U61#(tt, X) =#> isNatKind#(activate(X)) isNat#(n!6220!6220plus(X, Y)) =#> isNatKind#(activate(X)) isNat#(n!6220!6220plus(X, Y)) =#> activate#(X) isNat#(n!6220!6220plus(X, Y)) =#> activate#(X) isNat#(n!6220!6220plus(X, Y)) =#> activate#(Y) isNat#(n!6220!6220s(X)) =#> U21#(isNatKind(activate(X)), activate(X)) isNat#(n!6220!6220s(X)) =#> isNatKind#(activate(X)) isNat#(n!6220!6220s(X)) =#> activate#(X) isNat#(n!6220!6220s(X)) =#> activate#(X) isNat#(n!6220!6220x(X, Y)) =#> U31#(isNatKind(activate(X)), activate(X), activate(Y)) isNat#(n!6220!6220x(X, Y)) =#> isNatKind#(activate(X)) isNat#(n!6220!6220x(X, Y)) =#> activate#(X) isNat#(n!6220!6220x(X, Y)) =#> activate#(X) isNat#(n!6220!6220x(X, Y)) =#> activate#(Y) isNatKind#(n!6220!6220plus(X, Y)) =#> isNatKind#(activate(X)) isNatKind#(n!6220!6220plus(X, Y)) =#> activate#(X) isNatKind#(n!6220!6220plus(X, Y)) =#> activate#(Y) isNatKind#(n!6220!6220s(X)) =#> isNatKind#(activate(X)) isNatKind#(n!6220!6220s(X)) =#> activate#(X) isNatKind#(n!6220!6220x(X, Y)) =#> U61#(isNatKind(activate(X)), activate(Y)) isNatKind#(n!6220!6220x(X, Y)) =#> isNatKind#(activate(X)) isNatKind#(n!6220!6220x(X, Y)) =#> activate#(X) isNatKind#(n!6220!6220x(X, Y)) =#> activate#(Y) plus#(X, 0) =#> isNat#(X) plus#(X, s(Y)) =#> isNat#(Y) x#(X, 0) =#> isNat#(X) x#(X, s(Y)) =#> isNat#(Y) activate#(n!6220!6220plus(X, Y)) =#> plus#(activate(X), activate(Y)) activate#(n!6220!6220plus(X, Y)) =#> activate#(X) activate#(n!6220!6220plus(X, Y)) =#> activate#(Y) activate#(n!6220!6220s(X)) =#> activate#(X) activate#(n!6220!6220x(X, Y)) =#> x#(activate(X), activate(Y)) activate#(n!6220!6220x(X, Y)) =#> activate#(X) activate#(n!6220!6220x(X, Y)) =#> activate#(Y) By [Kop12, Thm. 7.31], we may replace any dependency pair problem (P_2, R_0, m, f) by (P_3, R_0, m, f). Thus, the original system is terminating if (P_3, R_0, minimal, formative) is finite. We consider the dependency pair problem (P_3, R_0, minimal, formative). We will use the reduction pair processor [Kop12, Thm. 7.16]. It suffices to find a standard reduction pair [Kop12, Def. 6.69]. Thus, we must orient: U21#(tt, X) >? U22#(isNatKind(activate(X)), activate(X)) U21#(tt, X) >? isNatKind#(activate(X)) U21#(tt, X) >? activate#(X) U21#(tt, X) >? activate#(X) U22#(tt, X) >? isNat#(activate(X)) U22#(tt, X) >? activate#(X) U31#(tt, X, Y) >? U32#(isNatKind(activate(X)), activate(X), activate(Y)) U31#(tt, X, Y) >? isNatKind#(activate(X)) U31#(tt, X, Y) >? activate#(X) U31#(tt, X, Y) >? activate#(X) U31#(tt, X, Y) >? activate#(Y) U32#(tt, X, Y) >? U33#(isNatKind(activate(Y)), activate(X), activate(Y)) U32#(tt, X, Y) >? isNatKind#(activate(Y)) U32#(tt, X, Y) >? activate#(Y) U32#(tt, X, Y) >? activate#(X) U32#(tt, X, Y) >? activate#(Y) U33#(tt, X, Y) >? U34#(isNatKind(activate(Y)), activate(X), activate(Y)) U33#(tt, X, Y) >? isNatKind#(activate(Y)) U33#(tt, X, Y) >? activate#(Y) U33#(tt, X, Y) >? activate#(X) U33#(tt, X, Y) >? activate#(Y) U34#(tt, X, Y) >? U35#(isNat(activate(X)), activate(Y)) U34#(tt, X, Y) >? isNat#(activate(X)) U34#(tt, X, Y) >? activate#(X) U34#(tt, X, Y) >? activate#(Y) U35#(tt, X) >? isNat#(activate(X)) U35#(tt, X) >? activate#(X) U61#(tt, X) >? isNatKind#(activate(X)) isNat#(n!6220!6220plus(X, Y)) >? isNatKind#(activate(X)) isNat#(n!6220!6220plus(X, Y)) >? activate#(X) isNat#(n!6220!6220plus(X, Y)) >? activate#(X) isNat#(n!6220!6220plus(X, Y)) >? activate#(Y) isNat#(n!6220!6220s(X)) >? U21#(isNatKind(activate(X)), activate(X)) isNat#(n!6220!6220s(X)) >? isNatKind#(activate(X)) isNat#(n!6220!6220s(X)) >? activate#(X) isNat#(n!6220!6220s(X)) >? activate#(X) isNat#(n!6220!6220x(X, Y)) >? U31#(isNatKind(activate(X)), activate(X), activate(Y)) isNat#(n!6220!6220x(X, Y)) >? isNatKind#(activate(X)) isNat#(n!6220!6220x(X, Y)) >? activate#(X) isNat#(n!6220!6220x(X, Y)) >? activate#(X) isNat#(n!6220!6220x(X, Y)) >? activate#(Y) isNatKind#(n!6220!6220plus(X, Y)) >? isNatKind#(activate(X)) isNatKind#(n!6220!6220plus(X, Y)) >? activate#(X) isNatKind#(n!6220!6220plus(X, Y)) >? activate#(Y) isNatKind#(n!6220!6220s(X)) >? isNatKind#(activate(X)) isNatKind#(n!6220!6220s(X)) >? activate#(X) isNatKind#(n!6220!6220x(X, Y)) >? U61#(isNatKind(activate(X)), activate(Y)) isNatKind#(n!6220!6220x(X, Y)) >? isNatKind#(activate(X)) isNatKind#(n!6220!6220x(X, Y)) >? activate#(X) isNatKind#(n!6220!6220x(X, Y)) >? activate#(Y) plus#(X, 0) >? isNat#(X) plus#(X, s(Y)) >? isNat#(Y) x#(X, 0) >? isNat#(X) x#(X, s(Y)) >? isNat#(Y) activate#(n!6220!6220plus(X, Y)) >? plus#(activate(X), activate(Y)) activate#(n!6220!6220plus(X, Y)) >? activate#(X) activate#(n!6220!6220plus(X, Y)) >? activate#(Y) activate#(n!6220!6220s(X)) >? activate#(X) activate#(n!6220!6220x(X, Y)) >? x#(activate(X), activate(Y)) activate#(n!6220!6220x(X, Y)) >? activate#(X) activate#(n!6220!6220x(X, Y)) >? activate#(Y) U101(tt, X, Y) >= U102(isNatKind(activate(X)), activate(X), activate(Y)) U102(tt, X, Y) >= U103(isNat(activate(Y)), activate(X), activate(Y)) U103(tt, X, Y) >= U104(isNatKind(activate(Y)), activate(X), activate(Y)) U104(tt, X, Y) >= plus(x(activate(Y), activate(X)), activate(Y)) U11(tt, X, Y) >= U12(isNatKind(activate(X)), activate(X), activate(Y)) U12(tt, X, Y) >= U13(isNatKind(activate(Y)), activate(X), activate(Y)) U13(tt, X, Y) >= U14(isNatKind(activate(Y)), activate(X), activate(Y)) U14(tt, X, Y) >= U15(isNat(activate(X)), activate(Y)) U15(tt, X) >= U16(isNat(activate(X))) U16(tt) >= tt U21(tt, X) >= U22(isNatKind(activate(X)), activate(X)) U22(tt, X) >= U23(isNat(activate(X))) U23(tt) >= tt U31(tt, X, Y) >= U32(isNatKind(activate(X)), activate(X), activate(Y)) U32(tt, X, Y) >= U33(isNatKind(activate(Y)), activate(X), activate(Y)) U33(tt, X, Y) >= U34(isNatKind(activate(Y)), activate(X), activate(Y)) U34(tt, X, Y) >= U35(isNat(activate(X)), activate(Y)) U35(tt, X) >= U36(isNat(activate(X))) U36(tt) >= tt U41(tt, X) >= U42(isNatKind(activate(X))) U42(tt) >= tt U51(tt) >= tt U61(tt, X) >= U62(isNatKind(activate(X))) U62(tt) >= tt U71(tt, X) >= U72(isNatKind(activate(X)), activate(X)) U72(tt, X) >= activate(X) U81(tt, X, Y) >= U82(isNatKind(activate(X)), activate(X), activate(Y)) U82(tt, X, Y) >= U83(isNat(activate(Y)), activate(X), activate(Y)) U83(tt, X, Y) >= U84(isNatKind(activate(Y)), activate(X), activate(Y)) U84(tt, X, Y) >= s(plus(activate(Y), activate(X))) U91(tt, X) >= U92(isNatKind(activate(X))) U92(tt) >= 0 isNat(n!6220!62200) >= tt isNat(n!6220!6220plus(X, Y)) >= U11(isNatKind(activate(X)), activate(X), activate(Y)) isNat(n!6220!6220s(X)) >= U21(isNatKind(activate(X)), activate(X)) isNat(n!6220!6220x(X, Y)) >= U31(isNatKind(activate(X)), activate(X), activate(Y)) isNatKind(n!6220!62200) >= tt isNatKind(n!6220!6220plus(X, Y)) >= U41(isNatKind(activate(X)), activate(Y)) isNatKind(n!6220!6220s(X)) >= U51(isNatKind(activate(X))) isNatKind(n!6220!6220x(X, Y)) >= U61(isNatKind(activate(X)), activate(Y)) plus(X, 0) >= U71(isNat(X), X) plus(X, s(Y)) >= U81(isNat(Y), Y, X) x(X, 0) >= U91(isNat(X), X) x(X, s(Y)) >= U101(isNat(Y), Y, X) 0 >= n!6220!62200 plus(X, Y) >= n!6220!6220plus(X, Y) s(X) >= n!6220!6220s(X) x(X, Y) >= n!6220!6220x(X, Y) activate(n!6220!62200) >= 0 activate(n!6220!6220plus(X, Y)) >= plus(activate(X), activate(Y)) activate(n!6220!6220s(X)) >= s(activate(X)) activate(n!6220!6220x(X, Y)) >= x(activate(X), activate(Y)) activate(X) >= X Since this representation is not advantageous for the higher-order recursive path ordering, we present the strict requirements in their unextended form, which is not problematic since for any F, s and substituion gamma: (F s)gamma beta-reduces to F(s)gamma.) We use a recursive path ordering as defined in [Kop12, Chapter 5]. Argument functions: [[0]] = _|_ [[U11(x_1, x_2, x_3)]] = U11 [[U12(x_1, x_2, x_3)]] = x_1 [[U13(x_1, x_2, x_3)]] = x_1 [[U14(x_1, x_2, x_3)]] = x_1 [[U15(x_1, x_2)]] = U15 [[U16(x_1)]] = x_1 [[U21(x_1, x_2)]] = x_1 [[U21#(x_1, x_2)]] = U21#(x_2) [[U22(x_1, x_2)]] = x_1 [[U22#(x_1, x_2)]] = U22#(x_2) [[U23(x_1)]] = x_1 [[U31(x_1, x_2, x_3)]] = U31 [[U32(x_1, x_2, x_3)]] = x_1 [[U33(x_1, x_2, x_3)]] = U33 [[U34(x_1, x_2, x_3)]] = x_1 [[U35(x_1, x_2)]] = U35 [[U36(x_1)]] = x_1 [[U41(x_1, x_2)]] = x_1 [[U42(x_1)]] = x_1 [[U51(x_1)]] = x_1 [[U61(x_1, x_2)]] = U61 [[U61#(x_1, x_2)]] = U61#(x_2) [[U62(x_1)]] = U62 [[U71(x_1, x_2)]] = x_2 [[U72(x_1, x_2)]] = x_2 [[U91(x_1, x_2)]] = _|_ [[U92(x_1)]] = _|_ [[activate(x_1)]] = x_1 [[isNat(x_1)]] = isNat [[isNatKind(x_1)]] = isNatKind [[n!6220!62200]] = _|_ We choose Lex = {} and Mul = {U101, U102, U103, U104, U11, U15, U21#, U22#, U31, U31#, U32#, U33, U33#, U34#, U35, U35#, U61, U61#, U62, U81, U82, U83, U84, activate#, isNat, isNatKind, isNatKind#, isNat#, n!6220!6220plus, n!6220!6220s, n!6220!6220x, plus, plus#, s, tt, x, x#}, and the following precedence: U101 = U102 = U103 = U104 = n!6220!6220x = x > U81 = U82 = U83 = U84 = n!6220!6220plus = plus = plus# > x# > U11 = U15 = U31 = U33 = U35 = U61 = U62 = isNat = isNatKind = n!6220!6220s = s = tt > U21# = U22# = U31# = U32# = U33# = U34# = U35# = isNat# > U61# = activate# = isNatKind# Taking the argument function into account, and fixing the greater / greater equal choices, the constraints can be denoted as follows: U21#(X) >= U22#(X) U21#(X) >= isNatKind#(X) U21#(X) >= activate#(X) U21#(X) >= activate#(X) U22#(X) >= isNat#(X) U22#(X) > activate#(X) U31#(tt, X, Y) >= U32#(isNatKind, X, Y) U31#(tt, X, Y) >= isNatKind#(X) U31#(tt, X, Y) >= activate#(X) U31#(tt, X, Y) >= activate#(X) U31#(tt, X, Y) >= activate#(Y) U32#(tt, X, Y) >= U33#(isNatKind, X, Y) U32#(tt, X, Y) >= isNatKind#(Y) U32#(tt, X, Y) >= activate#(Y) U32#(tt, X, Y) >= activate#(X) U32#(tt, X, Y) >= activate#(Y) U33#(tt, X, Y) >= U34#(isNatKind, X, Y) U33#(tt, X, Y) >= isNatKind#(Y) U33#(tt, X, Y) >= activate#(Y) U33#(tt, X, Y) >= activate#(X) U33#(tt, X, Y) >= activate#(Y) U34#(tt, X, Y) >= U35#(isNat, Y) U34#(tt, X, Y) >= isNat#(X) U34#(tt, X, Y) >= activate#(X) U34#(tt, X, Y) >= activate#(Y) U35#(tt, X) >= isNat#(X) U35#(tt, X) >= activate#(X) U61#(X) >= isNatKind#(X) isNat#(n!6220!6220plus(X, Y)) >= isNatKind#(X) isNat#(n!6220!6220plus(X, Y)) >= activate#(X) isNat#(n!6220!6220plus(X, Y)) >= activate#(X) isNat#(n!6220!6220plus(X, Y)) >= activate#(Y) isNat#(n!6220!6220s(X)) >= U21#(X) isNat#(n!6220!6220s(X)) >= isNatKind#(X) isNat#(n!6220!6220s(X)) >= activate#(X) isNat#(n!6220!6220s(X)) >= activate#(X) isNat#(n!6220!6220x(X, Y)) >= U31#(isNatKind, X, Y) isNat#(n!6220!6220x(X, Y)) >= isNatKind#(X) isNat#(n!6220!6220x(X, Y)) >= activate#(X) isNat#(n!6220!6220x(X, Y)) >= activate#(X) isNat#(n!6220!6220x(X, Y)) >= activate#(Y) isNatKind#(n!6220!6220plus(X, Y)) >= isNatKind#(X) isNatKind#(n!6220!6220plus(X, Y)) >= activate#(X) isNatKind#(n!6220!6220plus(X, Y)) >= activate#(Y) isNatKind#(n!6220!6220s(X)) >= isNatKind#(X) isNatKind#(n!6220!6220s(X)) >= activate#(X) isNatKind#(n!6220!6220x(X, Y)) >= U61#(Y) isNatKind#(n!6220!6220x(X, Y)) >= isNatKind#(X) isNatKind#(n!6220!6220x(X, Y)) >= activate#(X) isNatKind#(n!6220!6220x(X, Y)) >= activate#(Y) plus#(X, _|_) >= isNat#(X) plus#(X, s(Y)) >= isNat#(Y) x#(X, _|_) >= isNat#(X) x#(X, s(Y)) >= isNat#(Y) activate#(n!6220!6220plus(X, Y)) >= plus#(X, Y) activate#(n!6220!6220plus(X, Y)) >= activate#(X) activate#(n!6220!6220plus(X, Y)) >= activate#(Y) activate#(n!6220!6220s(X)) >= activate#(X) activate#(n!6220!6220x(X, Y)) >= x#(X, Y) activate#(n!6220!6220x(X, Y)) >= activate#(X) activate#(n!6220!6220x(X, Y)) >= activate#(Y) U101(tt, X, Y) >= U102(isNatKind, X, Y) U102(tt, X, Y) >= U103(isNat, X, Y) U103(tt, X, Y) >= U104(isNatKind, X, Y) U104(tt, X, Y) >= plus(x(Y, X), Y) U11 >= isNatKind tt >= isNatKind tt >= isNatKind tt >= U15 U15 >= isNat tt >= tt tt >= isNatKind tt >= isNat tt >= tt U31 >= isNatKind tt >= U33 U33 >= isNatKind tt >= U35 U35 >= isNat tt >= tt tt >= isNatKind tt >= tt tt >= tt U61 >= U62 U62 >= tt X >= X X >= X U81(tt, X, Y) >= U82(isNatKind, X, Y) U82(tt, X, Y) >= U83(isNat, X, Y) U83(tt, X, Y) >= U84(isNatKind, X, Y) U84(tt, X, Y) >= s(plus(Y, X)) _|_ >= _|_ _|_ >= _|_ isNat >= tt isNat >= U11 isNat >= isNatKind isNat >= U31 isNatKind >= tt isNatKind >= isNatKind isNatKind >= isNatKind isNatKind >= U61 plus(X, _|_) >= X plus(X, s(Y)) >= U81(isNat, Y, X) x(X, _|_) >= _|_ x(X, s(Y)) >= U101(isNat, Y, X) _|_ >= _|_ plus(X, Y) >= n!6220!6220plus(X, Y) s(X) >= n!6220!6220s(X) x(X, Y) >= n!6220!6220x(X, Y) _|_ >= _|_ n!6220!6220plus(X, Y) >= plus(X, Y) n!6220!6220s(X) >= s(X) n!6220!6220x(X, Y) >= x(X, Y) X >= X With these choices, we have: 1] U21#(X) >= U22#(X) because U21# = U22#, U21# in Mul and [2], by (Fun) 2] X >= X by (Meta) 3] U21#(X) >= isNatKind#(X) because [4], by (Star) 4] U21#*(X) >= isNatKind#(X) because U21# > isNatKind# and [5], by (Copy) 5] U21#*(X) >= X because [2], by (Select) 6] U21#(X) >= activate#(X) because [7], by (Star) 7] U21#*(X) >= activate#(X) because U21# > activate# and [5], by (Copy) 8] U21#(X) >= activate#(X) because [7], by (Star) 9] U22#(X) >= isNat#(X) because U22# = isNat#, U22# in Mul and [2], by (Fun) 10] U22#(X) > activate#(X) because [11], by definition 11] U22#*(X) >= activate#(X) because U22# > activate# and [12], by (Copy) 12] U22#*(X) >= X because [2], by (Select) 13] U31#(tt, X, Y) >= U32#(isNatKind, X, Y) because U31# = U32#, U31# in Mul, [14], [2] and [15], by (Fun) 14] tt >= isNatKind because tt = isNatKind, by (Fun) 15] Y >= Y by (Meta) 16] U31#(tt, X, Y) >= isNatKind#(X) because [17], by (Star) 17] U31#*(tt, X, Y) >= isNatKind#(X) because U31# > isNatKind# and [18], by (Copy) 18] U31#*(tt, X, Y) >= X because [2], by (Select) 19] U31#(tt, X, Y) >= activate#(X) because [20], by (Star) 20] U31#*(tt, X, Y) >= activate#(X) because U31# > activate# and [18], by (Copy) 21] U31#(tt, X, Y) >= activate#(X) because [20], by (Star) 22] U31#(tt, X, Y) >= activate#(Y) because [23], by (Star) 23] U31#*(tt, X, Y) >= activate#(Y) because U31# > activate# and [24], by (Copy) 24] U31#*(tt, X, Y) >= Y because [15], by (Select) 25] U32#(tt, X, Y) >= U33#(isNatKind, X, Y) because U32# = U33#, U32# in Mul, [26], [2] and [15], by (Fun) 26] tt >= isNatKind because tt = isNatKind, by (Fun) 27] U32#(tt, X, Y) >= isNatKind#(Y) because [28], by (Star) 28] U32#*(tt, X, Y) >= isNatKind#(Y) because U32# > isNatKind# and [29], by (Copy) 29] U32#*(tt, X, Y) >= Y because [15], by (Select) 30] U32#(tt, X, Y) >= activate#(Y) because [31], by (Star) 31] U32#*(tt, X, Y) >= activate#(Y) because U32# > activate# and [29], by (Copy) 32] U32#(tt, X, Y) >= activate#(X) because [33], by (Star) 33] U32#*(tt, X, Y) >= activate#(X) because U32# > activate# and [34], by (Copy) 34] U32#*(tt, X, Y) >= X because [2], by (Select) 35] U32#(tt, X, Y) >= activate#(Y) because [31], by (Star) 36] U33#(tt, X, Y) >= U34#(isNatKind, X, Y) because U33# = U34#, U33# in Mul, [26], [2] and [15], by (Fun) 37] U33#(tt, X, Y) >= isNatKind#(Y) because [38], by (Star) 38] U33#*(tt, X, Y) >= isNatKind#(Y) because U33# > isNatKind# and [39], by (Copy) 39] U33#*(tt, X, Y) >= Y because [15], by (Select) 40] U33#(tt, X, Y) >= activate#(Y) because [41], by (Star) 41] U33#*(tt, X, Y) >= activate#(Y) because U33# > activate# and [39], by (Copy) 42] U33#(tt, X, Y) >= activate#(X) because [43], by (Star) 43] U33#*(tt, X, Y) >= activate#(X) because U33# > activate# and [44], by (Copy) 44] U33#*(tt, X, Y) >= X because [2], by (Select) 45] U33#(tt, X, Y) >= activate#(Y) because [41], by (Star) 46] U34#(tt, X, Y) >= U35#(isNat, Y) because [47], by (Star) 47] U34#*(tt, X, Y) >= U35#(isNat, Y) because U34# = U35#, U34# in Mul, [48] and [15], by (Stat) 48] tt >= isNat because tt = isNat, by (Fun) 49] U34#(tt, X, Y) >= isNat#(X) because [50], by (Star) 50] U34#*(tt, X, Y) >= isNat#(X) because U34# = isNat#, U34# in Mul and [2], by (Stat) 51] U34#(tt, X, Y) >= activate#(X) because [52], by (Star) 52] U34#*(tt, X, Y) >= activate#(X) because U34# > activate# and [53], by (Copy) 53] U34#*(tt, X, Y) >= X because [2], by (Select) 54] U34#(tt, X, Y) >= activate#(Y) because [55], by (Star) 55] U34#*(tt, X, Y) >= activate#(Y) because U34# > activate# and [56], by (Copy) 56] U34#*(tt, X, Y) >= Y because [15], by (Select) 57] U35#(tt, X) >= isNat#(X) because [58], by (Star) 58] U35#*(tt, X) >= isNat#(X) because U35# = isNat#, U35# in Mul and [15], by (Stat) 59] U35#(tt, X) >= activate#(X) because [60], by (Star) 60] U35#*(tt, X) >= activate#(X) because U35# > activate# and [61], by (Copy) 61] U35#*(tt, X) >= X because [15], by (Select) 62] U61#(X) >= isNatKind#(X) because U61# = isNatKind#, U61# in Mul and [15], by (Fun) 63] isNat#(n!6220!6220plus(X, Y)) >= isNatKind#(X) because [64], by (Star) 64] isNat#*(n!6220!6220plus(X, Y)) >= isNatKind#(X) because isNat# > isNatKind# and [65], by (Copy) 65] isNat#*(n!6220!6220plus(X, Y)) >= X because [66], by (Select) 66] n!6220!6220plus(X, Y) >= X because [67], by (Star) 67] n!6220!6220plus*(X, Y) >= X because [2], by (Select) 68] isNat#(n!6220!6220plus(X, Y)) >= activate#(X) because [69], by (Star) 69] isNat#*(n!6220!6220plus(X, Y)) >= activate#(X) because isNat# > activate# and [65], by (Copy) 70] isNat#(n!6220!6220plus(X, Y)) >= activate#(X) because [69], by (Star) 71] isNat#(n!6220!6220plus(X, Y)) >= activate#(Y) because [72], by (Star) 72] isNat#*(n!6220!6220plus(X, Y)) >= activate#(Y) because isNat# > activate# and [73], by (Copy) 73] isNat#*(n!6220!6220plus(X, Y)) >= Y because [74], by (Select) 74] n!6220!6220plus(X, Y) >= Y because [75], by (Star) 75] n!6220!6220plus*(X, Y) >= Y because [15], by (Select) 76] isNat#(n!6220!6220s(X)) >= U21#(X) because isNat# = U21#, isNat# in Mul and [77], by (Fun) 77] n!6220!6220s(X) >= X because [78], by (Star) 78] n!6220!6220s*(X) >= X because [2], by (Select) 79] isNat#(n!6220!6220s(X)) >= isNatKind#(X) because [80], by (Star) 80] isNat#*(n!6220!6220s(X)) >= isNatKind#(X) because [81], by (Select) 81] n!6220!6220s(X) >= isNatKind#(X) because [82], by (Star) 82] n!6220!6220s*(X) >= isNatKind#(X) because n!6220!6220s > isNatKind# and [83], by (Copy) 83] n!6220!6220s*(X) >= X because [2], by (Select) 84] isNat#(n!6220!6220s(X)) >= activate#(X) because [85], by (Star) 85] isNat#*(n!6220!6220s(X)) >= activate#(X) because isNat# > activate# and [86], by (Copy) 86] isNat#*(n!6220!6220s(X)) >= X because [77], by (Select) 87] isNat#(n!6220!6220s(X)) >= activate#(X) because [85], by (Star) 88] isNat#(n!6220!6220x(X, Y)) >= U31#(isNatKind, X, Y) because [89], by (Star) 89] isNat#*(n!6220!6220x(X, Y)) >= U31#(isNatKind, X, Y) because isNat# = U31#, isNat# in Mul, [90], [92] and [94], by (Stat) 90] n!6220!6220x(X, Y) > isNatKind because [91], by definition 91] n!6220!6220x*(X, Y) >= isNatKind because n!6220!6220x > isNatKind, by (Copy) 92] n!6220!6220x(X, Y) > X because [93], by definition 93] n!6220!6220x*(X, Y) >= X because [2], by (Select) 94] n!6220!6220x(X, Y) > Y because [95], by definition 95] n!6220!6220x*(X, Y) >= Y because [15], by (Select) 96] isNat#(n!6220!6220x(X, Y)) >= isNatKind#(X) because [97], by (Star) 97] isNat#*(n!6220!6220x(X, Y)) >= isNatKind#(X) because [98], by (Select) 98] n!6220!6220x(X, Y) >= isNatKind#(X) because [99], by (Star) 99] n!6220!6220x*(X, Y) >= isNatKind#(X) because n!6220!6220x > isNatKind# and [93], by (Copy) 100] isNat#(n!6220!6220x(X, Y)) >= activate#(X) because [101], by (Star) 101] isNat#*(n!6220!6220x(X, Y)) >= activate#(X) because [102], by (Select) 102] n!6220!6220x(X, Y) >= activate#(X) because [103], by (Star) 103] n!6220!6220x*(X, Y) >= activate#(X) because n!6220!6220x > activate# and [93], by (Copy) 104] isNat#(n!6220!6220x(X, Y)) >= activate#(X) because [101], by (Star) 105] isNat#(n!6220!6220x(X, Y)) >= activate#(Y) because [106], by (Star) 106] isNat#*(n!6220!6220x(X, Y)) >= activate#(Y) because isNat# > activate# and [107], by (Copy) 107] isNat#*(n!6220!6220x(X, Y)) >= Y because [108], by (Select) 108] n!6220!6220x(X, Y) >= Y because [95], by (Star) 109] isNatKind#(n!6220!6220plus(X, Y)) >= isNatKind#(X) because isNatKind# in Mul and [110], by (Fun) 110] n!6220!6220plus(X, Y) >= X because [67], by (Star) 111] isNatKind#(n!6220!6220plus(X, Y)) >= activate#(X) because isNatKind# = activate#, isNatKind# in Mul and [110], by (Fun) 112] isNatKind#(n!6220!6220plus(X, Y)) >= activate#(Y) because isNatKind# = activate#, isNatKind# in Mul and [113], by (Fun) 113] n!6220!6220plus(X, Y) >= Y because [75], by (Star) 114] isNatKind#(n!6220!6220s(X)) >= isNatKind#(X) because isNatKind# in Mul and [77], by (Fun) 115] isNatKind#(n!6220!6220s(X)) >= activate#(X) because isNatKind# = activate#, isNatKind# in Mul and [77], by (Fun) 116] isNatKind#(n!6220!6220x(X, Y)) >= U61#(Y) because isNatKind# = U61#, isNatKind# in Mul and [117], by (Fun) 117] n!6220!6220x(X, Y) >= Y because [95], by (Star) 118] isNatKind#(n!6220!6220x(X, Y)) >= isNatKind#(X) because [119], by (Star) 119] isNatKind#*(n!6220!6220x(X, Y)) >= isNatKind#(X) because isNatKind# in Mul and [92], by (Stat) 120] isNatKind#(n!6220!6220x(X, Y)) >= activate#(X) because [121], by (Star) 121] isNatKind#*(n!6220!6220x(X, Y)) >= activate#(X) because isNatKind# = activate#, isNatKind# in Mul and [122], by (Stat) 122] n!6220!6220x(X, Y) > X because [93], by definition 123] isNatKind#(n!6220!6220x(X, Y)) >= activate#(Y) because isNatKind# = activate#, isNatKind# in Mul and [117], by (Fun) 124] plus#(X, _|_) >= isNat#(X) because [125], by (Star) 125] plus#*(X, _|_) >= isNat#(X) because plus# > isNat# and [126], by (Copy) 126] plus#*(X, _|_) >= X because [127], by (Select) 127] X >= X by (Meta) 128] plus#(X, s(Y)) >= isNat#(Y) because [129], by (Star) 129] plus#*(X, s(Y)) >= isNat#(Y) because plus# > isNat# and [130], by (Copy) 130] plus#*(X, s(Y)) >= Y because [131], by (Select) 131] s(Y) >= Y because [132], by (Star) 132] s*(Y) >= Y because [133], by (Select) 133] Y >= Y by (Meta) 134] x#(X, _|_) >= isNat#(X) because [135], by (Star) 135] x#*(X, _|_) >= isNat#(X) because x# > isNat# and [136], by (Copy) 136] x#*(X, _|_) >= X because [127], by (Select) 137] x#(X, s(Y)) >= isNat#(Y) because [138], by (Star) 138] x#*(X, s(Y)) >= isNat#(Y) because x# > isNat# and [139], by (Copy) 139] x#*(X, s(Y)) >= Y because [131], by (Select) 140] activate#(n!6220!6220plus(X, Y)) >= plus#(X, Y) because [141], by (Star) 141] activate#*(n!6220!6220plus(X, Y)) >= plus#(X, Y) because [142], by (Select) 142] n!6220!6220plus(X, Y) >= plus#(X, Y) because n!6220!6220plus = plus#, n!6220!6220plus in Mul, [143] and [144], by (Fun) 143] X >= X by (Meta) 144] Y >= Y by (Meta) 145] activate#(n!6220!6220plus(X, Y)) >= activate#(X) because activate# in Mul and [146], by (Fun) 146] n!6220!6220plus(X, Y) >= X because [147], by (Star) 147] n!6220!6220plus*(X, Y) >= X because [143], by (Select) 148] activate#(n!6220!6220plus(X, Y)) >= activate#(Y) because activate# in Mul and [149], by (Fun) 149] n!6220!6220plus(X, Y) >= Y because [150], by (Star) 150] n!6220!6220plus*(X, Y) >= Y because [144], by (Select) 151] activate#(n!6220!6220s(X)) >= activate#(X) because activate# in Mul and [152], by (Fun) 152] n!6220!6220s(X) >= X because [153], by (Star) 153] n!6220!6220s*(X) >= X because [154], by (Select) 154] X >= X by (Meta) 155] activate#(n!6220!6220x(X, Y)) >= x#(X, Y) because [156], by (Star) 156] activate#*(n!6220!6220x(X, Y)) >= x#(X, Y) because [157], by (Select) 157] n!6220!6220x(X, Y) >= x#(X, Y) because [158], by (Star) 158] n!6220!6220x*(X, Y) >= x#(X, Y) because n!6220!6220x > x#, [159] and [160], by (Copy) 159] n!6220!6220x*(X, Y) >= X because [143], by (Select) 160] n!6220!6220x*(X, Y) >= Y because [144], by (Select) 161] activate#(n!6220!6220x(X, Y)) >= activate#(X) because activate# in Mul and [162], by (Fun) 162] n!6220!6220x(X, Y) >= X because [159], by (Star) 163] activate#(n!6220!6220x(X, Y)) >= activate#(Y) because [164], by (Star) 164] activate#*(n!6220!6220x(X, Y)) >= activate#(Y) because [165], by (Select) 165] n!6220!6220x(X, Y) >= activate#(Y) because [166], by (Star) 166] n!6220!6220x*(X, Y) >= activate#(Y) because n!6220!6220x > activate# and [160], by (Copy) 167] U101(tt, X, Y) >= U102(isNatKind, X, Y) because U101 = U102, U101 in Mul, [168], [169] and [170], by (Fun) 168] tt >= isNatKind because tt = isNatKind, by (Fun) 169] X >= X by (Meta) 170] Y >= Y by (Meta) 171] U102(tt, X, Y) >= U103(isNat, X, Y) because U102 = U103, U102 in Mul, [172], [169] and [170], by (Fun) 172] tt >= isNat because tt = isNat, by (Fun) 173] U103(tt, X, Y) >= U104(isNatKind, X, Y) because U103 = U104, U103 in Mul, [174], [169] and [170], by (Fun) 174] tt >= isNatKind because tt = isNatKind, by (Fun) 175] U104(tt, X, Y) >= plus(x(Y, X), Y) because [176], by (Star) 176] U104*(tt, X, Y) >= plus(x(Y, X), Y) because U104 > plus, [177] and [178], by (Copy) 177] U104*(tt, X, Y) >= x(Y, X) because U104 = x, U104 in Mul, [169] and [170], by (Stat) 178] U104*(tt, X, Y) >= Y because [170], by (Select) 179] U11 >= isNatKind because U11 = isNatKind and U11 in Mul, by (Fun) 180] tt >= isNatKind because tt = isNatKind, by (Fun) 181] tt >= isNatKind because tt = isNatKind, by (Fun) 182] tt >= U15 because tt = U15, by (Fun) 183] U15 >= isNat because U15 = isNat and U15 in Mul, by (Fun) 184] tt >= tt by (Fun) 185] tt >= isNatKind because tt = isNatKind, by (Fun) 186] tt >= isNat because tt = isNat, by (Fun) 187] tt >= tt by (Fun) 188] U31 >= isNatKind because U31 = isNatKind and U31 in Mul, by (Fun) 189] tt >= U33 because tt = U33, by (Fun) 190] U33 >= isNatKind because U33 = isNatKind and U33 in Mul, by (Fun) 191] tt >= U35 because tt = U35, by (Fun) 192] U35 >= isNat because U35 = isNat and U35 in Mul, by (Fun) 193] tt >= tt by (Fun) 194] tt >= isNatKind because tt = isNatKind, by (Fun) 195] tt >= tt by (Fun) 196] tt >= tt by (Fun) 197] U61 >= U62 because U61 = U62 and U61 in Mul, by (Fun) 198] U62 >= tt because U62 = tt, by (Fun) 199] X >= X by (Meta) 200] X >= X by (Meta) 201] U81(tt, X, Y) >= U82(isNatKind, X, Y) because U81 = U82, U81 in Mul, [168], [169] and [170], by (Fun) 202] U82(tt, X, Y) >= U83(isNat, X, Y) because U82 = U83, U82 in Mul, [172], [169] and [170], by (Fun) 203] U83(tt, X, Y) >= U84(isNatKind, X, Y) because U83 = U84, U83 in Mul, [174], [169] and [170], by (Fun) 204] U84(tt, X, Y) >= s(plus(Y, X)) because [205], by (Star) 205] U84*(tt, X, Y) >= s(plus(Y, X)) because U84 > s and [206], by (Copy) 206] U84*(tt, X, Y) >= plus(Y, X) because U84 = plus, U84 in Mul, [169] and [170], by (Stat) 207] _|_ >= _|_ by (Bot) 208] _|_ >= _|_ by (Bot) 209] isNat >= tt because isNat = tt, by (Fun) 210] isNat >= U11 because isNat = U11 and isNat in Mul, by (Fun) 211] isNat >= isNatKind because isNat = isNatKind and isNat in Mul, by (Fun) 212] isNat >= U31 because isNat = U31 and isNat in Mul, by (Fun) 213] isNatKind >= tt because isNatKind = tt, by (Fun) 214] isNatKind >= isNatKind because isNatKind in Mul, by (Fun) 215] isNatKind >= isNatKind because isNatKind in Mul, by (Fun) 216] isNatKind >= U61 because isNatKind = U61 and isNatKind in Mul, by (Fun) 217] plus(X, _|_) >= X because [218], by (Star) 218] plus*(X, _|_) >= X because [200], by (Select) 219] plus(X, s(Y)) >= U81(isNat, Y, X) because [220], by (Star) 220] plus*(X, s(Y)) >= U81(isNat, Y, X) because plus = U81, plus in Mul, [170], [221] and [223], by (Stat) 221] s(Y) > isNat because [222], by definition 222] s*(Y) >= isNat because s = isNat and s in Mul, by (Stat) 223] s(Y) > Y because [224], by definition 224] s*(Y) >= Y because [169], by (Select) 225] x(X, _|_) >= _|_ by (Bot) 226] x(X, s(Y)) >= U101(isNat, Y, X) because [227], by (Star) 227] x*(X, s(Y)) >= U101(isNat, Y, X) because x = U101, x in Mul, [170], [221] and [223], by (Stat) 228] _|_ >= _|_ by (Bot) 229] plus(X, Y) >= n!6220!6220plus(X, Y) because plus = n!6220!6220plus, plus in Mul, [143] and [144], by (Fun) 230] s(X) >= n!6220!6220s(X) because s = n!6220!6220s, s in Mul and [231], by (Fun) 231] X >= X by (Meta) 232] x(X, Y) >= n!6220!6220x(X, Y) because x = n!6220!6220x, x in Mul, [143] and [144], by (Fun) 233] _|_ >= _|_ by (Bot) 234] n!6220!6220plus(X, Y) >= plus(X, Y) because n!6220!6220plus = plus, n!6220!6220plus in Mul, [143] and [144], by (Fun) 235] n!6220!6220s(X) >= s(X) because n!6220!6220s = s, n!6220!6220s in Mul and [236], by (Fun) 236] X >= X by (Meta) 237] n!6220!6220x(X, Y) >= x(X, Y) because n!6220!6220x = x, n!6220!6220x in Mul, [143] and [144], by (Fun) 238] X >= X by (Meta) By the observations in [Kop12, Sec. 6.6], this reduction pair suffices; we may thus replace the dependency pair problem (P_3, R_0, minimal, formative) by (P_4, R_0, minimal, formative), where P_4 consists of: U21#(tt, X) =#> U22#(isNatKind(activate(X)), activate(X)) U21#(tt, X) =#> isNatKind#(activate(X)) U21#(tt, X) =#> activate#(X) U21#(tt, X) =#> activate#(X) U22#(tt, X) =#> isNat#(activate(X)) U31#(tt, X, Y) =#> U32#(isNatKind(activate(X)), activate(X), activate(Y)) U31#(tt, X, Y) =#> isNatKind#(activate(X)) U31#(tt, X, Y) =#> activate#(X) U31#(tt, X, Y) =#> activate#(X) U31#(tt, X, Y) =#> activate#(Y) U32#(tt, X, Y) =#> U33#(isNatKind(activate(Y)), activate(X), activate(Y)) U32#(tt, X, Y) =#> isNatKind#(activate(Y)) U32#(tt, X, Y) =#> activate#(Y) U32#(tt, X, Y) =#> activate#(X) U32#(tt, X, Y) =#> activate#(Y) U33#(tt, X, Y) =#> U34#(isNatKind(activate(Y)), activate(X), activate(Y)) U33#(tt, X, Y) =#> isNatKind#(activate(Y)) U33#(tt, X, Y) =#> activate#(Y) U33#(tt, X, Y) =#> activate#(X) U33#(tt, X, Y) =#> activate#(Y) U34#(tt, X, Y) =#> U35#(isNat(activate(X)), activate(Y)) U34#(tt, X, Y) =#> isNat#(activate(X)) U34#(tt, X, Y) =#> activate#(X) U34#(tt, X, Y) =#> activate#(Y) U35#(tt, X) =#> isNat#(activate(X)) U35#(tt, X) =#> activate#(X) U61#(tt, X) =#> isNatKind#(activate(X)) isNat#(n!6220!6220plus(X, Y)) =#> isNatKind#(activate(X)) isNat#(n!6220!6220plus(X, Y)) =#> activate#(X) isNat#(n!6220!6220plus(X, Y)) =#> activate#(X) isNat#(n!6220!6220plus(X, Y)) =#> activate#(Y) isNat#(n!6220!6220s(X)) =#> U21#(isNatKind(activate(X)), activate(X)) isNat#(n!6220!6220s(X)) =#> isNatKind#(activate(X)) isNat#(n!6220!6220s(X)) =#> activate#(X) isNat#(n!6220!6220s(X)) =#> activate#(X) isNat#(n!6220!6220x(X, Y)) =#> U31#(isNatKind(activate(X)), activate(X), activate(Y)) isNat#(n!6220!6220x(X, Y)) =#> isNatKind#(activate(X)) isNat#(n!6220!6220x(X, Y)) =#> activate#(X) isNat#(n!6220!6220x(X, Y)) =#> activate#(X) isNat#(n!6220!6220x(X, Y)) =#> activate#(Y) isNatKind#(n!6220!6220plus(X, Y)) =#> isNatKind#(activate(X)) isNatKind#(n!6220!6220plus(X, Y)) =#> activate#(X) isNatKind#(n!6220!6220plus(X, Y)) =#> activate#(Y) isNatKind#(n!6220!6220s(X)) =#> isNatKind#(activate(X)) isNatKind#(n!6220!6220s(X)) =#> activate#(X) isNatKind#(n!6220!6220x(X, Y)) =#> U61#(isNatKind(activate(X)), activate(Y)) isNatKind#(n!6220!6220x(X, Y)) =#> isNatKind#(activate(X)) isNatKind#(n!6220!6220x(X, Y)) =#> activate#(X) isNatKind#(n!6220!6220x(X, Y)) =#> activate#(Y) plus#(X, 0) =#> isNat#(X) plus#(X, s(Y)) =#> isNat#(Y) x#(X, 0) =#> isNat#(X) x#(X, s(Y)) =#> isNat#(Y) activate#(n!6220!6220plus(X, Y)) =#> plus#(activate(X), activate(Y)) activate#(n!6220!6220plus(X, Y)) =#> activate#(X) activate#(n!6220!6220plus(X, Y)) =#> activate#(Y) activate#(n!6220!6220s(X)) =#> activate#(X) activate#(n!6220!6220x(X, Y)) =#> x#(activate(X), activate(Y)) activate#(n!6220!6220x(X, Y)) =#> activate#(X) activate#(n!6220!6220x(X, Y)) =#> activate#(Y) Thus, the original system is terminating if (P_4, R_0, minimal, formative) is finite. We consider the dependency pair problem (P_4, R_0, minimal, formative). We will use the reduction pair processor [Kop12, Thm. 7.16]. It suffices to find a standard reduction pair [Kop12, Def. 6.69]. Thus, we must orient: U21#(tt, X) >? U22#(isNatKind(activate(X)), activate(X)) U21#(tt, X) >? isNatKind#(activate(X)) U21#(tt, X) >? activate#(X) U21#(tt, X) >? activate#(X) U22#(tt, X) >? isNat#(activate(X)) U31#(tt, X, Y) >? U32#(isNatKind(activate(X)), activate(X), activate(Y)) U31#(tt, X, Y) >? isNatKind#(activate(X)) U31#(tt, X, Y) >? activate#(X) U31#(tt, X, Y) >? activate#(X) U31#(tt, X, Y) >? activate#(Y) U32#(tt, X, Y) >? U33#(isNatKind(activate(Y)), activate(X), activate(Y)) U32#(tt, X, Y) >? isNatKind#(activate(Y)) U32#(tt, X, Y) >? activate#(Y) U32#(tt, X, Y) >? activate#(X) U32#(tt, X, Y) >? activate#(Y) U33#(tt, X, Y) >? U34#(isNatKind(activate(Y)), activate(X), activate(Y)) U33#(tt, X, Y) >? isNatKind#(activate(Y)) U33#(tt, X, Y) >? activate#(Y) U33#(tt, X, Y) >? activate#(X) U33#(tt, X, Y) >? activate#(Y) U34#(tt, X, Y) >? U35#(isNat(activate(X)), activate(Y)) U34#(tt, X, Y) >? isNat#(activate(X)) U34#(tt, X, Y) >? activate#(X) U34#(tt, X, Y) >? activate#(Y) U35#(tt, X) >? isNat#(activate(X)) U35#(tt, X) >? activate#(X) U61#(tt, X) >? isNatKind#(activate(X)) isNat#(n!6220!6220plus(X, Y)) >? isNatKind#(activate(X)) isNat#(n!6220!6220plus(X, Y)) >? activate#(X) isNat#(n!6220!6220plus(X, Y)) >? activate#(X) isNat#(n!6220!6220plus(X, Y)) >? activate#(Y) isNat#(n!6220!6220s(X)) >? U21#(isNatKind(activate(X)), activate(X)) isNat#(n!6220!6220s(X)) >? isNatKind#(activate(X)) isNat#(n!6220!6220s(X)) >? activate#(X) isNat#(n!6220!6220s(X)) >? activate#(X) isNat#(n!6220!6220x(X, Y)) >? U31#(isNatKind(activate(X)), activate(X), activate(Y)) isNat#(n!6220!6220x(X, Y)) >? isNatKind#(activate(X)) isNat#(n!6220!6220x(X, Y)) >? activate#(X) isNat#(n!6220!6220x(X, Y)) >? activate#(X) isNat#(n!6220!6220x(X, Y)) >? activate#(Y) isNatKind#(n!6220!6220plus(X, Y)) >? isNatKind#(activate(X)) isNatKind#(n!6220!6220plus(X, Y)) >? activate#(X) isNatKind#(n!6220!6220plus(X, Y)) >? activate#(Y) isNatKind#(n!6220!6220s(X)) >? isNatKind#(activate(X)) isNatKind#(n!6220!6220s(X)) >? activate#(X) isNatKind#(n!6220!6220x(X, Y)) >? U61#(isNatKind(activate(X)), activate(Y)) isNatKind#(n!6220!6220x(X, Y)) >? isNatKind#(activate(X)) isNatKind#(n!6220!6220x(X, Y)) >? activate#(X) isNatKind#(n!6220!6220x(X, Y)) >? activate#(Y) plus#(X, 0) >? isNat#(X) plus#(X, s(Y)) >? isNat#(Y) x#(X, 0) >? isNat#(X) x#(X, s(Y)) >? isNat#(Y) activate#(n!6220!6220plus(X, Y)) >? plus#(activate(X), activate(Y)) activate#(n!6220!6220plus(X, Y)) >? activate#(X) activate#(n!6220!6220plus(X, Y)) >? activate#(Y) activate#(n!6220!6220s(X)) >? activate#(X) activate#(n!6220!6220x(X, Y)) >? x#(activate(X), activate(Y)) activate#(n!6220!6220x(X, Y)) >? activate#(X) activate#(n!6220!6220x(X, Y)) >? activate#(Y) U101(tt, X, Y) >= U102(isNatKind(activate(X)), activate(X), activate(Y)) U102(tt, X, Y) >= U103(isNat(activate(Y)), activate(X), activate(Y)) U103(tt, X, Y) >= U104(isNatKind(activate(Y)), activate(X), activate(Y)) U104(tt, X, Y) >= plus(x(activate(Y), activate(X)), activate(Y)) U11(tt, X, Y) >= U12(isNatKind(activate(X)), activate(X), activate(Y)) U12(tt, X, Y) >= U13(isNatKind(activate(Y)), activate(X), activate(Y)) U13(tt, X, Y) >= U14(isNatKind(activate(Y)), activate(X), activate(Y)) U14(tt, X, Y) >= U15(isNat(activate(X)), activate(Y)) U15(tt, X) >= U16(isNat(activate(X))) U16(tt) >= tt U21(tt, X) >= U22(isNatKind(activate(X)), activate(X)) U22(tt, X) >= U23(isNat(activate(X))) U23(tt) >= tt U31(tt, X, Y) >= U32(isNatKind(activate(X)), activate(X), activate(Y)) U32(tt, X, Y) >= U33(isNatKind(activate(Y)), activate(X), activate(Y)) U33(tt, X, Y) >= U34(isNatKind(activate(Y)), activate(X), activate(Y)) U34(tt, X, Y) >= U35(isNat(activate(X)), activate(Y)) U35(tt, X) >= U36(isNat(activate(X))) U36(tt) >= tt U41(tt, X) >= U42(isNatKind(activate(X))) U42(tt) >= tt U51(tt) >= tt U61(tt, X) >= U62(isNatKind(activate(X))) U62(tt) >= tt U71(tt, X) >= U72(isNatKind(activate(X)), activate(X)) U72(tt, X) >= activate(X) U81(tt, X, Y) >= U82(isNatKind(activate(X)), activate(X), activate(Y)) U82(tt, X, Y) >= U83(isNat(activate(Y)), activate(X), activate(Y)) U83(tt, X, Y) >= U84(isNatKind(activate(Y)), activate(X), activate(Y)) U84(tt, X, Y) >= s(plus(activate(Y), activate(X))) U91(tt, X) >= U92(isNatKind(activate(X))) U92(tt) >= 0 isNat(n!6220!62200) >= tt isNat(n!6220!6220plus(X, Y)) >= U11(isNatKind(activate(X)), activate(X), activate(Y)) isNat(n!6220!6220s(X)) >= U21(isNatKind(activate(X)), activate(X)) isNat(n!6220!6220x(X, Y)) >= U31(isNatKind(activate(X)), activate(X), activate(Y)) isNatKind(n!6220!62200) >= tt isNatKind(n!6220!6220plus(X, Y)) >= U41(isNatKind(activate(X)), activate(Y)) isNatKind(n!6220!6220s(X)) >= U51(isNatKind(activate(X))) isNatKind(n!6220!6220x(X, Y)) >= U61(isNatKind(activate(X)), activate(Y)) plus(X, 0) >= U71(isNat(X), X) plus(X, s(Y)) >= U81(isNat(Y), Y, X) x(X, 0) >= U91(isNat(X), X) x(X, s(Y)) >= U101(isNat(Y), Y, X) 0 >= n!6220!62200 plus(X, Y) >= n!6220!6220plus(X, Y) s(X) >= n!6220!6220s(X) x(X, Y) >= n!6220!6220x(X, Y) activate(n!6220!62200) >= 0 activate(n!6220!6220plus(X, Y)) >= plus(activate(X), activate(Y)) activate(n!6220!6220s(X)) >= s(activate(X)) activate(n!6220!6220x(X, Y)) >= x(activate(X), activate(Y)) activate(X) >= X Since this representation is not advantageous for the higher-order recursive path ordering, we present the strict requirements in their unextended form, which is not problematic since for any F, s and substituion gamma: (F s)gamma beta-reduces to F(s)gamma.) We use a recursive path ordering as defined in [Kop12, Chapter 5]. Argument functions: [[0]] = _|_ [[U11(x_1, x_2, x_3)]] = x_1 [[U12(x_1, x_2, x_3)]] = U12 [[U13(x_1, x_2, x_3)]] = U13 [[U14(x_1, x_2, x_3)]] = U14 [[U15(x_1, x_2)]] = x_1 [[U16(x_1)]] = U16 [[U21(x_1, x_2)]] = x_1 [[U22(x_1, x_2)]] = x_1 [[U23(x_1)]] = x_1 [[U31(x_1, x_2, x_3)]] = U31 [[U31#(x_1, x_2, x_3)]] = U31#(x_2, x_3) [[U32(x_1, x_2, x_3)]] = U32 [[U33(x_1, x_2, x_3)]] = U33 [[U34(x_1, x_2, x_3)]] = U34 [[U35(x_1, x_2)]] = x_1 [[U36(x_1)]] = x_1 [[U41(x_1, x_2)]] = x_1 [[U42(x_1)]] = x_1 [[U51(x_1)]] = x_1 [[U61(x_1, x_2)]] = x_1 [[U61#(x_1, x_2)]] = U61#(x_2) [[U62(x_1)]] = U62 [[U92(x_1)]] = x_1 [[activate(x_1)]] = x_1 [[isNat(x_1)]] = isNat [[isNatKind(x_1)]] = isNatKind [[n!6220!62200]] = _|_ We choose Lex = {} and Mul = {U101, U102, U103, U104, U12, U13, U14, U16, U21#, U22#, U31, U31#, U32, U32#, U33, U33#, U34, U34#, U35#, U61#, U62, U71, U72, U81, U82, U83, U84, U91, activate#, isNat, isNatKind, isNatKind#, isNat#, n!6220!6220plus, n!6220!6220s, n!6220!6220x, plus, plus#, s, tt, x, x#}, and the following precedence: U101 = U102 = U103 = U104 = U31# = n!6220!6220x = x > U32# = U33# = U34# > U35# > U21# = U22# = U61# = activate# = isNatKind# = isNat# = plus# = x# > U81 = U82 = U83 = U84 = n!6220!6220plus = plus > n!6220!6220s = s > U12 = U13 = U14 = U16 = U31 = U32 = U33 = U34 = U62 = isNat = isNatKind = tt > U71 = U72 > U91 Taking the argument function into account, and fixing the greater / greater equal choices, the constraints can be denoted as follows: U21#(tt, X) >= U22#(isNatKind, X) U21#(tt, X) >= isNatKind#(X) U21#(tt, X) >= activate#(X) U21#(tt, X) >= activate#(X) U22#(tt, X) > isNat#(X) U31#(X, Y) >= U32#(isNatKind, X, Y) U31#(X, Y) >= isNatKind#(X) U31#(X, Y) >= activate#(X) U31#(X, Y) >= activate#(X) U31#(X, Y) >= activate#(Y) U32#(tt, X, Y) >= U33#(isNatKind, X, Y) U32#(tt, X, Y) >= isNatKind#(Y) U32#(tt, X, Y) >= activate#(Y) U32#(tt, X, Y) >= activate#(X) U32#(tt, X, Y) >= activate#(Y) U33#(tt, X, Y) >= U34#(isNatKind, X, Y) U33#(tt, X, Y) >= isNatKind#(Y) U33#(tt, X, Y) >= activate#(Y) U33#(tt, X, Y) >= activate#(X) U33#(tt, X, Y) >= activate#(Y) U34#(tt, X, Y) >= U35#(isNat, Y) U34#(tt, X, Y) >= isNat#(X) U34#(tt, X, Y) >= activate#(X) U34#(tt, X, Y) >= activate#(Y) U35#(tt, X) >= isNat#(X) U35#(tt, X) >= activate#(X) U61#(X) >= isNatKind#(X) isNat#(n!6220!6220plus(X, Y)) >= isNatKind#(X) isNat#(n!6220!6220plus(X, Y)) >= activate#(X) isNat#(n!6220!6220plus(X, Y)) >= activate#(X) isNat#(n!6220!6220plus(X, Y)) >= activate#(Y) isNat#(n!6220!6220s(X)) >= U21#(isNatKind, X) isNat#(n!6220!6220s(X)) >= isNatKind#(X) isNat#(n!6220!6220s(X)) >= activate#(X) isNat#(n!6220!6220s(X)) >= activate#(X) isNat#(n!6220!6220x(X, Y)) >= U31#(X, Y) isNat#(n!6220!6220x(X, Y)) >= isNatKind#(X) isNat#(n!6220!6220x(X, Y)) >= activate#(X) isNat#(n!6220!6220x(X, Y)) >= activate#(X) isNat#(n!6220!6220x(X, Y)) >= activate#(Y) isNatKind#(n!6220!6220plus(X, Y)) >= isNatKind#(X) isNatKind#(n!6220!6220plus(X, Y)) >= activate#(X) isNatKind#(n!6220!6220plus(X, Y)) >= activate#(Y) isNatKind#(n!6220!6220s(X)) >= isNatKind#(X) isNatKind#(n!6220!6220s(X)) >= activate#(X) isNatKind#(n!6220!6220x(X, Y)) >= U61#(Y) isNatKind#(n!6220!6220x(X, Y)) >= isNatKind#(X) isNatKind#(n!6220!6220x(X, Y)) >= activate#(X) isNatKind#(n!6220!6220x(X, Y)) >= activate#(Y) plus#(X, _|_) >= isNat#(X) plus#(X, s(Y)) >= isNat#(Y) x#(X, _|_) >= isNat#(X) x#(X, s(Y)) >= isNat#(Y) activate#(n!6220!6220plus(X, Y)) >= plus#(X, Y) activate#(n!6220!6220plus(X, Y)) >= activate#(X) activate#(n!6220!6220plus(X, Y)) >= activate#(Y) activate#(n!6220!6220s(X)) >= activate#(X) activate#(n!6220!6220x(X, Y)) >= x#(X, Y) activate#(n!6220!6220x(X, Y)) >= activate#(X) activate#(n!6220!6220x(X, Y)) >= activate#(Y) U101(tt, X, Y) >= U102(isNatKind, X, Y) U102(tt, X, Y) >= U103(isNat, X, Y) U103(tt, X, Y) >= U104(isNatKind, X, Y) U104(tt, X, Y) >= plus(x(Y, X), Y) tt >= U12 U12 >= U13 U13 >= U14 U14 >= isNat tt >= U16 U16 >= tt tt >= isNatKind tt >= isNat tt >= tt U31 >= U32 U32 >= U33 U33 >= U34 U34 >= isNat tt >= isNat tt >= tt tt >= isNatKind tt >= tt tt >= tt tt >= U62 U62 >= tt U71(tt, X) >= U72(isNatKind, X) U72(tt, X) >= X U81(tt, X, Y) >= U82(isNatKind, X, Y) U82(tt, X, Y) >= U83(isNat, X, Y) U83(tt, X, Y) >= U84(isNatKind, X, Y) U84(tt, X, Y) >= s(plus(Y, X)) U91(tt, X) >= isNatKind tt >= _|_ isNat >= tt isNat >= isNatKind isNat >= isNatKind isNat >= U31 isNatKind >= tt isNatKind >= isNatKind isNatKind >= isNatKind isNatKind >= isNatKind plus(X, _|_) >= U71(isNat, X) plus(X, s(Y)) >= U81(isNat, Y, X) x(X, _|_) >= U91(isNat, X) x(X, s(Y)) >= U101(isNat, Y, X) _|_ >= _|_ plus(X, Y) >= n!6220!6220plus(X, Y) s(X) >= n!6220!6220s(X) x(X, Y) >= n!6220!6220x(X, Y) _|_ >= _|_ n!6220!6220plus(X, Y) >= plus(X, Y) n!6220!6220s(X) >= s(X) n!6220!6220x(X, Y) >= x(X, Y) X >= X With these choices, we have: 1] U21#(tt, X) >= U22#(isNatKind, X) because U21# = U22#, U21# in Mul, [2] and [3], by (Fun) 2] tt >= isNatKind because tt = isNatKind, by (Fun) 3] X >= X by (Meta) 4] U21#(tt, X) >= isNatKind#(X) because [5], by (Star) 5] U21#*(tt, X) >= isNatKind#(X) because U21# = isNatKind#, U21# in Mul and [3], by (Stat) 6] U21#(tt, X) >= activate#(X) because [7], by (Star) 7] U21#*(tt, X) >= activate#(X) because U21# = activate#, U21# in Mul and [3], by (Stat) 8] U21#(tt, X) >= activate#(X) because [7], by (Star) 9] U22#(tt, X) > isNat#(X) because [10], by definition 10] U22#*(tt, X) >= isNat#(X) because U22# = isNat#, U22# in Mul and [3], by (Stat) 11] U31#(X, Y) >= U32#(isNatKind, X, Y) because [12], by (Star) 12] U31#*(X, Y) >= U32#(isNatKind, X, Y) because U31# > U32#, [13], [14] and [15], by (Copy) 13] U31#*(X, Y) >= isNatKind because U31# > isNatKind, by (Copy) 14] U31#*(X, Y) >= X because [3], by (Select) 15] U31#*(X, Y) >= Y because [16], by (Select) 16] Y >= Y by (Meta) 17] U31#(X, Y) >= isNatKind#(X) because [18], by (Star) 18] U31#*(X, Y) >= isNatKind#(X) because U31# > isNatKind# and [14], by (Copy) 19] U31#(X, Y) >= activate#(X) because [20], by (Star) 20] U31#*(X, Y) >= activate#(X) because U31# > activate# and [14], by (Copy) 21] U31#(X, Y) >= activate#(X) because [20], by (Star) 22] U31#(X, Y) >= activate#(Y) because [23], by (Star) 23] U31#*(X, Y) >= activate#(Y) because U31# > activate# and [15], by (Copy) 24] U32#(tt, X, Y) >= U33#(isNatKind, X, Y) because U32# = U33#, U32# in Mul, [25], [3] and [26], by (Fun) 25] tt >= isNatKind because tt = isNatKind, by (Fun) 26] Y >= Y by (Meta) 27] U32#(tt, X, Y) >= isNatKind#(Y) because [28], by (Star) 28] U32#*(tt, X, Y) >= isNatKind#(Y) because U32# > isNatKind# and [29], by (Copy) 29] U32#*(tt, X, Y) >= Y because [26], by (Select) 30] U32#(tt, X, Y) >= activate#(Y) because [31], by (Star) 31] U32#*(tt, X, Y) >= activate#(Y) because U32# > activate# and [29], by (Copy) 32] U32#(tt, X, Y) >= activate#(X) because [33], by (Star) 33] U32#*(tt, X, Y) >= activate#(X) because U32# > activate# and [34], by (Copy) 34] U32#*(tt, X, Y) >= X because [3], by (Select) 35] U32#(tt, X, Y) >= activate#(Y) because [31], by (Star) 36] U33#(tt, X, Y) >= U34#(isNatKind, X, Y) because U33# = U34#, U33# in Mul, [25], [3] and [26], by (Fun) 37] U33#(tt, X, Y) >= isNatKind#(Y) because [38], by (Star) 38] U33#*(tt, X, Y) >= isNatKind#(Y) because U33# > isNatKind# and [39], by (Copy) 39] U33#*(tt, X, Y) >= Y because [26], by (Select) 40] U33#(tt, X, Y) >= activate#(Y) because [41], by (Star) 41] U33#*(tt, X, Y) >= activate#(Y) because U33# > activate# and [39], by (Copy) 42] U33#(tt, X, Y) >= activate#(X) because [43], by (Star) 43] U33#*(tt, X, Y) >= activate#(X) because U33# > activate# and [44], by (Copy) 44] U33#*(tt, X, Y) >= X because [3], by (Select) 45] U33#(tt, X, Y) >= activate#(Y) because [41], by (Star) 46] U34#(tt, X, Y) >= U35#(isNat, Y) because [47], by (Star) 47] U34#*(tt, X, Y) >= U35#(isNat, Y) because U34# > U35#, [48] and [49], by (Copy) 48] U34#*(tt, X, Y) >= isNat because U34# > isNat, by (Copy) 49] U34#*(tt, X, Y) >= Y because [26], by (Select) 50] U34#(tt, X, Y) >= isNat#(X) because [51], by (Star) 51] U34#*(tt, X, Y) >= isNat#(X) because U34# > isNat# and [52], by (Copy) 52] U34#*(tt, X, Y) >= X because [3], by (Select) 53] U34#(tt, X, Y) >= activate#(X) because [54], by (Star) 54] U34#*(tt, X, Y) >= activate#(X) because U34# > activate# and [52], by (Copy) 55] U34#(tt, X, Y) >= activate#(Y) because [56], by (Star) 56] U34#*(tt, X, Y) >= activate#(Y) because U34# > activate# and [49], by (Copy) 57] U35#(tt, X) >= isNat#(X) because [58], by (Star) 58] U35#*(tt, X) >= isNat#(X) because U35# > isNat# and [59], by (Copy) 59] U35#*(tt, X) >= X because [26], by (Select) 60] U35#(tt, X) >= activate#(X) because [61], by (Star) 61] U35#*(tt, X) >= activate#(X) because U35# > activate# and [59], by (Copy) 62] U61#(X) >= isNatKind#(X) because U61# = isNatKind#, U61# in Mul and [26], by (Fun) 63] isNat#(n!6220!6220plus(X, Y)) >= isNatKind#(X) because isNat# = isNatKind#, isNat# in Mul and [64], by (Fun) 64] n!6220!6220plus(X, Y) >= X because [65], by (Star) 65] n!6220!6220plus*(X, Y) >= X because [3], by (Select) 66] isNat#(n!6220!6220plus(X, Y)) >= activate#(X) because isNat# = activate#, isNat# in Mul and [64], by (Fun) 67] isNat#(n!6220!6220plus(X, Y)) >= activate#(X) because isNat# = activate#, isNat# in Mul and [64], by (Fun) 68] isNat#(n!6220!6220plus(X, Y)) >= activate#(Y) because [69], by (Star) 69] isNat#*(n!6220!6220plus(X, Y)) >= activate#(Y) because isNat# = activate#, isNat# in Mul and [70], by (Stat) 70] n!6220!6220plus(X, Y) > Y because [71], by definition 71] n!6220!6220plus*(X, Y) >= Y because [26], by (Select) 72] isNat#(n!6220!6220s(X)) >= U21#(isNatKind, X) because [73], by (Star) 73] isNat#*(n!6220!6220s(X)) >= U21#(isNatKind, X) because isNat# = U21#, isNat# in Mul, [74] and [76], by (Stat) 74] n!6220!6220s(X) > isNatKind because [75], by definition 75] n!6220!6220s*(X) >= isNatKind because n!6220!6220s > isNatKind, by (Copy) 76] n!6220!6220s(X) > X because [77], by definition 77] n!6220!6220s*(X) >= X because [3], by (Select) 78] isNat#(n!6220!6220s(X)) >= isNatKind#(X) because isNat# = isNatKind#, isNat# in Mul and [79], by (Fun) 79] n!6220!6220s(X) >= X because [77], by (Star) 80] isNat#(n!6220!6220s(X)) >= activate#(X) because isNat# = activate#, isNat# in Mul and [79], by (Fun) 81] isNat#(n!6220!6220s(X)) >= activate#(X) because isNat# = activate#, isNat# in Mul and [79], by (Fun) 82] isNat#(n!6220!6220x(X, Y)) >= U31#(X, Y) because [83], by (Star) 83] isNat#*(n!6220!6220x(X, Y)) >= U31#(X, Y) because [84], by (Select) 84] n!6220!6220x(X, Y) >= U31#(X, Y) because n!6220!6220x = U31#, n!6220!6220x in Mul, [3] and [26], by (Fun) 85] isNat#(n!6220!6220x(X, Y)) >= isNatKind#(X) because isNat# = isNatKind#, isNat# in Mul and [86], by (Fun) 86] n!6220!6220x(X, Y) >= X because [87], by (Star) 87] n!6220!6220x*(X, Y) >= X because [3], by (Select) 88] isNat#(n!6220!6220x(X, Y)) >= activate#(X) because isNat# = activate#, isNat# in Mul and [86], by (Fun) 89] isNat#(n!6220!6220x(X, Y)) >= activate#(X) because isNat# = activate#, isNat# in Mul and [86], by (Fun) 90] isNat#(n!6220!6220x(X, Y)) >= activate#(Y) because isNat# = activate#, isNat# in Mul and [91], by (Fun) 91] n!6220!6220x(X, Y) >= Y because [92], by (Star) 92] n!6220!6220x*(X, Y) >= Y because [26], by (Select) 93] isNatKind#(n!6220!6220plus(X, Y)) >= isNatKind#(X) because isNatKind# in Mul and [64], by (Fun) 94] isNatKind#(n!6220!6220plus(X, Y)) >= activate#(X) because isNatKind# = activate#, isNatKind# in Mul and [64], by (Fun) 95] isNatKind#(n!6220!6220plus(X, Y)) >= activate#(Y) because [96], by (Star) 96] isNatKind#*(n!6220!6220plus(X, Y)) >= activate#(Y) because isNatKind# = activate#, isNatKind# in Mul and [70], by (Stat) 97] isNatKind#(n!6220!6220s(X)) >= isNatKind#(X) because isNatKind# in Mul and [79], by (Fun) 98] isNatKind#(n!6220!6220s(X)) >= activate#(X) because isNatKind# = activate#, isNatKind# in Mul and [79], by (Fun) 99] isNatKind#(n!6220!6220x(X, Y)) >= U61#(Y) because isNatKind# = U61#, isNatKind# in Mul and [100], by (Fun) 100] n!6220!6220x(X, Y) >= Y because [92], by (Star) 101] isNatKind#(n!6220!6220x(X, Y)) >= isNatKind#(X) because isNatKind# in Mul and [86], by (Fun) 102] isNatKind#(n!6220!6220x(X, Y)) >= activate#(X) because isNatKind# = activate#, isNatKind# in Mul and [86], by (Fun) 103] isNatKind#(n!6220!6220x(X, Y)) >= activate#(Y) because isNatKind# = activate#, isNatKind# in Mul and [100], by (Fun) 104] plus#(X, _|_) >= isNat#(X) because [105], by (Star) 105] plus#*(X, _|_) >= isNat#(X) because plus# = isNat#, plus# in Mul and [106], by (Stat) 106] X >= X by (Meta) 107] plus#(X, s(Y)) >= isNat#(Y) because [108], by (Star) 108] plus#*(X, s(Y)) >= isNat#(Y) because plus# = isNat#, plus# in Mul and [109], by (Stat) 109] s(Y) >= Y because [110], by (Star) 110] s*(Y) >= Y because [111], by (Select) 111] Y >= Y by (Meta) 112] x#(X, _|_) >= isNat#(X) because [113], by (Star) 113] x#*(X, _|_) >= isNat#(X) because x# = isNat#, x# in Mul and [106], by (Stat) 114] x#(X, s(Y)) >= isNat#(Y) because [115], by (Star) 115] x#*(X, s(Y)) >= isNat#(Y) because x# = isNat#, x# in Mul and [109], by (Stat) 116] activate#(n!6220!6220plus(X, Y)) >= plus#(X, Y) because [117], by (Star) 117] activate#*(n!6220!6220plus(X, Y)) >= plus#(X, Y) because activate# = plus#, activate# in Mul, [118] and [121], by (Stat) 118] n!6220!6220plus(X, Y) > X because [119], by definition 119] n!6220!6220plus*(X, Y) >= X because [120], by (Select) 120] X >= X by (Meta) 121] n!6220!6220plus(X, Y) > Y because [122], by definition 122] n!6220!6220plus*(X, Y) >= Y because [123], by (Select) 123] Y >= Y by (Meta) 124] activate#(n!6220!6220plus(X, Y)) >= activate#(X) because [125], by (Star) 125] activate#*(n!6220!6220plus(X, Y)) >= activate#(X) because activate# in Mul and [126], by (Stat) 126] n!6220!6220plus(X, Y) > X because [119], by definition 127] activate#(n!6220!6220plus(X, Y)) >= activate#(Y) because [128], by (Star) 128] activate#*(n!6220!6220plus(X, Y)) >= activate#(Y) because activate# in Mul and [129], by (Stat) 129] n!6220!6220plus(X, Y) > Y because [122], by definition 130] activate#(n!6220!6220s(X)) >= activate#(X) because activate# in Mul and [131], by (Fun) 131] n!6220!6220s(X) >= X because [132], by (Star) 132] n!6220!6220s*(X) >= X because [133], by (Select) 133] X >= X by (Meta) 134] activate#(n!6220!6220x(X, Y)) >= x#(X, Y) because [135], by (Star) 135] activate#*(n!6220!6220x(X, Y)) >= x#(X, Y) because activate# = x#, activate# in Mul, [136] and [138], by (Stat) 136] n!6220!6220x(X, Y) > X because [137], by definition 137] n!6220!6220x*(X, Y) >= X because [120], by (Select) 138] n!6220!6220x(X, Y) > Y because [139], by definition 139] n!6220!6220x*(X, Y) >= Y because [123], by (Select) 140] activate#(n!6220!6220x(X, Y)) >= activate#(X) because activate# in Mul and [141], by (Fun) 141] n!6220!6220x(X, Y) >= X because [137], by (Star) 142] activate#(n!6220!6220x(X, Y)) >= activate#(Y) because activate# in Mul and [143], by (Fun) 143] n!6220!6220x(X, Y) >= Y because [139], by (Star) 144] U101(tt, X, Y) >= U102(isNatKind, X, Y) because U101 = U102, U101 in Mul, [145], [146] and [147], by (Fun) 145] tt >= isNatKind because tt = isNatKind, by (Fun) 146] X >= X by (Meta) 147] Y >= Y by (Meta) 148] U102(tt, X, Y) >= U103(isNat, X, Y) because U102 = U103, U102 in Mul, [149], [146] and [147], by (Fun) 149] tt >= isNat because tt = isNat, by (Fun) 150] U103(tt, X, Y) >= U104(isNatKind, X, Y) because U103 = U104, U103 in Mul, [151], [146] and [147], by (Fun) 151] tt >= isNatKind because tt = isNatKind, by (Fun) 152] U104(tt, X, Y) >= plus(x(Y, X), Y) because [153], by (Star) 153] U104*(tt, X, Y) >= plus(x(Y, X), Y) because U104 > plus, [154] and [155], by (Copy) 154] U104*(tt, X, Y) >= x(Y, X) because U104 = x, U104 in Mul, [146] and [147], by (Stat) 155] U104*(tt, X, Y) >= Y because [147], by (Select) 156] tt >= U12 because tt = U12, by (Fun) 157] U12 >= U13 because U12 = U13 and U12 in Mul, by (Fun) 158] U13 >= U14 because U13 = U14 and U13 in Mul, by (Fun) 159] U14 >= isNat because U14 = isNat and U14 in Mul, by (Fun) 160] tt >= U16 because tt = U16, by (Fun) 161] U16 >= tt because U16 = tt, by (Fun) 162] tt >= isNatKind because tt = isNatKind, by (Fun) 163] tt >= isNat because tt = isNat, by (Fun) 164] tt >= tt by (Fun) 165] U31 >= U32 because U31 = U32 and U31 in Mul, by (Fun) 166] U32 >= U33 because U32 = U33 and U32 in Mul, by (Fun) 167] U33 >= U34 because U33 = U34 and U33 in Mul, by (Fun) 168] U34 >= isNat because U34 = isNat and U34 in Mul, by (Fun) 169] tt >= isNat because tt = isNat, by (Fun) 170] tt >= tt by (Fun) 171] tt >= isNatKind because tt = isNatKind, by (Fun) 172] tt >= tt by (Fun) 173] tt >= tt by (Fun) 174] tt >= U62 because tt = U62, by (Fun) 175] U62 >= tt because U62 = tt, by (Fun) 176] U71(tt, X) >= U72(isNatKind, X) because U71 = U72, U71 in Mul, [151] and [147], by (Fun) 177] U72(tt, X) >= X because [178], by (Star) 178] U72*(tt, X) >= X because [147], by (Select) 179] U81(tt, X, Y) >= U82(isNatKind, X, Y) because U81 = U82, U81 in Mul, [145], [146] and [147], by (Fun) 180] U82(tt, X, Y) >= U83(isNat, X, Y) because U82 = U83, U82 in Mul, [149], [146] and [147], by (Fun) 181] U83(tt, X, Y) >= U84(isNatKind, X, Y) because U83 = U84, U83 in Mul, [151], [146] and [147], by (Fun) 182] U84(tt, X, Y) >= s(plus(Y, X)) because [183], by (Star) 183] U84*(tt, X, Y) >= s(plus(Y, X)) because U84 > s and [184], by (Copy) 184] U84*(tt, X, Y) >= plus(Y, X) because U84 = plus, U84 in Mul, [146] and [147], by (Stat) 185] U91(tt, X) >= isNatKind because [186], by (Star) 186] U91*(tt, X) >= isNatKind because [151], by (Select) 187] tt >= _|_ by (Bot) 188] isNat >= tt because isNat = tt, by (Fun) 189] isNat >= isNatKind because isNat = isNatKind and isNat in Mul, by (Fun) 190] isNat >= isNatKind because isNat = isNatKind and isNat in Mul, by (Fun) 191] isNat >= U31 because isNat = U31 and isNat in Mul, by (Fun) 192] isNatKind >= tt because isNatKind = tt, by (Fun) 193] isNatKind >= isNatKind because isNatKind in Mul, by (Fun) 194] isNatKind >= isNatKind because isNatKind in Mul, by (Fun) 195] isNatKind >= isNatKind because isNatKind in Mul, by (Fun) 196] plus(X, _|_) >= U71(isNat, X) because [197], by (Star) 197] plus*(X, _|_) >= U71(isNat, X) because plus > U71, [198] and [199], by (Copy) 198] plus*(X, _|_) >= isNat because plus > isNat, by (Copy) 199] plus*(X, _|_) >= X because [147], by (Select) 200] plus(X, s(Y)) >= U81(isNat, Y, X) because [201], by (Star) 201] plus*(X, s(Y)) >= U81(isNat, Y, X) because plus = U81, plus in Mul, [147], [202] and [204], by (Stat) 202] s(Y) > isNat because [203], by definition 203] s*(Y) >= isNat because s > isNat, by (Copy) 204] s(Y) > Y because [205], by definition 205] s*(Y) >= Y because [146], by (Select) 206] x(X, _|_) >= U91(isNat, X) because [207], by (Star) 207] x*(X, _|_) >= U91(isNat, X) because x > U91, [208] and [209], by (Copy) 208] x*(X, _|_) >= isNat because x > isNat, by (Copy) 209] x*(X, _|_) >= X because [147], by (Select) 210] x(X, s(Y)) >= U101(isNat, Y, X) because [211], by (Star) 211] x*(X, s(Y)) >= U101(isNat, Y, X) because x = U101, x in Mul, [147], [202] and [204], by (Stat) 212] _|_ >= _|_ by (Bot) 213] plus(X, Y) >= n!6220!6220plus(X, Y) because plus = n!6220!6220plus, plus in Mul, [214] and [215], by (Fun) 214] X >= X by (Meta) 215] Y >= Y by (Meta) 216] s(X) >= n!6220!6220s(X) because s = n!6220!6220s, s in Mul and [217], by (Fun) 217] X >= X by (Meta) 218] x(X, Y) >= n!6220!6220x(X, Y) because x = n!6220!6220x, x in Mul, [214] and [215], by (Fun) 219] _|_ >= _|_ by (Bot) 220] n!6220!6220plus(X, Y) >= plus(X, Y) because n!6220!6220plus = plus, n!6220!6220plus in Mul, [221] and [222], by (Fun) 221] X >= X by (Meta) 222] Y >= Y by (Meta) 223] n!6220!6220s(X) >= s(X) because n!6220!6220s = s, n!6220!6220s in Mul and [224], by (Fun) 224] X >= X by (Meta) 225] n!6220!6220x(X, Y) >= x(X, Y) because n!6220!6220x = x, n!6220!6220x in Mul, [221] and [222], by (Fun) 226] X >= X by (Meta) By the observations in [Kop12, Sec. 6.6], this reduction pair suffices; we may thus replace the dependency pair problem (P_4, R_0, minimal, formative) by (P_5, R_0, minimal, formative), where P_5 consists of: U21#(tt, X) =#> U22#(isNatKind(activate(X)), activate(X)) U21#(tt, X) =#> isNatKind#(activate(X)) U21#(tt, X) =#> activate#(X) U21#(tt, X) =#> activate#(X) U31#(tt, X, Y) =#> U32#(isNatKind(activate(X)), activate(X), activate(Y)) U31#(tt, X, Y) =#> isNatKind#(activate(X)) U31#(tt, X, Y) =#> activate#(X) U31#(tt, X, Y) =#> activate#(X) U31#(tt, X, Y) =#> activate#(Y) U32#(tt, X, Y) =#> U33#(isNatKind(activate(Y)), activate(X), activate(Y)) U32#(tt, X, Y) =#> isNatKind#(activate(Y)) U32#(tt, X, Y) =#> activate#(Y) U32#(tt, X, Y) =#> activate#(X) U32#(tt, X, Y) =#> activate#(Y) U33#(tt, X, Y) =#> U34#(isNatKind(activate(Y)), activate(X), activate(Y)) U33#(tt, X, Y) =#> isNatKind#(activate(Y)) U33#(tt, X, Y) =#> activate#(Y) U33#(tt, X, Y) =#> activate#(X) U33#(tt, X, Y) =#> activate#(Y) U34#(tt, X, Y) =#> U35#(isNat(activate(X)), activate(Y)) U34#(tt, X, Y) =#> isNat#(activate(X)) U34#(tt, X, Y) =#> activate#(X) U34#(tt, X, Y) =#> activate#(Y) U35#(tt, X) =#> isNat#(activate(X)) U35#(tt, X) =#> activate#(X) U61#(tt, X) =#> isNatKind#(activate(X)) isNat#(n!6220!6220plus(X, Y)) =#> isNatKind#(activate(X)) isNat#(n!6220!6220plus(X, Y)) =#> activate#(X) isNat#(n!6220!6220plus(X, Y)) =#> activate#(X) isNat#(n!6220!6220plus(X, Y)) =#> activate#(Y) isNat#(n!6220!6220s(X)) =#> U21#(isNatKind(activate(X)), activate(X)) isNat#(n!6220!6220s(X)) =#> isNatKind#(activate(X)) isNat#(n!6220!6220s(X)) =#> activate#(X) isNat#(n!6220!6220s(X)) =#> activate#(X) isNat#(n!6220!6220x(X, Y)) =#> U31#(isNatKind(activate(X)), activate(X), activate(Y)) isNat#(n!6220!6220x(X, Y)) =#> isNatKind#(activate(X)) isNat#(n!6220!6220x(X, Y)) =#> activate#(X) isNat#(n!6220!6220x(X, Y)) =#> activate#(X) isNat#(n!6220!6220x(X, Y)) =#> activate#(Y) isNatKind#(n!6220!6220plus(X, Y)) =#> isNatKind#(activate(X)) isNatKind#(n!6220!6220plus(X, Y)) =#> activate#(X) isNatKind#(n!6220!6220plus(X, Y)) =#> activate#(Y) isNatKind#(n!6220!6220s(X)) =#> isNatKind#(activate(X)) isNatKind#(n!6220!6220s(X)) =#> activate#(X) isNatKind#(n!6220!6220x(X, Y)) =#> U61#(isNatKind(activate(X)), activate(Y)) isNatKind#(n!6220!6220x(X, Y)) =#> isNatKind#(activate(X)) isNatKind#(n!6220!6220x(X, Y)) =#> activate#(X) isNatKind#(n!6220!6220x(X, Y)) =#> activate#(Y) plus#(X, 0) =#> isNat#(X) plus#(X, s(Y)) =#> isNat#(Y) x#(X, 0) =#> isNat#(X) x#(X, s(Y)) =#> isNat#(Y) activate#(n!6220!6220plus(X, Y)) =#> plus#(activate(X), activate(Y)) activate#(n!6220!6220plus(X, Y)) =#> activate#(X) activate#(n!6220!6220plus(X, Y)) =#> activate#(Y) activate#(n!6220!6220s(X)) =#> activate#(X) activate#(n!6220!6220x(X, Y)) =#> x#(activate(X), activate(Y)) activate#(n!6220!6220x(X, Y)) =#> activate#(X) activate#(n!6220!6220x(X, Y)) =#> activate#(Y) Thus, the original system is terminating if (P_5, R_0, minimal, formative) is finite. We consider the dependency pair problem (P_5, R_0, minimal, formative). We place the elements of P in a dependency graph approximation G (see e.g. [Kop12, Thm. 7.27, 7.29], as follows: * 0 : * 1 : 39, 40, 41, 42, 43, 44, 45, 46, 47 * 2 : 52, 53, 54, 55, 56, 57, 58 * 3 : 52, 53, 54, 55, 56, 57, 58 * 4 : 9, 10, 11, 12, 13 * 5 : 39, 40, 41, 42, 43, 44, 45, 46, 47 * 6 : 52, 53, 54, 55, 56, 57, 58 * 7 : 52, 53, 54, 55, 56, 57, 58 * 8 : 52, 53, 54, 55, 56, 57, 58 * 9 : 14, 15, 16, 17, 18 * 10 : 39, 40, 41, 42, 43, 44, 45, 46, 47 * 11 : 52, 53, 54, 55, 56, 57, 58 * 12 : 52, 53, 54, 55, 56, 57, 58 * 13 : 52, 53, 54, 55, 56, 57, 58 * 14 : 19, 20, 21, 22 * 15 : 39, 40, 41, 42, 43, 44, 45, 46, 47 * 16 : 52, 53, 54, 55, 56, 57, 58 * 17 : 52, 53, 54, 55, 56, 57, 58 * 18 : 52, 53, 54, 55, 56, 57, 58 * 19 : 23, 24 * 20 : 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38 * 21 : 52, 53, 54, 55, 56, 57, 58 * 22 : 52, 53, 54, 55, 56, 57, 58 * 23 : 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38 * 24 : 52, 53, 54, 55, 56, 57, 58 * 25 : 39, 40, 41, 42, 43, 44, 45, 46, 47 * 26 : 39, 40, 41, 42, 43, 44, 45, 46, 47 * 27 : 52, 53, 54, 55, 56, 57, 58 * 28 : 52, 53, 54, 55, 56, 57, 58 * 29 : 52, 53, 54, 55, 56, 57, 58 * 30 : 0, 1, 2, 3 * 31 : 39, 40, 41, 42, 43, 44, 45, 46, 47 * 32 : 52, 53, 54, 55, 56, 57, 58 * 33 : 52, 53, 54, 55, 56, 57, 58 * 34 : 4, 5, 6, 7, 8 * 35 : 39, 40, 41, 42, 43, 44, 45, 46, 47 * 36 : 52, 53, 54, 55, 56, 57, 58 * 37 : 52, 53, 54, 55, 56, 57, 58 * 38 : 52, 53, 54, 55, 56, 57, 58 * 39 : 39, 40, 41, 42, 43, 44, 45, 46, 47 * 40 : 52, 53, 54, 55, 56, 57, 58 * 41 : 52, 53, 54, 55, 56, 57, 58 * 42 : 39, 40, 41, 42, 43, 44, 45, 46, 47 * 43 : 52, 53, 54, 55, 56, 57, 58 * 44 : 25 * 45 : 39, 40, 41, 42, 43, 44, 45, 46, 47 * 46 : 52, 53, 54, 55, 56, 57, 58 * 47 : 52, 53, 54, 55, 56, 57, 58 * 48 : 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38 * 49 : 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38 * 50 : 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38 * 51 : 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38 * 52 : 48, 49 * 53 : 52, 53, 54, 55, 56, 57, 58 * 54 : 52, 53, 54, 55, 56, 57, 58 * 55 : 52, 53, 54, 55, 56, 57, 58 * 56 : 50, 51 * 57 : 52, 53, 54, 55, 56, 57, 58 * 58 : 52, 53, 54, 55, 56, 57, 58 This graph has the following strongly connected components: P_6: U21#(tt, X) =#> isNatKind#(activate(X)) U21#(tt, X) =#> activate#(X) U21#(tt, X) =#> activate#(X) U31#(tt, X, Y) =#> U32#(isNatKind(activate(X)), activate(X), activate(Y)) U31#(tt, X, Y) =#> isNatKind#(activate(X)) U31#(tt, X, Y) =#> activate#(X) U31#(tt, X, Y) =#> activate#(X) U31#(tt, X, Y) =#> activate#(Y) U32#(tt, X, Y) =#> U33#(isNatKind(activate(Y)), activate(X), activate(Y)) U32#(tt, X, Y) =#> isNatKind#(activate(Y)) U32#(tt, X, Y) =#> activate#(Y) U32#(tt, X, Y) =#> activate#(X) U32#(tt, X, Y) =#> activate#(Y) U33#(tt, X, Y) =#> U34#(isNatKind(activate(Y)), activate(X), activate(Y)) U33#(tt, X, Y) =#> isNatKind#(activate(Y)) U33#(tt, X, Y) =#> activate#(Y) U33#(tt, X, Y) =#> activate#(X) U33#(tt, X, Y) =#> activate#(Y) U34#(tt, X, Y) =#> U35#(isNat(activate(X)), activate(Y)) U34#(tt, X, Y) =#> isNat#(activate(X)) U34#(tt, X, Y) =#> activate#(X) U34#(tt, X, Y) =#> activate#(Y) U35#(tt, X) =#> isNat#(activate(X)) U35#(tt, X) =#> activate#(X) U61#(tt, X) =#> isNatKind#(activate(X)) isNat#(n!6220!6220plus(X, Y)) =#> isNatKind#(activate(X)) isNat#(n!6220!6220plus(X, Y)) =#> activate#(X) isNat#(n!6220!6220plus(X, Y)) =#> activate#(X) isNat#(n!6220!6220plus(X, Y)) =#> activate#(Y) isNat#(n!6220!6220s(X)) =#> U21#(isNatKind(activate(X)), activate(X)) isNat#(n!6220!6220s(X)) =#> isNatKind#(activate(X)) isNat#(n!6220!6220s(X)) =#> activate#(X) isNat#(n!6220!6220s(X)) =#> activate#(X) isNat#(n!6220!6220x(X, Y)) =#> U31#(isNatKind(activate(X)), activate(X), activate(Y)) isNat#(n!6220!6220x(X, Y)) =#> isNatKind#(activate(X)) isNat#(n!6220!6220x(X, Y)) =#> activate#(X) isNat#(n!6220!6220x(X, Y)) =#> activate#(X) isNat#(n!6220!6220x(X, Y)) =#> activate#(Y) isNatKind#(n!6220!6220plus(X, Y)) =#> isNatKind#(activate(X)) isNatKind#(n!6220!6220plus(X, Y)) =#> activate#(X) isNatKind#(n!6220!6220plus(X, Y)) =#> activate#(Y) isNatKind#(n!6220!6220s(X)) =#> isNatKind#(activate(X)) isNatKind#(n!6220!6220s(X)) =#> activate#(X) isNatKind#(n!6220!6220x(X, Y)) =#> U61#(isNatKind(activate(X)), activate(Y)) isNatKind#(n!6220!6220x(X, Y)) =#> isNatKind#(activate(X)) isNatKind#(n!6220!6220x(X, Y)) =#> activate#(X) isNatKind#(n!6220!6220x(X, Y)) =#> activate#(Y) plus#(X, 0) =#> isNat#(X) plus#(X, s(Y)) =#> isNat#(Y) x#(X, 0) =#> isNat#(X) x#(X, s(Y)) =#> isNat#(Y) activate#(n!6220!6220plus(X, Y)) =#> plus#(activate(X), activate(Y)) activate#(n!6220!6220plus(X, Y)) =#> activate#(X) activate#(n!6220!6220plus(X, Y)) =#> activate#(Y) activate#(n!6220!6220s(X)) =#> activate#(X) activate#(n!6220!6220x(X, Y)) =#> x#(activate(X), activate(Y)) activate#(n!6220!6220x(X, Y)) =#> activate#(X) activate#(n!6220!6220x(X, Y)) =#> activate#(Y) By [Kop12, Thm. 7.31], we may replace any dependency pair problem (P_5, R_0, m, f) by (P_6, R_0, m, f). Thus, the original system is terminating if (P_6, R_0, minimal, formative) is finite. We consider the dependency pair problem (P_6, R_0, minimal, formative). We will use the reduction pair processor [Kop12, Thm. 7.16]. It suffices to find a standard reduction pair [Kop12, Def. 6.69]. Thus, we must orient: U21#(tt, X) >? isNatKind#(activate(X)) U21#(tt, X) >? activate#(X) U21#(tt, X) >? activate#(X) U31#(tt, X, Y) >? U32#(isNatKind(activate(X)), activate(X), activate(Y)) U31#(tt, X, Y) >? isNatKind#(activate(X)) U31#(tt, X, Y) >? activate#(X) U31#(tt, X, Y) >? activate#(X) U31#(tt, X, Y) >? activate#(Y) U32#(tt, X, Y) >? U33#(isNatKind(activate(Y)), activate(X), activate(Y)) U32#(tt, X, Y) >? isNatKind#(activate(Y)) U32#(tt, X, Y) >? activate#(Y) U32#(tt, X, Y) >? activate#(X) U32#(tt, X, Y) >? activate#(Y) U33#(tt, X, Y) >? U34#(isNatKind(activate(Y)), activate(X), activate(Y)) U33#(tt, X, Y) >? isNatKind#(activate(Y)) U33#(tt, X, Y) >? activate#(Y) U33#(tt, X, Y) >? activate#(X) U33#(tt, X, Y) >? activate#(Y) U34#(tt, X, Y) >? U35#(isNat(activate(X)), activate(Y)) U34#(tt, X, Y) >? isNat#(activate(X)) U34#(tt, X, Y) >? activate#(X) U34#(tt, X, Y) >? activate#(Y) U35#(tt, X) >? isNat#(activate(X)) U35#(tt, X) >? activate#(X) U61#(tt, X) >? isNatKind#(activate(X)) isNat#(n!6220!6220plus(X, Y)) >? isNatKind#(activate(X)) isNat#(n!6220!6220plus(X, Y)) >? activate#(X) isNat#(n!6220!6220plus(X, Y)) >? activate#(X) isNat#(n!6220!6220plus(X, Y)) >? activate#(Y) isNat#(n!6220!6220s(X)) >? U21#(isNatKind(activate(X)), activate(X)) isNat#(n!6220!6220s(X)) >? isNatKind#(activate(X)) isNat#(n!6220!6220s(X)) >? activate#(X) isNat#(n!6220!6220s(X)) >? activate#(X) isNat#(n!6220!6220x(X, Y)) >? U31#(isNatKind(activate(X)), activate(X), activate(Y)) isNat#(n!6220!6220x(X, Y)) >? isNatKind#(activate(X)) isNat#(n!6220!6220x(X, Y)) >? activate#(X) isNat#(n!6220!6220x(X, Y)) >? activate#(X) isNat#(n!6220!6220x(X, Y)) >? activate#(Y) isNatKind#(n!6220!6220plus(X, Y)) >? isNatKind#(activate(X)) isNatKind#(n!6220!6220plus(X, Y)) >? activate#(X) isNatKind#(n!6220!6220plus(X, Y)) >? activate#(Y) isNatKind#(n!6220!6220s(X)) >? isNatKind#(activate(X)) isNatKind#(n!6220!6220s(X)) >? activate#(X) isNatKind#(n!6220!6220x(X, Y)) >? U61#(isNatKind(activate(X)), activate(Y)) isNatKind#(n!6220!6220x(X, Y)) >? isNatKind#(activate(X)) isNatKind#(n!6220!6220x(X, Y)) >? activate#(X) isNatKind#(n!6220!6220x(X, Y)) >? activate#(Y) plus#(X, 0) >? isNat#(X) plus#(X, s(Y)) >? isNat#(Y) x#(X, 0) >? isNat#(X) x#(X, s(Y)) >? isNat#(Y) activate#(n!6220!6220plus(X, Y)) >? plus#(activate(X), activate(Y)) activate#(n!6220!6220plus(X, Y)) >? activate#(X) activate#(n!6220!6220plus(X, Y)) >? activate#(Y) activate#(n!6220!6220s(X)) >? activate#(X) activate#(n!6220!6220x(X, Y)) >? x#(activate(X), activate(Y)) activate#(n!6220!6220x(X, Y)) >? activate#(X) activate#(n!6220!6220x(X, Y)) >? activate#(Y) U101(tt, X, Y) >= U102(isNatKind(activate(X)), activate(X), activate(Y)) U102(tt, X, Y) >= U103(isNat(activate(Y)), activate(X), activate(Y)) U103(tt, X, Y) >= U104(isNatKind(activate(Y)), activate(X), activate(Y)) U104(tt, X, Y) >= plus(x(activate(Y), activate(X)), activate(Y)) U11(tt, X, Y) >= U12(isNatKind(activate(X)), activate(X), activate(Y)) U12(tt, X, Y) >= U13(isNatKind(activate(Y)), activate(X), activate(Y)) U13(tt, X, Y) >= U14(isNatKind(activate(Y)), activate(X), activate(Y)) U14(tt, X, Y) >= U15(isNat(activate(X)), activate(Y)) U15(tt, X) >= U16(isNat(activate(X))) U16(tt) >= tt U21(tt, X) >= U22(isNatKind(activate(X)), activate(X)) U22(tt, X) >= U23(isNat(activate(X))) U23(tt) >= tt U31(tt, X, Y) >= U32(isNatKind(activate(X)), activate(X), activate(Y)) U32(tt, X, Y) >= U33(isNatKind(activate(Y)), activate(X), activate(Y)) U33(tt, X, Y) >= U34(isNatKind(activate(Y)), activate(X), activate(Y)) U34(tt, X, Y) >= U35(isNat(activate(X)), activate(Y)) U35(tt, X) >= U36(isNat(activate(X))) U36(tt) >= tt U41(tt, X) >= U42(isNatKind(activate(X))) U42(tt) >= tt U51(tt) >= tt U61(tt, X) >= U62(isNatKind(activate(X))) U62(tt) >= tt U71(tt, X) >= U72(isNatKind(activate(X)), activate(X)) U72(tt, X) >= activate(X) U81(tt, X, Y) >= U82(isNatKind(activate(X)), activate(X), activate(Y)) U82(tt, X, Y) >= U83(isNat(activate(Y)), activate(X), activate(Y)) U83(tt, X, Y) >= U84(isNatKind(activate(Y)), activate(X), activate(Y)) U84(tt, X, Y) >= s(plus(activate(Y), activate(X))) U91(tt, X) >= U92(isNatKind(activate(X))) U92(tt) >= 0 isNat(n!6220!62200) >= tt isNat(n!6220!6220plus(X, Y)) >= U11(isNatKind(activate(X)), activate(X), activate(Y)) isNat(n!6220!6220s(X)) >= U21(isNatKind(activate(X)), activate(X)) isNat(n!6220!6220x(X, Y)) >= U31(isNatKind(activate(X)), activate(X), activate(Y)) isNatKind(n!6220!62200) >= tt isNatKind(n!6220!6220plus(X, Y)) >= U41(isNatKind(activate(X)), activate(Y)) isNatKind(n!6220!6220s(X)) >= U51(isNatKind(activate(X))) isNatKind(n!6220!6220x(X, Y)) >= U61(isNatKind(activate(X)), activate(Y)) plus(X, 0) >= U71(isNat(X), X) plus(X, s(Y)) >= U81(isNat(Y), Y, X) x(X, 0) >= U91(isNat(X), X) x(X, s(Y)) >= U101(isNat(Y), Y, X) 0 >= n!6220!62200 plus(X, Y) >= n!6220!6220plus(X, Y) s(X) >= n!6220!6220s(X) x(X, Y) >= n!6220!6220x(X, Y) activate(n!6220!62200) >= 0 activate(n!6220!6220plus(X, Y)) >= plus(activate(X), activate(Y)) activate(n!6220!6220s(X)) >= s(activate(X)) activate(n!6220!6220x(X, Y)) >= x(activate(X), activate(Y)) activate(X) >= X Since this representation is not advantageous for the higher-order recursive path ordering, we present the strict requirements in their unextended form, which is not problematic since for any F, s and substituion gamma: (F s)gamma beta-reduces to F(s)gamma.) We use a recursive path ordering as defined in [Kop12, Chapter 5]. Argument functions: [[0]] = _|_ [[U11(x_1, x_2, x_3)]] = x_1 [[U12(x_1, x_2, x_3)]] = U12 [[U13(x_1, x_2, x_3)]] = U13 [[U14(x_1, x_2, x_3)]] = U14 [[U15(x_1, x_2)]] = U15 [[U16(x_1)]] = U16 [[U21(x_1, x_2)]] = U21 [[U22(x_1, x_2)]] = U22 [[U23(x_1)]] = U23 [[U31(x_1, x_2, x_3)]] = U31 [[U32(x_1, x_2, x_3)]] = x_1 [[U33(x_1, x_2, x_3)]] = x_1 [[U34(x_1, x_2, x_3)]] = U34 [[U35(x_1, x_2)]] = x_1 [[U36(x_1)]] = x_1 [[U41(x_1, x_2)]] = x_1 [[U42(x_1)]] = x_1 [[U51(x_1)]] = x_1 [[U61(x_1, x_2)]] = x_1 [[U61#(x_1, x_2)]] = U61#(x_2) [[U62(x_1)]] = x_1 [[U71(x_1, x_2)]] = x_2 [[U72(x_1, x_2)]] = x_2 [[activate(x_1)]] = x_1 [[isNat(x_1)]] = isNat [[isNatKind(x_1)]] = isNatKind [[n!6220!62200]] = _|_ We choose Lex = {} and Mul = {U101, U102, U103, U104, U12, U13, U14, U15, U16, U21, U21#, U22, U23, U31, U31#, U32#, U33#, U34, U34#, U35#, U61#, U81, U82, U83, U84, U91, U92, activate#, isNat, isNatKind, isNatKind#, isNat#, n!6220!6220plus, n!6220!6220s, n!6220!6220x, plus, plus#, s, tt, x, x#}, and the following precedence: U101 = U102 = U103 = U104 = n!6220!6220x = x > U31# = U32# = U33# = U34# > U81 = U82 = U83 = U84 = n!6220!6220plus = plus = plus# > x# > U35# = isNat# > U12 = U13 = U14 = U15 = U16 = U21 = U22 = U23 = U31 = U34 = isNat = isNatKind = n!6220!6220s = s = tt > U21# = U61# = isNatKind# > activate# > U91 = U92 Taking the argument function into account, and fixing the greater / greater equal choices, the constraints can be denoted as follows: U21#(tt, X) >= isNatKind#(X) U21#(tt, X) >= activate#(X) U21#(tt, X) >= activate#(X) U31#(tt, X, Y) >= U32#(isNatKind, X, Y) U31#(tt, X, Y) >= isNatKind#(X) U31#(tt, X, Y) >= activate#(X) U31#(tt, X, Y) >= activate#(X) U31#(tt, X, Y) >= activate#(Y) U32#(tt, X, Y) >= U33#(isNatKind, X, Y) U32#(tt, X, Y) >= isNatKind#(Y) U32#(tt, X, Y) >= activate#(Y) U32#(tt, X, Y) >= activate#(X) U32#(tt, X, Y) >= activate#(Y) U33#(tt, X, Y) >= U34#(isNatKind, X, Y) U33#(tt, X, Y) >= isNatKind#(Y) U33#(tt, X, Y) >= activate#(Y) U33#(tt, X, Y) >= activate#(X) U33#(tt, X, Y) >= activate#(Y) U34#(tt, X, Y) >= U35#(isNat, Y) U34#(tt, X, Y) > isNat#(X) U34#(tt, X, Y) >= activate#(X) U34#(tt, X, Y) >= activate#(Y) U35#(tt, X) >= isNat#(X) U35#(tt, X) >= activate#(X) U61#(X) >= isNatKind#(X) isNat#(n!6220!6220plus(X, Y)) >= isNatKind#(X) isNat#(n!6220!6220plus(X, Y)) >= activate#(X) isNat#(n!6220!6220plus(X, Y)) >= activate#(X) isNat#(n!6220!6220plus(X, Y)) >= activate#(Y) isNat#(n!6220!6220s(X)) >= U21#(isNatKind, X) isNat#(n!6220!6220s(X)) >= isNatKind#(X) isNat#(n!6220!6220s(X)) >= activate#(X) isNat#(n!6220!6220s(X)) >= activate#(X) isNat#(n!6220!6220x(X, Y)) >= U31#(isNatKind, X, Y) isNat#(n!6220!6220x(X, Y)) >= isNatKind#(X) isNat#(n!6220!6220x(X, Y)) >= activate#(X) isNat#(n!6220!6220x(X, Y)) >= activate#(X) isNat#(n!6220!6220x(X, Y)) >= activate#(Y) isNatKind#(n!6220!6220plus(X, Y)) >= isNatKind#(X) isNatKind#(n!6220!6220plus(X, Y)) >= activate#(X) isNatKind#(n!6220!6220plus(X, Y)) >= activate#(Y) isNatKind#(n!6220!6220s(X)) >= isNatKind#(X) isNatKind#(n!6220!6220s(X)) >= activate#(X) isNatKind#(n!6220!6220x(X, Y)) >= U61#(Y) isNatKind#(n!6220!6220x(X, Y)) >= isNatKind#(X) isNatKind#(n!6220!6220x(X, Y)) >= activate#(X) isNatKind#(n!6220!6220x(X, Y)) >= activate#(Y) plus#(X, _|_) >= isNat#(X) plus#(X, s(Y)) >= isNat#(Y) x#(X, _|_) >= isNat#(X) x#(X, s(Y)) >= isNat#(Y) activate#(n!6220!6220plus(X, Y)) >= plus#(X, Y) activate#(n!6220!6220plus(X, Y)) >= activate#(X) activate#(n!6220!6220plus(X, Y)) >= activate#(Y) activate#(n!6220!6220s(X)) >= activate#(X) activate#(n!6220!6220x(X, Y)) >= x#(X, Y) activate#(n!6220!6220x(X, Y)) >= activate#(X) activate#(n!6220!6220x(X, Y)) >= activate#(Y) U101(tt, X, Y) >= U102(isNatKind, X, Y) U102(tt, X, Y) >= U103(isNat, X, Y) U103(tt, X, Y) >= U104(isNatKind, X, Y) U104(tt, X, Y) >= plus(x(Y, X), Y) tt >= U12 U12 >= U13 U13 >= U14 U14 >= U15 U15 >= U16 U16 >= tt U21 >= U22 U22 >= U23 U23 >= tt U31 >= isNatKind tt >= isNatKind tt >= U34 U34 >= isNat tt >= isNat tt >= tt tt >= isNatKind tt >= tt tt >= tt tt >= isNatKind tt >= tt X >= X X >= X U81(tt, X, Y) >= U82(isNatKind, X, Y) U82(tt, X, Y) >= U83(isNat, X, Y) U83(tt, X, Y) >= U84(isNatKind, X, Y) U84(tt, X, Y) >= s(plus(Y, X)) U91(tt, X) >= U92(isNatKind) U92(tt) >= _|_ isNat >= tt isNat >= isNatKind isNat >= U21 isNat >= U31 isNatKind >= tt isNatKind >= isNatKind isNatKind >= isNatKind isNatKind >= isNatKind plus(X, _|_) >= X plus(X, s(Y)) >= U81(isNat, Y, X) x(X, _|_) >= U91(isNat, X) x(X, s(Y)) >= U101(isNat, Y, X) _|_ >= _|_ plus(X, Y) >= n!6220!6220plus(X, Y) s(X) >= n!6220!6220s(X) x(X, Y) >= n!6220!6220x(X, Y) _|_ >= _|_ n!6220!6220plus(X, Y) >= plus(X, Y) n!6220!6220s(X) >= s(X) n!6220!6220x(X, Y) >= x(X, Y) X >= X With these choices, we have: 1] U21#(tt, X) >= isNatKind#(X) because [2], by (Star) 2] U21#*(tt, X) >= isNatKind#(X) because U21# = isNatKind#, U21# in Mul and [3], by (Stat) 3] X >= X by (Meta) 4] U21#(tt, X) >= activate#(X) because [5], by (Star) 5] U21#*(tt, X) >= activate#(X) because U21# > activate# and [6], by (Copy) 6] U21#*(tt, X) >= X because [3], by (Select) 7] U21#(tt, X) >= activate#(X) because [5], by (Star) 8] U31#(tt, X, Y) >= U32#(isNatKind, X, Y) because U31# = U32#, U31# in Mul, [9], [3] and [10], by (Fun) 9] tt >= isNatKind because tt = isNatKind, by (Fun) 10] Y >= Y by (Meta) 11] U31#(tt, X, Y) >= isNatKind#(X) because [12], by (Star) 12] U31#*(tt, X, Y) >= isNatKind#(X) because U31# > isNatKind# and [13], by (Copy) 13] U31#*(tt, X, Y) >= X because [3], by (Select) 14] U31#(tt, X, Y) >= activate#(X) because [15], by (Star) 15] U31#*(tt, X, Y) >= activate#(X) because U31# > activate# and [13], by (Copy) 16] U31#(tt, X, Y) >= activate#(X) because [15], by (Star) 17] U31#(tt, X, Y) >= activate#(Y) because [18], by (Star) 18] U31#*(tt, X, Y) >= activate#(Y) because U31# > activate# and [19], by (Copy) 19] U31#*(tt, X, Y) >= Y because [10], by (Select) 20] U32#(tt, X, Y) >= U33#(isNatKind, X, Y) because U32# = U33#, U32# in Mul, [21], [3] and [10], by (Fun) 21] tt >= isNatKind because tt = isNatKind, by (Fun) 22] U32#(tt, X, Y) >= isNatKind#(Y) because [23], by (Star) 23] U32#*(tt, X, Y) >= isNatKind#(Y) because U32# > isNatKind# and [24], by (Copy) 24] U32#*(tt, X, Y) >= Y because [10], by (Select) 25] U32#(tt, X, Y) >= activate#(Y) because [26], by (Star) 26] U32#*(tt, X, Y) >= activate#(Y) because U32# > activate# and [24], by (Copy) 27] U32#(tt, X, Y) >= activate#(X) because [28], by (Star) 28] U32#*(tt, X, Y) >= activate#(X) because U32# > activate# and [29], by (Copy) 29] U32#*(tt, X, Y) >= X because [3], by (Select) 30] U32#(tt, X, Y) >= activate#(Y) because [26], by (Star) 31] U33#(tt, X, Y) >= U34#(isNatKind, X, Y) because U33# = U34#, U33# in Mul, [21], [3] and [10], by (Fun) 32] U33#(tt, X, Y) >= isNatKind#(Y) because [33], by (Star) 33] U33#*(tt, X, Y) >= isNatKind#(Y) because U33# > isNatKind# and [34], by (Copy) 34] U33#*(tt, X, Y) >= Y because [10], by (Select) 35] U33#(tt, X, Y) >= activate#(Y) because [36], by (Star) 36] U33#*(tt, X, Y) >= activate#(Y) because U33# > activate# and [34], by (Copy) 37] U33#(tt, X, Y) >= activate#(X) because [38], by (Star) 38] U33#*(tt, X, Y) >= activate#(X) because U33# > activate# and [39], by (Copy) 39] U33#*(tt, X, Y) >= X because [3], by (Select) 40] U33#(tt, X, Y) >= activate#(Y) because [36], by (Star) 41] U34#(tt, X, Y) >= U35#(isNat, Y) because [42], by (Star) 42] U34#*(tt, X, Y) >= U35#(isNat, Y) because U34# > U35#, [43] and [44], by (Copy) 43] U34#*(tt, X, Y) >= isNat because U34# > isNat, by (Copy) 44] U34#*(tt, X, Y) >= Y because [10], by (Select) 45] U34#(tt, X, Y) > isNat#(X) because [46], by definition 46] U34#*(tt, X, Y) >= isNat#(X) because U34# > isNat# and [47], by (Copy) 47] U34#*(tt, X, Y) >= X because [3], by (Select) 48] U34#(tt, X, Y) >= activate#(X) because [49], by (Star) 49] U34#*(tt, X, Y) >= activate#(X) because U34# > activate# and [47], by (Copy) 50] U34#(tt, X, Y) >= activate#(Y) because [51], by (Star) 51] U34#*(tt, X, Y) >= activate#(Y) because U34# > activate# and [44], by (Copy) 52] U35#(tt, X) >= isNat#(X) because [53], by (Star) 53] U35#*(tt, X) >= isNat#(X) because U35# = isNat#, U35# in Mul and [10], by (Stat) 54] U35#(tt, X) >= activate#(X) because [55], by (Star) 55] U35#*(tt, X) >= activate#(X) because U35# > activate# and [56], by (Copy) 56] U35#*(tt, X) >= X because [10], by (Select) 57] U61#(X) >= isNatKind#(X) because U61# = isNatKind#, U61# in Mul and [10], by (Fun) 58] isNat#(n!6220!6220plus(X, Y)) >= isNatKind#(X) because [59], by (Star) 59] isNat#*(n!6220!6220plus(X, Y)) >= isNatKind#(X) because isNat# > isNatKind# and [60], by (Copy) 60] isNat#*(n!6220!6220plus(X, Y)) >= X because [61], by (Select) 61] n!6220!6220plus(X, Y) >= X because [62], by (Star) 62] n!6220!6220plus*(X, Y) >= X because [3], by (Select) 63] isNat#(n!6220!6220plus(X, Y)) >= activate#(X) because [64], by (Star) 64] isNat#*(n!6220!6220plus(X, Y)) >= activate#(X) because isNat# > activate# and [60], by (Copy) 65] isNat#(n!6220!6220plus(X, Y)) >= activate#(X) because [64], by (Star) 66] isNat#(n!6220!6220plus(X, Y)) >= activate#(Y) because [67], by (Star) 67] isNat#*(n!6220!6220plus(X, Y)) >= activate#(Y) because [68], by (Select) 68] n!6220!6220plus(X, Y) >= activate#(Y) because [69], by (Star) 69] n!6220!6220plus*(X, Y) >= activate#(Y) because n!6220!6220plus > activate# and [70], by (Copy) 70] n!6220!6220plus*(X, Y) >= Y because [10], by (Select) 71] isNat#(n!6220!6220s(X)) >= U21#(isNatKind, X) because [72], by (Star) 72] isNat#*(n!6220!6220s(X)) >= U21#(isNatKind, X) because isNat# > U21#, [73] and [74], by (Copy) 73] isNat#*(n!6220!6220s(X)) >= isNatKind because isNat# > isNatKind, by (Copy) 74] isNat#*(n!6220!6220s(X)) >= X because [75], by (Select) 75] n!6220!6220s(X) >= X because [76], by (Star) 76] n!6220!6220s*(X) >= X because [3], by (Select) 77] isNat#(n!6220!6220s(X)) >= isNatKind#(X) because [78], by (Star) 78] isNat#*(n!6220!6220s(X)) >= isNatKind#(X) because isNat# > isNatKind# and [74], by (Copy) 79] isNat#(n!6220!6220s(X)) >= activate#(X) because [80], by (Star) 80] isNat#*(n!6220!6220s(X)) >= activate#(X) because [81], by (Select) 81] n!6220!6220s(X) >= activate#(X) because [82], by (Star) 82] n!6220!6220s*(X) >= activate#(X) because n!6220!6220s > activate# and [83], by (Copy) 83] n!6220!6220s*(X) >= X because [3], by (Select) 84] isNat#(n!6220!6220s(X)) >= activate#(X) because [80], by (Star) 85] isNat#(n!6220!6220x(X, Y)) >= U31#(isNatKind, X, Y) because [86], by (Star) 86] isNat#*(n!6220!6220x(X, Y)) >= U31#(isNatKind, X, Y) because [87], by (Select) 87] n!6220!6220x(X, Y) >= U31#(isNatKind, X, Y) because [88], by (Star) 88] n!6220!6220x*(X, Y) >= U31#(isNatKind, X, Y) because n!6220!6220x > U31#, [89], [90] and [91], by (Copy) 89] n!6220!6220x*(X, Y) >= isNatKind because n!6220!6220x > isNatKind, by (Copy) 90] n!6220!6220x*(X, Y) >= X because [3], by (Select) 91] n!6220!6220x*(X, Y) >= Y because [10], by (Select) 92] isNat#(n!6220!6220x(X, Y)) >= isNatKind#(X) because [93], by (Star) 93] isNat#*(n!6220!6220x(X, Y)) >= isNatKind#(X) because [94], by (Select) 94] n!6220!6220x(X, Y) >= isNatKind#(X) because [95], by (Star) 95] n!6220!6220x*(X, Y) >= isNatKind#(X) because n!6220!6220x > isNatKind# and [90], by (Copy) 96] isNat#(n!6220!6220x(X, Y)) >= activate#(X) because [97], by (Star) 97] isNat#*(n!6220!6220x(X, Y)) >= activate#(X) because [98], by (Select) 98] n!6220!6220x(X, Y) >= activate#(X) because [99], by (Star) 99] n!6220!6220x*(X, Y) >= activate#(X) because n!6220!6220x > activate# and [90], by (Copy) 100] isNat#(n!6220!6220x(X, Y)) >= activate#(X) because [97], by (Star) 101] isNat#(n!6220!6220x(X, Y)) >= activate#(Y) because [102], by (Star) 102] isNat#*(n!6220!6220x(X, Y)) >= activate#(Y) because [103], by (Select) 103] n!6220!6220x(X, Y) >= activate#(Y) because [104], by (Star) 104] n!6220!6220x*(X, Y) >= activate#(Y) because n!6220!6220x > activate# and [91], by (Copy) 105] isNatKind#(n!6220!6220plus(X, Y)) >= isNatKind#(X) because isNatKind# in Mul and [106], by (Fun) 106] n!6220!6220plus(X, Y) >= X because [62], by (Star) 107] isNatKind#(n!6220!6220plus(X, Y)) >= activate#(X) because [108], by (Star) 108] isNatKind#*(n!6220!6220plus(X, Y)) >= activate#(X) because isNatKind# > activate# and [109], by (Copy) 109] isNatKind#*(n!6220!6220plus(X, Y)) >= X because [106], by (Select) 110] isNatKind#(n!6220!6220plus(X, Y)) >= activate#(Y) because [111], by (Star) 111] isNatKind#*(n!6220!6220plus(X, Y)) >= activate#(Y) because [68], by (Select) 112] isNatKind#(n!6220!6220s(X)) >= isNatKind#(X) because isNatKind# in Mul and [113], by (Fun) 113] n!6220!6220s(X) >= X because [83], by (Star) 114] isNatKind#(n!6220!6220s(X)) >= activate#(X) because [115], by (Star) 115] isNatKind#*(n!6220!6220s(X)) >= activate#(X) because isNatKind# > activate# and [116], by (Copy) 116] isNatKind#*(n!6220!6220s(X)) >= X because [113], by (Select) 117] isNatKind#(n!6220!6220x(X, Y)) >= U61#(Y) because [118], by (Star) 118] isNatKind#*(n!6220!6220x(X, Y)) >= U61#(Y) because isNatKind# = U61#, isNatKind# in Mul and [119], by (Stat) 119] n!6220!6220x(X, Y) > Y because [91], by definition 120] isNatKind#(n!6220!6220x(X, Y)) >= isNatKind#(X) because [121], by (Star) 121] isNatKind#*(n!6220!6220x(X, Y)) >= isNatKind#(X) because isNatKind# in Mul and [122], by (Stat) 122] n!6220!6220x(X, Y) > X because [90], by definition 123] isNatKind#(n!6220!6220x(X, Y)) >= activate#(X) because [124], by (Star) 124] isNatKind#*(n!6220!6220x(X, Y)) >= activate#(X) because [98], by (Select) 125] isNatKind#(n!6220!6220x(X, Y)) >= activate#(Y) because [126], by (Star) 126] isNatKind#*(n!6220!6220x(X, Y)) >= activate#(Y) because [103], by (Select) 127] plus#(X, _|_) >= isNat#(X) because [128], by (Star) 128] plus#*(X, _|_) >= isNat#(X) because plus# > isNat# and [129], by (Copy) 129] plus#*(X, _|_) >= X because [130], by (Select) 130] X >= X by (Meta) 131] plus#(X, s(Y)) >= isNat#(Y) because [132], by (Star) 132] plus#*(X, s(Y)) >= isNat#(Y) because plus# > isNat# and [133], by (Copy) 133] plus#*(X, s(Y)) >= Y because [134], by (Select) 134] s(Y) >= Y because [135], by (Star) 135] s*(Y) >= Y because [136], by (Select) 136] Y >= Y by (Meta) 137] x#(X, _|_) >= isNat#(X) because [138], by (Star) 138] x#*(X, _|_) >= isNat#(X) because x# > isNat# and [139], by (Copy) 139] x#*(X, _|_) >= X because [130], by (Select) 140] x#(X, s(Y)) >= isNat#(Y) because [141], by (Star) 141] x#*(X, s(Y)) >= isNat#(Y) because x# > isNat# and [142], by (Copy) 142] x#*(X, s(Y)) >= Y because [134], by (Select) 143] activate#(n!6220!6220plus(X, Y)) >= plus#(X, Y) because [144], by (Star) 144] activate#*(n!6220!6220plus(X, Y)) >= plus#(X, Y) because [145], by (Select) 145] n!6220!6220plus(X, Y) >= plus#(X, Y) because n!6220!6220plus = plus#, n!6220!6220plus in Mul, [146] and [147], by (Fun) 146] X >= X by (Meta) 147] Y >= Y by (Meta) 148] activate#(n!6220!6220plus(X, Y)) >= activate#(X) because activate# in Mul and [149], by (Fun) 149] n!6220!6220plus(X, Y) >= X because [150], by (Star) 150] n!6220!6220plus*(X, Y) >= X because [146], by (Select) 151] activate#(n!6220!6220plus(X, Y)) >= activate#(Y) because activate# in Mul and [152], by (Fun) 152] n!6220!6220plus(X, Y) >= Y because [153], by (Star) 153] n!6220!6220plus*(X, Y) >= Y because [147], by (Select) 154] activate#(n!6220!6220s(X)) >= activate#(X) because activate# in Mul and [155], by (Fun) 155] n!6220!6220s(X) >= X because [156], by (Star) 156] n!6220!6220s*(X) >= X because [157], by (Select) 157] X >= X by (Meta) 158] activate#(n!6220!6220x(X, Y)) >= x#(X, Y) because [159], by (Star) 159] activate#*(n!6220!6220x(X, Y)) >= x#(X, Y) because [160], by (Select) 160] n!6220!6220x(X, Y) >= x#(X, Y) because [161], by (Star) 161] n!6220!6220x*(X, Y) >= x#(X, Y) because n!6220!6220x > x#, [162] and [163], by (Copy) 162] n!6220!6220x*(X, Y) >= X because [146], by (Select) 163] n!6220!6220x*(X, Y) >= Y because [147], by (Select) 164] activate#(n!6220!6220x(X, Y)) >= activate#(X) because activate# in Mul and [165], by (Fun) 165] n!6220!6220x(X, Y) >= X because [162], by (Star) 166] activate#(n!6220!6220x(X, Y)) >= activate#(Y) because activate# in Mul and [167], by (Fun) 167] n!6220!6220x(X, Y) >= Y because [163], by (Star) 168] U101(tt, X, Y) >= U102(isNatKind, X, Y) because U101 = U102, U101 in Mul, [169], [170] and [171], by (Fun) 169] tt >= isNatKind because tt = isNatKind, by (Fun) 170] X >= X by (Meta) 171] Y >= Y by (Meta) 172] U102(tt, X, Y) >= U103(isNat, X, Y) because U102 = U103, U102 in Mul, [173], [170] and [171], by (Fun) 173] tt >= isNat because tt = isNat, by (Fun) 174] U103(tt, X, Y) >= U104(isNatKind, X, Y) because U103 = U104, U103 in Mul, [175], [170] and [171], by (Fun) 175] tt >= isNatKind because tt = isNatKind, by (Fun) 176] U104(tt, X, Y) >= plus(x(Y, X), Y) because [177], by (Star) 177] U104*(tt, X, Y) >= plus(x(Y, X), Y) because U104 > plus, [178] and [179], by (Copy) 178] U104*(tt, X, Y) >= x(Y, X) because U104 = x, U104 in Mul, [170] and [171], by (Stat) 179] U104*(tt, X, Y) >= Y because [171], by (Select) 180] tt >= U12 because tt = U12, by (Fun) 181] U12 >= U13 because U12 = U13 and U12 in Mul, by (Fun) 182] U13 >= U14 because U13 = U14 and U13 in Mul, by (Fun) 183] U14 >= U15 because U14 = U15 and U14 in Mul, by (Fun) 184] U15 >= U16 because U15 = U16 and U15 in Mul, by (Fun) 185] U16 >= tt because U16 = tt, by (Fun) 186] U21 >= U22 because U21 = U22 and U21 in Mul, by (Fun) 187] U22 >= U23 because U22 = U23 and U22 in Mul, by (Fun) 188] U23 >= tt because U23 = tt, by (Fun) 189] U31 >= isNatKind because U31 = isNatKind and U31 in Mul, by (Fun) 190] tt >= isNatKind because tt = isNatKind, by (Fun) 191] tt >= U34 because tt = U34, by (Fun) 192] U34 >= isNat because U34 = isNat and U34 in Mul, by (Fun) 193] tt >= isNat because tt = isNat, by (Fun) 194] tt >= tt by (Fun) 195] tt >= isNatKind because tt = isNatKind, by (Fun) 196] tt >= tt by (Fun) 197] tt >= tt by (Fun) 198] tt >= isNatKind because tt = isNatKind, by (Fun) 199] tt >= tt by (Fun) 200] X >= X by (Meta) 201] X >= X by (Meta) 202] U81(tt, X, Y) >= U82(isNatKind, X, Y) because U81 = U82, U81 in Mul, [169], [170] and [171], by (Fun) 203] U82(tt, X, Y) >= U83(isNat, X, Y) because U82 = U83, U82 in Mul, [173], [170] and [171], by (Fun) 204] U83(tt, X, Y) >= U84(isNatKind, X, Y) because U83 = U84, U83 in Mul, [175], [170] and [171], by (Fun) 205] U84(tt, X, Y) >= s(plus(Y, X)) because [206], by (Star) 206] U84*(tt, X, Y) >= s(plus(Y, X)) because U84 > s and [207], by (Copy) 207] U84*(tt, X, Y) >= plus(Y, X) because U84 = plus, U84 in Mul, [170] and [171], by (Stat) 208] U91(tt, X) >= U92(isNatKind) because [209], by (Star) 209] U91*(tt, X) >= U92(isNatKind) because U91 = U92, U91 in Mul and [175], by (Stat) 210] U92(tt) >= _|_ by (Bot) 211] isNat >= tt because isNat = tt, by (Fun) 212] isNat >= isNatKind because isNat = isNatKind and isNat in Mul, by (Fun) 213] isNat >= U21 because isNat = U21 and isNat in Mul, by (Fun) 214] isNat >= U31 because isNat = U31 and isNat in Mul, by (Fun) 215] isNatKind >= tt because isNatKind = tt, by (Fun) 216] isNatKind >= isNatKind because isNatKind in Mul, by (Fun) 217] isNatKind >= isNatKind because isNatKind in Mul, by (Fun) 218] isNatKind >= isNatKind because isNatKind in Mul, by (Fun) 219] plus(X, _|_) >= X because [220], by (Star) 220] plus*(X, _|_) >= X because [201], by (Select) 221] plus(X, s(Y)) >= U81(isNat, Y, X) because [222], by (Star) 222] plus*(X, s(Y)) >= U81(isNat, Y, X) because plus = U81, plus in Mul, [171], [223] and [225], by (Stat) 223] s(Y) > isNat because [224], by definition 224] s*(Y) >= isNat because s = isNat and s in Mul, by (Stat) 225] s(Y) > Y because [226], by definition 226] s*(Y) >= Y because [170], by (Select) 227] x(X, _|_) >= U91(isNat, X) because [228], by (Star) 228] x*(X, _|_) >= U91(isNat, X) because x > U91, [229] and [230], by (Copy) 229] x*(X, _|_) >= isNat because x > isNat, by (Copy) 230] x*(X, _|_) >= X because [201], by (Select) 231] x(X, s(Y)) >= U101(isNat, Y, X) because [232], by (Star) 232] x*(X, s(Y)) >= U101(isNat, Y, X) because x = U101, x in Mul, [171], [223] and [225], by (Stat) 233] _|_ >= _|_ by (Bot) 234] plus(X, Y) >= n!6220!6220plus(X, Y) because plus = n!6220!6220plus, plus in Mul, [146] and [147], by (Fun) 235] s(X) >= n!6220!6220s(X) because s = n!6220!6220s, s in Mul and [236], by (Fun) 236] X >= X by (Meta) 237] x(X, Y) >= n!6220!6220x(X, Y) because x = n!6220!6220x, x in Mul, [146] and [147], by (Fun) 238] _|_ >= _|_ by (Bot) 239] n!6220!6220plus(X, Y) >= plus(X, Y) because n!6220!6220plus = plus, n!6220!6220plus in Mul, [146] and [147], by (Fun) 240] n!6220!6220s(X) >= s(X) because n!6220!6220s = s, n!6220!6220s in Mul and [241], by (Fun) 241] X >= X by (Meta) 242] n!6220!6220x(X, Y) >= x(X, Y) because n!6220!6220x = x, n!6220!6220x in Mul, [146] and [147], by (Fun) 243] X >= X by (Meta) By the observations in [Kop12, Sec. 6.6], this reduction pair suffices; we may thus replace the dependency pair problem (P_6, R_0, minimal, formative) by (P_7, R_0, minimal, formative), where P_7 consists of: U21#(tt, X) =#> isNatKind#(activate(X)) U21#(tt, X) =#> activate#(X) U21#(tt, X) =#> activate#(X) U31#(tt, X, Y) =#> U32#(isNatKind(activate(X)), activate(X), activate(Y)) U31#(tt, X, Y) =#> isNatKind#(activate(X)) U31#(tt, X, Y) =#> activate#(X) U31#(tt, X, Y) =#> activate#(X) U31#(tt, X, Y) =#> activate#(Y) U32#(tt, X, Y) =#> U33#(isNatKind(activate(Y)), activate(X), activate(Y)) U32#(tt, X, Y) =#> isNatKind#(activate(Y)) U32#(tt, X, Y) =#> activate#(Y) U32#(tt, X, Y) =#> activate#(X) U32#(tt, X, Y) =#> activate#(Y) U33#(tt, X, Y) =#> U34#(isNatKind(activate(Y)), activate(X), activate(Y)) U33#(tt, X, Y) =#> isNatKind#(activate(Y)) U33#(tt, X, Y) =#> activate#(Y) U33#(tt, X, Y) =#> activate#(X) U33#(tt, X, Y) =#> activate#(Y) U34#(tt, X, Y) =#> U35#(isNat(activate(X)), activate(Y)) U34#(tt, X, Y) =#> activate#(X) U34#(tt, X, Y) =#> activate#(Y) U35#(tt, X) =#> isNat#(activate(X)) U35#(tt, X) =#> activate#(X) U61#(tt, X) =#> isNatKind#(activate(X)) isNat#(n!6220!6220plus(X, Y)) =#> isNatKind#(activate(X)) isNat#(n!6220!6220plus(X, Y)) =#> activate#(X) isNat#(n!6220!6220plus(X, Y)) =#> activate#(X) isNat#(n!6220!6220plus(X, Y)) =#> activate#(Y) isNat#(n!6220!6220s(X)) =#> U21#(isNatKind(activate(X)), activate(X)) isNat#(n!6220!6220s(X)) =#> isNatKind#(activate(X)) isNat#(n!6220!6220s(X)) =#> activate#(X) isNat#(n!6220!6220s(X)) =#> activate#(X) isNat#(n!6220!6220x(X, Y)) =#> U31#(isNatKind(activate(X)), activate(X), activate(Y)) isNat#(n!6220!6220x(X, Y)) =#> isNatKind#(activate(X)) isNat#(n!6220!6220x(X, Y)) =#> activate#(X) isNat#(n!6220!6220x(X, Y)) =#> activate#(X) isNat#(n!6220!6220x(X, Y)) =#> activate#(Y) isNatKind#(n!6220!6220plus(X, Y)) =#> isNatKind#(activate(X)) isNatKind#(n!6220!6220plus(X, Y)) =#> activate#(X) isNatKind#(n!6220!6220plus(X, Y)) =#> activate#(Y) isNatKind#(n!6220!6220s(X)) =#> isNatKind#(activate(X)) isNatKind#(n!6220!6220s(X)) =#> activate#(X) isNatKind#(n!6220!6220x(X, Y)) =#> U61#(isNatKind(activate(X)), activate(Y)) isNatKind#(n!6220!6220x(X, Y)) =#> isNatKind#(activate(X)) isNatKind#(n!6220!6220x(X, Y)) =#> activate#(X) isNatKind#(n!6220!6220x(X, Y)) =#> activate#(Y) plus#(X, 0) =#> isNat#(X) plus#(X, s(Y)) =#> isNat#(Y) x#(X, 0) =#> isNat#(X) x#(X, s(Y)) =#> isNat#(Y) activate#(n!6220!6220plus(X, Y)) =#> plus#(activate(X), activate(Y)) activate#(n!6220!6220plus(X, Y)) =#> activate#(X) activate#(n!6220!6220plus(X, Y)) =#> activate#(Y) activate#(n!6220!6220s(X)) =#> activate#(X) activate#(n!6220!6220x(X, Y)) =#> x#(activate(X), activate(Y)) activate#(n!6220!6220x(X, Y)) =#> activate#(X) activate#(n!6220!6220x(X, Y)) =#> activate#(Y) Thus, the original system is terminating if (P_7, R_0, minimal, formative) is finite. We consider the dependency pair problem (P_7, R_0, minimal, formative). We will use the reduction pair processor [Kop12, Thm. 7.16]. It suffices to find a standard reduction pair [Kop12, Def. 6.69]. Thus, we must orient: U21#(tt, X) >? isNatKind#(activate(X)) U21#(tt, X) >? activate#(X) U21#(tt, X) >? activate#(X) U31#(tt, X, Y) >? U32#(isNatKind(activate(X)), activate(X), activate(Y)) U31#(tt, X, Y) >? isNatKind#(activate(X)) U31#(tt, X, Y) >? activate#(X) U31#(tt, X, Y) >? activate#(X) U31#(tt, X, Y) >? activate#(Y) U32#(tt, X, Y) >? U33#(isNatKind(activate(Y)), activate(X), activate(Y)) U32#(tt, X, Y) >? isNatKind#(activate(Y)) U32#(tt, X, Y) >? activate#(Y) U32#(tt, X, Y) >? activate#(X) U32#(tt, X, Y) >? activate#(Y) U33#(tt, X, Y) >? U34#(isNatKind(activate(Y)), activate(X), activate(Y)) U33#(tt, X, Y) >? isNatKind#(activate(Y)) U33#(tt, X, Y) >? activate#(Y) U33#(tt, X, Y) >? activate#(X) U33#(tt, X, Y) >? activate#(Y) U34#(tt, X, Y) >? U35#(isNat(activate(X)), activate(Y)) U34#(tt, X, Y) >? activate#(X) U34#(tt, X, Y) >? activate#(Y) U35#(tt, X) >? isNat#(activate(X)) U35#(tt, X) >? activate#(X) U61#(tt, X) >? isNatKind#(activate(X)) isNat#(n!6220!6220plus(X, Y)) >? isNatKind#(activate(X)) isNat#(n!6220!6220plus(X, Y)) >? activate#(X) isNat#(n!6220!6220plus(X, Y)) >? activate#(X) isNat#(n!6220!6220plus(X, Y)) >? activate#(Y) isNat#(n!6220!6220s(X)) >? U21#(isNatKind(activate(X)), activate(X)) isNat#(n!6220!6220s(X)) >? isNatKind#(activate(X)) isNat#(n!6220!6220s(X)) >? activate#(X) isNat#(n!6220!6220s(X)) >? activate#(X) isNat#(n!6220!6220x(X, Y)) >? U31#(isNatKind(activate(X)), activate(X), activate(Y)) isNat#(n!6220!6220x(X, Y)) >? isNatKind#(activate(X)) isNat#(n!6220!6220x(X, Y)) >? activate#(X) isNat#(n!6220!6220x(X, Y)) >? activate#(X) isNat#(n!6220!6220x(X, Y)) >? activate#(Y) isNatKind#(n!6220!6220plus(X, Y)) >? isNatKind#(activate(X)) isNatKind#(n!6220!6220plus(X, Y)) >? activate#(X) isNatKind#(n!6220!6220plus(X, Y)) >? activate#(Y) isNatKind#(n!6220!6220s(X)) >? isNatKind#(activate(X)) isNatKind#(n!6220!6220s(X)) >? activate#(X) isNatKind#(n!6220!6220x(X, Y)) >? U61#(isNatKind(activate(X)), activate(Y)) isNatKind#(n!6220!6220x(X, Y)) >? isNatKind#(activate(X)) isNatKind#(n!6220!6220x(X, Y)) >? activate#(X) isNatKind#(n!6220!6220x(X, Y)) >? activate#(Y) plus#(X, 0) >? isNat#(X) plus#(X, s(Y)) >? isNat#(Y) x#(X, 0) >? isNat#(X) x#(X, s(Y)) >? isNat#(Y) activate#(n!6220!6220plus(X, Y)) >? plus#(activate(X), activate(Y)) activate#(n!6220!6220plus(X, Y)) >? activate#(X) activate#(n!6220!6220plus(X, Y)) >? activate#(Y) activate#(n!6220!6220s(X)) >? activate#(X) activate#(n!6220!6220x(X, Y)) >? x#(activate(X), activate(Y)) activate#(n!6220!6220x(X, Y)) >? activate#(X) activate#(n!6220!6220x(X, Y)) >? activate#(Y) U101(tt, X, Y) >= U102(isNatKind(activate(X)), activate(X), activate(Y)) U102(tt, X, Y) >= U103(isNat(activate(Y)), activate(X), activate(Y)) U103(tt, X, Y) >= U104(isNatKind(activate(Y)), activate(X), activate(Y)) U104(tt, X, Y) >= plus(x(activate(Y), activate(X)), activate(Y)) U11(tt, X, Y) >= U12(isNatKind(activate(X)), activate(X), activate(Y)) U12(tt, X, Y) >= U13(isNatKind(activate(Y)), activate(X), activate(Y)) U13(tt, X, Y) >= U14(isNatKind(activate(Y)), activate(X), activate(Y)) U14(tt, X, Y) >= U15(isNat(activate(X)), activate(Y)) U15(tt, X) >= U16(isNat(activate(X))) U16(tt) >= tt U21(tt, X) >= U22(isNatKind(activate(X)), activate(X)) U22(tt, X) >= U23(isNat(activate(X))) U23(tt) >= tt U31(tt, X, Y) >= U32(isNatKind(activate(X)), activate(X), activate(Y)) U32(tt, X, Y) >= U33(isNatKind(activate(Y)), activate(X), activate(Y)) U33(tt, X, Y) >= U34(isNatKind(activate(Y)), activate(X), activate(Y)) U34(tt, X, Y) >= U35(isNat(activate(X)), activate(Y)) U35(tt, X) >= U36(isNat(activate(X))) U36(tt) >= tt U41(tt, X) >= U42(isNatKind(activate(X))) U42(tt) >= tt U51(tt) >= tt U61(tt, X) >= U62(isNatKind(activate(X))) U62(tt) >= tt U71(tt, X) >= U72(isNatKind(activate(X)), activate(X)) U72(tt, X) >= activate(X) U81(tt, X, Y) >= U82(isNatKind(activate(X)), activate(X), activate(Y)) U82(tt, X, Y) >= U83(isNat(activate(Y)), activate(X), activate(Y)) U83(tt, X, Y) >= U84(isNatKind(activate(Y)), activate(X), activate(Y)) U84(tt, X, Y) >= s(plus(activate(Y), activate(X))) U91(tt, X) >= U92(isNatKind(activate(X))) U92(tt) >= 0 isNat(n!6220!62200) >= tt isNat(n!6220!6220plus(X, Y)) >= U11(isNatKind(activate(X)), activate(X), activate(Y)) isNat(n!6220!6220s(X)) >= U21(isNatKind(activate(X)), activate(X)) isNat(n!6220!6220x(X, Y)) >= U31(isNatKind(activate(X)), activate(X), activate(Y)) isNatKind(n!6220!62200) >= tt isNatKind(n!6220!6220plus(X, Y)) >= U41(isNatKind(activate(X)), activate(Y)) isNatKind(n!6220!6220s(X)) >= U51(isNatKind(activate(X))) isNatKind(n!6220!6220x(X, Y)) >= U61(isNatKind(activate(X)), activate(Y)) plus(X, 0) >= U71(isNat(X), X) plus(X, s(Y)) >= U81(isNat(Y), Y, X) x(X, 0) >= U91(isNat(X), X) x(X, s(Y)) >= U101(isNat(Y), Y, X) 0 >= n!6220!62200 plus(X, Y) >= n!6220!6220plus(X, Y) s(X) >= n!6220!6220s(X) x(X, Y) >= n!6220!6220x(X, Y) activate(n!6220!62200) >= 0 activate(n!6220!6220plus(X, Y)) >= plus(activate(X), activate(Y)) activate(n!6220!6220s(X)) >= s(activate(X)) activate(n!6220!6220x(X, Y)) >= x(activate(X), activate(Y)) activate(X) >= X Since this representation is not advantageous for the higher-order recursive path ordering, we present the strict requirements in their unextended form, which is not problematic since for any F, s and substituion gamma: (F s)gamma beta-reduces to F(s)gamma.) We use a recursive path ordering as defined in [Kop12, Chapter 5]. Argument functions: [[0]] = _|_ [[U11(x_1, x_2, x_3)]] = U11 [[U12(x_1, x_2, x_3)]] = U12 [[U13(x_1, x_2, x_3)]] = x_1 [[U14(x_1, x_2, x_3)]] = U14 [[U15(x_1, x_2)]] = x_1 [[U16(x_1)]] = x_1 [[U21(x_1, x_2)]] = U21 [[U21#(x_1, x_2)]] = U21#(x_2) [[U22(x_1, x_2)]] = U22 [[U23(x_1)]] = U23 [[U31(x_1, x_2, x_3)]] = x_1 [[U32(x_1, x_2, x_3)]] = U32 [[U33(x_1, x_2, x_3)]] = x_1 [[U34(x_1, x_2, x_3)]] = x_1 [[U35(x_1, x_2)]] = x_1 [[U35#(x_1, x_2)]] = U35#(x_2) [[U36(x_1)]] = x_1 [[U41(x_1, x_2)]] = x_1 [[U42(x_1)]] = U42 [[U51(x_1)]] = x_1 [[U61(x_1, x_2)]] = x_1 [[U61#(x_1, x_2)]] = U61#(x_2) [[U62(x_1)]] = x_1 [[U91(x_1, x_2)]] = x_1 [[U92(x_1)]] = x_1 [[activate(x_1)]] = x_1 [[isNat(x_1)]] = isNat [[isNatKind(x_1)]] = isNatKind [[n!6220!62200]] = _|_ We choose Lex = {} and Mul = {U101, U102, U103, U104, U11, U12, U14, U21, U21#, U22, U23, U31#, U32, U32#, U33#, U34#, U35#, U42, U61#, U71, U72, U81, U82, U83, U84, activate#, isNat, isNatKind, isNatKind#, isNat#, n!6220!6220plus, n!6220!6220s, n!6220!6220x, plus, plus#, s, tt, x, x#}, and the following precedence: U101 = U102 = U103 = U104 = n!6220!6220x = x = x# > U31# > U32# > U33# > U34# > U21# = U35# = U61# = activate# = isNatKind# = isNat# = plus# > U81 = U82 = U83 = U84 = n!6220!6220plus = plus > U71 > U72 > U11 = U12 = U14 = U21 = U22 = U23 = U32 = U42 = isNat = isNatKind = n!6220!6220s = s = tt Taking the argument function into account, and fixing the greater / greater equal choices, the constraints can be denoted as follows: U21#(X) >= isNatKind#(X) U21#(X) >= activate#(X) U21#(X) >= activate#(X) U31#(tt, X, Y) >= U32#(isNatKind, X, Y) U31#(tt, X, Y) >= isNatKind#(X) U31#(tt, X, Y) >= activate#(X) U31#(tt, X, Y) >= activate#(X) U31#(tt, X, Y) >= activate#(Y) U32#(tt, X, Y) >= U33#(isNatKind, X, Y) U32#(tt, X, Y) >= isNatKind#(Y) U32#(tt, X, Y) >= activate#(Y) U32#(tt, X, Y) >= activate#(X) U32#(tt, X, Y) >= activate#(Y) U33#(tt, X, Y) >= U34#(isNatKind, X, Y) U33#(tt, X, Y) > isNatKind#(Y) U33#(tt, X, Y) >= activate#(Y) U33#(tt, X, Y) >= activate#(X) U33#(tt, X, Y) >= activate#(Y) U34#(tt, X, Y) >= U35#(Y) U34#(tt, X, Y) >= activate#(X) U34#(tt, X, Y) >= activate#(Y) U35#(X) >= isNat#(X) U35#(X) >= activate#(X) U61#(X) >= isNatKind#(X) isNat#(n!6220!6220plus(X, Y)) >= isNatKind#(X) isNat#(n!6220!6220plus(X, Y)) >= activate#(X) isNat#(n!6220!6220plus(X, Y)) >= activate#(X) isNat#(n!6220!6220plus(X, Y)) >= activate#(Y) isNat#(n!6220!6220s(X)) >= U21#(X) isNat#(n!6220!6220s(X)) >= isNatKind#(X) isNat#(n!6220!6220s(X)) >= activate#(X) isNat#(n!6220!6220s(X)) >= activate#(X) isNat#(n!6220!6220x(X, Y)) >= U31#(isNatKind, X, Y) isNat#(n!6220!6220x(X, Y)) >= isNatKind#(X) isNat#(n!6220!6220x(X, Y)) >= activate#(X) isNat#(n!6220!6220x(X, Y)) >= activate#(X) isNat#(n!6220!6220x(X, Y)) >= activate#(Y) isNatKind#(n!6220!6220plus(X, Y)) >= isNatKind#(X) isNatKind#(n!6220!6220plus(X, Y)) >= activate#(X) isNatKind#(n!6220!6220plus(X, Y)) >= activate#(Y) isNatKind#(n!6220!6220s(X)) >= isNatKind#(X) isNatKind#(n!6220!6220s(X)) >= activate#(X) isNatKind#(n!6220!6220x(X, Y)) >= U61#(Y) isNatKind#(n!6220!6220x(X, Y)) >= isNatKind#(X) isNatKind#(n!6220!6220x(X, Y)) > activate#(X) isNatKind#(n!6220!6220x(X, Y)) >= activate#(Y) plus#(X, _|_) >= isNat#(X) plus#(X, s(Y)) >= isNat#(Y) x#(X, _|_) >= isNat#(X) x#(X, s(Y)) >= isNat#(Y) activate#(n!6220!6220plus(X, Y)) >= plus#(X, Y) activate#(n!6220!6220plus(X, Y)) >= activate#(X) activate#(n!6220!6220plus(X, Y)) >= activate#(Y) activate#(n!6220!6220s(X)) >= activate#(X) activate#(n!6220!6220x(X, Y)) >= x#(X, Y) activate#(n!6220!6220x(X, Y)) >= activate#(X) activate#(n!6220!6220x(X, Y)) >= activate#(Y) U101(tt, X, Y) >= U102(isNatKind, X, Y) U102(tt, X, Y) >= U103(isNat, X, Y) U103(tt, X, Y) >= U104(isNatKind, X, Y) U104(tt, X, Y) >= plus(x(Y, X), Y) U11 >= U12 U12 >= isNatKind tt >= U14 U14 >= isNat tt >= isNat tt >= tt U21 >= U22 U22 >= U23 U23 >= tt tt >= U32 U32 >= isNatKind tt >= isNatKind tt >= isNat tt >= isNat tt >= tt tt >= U42 U42 >= tt tt >= tt tt >= isNatKind tt >= tt U71(tt, X) >= U72(isNatKind, X) U72(tt, X) >= X U81(tt, X, Y) >= U82(isNatKind, X, Y) U82(tt, X, Y) >= U83(isNat, X, Y) U83(tt, X, Y) >= U84(isNatKind, X, Y) U84(tt, X, Y) >= s(plus(Y, X)) tt >= isNatKind tt >= _|_ isNat >= tt isNat >= U11 isNat >= U21 isNat >= isNatKind isNatKind >= tt isNatKind >= isNatKind isNatKind >= isNatKind isNatKind >= isNatKind plus(X, _|_) >= U71(isNat, X) plus(X, s(Y)) >= U81(isNat, Y, X) x(X, _|_) >= isNat x(X, s(Y)) >= U101(isNat, Y, X) _|_ >= _|_ plus(X, Y) >= n!6220!6220plus(X, Y) s(X) >= n!6220!6220s(X) x(X, Y) >= n!6220!6220x(X, Y) _|_ >= _|_ n!6220!6220plus(X, Y) >= plus(X, Y) n!6220!6220s(X) >= s(X) n!6220!6220x(X, Y) >= x(X, Y) X >= X With these choices, we have: 1] U21#(X) >= isNatKind#(X) because U21# = isNatKind#, U21# in Mul and [2], by (Fun) 2] X >= X by (Meta) 3] U21#(X) >= activate#(X) because U21# = activate#, U21# in Mul and [2], by (Fun) 4] U21#(X) >= activate#(X) because U21# = activate#, U21# in Mul and [2], by (Fun) 5] U31#(tt, X, Y) >= U32#(isNatKind, X, Y) because [6], by (Star) 6] U31#*(tt, X, Y) >= U32#(isNatKind, X, Y) because U31# > U32#, [7], [8] and [9], by (Copy) 7] U31#*(tt, X, Y) >= isNatKind because U31# > isNatKind, by (Copy) 8] U31#*(tt, X, Y) >= X because [2], by (Select) 9] U31#*(tt, X, Y) >= Y because [10], by (Select) 10] Y >= Y by (Meta) 11] U31#(tt, X, Y) >= isNatKind#(X) because [12], by (Star) 12] U31#*(tt, X, Y) >= isNatKind#(X) because U31# > isNatKind# and [8], by (Copy) 13] U31#(tt, X, Y) >= activate#(X) because [14], by (Star) 14] U31#*(tt, X, Y) >= activate#(X) because U31# > activate# and [8], by (Copy) 15] U31#(tt, X, Y) >= activate#(X) because [14], by (Star) 16] U31#(tt, X, Y) >= activate#(Y) because [17], by (Star) 17] U31#*(tt, X, Y) >= activate#(Y) because U31# > activate# and [9], by (Copy) 18] U32#(tt, X, Y) >= U33#(isNatKind, X, Y) because [19], by (Star) 19] U32#*(tt, X, Y) >= U33#(isNatKind, X, Y) because U32# > U33#, [20], [21] and [22], by (Copy) 20] U32#*(tt, X, Y) >= isNatKind because U32# > isNatKind, by (Copy) 21] U32#*(tt, X, Y) >= X because [2], by (Select) 22] U32#*(tt, X, Y) >= Y because [10], by (Select) 23] U32#(tt, X, Y) >= isNatKind#(Y) because [24], by (Star) 24] U32#*(tt, X, Y) >= isNatKind#(Y) because U32# > isNatKind# and [22], by (Copy) 25] U32#(tt, X, Y) >= activate#(Y) because [26], by (Star) 26] U32#*(tt, X, Y) >= activate#(Y) because U32# > activate# and [22], by (Copy) 27] U32#(tt, X, Y) >= activate#(X) because [28], by (Star) 28] U32#*(tt, X, Y) >= activate#(X) because U32# > activate# and [21], by (Copy) 29] U32#(tt, X, Y) >= activate#(Y) because [26], by (Star) 30] U33#(tt, X, Y) >= U34#(isNatKind, X, Y) because [31], by (Star) 31] U33#*(tt, X, Y) >= U34#(isNatKind, X, Y) because U33# > U34#, [32], [34] and [35], by (Copy) 32] U33#*(tt, X, Y) >= isNatKind because [33], by (Select) 33] tt >= isNatKind because tt = isNatKind, by (Fun) 34] U33#*(tt, X, Y) >= X because [2], by (Select) 35] U33#*(tt, X, Y) >= Y because [10], by (Select) 36] U33#(tt, X, Y) > isNatKind#(Y) because [37], by definition 37] U33#*(tt, X, Y) >= isNatKind#(Y) because U33# > isNatKind# and [35], by (Copy) 38] U33#(tt, X, Y) >= activate#(Y) because [39], by (Star) 39] U33#*(tt, X, Y) >= activate#(Y) because U33# > activate# and [35], by (Copy) 40] U33#(tt, X, Y) >= activate#(X) because [41], by (Star) 41] U33#*(tt, X, Y) >= activate#(X) because U33# > activate# and [34], by (Copy) 42] U33#(tt, X, Y) >= activate#(Y) because [39], by (Star) 43] U34#(tt, X, Y) >= U35#(Y) because [44], by (Star) 44] U34#*(tt, X, Y) >= U35#(Y) because U34# > U35# and [45], by (Copy) 45] U34#*(tt, X, Y) >= Y because [10], by (Select) 46] U34#(tt, X, Y) >= activate#(X) because [47], by (Star) 47] U34#*(tt, X, Y) >= activate#(X) because U34# > activate# and [48], by (Copy) 48] U34#*(tt, X, Y) >= X because [2], by (Select) 49] U34#(tt, X, Y) >= activate#(Y) because [50], by (Star) 50] U34#*(tt, X, Y) >= activate#(Y) because U34# > activate# and [45], by (Copy) 51] U35#(X) >= isNat#(X) because U35# = isNat#, U35# in Mul and [52], by (Fun) 52] X >= X by (Meta) 53] U35#(X) >= activate#(X) because U35# = activate#, U35# in Mul and [52], by (Fun) 54] U61#(X) >= isNatKind#(X) because U61# = isNatKind#, U61# in Mul and [52], by (Fun) 55] isNat#(n!6220!6220plus(X, Y)) >= isNatKind#(X) because [56], by (Star) 56] isNat#*(n!6220!6220plus(X, Y)) >= isNatKind#(X) because isNat# = isNatKind#, isNat# in Mul and [57], by (Stat) 57] n!6220!6220plus(X, Y) > X because [58], by definition 58] n!6220!6220plus*(X, Y) >= X because [2], by (Select) 59] isNat#(n!6220!6220plus(X, Y)) >= activate#(X) because [60], by (Star) 60] isNat#*(n!6220!6220plus(X, Y)) >= activate#(X) because isNat# = activate#, isNat# in Mul and [61], by (Stat) 61] n!6220!6220plus(X, Y) > X because [58], by definition 62] isNat#(n!6220!6220plus(X, Y)) >= activate#(X) because [60], by (Star) 63] isNat#(n!6220!6220plus(X, Y)) >= activate#(Y) because isNat# = activate#, isNat# in Mul and [64], by (Fun) 64] n!6220!6220plus(X, Y) >= Y because [65], by (Star) 65] n!6220!6220plus*(X, Y) >= Y because [52], by (Select) 66] isNat#(n!6220!6220s(X)) >= U21#(X) because [67], by (Star) 67] isNat#*(n!6220!6220s(X)) >= U21#(X) because isNat# = U21#, isNat# in Mul and [68], by (Stat) 68] n!6220!6220s(X) > X because [69], by definition 69] n!6220!6220s*(X) >= X because [2], by (Select) 70] isNat#(n!6220!6220s(X)) >= isNatKind#(X) because isNat# = isNatKind#, isNat# in Mul and [71], by (Fun) 71] n!6220!6220s(X) >= X because [69], by (Star) 72] isNat#(n!6220!6220s(X)) >= activate#(X) because isNat# = activate#, isNat# in Mul and [71], by (Fun) 73] isNat#(n!6220!6220s(X)) >= activate#(X) because isNat# = activate#, isNat# in Mul and [71], by (Fun) 74] isNat#(n!6220!6220x(X, Y)) >= U31#(isNatKind, X, Y) because [75], by (Star) 75] isNat#*(n!6220!6220x(X, Y)) >= U31#(isNatKind, X, Y) because [76], by (Select) 76] n!6220!6220x(X, Y) >= U31#(isNatKind, X, Y) because [77], by (Star) 77] n!6220!6220x*(X, Y) >= U31#(isNatKind, X, Y) because n!6220!6220x > U31#, [78], [79] and [80], by (Copy) 78] n!6220!6220x*(X, Y) >= isNatKind because n!6220!6220x > isNatKind, by (Copy) 79] n!6220!6220x*(X, Y) >= X because [2], by (Select) 80] n!6220!6220x*(X, Y) >= Y because [52], by (Select) 81] isNat#(n!6220!6220x(X, Y)) >= isNatKind#(X) because [82], by (Star) 82] isNat#*(n!6220!6220x(X, Y)) >= isNatKind#(X) because [83], by (Select) 83] n!6220!6220x(X, Y) >= isNatKind#(X) because [84], by (Star) 84] n!6220!6220x*(X, Y) >= isNatKind#(X) because n!6220!6220x > isNatKind# and [79], by (Copy) 85] isNat#(n!6220!6220x(X, Y)) >= activate#(X) because [86], by (Star) 86] isNat#*(n!6220!6220x(X, Y)) >= activate#(X) because isNat# = activate#, isNat# in Mul and [87], by (Stat) 87] n!6220!6220x(X, Y) > X because [79], by definition 88] isNat#(n!6220!6220x(X, Y)) >= activate#(X) because [86], by (Star) 89] isNat#(n!6220!6220x(X, Y)) >= activate#(Y) because isNat# = activate#, isNat# in Mul and [90], by (Fun) 90] n!6220!6220x(X, Y) >= Y because [80], by (Star) 91] isNatKind#(n!6220!6220plus(X, Y)) >= isNatKind#(X) because [92], by (Star) 92] isNatKind#*(n!6220!6220plus(X, Y)) >= isNatKind#(X) because isNatKind# in Mul and [57], by (Stat) 93] isNatKind#(n!6220!6220plus(X, Y)) >= activate#(X) because [94], by (Star) 94] isNatKind#*(n!6220!6220plus(X, Y)) >= activate#(X) because isNatKind# = activate#, isNatKind# in Mul and [61], by (Stat) 95] isNatKind#(n!6220!6220plus(X, Y)) >= activate#(Y) because isNatKind# = activate#, isNatKind# in Mul and [64], by (Fun) 96] isNatKind#(n!6220!6220s(X)) >= isNatKind#(X) because isNatKind# in Mul and [71], by (Fun) 97] isNatKind#(n!6220!6220s(X)) >= activate#(X) because isNatKind# = activate#, isNatKind# in Mul and [71], by (Fun) 98] isNatKind#(n!6220!6220x(X, Y)) >= U61#(Y) because isNatKind# = U61#, isNatKind# in Mul and [99], by (Fun) 99] n!6220!6220x(X, Y) >= Y because [80], by (Star) 100] isNatKind#(n!6220!6220x(X, Y)) >= isNatKind#(X) because [101], by (Star) 101] isNatKind#*(n!6220!6220x(X, Y)) >= isNatKind#(X) because [83], by (Select) 102] isNatKind#(n!6220!6220x(X, Y)) > activate#(X) because [103], by definition 103] isNatKind#*(n!6220!6220x(X, Y)) >= activate#(X) because isNatKind# = activate#, isNatKind# in Mul and [87], by (Stat) 104] isNatKind#(n!6220!6220x(X, Y)) >= activate#(Y) because isNatKind# = activate#, isNatKind# in Mul and [99], by (Fun) 105] plus#(X, _|_) >= isNat#(X) because [106], by (Star) 106] plus#*(X, _|_) >= isNat#(X) because plus# = isNat#, plus# in Mul and [107], by (Stat) 107] X >= X by (Meta) 108] plus#(X, s(Y)) >= isNat#(Y) because [109], by (Star) 109] plus#*(X, s(Y)) >= isNat#(Y) because plus# = isNat#, plus# in Mul and [110], by (Stat) 110] s(Y) > Y because [111], by definition 111] s*(Y) >= Y because [112], by (Select) 112] Y >= Y by (Meta) 113] x#(X, _|_) >= isNat#(X) because [114], by (Star) 114] x#*(X, _|_) >= isNat#(X) because x# > isNat# and [115], by (Copy) 115] x#*(X, _|_) >= X because [107], by (Select) 116] x#(X, s(Y)) >= isNat#(Y) because [117], by (Star) 117] x#*(X, s(Y)) >= isNat#(Y) because x# > isNat# and [118], by (Copy) 118] x#*(X, s(Y)) >= Y because [119], by (Select) 119] s(Y) >= Y because [111], by (Star) 120] activate#(n!6220!6220plus(X, Y)) >= plus#(X, Y) because [121], by (Star) 121] activate#*(n!6220!6220plus(X, Y)) >= plus#(X, Y) because activate# = plus#, activate# in Mul, [122] and [125], by (Stat) 122] n!6220!6220plus(X, Y) > X because [123], by definition 123] n!6220!6220plus*(X, Y) >= X because [124], by (Select) 124] X >= X by (Meta) 125] n!6220!6220plus(X, Y) > Y because [126], by definition 126] n!6220!6220plus*(X, Y) >= Y because [127], by (Select) 127] Y >= Y by (Meta) 128] activate#(n!6220!6220plus(X, Y)) >= activate#(X) because activate# in Mul and [129], by (Fun) 129] n!6220!6220plus(X, Y) >= X because [123], by (Star) 130] activate#(n!6220!6220plus(X, Y)) >= activate#(Y) because [131], by (Star) 131] activate#*(n!6220!6220plus(X, Y)) >= activate#(Y) because activate# in Mul and [132], by (Stat) 132] n!6220!6220plus(X, Y) > Y because [126], by definition 133] activate#(n!6220!6220s(X)) >= activate#(X) because [134], by (Star) 134] activate#*(n!6220!6220s(X)) >= activate#(X) because activate# in Mul and [135], by (Stat) 135] n!6220!6220s(X) > X because [136], by definition 136] n!6220!6220s*(X) >= X because [137], by (Select) 137] X >= X by (Meta) 138] activate#(n!6220!6220x(X, Y)) >= x#(X, Y) because [139], by (Star) 139] activate#*(n!6220!6220x(X, Y)) >= x#(X, Y) because [140], by (Select) 140] n!6220!6220x(X, Y) >= x#(X, Y) because n!6220!6220x = x#, n!6220!6220x in Mul, [141] and [142], by (Fun) 141] X >= X by (Meta) 142] Y >= Y by (Meta) 143] activate#(n!6220!6220x(X, Y)) >= activate#(X) because activate# in Mul and [144], by (Fun) 144] n!6220!6220x(X, Y) >= X because [145], by (Star) 145] n!6220!6220x*(X, Y) >= X because [141], by (Select) 146] activate#(n!6220!6220x(X, Y)) >= activate#(Y) because activate# in Mul and [147], by (Fun) 147] n!6220!6220x(X, Y) >= Y because [148], by (Star) 148] n!6220!6220x*(X, Y) >= Y because [142], by (Select) 149] U101(tt, X, Y) >= U102(isNatKind, X, Y) because U101 = U102, U101 in Mul, [150], [151] and [152], by (Fun) 150] tt >= isNatKind because tt = isNatKind, by (Fun) 151] X >= X by (Meta) 152] Y >= Y by (Meta) 153] U102(tt, X, Y) >= U103(isNat, X, Y) because U102 = U103, U102 in Mul, [154], [151] and [152], by (Fun) 154] tt >= isNat because tt = isNat, by (Fun) 155] U103(tt, X, Y) >= U104(isNatKind, X, Y) because U103 = U104, U103 in Mul, [156], [151] and [152], by (Fun) 156] tt >= isNatKind because tt = isNatKind, by (Fun) 157] U104(tt, X, Y) >= plus(x(Y, X), Y) because [158], by (Star) 158] U104*(tt, X, Y) >= plus(x(Y, X), Y) because U104 > plus, [159] and [160], by (Copy) 159] U104*(tt, X, Y) >= x(Y, X) because U104 = x, U104 in Mul, [151] and [152], by (Stat) 160] U104*(tt, X, Y) >= Y because [152], by (Select) 161] U11 >= U12 because U11 = U12 and U11 in Mul, by (Fun) 162] U12 >= isNatKind because U12 = isNatKind and U12 in Mul, by (Fun) 163] tt >= U14 because tt = U14, by (Fun) 164] U14 >= isNat because U14 = isNat and U14 in Mul, by (Fun) 165] tt >= isNat because tt = isNat, by (Fun) 166] tt >= tt by (Fun) 167] U21 >= U22 because U21 = U22 and U21 in Mul, by (Fun) 168] U22 >= U23 because U22 = U23 and U22 in Mul, by (Fun) 169] U23 >= tt because U23 = tt, by (Fun) 170] tt >= U32 because tt = U32, by (Fun) 171] U32 >= isNatKind because U32 = isNatKind and U32 in Mul, by (Fun) 172] tt >= isNatKind because tt = isNatKind, by (Fun) 173] tt >= isNat because tt = isNat, by (Fun) 174] tt >= isNat because tt = isNat, by (Fun) 175] tt >= tt by (Fun) 176] tt >= U42 because tt = U42, by (Fun) 177] U42 >= tt because U42 = tt, by (Fun) 178] tt >= tt by (Fun) 179] tt >= isNatKind because tt = isNatKind, by (Fun) 180] tt >= tt by (Fun) 181] U71(tt, X) >= U72(isNatKind, X) because [182], by (Star) 182] U71*(tt, X) >= U72(isNatKind, X) because U71 > U72, [183] and [184], by (Copy) 183] U71*(tt, X) >= isNatKind because U71 > isNatKind, by (Copy) 184] U71*(tt, X) >= X because [152], by (Select) 185] U72(tt, X) >= X because [186], by (Star) 186] U72*(tt, X) >= X because [152], by (Select) 187] U81(tt, X, Y) >= U82(isNatKind, X, Y) because U81 = U82, U81 in Mul, [150], [151] and [152], by (Fun) 188] U82(tt, X, Y) >= U83(isNat, X, Y) because U82 = U83, U82 in Mul, [154], [151] and [152], by (Fun) 189] U83(tt, X, Y) >= U84(isNatKind, X, Y) because U83 = U84, U83 in Mul, [156], [151] and [152], by (Fun) 190] U84(tt, X, Y) >= s(plus(Y, X)) because [191], by (Star) 191] U84*(tt, X, Y) >= s(plus(Y, X)) because U84 > s and [192], by (Copy) 192] U84*(tt, X, Y) >= plus(Y, X) because U84 = plus, U84 in Mul, [151] and [152], by (Stat) 193] tt >= isNatKind because tt = isNatKind, by (Fun) 194] tt >= _|_ by (Bot) 195] isNat >= tt because isNat = tt, by (Fun) 196] isNat >= U11 because isNat = U11 and isNat in Mul, by (Fun) 197] isNat >= U21 because isNat = U21 and isNat in Mul, by (Fun) 198] isNat >= isNatKind because isNat = isNatKind and isNat in Mul, by (Fun) 199] isNatKind >= tt because isNatKind = tt, by (Fun) 200] isNatKind >= isNatKind because isNatKind in Mul, by (Fun) 201] isNatKind >= isNatKind because isNatKind in Mul, by (Fun) 202] isNatKind >= isNatKind because isNatKind in Mul, by (Fun) 203] plus(X, _|_) >= U71(isNat, X) because [204], by (Star) 204] plus*(X, _|_) >= U71(isNat, X) because plus > U71, [205] and [206], by (Copy) 205] plus*(X, _|_) >= isNat because plus > isNat, by (Copy) 206] plus*(X, _|_) >= X because [152], by (Select) 207] plus(X, s(Y)) >= U81(isNat, Y, X) because [208], by (Star) 208] plus*(X, s(Y)) >= U81(isNat, Y, X) because plus = U81, plus in Mul, [152], [209] and [110], by (Stat) 209] s(Y) > isNat because [210], by definition 210] s*(Y) >= isNat because s = isNat and s in Mul, by (Stat) 211] x(X, _|_) >= isNat because [212], by (Star) 212] x*(X, _|_) >= isNat because x > isNat, by (Copy) 213] x(X, s(Y)) >= U101(isNat, Y, X) because [214], by (Star) 214] x*(X, s(Y)) >= U101(isNat, Y, X) because x = U101, x in Mul, [152], [209] and [110], by (Stat) 215] _|_ >= _|_ by (Bot) 216] plus(X, Y) >= n!6220!6220plus(X, Y) because plus = n!6220!6220plus, plus in Mul, [141] and [142], by (Fun) 217] s(X) >= n!6220!6220s(X) because s = n!6220!6220s, s in Mul and [218], by (Fun) 218] X >= X by (Meta) 219] x(X, Y) >= n!6220!6220x(X, Y) because x = n!6220!6220x, x in Mul, [141] and [142], by (Fun) 220] _|_ >= _|_ by (Bot) 221] n!6220!6220plus(X, Y) >= plus(X, Y) because n!6220!6220plus = plus, n!6220!6220plus in Mul, [141] and [142], by (Fun) 222] n!6220!6220s(X) >= s(X) because n!6220!6220s = s, n!6220!6220s in Mul and [223], by (Fun) 223] X >= X by (Meta) 224] n!6220!6220x(X, Y) >= x(X, Y) because n!6220!6220x = x, n!6220!6220x in Mul, [141] and [142], by (Fun) 225] X >= X by (Meta) By the observations in [Kop12, Sec. 6.6], this reduction pair suffices; we may thus replace the dependency pair problem (P_7, R_0, minimal, formative) by (P_8, R_0, minimal, formative), where P_8 consists of: U21#(tt, X) =#> isNatKind#(activate(X)) U21#(tt, X) =#> activate#(X) U21#(tt, X) =#> activate#(X) U31#(tt, X, Y) =#> U32#(isNatKind(activate(X)), activate(X), activate(Y)) U31#(tt, X, Y) =#> isNatKind#(activate(X)) U31#(tt, X, Y) =#> activate#(X) U31#(tt, X, Y) =#> activate#(X) U31#(tt, X, Y) =#> activate#(Y) U32#(tt, X, Y) =#> U33#(isNatKind(activate(Y)), activate(X), activate(Y)) U32#(tt, X, Y) =#> isNatKind#(activate(Y)) U32#(tt, X, Y) =#> activate#(Y) U32#(tt, X, Y) =#> activate#(X) U32#(tt, X, Y) =#> activate#(Y) U33#(tt, X, Y) =#> U34#(isNatKind(activate(Y)), activate(X), activate(Y)) U33#(tt, X, Y) =#> activate#(Y) U33#(tt, X, Y) =#> activate#(X) U33#(tt, X, Y) =#> activate#(Y) U34#(tt, X, Y) =#> U35#(isNat(activate(X)), activate(Y)) U34#(tt, X, Y) =#> activate#(X) U34#(tt, X, Y) =#> activate#(Y) U35#(tt, X) =#> isNat#(activate(X)) U35#(tt, X) =#> activate#(X) U61#(tt, X) =#> isNatKind#(activate(X)) isNat#(n!6220!6220plus(X, Y)) =#> isNatKind#(activate(X)) isNat#(n!6220!6220plus(X, Y)) =#> activate#(X) isNat#(n!6220!6220plus(X, Y)) =#> activate#(X) isNat#(n!6220!6220plus(X, Y)) =#> activate#(Y) isNat#(n!6220!6220s(X)) =#> U21#(isNatKind(activate(X)), activate(X)) isNat#(n!6220!6220s(X)) =#> isNatKind#(activate(X)) isNat#(n!6220!6220s(X)) =#> activate#(X) isNat#(n!6220!6220s(X)) =#> activate#(X) isNat#(n!6220!6220x(X, Y)) =#> U31#(isNatKind(activate(X)), activate(X), activate(Y)) isNat#(n!6220!6220x(X, Y)) =#> isNatKind#(activate(X)) isNat#(n!6220!6220x(X, Y)) =#> activate#(X) isNat#(n!6220!6220x(X, Y)) =#> activate#(X) isNat#(n!6220!6220x(X, Y)) =#> activate#(Y) isNatKind#(n!6220!6220plus(X, Y)) =#> isNatKind#(activate(X)) isNatKind#(n!6220!6220plus(X, Y)) =#> activate#(X) isNatKind#(n!6220!6220plus(X, Y)) =#> activate#(Y) isNatKind#(n!6220!6220s(X)) =#> isNatKind#(activate(X)) isNatKind#(n!6220!6220s(X)) =#> activate#(X) isNatKind#(n!6220!6220x(X, Y)) =#> U61#(isNatKind(activate(X)), activate(Y)) isNatKind#(n!6220!6220x(X, Y)) =#> isNatKind#(activate(X)) isNatKind#(n!6220!6220x(X, Y)) =#> activate#(Y) plus#(X, 0) =#> isNat#(X) plus#(X, s(Y)) =#> isNat#(Y) x#(X, 0) =#> isNat#(X) x#(X, s(Y)) =#> isNat#(Y) activate#(n!6220!6220plus(X, Y)) =#> plus#(activate(X), activate(Y)) activate#(n!6220!6220plus(X, Y)) =#> activate#(X) activate#(n!6220!6220plus(X, Y)) =#> activate#(Y) activate#(n!6220!6220s(X)) =#> activate#(X) activate#(n!6220!6220x(X, Y)) =#> x#(activate(X), activate(Y)) activate#(n!6220!6220x(X, Y)) =#> activate#(X) activate#(n!6220!6220x(X, Y)) =#> activate#(Y) Thus, the original system is terminating if (P_8, R_0, minimal, formative) is finite. We consider the dependency pair problem (P_8, R_0, minimal, formative). We will use the reduction pair processor [Kop12, Thm. 7.16]. It suffices to find a standard reduction pair [Kop12, Def. 6.69]. Thus, we must orient: U21#(tt, X) >? isNatKind#(activate(X)) U21#(tt, X) >? activate#(X) U21#(tt, X) >? activate#(X) U31#(tt, X, Y) >? U32#(isNatKind(activate(X)), activate(X), activate(Y)) U31#(tt, X, Y) >? isNatKind#(activate(X)) U31#(tt, X, Y) >? activate#(X) U31#(tt, X, Y) >? activate#(X) U31#(tt, X, Y) >? activate#(Y) U32#(tt, X, Y) >? U33#(isNatKind(activate(Y)), activate(X), activate(Y)) U32#(tt, X, Y) >? isNatKind#(activate(Y)) U32#(tt, X, Y) >? activate#(Y) U32#(tt, X, Y) >? activate#(X) U32#(tt, X, Y) >? activate#(Y) U33#(tt, X, Y) >? U34#(isNatKind(activate(Y)), activate(X), activate(Y)) U33#(tt, X, Y) >? activate#(Y) U33#(tt, X, Y) >? activate#(X) U33#(tt, X, Y) >? activate#(Y) U34#(tt, X, Y) >? U35#(isNat(activate(X)), activate(Y)) U34#(tt, X, Y) >? activate#(X) U34#(tt, X, Y) >? activate#(Y) U35#(tt, X) >? isNat#(activate(X)) U35#(tt, X) >? activate#(X) U61#(tt, X) >? isNatKind#(activate(X)) isNat#(n!6220!6220plus(X, Y)) >? isNatKind#(activate(X)) isNat#(n!6220!6220plus(X, Y)) >? activate#(X) isNat#(n!6220!6220plus(X, Y)) >? activate#(X) isNat#(n!6220!6220plus(X, Y)) >? activate#(Y) isNat#(n!6220!6220s(X)) >? U21#(isNatKind(activate(X)), activate(X)) isNat#(n!6220!6220s(X)) >? isNatKind#(activate(X)) isNat#(n!6220!6220s(X)) >? activate#(X) isNat#(n!6220!6220s(X)) >? activate#(X) isNat#(n!6220!6220x(X, Y)) >? U31#(isNatKind(activate(X)), activate(X), activate(Y)) isNat#(n!6220!6220x(X, Y)) >? isNatKind#(activate(X)) isNat#(n!6220!6220x(X, Y)) >? activate#(X) isNat#(n!6220!6220x(X, Y)) >? activate#(X) isNat#(n!6220!6220x(X, Y)) >? activate#(Y) isNatKind#(n!6220!6220plus(X, Y)) >? isNatKind#(activate(X)) isNatKind#(n!6220!6220plus(X, Y)) >? activate#(X) isNatKind#(n!6220!6220plus(X, Y)) >? activate#(Y) isNatKind#(n!6220!6220s(X)) >? isNatKind#(activate(X)) isNatKind#(n!6220!6220s(X)) >? activate#(X) isNatKind#(n!6220!6220x(X, Y)) >? U61#(isNatKind(activate(X)), activate(Y)) isNatKind#(n!6220!6220x(X, Y)) >? isNatKind#(activate(X)) isNatKind#(n!6220!6220x(X, Y)) >? activate#(Y) plus#(X, 0) >? isNat#(X) plus#(X, s(Y)) >? isNat#(Y) x#(X, 0) >? isNat#(X) x#(X, s(Y)) >? isNat#(Y) activate#(n!6220!6220plus(X, Y)) >? plus#(activate(X), activate(Y)) activate#(n!6220!6220plus(X, Y)) >? activate#(X) activate#(n!6220!6220plus(X, Y)) >? activate#(Y) activate#(n!6220!6220s(X)) >? activate#(X) activate#(n!6220!6220x(X, Y)) >? x#(activate(X), activate(Y)) activate#(n!6220!6220x(X, Y)) >? activate#(X) activate#(n!6220!6220x(X, Y)) >? activate#(Y) U101(tt, X, Y) >= U102(isNatKind(activate(X)), activate(X), activate(Y)) U102(tt, X, Y) >= U103(isNat(activate(Y)), activate(X), activate(Y)) U103(tt, X, Y) >= U104(isNatKind(activate(Y)), activate(X), activate(Y)) U104(tt, X, Y) >= plus(x(activate(Y), activate(X)), activate(Y)) U11(tt, X, Y) >= U12(isNatKind(activate(X)), activate(X), activate(Y)) U12(tt, X, Y) >= U13(isNatKind(activate(Y)), activate(X), activate(Y)) U13(tt, X, Y) >= U14(isNatKind(activate(Y)), activate(X), activate(Y)) U14(tt, X, Y) >= U15(isNat(activate(X)), activate(Y)) U15(tt, X) >= U16(isNat(activate(X))) U16(tt) >= tt U21(tt, X) >= U22(isNatKind(activate(X)), activate(X)) U22(tt, X) >= U23(isNat(activate(X))) U23(tt) >= tt U31(tt, X, Y) >= U32(isNatKind(activate(X)), activate(X), activate(Y)) U32(tt, X, Y) >= U33(isNatKind(activate(Y)), activate(X), activate(Y)) U33(tt, X, Y) >= U34(isNatKind(activate(Y)), activate(X), activate(Y)) U34(tt, X, Y) >= U35(isNat(activate(X)), activate(Y)) U35(tt, X) >= U36(isNat(activate(X))) U36(tt) >= tt U41(tt, X) >= U42(isNatKind(activate(X))) U42(tt) >= tt U51(tt) >= tt U61(tt, X) >= U62(isNatKind(activate(X))) U62(tt) >= tt U71(tt, X) >= U72(isNatKind(activate(X)), activate(X)) U72(tt, X) >= activate(X) U81(tt, X, Y) >= U82(isNatKind(activate(X)), activate(X), activate(Y)) U82(tt, X, Y) >= U83(isNat(activate(Y)), activate(X), activate(Y)) U83(tt, X, Y) >= U84(isNatKind(activate(Y)), activate(X), activate(Y)) U84(tt, X, Y) >= s(plus(activate(Y), activate(X))) U91(tt, X) >= U92(isNatKind(activate(X))) U92(tt) >= 0 isNat(n!6220!62200) >= tt isNat(n!6220!6220plus(X, Y)) >= U11(isNatKind(activate(X)), activate(X), activate(Y)) isNat(n!6220!6220s(X)) >= U21(isNatKind(activate(X)), activate(X)) isNat(n!6220!6220x(X, Y)) >= U31(isNatKind(activate(X)), activate(X), activate(Y)) isNatKind(n!6220!62200) >= tt isNatKind(n!6220!6220plus(X, Y)) >= U41(isNatKind(activate(X)), activate(Y)) isNatKind(n!6220!6220s(X)) >= U51(isNatKind(activate(X))) isNatKind(n!6220!6220x(X, Y)) >= U61(isNatKind(activate(X)), activate(Y)) plus(X, 0) >= U71(isNat(X), X) plus(X, s(Y)) >= U81(isNat(Y), Y, X) x(X, 0) >= U91(isNat(X), X) x(X, s(Y)) >= U101(isNat(Y), Y, X) 0 >= n!6220!62200 plus(X, Y) >= n!6220!6220plus(X, Y) s(X) >= n!6220!6220s(X) x(X, Y) >= n!6220!6220x(X, Y) activate(n!6220!62200) >= 0 activate(n!6220!6220plus(X, Y)) >= plus(activate(X), activate(Y)) activate(n!6220!6220s(X)) >= s(activate(X)) activate(n!6220!6220x(X, Y)) >= x(activate(X), activate(Y)) activate(X) >= X Since this representation is not advantageous for the higher-order recursive path ordering, we present the strict requirements in their unextended form, which is not problematic since for any F, s and substituion gamma: (F s)gamma beta-reduces to F(s)gamma.) We use a recursive path ordering as defined in [Kop12, Chapter 5]. Argument functions: [[0]] = _|_ [[U11(x_1, x_2, x_3)]] = U11 [[U12(x_1, x_2, x_3)]] = U12 [[U13(x_1, x_2, x_3)]] = U13 [[U14(x_1, x_2, x_3)]] = x_1 [[U15(x_1, x_2)]] = U15 [[U16(x_1)]] = x_1 [[U21(x_1, x_2)]] = U21 [[U21#(x_1, x_2)]] = U21#(x_2) [[U22(x_1, x_2)]] = U22 [[U23(x_1)]] = x_1 [[U31(x_1, x_2, x_3)]] = x_1 [[U32(x_1, x_2, x_3)]] = U32 [[U33(x_1, x_2, x_3)]] = x_1 [[U34(x_1, x_2, x_3)]] = x_1 [[U35(x_1, x_2)]] = x_1 [[U36(x_1)]] = x_1 [[U41(x_1, x_2)]] = x_1 [[U42(x_1)]] = x_1 [[U51(x_1)]] = x_1 [[U61(x_1, x_2)]] = x_1 [[U61#(x_1, x_2)]] = U61#(x_2) [[U62(x_1)]] = x_1 [[U71(x_1, x_2)]] = U71(x_2) [[U72(x_1, x_2)]] = x_2 [[U92(x_1)]] = _|_ [[activate(x_1)]] = x_1 [[isNat(x_1)]] = isNat [[isNatKind(x_1)]] = isNatKind [[n!6220!62200]] = _|_ We choose Lex = {} and Mul = {U101, U102, U103, U104, U11, U12, U13, U15, U21, U21#, U22, U31#, U32, U32#, U33#, U34#, U35#, U61#, U71, U81, U82, U83, U84, U91, activate#, isNat, isNatKind, isNatKind#, isNat#, n!6220!6220plus, n!6220!6220s, n!6220!6220x, plus, plus#, s, tt, x, x#}, and the following precedence: U101 = U102 = U103 = U104 = n!6220!6220x = x > U31# > U91 > x# > U32# > U33# = U34# > U35# > U71 = U81 = U82 = U83 = U84 = n!6220!6220plus = plus > n!6220!6220s = s > U11 = U12 = U13 = U15 = U21 = U22 = U32 = isNat = isNatKind = tt > plus# > U21# = U61# = isNatKind# = isNat# > activate# Taking the argument function into account, and fixing the greater / greater equal choices, the constraints can be denoted as follows: U21#(X) >= isNatKind#(X) U21#(X) >= activate#(X) U21#(X) >= activate#(X) U31#(tt, X, Y) >= U32#(isNatKind, X, Y) U31#(tt, X, Y) >= isNatKind#(X) U31#(tt, X, Y) >= activate#(X) U31#(tt, X, Y) >= activate#(X) U31#(tt, X, Y) >= activate#(Y) U32#(tt, X, Y) >= U33#(isNatKind, X, Y) U32#(tt, X, Y) >= isNatKind#(Y) U32#(tt, X, Y) >= activate#(Y) U32#(tt, X, Y) >= activate#(X) U32#(tt, X, Y) >= activate#(Y) U33#(tt, X, Y) >= U34#(isNatKind, X, Y) U33#(tt, X, Y) >= activate#(Y) U33#(tt, X, Y) >= activate#(X) U33#(tt, X, Y) >= activate#(Y) U34#(tt, X, Y) >= U35#(isNat, Y) U34#(tt, X, Y) >= activate#(X) U34#(tt, X, Y) >= activate#(Y) U35#(tt, X) >= isNat#(X) U35#(tt, X) > activate#(X) U61#(X) >= isNatKind#(X) isNat#(n!6220!6220plus(X, Y)) >= isNatKind#(X) isNat#(n!6220!6220plus(X, Y)) >= activate#(X) isNat#(n!6220!6220plus(X, Y)) >= activate#(X) isNat#(n!6220!6220plus(X, Y)) >= activate#(Y) isNat#(n!6220!6220s(X)) >= U21#(X) isNat#(n!6220!6220s(X)) >= isNatKind#(X) isNat#(n!6220!6220s(X)) >= activate#(X) isNat#(n!6220!6220s(X)) >= activate#(X) isNat#(n!6220!6220x(X, Y)) >= U31#(isNatKind, X, Y) isNat#(n!6220!6220x(X, Y)) >= isNatKind#(X) isNat#(n!6220!6220x(X, Y)) >= activate#(X) isNat#(n!6220!6220x(X, Y)) >= activate#(X) isNat#(n!6220!6220x(X, Y)) >= activate#(Y) isNatKind#(n!6220!6220plus(X, Y)) >= isNatKind#(X) isNatKind#(n!6220!6220plus(X, Y)) >= activate#(X) isNatKind#(n!6220!6220plus(X, Y)) >= activate#(Y) isNatKind#(n!6220!6220s(X)) >= isNatKind#(X) isNatKind#(n!6220!6220s(X)) >= activate#(X) isNatKind#(n!6220!6220x(X, Y)) >= U61#(Y) isNatKind#(n!6220!6220x(X, Y)) >= isNatKind#(X) isNatKind#(n!6220!6220x(X, Y)) >= activate#(Y) plus#(X, _|_) >= isNat#(X) plus#(X, s(Y)) >= isNat#(Y) x#(X, _|_) >= isNat#(X) x#(X, s(Y)) >= isNat#(Y) activate#(n!6220!6220plus(X, Y)) >= plus#(X, Y) activate#(n!6220!6220plus(X, Y)) >= activate#(X) activate#(n!6220!6220plus(X, Y)) >= activate#(Y) activate#(n!6220!6220s(X)) >= activate#(X) activate#(n!6220!6220x(X, Y)) >= x#(X, Y) activate#(n!6220!6220x(X, Y)) >= activate#(X) activate#(n!6220!6220x(X, Y)) >= activate#(Y) U101(tt, X, Y) >= U102(isNatKind, X, Y) U102(tt, X, Y) >= U103(isNat, X, Y) U103(tt, X, Y) >= U104(isNatKind, X, Y) U104(tt, X, Y) >= plus(x(Y, X), Y) U11 >= U12 U12 >= U13 U13 >= isNatKind tt >= U15 U15 >= isNat tt >= tt U21 >= U22 U22 >= isNat tt >= tt tt >= U32 U32 >= isNatKind tt >= isNatKind tt >= isNat tt >= isNat tt >= tt tt >= isNatKind tt >= tt tt >= tt tt >= isNatKind tt >= tt U71(X) >= X X >= X U81(tt, X, Y) >= U82(isNatKind, X, Y) U82(tt, X, Y) >= U83(isNat, X, Y) U83(tt, X, Y) >= U84(isNatKind, X, Y) U84(tt, X, Y) >= s(plus(Y, X)) U91(tt, X) >= _|_ _|_ >= _|_ isNat >= tt isNat >= U11 isNat >= U21 isNat >= isNatKind isNatKind >= tt isNatKind >= isNatKind isNatKind >= isNatKind isNatKind >= isNatKind plus(X, _|_) >= U71(X) plus(X, s(Y)) >= U81(isNat, Y, X) x(X, _|_) >= U91(isNat, X) x(X, s(Y)) >= U101(isNat, Y, X) _|_ >= _|_ plus(X, Y) >= n!6220!6220plus(X, Y) s(X) >= n!6220!6220s(X) x(X, Y) >= n!6220!6220x(X, Y) _|_ >= _|_ n!6220!6220plus(X, Y) >= plus(X, Y) n!6220!6220s(X) >= s(X) n!6220!6220x(X, Y) >= x(X, Y) X >= X With these choices, we have: 1] U21#(X) >= isNatKind#(X) because U21# = isNatKind#, U21# in Mul and [2], by (Fun) 2] X >= X by (Meta) 3] U21#(X) >= activate#(X) because [4], by (Star) 4] U21#*(X) >= activate#(X) because U21# > activate# and [5], by (Copy) 5] U21#*(X) >= X because [2], by (Select) 6] U21#(X) >= activate#(X) because [4], by (Star) 7] U31#(tt, X, Y) >= U32#(isNatKind, X, Y) because [8], by (Star) 8] U31#*(tt, X, Y) >= U32#(isNatKind, X, Y) because U31# > U32#, [9], [10] and [11], by (Copy) 9] U31#*(tt, X, Y) >= isNatKind because U31# > isNatKind, by (Copy) 10] U31#*(tt, X, Y) >= X because [2], by (Select) 11] U31#*(tt, X, Y) >= Y because [12], by (Select) 12] Y >= Y by (Meta) 13] U31#(tt, X, Y) >= isNatKind#(X) because [14], by (Star) 14] U31#*(tt, X, Y) >= isNatKind#(X) because U31# > isNatKind# and [10], by (Copy) 15] U31#(tt, X, Y) >= activate#(X) because [16], by (Star) 16] U31#*(tt, X, Y) >= activate#(X) because U31# > activate# and [10], by (Copy) 17] U31#(tt, X, Y) >= activate#(X) because [16], by (Star) 18] U31#(tt, X, Y) >= activate#(Y) because [19], by (Star) 19] U31#*(tt, X, Y) >= activate#(Y) because U31# > activate# and [11], by (Copy) 20] U32#(tt, X, Y) >= U33#(isNatKind, X, Y) because [21], by (Star) 21] U32#*(tt, X, Y) >= U33#(isNatKind, X, Y) because U32# > U33#, [22], [23] and [24], by (Copy) 22] U32#*(tt, X, Y) >= isNatKind because U32# > isNatKind, by (Copy) 23] U32#*(tt, X, Y) >= X because [2], by (Select) 24] U32#*(tt, X, Y) >= Y because [12], by (Select) 25] U32#(tt, X, Y) >= isNatKind#(Y) because [26], by (Star) 26] U32#*(tt, X, Y) >= isNatKind#(Y) because U32# > isNatKind# and [24], by (Copy) 27] U32#(tt, X, Y) >= activate#(Y) because [28], by (Star) 28] U32#*(tt, X, Y) >= activate#(Y) because U32# > activate# and [24], by (Copy) 29] U32#(tt, X, Y) >= activate#(X) because [30], by (Star) 30] U32#*(tt, X, Y) >= activate#(X) because U32# > activate# and [23], by (Copy) 31] U32#(tt, X, Y) >= activate#(Y) because [28], by (Star) 32] U33#(tt, X, Y) >= U34#(isNatKind, X, Y) because U33# = U34#, U33# in Mul, [33], [2] and [34], by (Fun) 33] tt >= isNatKind because tt = isNatKind, by (Fun) 34] Y >= Y by (Meta) 35] U33#(tt, X, Y) >= activate#(Y) because [36], by (Star) 36] U33#*(tt, X, Y) >= activate#(Y) because U33# > activate# and [37], by (Copy) 37] U33#*(tt, X, Y) >= Y because [34], by (Select) 38] U33#(tt, X, Y) >= activate#(X) because [39], by (Star) 39] U33#*(tt, X, Y) >= activate#(X) because U33# > activate# and [40], by (Copy) 40] U33#*(tt, X, Y) >= X because [2], by (Select) 41] U33#(tt, X, Y) >= activate#(Y) because [36], by (Star) 42] U34#(tt, X, Y) >= U35#(isNat, Y) because [43], by (Star) 43] U34#*(tt, X, Y) >= U35#(isNat, Y) because U34# > U35#, [44] and [45], by (Copy) 44] U34#*(tt, X, Y) >= isNat because U34# > isNat, by (Copy) 45] U34#*(tt, X, Y) >= Y because [34], by (Select) 46] U34#(tt, X, Y) >= activate#(X) because [47], by (Star) 47] U34#*(tt, X, Y) >= activate#(X) because U34# > activate# and [48], by (Copy) 48] U34#*(tt, X, Y) >= X because [2], by (Select) 49] U34#(tt, X, Y) >= activate#(Y) because [50], by (Star) 50] U34#*(tt, X, Y) >= activate#(Y) because U34# > activate# and [45], by (Copy) 51] U35#(tt, X) >= isNat#(X) because [52], by (Star) 52] U35#*(tt, X) >= isNat#(X) because U35# > isNat# and [53], by (Copy) 53] U35#*(tt, X) >= X because [34], by (Select) 54] U35#(tt, X) > activate#(X) because [55], by definition 55] U35#*(tt, X) >= activate#(X) because U35# > activate# and [53], by (Copy) 56] U61#(X) >= isNatKind#(X) because U61# = isNatKind#, U61# in Mul and [34], by (Fun) 57] isNat#(n!6220!6220plus(X, Y)) >= isNatKind#(X) because isNat# = isNatKind#, isNat# in Mul and [58], by (Fun) 58] n!6220!6220plus(X, Y) >= X because [59], by (Star) 59] n!6220!6220plus*(X, Y) >= X because [2], by (Select) 60] isNat#(n!6220!6220plus(X, Y)) >= activate#(X) because [61], by (Star) 61] isNat#*(n!6220!6220plus(X, Y)) >= activate#(X) because [62], by (Select) 62] n!6220!6220plus(X, Y) >= activate#(X) because [63], by (Star) 63] n!6220!6220plus*(X, Y) >= activate#(X) because n!6220!6220plus > activate# and [64], by (Copy) 64] n!6220!6220plus*(X, Y) >= X because [2], by (Select) 65] isNat#(n!6220!6220plus(X, Y)) >= activate#(X) because [61], by (Star) 66] isNat#(n!6220!6220plus(X, Y)) >= activate#(Y) because [67], by (Star) 67] isNat#*(n!6220!6220plus(X, Y)) >= activate#(Y) because [68], by (Select) 68] n!6220!6220plus(X, Y) >= activate#(Y) because [69], by (Star) 69] n!6220!6220plus*(X, Y) >= activate#(Y) because n!6220!6220plus > activate# and [70], by (Copy) 70] n!6220!6220plus*(X, Y) >= Y because [34], by (Select) 71] isNat#(n!6220!6220s(X)) >= U21#(X) because isNat# = U21#, isNat# in Mul and [72], by (Fun) 72] n!6220!6220s(X) >= X because [73], by (Star) 73] n!6220!6220s*(X) >= X because [2], by (Select) 74] isNat#(n!6220!6220s(X)) >= isNatKind#(X) because isNat# = isNatKind#, isNat# in Mul and [72], by (Fun) 75] isNat#(n!6220!6220s(X)) >= activate#(X) because [76], by (Star) 76] isNat#*(n!6220!6220s(X)) >= activate#(X) because isNat# > activate# and [77], by (Copy) 77] isNat#*(n!6220!6220s(X)) >= X because [72], by (Select) 78] isNat#(n!6220!6220s(X)) >= activate#(X) because [76], by (Star) 79] isNat#(n!6220!6220x(X, Y)) >= U31#(isNatKind, X, Y) because [80], by (Star) 80] isNat#*(n!6220!6220x(X, Y)) >= U31#(isNatKind, X, Y) because [81], by (Select) 81] n!6220!6220x(X, Y) >= U31#(isNatKind, X, Y) because [82], by (Star) 82] n!6220!6220x*(X, Y) >= U31#(isNatKind, X, Y) because n!6220!6220x > U31#, [83], [84] and [85], by (Copy) 83] n!6220!6220x*(X, Y) >= isNatKind because n!6220!6220x > isNatKind, by (Copy) 84] n!6220!6220x*(X, Y) >= X because [2], by (Select) 85] n!6220!6220x*(X, Y) >= Y because [34], by (Select) 86] isNat#(n!6220!6220x(X, Y)) >= isNatKind#(X) because isNat# = isNatKind#, isNat# in Mul and [87], by (Fun) 87] n!6220!6220x(X, Y) >= X because [84], by (Star) 88] isNat#(n!6220!6220x(X, Y)) >= activate#(X) because [89], by (Star) 89] isNat#*(n!6220!6220x(X, Y)) >= activate#(X) because isNat# > activate# and [90], by (Copy) 90] isNat#*(n!6220!6220x(X, Y)) >= X because [87], by (Select) 91] isNat#(n!6220!6220x(X, Y)) >= activate#(X) because [89], by (Star) 92] isNat#(n!6220!6220x(X, Y)) >= activate#(Y) because [93], by (Star) 93] isNat#*(n!6220!6220x(X, Y)) >= activate#(Y) because isNat# > activate# and [94], by (Copy) 94] isNat#*(n!6220!6220x(X, Y)) >= Y because [95], by (Select) 95] n!6220!6220x(X, Y) >= Y because [85], by (Star) 96] isNatKind#(n!6220!6220plus(X, Y)) >= isNatKind#(X) because isNatKind# in Mul and [58], by (Fun) 97] isNatKind#(n!6220!6220plus(X, Y)) >= activate#(X) because [98], by (Star) 98] isNatKind#*(n!6220!6220plus(X, Y)) >= activate#(X) because isNatKind# > activate# and [99], by (Copy) 99] isNatKind#*(n!6220!6220plus(X, Y)) >= X because [58], by (Select) 100] isNatKind#(n!6220!6220plus(X, Y)) >= activate#(Y) because [101], by (Star) 101] isNatKind#*(n!6220!6220plus(X, Y)) >= activate#(Y) because isNatKind# > activate# and [102], by (Copy) 102] isNatKind#*(n!6220!6220plus(X, Y)) >= Y because [103], by (Select) 103] n!6220!6220plus(X, Y) >= Y because [70], by (Star) 104] isNatKind#(n!6220!6220s(X)) >= isNatKind#(X) because isNatKind# in Mul and [72], by (Fun) 105] isNatKind#(n!6220!6220s(X)) >= activate#(X) because [106], by (Star) 106] isNatKind#*(n!6220!6220s(X)) >= activate#(X) because isNatKind# > activate# and [107], by (Copy) 107] isNatKind#*(n!6220!6220s(X)) >= X because [72], by (Select) 108] isNatKind#(n!6220!6220x(X, Y)) >= U61#(Y) because isNatKind# = U61#, isNatKind# in Mul and [109], by (Fun) 109] n!6220!6220x(X, Y) >= Y because [85], by (Star) 110] isNatKind#(n!6220!6220x(X, Y)) >= isNatKind#(X) because isNatKind# in Mul and [87], by (Fun) 111] isNatKind#(n!6220!6220x(X, Y)) >= activate#(Y) because [112], by (Star) 112] isNatKind#*(n!6220!6220x(X, Y)) >= activate#(Y) because isNatKind# > activate# and [113], by (Copy) 113] isNatKind#*(n!6220!6220x(X, Y)) >= Y because [109], by (Select) 114] plus#(X, _|_) >= isNat#(X) because [115], by (Star) 115] plus#*(X, _|_) >= isNat#(X) because plus# > isNat# and [116], by (Copy) 116] plus#*(X, _|_) >= X because [117], by (Select) 117] X >= X by (Meta) 118] plus#(X, s(Y)) >= isNat#(Y) because [119], by (Star) 119] plus#*(X, s(Y)) >= isNat#(Y) because plus# > isNat# and [120], by (Copy) 120] plus#*(X, s(Y)) >= Y because [121], by (Select) 121] s(Y) >= Y because [122], by (Star) 122] s*(Y) >= Y because [123], by (Select) 123] Y >= Y by (Meta) 124] x#(X, _|_) >= isNat#(X) because [125], by (Star) 125] x#*(X, _|_) >= isNat#(X) because x# > isNat# and [126], by (Copy) 126] x#*(X, _|_) >= X because [117], by (Select) 127] x#(X, s(Y)) >= isNat#(Y) because [128], by (Star) 128] x#*(X, s(Y)) >= isNat#(Y) because x# > isNat# and [129], by (Copy) 129] x#*(X, s(Y)) >= Y because [121], by (Select) 130] activate#(n!6220!6220plus(X, Y)) >= plus#(X, Y) because [131], by (Star) 131] activate#*(n!6220!6220plus(X, Y)) >= plus#(X, Y) because [132], by (Select) 132] n!6220!6220plus(X, Y) >= plus#(X, Y) because [133], by (Star) 133] n!6220!6220plus*(X, Y) >= plus#(X, Y) because n!6220!6220plus > plus#, [134] and [136], by (Copy) 134] n!6220!6220plus*(X, Y) >= X because [135], by (Select) 135] X >= X by (Meta) 136] n!6220!6220plus*(X, Y) >= Y because [137], by (Select) 137] Y >= Y by (Meta) 138] activate#(n!6220!6220plus(X, Y)) >= activate#(X) because activate# in Mul and [139], by (Fun) 139] n!6220!6220plus(X, Y) >= X because [134], by (Star) 140] activate#(n!6220!6220plus(X, Y)) >= activate#(Y) because activate# in Mul and [141], by (Fun) 141] n!6220!6220plus(X, Y) >= Y because [136], by (Star) 142] activate#(n!6220!6220s(X)) >= activate#(X) because activate# in Mul and [143], by (Fun) 143] n!6220!6220s(X) >= X because [144], by (Star) 144] n!6220!6220s*(X) >= X because [145], by (Select) 145] X >= X by (Meta) 146] activate#(n!6220!6220x(X, Y)) >= x#(X, Y) because [147], by (Star) 147] activate#*(n!6220!6220x(X, Y)) >= x#(X, Y) because [148], by (Select) 148] n!6220!6220x(X, Y) >= x#(X, Y) because [149], by (Star) 149] n!6220!6220x*(X, Y) >= x#(X, Y) because n!6220!6220x > x#, [150] and [151], by (Copy) 150] n!6220!6220x*(X, Y) >= X because [135], by (Select) 151] n!6220!6220x*(X, Y) >= Y because [137], by (Select) 152] activate#(n!6220!6220x(X, Y)) >= activate#(X) because activate# in Mul and [153], by (Fun) 153] n!6220!6220x(X, Y) >= X because [150], by (Star) 154] activate#(n!6220!6220x(X, Y)) >= activate#(Y) because activate# in Mul and [155], by (Fun) 155] n!6220!6220x(X, Y) >= Y because [151], by (Star) 156] U101(tt, X, Y) >= U102(isNatKind, X, Y) because U101 = U102, U101 in Mul, [157], [158] and [159], by (Fun) 157] tt >= isNatKind because tt = isNatKind, by (Fun) 158] X >= X by (Meta) 159] Y >= Y by (Meta) 160] U102(tt, X, Y) >= U103(isNat, X, Y) because U102 = U103, U102 in Mul, [161], [158] and [159], by (Fun) 161] tt >= isNat because tt = isNat, by (Fun) 162] U103(tt, X, Y) >= U104(isNatKind, X, Y) because U103 = U104, U103 in Mul, [163], [158] and [159], by (Fun) 163] tt >= isNatKind because tt = isNatKind, by (Fun) 164] U104(tt, X, Y) >= plus(x(Y, X), Y) because [165], by (Star) 165] U104*(tt, X, Y) >= plus(x(Y, X), Y) because U104 > plus, [166] and [167], by (Copy) 166] U104*(tt, X, Y) >= x(Y, X) because U104 = x, U104 in Mul, [158] and [159], by (Stat) 167] U104*(tt, X, Y) >= Y because [159], by (Select) 168] U11 >= U12 because U11 = U12 and U11 in Mul, by (Fun) 169] U12 >= U13 because U12 = U13 and U12 in Mul, by (Fun) 170] U13 >= isNatKind because U13 = isNatKind and U13 in Mul, by (Fun) 171] tt >= U15 because tt = U15, by (Fun) 172] U15 >= isNat because U15 = isNat and U15 in Mul, by (Fun) 173] tt >= tt by (Fun) 174] U21 >= U22 because U21 = U22 and U21 in Mul, by (Fun) 175] U22 >= isNat because U22 = isNat and U22 in Mul, by (Fun) 176] tt >= tt by (Fun) 177] tt >= U32 because tt = U32, by (Fun) 178] U32 >= isNatKind because U32 = isNatKind and U32 in Mul, by (Fun) 179] tt >= isNatKind because tt = isNatKind, by (Fun) 180] tt >= isNat because tt = isNat, by (Fun) 181] tt >= isNat because tt = isNat, by (Fun) 182] tt >= tt by (Fun) 183] tt >= isNatKind because tt = isNatKind, by (Fun) 184] tt >= tt by (Fun) 185] tt >= tt by (Fun) 186] tt >= isNatKind because tt = isNatKind, by (Fun) 187] tt >= tt by (Fun) 188] U71(X) >= X because [189], by (Star) 189] U71*(X) >= X because [159], by (Select) 190] X >= X by (Meta) 191] U81(tt, X, Y) >= U82(isNatKind, X, Y) because U81 = U82, U81 in Mul, [157], [158] and [159], by (Fun) 192] U82(tt, X, Y) >= U83(isNat, X, Y) because U82 = U83, U82 in Mul, [161], [158] and [159], by (Fun) 193] U83(tt, X, Y) >= U84(isNatKind, X, Y) because U83 = U84, U83 in Mul, [163], [158] and [159], by (Fun) 194] U84(tt, X, Y) >= s(plus(Y, X)) because [195], by (Star) 195] U84*(tt, X, Y) >= s(plus(Y, X)) because U84 > s and [196], by (Copy) 196] U84*(tt, X, Y) >= plus(Y, X) because U84 = plus, U84 in Mul, [158] and [159], by (Stat) 197] U91(tt, X) >= _|_ by (Bot) 198] _|_ >= _|_ by (Bot) 199] isNat >= tt because isNat = tt, by (Fun) 200] isNat >= U11 because isNat = U11 and isNat in Mul, by (Fun) 201] isNat >= U21 because isNat = U21 and isNat in Mul, by (Fun) 202] isNat >= isNatKind because isNat = isNatKind and isNat in Mul, by (Fun) 203] isNatKind >= tt because isNatKind = tt, by (Fun) 204] isNatKind >= isNatKind because isNatKind in Mul, by (Fun) 205] isNatKind >= isNatKind because isNatKind in Mul, by (Fun) 206] isNatKind >= isNatKind because isNatKind in Mul, by (Fun) 207] plus(X, _|_) >= U71(X) because [208], by (Star) 208] plus*(X, _|_) >= U71(X) because plus = U71, plus in Mul and [159], by (Stat) 209] plus(X, s(Y)) >= U81(isNat, Y, X) because [210], by (Star) 210] plus*(X, s(Y)) >= U81(isNat, Y, X) because plus = U81, plus in Mul, [159], [211] and [213], by (Stat) 211] s(Y) > isNat because [212], by definition 212] s*(Y) >= isNat because s > isNat, by (Copy) 213] s(Y) > Y because [214], by definition 214] s*(Y) >= Y because [158], by (Select) 215] x(X, _|_) >= U91(isNat, X) because [216], by (Star) 216] x*(X, _|_) >= U91(isNat, X) because x > U91, [217] and [218], by (Copy) 217] x*(X, _|_) >= isNat because x > isNat, by (Copy) 218] x*(X, _|_) >= X because [190], by (Select) 219] x(X, s(Y)) >= U101(isNat, Y, X) because [220], by (Star) 220] x*(X, s(Y)) >= U101(isNat, Y, X) because x = U101, x in Mul, [159], [211] and [213], by (Stat) 221] _|_ >= _|_ by (Bot) 222] plus(X, Y) >= n!6220!6220plus(X, Y) because plus = n!6220!6220plus, plus in Mul, [223] and [224], by (Fun) 223] X >= X by (Meta) 224] Y >= Y by (Meta) 225] s(X) >= n!6220!6220s(X) because s = n!6220!6220s, s in Mul and [226], by (Fun) 226] X >= X by (Meta) 227] x(X, Y) >= n!6220!6220x(X, Y) because x = n!6220!6220x, x in Mul, [223] and [224], by (Fun) 228] _|_ >= _|_ by (Bot) 229] n!6220!6220plus(X, Y) >= plus(X, Y) because n!6220!6220plus = plus, n!6220!6220plus in Mul, [230] and [231], by (Fun) 230] X >= X by (Meta) 231] Y >= Y by (Meta) 232] n!6220!6220s(X) >= s(X) because n!6220!6220s = s, n!6220!6220s in Mul and [233], by (Fun) 233] X >= X by (Meta) 234] n!6220!6220x(X, Y) >= x(X, Y) because n!6220!6220x = x, n!6220!6220x in Mul, [230] and [231], by (Fun) 235] X >= X by (Meta) By the observations in [Kop12, Sec. 6.6], this reduction pair suffices; we may thus replace the dependency pair problem (P_8, R_0, minimal, formative) by (P_9, R_0, minimal, formative), where P_9 consists of: U21#(tt, X) =#> isNatKind#(activate(X)) U21#(tt, X) =#> activate#(X) U21#(tt, X) =#> activate#(X) U31#(tt, X, Y) =#> U32#(isNatKind(activate(X)), activate(X), activate(Y)) U31#(tt, X, Y) =#> isNatKind#(activate(X)) U31#(tt, X, Y) =#> activate#(X) U31#(tt, X, Y) =#> activate#(X) U31#(tt, X, Y) =#> activate#(Y) U32#(tt, X, Y) =#> U33#(isNatKind(activate(Y)), activate(X), activate(Y)) U32#(tt, X, Y) =#> isNatKind#(activate(Y)) U32#(tt, X, Y) =#> activate#(Y) U32#(tt, X, Y) =#> activate#(X) U32#(tt, X, Y) =#> activate#(Y) U33#(tt, X, Y) =#> U34#(isNatKind(activate(Y)), activate(X), activate(Y)) U33#(tt, X, Y) =#> activate#(Y) U33#(tt, X, Y) =#> activate#(X) U33#(tt, X, Y) =#> activate#(Y) U34#(tt, X, Y) =#> U35#(isNat(activate(X)), activate(Y)) U34#(tt, X, Y) =#> activate#(X) U34#(tt, X, Y) =#> activate#(Y) U35#(tt, X) =#> isNat#(activate(X)) U61#(tt, X) =#> isNatKind#(activate(X)) isNat#(n!6220!6220plus(X, Y)) =#> isNatKind#(activate(X)) isNat#(n!6220!6220plus(X, Y)) =#> activate#(X) isNat#(n!6220!6220plus(X, Y)) =#> activate#(X) isNat#(n!6220!6220plus(X, Y)) =#> activate#(Y) isNat#(n!6220!6220s(X)) =#> U21#(isNatKind(activate(X)), activate(X)) isNat#(n!6220!6220s(X)) =#> isNatKind#(activate(X)) isNat#(n!6220!6220s(X)) =#> activate#(X) isNat#(n!6220!6220s(X)) =#> activate#(X) isNat#(n!6220!6220x(X, Y)) =#> U31#(isNatKind(activate(X)), activate(X), activate(Y)) isNat#(n!6220!6220x(X, Y)) =#> isNatKind#(activate(X)) isNat#(n!6220!6220x(X, Y)) =#> activate#(X) isNat#(n!6220!6220x(X, Y)) =#> activate#(X) isNat#(n!6220!6220x(X, Y)) =#> activate#(Y) isNatKind#(n!6220!6220plus(X, Y)) =#> isNatKind#(activate(X)) isNatKind#(n!6220!6220plus(X, Y)) =#> activate#(X) isNatKind#(n!6220!6220plus(X, Y)) =#> activate#(Y) isNatKind#(n!6220!6220s(X)) =#> isNatKind#(activate(X)) isNatKind#(n!6220!6220s(X)) =#> activate#(X) isNatKind#(n!6220!6220x(X, Y)) =#> U61#(isNatKind(activate(X)), activate(Y)) isNatKind#(n!6220!6220x(X, Y)) =#> isNatKind#(activate(X)) isNatKind#(n!6220!6220x(X, Y)) =#> activate#(Y) plus#(X, 0) =#> isNat#(X) plus#(X, s(Y)) =#> isNat#(Y) x#(X, 0) =#> isNat#(X) x#(X, s(Y)) =#> isNat#(Y) activate#(n!6220!6220plus(X, Y)) =#> plus#(activate(X), activate(Y)) activate#(n!6220!6220plus(X, Y)) =#> activate#(X) activate#(n!6220!6220plus(X, Y)) =#> activate#(Y) activate#(n!6220!6220s(X)) =#> activate#(X) activate#(n!6220!6220x(X, Y)) =#> x#(activate(X), activate(Y)) activate#(n!6220!6220x(X, Y)) =#> activate#(X) activate#(n!6220!6220x(X, Y)) =#> activate#(Y) Thus, the original system is terminating if (P_9, R_0, minimal, formative) is finite. We consider the dependency pair problem (P_9, R_0, minimal, formative). We will use the reduction pair processor [Kop12, Thm. 7.16]. It suffices to find a standard reduction pair [Kop12, Def. 6.69]. Thus, we must orient: U21#(tt, X) >? isNatKind#(activate(X)) U21#(tt, X) >? activate#(X) U21#(tt, X) >? activate#(X) U31#(tt, X, Y) >? U32#(isNatKind(activate(X)), activate(X), activate(Y)) U31#(tt, X, Y) >? isNatKind#(activate(X)) U31#(tt, X, Y) >? activate#(X) U31#(tt, X, Y) >? activate#(X) U31#(tt, X, Y) >? activate#(Y) U32#(tt, X, Y) >? U33#(isNatKind(activate(Y)), activate(X), activate(Y)) U32#(tt, X, Y) >? isNatKind#(activate(Y)) U32#(tt, X, Y) >? activate#(Y) U32#(tt, X, Y) >? activate#(X) U32#(tt, X, Y) >? activate#(Y) U33#(tt, X, Y) >? U34#(isNatKind(activate(Y)), activate(X), activate(Y)) U33#(tt, X, Y) >? activate#(Y) U33#(tt, X, Y) >? activate#(X) U33#(tt, X, Y) >? activate#(Y) U34#(tt, X, Y) >? U35#(isNat(activate(X)), activate(Y)) U34#(tt, X, Y) >? activate#(X) U34#(tt, X, Y) >? activate#(Y) U35#(tt, X) >? isNat#(activate(X)) U61#(tt, X) >? isNatKind#(activate(X)) isNat#(n!6220!6220plus(X, Y)) >? isNatKind#(activate(X)) isNat#(n!6220!6220plus(X, Y)) >? activate#(X) isNat#(n!6220!6220plus(X, Y)) >? activate#(X) isNat#(n!6220!6220plus(X, Y)) >? activate#(Y) isNat#(n!6220!6220s(X)) >? U21#(isNatKind(activate(X)), activate(X)) isNat#(n!6220!6220s(X)) >? isNatKind#(activate(X)) isNat#(n!6220!6220s(X)) >? activate#(X) isNat#(n!6220!6220s(X)) >? activate#(X) isNat#(n!6220!6220x(X, Y)) >? U31#(isNatKind(activate(X)), activate(X), activate(Y)) isNat#(n!6220!6220x(X, Y)) >? isNatKind#(activate(X)) isNat#(n!6220!6220x(X, Y)) >? activate#(X) isNat#(n!6220!6220x(X, Y)) >? activate#(X) isNat#(n!6220!6220x(X, Y)) >? activate#(Y) isNatKind#(n!6220!6220plus(X, Y)) >? isNatKind#(activate(X)) isNatKind#(n!6220!6220plus(X, Y)) >? activate#(X) isNatKind#(n!6220!6220plus(X, Y)) >? activate#(Y) isNatKind#(n!6220!6220s(X)) >? isNatKind#(activate(X)) isNatKind#(n!6220!6220s(X)) >? activate#(X) isNatKind#(n!6220!6220x(X, Y)) >? U61#(isNatKind(activate(X)), activate(Y)) isNatKind#(n!6220!6220x(X, Y)) >? isNatKind#(activate(X)) isNatKind#(n!6220!6220x(X, Y)) >? activate#(Y) plus#(X, 0) >? isNat#(X) plus#(X, s(Y)) >? isNat#(Y) x#(X, 0) >? isNat#(X) x#(X, s(Y)) >? isNat#(Y) activate#(n!6220!6220plus(X, Y)) >? plus#(activate(X), activate(Y)) activate#(n!6220!6220plus(X, Y)) >? activate#(X) activate#(n!6220!6220plus(X, Y)) >? activate#(Y) activate#(n!6220!6220s(X)) >? activate#(X) activate#(n!6220!6220x(X, Y)) >? x#(activate(X), activate(Y)) activate#(n!6220!6220x(X, Y)) >? activate#(X) activate#(n!6220!6220x(X, Y)) >? activate#(Y) U101(tt, X, Y) >= U102(isNatKind(activate(X)), activate(X), activate(Y)) U102(tt, X, Y) >= U103(isNat(activate(Y)), activate(X), activate(Y)) U103(tt, X, Y) >= U104(isNatKind(activate(Y)), activate(X), activate(Y)) U104(tt, X, Y) >= plus(x(activate(Y), activate(X)), activate(Y)) U11(tt, X, Y) >= U12(isNatKind(activate(X)), activate(X), activate(Y)) U12(tt, X, Y) >= U13(isNatKind(activate(Y)), activate(X), activate(Y)) U13(tt, X, Y) >= U14(isNatKind(activate(Y)), activate(X), activate(Y)) U14(tt, X, Y) >= U15(isNat(activate(X)), activate(Y)) U15(tt, X) >= U16(isNat(activate(X))) U16(tt) >= tt U21(tt, X) >= U22(isNatKind(activate(X)), activate(X)) U22(tt, X) >= U23(isNat(activate(X))) U23(tt) >= tt U31(tt, X, Y) >= U32(isNatKind(activate(X)), activate(X), activate(Y)) U32(tt, X, Y) >= U33(isNatKind(activate(Y)), activate(X), activate(Y)) U33(tt, X, Y) >= U34(isNatKind(activate(Y)), activate(X), activate(Y)) U34(tt, X, Y) >= U35(isNat(activate(X)), activate(Y)) U35(tt, X) >= U36(isNat(activate(X))) U36(tt) >= tt U41(tt, X) >= U42(isNatKind(activate(X))) U42(tt) >= tt U51(tt) >= tt U61(tt, X) >= U62(isNatKind(activate(X))) U62(tt) >= tt U71(tt, X) >= U72(isNatKind(activate(X)), activate(X)) U72(tt, X) >= activate(X) U81(tt, X, Y) >= U82(isNatKind(activate(X)), activate(X), activate(Y)) U82(tt, X, Y) >= U83(isNat(activate(Y)), activate(X), activate(Y)) U83(tt, X, Y) >= U84(isNatKind(activate(Y)), activate(X), activate(Y)) U84(tt, X, Y) >= s(plus(activate(Y), activate(X))) U91(tt, X) >= U92(isNatKind(activate(X))) U92(tt) >= 0 isNat(n!6220!62200) >= tt isNat(n!6220!6220plus(X, Y)) >= U11(isNatKind(activate(X)), activate(X), activate(Y)) isNat(n!6220!6220s(X)) >= U21(isNatKind(activate(X)), activate(X)) isNat(n!6220!6220x(X, Y)) >= U31(isNatKind(activate(X)), activate(X), activate(Y)) isNatKind(n!6220!62200) >= tt isNatKind(n!6220!6220plus(X, Y)) >= U41(isNatKind(activate(X)), activate(Y)) isNatKind(n!6220!6220s(X)) >= U51(isNatKind(activate(X))) isNatKind(n!6220!6220x(X, Y)) >= U61(isNatKind(activate(X)), activate(Y)) plus(X, 0) >= U71(isNat(X), X) plus(X, s(Y)) >= U81(isNat(Y), Y, X) x(X, 0) >= U91(isNat(X), X) x(X, s(Y)) >= U101(isNat(Y), Y, X) 0 >= n!6220!62200 plus(X, Y) >= n!6220!6220plus(X, Y) s(X) >= n!6220!6220s(X) x(X, Y) >= n!6220!6220x(X, Y) activate(n!6220!62200) >= 0 activate(n!6220!6220plus(X, Y)) >= plus(activate(X), activate(Y)) activate(n!6220!6220s(X)) >= s(activate(X)) activate(n!6220!6220x(X, Y)) >= x(activate(X), activate(Y)) activate(X) >= X Since this representation is not advantageous for the higher-order recursive path ordering, we present the strict requirements in their unextended form, which is not problematic since for any F, s and substituion gamma: (F s)gamma beta-reduces to F(s)gamma.) We use a recursive path ordering as defined in [Kop12, Chapter 5]. Argument functions: [[0]] = _|_ [[U11(x_1, x_2, x_3)]] = x_1 [[U12(x_1, x_2, x_3)]] = x_1 [[U13(x_1, x_2, x_3)]] = x_1 [[U14(x_1, x_2, x_3)]] = x_1 [[U15(x_1, x_2)]] = x_1 [[U16(x_1)]] = x_1 [[U21(x_1, x_2)]] = x_1 [[U22(x_1, x_2)]] = U22 [[U23(x_1)]] = x_1 [[U31(x_1, x_2, x_3)]] = x_1 [[U32(x_1, x_2, x_3)]] = U32 [[U33(x_1, x_2, x_3)]] = x_1 [[U34(x_1, x_2, x_3)]] = U34 [[U35(x_1, x_2)]] = U35 [[U36(x_1)]] = U36 [[U41(x_1, x_2)]] = x_1 [[U42(x_1)]] = x_1 [[U51(x_1)]] = U51 [[U61(x_1, x_2)]] = x_1 [[U61#(x_1, x_2)]] = U61#(x_2) [[U62(x_1)]] = U62 [[U91(x_1, x_2)]] = x_1 [[U92(x_1)]] = _|_ [[activate(x_1)]] = x_1 [[isNat(x_1)]] = isNat [[isNatKind(x_1)]] = isNatKind [[n!6220!62200]] = _|_ We choose Lex = {} and Mul = {U101, U102, U103, U104, U21#, U22, U31#, U32, U32#, U33#, U34, U34#, U35, U35#, U36, U51, U61#, U62, U71, U72, U81, U82, U83, U84, activate#, isNat, isNatKind, isNatKind#, isNat#, n!6220!6220plus, n!6220!6220s, n!6220!6220x, plus, plus#, s, tt, x, x#}, and the following precedence: U101 = U102 = U103 = U104 = U61# = n!6220!6220x = x > U31# = U32# > U33# > U34# > U81 = U82 = U83 = U84 = n!6220!6220plus = plus > U21# = U35# = isNat# = plus# = x# > activate# = n!6220!6220s = s > isNatKind# > U22 = U32 = U34 = U35 = U36 = U51 = U62 = isNat = isNatKind = tt > U71 = U72 Taking the argument function into account, and fixing the greater / greater equal choices, the constraints can be denoted as follows: U21#(tt, X) > isNatKind#(X) U21#(tt, X) >= activate#(X) U21#(tt, X) >= activate#(X) U31#(tt, X, Y) >= U32#(isNatKind, X, Y) U31#(tt, X, Y) >= isNatKind#(X) U31#(tt, X, Y) >= activate#(X) U31#(tt, X, Y) >= activate#(X) U31#(tt, X, Y) >= activate#(Y) U32#(tt, X, Y) >= U33#(isNatKind, X, Y) U32#(tt, X, Y) >= isNatKind#(Y) U32#(tt, X, Y) >= activate#(Y) U32#(tt, X, Y) >= activate#(X) U32#(tt, X, Y) >= activate#(Y) U33#(tt, X, Y) >= U34#(isNatKind, X, Y) U33#(tt, X, Y) >= activate#(Y) U33#(tt, X, Y) >= activate#(X) U33#(tt, X, Y) >= activate#(Y) U34#(tt, X, Y) >= U35#(isNat, Y) U34#(tt, X, Y) >= activate#(X) U34#(tt, X, Y) >= activate#(Y) U35#(tt, X) >= isNat#(X) U61#(X) >= isNatKind#(X) isNat#(n!6220!6220plus(X, Y)) >= isNatKind#(X) isNat#(n!6220!6220plus(X, Y)) >= activate#(X) isNat#(n!6220!6220plus(X, Y)) >= activate#(X) isNat#(n!6220!6220plus(X, Y)) >= activate#(Y) isNat#(n!6220!6220s(X)) >= U21#(isNatKind, X) isNat#(n!6220!6220s(X)) >= isNatKind#(X) isNat#(n!6220!6220s(X)) >= activate#(X) isNat#(n!6220!6220s(X)) >= activate#(X) isNat#(n!6220!6220x(X, Y)) >= U31#(isNatKind, X, Y) isNat#(n!6220!6220x(X, Y)) >= isNatKind#(X) isNat#(n!6220!6220x(X, Y)) >= activate#(X) isNat#(n!6220!6220x(X, Y)) >= activate#(X) isNat#(n!6220!6220x(X, Y)) >= activate#(Y) isNatKind#(n!6220!6220plus(X, Y)) >= isNatKind#(X) isNatKind#(n!6220!6220plus(X, Y)) >= activate#(X) isNatKind#(n!6220!6220plus(X, Y)) >= activate#(Y) isNatKind#(n!6220!6220s(X)) >= isNatKind#(X) isNatKind#(n!6220!6220s(X)) >= activate#(X) isNatKind#(n!6220!6220x(X, Y)) >= U61#(Y) isNatKind#(n!6220!6220x(X, Y)) >= isNatKind#(X) isNatKind#(n!6220!6220x(X, Y)) >= activate#(Y) plus#(X, _|_) >= isNat#(X) plus#(X, s(Y)) >= isNat#(Y) x#(X, _|_) >= isNat#(X) x#(X, s(Y)) >= isNat#(Y) activate#(n!6220!6220plus(X, Y)) >= plus#(X, Y) activate#(n!6220!6220plus(X, Y)) >= activate#(X) activate#(n!6220!6220plus(X, Y)) >= activate#(Y) activate#(n!6220!6220s(X)) >= activate#(X) activate#(n!6220!6220x(X, Y)) >= x#(X, Y) activate#(n!6220!6220x(X, Y)) >= activate#(X) activate#(n!6220!6220x(X, Y)) >= activate#(Y) U101(tt, X, Y) >= U102(isNatKind, X, Y) U102(tt, X, Y) >= U103(isNat, X, Y) U103(tt, X, Y) >= U104(isNatKind, X, Y) U104(tt, X, Y) >= plus(x(Y, X), Y) tt >= isNatKind tt >= isNatKind tt >= isNatKind tt >= isNat tt >= isNat tt >= tt tt >= U22 U22 >= isNat tt >= tt tt >= U32 U32 >= isNatKind tt >= U34 U34 >= U35 U35 >= U36 U36 >= tt tt >= isNatKind tt >= tt U51 >= tt tt >= U62 U62 >= tt U71(tt, X) >= U72(isNatKind, X) U72(tt, X) >= X U81(tt, X, Y) >= U82(isNatKind, X, Y) U82(tt, X, Y) >= U83(isNat, X, Y) U83(tt, X, Y) >= U84(isNatKind, X, Y) U84(tt, X, Y) >= s(plus(Y, X)) tt >= _|_ _|_ >= _|_ isNat >= tt isNat >= isNatKind isNat >= isNatKind isNat >= isNatKind isNatKind >= tt isNatKind >= isNatKind isNatKind >= U51 isNatKind >= isNatKind plus(X, _|_) >= U71(isNat, X) plus(X, s(Y)) >= U81(isNat, Y, X) x(X, _|_) >= isNat x(X, s(Y)) >= U101(isNat, Y, X) _|_ >= _|_ plus(X, Y) >= n!6220!6220plus(X, Y) s(X) >= n!6220!6220s(X) x(X, Y) >= n!6220!6220x(X, Y) _|_ >= _|_ n!6220!6220plus(X, Y) >= plus(X, Y) n!6220!6220s(X) >= s(X) n!6220!6220x(X, Y) >= x(X, Y) X >= X With these choices, we have: 1] U21#(tt, X) > isNatKind#(X) because [2], by definition 2] U21#*(tt, X) >= isNatKind#(X) because U21# > isNatKind# and [3], by (Copy) 3] U21#*(tt, X) >= X because [4], by (Select) 4] X >= X by (Meta) 5] U21#(tt, X) >= activate#(X) because [6], by (Star) 6] U21#*(tt, X) >= activate#(X) because U21# > activate# and [3], by (Copy) 7] U21#(tt, X) >= activate#(X) because [6], by (Star) 8] U31#(tt, X, Y) >= U32#(isNatKind, X, Y) because U31# = U32#, U31# in Mul, [9], [10] and [11], by (Fun) 9] tt >= isNatKind because tt = isNatKind, by (Fun) 10] X >= X by (Meta) 11] Y >= Y by (Meta) 12] U31#(tt, X, Y) >= isNatKind#(X) because [13], by (Star) 13] U31#*(tt, X, Y) >= isNatKind#(X) because U31# > isNatKind# and [14], by (Copy) 14] U31#*(tt, X, Y) >= X because [10], by (Select) 15] U31#(tt, X, Y) >= activate#(X) because [16], by (Star) 16] U31#*(tt, X, Y) >= activate#(X) because U31# > activate# and [14], by (Copy) 17] U31#(tt, X, Y) >= activate#(X) because [16], by (Star) 18] U31#(tt, X, Y) >= activate#(Y) because [19], by (Star) 19] U31#*(tt, X, Y) >= activate#(Y) because U31# > activate# and [20], by (Copy) 20] U31#*(tt, X, Y) >= Y because [11], by (Select) 21] U32#(tt, X, Y) >= U33#(isNatKind, X, Y) because [22], by (Star) 22] U32#*(tt, X, Y) >= U33#(isNatKind, X, Y) because U32# > U33#, [23], [24] and [25], by (Copy) 23] U32#*(tt, X, Y) >= isNatKind because U32# > isNatKind, by (Copy) 24] U32#*(tt, X, Y) >= X because [10], by (Select) 25] U32#*(tt, X, Y) >= Y because [11], by (Select) 26] U32#(tt, X, Y) >= isNatKind#(Y) because [27], by (Star) 27] U32#*(tt, X, Y) >= isNatKind#(Y) because U32# > isNatKind# and [25], by (Copy) 28] U32#(tt, X, Y) >= activate#(Y) because [29], by (Star) 29] U32#*(tt, X, Y) >= activate#(Y) because U32# > activate# and [25], by (Copy) 30] U32#(tt, X, Y) >= activate#(X) because [31], by (Star) 31] U32#*(tt, X, Y) >= activate#(X) because U32# > activate# and [24], by (Copy) 32] U32#(tt, X, Y) >= activate#(Y) because [29], by (Star) 33] U33#(tt, X, Y) >= U34#(isNatKind, X, Y) because [34], by (Star) 34] U33#*(tt, X, Y) >= U34#(isNatKind, X, Y) because U33# > U34#, [35], [36] and [37], by (Copy) 35] U33#*(tt, X, Y) >= isNatKind because U33# > isNatKind, by (Copy) 36] U33#*(tt, X, Y) >= X because [10], by (Select) 37] U33#*(tt, X, Y) >= Y because [11], by (Select) 38] U33#(tt, X, Y) >= activate#(Y) because [39], by (Star) 39] U33#*(tt, X, Y) >= activate#(Y) because U33# > activate# and [37], by (Copy) 40] U33#(tt, X, Y) >= activate#(X) because [41], by (Star) 41] U33#*(tt, X, Y) >= activate#(X) because U33# > activate# and [36], by (Copy) 42] U33#(tt, X, Y) >= activate#(Y) because [39], by (Star) 43] U34#(tt, X, Y) >= U35#(isNat, Y) because [44], by (Star) 44] U34#*(tt, X, Y) >= U35#(isNat, Y) because U34# > U35#, [45] and [46], by (Copy) 45] U34#*(tt, X, Y) >= isNat because U34# > isNat, by (Copy) 46] U34#*(tt, X, Y) >= Y because [11], by (Select) 47] U34#(tt, X, Y) >= activate#(X) because [48], by (Star) 48] U34#*(tt, X, Y) >= activate#(X) because U34# > activate# and [49], by (Copy) 49] U34#*(tt, X, Y) >= X because [10], by (Select) 50] U34#(tt, X, Y) >= activate#(Y) because [51], by (Star) 51] U34#*(tt, X, Y) >= activate#(Y) because U34# > activate# and [46], by (Copy) 52] U35#(tt, X) >= isNat#(X) because [53], by (Star) 53] U35#*(tt, X) >= isNat#(X) because U35# = isNat#, U35# in Mul and [11], by (Stat) 54] U61#(X) >= isNatKind#(X) because [55], by (Star) 55] U61#*(X) >= isNatKind#(X) because U61# > isNatKind# and [56], by (Copy) 56] U61#*(X) >= X because [11], by (Select) 57] isNat#(n!6220!6220plus(X, Y)) >= isNatKind#(X) because [58], by (Star) 58] isNat#*(n!6220!6220plus(X, Y)) >= isNatKind#(X) because [59], by (Select) 59] n!6220!6220plus(X, Y) >= isNatKind#(X) because [60], by (Star) 60] n!6220!6220plus*(X, Y) >= isNatKind#(X) because n!6220!6220plus > isNatKind# and [61], by (Copy) 61] n!6220!6220plus*(X, Y) >= X because [10], by (Select) 62] isNat#(n!6220!6220plus(X, Y)) >= activate#(X) because [63], by (Star) 63] isNat#*(n!6220!6220plus(X, Y)) >= activate#(X) because [64], by (Select) 64] n!6220!6220plus(X, Y) >= activate#(X) because [65], by (Star) 65] n!6220!6220plus*(X, Y) >= activate#(X) because n!6220!6220plus > activate# and [61], by (Copy) 66] isNat#(n!6220!6220plus(X, Y)) >= activate#(X) because [63], by (Star) 67] isNat#(n!6220!6220plus(X, Y)) >= activate#(Y) because [68], by (Star) 68] isNat#*(n!6220!6220plus(X, Y)) >= activate#(Y) because [69], by (Select) 69] n!6220!6220plus(X, Y) >= activate#(Y) because [70], by (Star) 70] n!6220!6220plus*(X, Y) >= activate#(Y) because n!6220!6220plus > activate# and [71], by (Copy) 71] n!6220!6220plus*(X, Y) >= Y because [11], by (Select) 72] isNat#(n!6220!6220s(X)) >= U21#(isNatKind, X) because [73], by (Star) 73] isNat#*(n!6220!6220s(X)) >= U21#(isNatKind, X) because isNat# = U21#, isNat# in Mul, [74] and [76], by (Stat) 74] n!6220!6220s(X) > isNatKind because [75], by definition 75] n!6220!6220s*(X) >= isNatKind because n!6220!6220s > isNatKind, by (Copy) 76] n!6220!6220s(X) > X because [77], by definition 77] n!6220!6220s*(X) >= X because [10], by (Select) 78] isNat#(n!6220!6220s(X)) >= isNatKind#(X) because [79], by (Star) 79] isNat#*(n!6220!6220s(X)) >= isNatKind#(X) because [80], by (Select) 80] n!6220!6220s(X) >= isNatKind#(X) because [81], by (Star) 81] n!6220!6220s*(X) >= isNatKind#(X) because n!6220!6220s > isNatKind# and [77], by (Copy) 82] isNat#(n!6220!6220s(X)) >= activate#(X) because [83], by (Star) 83] isNat#*(n!6220!6220s(X)) >= activate#(X) because [84], by (Select) 84] n!6220!6220s(X) >= activate#(X) because n!6220!6220s = activate#, n!6220!6220s in Mul and [10], by (Fun) 85] isNat#(n!6220!6220s(X)) >= activate#(X) because [83], by (Star) 86] isNat#(n!6220!6220x(X, Y)) >= U31#(isNatKind, X, Y) because [87], by (Star) 87] isNat#*(n!6220!6220x(X, Y)) >= U31#(isNatKind, X, Y) because [88], by (Select) 88] n!6220!6220x(X, Y) >= U31#(isNatKind, X, Y) because [89], by (Star) 89] n!6220!6220x*(X, Y) >= U31#(isNatKind, X, Y) because n!6220!6220x > U31#, [90], [91] and [92], by (Copy) 90] n!6220!6220x*(X, Y) >= isNatKind because n!6220!6220x > isNatKind, by (Copy) 91] n!6220!6220x*(X, Y) >= X because [10], by (Select) 92] n!6220!6220x*(X, Y) >= Y because [11], by (Select) 93] isNat#(n!6220!6220x(X, Y)) >= isNatKind#(X) because [94], by (Star) 94] isNat#*(n!6220!6220x(X, Y)) >= isNatKind#(X) because [95], by (Select) 95] n!6220!6220x(X, Y) >= isNatKind#(X) because [96], by (Star) 96] n!6220!6220x*(X, Y) >= isNatKind#(X) because n!6220!6220x > isNatKind# and [91], by (Copy) 97] isNat#(n!6220!6220x(X, Y)) >= activate#(X) because [98], by (Star) 98] isNat#*(n!6220!6220x(X, Y)) >= activate#(X) because [99], by (Select) 99] n!6220!6220x(X, Y) >= activate#(X) because [100], by (Star) 100] n!6220!6220x*(X, Y) >= activate#(X) because n!6220!6220x > activate# and [91], by (Copy) 101] isNat#(n!6220!6220x(X, Y)) >= activate#(X) because [98], by (Star) 102] isNat#(n!6220!6220x(X, Y)) >= activate#(Y) because [103], by (Star) 103] isNat#*(n!6220!6220x(X, Y)) >= activate#(Y) because [104], by (Select) 104] n!6220!6220x(X, Y) >= activate#(Y) because [105], by (Star) 105] n!6220!6220x*(X, Y) >= activate#(Y) because n!6220!6220x > activate# and [92], by (Copy) 106] isNatKind#(n!6220!6220plus(X, Y)) >= isNatKind#(X) because [107], by (Star) 107] isNatKind#*(n!6220!6220plus(X, Y)) >= isNatKind#(X) because isNatKind# in Mul and [108], by (Stat) 108] n!6220!6220plus(X, Y) > X because [61], by definition 109] isNatKind#(n!6220!6220plus(X, Y)) >= activate#(X) because [110], by (Star) 110] isNatKind#*(n!6220!6220plus(X, Y)) >= activate#(X) because [64], by (Select) 111] isNatKind#(n!6220!6220plus(X, Y)) >= activate#(Y) because [112], by (Star) 112] isNatKind#*(n!6220!6220plus(X, Y)) >= activate#(Y) because [69], by (Select) 113] isNatKind#(n!6220!6220s(X)) >= isNatKind#(X) because isNatKind# in Mul and [114], by (Fun) 114] n!6220!6220s(X) >= X because [77], by (Star) 115] isNatKind#(n!6220!6220s(X)) >= activate#(X) because [116], by (Star) 116] isNatKind#*(n!6220!6220s(X)) >= activate#(X) because [84], by (Select) 117] isNatKind#(n!6220!6220x(X, Y)) >= U61#(Y) because [118], by (Star) 118] isNatKind#*(n!6220!6220x(X, Y)) >= U61#(Y) because [119], by (Select) 119] n!6220!6220x(X, Y) >= U61#(Y) because [120], by (Star) 120] n!6220!6220x*(X, Y) >= U61#(Y) because n!6220!6220x = U61#, n!6220!6220x in Mul and [11], by (Stat) 121] isNatKind#(n!6220!6220x(X, Y)) >= isNatKind#(X) because isNatKind# in Mul and [122], by (Fun) 122] n!6220!6220x(X, Y) >= X because [91], by (Star) 123] isNatKind#(n!6220!6220x(X, Y)) >= activate#(Y) because [124], by (Star) 124] isNatKind#*(n!6220!6220x(X, Y)) >= activate#(Y) because [104], by (Select) 125] plus#(X, _|_) >= isNat#(X) because [126], by (Star) 126] plus#*(X, _|_) >= isNat#(X) because plus# = isNat#, plus# in Mul and [127], by (Stat) 127] X >= X by (Meta) 128] plus#(X, s(Y)) >= isNat#(Y) because [129], by (Star) 129] plus#*(X, s(Y)) >= isNat#(Y) because plus# = isNat#, plus# in Mul and [130], by (Stat) 130] s(Y) > Y because [131], by definition 131] s*(Y) >= Y because [132], by (Select) 132] Y >= Y by (Meta) 133] x#(X, _|_) >= isNat#(X) because [134], by (Star) 134] x#*(X, _|_) >= isNat#(X) because x# = isNat#, x# in Mul and [127], by (Stat) 135] x#(X, s(Y)) >= isNat#(Y) because [136], by (Star) 136] x#*(X, s(Y)) >= isNat#(Y) because x# = isNat#, x# in Mul and [137], by (Stat) 137] s(Y) >= Y because [131], by (Star) 138] activate#(n!6220!6220plus(X, Y)) >= plus#(X, Y) because [139], by (Star) 139] activate#*(n!6220!6220plus(X, Y)) >= plus#(X, Y) because [140], by (Select) 140] n!6220!6220plus(X, Y) >= plus#(X, Y) because [141], by (Star) 141] n!6220!6220plus*(X, Y) >= plus#(X, Y) because n!6220!6220plus > plus#, [142] and [144], by (Copy) 142] n!6220!6220plus*(X, Y) >= X because [143], by (Select) 143] X >= X by (Meta) 144] n!6220!6220plus*(X, Y) >= Y because [145], by (Select) 145] Y >= Y by (Meta) 146] activate#(n!6220!6220plus(X, Y)) >= activate#(X) because activate# in Mul and [147], by (Fun) 147] n!6220!6220plus(X, Y) >= X because [142], by (Star) 148] activate#(n!6220!6220plus(X, Y)) >= activate#(Y) because [149], by (Star) 149] activate#*(n!6220!6220plus(X, Y)) >= activate#(Y) because activate# in Mul and [150], by (Stat) 150] n!6220!6220plus(X, Y) > Y because [144], by definition 151] activate#(n!6220!6220s(X)) >= activate#(X) because [152], by (Star) 152] activate#*(n!6220!6220s(X)) >= activate#(X) because activate# in Mul and [153], by (Stat) 153] n!6220!6220s(X) > X because [154], by definition 154] n!6220!6220s*(X) >= X because [155], by (Select) 155] X >= X by (Meta) 156] activate#(n!6220!6220x(X, Y)) >= x#(X, Y) because [157], by (Star) 157] activate#*(n!6220!6220x(X, Y)) >= x#(X, Y) because [158], by (Select) 158] n!6220!6220x(X, Y) >= x#(X, Y) because [159], by (Star) 159] n!6220!6220x*(X, Y) >= x#(X, Y) because n!6220!6220x > x#, [160] and [161], by (Copy) 160] n!6220!6220x*(X, Y) >= X because [143], by (Select) 161] n!6220!6220x*(X, Y) >= Y because [145], by (Select) 162] activate#(n!6220!6220x(X, Y)) >= activate#(X) because activate# in Mul and [163], by (Fun) 163] n!6220!6220x(X, Y) >= X because [160], by (Star) 164] activate#(n!6220!6220x(X, Y)) >= activate#(Y) because activate# in Mul and [165], by (Fun) 165] n!6220!6220x(X, Y) >= Y because [161], by (Star) 166] U101(tt, X, Y) >= U102(isNatKind, X, Y) because U101 = U102, U101 in Mul, [167], [168] and [169], by (Fun) 167] tt >= isNatKind because tt = isNatKind, by (Fun) 168] X >= X by (Meta) 169] Y >= Y by (Meta) 170] U102(tt, X, Y) >= U103(isNat, X, Y) because U102 = U103, U102 in Mul, [171], [168] and [169], by (Fun) 171] tt >= isNat because tt = isNat, by (Fun) 172] U103(tt, X, Y) >= U104(isNatKind, X, Y) because U103 = U104, U103 in Mul, [173], [168] and [169], by (Fun) 173] tt >= isNatKind because tt = isNatKind, by (Fun) 174] U104(tt, X, Y) >= plus(x(Y, X), Y) because [175], by (Star) 175] U104*(tt, X, Y) >= plus(x(Y, X), Y) because U104 > plus, [176] and [177], by (Copy) 176] U104*(tt, X, Y) >= x(Y, X) because U104 = x, U104 in Mul, [168] and [169], by (Stat) 177] U104*(tt, X, Y) >= Y because [169], by (Select) 178] tt >= isNatKind because tt = isNatKind, by (Fun) 179] tt >= isNatKind because tt = isNatKind, by (Fun) 180] tt >= isNatKind because tt = isNatKind, by (Fun) 181] tt >= isNat because tt = isNat, by (Fun) 182] tt >= isNat because tt = isNat, by (Fun) 183] tt >= tt by (Fun) 184] tt >= U22 because tt = U22, by (Fun) 185] U22 >= isNat because U22 = isNat and U22 in Mul, by (Fun) 186] tt >= tt by (Fun) 187] tt >= U32 because tt = U32, by (Fun) 188] U32 >= isNatKind because U32 = isNatKind and U32 in Mul, by (Fun) 189] tt >= U34 because tt = U34, by (Fun) 190] U34 >= U35 because U34 = U35 and U34 in Mul, by (Fun) 191] U35 >= U36 because U35 = U36 and U35 in Mul, by (Fun) 192] U36 >= tt because U36 = tt, by (Fun) 193] tt >= isNatKind because tt = isNatKind, by (Fun) 194] tt >= tt by (Fun) 195] U51 >= tt because U51 = tt, by (Fun) 196] tt >= U62 because tt = U62, by (Fun) 197] U62 >= tt because U62 = tt, by (Fun) 198] U71(tt, X) >= U72(isNatKind, X) because U71 = U72, U71 in Mul, [173] and [169], by (Fun) 199] U72(tt, X) >= X because [200], by (Star) 200] U72*(tt, X) >= X because [169], by (Select) 201] U81(tt, X, Y) >= U82(isNatKind, X, Y) because U81 = U82, U81 in Mul, [167], [168] and [169], by (Fun) 202] U82(tt, X, Y) >= U83(isNat, X, Y) because U82 = U83, U82 in Mul, [171], [168] and [169], by (Fun) 203] U83(tt, X, Y) >= U84(isNatKind, X, Y) because U83 = U84, U83 in Mul, [173], [168] and [169], by (Fun) 204] U84(tt, X, Y) >= s(plus(Y, X)) because [205], by (Star) 205] U84*(tt, X, Y) >= s(plus(Y, X)) because U84 > s and [206], by (Copy) 206] U84*(tt, X, Y) >= plus(Y, X) because U84 = plus, U84 in Mul, [168] and [169], by (Stat) 207] tt >= _|_ by (Bot) 208] _|_ >= _|_ by (Bot) 209] isNat >= tt because isNat = tt, by (Fun) 210] isNat >= isNatKind because isNat = isNatKind and isNat in Mul, by (Fun) 211] isNat >= isNatKind because isNat = isNatKind and isNat in Mul, by (Fun) 212] isNat >= isNatKind because isNat = isNatKind and isNat in Mul, by (Fun) 213] isNatKind >= tt because isNatKind = tt, by (Fun) 214] isNatKind >= isNatKind because isNatKind in Mul, by (Fun) 215] isNatKind >= U51 because isNatKind = U51 and isNatKind in Mul, by (Fun) 216] isNatKind >= isNatKind because isNatKind in Mul, by (Fun) 217] plus(X, _|_) >= U71(isNat, X) because [218], by (Star) 218] plus*(X, _|_) >= U71(isNat, X) because plus > U71, [219] and [220], by (Copy) 219] plus*(X, _|_) >= isNat because plus > isNat, by (Copy) 220] plus*(X, _|_) >= X because [169], by (Select) 221] plus(X, s(Y)) >= U81(isNat, Y, X) because [222], by (Star) 222] plus*(X, s(Y)) >= U81(isNat, Y, X) because plus = U81, plus in Mul, [169], [223] and [130], by (Stat) 223] s(Y) > isNat because [224], by definition 224] s*(Y) >= isNat because s > isNat, by (Copy) 225] x(X, _|_) >= isNat because [226], by (Star) 226] x*(X, _|_) >= isNat because x > isNat, by (Copy) 227] x(X, s(Y)) >= U101(isNat, Y, X) because [228], by (Star) 228] x*(X, s(Y)) >= U101(isNat, Y, X) because x = U101, x in Mul, [169], [223] and [130], by (Stat) 229] _|_ >= _|_ by (Bot) 230] plus(X, Y) >= n!6220!6220plus(X, Y) because plus = n!6220!6220plus, plus in Mul, [231] and [232], by (Fun) 231] X >= X by (Meta) 232] Y >= Y by (Meta) 233] s(X) >= n!6220!6220s(X) because s = n!6220!6220s, s in Mul and [234], by (Fun) 234] X >= X by (Meta) 235] x(X, Y) >= n!6220!6220x(X, Y) because x = n!6220!6220x, x in Mul, [231] and [232], by (Fun) 236] _|_ >= _|_ by (Bot) 237] n!6220!6220plus(X, Y) >= plus(X, Y) because n!6220!6220plus = plus, n!6220!6220plus in Mul, [238] and [239], by (Fun) 238] X >= X by (Meta) 239] Y >= Y by (Meta) 240] n!6220!6220s(X) >= s(X) because n!6220!6220s = s, n!6220!6220s in Mul and [241], by (Fun) 241] X >= X by (Meta) 242] n!6220!6220x(X, Y) >= x(X, Y) because n!6220!6220x = x, n!6220!6220x in Mul, [238] and [239], by (Fun) 243] X >= X by (Meta) By the observations in [Kop12, Sec. 6.6], this reduction pair suffices; we may thus replace the dependency pair problem (P_9, R_0, minimal, formative) by (P_10, R_0, minimal, formative), where P_10 consists of: U21#(tt, X) =#> activate#(X) U21#(tt, X) =#> activate#(X) U31#(tt, X, Y) =#> U32#(isNatKind(activate(X)), activate(X), activate(Y)) U31#(tt, X, Y) =#> isNatKind#(activate(X)) U31#(tt, X, Y) =#> activate#(X) U31#(tt, X, Y) =#> activate#(X) U31#(tt, X, Y) =#> activate#(Y) U32#(tt, X, Y) =#> U33#(isNatKind(activate(Y)), activate(X), activate(Y)) U32#(tt, X, Y) =#> isNatKind#(activate(Y)) U32#(tt, X, Y) =#> activate#(Y) U32#(tt, X, Y) =#> activate#(X) U32#(tt, X, Y) =#> activate#(Y) U33#(tt, X, Y) =#> U34#(isNatKind(activate(Y)), activate(X), activate(Y)) U33#(tt, X, Y) =#> activate#(Y) U33#(tt, X, Y) =#> activate#(X) U33#(tt, X, Y) =#> activate#(Y) U34#(tt, X, Y) =#> U35#(isNat(activate(X)), activate(Y)) U34#(tt, X, Y) =#> activate#(X) U34#(tt, X, Y) =#> activate#(Y) U35#(tt, X) =#> isNat#(activate(X)) U61#(tt, X) =#> isNatKind#(activate(X)) isNat#(n!6220!6220plus(X, Y)) =#> isNatKind#(activate(X)) isNat#(n!6220!6220plus(X, Y)) =#> activate#(X) isNat#(n!6220!6220plus(X, Y)) =#> activate#(X) isNat#(n!6220!6220plus(X, Y)) =#> activate#(Y) isNat#(n!6220!6220s(X)) =#> U21#(isNatKind(activate(X)), activate(X)) isNat#(n!6220!6220s(X)) =#> isNatKind#(activate(X)) isNat#(n!6220!6220s(X)) =#> activate#(X) isNat#(n!6220!6220s(X)) =#> activate#(X) isNat#(n!6220!6220x(X, Y)) =#> U31#(isNatKind(activate(X)), activate(X), activate(Y)) isNat#(n!6220!6220x(X, Y)) =#> isNatKind#(activate(X)) isNat#(n!6220!6220x(X, Y)) =#> activate#(X) isNat#(n!6220!6220x(X, Y)) =#> activate#(X) isNat#(n!6220!6220x(X, Y)) =#> activate#(Y) isNatKind#(n!6220!6220plus(X, Y)) =#> isNatKind#(activate(X)) isNatKind#(n!6220!6220plus(X, Y)) =#> activate#(X) isNatKind#(n!6220!6220plus(X, Y)) =#> activate#(Y) isNatKind#(n!6220!6220s(X)) =#> isNatKind#(activate(X)) isNatKind#(n!6220!6220s(X)) =#> activate#(X) isNatKind#(n!6220!6220x(X, Y)) =#> U61#(isNatKind(activate(X)), activate(Y)) isNatKind#(n!6220!6220x(X, Y)) =#> isNatKind#(activate(X)) isNatKind#(n!6220!6220x(X, Y)) =#> activate#(Y) plus#(X, 0) =#> isNat#(X) plus#(X, s(Y)) =#> isNat#(Y) x#(X, 0) =#> isNat#(X) x#(X, s(Y)) =#> isNat#(Y) activate#(n!6220!6220plus(X, Y)) =#> plus#(activate(X), activate(Y)) activate#(n!6220!6220plus(X, Y)) =#> activate#(X) activate#(n!6220!6220plus(X, Y)) =#> activate#(Y) activate#(n!6220!6220s(X)) =#> activate#(X) activate#(n!6220!6220x(X, Y)) =#> x#(activate(X), activate(Y)) activate#(n!6220!6220x(X, Y)) =#> activate#(X) activate#(n!6220!6220x(X, Y)) =#> activate#(Y) Thus, the original system is terminating if (P_10, R_0, minimal, formative) is finite. We consider the dependency pair problem (P_10, R_0, minimal, formative). We will use the reduction pair processor [Kop12, Thm. 7.16]. It suffices to find a standard reduction pair [Kop12, Def. 6.69]. Thus, we must orient: U21#(tt, X) >? activate#(X) U21#(tt, X) >? activate#(X) U31#(tt, X, Y) >? U32#(isNatKind(activate(X)), activate(X), activate(Y)) U31#(tt, X, Y) >? isNatKind#(activate(X)) U31#(tt, X, Y) >? activate#(X) U31#(tt, X, Y) >? activate#(X) U31#(tt, X, Y) >? activate#(Y) U32#(tt, X, Y) >? U33#(isNatKind(activate(Y)), activate(X), activate(Y)) U32#(tt, X, Y) >? isNatKind#(activate(Y)) U32#(tt, X, Y) >? activate#(Y) U32#(tt, X, Y) >? activate#(X) U32#(tt, X, Y) >? activate#(Y) U33#(tt, X, Y) >? U34#(isNatKind(activate(Y)), activate(X), activate(Y)) U33#(tt, X, Y) >? activate#(Y) U33#(tt, X, Y) >? activate#(X) U33#(tt, X, Y) >? activate#(Y) U34#(tt, X, Y) >? U35#(isNat(activate(X)), activate(Y)) U34#(tt, X, Y) >? activate#(X) U34#(tt, X, Y) >? activate#(Y) U35#(tt, X) >? isNat#(activate(X)) U61#(tt, X) >? isNatKind#(activate(X)) isNat#(n!6220!6220plus(X, Y)) >? isNatKind#(activate(X)) isNat#(n!6220!6220plus(X, Y)) >? activate#(X) isNat#(n!6220!6220plus(X, Y)) >? activate#(X) isNat#(n!6220!6220plus(X, Y)) >? activate#(Y) isNat#(n!6220!6220s(X)) >? U21#(isNatKind(activate(X)), activate(X)) isNat#(n!6220!6220s(X)) >? isNatKind#(activate(X)) isNat#(n!6220!6220s(X)) >? activate#(X) isNat#(n!6220!6220s(X)) >? activate#(X) isNat#(n!6220!6220x(X, Y)) >? U31#(isNatKind(activate(X)), activate(X), activate(Y)) isNat#(n!6220!6220x(X, Y)) >? isNatKind#(activate(X)) isNat#(n!6220!6220x(X, Y)) >? activate#(X) isNat#(n!6220!6220x(X, Y)) >? activate#(X) isNat#(n!6220!6220x(X, Y)) >? activate#(Y) isNatKind#(n!6220!6220plus(X, Y)) >? isNatKind#(activate(X)) isNatKind#(n!6220!6220plus(X, Y)) >? activate#(X) isNatKind#(n!6220!6220plus(X, Y)) >? activate#(Y) isNatKind#(n!6220!6220s(X)) >? isNatKind#(activate(X)) isNatKind#(n!6220!6220s(X)) >? activate#(X) isNatKind#(n!6220!6220x(X, Y)) >? U61#(isNatKind(activate(X)), activate(Y)) isNatKind#(n!6220!6220x(X, Y)) >? isNatKind#(activate(X)) isNatKind#(n!6220!6220x(X, Y)) >? activate#(Y) plus#(X, 0) >? isNat#(X) plus#(X, s(Y)) >? isNat#(Y) x#(X, 0) >? isNat#(X) x#(X, s(Y)) >? isNat#(Y) activate#(n!6220!6220plus(X, Y)) >? plus#(activate(X), activate(Y)) activate#(n!6220!6220plus(X, Y)) >? activate#(X) activate#(n!6220!6220plus(X, Y)) >? activate#(Y) activate#(n!6220!6220s(X)) >? activate#(X) activate#(n!6220!6220x(X, Y)) >? x#(activate(X), activate(Y)) activate#(n!6220!6220x(X, Y)) >? activate#(X) activate#(n!6220!6220x(X, Y)) >? activate#(Y) U101(tt, X, Y) >= U102(isNatKind(activate(X)), activate(X), activate(Y)) U102(tt, X, Y) >= U103(isNat(activate(Y)), activate(X), activate(Y)) U103(tt, X, Y) >= U104(isNatKind(activate(Y)), activate(X), activate(Y)) U104(tt, X, Y) >= plus(x(activate(Y), activate(X)), activate(Y)) U11(tt, X, Y) >= U12(isNatKind(activate(X)), activate(X), activate(Y)) U12(tt, X, Y) >= U13(isNatKind(activate(Y)), activate(X), activate(Y)) U13(tt, X, Y) >= U14(isNatKind(activate(Y)), activate(X), activate(Y)) U14(tt, X, Y) >= U15(isNat(activate(X)), activate(Y)) U15(tt, X) >= U16(isNat(activate(X))) U16(tt) >= tt U21(tt, X) >= U22(isNatKind(activate(X)), activate(X)) U22(tt, X) >= U23(isNat(activate(X))) U23(tt) >= tt U31(tt, X, Y) >= U32(isNatKind(activate(X)), activate(X), activate(Y)) U32(tt, X, Y) >= U33(isNatKind(activate(Y)), activate(X), activate(Y)) U33(tt, X, Y) >= U34(isNatKind(activate(Y)), activate(X), activate(Y)) U34(tt, X, Y) >= U35(isNat(activate(X)), activate(Y)) U35(tt, X) >= U36(isNat(activate(X))) U36(tt) >= tt U41(tt, X) >= U42(isNatKind(activate(X))) U42(tt) >= tt U51(tt) >= tt U61(tt, X) >= U62(isNatKind(activate(X))) U62(tt) >= tt U71(tt, X) >= U72(isNatKind(activate(X)), activate(X)) U72(tt, X) >= activate(X) U81(tt, X, Y) >= U82(isNatKind(activate(X)), activate(X), activate(Y)) U82(tt, X, Y) >= U83(isNat(activate(Y)), activate(X), activate(Y)) U83(tt, X, Y) >= U84(isNatKind(activate(Y)), activate(X), activate(Y)) U84(tt, X, Y) >= s(plus(activate(Y), activate(X))) U91(tt, X) >= U92(isNatKind(activate(X))) U92(tt) >= 0 isNat(n!6220!62200) >= tt isNat(n!6220!6220plus(X, Y)) >= U11(isNatKind(activate(X)), activate(X), activate(Y)) isNat(n!6220!6220s(X)) >= U21(isNatKind(activate(X)), activate(X)) isNat(n!6220!6220x(X, Y)) >= U31(isNatKind(activate(X)), activate(X), activate(Y)) isNatKind(n!6220!62200) >= tt isNatKind(n!6220!6220plus(X, Y)) >= U41(isNatKind(activate(X)), activate(Y)) isNatKind(n!6220!6220s(X)) >= U51(isNatKind(activate(X))) isNatKind(n!6220!6220x(X, Y)) >= U61(isNatKind(activate(X)), activate(Y)) plus(X, 0) >= U71(isNat(X), X) plus(X, s(Y)) >= U81(isNat(Y), Y, X) x(X, 0) >= U91(isNat(X), X) x(X, s(Y)) >= U101(isNat(Y), Y, X) 0 >= n!6220!62200 plus(X, Y) >= n!6220!6220plus(X, Y) s(X) >= n!6220!6220s(X) x(X, Y) >= n!6220!6220x(X, Y) activate(n!6220!62200) >= 0 activate(n!6220!6220plus(X, Y)) >= plus(activate(X), activate(Y)) activate(n!6220!6220s(X)) >= s(activate(X)) activate(n!6220!6220x(X, Y)) >= x(activate(X), activate(Y)) activate(X) >= X Since this representation is not advantageous for the higher-order recursive path ordering, we present the strict requirements in their unextended form, which is not problematic since for any F, s and substituion gamma: (F s)gamma beta-reduces to F(s)gamma.) We use a recursive path ordering as defined in [Kop12, Chapter 5]. Argument functions: [[0]] = _|_ [[U11(x_1, x_2, x_3)]] = U11 [[U12(x_1, x_2, x_3)]] = U12 [[U13(x_1, x_2, x_3)]] = U13 [[U14(x_1, x_2, x_3)]] = U14 [[U15(x_1, x_2)]] = U15 [[U16(x_1)]] = x_1 [[U21(x_1, x_2)]] = x_1 [[U21#(x_1, x_2)]] = U21#(x_2) [[U22(x_1, x_2)]] = U22 [[U23(x_1)]] = x_1 [[U31(x_1, x_2, x_3)]] = U31 [[U32(x_1, x_2, x_3)]] = U32 [[U32#(x_1, x_2, x_3)]] = U32#(x_2, x_3) [[U33(x_1, x_2, x_3)]] = U33 [[U34(x_1, x_2, x_3)]] = U34 [[U35(x_1, x_2)]] = x_1 [[U35#(x_1, x_2)]] = U35#(x_2) [[U36(x_1)]] = x_1 [[U41(x_1, x_2)]] = x_1 [[U42(x_1)]] = x_1 [[U51(x_1)]] = x_1 [[U61(x_1, x_2)]] = U61 [[U62(x_1)]] = x_1 [[U91(x_1, x_2)]] = _|_ [[U92(x_1)]] = _|_ [[activate(x_1)]] = x_1 [[isNat(x_1)]] = isNat [[isNatKind(x_1)]] = isNatKind [[n!6220!62200]] = _|_ We choose Lex = {} and Mul = {U101, U102, U103, U104, U11, U12, U13, U14, U15, U21#, U22, U31, U31#, U32, U32#, U33, U33#, U34, U34#, U35#, U61, U61#, U71, U72, U81, U82, U83, U84, activate#, isNat, isNatKind, isNatKind#, isNat#, n!6220!6220plus, n!6220!6220s, n!6220!6220x, plus, plus#, s, tt, x, x#}, and the following precedence: U101 = U102 = U103 = U104 = n!6220!6220x = x > U81 = U82 = U83 = U84 = n!6220!6220plus = plus > x# > U11 = U12 = U13 = U14 = U15 = U22 = U31 = U31# = U32 = U32# = U33 = U34 = U61 = U61# = isNat = isNatKind = isNatKind# = n!6220!6220s = s = tt > U33# = U34# > U71 = U72 > U21# = U35# = activate# = isNat# = plus# Taking the argument function into account, and fixing the greater / greater equal choices, the constraints can be denoted as follows: U21#(X) >= activate#(X) U21#(X) >= activate#(X) U31#(tt, X, Y) >= U32#(X, Y) U31#(tt, X, Y) >= isNatKind#(X) U31#(tt, X, Y) >= activate#(X) U31#(tt, X, Y) >= activate#(X) U31#(tt, X, Y) >= activate#(Y) U32#(X, Y) >= U33#(isNatKind, X, Y) U32#(X, Y) >= isNatKind#(Y) U32#(X, Y) >= activate#(Y) U32#(X, Y) >= activate#(X) U32#(X, Y) >= activate#(Y) U33#(tt, X, Y) >= U34#(isNatKind, X, Y) U33#(tt, X, Y) >= activate#(Y) U33#(tt, X, Y) >= activate#(X) U33#(tt, X, Y) >= activate#(Y) U34#(tt, X, Y) >= U35#(Y) U34#(tt, X, Y) >= activate#(X) U34#(tt, X, Y) >= activate#(Y) U35#(X) >= isNat#(X) U61#(tt, X) >= isNatKind#(X) isNat#(n!6220!6220plus(X, Y)) > isNatKind#(X) isNat#(n!6220!6220plus(X, Y)) >= activate#(X) isNat#(n!6220!6220plus(X, Y)) >= activate#(X) isNat#(n!6220!6220plus(X, Y)) >= activate#(Y) isNat#(n!6220!6220s(X)) >= U21#(X) isNat#(n!6220!6220s(X)) >= isNatKind#(X) isNat#(n!6220!6220s(X)) >= activate#(X) isNat#(n!6220!6220s(X)) >= activate#(X) isNat#(n!6220!6220x(X, Y)) >= U31#(isNatKind, X, Y) isNat#(n!6220!6220x(X, Y)) >= isNatKind#(X) isNat#(n!6220!6220x(X, Y)) > activate#(X) isNat#(n!6220!6220x(X, Y)) > activate#(X) isNat#(n!6220!6220x(X, Y)) >= activate#(Y) isNatKind#(n!6220!6220plus(X, Y)) >= isNatKind#(X) isNatKind#(n!6220!6220plus(X, Y)) >= activate#(X) isNatKind#(n!6220!6220plus(X, Y)) >= activate#(Y) isNatKind#(n!6220!6220s(X)) >= isNatKind#(X) isNatKind#(n!6220!6220s(X)) >= activate#(X) isNatKind#(n!6220!6220x(X, Y)) >= U61#(isNatKind, Y) isNatKind#(n!6220!6220x(X, Y)) >= isNatKind#(X) isNatKind#(n!6220!6220x(X, Y)) >= activate#(Y) plus#(X, _|_) > isNat#(X) plus#(X, s(Y)) > isNat#(Y) x#(X, _|_) >= isNat#(X) x#(X, s(Y)) >= isNat#(Y) activate#(n!6220!6220plus(X, Y)) >= plus#(X, Y) activate#(n!6220!6220plus(X, Y)) >= activate#(X) activate#(n!6220!6220plus(X, Y)) >= activate#(Y) activate#(n!6220!6220s(X)) >= activate#(X) activate#(n!6220!6220x(X, Y)) >= x#(X, Y) activate#(n!6220!6220x(X, Y)) >= activate#(X) activate#(n!6220!6220x(X, Y)) >= activate#(Y) U101(tt, X, Y) >= U102(isNatKind, X, Y) U102(tt, X, Y) >= U103(isNat, X, Y) U103(tt, X, Y) >= U104(isNatKind, X, Y) U104(tt, X, Y) >= plus(x(Y, X), Y) U11 >= U12 U12 >= U13 U13 >= U14 U14 >= U15 U15 >= isNat tt >= tt tt >= U22 U22 >= isNat tt >= tt U31 >= U32 U32 >= U33 U33 >= U34 U34 >= isNat tt >= isNat tt >= tt tt >= isNatKind tt >= tt tt >= tt U61 >= isNatKind tt >= tt U71(tt, X) >= U72(isNatKind, X) U72(tt, X) >= X U81(tt, X, Y) >= U82(isNatKind, X, Y) U82(tt, X, Y) >= U83(isNat, X, Y) U83(tt, X, Y) >= U84(isNatKind, X, Y) U84(tt, X, Y) >= s(plus(Y, X)) _|_ >= _|_ _|_ >= _|_ isNat >= tt isNat >= U11 isNat >= isNatKind isNat >= U31 isNatKind >= tt isNatKind >= isNatKind isNatKind >= isNatKind isNatKind >= U61 plus(X, _|_) >= U71(isNat, X) plus(X, s(Y)) >= U81(isNat, Y, X) x(X, _|_) >= _|_ x(X, s(Y)) >= U101(isNat, Y, X) _|_ >= _|_ plus(X, Y) >= n!6220!6220plus(X, Y) s(X) >= n!6220!6220s(X) x(X, Y) >= n!6220!6220x(X, Y) _|_ >= _|_ n!6220!6220plus(X, Y) >= plus(X, Y) n!6220!6220s(X) >= s(X) n!6220!6220x(X, Y) >= x(X, Y) X >= X With these choices, we have: 1] U21#(X) >= activate#(X) because U21# = activate#, U21# in Mul and [2], by (Fun) 2] X >= X by (Meta) 3] U21#(X) >= activate#(X) because U21# = activate#, U21# in Mul and [2], by (Fun) 4] U31#(tt, X, Y) >= U32#(X, Y) because [5], by (Star) 5] U31#*(tt, X, Y) >= U32#(X, Y) because U31# = U32#, U31# in Mul, [6] and [7], by (Stat) 6] X >= X by (Meta) 7] Y >= Y by (Meta) 8] U31#(tt, X, Y) >= isNatKind#(X) because [9], by (Star) 9] U31#*(tt, X, Y) >= isNatKind#(X) because U31# = isNatKind#, U31# in Mul and [6], by (Stat) 10] U31#(tt, X, Y) >= activate#(X) because [11], by (Star) 11] U31#*(tt, X, Y) >= activate#(X) because U31# > activate# and [12], by (Copy) 12] U31#*(tt, X, Y) >= X because [6], by (Select) 13] U31#(tt, X, Y) >= activate#(X) because [11], by (Star) 14] U31#(tt, X, Y) >= activate#(Y) because [15], by (Star) 15] U31#*(tt, X, Y) >= activate#(Y) because U31# > activate# and [16], by (Copy) 16] U31#*(tt, X, Y) >= Y because [7], by (Select) 17] U32#(X, Y) >= U33#(isNatKind, X, Y) because [18], by (Star) 18] U32#*(X, Y) >= U33#(isNatKind, X, Y) because U32# > U33#, [19], [20] and [21], by (Copy) 19] U32#*(X, Y) >= isNatKind because U32# = isNatKind and U32# in Mul, by (Stat) 20] U32#*(X, Y) >= X because [6], by (Select) 21] U32#*(X, Y) >= Y because [7], by (Select) 22] U32#(X, Y) >= isNatKind#(Y) because [23], by (Star) 23] U32#*(X, Y) >= isNatKind#(Y) because U32# = isNatKind#, U32# in Mul and [7], by (Stat) 24] U32#(X, Y) >= activate#(Y) because [25], by (Star) 25] U32#*(X, Y) >= activate#(Y) because U32# > activate# and [21], by (Copy) 26] U32#(X, Y) >= activate#(X) because [27], by (Star) 27] U32#*(X, Y) >= activate#(X) because U32# > activate# and [20], by (Copy) 28] U32#(X, Y) >= activate#(Y) because [25], by (Star) 29] U33#(tt, X, Y) >= U34#(isNatKind, X, Y) because U33# = U34#, U33# in Mul, [30], [6] and [7], by (Fun) 30] tt >= isNatKind because tt = isNatKind, by (Fun) 31] U33#(tt, X, Y) >= activate#(Y) because [32], by (Star) 32] U33#*(tt, X, Y) >= activate#(Y) because U33# > activate# and [33], by (Copy) 33] U33#*(tt, X, Y) >= Y because [7], by (Select) 34] U33#(tt, X, Y) >= activate#(X) because [35], by (Star) 35] U33#*(tt, X, Y) >= activate#(X) because U33# > activate# and [36], by (Copy) 36] U33#*(tt, X, Y) >= X because [6], by (Select) 37] U33#(tt, X, Y) >= activate#(Y) because [32], by (Star) 38] U34#(tt, X, Y) >= U35#(Y) because [39], by (Star) 39] U34#*(tt, X, Y) >= U35#(Y) because U34# > U35# and [40], by (Copy) 40] U34#*(tt, X, Y) >= Y because [7], by (Select) 41] U34#(tt, X, Y) >= activate#(X) because [42], by (Star) 42] U34#*(tt, X, Y) >= activate#(X) because U34# > activate# and [43], by (Copy) 43] U34#*(tt, X, Y) >= X because [6], by (Select) 44] U34#(tt, X, Y) >= activate#(Y) because [45], by (Star) 45] U34#*(tt, X, Y) >= activate#(Y) because U34# > activate# and [40], by (Copy) 46] U35#(X) >= isNat#(X) because U35# = isNat#, U35# in Mul and [7], by (Fun) 47] U61#(tt, X) >= isNatKind#(X) because [48], by (Star) 48] U61#*(tt, X) >= isNatKind#(X) because U61# = isNatKind#, U61# in Mul and [7], by (Stat) 49] isNat#(n!6220!6220plus(X, Y)) > isNatKind#(X) because [50], by definition 50] isNat#*(n!6220!6220plus(X, Y)) >= isNatKind#(X) because [51], by (Select) 51] n!6220!6220plus(X, Y) >= isNatKind#(X) because [52], by (Star) 52] n!6220!6220plus*(X, Y) >= isNatKind#(X) because n!6220!6220plus > isNatKind# and [53], by (Copy) 53] n!6220!6220plus*(X, Y) >= X because [6], by (Select) 54] isNat#(n!6220!6220plus(X, Y)) >= activate#(X) because isNat# = activate#, isNat# in Mul and [55], by (Fun) 55] n!6220!6220plus(X, Y) >= X because [53], by (Star) 56] isNat#(n!6220!6220plus(X, Y)) >= activate#(X) because isNat# = activate#, isNat# in Mul and [55], by (Fun) 57] isNat#(n!6220!6220plus(X, Y)) >= activate#(Y) because isNat# = activate#, isNat# in Mul and [58], by (Fun) 58] n!6220!6220plus(X, Y) >= Y because [59], by (Star) 59] n!6220!6220plus*(X, Y) >= Y because [7], by (Select) 60] isNat#(n!6220!6220s(X)) >= U21#(X) because isNat# = U21#, isNat# in Mul and [61], by (Fun) 61] n!6220!6220s(X) >= X because [62], by (Star) 62] n!6220!6220s*(X) >= X because [6], by (Select) 63] isNat#(n!6220!6220s(X)) >= isNatKind#(X) because [64], by (Star) 64] isNat#*(n!6220!6220s(X)) >= isNatKind#(X) because [65], by (Select) 65] n!6220!6220s(X) >= isNatKind#(X) because n!6220!6220s = isNatKind#, n!6220!6220s in Mul and [6], by (Fun) 66] isNat#(n!6220!6220s(X)) >= activate#(X) because isNat# = activate#, isNat# in Mul and [61], by (Fun) 67] isNat#(n!6220!6220s(X)) >= activate#(X) because isNat# = activate#, isNat# in Mul and [61], by (Fun) 68] isNat#(n!6220!6220x(X, Y)) >= U31#(isNatKind, X, Y) because [69], by (Star) 69] isNat#*(n!6220!6220x(X, Y)) >= U31#(isNatKind, X, Y) because [70], by (Select) 70] n!6220!6220x(X, Y) >= U31#(isNatKind, X, Y) because [71], by (Star) 71] n!6220!6220x*(X, Y) >= U31#(isNatKind, X, Y) because n!6220!6220x > U31#, [72], [73] and [74], by (Copy) 72] n!6220!6220x*(X, Y) >= isNatKind because n!6220!6220x > isNatKind, by (Copy) 73] n!6220!6220x*(X, Y) >= X because [6], by (Select) 74] n!6220!6220x*(X, Y) >= Y because [7], by (Select) 75] isNat#(n!6220!6220x(X, Y)) >= isNatKind#(X) because [76], by (Star) 76] isNat#*(n!6220!6220x(X, Y)) >= isNatKind#(X) because [77], by (Select) 77] n!6220!6220x(X, Y) >= isNatKind#(X) because [78], by (Star) 78] n!6220!6220x*(X, Y) >= isNatKind#(X) because n!6220!6220x > isNatKind# and [73], by (Copy) 79] isNat#(n!6220!6220x(X, Y)) > activate#(X) because [80], by definition 80] isNat#*(n!6220!6220x(X, Y)) >= activate#(X) because isNat# = activate#, isNat# in Mul and [81], by (Stat) 81] n!6220!6220x(X, Y) > X because [73], by definition 82] isNat#(n!6220!6220x(X, Y)) > activate#(X) because [80], by definition 83] isNat#(n!6220!6220x(X, Y)) >= activate#(Y) because isNat# = activate#, isNat# in Mul and [84], by (Fun) 84] n!6220!6220x(X, Y) >= Y because [74], by (Star) 85] isNatKind#(n!6220!6220plus(X, Y)) >= isNatKind#(X) because isNatKind# in Mul and [86], by (Fun) 86] n!6220!6220plus(X, Y) >= X because [53], by (Star) 87] isNatKind#(n!6220!6220plus(X, Y)) >= activate#(X) because [88], by (Star) 88] isNatKind#*(n!6220!6220plus(X, Y)) >= activate#(X) because isNatKind# > activate# and [89], by (Copy) 89] isNatKind#*(n!6220!6220plus(X, Y)) >= X because [86], by (Select) 90] isNatKind#(n!6220!6220plus(X, Y)) >= activate#(Y) because [91], by (Star) 91] isNatKind#*(n!6220!6220plus(X, Y)) >= activate#(Y) because isNatKind# > activate# and [92], by (Copy) 92] isNatKind#*(n!6220!6220plus(X, Y)) >= Y because [58], by (Select) 93] isNatKind#(n!6220!6220s(X)) >= isNatKind#(X) because isNatKind# in Mul and [61], by (Fun) 94] isNatKind#(n!6220!6220s(X)) >= activate#(X) because [95], by (Star) 95] isNatKind#*(n!6220!6220s(X)) >= activate#(X) because isNatKind# > activate# and [96], by (Copy) 96] isNatKind#*(n!6220!6220s(X)) >= X because [61], by (Select) 97] isNatKind#(n!6220!6220x(X, Y)) >= U61#(isNatKind, Y) because [98], by (Star) 98] isNatKind#*(n!6220!6220x(X, Y)) >= U61#(isNatKind, Y) because isNatKind# = U61#, isNatKind# in Mul, [99] and [100], by (Stat) 99] n!6220!6220x(X, Y) > isNatKind because [72], by definition 100] n!6220!6220x(X, Y) > Y because [74], by definition 101] isNatKind#(n!6220!6220x(X, Y)) >= isNatKind#(X) because [102], by (Star) 102] isNatKind#*(n!6220!6220x(X, Y)) >= isNatKind#(X) because isNatKind# in Mul and [103], by (Stat) 103] n!6220!6220x(X, Y) > X because [73], by definition 104] isNatKind#(n!6220!6220x(X, Y)) >= activate#(Y) because [105], by (Star) 105] isNatKind#*(n!6220!6220x(X, Y)) >= activate#(Y) because isNatKind# > activate# and [106], by (Copy) 106] isNatKind#*(n!6220!6220x(X, Y)) >= Y because [84], by (Select) 107] plus#(X, _|_) > isNat#(X) because [108], by definition 108] plus#*(X, _|_) >= isNat#(X) because plus# = isNat#, plus# in Mul and [109], by (Stat) 109] X >= X by (Meta) 110] plus#(X, s(Y)) > isNat#(Y) because [111], by definition 111] plus#*(X, s(Y)) >= isNat#(Y) because plus# = isNat#, plus# in Mul and [112], by (Stat) 112] s(Y) > Y because [113], by definition 113] s*(Y) >= Y because [114], by (Select) 114] Y >= Y by (Meta) 115] x#(X, _|_) >= isNat#(X) because [116], by (Star) 116] x#*(X, _|_) >= isNat#(X) because x# > isNat# and [117], by (Copy) 117] x#*(X, _|_) >= X because [109], by (Select) 118] x#(X, s(Y)) >= isNat#(Y) because [119], by (Star) 119] x#*(X, s(Y)) >= isNat#(Y) because x# > isNat# and [120], by (Copy) 120] x#*(X, s(Y)) >= Y because [121], by (Select) 121] s(Y) >= Y because [113], by (Star) 122] activate#(n!6220!6220plus(X, Y)) >= plus#(X, Y) because [123], by (Star) 123] activate#*(n!6220!6220plus(X, Y)) >= plus#(X, Y) because activate# = plus#, activate# in Mul, [124] and [127], by (Stat) 124] n!6220!6220plus(X, Y) > X because [125], by definition 125] n!6220!6220plus*(X, Y) >= X because [126], by (Select) 126] X >= X by (Meta) 127] n!6220!6220plus(X, Y) > Y because [128], by definition 128] n!6220!6220plus*(X, Y) >= Y because [129], by (Select) 129] Y >= Y by (Meta) 130] activate#(n!6220!6220plus(X, Y)) >= activate#(X) because activate# in Mul and [131], by (Fun) 131] n!6220!6220plus(X, Y) >= X because [125], by (Star) 132] activate#(n!6220!6220plus(X, Y)) >= activate#(Y) because activate# in Mul and [133], by (Fun) 133] n!6220!6220plus(X, Y) >= Y because [128], by (Star) 134] activate#(n!6220!6220s(X)) >= activate#(X) because activate# in Mul and [135], by (Fun) 135] n!6220!6220s(X) >= X because [136], by (Star) 136] n!6220!6220s*(X) >= X because [137], by (Select) 137] X >= X by (Meta) 138] activate#(n!6220!6220x(X, Y)) >= x#(X, Y) because [139], by (Star) 139] activate#*(n!6220!6220x(X, Y)) >= x#(X, Y) because [140], by (Select) 140] n!6220!6220x(X, Y) >= x#(X, Y) because [141], by (Star) 141] n!6220!6220x*(X, Y) >= x#(X, Y) because n!6220!6220x > x#, [142] and [143], by (Copy) 142] n!6220!6220x*(X, Y) >= X because [126], by (Select) 143] n!6220!6220x*(X, Y) >= Y because [129], by (Select) 144] activate#(n!6220!6220x(X, Y)) >= activate#(X) because [145], by (Star) 145] activate#*(n!6220!6220x(X, Y)) >= activate#(X) because activate# in Mul and [146], by (Stat) 146] n!6220!6220x(X, Y) > X because [142], by definition 147] activate#(n!6220!6220x(X, Y)) >= activate#(Y) because [148], by (Star) 148] activate#*(n!6220!6220x(X, Y)) >= activate#(Y) because activate# in Mul and [149], by (Stat) 149] n!6220!6220x(X, Y) > Y because [143], by definition 150] U101(tt, X, Y) >= U102(isNatKind, X, Y) because U101 = U102, U101 in Mul, [151], [152] and [153], by (Fun) 151] tt >= isNatKind because tt = isNatKind, by (Fun) 152] X >= X by (Meta) 153] Y >= Y by (Meta) 154] U102(tt, X, Y) >= U103(isNat, X, Y) because U102 = U103, U102 in Mul, [155], [152] and [153], by (Fun) 155] tt >= isNat because tt = isNat, by (Fun) 156] U103(tt, X, Y) >= U104(isNatKind, X, Y) because U103 = U104, U103 in Mul, [157], [152] and [153], by (Fun) 157] tt >= isNatKind because tt = isNatKind, by (Fun) 158] U104(tt, X, Y) >= plus(x(Y, X), Y) because [159], by (Star) 159] U104*(tt, X, Y) >= plus(x(Y, X), Y) because U104 > plus, [160] and [161], by (Copy) 160] U104*(tt, X, Y) >= x(Y, X) because U104 = x, U104 in Mul, [152] and [153], by (Stat) 161] U104*(tt, X, Y) >= Y because [153], by (Select) 162] U11 >= U12 because U11 = U12 and U11 in Mul, by (Fun) 163] U12 >= U13 because U12 = U13 and U12 in Mul, by (Fun) 164] U13 >= U14 because U13 = U14 and U13 in Mul, by (Fun) 165] U14 >= U15 because U14 = U15 and U14 in Mul, by (Fun) 166] U15 >= isNat because U15 = isNat and U15 in Mul, by (Fun) 167] tt >= tt by (Fun) 168] tt >= U22 because tt = U22, by (Fun) 169] U22 >= isNat because U22 = isNat and U22 in Mul, by (Fun) 170] tt >= tt by (Fun) 171] U31 >= U32 because U31 = U32 and U31 in Mul, by (Fun) 172] U32 >= U33 because U32 = U33 and U32 in Mul, by (Fun) 173] U33 >= U34 because U33 = U34 and U33 in Mul, by (Fun) 174] U34 >= isNat because U34 = isNat and U34 in Mul, by (Fun) 175] tt >= isNat because tt = isNat, by (Fun) 176] tt >= tt by (Fun) 177] tt >= isNatKind because tt = isNatKind, by (Fun) 178] tt >= tt by (Fun) 179] tt >= tt by (Fun) 180] U61 >= isNatKind because U61 = isNatKind and U61 in Mul, by (Fun) 181] tt >= tt by (Fun) 182] U71(tt, X) >= U72(isNatKind, X) because U71 = U72, U71 in Mul, [157] and [153], by (Fun) 183] U72(tt, X) >= X because [184], by (Star) 184] U72*(tt, X) >= X because [153], by (Select) 185] U81(tt, X, Y) >= U82(isNatKind, X, Y) because U81 = U82, U81 in Mul, [151], [152] and [153], by (Fun) 186] U82(tt, X, Y) >= U83(isNat, X, Y) because U82 = U83, U82 in Mul, [155], [152] and [153], by (Fun) 187] U83(tt, X, Y) >= U84(isNatKind, X, Y) because U83 = U84, U83 in Mul, [157], [152] and [153], by (Fun) 188] U84(tt, X, Y) >= s(plus(Y, X)) because [189], by (Star) 189] U84*(tt, X, Y) >= s(plus(Y, X)) because U84 > s and [190], by (Copy) 190] U84*(tt, X, Y) >= plus(Y, X) because U84 = plus, U84 in Mul, [152] and [153], by (Stat) 191] _|_ >= _|_ by (Bot) 192] _|_ >= _|_ by (Bot) 193] isNat >= tt because isNat = tt, by (Fun) 194] isNat >= U11 because isNat = U11 and isNat in Mul, by (Fun) 195] isNat >= isNatKind because isNat = isNatKind and isNat in Mul, by (Fun) 196] isNat >= U31 because isNat = U31 and isNat in Mul, by (Fun) 197] isNatKind >= tt because isNatKind = tt, by (Fun) 198] isNatKind >= isNatKind because isNatKind in Mul, by (Fun) 199] isNatKind >= isNatKind because isNatKind in Mul, by (Fun) 200] isNatKind >= U61 because isNatKind = U61 and isNatKind in Mul, by (Fun) 201] plus(X, _|_) >= U71(isNat, X) because [202], by (Star) 202] plus*(X, _|_) >= U71(isNat, X) because plus > U71, [203] and [204], by (Copy) 203] plus*(X, _|_) >= isNat because plus > isNat, by (Copy) 204] plus*(X, _|_) >= X because [153], by (Select) 205] plus(X, s(Y)) >= U81(isNat, Y, X) because [206], by (Star) 206] plus*(X, s(Y)) >= U81(isNat, Y, X) because plus = U81, plus in Mul, [153], [207] and [112], by (Stat) 207] s(Y) > isNat because [208], by definition 208] s*(Y) >= isNat because s = isNat and s in Mul, by (Stat) 209] x(X, _|_) >= _|_ by (Bot) 210] x(X, s(Y)) >= U101(isNat, Y, X) because [211], by (Star) 211] x*(X, s(Y)) >= U101(isNat, Y, X) because x = U101, x in Mul, [153], [207] and [112], by (Stat) 212] _|_ >= _|_ by (Bot) 213] plus(X, Y) >= n!6220!6220plus(X, Y) because plus = n!6220!6220plus, plus in Mul, [214] and [215], by (Fun) 214] X >= X by (Meta) 215] Y >= Y by (Meta) 216] s(X) >= n!6220!6220s(X) because s = n!6220!6220s, s in Mul and [217], by (Fun) 217] X >= X by (Meta) 218] x(X, Y) >= n!6220!6220x(X, Y) because x = n!6220!6220x, x in Mul, [214] and [215], by (Fun) 219] _|_ >= _|_ by (Bot) 220] n!6220!6220plus(X, Y) >= plus(X, Y) because n!6220!6220plus = plus, n!6220!6220plus in Mul, [221] and [222], by (Fun) 221] X >= X by (Meta) 222] Y >= Y by (Meta) 223] n!6220!6220s(X) >= s(X) because n!6220!6220s = s, n!6220!6220s in Mul and [224], by (Fun) 224] X >= X by (Meta) 225] n!6220!6220x(X, Y) >= x(X, Y) because n!6220!6220x = x, n!6220!6220x in Mul, [221] and [222], by (Fun) 226] X >= X by (Meta) By the observations in [Kop12, Sec. 6.6], this reduction pair suffices; we may thus replace the dependency pair problem (P_10, R_0, minimal, formative) by (P_11, R_0, minimal, formative), where P_11 consists of: U21#(tt, X) =#> activate#(X) U21#(tt, X) =#> activate#(X) U31#(tt, X, Y) =#> U32#(isNatKind(activate(X)), activate(X), activate(Y)) U31#(tt, X, Y) =#> isNatKind#(activate(X)) U31#(tt, X, Y) =#> activate#(X) U31#(tt, X, Y) =#> activate#(X) U31#(tt, X, Y) =#> activate#(Y) U32#(tt, X, Y) =#> U33#(isNatKind(activate(Y)), activate(X), activate(Y)) U32#(tt, X, Y) =#> isNatKind#(activate(Y)) U32#(tt, X, Y) =#> activate#(Y) U32#(tt, X, Y) =#> activate#(X) U32#(tt, X, Y) =#> activate#(Y) U33#(tt, X, Y) =#> U34#(isNatKind(activate(Y)), activate(X), activate(Y)) U33#(tt, X, Y) =#> activate#(Y) U33#(tt, X, Y) =#> activate#(X) U33#(tt, X, Y) =#> activate#(Y) U34#(tt, X, Y) =#> U35#(isNat(activate(X)), activate(Y)) U34#(tt, X, Y) =#> activate#(X) U34#(tt, X, Y) =#> activate#(Y) U35#(tt, X) =#> isNat#(activate(X)) U61#(tt, X) =#> isNatKind#(activate(X)) isNat#(n!6220!6220plus(X, Y)) =#> activate#(X) isNat#(n!6220!6220plus(X, Y)) =#> activate#(X) isNat#(n!6220!6220plus(X, Y)) =#> activate#(Y) isNat#(n!6220!6220s(X)) =#> U21#(isNatKind(activate(X)), activate(X)) isNat#(n!6220!6220s(X)) =#> isNatKind#(activate(X)) isNat#(n!6220!6220s(X)) =#> activate#(X) isNat#(n!6220!6220s(X)) =#> activate#(X) isNat#(n!6220!6220x(X, Y)) =#> U31#(isNatKind(activate(X)), activate(X), activate(Y)) isNat#(n!6220!6220x(X, Y)) =#> isNatKind#(activate(X)) isNat#(n!6220!6220x(X, Y)) =#> activate#(Y) isNatKind#(n!6220!6220plus(X, Y)) =#> isNatKind#(activate(X)) isNatKind#(n!6220!6220plus(X, Y)) =#> activate#(X) isNatKind#(n!6220!6220plus(X, Y)) =#> activate#(Y) isNatKind#(n!6220!6220s(X)) =#> isNatKind#(activate(X)) isNatKind#(n!6220!6220s(X)) =#> activate#(X) isNatKind#(n!6220!6220x(X, Y)) =#> U61#(isNatKind(activate(X)), activate(Y)) isNatKind#(n!6220!6220x(X, Y)) =#> isNatKind#(activate(X)) isNatKind#(n!6220!6220x(X, Y)) =#> activate#(Y) x#(X, 0) =#> isNat#(X) x#(X, s(Y)) =#> isNat#(Y) activate#(n!6220!6220plus(X, Y)) =#> plus#(activate(X), activate(Y)) activate#(n!6220!6220plus(X, Y)) =#> activate#(X) activate#(n!6220!6220plus(X, Y)) =#> activate#(Y) activate#(n!6220!6220s(X)) =#> activate#(X) activate#(n!6220!6220x(X, Y)) =#> x#(activate(X), activate(Y)) activate#(n!6220!6220x(X, Y)) =#> activate#(X) activate#(n!6220!6220x(X, Y)) =#> activate#(Y) Thus, the original system is terminating if (P_11, R_0, minimal, formative) is finite. We consider the dependency pair problem (P_11, R_0, minimal, formative). We place the elements of P in a dependency graph approximation G (see e.g. [Kop12, Thm. 7.27, 7.29], as follows: * 0 : 41, 42, 43, 44, 45, 46, 47 * 1 : 41, 42, 43, 44, 45, 46, 47 * 2 : 7, 8, 9, 10, 11 * 3 : 31, 32, 33, 34, 35, 36, 37, 38 * 4 : 41, 42, 43, 44, 45, 46, 47 * 5 : 41, 42, 43, 44, 45, 46, 47 * 6 : 41, 42, 43, 44, 45, 46, 47 * 7 : 12, 13, 14, 15 * 8 : 31, 32, 33, 34, 35, 36, 37, 38 * 9 : 41, 42, 43, 44, 45, 46, 47 * 10 : 41, 42, 43, 44, 45, 46, 47 * 11 : 41, 42, 43, 44, 45, 46, 47 * 12 : 16, 17, 18 * 13 : 41, 42, 43, 44, 45, 46, 47 * 14 : 41, 42, 43, 44, 45, 46, 47 * 15 : 41, 42, 43, 44, 45, 46, 47 * 16 : 19 * 17 : 41, 42, 43, 44, 45, 46, 47 * 18 : 41, 42, 43, 44, 45, 46, 47 * 19 : 21, 22, 23, 24, 25, 26, 27, 28, 29, 30 * 20 : 31, 32, 33, 34, 35, 36, 37, 38 * 21 : 41, 42, 43, 44, 45, 46, 47 * 22 : 41, 42, 43, 44, 45, 46, 47 * 23 : 41, 42, 43, 44, 45, 46, 47 * 24 : 0, 1 * 25 : 31, 32, 33, 34, 35, 36, 37, 38 * 26 : 41, 42, 43, 44, 45, 46, 47 * 27 : 41, 42, 43, 44, 45, 46, 47 * 28 : 2, 3, 4, 5, 6 * 29 : 31, 32, 33, 34, 35, 36, 37, 38 * 30 : 41, 42, 43, 44, 45, 46, 47 * 31 : 31, 32, 33, 34, 35, 36, 37, 38 * 32 : 41, 42, 43, 44, 45, 46, 47 * 33 : 41, 42, 43, 44, 45, 46, 47 * 34 : 31, 32, 33, 34, 35, 36, 37, 38 * 35 : 41, 42, 43, 44, 45, 46, 47 * 36 : 20 * 37 : 31, 32, 33, 34, 35, 36, 37, 38 * 38 : 41, 42, 43, 44, 45, 46, 47 * 39 : 21, 22, 23, 24, 25, 26, 27, 28, 29, 30 * 40 : 21, 22, 23, 24, 25, 26, 27, 28, 29, 30 * 41 : * 42 : 41, 42, 43, 44, 45, 46, 47 * 43 : 41, 42, 43, 44, 45, 46, 47 * 44 : 41, 42, 43, 44, 45, 46, 47 * 45 : 39, 40 * 46 : 41, 42, 43, 44, 45, 46, 47 * 47 : 41, 42, 43, 44, 45, 46, 47 This graph has the following strongly connected components: P_12: U21#(tt, X) =#> activate#(X) U21#(tt, X) =#> activate#(X) U31#(tt, X, Y) =#> U32#(isNatKind(activate(X)), activate(X), activate(Y)) U31#(tt, X, Y) =#> isNatKind#(activate(X)) U31#(tt, X, Y) =#> activate#(X) U31#(tt, X, Y) =#> activate#(X) U31#(tt, X, Y) =#> activate#(Y) U32#(tt, X, Y) =#> U33#(isNatKind(activate(Y)), activate(X), activate(Y)) U32#(tt, X, Y) =#> isNatKind#(activate(Y)) U32#(tt, X, Y) =#> activate#(Y) U32#(tt, X, Y) =#> activate#(X) U32#(tt, X, Y) =#> activate#(Y) U33#(tt, X, Y) =#> U34#(isNatKind(activate(Y)), activate(X), activate(Y)) U33#(tt, X, Y) =#> activate#(Y) U33#(tt, X, Y) =#> activate#(X) U33#(tt, X, Y) =#> activate#(Y) U34#(tt, X, Y) =#> U35#(isNat(activate(X)), activate(Y)) U34#(tt, X, Y) =#> activate#(X) U34#(tt, X, Y) =#> activate#(Y) U35#(tt, X) =#> isNat#(activate(X)) U61#(tt, X) =#> isNatKind#(activate(X)) isNat#(n!6220!6220plus(X, Y)) =#> activate#(X) isNat#(n!6220!6220plus(X, Y)) =#> activate#(X) isNat#(n!6220!6220plus(X, Y)) =#> activate#(Y) isNat#(n!6220!6220s(X)) =#> U21#(isNatKind(activate(X)), activate(X)) isNat#(n!6220!6220s(X)) =#> isNatKind#(activate(X)) isNat#(n!6220!6220s(X)) =#> activate#(X) isNat#(n!6220!6220s(X)) =#> activate#(X) isNat#(n!6220!6220x(X, Y)) =#> U31#(isNatKind(activate(X)), activate(X), activate(Y)) isNat#(n!6220!6220x(X, Y)) =#> isNatKind#(activate(X)) isNat#(n!6220!6220x(X, Y)) =#> activate#(Y) isNatKind#(n!6220!6220plus(X, Y)) =#> isNatKind#(activate(X)) isNatKind#(n!6220!6220plus(X, Y)) =#> activate#(X) isNatKind#(n!6220!6220plus(X, Y)) =#> activate#(Y) isNatKind#(n!6220!6220s(X)) =#> isNatKind#(activate(X)) isNatKind#(n!6220!6220s(X)) =#> activate#(X) isNatKind#(n!6220!6220x(X, Y)) =#> U61#(isNatKind(activate(X)), activate(Y)) isNatKind#(n!6220!6220x(X, Y)) =#> isNatKind#(activate(X)) isNatKind#(n!6220!6220x(X, Y)) =#> activate#(Y) x#(X, 0) =#> isNat#(X) x#(X, s(Y)) =#> isNat#(Y) activate#(n!6220!6220plus(X, Y)) =#> activate#(X) activate#(n!6220!6220plus(X, Y)) =#> activate#(Y) activate#(n!6220!6220s(X)) =#> activate#(X) activate#(n!6220!6220x(X, Y)) =#> x#(activate(X), activate(Y)) activate#(n!6220!6220x(X, Y)) =#> activate#(X) activate#(n!6220!6220x(X, Y)) =#> activate#(Y) By [Kop12, Thm. 7.31], we may replace any dependency pair problem (P_11, R_0, m, f) by (P_12, R_0, m, f). Thus, the original system is terminating if (P_12, R_0, minimal, formative) is finite. We consider the dependency pair problem (P_12, R_0, minimal, formative). We will use the reduction pair processor [Kop12, Thm. 7.16]. It suffices to find a standard reduction pair [Kop12, Def. 6.69]. Thus, we must orient: U21#(tt, X) >? activate#(X) U21#(tt, X) >? activate#(X) U31#(tt, X, Y) >? U32#(isNatKind(activate(X)), activate(X), activate(Y)) U31#(tt, X, Y) >? isNatKind#(activate(X)) U31#(tt, X, Y) >? activate#(X) U31#(tt, X, Y) >? activate#(X) U31#(tt, X, Y) >? activate#(Y) U32#(tt, X, Y) >? U33#(isNatKind(activate(Y)), activate(X), activate(Y)) U32#(tt, X, Y) >? isNatKind#(activate(Y)) U32#(tt, X, Y) >? activate#(Y) U32#(tt, X, Y) >? activate#(X) U32#(tt, X, Y) >? activate#(Y) U33#(tt, X, Y) >? U34#(isNatKind(activate(Y)), activate(X), activate(Y)) U33#(tt, X, Y) >? activate#(Y) U33#(tt, X, Y) >? activate#(X) U33#(tt, X, Y) >? activate#(Y) U34#(tt, X, Y) >? U35#(isNat(activate(X)), activate(Y)) U34#(tt, X, Y) >? activate#(X) U34#(tt, X, Y) >? activate#(Y) U35#(tt, X) >? isNat#(activate(X)) U61#(tt, X) >? isNatKind#(activate(X)) isNat#(n!6220!6220plus(X, Y)) >? activate#(X) isNat#(n!6220!6220plus(X, Y)) >? activate#(X) isNat#(n!6220!6220plus(X, Y)) >? activate#(Y) isNat#(n!6220!6220s(X)) >? U21#(isNatKind(activate(X)), activate(X)) isNat#(n!6220!6220s(X)) >? isNatKind#(activate(X)) isNat#(n!6220!6220s(X)) >? activate#(X) isNat#(n!6220!6220s(X)) >? activate#(X) isNat#(n!6220!6220x(X, Y)) >? U31#(isNatKind(activate(X)), activate(X), activate(Y)) isNat#(n!6220!6220x(X, Y)) >? isNatKind#(activate(X)) isNat#(n!6220!6220x(X, Y)) >? activate#(Y) isNatKind#(n!6220!6220plus(X, Y)) >? isNatKind#(activate(X)) isNatKind#(n!6220!6220plus(X, Y)) >? activate#(X) isNatKind#(n!6220!6220plus(X, Y)) >? activate#(Y) isNatKind#(n!6220!6220s(X)) >? isNatKind#(activate(X)) isNatKind#(n!6220!6220s(X)) >? activate#(X) isNatKind#(n!6220!6220x(X, Y)) >? U61#(isNatKind(activate(X)), activate(Y)) isNatKind#(n!6220!6220x(X, Y)) >? isNatKind#(activate(X)) isNatKind#(n!6220!6220x(X, Y)) >? activate#(Y) x#(X, 0) >? isNat#(X) x#(X, s(Y)) >? isNat#(Y) activate#(n!6220!6220plus(X, Y)) >? activate#(X) activate#(n!6220!6220plus(X, Y)) >? activate#(Y) activate#(n!6220!6220s(X)) >? activate#(X) activate#(n!6220!6220x(X, Y)) >? x#(activate(X), activate(Y)) activate#(n!6220!6220x(X, Y)) >? activate#(X) activate#(n!6220!6220x(X, Y)) >? activate#(Y) U101(tt, X, Y) >= U102(isNatKind(activate(X)), activate(X), activate(Y)) U102(tt, X, Y) >= U103(isNat(activate(Y)), activate(X), activate(Y)) U103(tt, X, Y) >= U104(isNatKind(activate(Y)), activate(X), activate(Y)) U104(tt, X, Y) >= plus(x(activate(Y), activate(X)), activate(Y)) U11(tt, X, Y) >= U12(isNatKind(activate(X)), activate(X), activate(Y)) U12(tt, X, Y) >= U13(isNatKind(activate(Y)), activate(X), activate(Y)) U13(tt, X, Y) >= U14(isNatKind(activate(Y)), activate(X), activate(Y)) U14(tt, X, Y) >= U15(isNat(activate(X)), activate(Y)) U15(tt, X) >= U16(isNat(activate(X))) U16(tt) >= tt U21(tt, X) >= U22(isNatKind(activate(X)), activate(X)) U22(tt, X) >= U23(isNat(activate(X))) U23(tt) >= tt U31(tt, X, Y) >= U32(isNatKind(activate(X)), activate(X), activate(Y)) U32(tt, X, Y) >= U33(isNatKind(activate(Y)), activate(X), activate(Y)) U33(tt, X, Y) >= U34(isNatKind(activate(Y)), activate(X), activate(Y)) U34(tt, X, Y) >= U35(isNat(activate(X)), activate(Y)) U35(tt, X) >= U36(isNat(activate(X))) U36(tt) >= tt U41(tt, X) >= U42(isNatKind(activate(X))) U42(tt) >= tt U51(tt) >= tt U61(tt, X) >= U62(isNatKind(activate(X))) U62(tt) >= tt U71(tt, X) >= U72(isNatKind(activate(X)), activate(X)) U72(tt, X) >= activate(X) U81(tt, X, Y) >= U82(isNatKind(activate(X)), activate(X), activate(Y)) U82(tt, X, Y) >= U83(isNat(activate(Y)), activate(X), activate(Y)) U83(tt, X, Y) >= U84(isNatKind(activate(Y)), activate(X), activate(Y)) U84(tt, X, Y) >= s(plus(activate(Y), activate(X))) U91(tt, X) >= U92(isNatKind(activate(X))) U92(tt) >= 0 isNat(n!6220!62200) >= tt isNat(n!6220!6220plus(X, Y)) >= U11(isNatKind(activate(X)), activate(X), activate(Y)) isNat(n!6220!6220s(X)) >= U21(isNatKind(activate(X)), activate(X)) isNat(n!6220!6220x(X, Y)) >= U31(isNatKind(activate(X)), activate(X), activate(Y)) isNatKind(n!6220!62200) >= tt isNatKind(n!6220!6220plus(X, Y)) >= U41(isNatKind(activate(X)), activate(Y)) isNatKind(n!6220!6220s(X)) >= U51(isNatKind(activate(X))) isNatKind(n!6220!6220x(X, Y)) >= U61(isNatKind(activate(X)), activate(Y)) plus(X, 0) >= U71(isNat(X), X) plus(X, s(Y)) >= U81(isNat(Y), Y, X) x(X, 0) >= U91(isNat(X), X) x(X, s(Y)) >= U101(isNat(Y), Y, X) 0 >= n!6220!62200 plus(X, Y) >= n!6220!6220plus(X, Y) s(X) >= n!6220!6220s(X) x(X, Y) >= n!6220!6220x(X, Y) activate(n!6220!62200) >= 0 activate(n!6220!6220plus(X, Y)) >= plus(activate(X), activate(Y)) activate(n!6220!6220s(X)) >= s(activate(X)) activate(n!6220!6220x(X, Y)) >= x(activate(X), activate(Y)) activate(X) >= X Since this representation is not advantageous for the higher-order recursive path ordering, we present the strict requirements in their unextended form, which is not problematic since for any F, s and substituion gamma: (F s)gamma beta-reduces to F(s)gamma.) We use a recursive path ordering as defined in [Kop12, Chapter 5]. Argument functions: [[0]] = _|_ [[U11(x_1, x_2, x_3)]] = U11 [[U12(x_1, x_2, x_3)]] = x_1 [[U13(x_1, x_2, x_3)]] = U13 [[U14(x_1, x_2, x_3)]] = U14 [[U15(x_1, x_2)]] = U15 [[U16(x_1)]] = U16 [[U21(x_1, x_2)]] = x_1 [[U21#(x_1, x_2)]] = x_2 [[U22(x_1, x_2)]] = x_1 [[U23(x_1)]] = U23 [[U31(x_1, x_2, x_3)]] = x_1 [[U32(x_1, x_2, x_3)]] = U32 [[U33(x_1, x_2, x_3)]] = U33 [[U34(x_1, x_2, x_3)]] = x_1 [[U35(x_1, x_2)]] = x_1 [[U36(x_1)]] = x_1 [[U41(x_1, x_2)]] = x_1 [[U42(x_1)]] = x_1 [[U51(x_1)]] = x_1 [[U61(x_1, x_2)]] = x_1 [[U61#(x_1, x_2)]] = U61#(x_2) [[U62(x_1)]] = x_1 [[U92(x_1)]] = _|_ [[activate(x_1)]] = x_1 [[activate#(x_1)]] = x_1 [[isNat(x_1)]] = isNat [[isNatKind(x_1)]] = isNatKind [[n!6220!62200]] = _|_ We choose Lex = {} and Mul = {U101, U102, U103, U104, U11, U13, U14, U15, U16, U23, U31#, U32, U32#, U33, U33#, U34#, U35#, U61#, U71, U72, U81, U82, U83, U84, U91, isNat, isNatKind, isNatKind#, isNat#, n!6220!6220plus, n!6220!6220s, n!6220!6220x, plus, s, tt, x, x#}, and the following precedence: U101 = U102 = U103 = U104 = n!6220!6220x = x > U91 > U81 = U82 = U83 = U84 = n!6220!6220plus = plus > U31# = U32# = U33# = U61# = isNatKind# = n!6220!6220s = s > U11 = U13 = U14 = U15 = U16 = U23 = U32 = U33 = isNat = isNatKind = tt > U34# = U35# > U71 = U72 > isNat# = x# Taking the argument function into account, and fixing the greater / greater equal choices, the constraints can be denoted as follows: X >= X X >= X U31#(tt, X, Y) >= U32#(isNatKind, X, Y) U31#(tt, X, Y) >= isNatKind#(X) U31#(tt, X, Y) >= X U31#(tt, X, Y) >= X U31#(tt, X, Y) >= Y U32#(tt, X, Y) >= U33#(isNatKind, X, Y) U32#(tt, X, Y) >= isNatKind#(Y) U32#(tt, X, Y) >= Y U32#(tt, X, Y) >= X U32#(tt, X, Y) >= Y U33#(tt, X, Y) >= U34#(isNatKind, X, Y) U33#(tt, X, Y) >= Y U33#(tt, X, Y) >= X U33#(tt, X, Y) >= Y U34#(tt, X, Y) >= U35#(isNat, Y) U34#(tt, X, Y) >= X U34#(tt, X, Y) > Y U35#(tt, X) >= isNat#(X) U61#(X) >= isNatKind#(X) isNat#(n!6220!6220plus(X, Y)) >= X isNat#(n!6220!6220plus(X, Y)) >= X isNat#(n!6220!6220plus(X, Y)) >= Y isNat#(n!6220!6220s(X)) >= X isNat#(n!6220!6220s(X)) >= isNatKind#(X) isNat#(n!6220!6220s(X)) >= X isNat#(n!6220!6220s(X)) >= X isNat#(n!6220!6220x(X, Y)) >= U31#(isNatKind, X, Y) isNat#(n!6220!6220x(X, Y)) >= isNatKind#(X) isNat#(n!6220!6220x(X, Y)) >= Y isNatKind#(n!6220!6220plus(X, Y)) >= isNatKind#(X) isNatKind#(n!6220!6220plus(X, Y)) >= X isNatKind#(n!6220!6220plus(X, Y)) >= Y isNatKind#(n!6220!6220s(X)) >= isNatKind#(X) isNatKind#(n!6220!6220s(X)) >= X isNatKind#(n!6220!6220x(X, Y)) >= U61#(Y) isNatKind#(n!6220!6220x(X, Y)) >= isNatKind#(X) isNatKind#(n!6220!6220x(X, Y)) >= Y x#(X, _|_) >= isNat#(X) x#(X, s(Y)) >= isNat#(Y) n!6220!6220plus(X, Y) >= X n!6220!6220plus(X, Y) >= Y n!6220!6220s(X) >= X n!6220!6220x(X, Y) >= x#(X, Y) n!6220!6220x(X, Y) >= X n!6220!6220x(X, Y) >= Y U101(tt, X, Y) >= U102(isNatKind, X, Y) U102(tt, X, Y) >= U103(isNat, X, Y) U103(tt, X, Y) >= U104(isNatKind, X, Y) U104(tt, X, Y) >= plus(x(Y, X), Y) U11 >= isNatKind tt >= U13 U13 >= U14 U14 >= U15 U15 >= U16 U16 >= tt tt >= isNatKind tt >= U23 U23 >= tt tt >= U32 U32 >= U33 U33 >= isNatKind tt >= isNat tt >= isNat tt >= tt tt >= isNatKind tt >= tt tt >= tt tt >= isNatKind tt >= tt U71(tt, X) >= U72(isNatKind, X) U72(tt, X) >= X U81(tt, X, Y) >= U82(isNatKind, X, Y) U82(tt, X, Y) >= U83(isNat, X, Y) U83(tt, X, Y) >= U84(isNatKind, X, Y) U84(tt, X, Y) >= s(plus(Y, X)) U91(tt, X) >= _|_ _|_ >= _|_ isNat >= tt isNat >= U11 isNat >= isNatKind isNat >= isNatKind isNatKind >= tt isNatKind >= isNatKind isNatKind >= isNatKind isNatKind >= isNatKind plus(X, _|_) >= U71(isNat, X) plus(X, s(Y)) >= U81(isNat, Y, X) x(X, _|_) >= U91(isNat, X) x(X, s(Y)) >= U101(isNat, Y, X) _|_ >= _|_ plus(X, Y) >= n!6220!6220plus(X, Y) s(X) >= n!6220!6220s(X) x(X, Y) >= n!6220!6220x(X, Y) _|_ >= _|_ n!6220!6220plus(X, Y) >= plus(X, Y) n!6220!6220s(X) >= s(X) n!6220!6220x(X, Y) >= x(X, Y) X >= X With these choices, we have: 1] X >= X by (Meta) 2] X >= X by (Meta) 3] U31#(tt, X, Y) >= U32#(isNatKind, X, Y) because U31# = U32#, U31# in Mul, [4], [5] and [6], by (Fun) 4] tt >= isNatKind because tt = isNatKind, by (Fun) 5] X >= X by (Meta) 6] Y >= Y by (Meta) 7] U31#(tt, X, Y) >= isNatKind#(X) because [8], by (Star) 8] U31#*(tt, X, Y) >= isNatKind#(X) because U31# = isNatKind#, U31# in Mul and [5], by (Stat) 9] U31#(tt, X, Y) >= X because [10], by (Star) 10] U31#*(tt, X, Y) >= X because [5], by (Select) 11] U31#(tt, X, Y) >= X because [10], by (Star) 12] U31#(tt, X, Y) >= Y because [13], by (Star) 13] U31#*(tt, X, Y) >= Y because [6], by (Select) 14] U32#(tt, X, Y) >= U33#(isNatKind, X, Y) because U32# = U33#, U32# in Mul, [15], [5] and [6], by (Fun) 15] tt >= isNatKind because tt = isNatKind, by (Fun) 16] U32#(tt, X, Y) >= isNatKind#(Y) because [17], by (Star) 17] U32#*(tt, X, Y) >= isNatKind#(Y) because U32# = isNatKind#, U32# in Mul and [6], by (Stat) 18] U32#(tt, X, Y) >= Y because [19], by (Star) 19] U32#*(tt, X, Y) >= Y because [6], by (Select) 20] U32#(tt, X, Y) >= X because [21], by (Star) 21] U32#*(tt, X, Y) >= X because [5], by (Select) 22] U32#(tt, X, Y) >= Y because [19], by (Star) 23] U33#(tt, X, Y) >= U34#(isNatKind, X, Y) because [24], by (Star) 24] U33#*(tt, X, Y) >= U34#(isNatKind, X, Y) because U33# > U34#, [25], [26] and [27], by (Copy) 25] U33#*(tt, X, Y) >= isNatKind because U33# > isNatKind, by (Copy) 26] U33#*(tt, X, Y) >= X because [5], by (Select) 27] U33#*(tt, X, Y) >= Y because [6], by (Select) 28] U33#(tt, X, Y) >= Y because [27], by (Star) 29] U33#(tt, X, Y) >= X because [26], by (Star) 30] U33#(tt, X, Y) >= Y because [27], by (Star) 31] U34#(tt, X, Y) >= U35#(isNat, Y) because [32], by (Star) 32] U34#*(tt, X, Y) >= U35#(isNat, Y) because U34# = U35#, U34# in Mul, [33] and [6], by (Stat) 33] tt >= isNat because tt = isNat, by (Fun) 34] U34#(tt, X, Y) >= X because [35], by (Star) 35] U34#*(tt, X, Y) >= X because [5], by (Select) 36] U34#(tt, X, Y) > Y because [37], by definition 37] U34#*(tt, X, Y) >= Y because [6], by (Select) 38] U35#(tt, X) >= isNat#(X) because [39], by (Star) 39] U35#*(tt, X) >= isNat#(X) because U35# > isNat# and [40], by (Copy) 40] U35#*(tt, X) >= X because [6], by (Select) 41] U61#(X) >= isNatKind#(X) because U61# = isNatKind#, U61# in Mul and [6], by (Fun) 42] isNat#(n!6220!6220plus(X, Y)) >= X because [43], by (Star) 43] isNat#*(n!6220!6220plus(X, Y)) >= X because [44], by (Select) 44] n!6220!6220plus(X, Y) >= X because [45], by (Star) 45] n!6220!6220plus*(X, Y) >= X because [5], by (Select) 46] isNat#(n!6220!6220plus(X, Y)) >= X because [43], by (Star) 47] isNat#(n!6220!6220plus(X, Y)) >= Y because [48], by (Star) 48] isNat#*(n!6220!6220plus(X, Y)) >= Y because [49], by (Select) 49] n!6220!6220plus(X, Y) >= Y because [50], by (Star) 50] n!6220!6220plus*(X, Y) >= Y because [6], by (Select) 51] isNat#(n!6220!6220s(X)) >= X because [52], by (Star) 52] isNat#*(n!6220!6220s(X)) >= X because [53], by (Select) 53] n!6220!6220s(X) >= X because [54], by (Star) 54] n!6220!6220s*(X) >= X because [5], by (Select) 55] isNat#(n!6220!6220s(X)) >= isNatKind#(X) because [56], by (Star) 56] isNat#*(n!6220!6220s(X)) >= isNatKind#(X) because [57], by (Select) 57] n!6220!6220s(X) >= isNatKind#(X) because n!6220!6220s = isNatKind#, n!6220!6220s in Mul and [5], by (Fun) 58] isNat#(n!6220!6220s(X)) >= X because [52], by (Star) 59] isNat#(n!6220!6220s(X)) >= X because [52], by (Star) 60] isNat#(n!6220!6220x(X, Y)) >= U31#(isNatKind, X, Y) because [61], by (Star) 61] isNat#*(n!6220!6220x(X, Y)) >= U31#(isNatKind, X, Y) because [62], by (Select) 62] n!6220!6220x(X, Y) >= U31#(isNatKind, X, Y) because [63], by (Star) 63] n!6220!6220x*(X, Y) >= U31#(isNatKind, X, Y) because n!6220!6220x > U31#, [64], [65] and [66], by (Copy) 64] n!6220!6220x*(X, Y) >= isNatKind because n!6220!6220x > isNatKind, by (Copy) 65] n!6220!6220x*(X, Y) >= X because [5], by (Select) 66] n!6220!6220x*(X, Y) >= Y because [6], by (Select) 67] isNat#(n!6220!6220x(X, Y)) >= isNatKind#(X) because [68], by (Star) 68] isNat#*(n!6220!6220x(X, Y)) >= isNatKind#(X) because [69], by (Select) 69] n!6220!6220x(X, Y) >= isNatKind#(X) because [70], by (Star) 70] n!6220!6220x*(X, Y) >= isNatKind#(X) because n!6220!6220x > isNatKind# and [65], by (Copy) 71] isNat#(n!6220!6220x(X, Y)) >= Y because [72], by (Star) 72] isNat#*(n!6220!6220x(X, Y)) >= Y because [73], by (Select) 73] n!6220!6220x(X, Y) >= Y because [66], by (Star) 74] isNatKind#(n!6220!6220plus(X, Y)) >= isNatKind#(X) because isNatKind# in Mul and [75], by (Fun) 75] n!6220!6220plus(X, Y) >= X because [45], by (Star) 76] isNatKind#(n!6220!6220plus(X, Y)) >= X because [77], by (Star) 77] isNatKind#*(n!6220!6220plus(X, Y)) >= X because [75], by (Select) 78] isNatKind#(n!6220!6220plus(X, Y)) >= Y because [79], by (Star) 79] isNatKind#*(n!6220!6220plus(X, Y)) >= Y because [49], by (Select) 80] isNatKind#(n!6220!6220s(X)) >= isNatKind#(X) because isNatKind# in Mul and [81], by (Fun) 81] n!6220!6220s(X) >= X because [54], by (Star) 82] isNatKind#(n!6220!6220s(X)) >= X because [83], by (Star) 83] isNatKind#*(n!6220!6220s(X)) >= X because [81], by (Select) 84] isNatKind#(n!6220!6220x(X, Y)) >= U61#(Y) because isNatKind# = U61#, isNatKind# in Mul and [85], by (Fun) 85] n!6220!6220x(X, Y) >= Y because [66], by (Star) 86] isNatKind#(n!6220!6220x(X, Y)) >= isNatKind#(X) because isNatKind# in Mul and [87], by (Fun) 87] n!6220!6220x(X, Y) >= X because [65], by (Star) 88] isNatKind#(n!6220!6220x(X, Y)) >= Y because [89], by (Star) 89] isNatKind#*(n!6220!6220x(X, Y)) >= Y because [85], by (Select) 90] x#(X, _|_) >= isNat#(X) because [91], by (Star) 91] x#*(X, _|_) >= isNat#(X) because x# = isNat#, x# in Mul and [92], by (Stat) 92] X >= X by (Meta) 93] x#(X, s(Y)) >= isNat#(Y) because [94], by (Star) 94] x#*(X, s(Y)) >= isNat#(Y) because x# = isNat#, x# in Mul and [95], by (Stat) 95] s(Y) > Y because [96], by definition 96] s*(Y) >= Y because [97], by (Select) 97] Y >= Y by (Meta) 98] n!6220!6220plus(X, Y) >= X because [99], by (Star) 99] n!6220!6220plus*(X, Y) >= X because [100], by (Select) 100] X >= X by (Meta) 101] n!6220!6220plus(X, Y) >= Y because [102], by (Star) 102] n!6220!6220plus*(X, Y) >= Y because [103], by (Select) 103] Y >= Y by (Meta) 104] n!6220!6220s(X) >= X because [105], by (Star) 105] n!6220!6220s*(X) >= X because [106], by (Select) 106] X >= X by (Meta) 107] n!6220!6220x(X, Y) >= x#(X, Y) because [108], by (Star) 108] n!6220!6220x*(X, Y) >= x#(X, Y) because n!6220!6220x > x#, [109] and [110], by (Copy) 109] n!6220!6220x*(X, Y) >= X because [100], by (Select) 110] n!6220!6220x*(X, Y) >= Y because [103], by (Select) 111] n!6220!6220x(X, Y) >= X because [109], by (Star) 112] n!6220!6220x(X, Y) >= Y because [110], by (Star) 113] U101(tt, X, Y) >= U102(isNatKind, X, Y) because U101 = U102, U101 in Mul, [114], [115] and [116], by (Fun) 114] tt >= isNatKind because tt = isNatKind, by (Fun) 115] X >= X by (Meta) 116] Y >= Y by (Meta) 117] U102(tt, X, Y) >= U103(isNat, X, Y) because U102 = U103, U102 in Mul, [118], [115] and [116], by (Fun) 118] tt >= isNat because tt = isNat, by (Fun) 119] U103(tt, X, Y) >= U104(isNatKind, X, Y) because U103 = U104, U103 in Mul, [120], [115] and [116], by (Fun) 120] tt >= isNatKind because tt = isNatKind, by (Fun) 121] U104(tt, X, Y) >= plus(x(Y, X), Y) because [122], by (Star) 122] U104*(tt, X, Y) >= plus(x(Y, X), Y) because U104 > plus, [123] and [124], by (Copy) 123] U104*(tt, X, Y) >= x(Y, X) because U104 = x, U104 in Mul, [115] and [116], by (Stat) 124] U104*(tt, X, Y) >= Y because [116], by (Select) 125] U11 >= isNatKind because U11 = isNatKind and U11 in Mul, by (Fun) 126] tt >= U13 because tt = U13, by (Fun) 127] U13 >= U14 because U13 = U14 and U13 in Mul, by (Fun) 128] U14 >= U15 because U14 = U15 and U14 in Mul, by (Fun) 129] U15 >= U16 because U15 = U16 and U15 in Mul, by (Fun) 130] U16 >= tt because U16 = tt, by (Fun) 131] tt >= isNatKind because tt = isNatKind, by (Fun) 132] tt >= U23 because tt = U23, by (Fun) 133] U23 >= tt because U23 = tt, by (Fun) 134] tt >= U32 because tt = U32, by (Fun) 135] U32 >= U33 because U32 = U33 and U32 in Mul, by (Fun) 136] U33 >= isNatKind because U33 = isNatKind and U33 in Mul, by (Fun) 137] tt >= isNat because tt = isNat, by (Fun) 138] tt >= isNat because tt = isNat, by (Fun) 139] tt >= tt by (Fun) 140] tt >= isNatKind because tt = isNatKind, by (Fun) 141] tt >= tt by (Fun) 142] tt >= tt by (Fun) 143] tt >= isNatKind because tt = isNatKind, by (Fun) 144] tt >= tt by (Fun) 145] U71(tt, X) >= U72(isNatKind, X) because U71 = U72, U71 in Mul, [120] and [116], by (Fun) 146] U72(tt, X) >= X because [147], by (Star) 147] U72*(tt, X) >= X because [116], by (Select) 148] U81(tt, X, Y) >= U82(isNatKind, X, Y) because U81 = U82, U81 in Mul, [114], [115] and [116], by (Fun) 149] U82(tt, X, Y) >= U83(isNat, X, Y) because U82 = U83, U82 in Mul, [118], [115] and [116], by (Fun) 150] U83(tt, X, Y) >= U84(isNatKind, X, Y) because U83 = U84, U83 in Mul, [120], [115] and [116], by (Fun) 151] U84(tt, X, Y) >= s(plus(Y, X)) because [152], by (Star) 152] U84*(tt, X, Y) >= s(plus(Y, X)) because U84 > s and [153], by (Copy) 153] U84*(tt, X, Y) >= plus(Y, X) because U84 = plus, U84 in Mul, [115] and [116], by (Stat) 154] U91(tt, X) >= _|_ by (Bot) 155] _|_ >= _|_ by (Bot) 156] isNat >= tt because isNat = tt, by (Fun) 157] isNat >= U11 because isNat = U11 and isNat in Mul, by (Fun) 158] isNat >= isNatKind because isNat = isNatKind and isNat in Mul, by (Fun) 159] isNat >= isNatKind because isNat = isNatKind and isNat in Mul, by (Fun) 160] isNatKind >= tt because isNatKind = tt, by (Fun) 161] isNatKind >= isNatKind because isNatKind in Mul, by (Fun) 162] isNatKind >= isNatKind because isNatKind in Mul, by (Fun) 163] isNatKind >= isNatKind because isNatKind in Mul, by (Fun) 164] plus(X, _|_) >= U71(isNat, X) because [165], by (Star) 165] plus*(X, _|_) >= U71(isNat, X) because plus > U71, [166] and [167], by (Copy) 166] plus*(X, _|_) >= isNat because plus > isNat, by (Copy) 167] plus*(X, _|_) >= X because [116], by (Select) 168] plus(X, s(Y)) >= U81(isNat, Y, X) because [169], by (Star) 169] plus*(X, s(Y)) >= U81(isNat, Y, X) because plus = U81, plus in Mul, [116], [170] and [95], by (Stat) 170] s(Y) > isNat because [171], by definition 171] s*(Y) >= isNat because s > isNat, by (Copy) 172] x(X, _|_) >= U91(isNat, X) because [173], by (Star) 173] x*(X, _|_) >= U91(isNat, X) because x > U91, [174] and [175], by (Copy) 174] x*(X, _|_) >= isNat because x > isNat, by (Copy) 175] x*(X, _|_) >= X because [116], by (Select) 176] x(X, s(Y)) >= U101(isNat, Y, X) because [177], by (Star) 177] x*(X, s(Y)) >= U101(isNat, Y, X) because x = U101, x in Mul, [116], [170] and [95], by (Stat) 178] _|_ >= _|_ by (Bot) 179] plus(X, Y) >= n!6220!6220plus(X, Y) because plus = n!6220!6220plus, plus in Mul, [180] and [181], by (Fun) 180] X >= X by (Meta) 181] Y >= Y by (Meta) 182] s(X) >= n!6220!6220s(X) because s = n!6220!6220s, s in Mul and [183], by (Fun) 183] X >= X by (Meta) 184] x(X, Y) >= n!6220!6220x(X, Y) because x = n!6220!6220x, x in Mul, [180] and [181], by (Fun) 185] _|_ >= _|_ by (Bot) 186] n!6220!6220plus(X, Y) >= plus(X, Y) because n!6220!6220plus = plus, n!6220!6220plus in Mul, [187] and [188], by (Fun) 187] X >= X by (Meta) 188] Y >= Y by (Meta) 189] n!6220!6220s(X) >= s(X) because n!6220!6220s = s, n!6220!6220s in Mul and [190], by (Fun) 190] X >= X by (Meta) 191] n!6220!6220x(X, Y) >= x(X, Y) because n!6220!6220x = x, n!6220!6220x in Mul, [187] and [188], by (Fun) 192] X >= X by (Meta) By the observations in [Kop12, Sec. 6.6], this reduction pair suffices; we may thus replace the dependency pair problem (P_12, R_0, minimal, formative) by (P_13, R_0, minimal, formative), where P_13 consists of: U21#(tt, X) =#> activate#(X) U21#(tt, X) =#> activate#(X) U31#(tt, X, Y) =#> U32#(isNatKind(activate(X)), activate(X), activate(Y)) U31#(tt, X, Y) =#> isNatKind#(activate(X)) U31#(tt, X, Y) =#> activate#(X) U31#(tt, X, Y) =#> activate#(X) U31#(tt, X, Y) =#> activate#(Y) U32#(tt, X, Y) =#> U33#(isNatKind(activate(Y)), activate(X), activate(Y)) U32#(tt, X, Y) =#> isNatKind#(activate(Y)) U32#(tt, X, Y) =#> activate#(Y) U32#(tt, X, Y) =#> activate#(X) U32#(tt, X, Y) =#> activate#(Y) U33#(tt, X, Y) =#> U34#(isNatKind(activate(Y)), activate(X), activate(Y)) U33#(tt, X, Y) =#> activate#(Y) U33#(tt, X, Y) =#> activate#(X) U33#(tt, X, Y) =#> activate#(Y) U34#(tt, X, Y) =#> U35#(isNat(activate(X)), activate(Y)) U34#(tt, X, Y) =#> activate#(X) U35#(tt, X) =#> isNat#(activate(X)) U61#(tt, X) =#> isNatKind#(activate(X)) isNat#(n!6220!6220plus(X, Y)) =#> activate#(X) isNat#(n!6220!6220plus(X, Y)) =#> activate#(X) isNat#(n!6220!6220plus(X, Y)) =#> activate#(Y) isNat#(n!6220!6220s(X)) =#> U21#(isNatKind(activate(X)), activate(X)) isNat#(n!6220!6220s(X)) =#> isNatKind#(activate(X)) isNat#(n!6220!6220s(X)) =#> activate#(X) isNat#(n!6220!6220s(X)) =#> activate#(X) isNat#(n!6220!6220x(X, Y)) =#> U31#(isNatKind(activate(X)), activate(X), activate(Y)) isNat#(n!6220!6220x(X, Y)) =#> isNatKind#(activate(X)) isNat#(n!6220!6220x(X, Y)) =#> activate#(Y) isNatKind#(n!6220!6220plus(X, Y)) =#> isNatKind#(activate(X)) isNatKind#(n!6220!6220plus(X, Y)) =#> activate#(X) isNatKind#(n!6220!6220plus(X, Y)) =#> activate#(Y) isNatKind#(n!6220!6220s(X)) =#> isNatKind#(activate(X)) isNatKind#(n!6220!6220s(X)) =#> activate#(X) isNatKind#(n!6220!6220x(X, Y)) =#> U61#(isNatKind(activate(X)), activate(Y)) isNatKind#(n!6220!6220x(X, Y)) =#> isNatKind#(activate(X)) isNatKind#(n!6220!6220x(X, Y)) =#> activate#(Y) x#(X, 0) =#> isNat#(X) x#(X, s(Y)) =#> isNat#(Y) activate#(n!6220!6220plus(X, Y)) =#> activate#(X) activate#(n!6220!6220plus(X, Y)) =#> activate#(Y) activate#(n!6220!6220s(X)) =#> activate#(X) activate#(n!6220!6220x(X, Y)) =#> x#(activate(X), activate(Y)) activate#(n!6220!6220x(X, Y)) =#> activate#(X) activate#(n!6220!6220x(X, Y)) =#> activate#(Y) Thus, the original system is terminating if (P_13, R_0, minimal, formative) is finite. We consider the dependency pair problem (P_13, R_0, minimal, formative). We will use the reduction pair processor [Kop12, Thm. 7.16]. It suffices to find a standard reduction pair [Kop12, Def. 6.69]. Thus, we must orient: U21#(tt, X) >? activate#(X) U21#(tt, X) >? activate#(X) U31#(tt, X, Y) >? U32#(isNatKind(activate(X)), activate(X), activate(Y)) U31#(tt, X, Y) >? isNatKind#(activate(X)) U31#(tt, X, Y) >? activate#(X) U31#(tt, X, Y) >? activate#(X) U31#(tt, X, Y) >? activate#(Y) U32#(tt, X, Y) >? U33#(isNatKind(activate(Y)), activate(X), activate(Y)) U32#(tt, X, Y) >? isNatKind#(activate(Y)) U32#(tt, X, Y) >? activate#(Y) U32#(tt, X, Y) >? activate#(X) U32#(tt, X, Y) >? activate#(Y) U33#(tt, X, Y) >? U34#(isNatKind(activate(Y)), activate(X), activate(Y)) U33#(tt, X, Y) >? activate#(Y) U33#(tt, X, Y) >? activate#(X) U33#(tt, X, Y) >? activate#(Y) U34#(tt, X, Y) >? U35#(isNat(activate(X)), activate(Y)) U34#(tt, X, Y) >? activate#(X) U35#(tt, X) >? isNat#(activate(X)) U61#(tt, X) >? isNatKind#(activate(X)) isNat#(n!6220!6220plus(X, Y)) >? activate#(X) isNat#(n!6220!6220plus(X, Y)) >? activate#(X) isNat#(n!6220!6220plus(X, Y)) >? activate#(Y) isNat#(n!6220!6220s(X)) >? U21#(isNatKind(activate(X)), activate(X)) isNat#(n!6220!6220s(X)) >? isNatKind#(activate(X)) isNat#(n!6220!6220s(X)) >? activate#(X) isNat#(n!6220!6220s(X)) >? activate#(X) isNat#(n!6220!6220x(X, Y)) >? U31#(isNatKind(activate(X)), activate(X), activate(Y)) isNat#(n!6220!6220x(X, Y)) >? isNatKind#(activate(X)) isNat#(n!6220!6220x(X, Y)) >? activate#(Y) isNatKind#(n!6220!6220plus(X, Y)) >? isNatKind#(activate(X)) isNatKind#(n!6220!6220plus(X, Y)) >? activate#(X) isNatKind#(n!6220!6220plus(X, Y)) >? activate#(Y) isNatKind#(n!6220!6220s(X)) >? isNatKind#(activate(X)) isNatKind#(n!6220!6220s(X)) >? activate#(X) isNatKind#(n!6220!6220x(X, Y)) >? U61#(isNatKind(activate(X)), activate(Y)) isNatKind#(n!6220!6220x(X, Y)) >? isNatKind#(activate(X)) isNatKind#(n!6220!6220x(X, Y)) >? activate#(Y) x#(X, 0) >? isNat#(X) x#(X, s(Y)) >? isNat#(Y) activate#(n!6220!6220plus(X, Y)) >? activate#(X) activate#(n!6220!6220plus(X, Y)) >? activate#(Y) activate#(n!6220!6220s(X)) >? activate#(X) activate#(n!6220!6220x(X, Y)) >? x#(activate(X), activate(Y)) activate#(n!6220!6220x(X, Y)) >? activate#(X) activate#(n!6220!6220x(X, Y)) >? activate#(Y) U101(tt, X, Y) >= U102(isNatKind(activate(X)), activate(X), activate(Y)) U102(tt, X, Y) >= U103(isNat(activate(Y)), activate(X), activate(Y)) U103(tt, X, Y) >= U104(isNatKind(activate(Y)), activate(X), activate(Y)) U104(tt, X, Y) >= plus(x(activate(Y), activate(X)), activate(Y)) U11(tt, X, Y) >= U12(isNatKind(activate(X)), activate(X), activate(Y)) U12(tt, X, Y) >= U13(isNatKind(activate(Y)), activate(X), activate(Y)) U13(tt, X, Y) >= U14(isNatKind(activate(Y)), activate(X), activate(Y)) U14(tt, X, Y) >= U15(isNat(activate(X)), activate(Y)) U15(tt, X) >= U16(isNat(activate(X))) U16(tt) >= tt U21(tt, X) >= U22(isNatKind(activate(X)), activate(X)) U22(tt, X) >= U23(isNat(activate(X))) U23(tt) >= tt U31(tt, X, Y) >= U32(isNatKind(activate(X)), activate(X), activate(Y)) U32(tt, X, Y) >= U33(isNatKind(activate(Y)), activate(X), activate(Y)) U33(tt, X, Y) >= U34(isNatKind(activate(Y)), activate(X), activate(Y)) U34(tt, X, Y) >= U35(isNat(activate(X)), activate(Y)) U35(tt, X) >= U36(isNat(activate(X))) U36(tt) >= tt U41(tt, X) >= U42(isNatKind(activate(X))) U42(tt) >= tt U51(tt) >= tt U61(tt, X) >= U62(isNatKind(activate(X))) U62(tt) >= tt U71(tt, X) >= U72(isNatKind(activate(X)), activate(X)) U72(tt, X) >= activate(X) U81(tt, X, Y) >= U82(isNatKind(activate(X)), activate(X), activate(Y)) U82(tt, X, Y) >= U83(isNat(activate(Y)), activate(X), activate(Y)) U83(tt, X, Y) >= U84(isNatKind(activate(Y)), activate(X), activate(Y)) U84(tt, X, Y) >= s(plus(activate(Y), activate(X))) U91(tt, X) >= U92(isNatKind(activate(X))) U92(tt) >= 0 isNat(n!6220!62200) >= tt isNat(n!6220!6220plus(X, Y)) >= U11(isNatKind(activate(X)), activate(X), activate(Y)) isNat(n!6220!6220s(X)) >= U21(isNatKind(activate(X)), activate(X)) isNat(n!6220!6220x(X, Y)) >= U31(isNatKind(activate(X)), activate(X), activate(Y)) isNatKind(n!6220!62200) >= tt isNatKind(n!6220!6220plus(X, Y)) >= U41(isNatKind(activate(X)), activate(Y)) isNatKind(n!6220!6220s(X)) >= U51(isNatKind(activate(X))) isNatKind(n!6220!6220x(X, Y)) >= U61(isNatKind(activate(X)), activate(Y)) plus(X, 0) >= U71(isNat(X), X) plus(X, s(Y)) >= U81(isNat(Y), Y, X) x(X, 0) >= U91(isNat(X), X) x(X, s(Y)) >= U101(isNat(Y), Y, X) 0 >= n!6220!62200 plus(X, Y) >= n!6220!6220plus(X, Y) s(X) >= n!6220!6220s(X) x(X, Y) >= n!6220!6220x(X, Y) activate(n!6220!62200) >= 0 activate(n!6220!6220plus(X, Y)) >= plus(activate(X), activate(Y)) activate(n!6220!6220s(X)) >= s(activate(X)) activate(n!6220!6220x(X, Y)) >= x(activate(X), activate(Y)) activate(X) >= X Since this representation is not advantageous for the higher-order recursive path ordering, we present the strict requirements in their unextended form, which is not problematic since for any F, s and substituion gamma: (F s)gamma beta-reduces to F(s)gamma.) We use a recursive path ordering as defined in [Kop12, Chapter 5]. Argument functions: [[0]] = _|_ [[U11(x_1, x_2, x_3)]] = _|_ [[U12(x_1, x_2, x_3)]] = x_1 [[U13(x_1, x_2, x_3)]] = _|_ [[U14(x_1, x_2, x_3)]] = _|_ [[U15(x_1, x_2)]] = _|_ [[U16(x_1)]] = x_1 [[U21(x_1, x_2)]] = x_1 [[U21#(x_1, x_2)]] = U21#(x_2) [[U22(x_1, x_2)]] = x_1 [[U23(x_1)]] = _|_ [[U31(x_1, x_2, x_3)]] = x_1 [[U32(x_1, x_2, x_3)]] = _|_ [[U33(x_1, x_2, x_3)]] = _|_ [[U34(x_1, x_2, x_3)]] = _|_ [[U35(x_1, x_2)]] = _|_ [[U36(x_1)]] = x_1 [[U41(x_1, x_2)]] = _|_ [[U42(x_1)]] = x_1 [[U51(x_1)]] = x_1 [[U61(x_1, x_2)]] = _|_ [[U62(x_1)]] = x_1 [[U71(x_1, x_2)]] = x_2 [[U72(x_1, x_2)]] = x_2 [[U91(x_1, x_2)]] = x_1 [[U92(x_1)]] = x_1 [[activate(x_1)]] = x_1 [[isNat(x_1)]] = _|_ [[isNatKind(x_1)]] = _|_ [[n!6220!62200]] = _|_ [[tt]] = _|_ We choose Lex = {} and Mul = {U101, U102, U103, U104, U21#, U31#, U32#, U33#, U34#, U35#, U61#, U81, U82, U83, U84, activate#, isNatKind#, isNat#, n!6220!6220plus, n!6220!6220s, n!6220!6220x, plus, s, x, x#}, and the following precedence: U101 = U102 = U103 = U104 = n!6220!6220x = x > U81 = U82 = U83 = U84 = n!6220!6220plus = plus > U31# = U32# > U33# > U34# > U35# > U21# = activate# = n!6220!6220s = s = x# > isNat# > U61# = isNatKind# Taking the argument function into account, and fixing the greater / greater equal choices, the constraints can be denoted as follows: U21#(X) >= activate#(X) U21#(X) >= activate#(X) U31#(_|_, X, Y) >= U32#(_|_, X, Y) U31#(_|_, X, Y) >= isNatKind#(X) U31#(_|_, X, Y) >= activate#(X) U31#(_|_, X, Y) >= activate#(X) U31#(_|_, X, Y) >= activate#(Y) U32#(_|_, X, Y) >= U33#(_|_, X, Y) U32#(_|_, X, Y) >= isNatKind#(Y) U32#(_|_, X, Y) >= activate#(Y) U32#(_|_, X, Y) >= activate#(X) U32#(_|_, X, Y) >= activate#(Y) U33#(_|_, X, Y) >= U34#(_|_, X, Y) U33#(_|_, X, Y) >= activate#(Y) U33#(_|_, X, Y) >= activate#(X) U33#(_|_, X, Y) >= activate#(Y) U34#(_|_, X, Y) >= U35#(_|_, Y) U34#(_|_, X, Y) >= activate#(X) U35#(_|_, X) > isNat#(X) U61#(_|_, X) >= isNatKind#(X) isNat#(n!6220!6220plus(X, Y)) >= activate#(X) isNat#(n!6220!6220plus(X, Y)) >= activate#(X) isNat#(n!6220!6220plus(X, Y)) >= activate#(Y) isNat#(n!6220!6220s(X)) >= U21#(X) isNat#(n!6220!6220s(X)) >= isNatKind#(X) isNat#(n!6220!6220s(X)) >= activate#(X) isNat#(n!6220!6220s(X)) >= activate#(X) isNat#(n!6220!6220x(X, Y)) >= U31#(_|_, X, Y) isNat#(n!6220!6220x(X, Y)) >= isNatKind#(X) isNat#(n!6220!6220x(X, Y)) >= activate#(Y) isNatKind#(n!6220!6220plus(X, Y)) >= isNatKind#(X) isNatKind#(n!6220!6220plus(X, Y)) >= activate#(X) isNatKind#(n!6220!6220plus(X, Y)) >= activate#(Y) isNatKind#(n!6220!6220s(X)) >= isNatKind#(X) isNatKind#(n!6220!6220s(X)) >= activate#(X) isNatKind#(n!6220!6220x(X, Y)) >= U61#(_|_, Y) isNatKind#(n!6220!6220x(X, Y)) >= isNatKind#(X) isNatKind#(n!6220!6220x(X, Y)) >= activate#(Y) x#(X, _|_) >= isNat#(X) x#(X, s(Y)) >= isNat#(Y) activate#(n!6220!6220plus(X, Y)) >= activate#(X) activate#(n!6220!6220plus(X, Y)) >= activate#(Y) activate#(n!6220!6220s(X)) >= activate#(X) activate#(n!6220!6220x(X, Y)) >= x#(X, Y) activate#(n!6220!6220x(X, Y)) >= activate#(X) activate#(n!6220!6220x(X, Y)) >= activate#(Y) U101(_|_, X, Y) >= U102(_|_, X, Y) U102(_|_, X, Y) >= U103(_|_, X, Y) U103(_|_, X, Y) >= U104(_|_, X, Y) U104(_|_, X, Y) >= plus(x(Y, X), Y) _|_ >= _|_ _|_ >= _|_ _|_ >= _|_ _|_ >= _|_ _|_ >= _|_ _|_ >= _|_ _|_ >= _|_ _|_ >= _|_ _|_ >= _|_ _|_ >= _|_ _|_ >= _|_ _|_ >= _|_ _|_ >= _|_ _|_ >= _|_ _|_ >= _|_ _|_ >= _|_ _|_ >= _|_ _|_ >= _|_ _|_ >= _|_ _|_ >= _|_ X >= X X >= X U81(_|_, X, Y) >= U82(_|_, X, Y) U82(_|_, X, Y) >= U83(_|_, X, Y) U83(_|_, X, Y) >= U84(_|_, X, Y) U84(_|_, X, Y) >= s(plus(Y, X)) _|_ >= _|_ _|_ >= _|_ _|_ >= _|_ _|_ >= _|_ _|_ >= _|_ _|_ >= _|_ _|_ >= _|_ _|_ >= _|_ _|_ >= _|_ _|_ >= _|_ plus(X, _|_) >= X plus(X, s(Y)) >= U81(_|_, Y, X) x(X, _|_) >= _|_ x(X, s(Y)) >= U101(_|_, Y, X) _|_ >= _|_ plus(X, Y) >= n!6220!6220plus(X, Y) s(X) >= n!6220!6220s(X) x(X, Y) >= n!6220!6220x(X, Y) _|_ >= _|_ n!6220!6220plus(X, Y) >= plus(X, Y) n!6220!6220s(X) >= s(X) n!6220!6220x(X, Y) >= x(X, Y) X >= X With these choices, we have: 1] U21#(X) >= activate#(X) because U21# = activate#, U21# in Mul and [2], by (Fun) 2] X >= X by (Meta) 3] U21#(X) >= activate#(X) because U21# = activate#, U21# in Mul and [2], by (Fun) 4] U31#(_|_, X, Y) >= U32#(_|_, X, Y) because U31# = U32#, U31# in Mul, [5], [6] and [7], by (Fun) 5] _|_ >= _|_ by (Bot) 6] X >= X by (Meta) 7] Y >= Y by (Meta) 8] U31#(_|_, X, Y) >= isNatKind#(X) because [9], by (Star) 9] U31#*(_|_, X, Y) >= isNatKind#(X) because U31# > isNatKind# and [10], by (Copy) 10] U31#*(_|_, X, Y) >= X because [6], by (Select) 11] U31#(_|_, X, Y) >= activate#(X) because [12], by (Star) 12] U31#*(_|_, X, Y) >= activate#(X) because U31# > activate# and [10], by (Copy) 13] U31#(_|_, X, Y) >= activate#(X) because [12], by (Star) 14] U31#(_|_, X, Y) >= activate#(Y) because [15], by (Star) 15] U31#*(_|_, X, Y) >= activate#(Y) because U31# > activate# and [16], by (Copy) 16] U31#*(_|_, X, Y) >= Y because [7], by (Select) 17] U32#(_|_, X, Y) >= U33#(_|_, X, Y) because [18], by (Star) 18] U32#*(_|_, X, Y) >= U33#(_|_, X, Y) because U32# > U33#, [19], [20] and [21], by (Copy) 19] U32#*(_|_, X, Y) >= _|_ by (Bot) 20] U32#*(_|_, X, Y) >= X because [6], by (Select) 21] U32#*(_|_, X, Y) >= Y because [7], by (Select) 22] U32#(_|_, X, Y) >= isNatKind#(Y) because [23], by (Star) 23] U32#*(_|_, X, Y) >= isNatKind#(Y) because U32# > isNatKind# and [21], by (Copy) 24] U32#(_|_, X, Y) >= activate#(Y) because [25], by (Star) 25] U32#*(_|_, X, Y) >= activate#(Y) because U32# > activate# and [21], by (Copy) 26] U32#(_|_, X, Y) >= activate#(X) because [27], by (Star) 27] U32#*(_|_, X, Y) >= activate#(X) because U32# > activate# and [20], by (Copy) 28] U32#(_|_, X, Y) >= activate#(Y) because [25], by (Star) 29] U33#(_|_, X, Y) >= U34#(_|_, X, Y) because [30], by (Star) 30] U33#*(_|_, X, Y) >= U34#(_|_, X, Y) because U33# > U34#, [31], [32] and [33], by (Copy) 31] U33#*(_|_, X, Y) >= _|_ by (Bot) 32] U33#*(_|_, X, Y) >= X because [6], by (Select) 33] U33#*(_|_, X, Y) >= Y because [7], by (Select) 34] U33#(_|_, X, Y) >= activate#(Y) because [35], by (Star) 35] U33#*(_|_, X, Y) >= activate#(Y) because U33# > activate# and [33], by (Copy) 36] U33#(_|_, X, Y) >= activate#(X) because [37], by (Star) 37] U33#*(_|_, X, Y) >= activate#(X) because U33# > activate# and [32], by (Copy) 38] U33#(_|_, X, Y) >= activate#(Y) because [35], by (Star) 39] U34#(_|_, X, Y) >= U35#(_|_, Y) because [40], by (Star) 40] U34#*(_|_, X, Y) >= U35#(_|_, Y) because U34# > U35#, [41] and [42], by (Copy) 41] U34#*(_|_, X, Y) >= _|_ by (Bot) 42] U34#*(_|_, X, Y) >= Y because [7], by (Select) 43] U34#(_|_, X, Y) >= activate#(X) because [44], by (Star) 44] U34#*(_|_, X, Y) >= activate#(X) because U34# > activate# and [45], by (Copy) 45] U34#*(_|_, X, Y) >= X because [6], by (Select) 46] U35#(_|_, X) > isNat#(X) because [47], by definition 47] U35#*(_|_, X) >= isNat#(X) because U35# > isNat# and [48], by (Copy) 48] U35#*(_|_, X) >= X because [7], by (Select) 49] U61#(_|_, X) >= isNatKind#(X) because [50], by (Star) 50] U61#*(_|_, X) >= isNatKind#(X) because U61# = isNatKind#, U61# in Mul and [7], by (Stat) 51] isNat#(n!6220!6220plus(X, Y)) >= activate#(X) because [52], by (Star) 52] isNat#*(n!6220!6220plus(X, Y)) >= activate#(X) because [53], by (Select) 53] n!6220!6220plus(X, Y) >= activate#(X) because [54], by (Star) 54] n!6220!6220plus*(X, Y) >= activate#(X) because n!6220!6220plus > activate# and [55], by (Copy) 55] n!6220!6220plus*(X, Y) >= X because [6], by (Select) 56] isNat#(n!6220!6220plus(X, Y)) >= activate#(X) because [52], by (Star) 57] isNat#(n!6220!6220plus(X, Y)) >= activate#(Y) because [58], by (Star) 58] isNat#*(n!6220!6220plus(X, Y)) >= activate#(Y) because [59], by (Select) 59] n!6220!6220plus(X, Y) >= activate#(Y) because [60], by (Star) 60] n!6220!6220plus*(X, Y) >= activate#(Y) because n!6220!6220plus > activate# and [61], by (Copy) 61] n!6220!6220plus*(X, Y) >= Y because [7], by (Select) 62] isNat#(n!6220!6220s(X)) >= U21#(X) because [63], by (Star) 63] isNat#*(n!6220!6220s(X)) >= U21#(X) because [64], by (Select) 64] n!6220!6220s(X) >= U21#(X) because n!6220!6220s = U21#, n!6220!6220s in Mul and [6], by (Fun) 65] isNat#(n!6220!6220s(X)) >= isNatKind#(X) because [66], by (Star) 66] isNat#*(n!6220!6220s(X)) >= isNatKind#(X) because isNat# > isNatKind# and [67], by (Copy) 67] isNat#*(n!6220!6220s(X)) >= X because [68], by (Select) 68] n!6220!6220s(X) >= X because [69], by (Star) 69] n!6220!6220s*(X) >= X because [6], by (Select) 70] isNat#(n!6220!6220s(X)) >= activate#(X) because [71], by (Star) 71] isNat#*(n!6220!6220s(X)) >= activate#(X) because [72], by (Select) 72] n!6220!6220s(X) >= activate#(X) because n!6220!6220s = activate#, n!6220!6220s in Mul and [6], by (Fun) 73] isNat#(n!6220!6220s(X)) >= activate#(X) because [71], by (Star) 74] isNat#(n!6220!6220x(X, Y)) >= U31#(_|_, X, Y) because [75], by (Star) 75] isNat#*(n!6220!6220x(X, Y)) >= U31#(_|_, X, Y) because [76], by (Select) 76] n!6220!6220x(X, Y) >= U31#(_|_, X, Y) because [77], by (Star) 77] n!6220!6220x*(X, Y) >= U31#(_|_, X, Y) because n!6220!6220x > U31#, [78], [79] and [80], by (Copy) 78] n!6220!6220x*(X, Y) >= _|_ by (Bot) 79] n!6220!6220x*(X, Y) >= X because [6], by (Select) 80] n!6220!6220x*(X, Y) >= Y because [7], by (Select) 81] isNat#(n!6220!6220x(X, Y)) >= isNatKind#(X) because [82], by (Star) 82] isNat#*(n!6220!6220x(X, Y)) >= isNatKind#(X) because [83], by (Select) 83] n!6220!6220x(X, Y) >= isNatKind#(X) because [84], by (Star) 84] n!6220!6220x*(X, Y) >= isNatKind#(X) because n!6220!6220x > isNatKind# and [79], by (Copy) 85] isNat#(n!6220!6220x(X, Y)) >= activate#(Y) because [86], by (Star) 86] isNat#*(n!6220!6220x(X, Y)) >= activate#(Y) because [87], by (Select) 87] n!6220!6220x(X, Y) >= activate#(Y) because [88], by (Star) 88] n!6220!6220x*(X, Y) >= activate#(Y) because n!6220!6220x > activate# and [80], by (Copy) 89] isNatKind#(n!6220!6220plus(X, Y)) >= isNatKind#(X) because [90], by (Star) 90] isNatKind#*(n!6220!6220plus(X, Y)) >= isNatKind#(X) because isNatKind# in Mul and [91], by (Stat) 91] n!6220!6220plus(X, Y) > X because [92], by definition 92] n!6220!6220plus*(X, Y) >= X because [6], by (Select) 93] isNatKind#(n!6220!6220plus(X, Y)) >= activate#(X) because [94], by (Star) 94] isNatKind#*(n!6220!6220plus(X, Y)) >= activate#(X) because [53], by (Select) 95] isNatKind#(n!6220!6220plus(X, Y)) >= activate#(Y) because [96], by (Star) 96] isNatKind#*(n!6220!6220plus(X, Y)) >= activate#(Y) because [59], by (Select) 97] isNatKind#(n!6220!6220s(X)) >= isNatKind#(X) because isNatKind# in Mul and [98], by (Fun) 98] n!6220!6220s(X) >= X because [69], by (Star) 99] isNatKind#(n!6220!6220s(X)) >= activate#(X) because [100], by (Star) 100] isNatKind#*(n!6220!6220s(X)) >= activate#(X) because [72], by (Select) 101] isNatKind#(n!6220!6220x(X, Y)) >= U61#(_|_, Y) because [102], by (Star) 102] isNatKind#*(n!6220!6220x(X, Y)) >= U61#(_|_, Y) because [103], by (Select) 103] n!6220!6220x(X, Y) >= U61#(_|_, Y) because [104], by (Star) 104] n!6220!6220x*(X, Y) >= U61#(_|_, Y) because n!6220!6220x > U61#, [78] and [80], by (Copy) 105] isNatKind#(n!6220!6220x(X, Y)) >= isNatKind#(X) because isNatKind# in Mul and [106], by (Fun) 106] n!6220!6220x(X, Y) >= X because [79], by (Star) 107] isNatKind#(n!6220!6220x(X, Y)) >= activate#(Y) because [108], by (Star) 108] isNatKind#*(n!6220!6220x(X, Y)) >= activate#(Y) because [87], by (Select) 109] x#(X, _|_) >= isNat#(X) because [110], by (Star) 110] x#*(X, _|_) >= isNat#(X) because x# > isNat# and [111], by (Copy) 111] x#*(X, _|_) >= X because [112], by (Select) 112] X >= X by (Meta) 113] x#(X, s(Y)) >= isNat#(Y) because [114], by (Star) 114] x#*(X, s(Y)) >= isNat#(Y) because x# > isNat# and [115], by (Copy) 115] x#*(X, s(Y)) >= Y because [116], by (Select) 116] s(Y) >= Y because [117], by (Star) 117] s*(Y) >= Y because [118], by (Select) 118] Y >= Y by (Meta) 119] activate#(n!6220!6220plus(X, Y)) >= activate#(X) because activate# in Mul and [120], by (Fun) 120] n!6220!6220plus(X, Y) >= X because [121], by (Star) 121] n!6220!6220plus*(X, Y) >= X because [122], by (Select) 122] X >= X by (Meta) 123] activate#(n!6220!6220plus(X, Y)) >= activate#(Y) because activate# in Mul and [124], by (Fun) 124] n!6220!6220plus(X, Y) >= Y because [125], by (Star) 125] n!6220!6220plus*(X, Y) >= Y because [126], by (Select) 126] Y >= Y by (Meta) 127] activate#(n!6220!6220s(X)) >= activate#(X) because activate# in Mul and [128], by (Fun) 128] n!6220!6220s(X) >= X because [129], by (Star) 129] n!6220!6220s*(X) >= X because [130], by (Select) 130] X >= X by (Meta) 131] activate#(n!6220!6220x(X, Y)) >= x#(X, Y) because [132], by (Star) 132] activate#*(n!6220!6220x(X, Y)) >= x#(X, Y) because activate# = x#, activate# in Mul, [133] and [135], by (Stat) 133] n!6220!6220x(X, Y) > X because [134], by definition 134] n!6220!6220x*(X, Y) >= X because [122], by (Select) 135] n!6220!6220x(X, Y) > Y because [136], by definition 136] n!6220!6220x*(X, Y) >= Y because [126], by (Select) 137] activate#(n!6220!6220x(X, Y)) >= activate#(X) because activate# in Mul and [138], by (Fun) 138] n!6220!6220x(X, Y) >= X because [134], by (Star) 139] activate#(n!6220!6220x(X, Y)) >= activate#(Y) because activate# in Mul and [140], by (Fun) 140] n!6220!6220x(X, Y) >= Y because [136], by (Star) 141] U101(_|_, X, Y) >= U102(_|_, X, Y) because U101 = U102, U101 in Mul, [142], [143] and [144], by (Fun) 142] _|_ >= _|_ by (Bot) 143] X >= X by (Meta) 144] Y >= Y by (Meta) 145] U102(_|_, X, Y) >= U103(_|_, X, Y) because U102 = U103, U102 in Mul, [146], [143] and [144], by (Fun) 146] _|_ >= _|_ by (Bot) 147] U103(_|_, X, Y) >= U104(_|_, X, Y) because U103 = U104, U103 in Mul, [148], [143] and [144], by (Fun) 148] _|_ >= _|_ by (Bot) 149] U104(_|_, X, Y) >= plus(x(Y, X), Y) because [150], by (Star) 150] U104*(_|_, X, Y) >= plus(x(Y, X), Y) because U104 > plus, [151] and [152], by (Copy) 151] U104*(_|_, X, Y) >= x(Y, X) because U104 = x, U104 in Mul, [143] and [144], by (Stat) 152] U104*(_|_, X, Y) >= Y because [144], by (Select) 153] _|_ >= _|_ by (Bot) 154] _|_ >= _|_ by (Bot) 155] _|_ >= _|_ by (Bot) 156] _|_ >= _|_ by (Bot) 157] _|_ >= _|_ by (Bot) 158] _|_ >= _|_ by (Bot) 159] _|_ >= _|_ by (Bot) 160] _|_ >= _|_ by (Bot) 161] _|_ >= _|_ by (Bot) 162] _|_ >= _|_ by (Bot) 163] _|_ >= _|_ by (Bot) 164] _|_ >= _|_ by (Bot) 165] _|_ >= _|_ by (Bot) 166] _|_ >= _|_ by (Bot) 167] _|_ >= _|_ by (Bot) 168] _|_ >= _|_ by (Bot) 169] _|_ >= _|_ by (Bot) 170] _|_ >= _|_ by (Bot) 171] _|_ >= _|_ by (Bot) 172] _|_ >= _|_ by (Bot) 173] X >= X by (Meta) 174] X >= X by (Meta) 175] U81(_|_, X, Y) >= U82(_|_, X, Y) because U81 = U82, U81 in Mul, [142], [143] and [144], by (Fun) 176] U82(_|_, X, Y) >= U83(_|_, X, Y) because U82 = U83, U82 in Mul, [146], [143] and [144], by (Fun) 177] U83(_|_, X, Y) >= U84(_|_, X, Y) because U83 = U84, U83 in Mul, [148], [143] and [144], by (Fun) 178] U84(_|_, X, Y) >= s(plus(Y, X)) because [179], by (Star) 179] U84*(_|_, X, Y) >= s(plus(Y, X)) because U84 > s and [180], by (Copy) 180] U84*(_|_, X, Y) >= plus(Y, X) because U84 = plus, U84 in Mul, [143] and [144], by (Stat) 181] _|_ >= _|_ by (Bot) 182] _|_ >= _|_ by (Bot) 183] _|_ >= _|_ by (Bot) 184] _|_ >= _|_ by (Bot) 185] _|_ >= _|_ by (Bot) 186] _|_ >= _|_ by (Bot) 187] _|_ >= _|_ by (Bot) 188] _|_ >= _|_ by (Bot) 189] _|_ >= _|_ by (Bot) 190] _|_ >= _|_ by (Bot) 191] plus(X, _|_) >= X because [192], by (Star) 192] plus*(X, _|_) >= X because [174], by (Select) 193] plus(X, s(Y)) >= U81(_|_, Y, X) because [194], by (Star) 194] plus*(X, s(Y)) >= U81(_|_, Y, X) because plus = U81, plus in Mul, [144], [195] and [197], by (Stat) 195] s(Y) > _|_ because [196], by definition 196] s*(Y) >= _|_ by (Bot) 197] s(Y) > Y because [198], by definition 198] s*(Y) >= Y because [143], by (Select) 199] x(X, _|_) >= _|_ by (Bot) 200] x(X, s(Y)) >= U101(_|_, Y, X) because [201], by (Star) 201] x*(X, s(Y)) >= U101(_|_, Y, X) because x = U101, x in Mul, [144], [195] and [197], by (Stat) 202] _|_ >= _|_ by (Bot) 203] plus(X, Y) >= n!6220!6220plus(X, Y) because plus = n!6220!6220plus, plus in Mul, [204] and [205], by (Fun) 204] X >= X by (Meta) 205] Y >= Y by (Meta) 206] s(X) >= n!6220!6220s(X) because s = n!6220!6220s, s in Mul and [207], by (Fun) 207] X >= X by (Meta) 208] x(X, Y) >= n!6220!6220x(X, Y) because x = n!6220!6220x, x in Mul, [204] and [205], by (Fun) 209] _|_ >= _|_ by (Bot) 210] n!6220!6220plus(X, Y) >= plus(X, Y) because n!6220!6220plus = plus, n!6220!6220plus in Mul, [211] and [212], by (Fun) 211] X >= X by (Meta) 212] Y >= Y by (Meta) 213] n!6220!6220s(X) >= s(X) because n!6220!6220s = s, n!6220!6220s in Mul and [214], by (Fun) 214] X >= X by (Meta) 215] n!6220!6220x(X, Y) >= x(X, Y) because n!6220!6220x = x, n!6220!6220x in Mul, [211] and [212], by (Fun) 216] X >= X by (Meta) By the observations in [Kop12, Sec. 6.6], this reduction pair suffices; we may thus replace the dependency pair problem (P_13, R_0, minimal, formative) by (P_14, R_0, minimal, formative), where P_14 consists of: U21#(tt, X) =#> activate#(X) U21#(tt, X) =#> activate#(X) U31#(tt, X, Y) =#> U32#(isNatKind(activate(X)), activate(X), activate(Y)) U31#(tt, X, Y) =#> isNatKind#(activate(X)) U31#(tt, X, Y) =#> activate#(X) U31#(tt, X, Y) =#> activate#(X) U31#(tt, X, Y) =#> activate#(Y) U32#(tt, X, Y) =#> U33#(isNatKind(activate(Y)), activate(X), activate(Y)) U32#(tt, X, Y) =#> isNatKind#(activate(Y)) U32#(tt, X, Y) =#> activate#(Y) U32#(tt, X, Y) =#> activate#(X) U32#(tt, X, Y) =#> activate#(Y) U33#(tt, X, Y) =#> U34#(isNatKind(activate(Y)), activate(X), activate(Y)) U33#(tt, X, Y) =#> activate#(Y) U33#(tt, X, Y) =#> activate#(X) U33#(tt, X, Y) =#> activate#(Y) U34#(tt, X, Y) =#> U35#(isNat(activate(X)), activate(Y)) U34#(tt, X, Y) =#> activate#(X) U61#(tt, X) =#> isNatKind#(activate(X)) isNat#(n!6220!6220plus(X, Y)) =#> activate#(X) isNat#(n!6220!6220plus(X, Y)) =#> activate#(X) isNat#(n!6220!6220plus(X, Y)) =#> activate#(Y) isNat#(n!6220!6220s(X)) =#> U21#(isNatKind(activate(X)), activate(X)) isNat#(n!6220!6220s(X)) =#> isNatKind#(activate(X)) isNat#(n!6220!6220s(X)) =#> activate#(X) isNat#(n!6220!6220s(X)) =#> activate#(X) isNat#(n!6220!6220x(X, Y)) =#> U31#(isNatKind(activate(X)), activate(X), activate(Y)) isNat#(n!6220!6220x(X, Y)) =#> isNatKind#(activate(X)) isNat#(n!6220!6220x(X, Y)) =#> activate#(Y) isNatKind#(n!6220!6220plus(X, Y)) =#> isNatKind#(activate(X)) isNatKind#(n!6220!6220plus(X, Y)) =#> activate#(X) isNatKind#(n!6220!6220plus(X, Y)) =#> activate#(Y) isNatKind#(n!6220!6220s(X)) =#> isNatKind#(activate(X)) isNatKind#(n!6220!6220s(X)) =#> activate#(X) isNatKind#(n!6220!6220x(X, Y)) =#> U61#(isNatKind(activate(X)), activate(Y)) isNatKind#(n!6220!6220x(X, Y)) =#> isNatKind#(activate(X)) isNatKind#(n!6220!6220x(X, Y)) =#> activate#(Y) x#(X, 0) =#> isNat#(X) x#(X, s(Y)) =#> isNat#(Y) activate#(n!6220!6220plus(X, Y)) =#> activate#(X) activate#(n!6220!6220plus(X, Y)) =#> activate#(Y) activate#(n!6220!6220s(X)) =#> activate#(X) activate#(n!6220!6220x(X, Y)) =#> x#(activate(X), activate(Y)) activate#(n!6220!6220x(X, Y)) =#> activate#(X) activate#(n!6220!6220x(X, Y)) =#> activate#(Y) Thus, the original system is terminating if (P_14, R_0, minimal, formative) is finite. We consider the dependency pair problem (P_14, R_0, minimal, formative). We place the elements of P in a dependency graph approximation G (see e.g. [Kop12, Thm. 7.27, 7.29], as follows: * 0 : 39, 40, 41, 42, 43, 44 * 1 : 39, 40, 41, 42, 43, 44 * 2 : 7, 8, 9, 10, 11 * 3 : 29, 30, 31, 32, 33, 34, 35, 36 * 4 : 39, 40, 41, 42, 43, 44 * 5 : 39, 40, 41, 42, 43, 44 * 6 : 39, 40, 41, 42, 43, 44 * 7 : 12, 13, 14, 15 * 8 : 29, 30, 31, 32, 33, 34, 35, 36 * 9 : 39, 40, 41, 42, 43, 44 * 10 : 39, 40, 41, 42, 43, 44 * 11 : 39, 40, 41, 42, 43, 44 * 12 : 16, 17 * 13 : 39, 40, 41, 42, 43, 44 * 14 : 39, 40, 41, 42, 43, 44 * 15 : 39, 40, 41, 42, 43, 44 * 16 : * 17 : 39, 40, 41, 42, 43, 44 * 18 : 29, 30, 31, 32, 33, 34, 35, 36 * 19 : 39, 40, 41, 42, 43, 44 * 20 : 39, 40, 41, 42, 43, 44 * 21 : 39, 40, 41, 42, 43, 44 * 22 : 0, 1 * 23 : 29, 30, 31, 32, 33, 34, 35, 36 * 24 : 39, 40, 41, 42, 43, 44 * 25 : 39, 40, 41, 42, 43, 44 * 26 : 2, 3, 4, 5, 6 * 27 : 29, 30, 31, 32, 33, 34, 35, 36 * 28 : 39, 40, 41, 42, 43, 44 * 29 : 29, 30, 31, 32, 33, 34, 35, 36 * 30 : 39, 40, 41, 42, 43, 44 * 31 : 39, 40, 41, 42, 43, 44 * 32 : 29, 30, 31, 32, 33, 34, 35, 36 * 33 : 39, 40, 41, 42, 43, 44 * 34 : 18 * 35 : 29, 30, 31, 32, 33, 34, 35, 36 * 36 : 39, 40, 41, 42, 43, 44 * 37 : 19, 20, 21, 22, 23, 24, 25, 26, 27, 28 * 38 : 19, 20, 21, 22, 23, 24, 25, 26, 27, 28 * 39 : 39, 40, 41, 42, 43, 44 * 40 : 39, 40, 41, 42, 43, 44 * 41 : 39, 40, 41, 42, 43, 44 * 42 : 37, 38 * 43 : 39, 40, 41, 42, 43, 44 * 44 : 39, 40, 41, 42, 43, 44 This graph has the following strongly connected components: P_15: U21#(tt, X) =#> activate#(X) U21#(tt, X) =#> activate#(X) U31#(tt, X, Y) =#> U32#(isNatKind(activate(X)), activate(X), activate(Y)) U31#(tt, X, Y) =#> isNatKind#(activate(X)) U31#(tt, X, Y) =#> activate#(X) U31#(tt, X, Y) =#> activate#(X) U31#(tt, X, Y) =#> activate#(Y) U32#(tt, X, Y) =#> U33#(isNatKind(activate(Y)), activate(X), activate(Y)) U32#(tt, X, Y) =#> isNatKind#(activate(Y)) U32#(tt, X, Y) =#> activate#(Y) U32#(tt, X, Y) =#> activate#(X) U32#(tt, X, Y) =#> activate#(Y) U33#(tt, X, Y) =#> U34#(isNatKind(activate(Y)), activate(X), activate(Y)) U33#(tt, X, Y) =#> activate#(Y) U33#(tt, X, Y) =#> activate#(X) U33#(tt, X, Y) =#> activate#(Y) U34#(tt, X, Y) =#> activate#(X) U61#(tt, X) =#> isNatKind#(activate(X)) isNat#(n!6220!6220plus(X, Y)) =#> activate#(X) isNat#(n!6220!6220plus(X, Y)) =#> activate#(X) isNat#(n!6220!6220plus(X, Y)) =#> activate#(Y) isNat#(n!6220!6220s(X)) =#> U21#(isNatKind(activate(X)), activate(X)) isNat#(n!6220!6220s(X)) =#> isNatKind#(activate(X)) isNat#(n!6220!6220s(X)) =#> activate#(X) isNat#(n!6220!6220s(X)) =#> activate#(X) isNat#(n!6220!6220x(X, Y)) =#> U31#(isNatKind(activate(X)), activate(X), activate(Y)) isNat#(n!6220!6220x(X, Y)) =#> isNatKind#(activate(X)) isNat#(n!6220!6220x(X, Y)) =#> activate#(Y) isNatKind#(n!6220!6220plus(X, Y)) =#> isNatKind#(activate(X)) isNatKind#(n!6220!6220plus(X, Y)) =#> activate#(X) isNatKind#(n!6220!6220plus(X, Y)) =#> activate#(Y) isNatKind#(n!6220!6220s(X)) =#> isNatKind#(activate(X)) isNatKind#(n!6220!6220s(X)) =#> activate#(X) isNatKind#(n!6220!6220x(X, Y)) =#> U61#(isNatKind(activate(X)), activate(Y)) isNatKind#(n!6220!6220x(X, Y)) =#> isNatKind#(activate(X)) isNatKind#(n!6220!6220x(X, Y)) =#> activate#(Y) x#(X, 0) =#> isNat#(X) x#(X, s(Y)) =#> isNat#(Y) activate#(n!6220!6220plus(X, Y)) =#> activate#(X) activate#(n!6220!6220plus(X, Y)) =#> activate#(Y) activate#(n!6220!6220s(X)) =#> activate#(X) activate#(n!6220!6220x(X, Y)) =#> x#(activate(X), activate(Y)) activate#(n!6220!6220x(X, Y)) =#> activate#(X) activate#(n!6220!6220x(X, Y)) =#> activate#(Y) By [Kop12, Thm. 7.31], we may replace any dependency pair problem (P_14, R_0, m, f) by (P_15, R_0, m, f). Thus, the original system is terminating if (P_15, R_0, minimal, formative) is finite. We consider the dependency pair problem (P_15, R_0, minimal, formative). We will use the reduction pair processor [Kop12, Thm. 7.16]. It suffices to find a standard reduction pair [Kop12, Def. 6.69]. Thus, we must orient: U21#(tt, X) >? activate#(X) U21#(tt, X) >? activate#(X) U31#(tt, X, Y) >? U32#(isNatKind(activate(X)), activate(X), activate(Y)) U31#(tt, X, Y) >? isNatKind#(activate(X)) U31#(tt, X, Y) >? activate#(X) U31#(tt, X, Y) >? activate#(X) U31#(tt, X, Y) >? activate#(Y) U32#(tt, X, Y) >? U33#(isNatKind(activate(Y)), activate(X), activate(Y)) U32#(tt, X, Y) >? isNatKind#(activate(Y)) U32#(tt, X, Y) >? activate#(Y) U32#(tt, X, Y) >? activate#(X) U32#(tt, X, Y) >? activate#(Y) U33#(tt, X, Y) >? U34#(isNatKind(activate(Y)), activate(X), activate(Y)) U33#(tt, X, Y) >? activate#(Y) U33#(tt, X, Y) >? activate#(X) U33#(tt, X, Y) >? activate#(Y) U34#(tt, X, Y) >? activate#(X) U61#(tt, X) >? isNatKind#(activate(X)) isNat#(n!6220!6220plus(X, Y)) >? activate#(X) isNat#(n!6220!6220plus(X, Y)) >? activate#(X) isNat#(n!6220!6220plus(X, Y)) >? activate#(Y) isNat#(n!6220!6220s(X)) >? U21#(isNatKind(activate(X)), activate(X)) isNat#(n!6220!6220s(X)) >? isNatKind#(activate(X)) isNat#(n!6220!6220s(X)) >? activate#(X) isNat#(n!6220!6220s(X)) >? activate#(X) isNat#(n!6220!6220x(X, Y)) >? U31#(isNatKind(activate(X)), activate(X), activate(Y)) isNat#(n!6220!6220x(X, Y)) >? isNatKind#(activate(X)) isNat#(n!6220!6220x(X, Y)) >? activate#(Y) isNatKind#(n!6220!6220plus(X, Y)) >? isNatKind#(activate(X)) isNatKind#(n!6220!6220plus(X, Y)) >? activate#(X) isNatKind#(n!6220!6220plus(X, Y)) >? activate#(Y) isNatKind#(n!6220!6220s(X)) >? isNatKind#(activate(X)) isNatKind#(n!6220!6220s(X)) >? activate#(X) isNatKind#(n!6220!6220x(X, Y)) >? U61#(isNatKind(activate(X)), activate(Y)) isNatKind#(n!6220!6220x(X, Y)) >? isNatKind#(activate(X)) isNatKind#(n!6220!6220x(X, Y)) >? activate#(Y) x#(X, 0) >? isNat#(X) x#(X, s(Y)) >? isNat#(Y) activate#(n!6220!6220plus(X, Y)) >? activate#(X) activate#(n!6220!6220plus(X, Y)) >? activate#(Y) activate#(n!6220!6220s(X)) >? activate#(X) activate#(n!6220!6220x(X, Y)) >? x#(activate(X), activate(Y)) activate#(n!6220!6220x(X, Y)) >? activate#(X) activate#(n!6220!6220x(X, Y)) >? activate#(Y) U101(tt, X, Y) >= U102(isNatKind(activate(X)), activate(X), activate(Y)) U102(tt, X, Y) >= U103(isNat(activate(Y)), activate(X), activate(Y)) U103(tt, X, Y) >= U104(isNatKind(activate(Y)), activate(X), activate(Y)) U104(tt, X, Y) >= plus(x(activate(Y), activate(X)), activate(Y)) U11(tt, X, Y) >= U12(isNatKind(activate(X)), activate(X), activate(Y)) U12(tt, X, Y) >= U13(isNatKind(activate(Y)), activate(X), activate(Y)) U13(tt, X, Y) >= U14(isNatKind(activate(Y)), activate(X), activate(Y)) U14(tt, X, Y) >= U15(isNat(activate(X)), activate(Y)) U15(tt, X) >= U16(isNat(activate(X))) U16(tt) >= tt U21(tt, X) >= U22(isNatKind(activate(X)), activate(X)) U22(tt, X) >= U23(isNat(activate(X))) U23(tt) >= tt U31(tt, X, Y) >= U32(isNatKind(activate(X)), activate(X), activate(Y)) U32(tt, X, Y) >= U33(isNatKind(activate(Y)), activate(X), activate(Y)) U33(tt, X, Y) >= U34(isNatKind(activate(Y)), activate(X), activate(Y)) U34(tt, X, Y) >= U35(isNat(activate(X)), activate(Y)) U35(tt, X) >= U36(isNat(activate(X))) U36(tt) >= tt U41(tt, X) >= U42(isNatKind(activate(X))) U42(tt) >= tt U51(tt) >= tt U61(tt, X) >= U62(isNatKind(activate(X))) U62(tt) >= tt U71(tt, X) >= U72(isNatKind(activate(X)), activate(X)) U72(tt, X) >= activate(X) U81(tt, X, Y) >= U82(isNatKind(activate(X)), activate(X), activate(Y)) U82(tt, X, Y) >= U83(isNat(activate(Y)), activate(X), activate(Y)) U83(tt, X, Y) >= U84(isNatKind(activate(Y)), activate(X), activate(Y)) U84(tt, X, Y) >= s(plus(activate(Y), activate(X))) U91(tt, X) >= U92(isNatKind(activate(X))) U92(tt) >= 0 isNat(n!6220!62200) >= tt isNat(n!6220!6220plus(X, Y)) >= U11(isNatKind(activate(X)), activate(X), activate(Y)) isNat(n!6220!6220s(X)) >= U21(isNatKind(activate(X)), activate(X)) isNat(n!6220!6220x(X, Y)) >= U31(isNatKind(activate(X)), activate(X), activate(Y)) isNatKind(n!6220!62200) >= tt isNatKind(n!6220!6220plus(X, Y)) >= U41(isNatKind(activate(X)), activate(Y)) isNatKind(n!6220!6220s(X)) >= U51(isNatKind(activate(X))) isNatKind(n!6220!6220x(X, Y)) >= U61(isNatKind(activate(X)), activate(Y)) plus(X, 0) >= U71(isNat(X), X) plus(X, s(Y)) >= U81(isNat(Y), Y, X) x(X, 0) >= U91(isNat(X), X) x(X, s(Y)) >= U101(isNat(Y), Y, X) 0 >= n!6220!62200 plus(X, Y) >= n!6220!6220plus(X, Y) s(X) >= n!6220!6220s(X) x(X, Y) >= n!6220!6220x(X, Y) activate(n!6220!62200) >= 0 activate(n!6220!6220plus(X, Y)) >= plus(activate(X), activate(Y)) activate(n!6220!6220s(X)) >= s(activate(X)) activate(n!6220!6220x(X, Y)) >= x(activate(X), activate(Y)) activate(X) >= X Since this representation is not advantageous for the higher-order recursive path ordering, we present the strict requirements in their unextended form, which is not problematic since for any F, s and substituion gamma: (F s)gamma beta-reduces to F(s)gamma.) We use a recursive path ordering as defined in [Kop12, Chapter 5]. Argument functions: [[0]] = _|_ [[U11(x_1, x_2, x_3)]] = U11 [[U12(x_1, x_2, x_3)]] = U12 [[U13(x_1, x_2, x_3)]] = U13 [[U14(x_1, x_2, x_3)]] = U14 [[U15(x_1, x_2)]] = U15 [[U16(x_1)]] = x_1 [[U21(x_1, x_2)]] = x_1 [[U21#(x_1, x_2)]] = U21#(x_2) [[U22(x_1, x_2)]] = x_1 [[U23(x_1)]] = x_1 [[U31(x_1, x_2, x_3)]] = U31 [[U32(x_1, x_2, x_3)]] = U32 [[U33(x_1, x_2, x_3)]] = U33 [[U34(x_1, x_2, x_3)]] = U34 [[U35(x_1, x_2)]] = x_1 [[U36(x_1)]] = x_1 [[U41(x_1, x_2)]] = x_1 [[U42(x_1)]] = x_1 [[U51(x_1)]] = x_1 [[U61(x_1, x_2)]] = x_1 [[U61#(x_1, x_2)]] = U61#(x_2) [[U62(x_1)]] = U62 [[U71(x_1, x_2)]] = U71(x_2) [[U72(x_1, x_2)]] = U72(x_2) [[U91(x_1, x_2)]] = x_1 [[U92(x_1)]] = _|_ [[activate(x_1)]] = x_1 [[isNat(x_1)]] = isNat [[isNatKind(x_1)]] = isNatKind [[n!6220!62200]] = _|_ We choose Lex = {} and Mul = {U101, U102, U103, U104, U11, U12, U13, U14, U15, U21#, U31, U31#, U32, U32#, U33, U33#, U34, U34#, U61#, U62, U71, U72, U81, U82, U83, U84, activate#, isNat, isNatKind, isNatKind#, isNat#, n!6220!6220plus, n!6220!6220s, n!6220!6220x, plus, s, tt, x, x#}, and the following precedence: U101 = U102 = U103 = U104 = U21# = isNat# = n!6220!6220x = x = x# > U71 = U72 = U81 = U82 = U83 = U84 = n!6220!6220plus = plus > U31# = U32# > n!6220!6220s = s > U33# > U11 = U12 = U13 = U14 = U15 = U31 = U32 = U33 = U34 = U62 = isNat = isNatKind = tt > U61# = isNatKind# > U34# > activate# Taking the argument function into account, and fixing the greater / greater equal choices, the constraints can be denoted as follows: U21#(X) >= activate#(X) U21#(X) > activate#(X) U31#(tt, X, Y) >= U32#(isNatKind, X, Y) U31#(tt, X, Y) >= isNatKind#(X) U31#(tt, X, Y) >= activate#(X) U31#(tt, X, Y) >= activate#(X) U31#(tt, X, Y) >= activate#(Y) U32#(tt, X, Y) >= U33#(isNatKind, X, Y) U32#(tt, X, Y) >= isNatKind#(Y) U32#(tt, X, Y) >= activate#(Y) U32#(tt, X, Y) >= activate#(X) U32#(tt, X, Y) >= activate#(Y) U33#(tt, X, Y) >= U34#(isNatKind, X, Y) U33#(tt, X, Y) >= activate#(Y) U33#(tt, X, Y) >= activate#(X) U33#(tt, X, Y) >= activate#(Y) U34#(tt, X, Y) >= activate#(X) U61#(X) >= isNatKind#(X) isNat#(n!6220!6220plus(X, Y)) >= activate#(X) isNat#(n!6220!6220plus(X, Y)) >= activate#(X) isNat#(n!6220!6220plus(X, Y)) >= activate#(Y) isNat#(n!6220!6220s(X)) >= U21#(X) isNat#(n!6220!6220s(X)) >= isNatKind#(X) isNat#(n!6220!6220s(X)) >= activate#(X) isNat#(n!6220!6220s(X)) >= activate#(X) isNat#(n!6220!6220x(X, Y)) >= U31#(isNatKind, X, Y) isNat#(n!6220!6220x(X, Y)) >= isNatKind#(X) isNat#(n!6220!6220x(X, Y)) >= activate#(Y) isNatKind#(n!6220!6220plus(X, Y)) >= isNatKind#(X) isNatKind#(n!6220!6220plus(X, Y)) >= activate#(X) isNatKind#(n!6220!6220plus(X, Y)) >= activate#(Y) isNatKind#(n!6220!6220s(X)) >= isNatKind#(X) isNatKind#(n!6220!6220s(X)) >= activate#(X) isNatKind#(n!6220!6220x(X, Y)) >= U61#(Y) isNatKind#(n!6220!6220x(X, Y)) >= isNatKind#(X) isNatKind#(n!6220!6220x(X, Y)) >= activate#(Y) x#(X, _|_) >= isNat#(X) x#(X, s(Y)) >= isNat#(Y) activate#(n!6220!6220plus(X, Y)) >= activate#(X) activate#(n!6220!6220plus(X, Y)) >= activate#(Y) activate#(n!6220!6220s(X)) >= activate#(X) activate#(n!6220!6220x(X, Y)) >= x#(X, Y) activate#(n!6220!6220x(X, Y)) >= activate#(X) activate#(n!6220!6220x(X, Y)) >= activate#(Y) U101(tt, X, Y) >= U102(isNatKind, X, Y) U102(tt, X, Y) >= U103(isNat, X, Y) U103(tt, X, Y) >= U104(isNatKind, X, Y) U104(tt, X, Y) >= plus(x(Y, X), Y) U11 >= U12 U12 >= U13 U13 >= U14 U14 >= U15 U15 >= isNat tt >= tt tt >= isNatKind tt >= isNat tt >= tt U31 >= U32 U32 >= U33 U33 >= U34 U34 >= isNat tt >= isNat tt >= tt tt >= isNatKind tt >= tt tt >= tt tt >= U62 U62 >= tt U71(X) >= U72(X) U72(X) >= X U81(tt, X, Y) >= U82(isNatKind, X, Y) U82(tt, X, Y) >= U83(isNat, X, Y) U83(tt, X, Y) >= U84(isNatKind, X, Y) U84(tt, X, Y) >= s(plus(Y, X)) tt >= _|_ _|_ >= _|_ isNat >= tt isNat >= U11 isNat >= isNatKind isNat >= U31 isNatKind >= tt isNatKind >= isNatKind isNatKind >= isNatKind isNatKind >= isNatKind plus(X, _|_) >= U71(X) plus(X, s(Y)) >= U81(isNat, Y, X) x(X, _|_) >= isNat x(X, s(Y)) >= U101(isNat, Y, X) _|_ >= _|_ plus(X, Y) >= n!6220!6220plus(X, Y) s(X) >= n!6220!6220s(X) x(X, Y) >= n!6220!6220x(X, Y) _|_ >= _|_ n!6220!6220plus(X, Y) >= plus(X, Y) n!6220!6220s(X) >= s(X) n!6220!6220x(X, Y) >= x(X, Y) X >= X With these choices, we have: 1] U21#(X) >= activate#(X) because [2], by (Star) 2] U21#*(X) >= activate#(X) because U21# > activate# and [3], by (Copy) 3] U21#*(X) >= X because [4], by (Select) 4] X >= X by (Meta) 5] U21#(X) > activate#(X) because [6], by definition 6] U21#*(X) >= activate#(X) because U21# > activate# and [3], by (Copy) 7] U31#(tt, X, Y) >= U32#(isNatKind, X, Y) because U31# = U32#, U31# in Mul, [8], [9] and [10], by (Fun) 8] tt >= isNatKind because tt = isNatKind, by (Fun) 9] X >= X by (Meta) 10] Y >= Y by (Meta) 11] U31#(tt, X, Y) >= isNatKind#(X) because [12], by (Star) 12] U31#*(tt, X, Y) >= isNatKind#(X) because U31# > isNatKind# and [13], by (Copy) 13] U31#*(tt, X, Y) >= X because [9], by (Select) 14] U31#(tt, X, Y) >= activate#(X) because [15], by (Star) 15] U31#*(tt, X, Y) >= activate#(X) because U31# > activate# and [13], by (Copy) 16] U31#(tt, X, Y) >= activate#(X) because [15], by (Star) 17] U31#(tt, X, Y) >= activate#(Y) because [18], by (Star) 18] U31#*(tt, X, Y) >= activate#(Y) because U31# > activate# and [19], by (Copy) 19] U31#*(tt, X, Y) >= Y because [10], by (Select) 20] U32#(tt, X, Y) >= U33#(isNatKind, X, Y) because [21], by (Star) 21] U32#*(tt, X, Y) >= U33#(isNatKind, X, Y) because U32# > U33#, [22], [23] and [24], by (Copy) 22] U32#*(tt, X, Y) >= isNatKind because U32# > isNatKind, by (Copy) 23] U32#*(tt, X, Y) >= X because [9], by (Select) 24] U32#*(tt, X, Y) >= Y because [10], by (Select) 25] U32#(tt, X, Y) >= isNatKind#(Y) because [26], by (Star) 26] U32#*(tt, X, Y) >= isNatKind#(Y) because U32# > isNatKind# and [24], by (Copy) 27] U32#(tt, X, Y) >= activate#(Y) because [28], by (Star) 28] U32#*(tt, X, Y) >= activate#(Y) because U32# > activate# and [24], by (Copy) 29] U32#(tt, X, Y) >= activate#(X) because [30], by (Star) 30] U32#*(tt, X, Y) >= activate#(X) because U32# > activate# and [23], by (Copy) 31] U32#(tt, X, Y) >= activate#(Y) because [28], by (Star) 32] U33#(tt, X, Y) >= U34#(isNatKind, X, Y) because [33], by (Star) 33] U33#*(tt, X, Y) >= U34#(isNatKind, X, Y) because U33# > U34#, [34], [35] and [36], by (Copy) 34] U33#*(tt, X, Y) >= isNatKind because U33# > isNatKind, by (Copy) 35] U33#*(tt, X, Y) >= X because [9], by (Select) 36] U33#*(tt, X, Y) >= Y because [10], by (Select) 37] U33#(tt, X, Y) >= activate#(Y) because [38], by (Star) 38] U33#*(tt, X, Y) >= activate#(Y) because U33# > activate# and [36], by (Copy) 39] U33#(tt, X, Y) >= activate#(X) because [40], by (Star) 40] U33#*(tt, X, Y) >= activate#(X) because U33# > activate# and [35], by (Copy) 41] U33#(tt, X, Y) >= activate#(Y) because [38], by (Star) 42] U34#(tt, X, Y) >= activate#(X) because [43], by (Star) 43] U34#*(tt, X, Y) >= activate#(X) because U34# > activate# and [44], by (Copy) 44] U34#*(tt, X, Y) >= X because [9], by (Select) 45] U61#(X) >= isNatKind#(X) because U61# = isNatKind#, U61# in Mul and [10], by (Fun) 46] isNat#(n!6220!6220plus(X, Y)) >= activate#(X) because [47], by (Star) 47] isNat#*(n!6220!6220plus(X, Y)) >= activate#(X) because isNat# > activate# and [48], by (Copy) 48] isNat#*(n!6220!6220plus(X, Y)) >= X because [49], by (Select) 49] n!6220!6220plus(X, Y) >= X because [50], by (Star) 50] n!6220!6220plus*(X, Y) >= X because [9], by (Select) 51] isNat#(n!6220!6220plus(X, Y)) >= activate#(X) because [47], by (Star) 52] isNat#(n!6220!6220plus(X, Y)) >= activate#(Y) because [53], by (Star) 53] isNat#*(n!6220!6220plus(X, Y)) >= activate#(Y) because isNat# > activate# and [54], by (Copy) 54] isNat#*(n!6220!6220plus(X, Y)) >= Y because [55], by (Select) 55] n!6220!6220plus(X, Y) >= Y because [56], by (Star) 56] n!6220!6220plus*(X, Y) >= Y because [10], by (Select) 57] isNat#(n!6220!6220s(X)) >= U21#(X) because isNat# = U21#, isNat# in Mul and [58], by (Fun) 58] n!6220!6220s(X) >= X because [59], by (Star) 59] n!6220!6220s*(X) >= X because [9], by (Select) 60] isNat#(n!6220!6220s(X)) >= isNatKind#(X) because [61], by (Star) 61] isNat#*(n!6220!6220s(X)) >= isNatKind#(X) because isNat# > isNatKind# and [62], by (Copy) 62] isNat#*(n!6220!6220s(X)) >= X because [58], by (Select) 63] isNat#(n!6220!6220s(X)) >= activate#(X) because [64], by (Star) 64] isNat#*(n!6220!6220s(X)) >= activate#(X) because isNat# > activate# and [62], by (Copy) 65] isNat#(n!6220!6220s(X)) >= activate#(X) because [64], by (Star) 66] isNat#(n!6220!6220x(X, Y)) >= U31#(isNatKind, X, Y) because [67], by (Star) 67] isNat#*(n!6220!6220x(X, Y)) >= U31#(isNatKind, X, Y) because isNat# > U31#, [68], [69] and [72], by (Copy) 68] isNat#*(n!6220!6220x(X, Y)) >= isNatKind because isNat# > isNatKind, by (Copy) 69] isNat#*(n!6220!6220x(X, Y)) >= X because [70], by (Select) 70] n!6220!6220x(X, Y) >= X because [71], by (Star) 71] n!6220!6220x*(X, Y) >= X because [9], by (Select) 72] isNat#*(n!6220!6220x(X, Y)) >= Y because [73], by (Select) 73] n!6220!6220x(X, Y) >= Y because [74], by (Star) 74] n!6220!6220x*(X, Y) >= Y because [10], by (Select) 75] isNat#(n!6220!6220x(X, Y)) >= isNatKind#(X) because [76], by (Star) 76] isNat#*(n!6220!6220x(X, Y)) >= isNatKind#(X) because isNat# > isNatKind# and [69], by (Copy) 77] isNat#(n!6220!6220x(X, Y)) >= activate#(Y) because [78], by (Star) 78] isNat#*(n!6220!6220x(X, Y)) >= activate#(Y) because isNat# > activate# and [72], by (Copy) 79] isNatKind#(n!6220!6220plus(X, Y)) >= isNatKind#(X) because isNatKind# in Mul and [80], by (Fun) 80] n!6220!6220plus(X, Y) >= X because [50], by (Star) 81] isNatKind#(n!6220!6220plus(X, Y)) >= activate#(X) because [82], by (Star) 82] isNatKind#*(n!6220!6220plus(X, Y)) >= activate#(X) because isNatKind# > activate# and [83], by (Copy) 83] isNatKind#*(n!6220!6220plus(X, Y)) >= X because [80], by (Select) 84] isNatKind#(n!6220!6220plus(X, Y)) >= activate#(Y) because [85], by (Star) 85] isNatKind#*(n!6220!6220plus(X, Y)) >= activate#(Y) because isNatKind# > activate# and [86], by (Copy) 86] isNatKind#*(n!6220!6220plus(X, Y)) >= Y because [55], by (Select) 87] isNatKind#(n!6220!6220s(X)) >= isNatKind#(X) because isNatKind# in Mul and [58], by (Fun) 88] isNatKind#(n!6220!6220s(X)) >= activate#(X) because [89], by (Star) 89] isNatKind#*(n!6220!6220s(X)) >= activate#(X) because isNatKind# > activate# and [90], by (Copy) 90] isNatKind#*(n!6220!6220s(X)) >= X because [58], by (Select) 91] isNatKind#(n!6220!6220x(X, Y)) >= U61#(Y) because isNatKind# = U61#, isNatKind# in Mul and [92], by (Fun) 92] n!6220!6220x(X, Y) >= Y because [74], by (Star) 93] isNatKind#(n!6220!6220x(X, Y)) >= isNatKind#(X) because isNatKind# in Mul and [94], by (Fun) 94] n!6220!6220x(X, Y) >= X because [71], by (Star) 95] isNatKind#(n!6220!6220x(X, Y)) >= activate#(Y) because [96], by (Star) 96] isNatKind#*(n!6220!6220x(X, Y)) >= activate#(Y) because isNatKind# > activate# and [97], by (Copy) 97] isNatKind#*(n!6220!6220x(X, Y)) >= Y because [92], by (Select) 98] x#(X, _|_) >= isNat#(X) because [99], by (Star) 99] x#*(X, _|_) >= isNat#(X) because x# = isNat#, x# in Mul and [100], by (Stat) 100] X >= X by (Meta) 101] x#(X, s(Y)) >= isNat#(Y) because [102], by (Star) 102] x#*(X, s(Y)) >= isNat#(Y) because x# = isNat#, x# in Mul and [103], by (Stat) 103] s(Y) > Y because [104], by definition 104] s*(Y) >= Y because [105], by (Select) 105] Y >= Y by (Meta) 106] activate#(n!6220!6220plus(X, Y)) >= activate#(X) because activate# in Mul and [107], by (Fun) 107] n!6220!6220plus(X, Y) >= X because [108], by (Star) 108] n!6220!6220plus*(X, Y) >= X because [109], by (Select) 109] X >= X by (Meta) 110] activate#(n!6220!6220plus(X, Y)) >= activate#(Y) because activate# in Mul and [111], by (Fun) 111] n!6220!6220plus(X, Y) >= Y because [112], by (Star) 112] n!6220!6220plus*(X, Y) >= Y because [113], by (Select) 113] Y >= Y by (Meta) 114] activate#(n!6220!6220s(X)) >= activate#(X) because activate# in Mul and [115], by (Fun) 115] n!6220!6220s(X) >= X because [116], by (Star) 116] n!6220!6220s*(X) >= X because [117], by (Select) 117] X >= X by (Meta) 118] activate#(n!6220!6220x(X, Y)) >= x#(X, Y) because [119], by (Star) 119] activate#*(n!6220!6220x(X, Y)) >= x#(X, Y) because [120], by (Select) 120] n!6220!6220x(X, Y) >= x#(X, Y) because n!6220!6220x = x#, n!6220!6220x in Mul, [121] and [122], by (Fun) 121] X >= X by (Meta) 122] Y >= Y by (Meta) 123] activate#(n!6220!6220x(X, Y)) >= activate#(X) because [124], by (Star) 124] activate#*(n!6220!6220x(X, Y)) >= activate#(X) because activate# in Mul and [125], by (Stat) 125] n!6220!6220x(X, Y) > X because [126], by definition 126] n!6220!6220x*(X, Y) >= X because [121], by (Select) 127] activate#(n!6220!6220x(X, Y)) >= activate#(Y) because activate# in Mul and [128], by (Fun) 128] n!6220!6220x(X, Y) >= Y because [129], by (Star) 129] n!6220!6220x*(X, Y) >= Y because [122], by (Select) 130] U101(tt, X, Y) >= U102(isNatKind, X, Y) because U101 = U102, U101 in Mul, [131], [132] and [133], by (Fun) 131] tt >= isNatKind because tt = isNatKind, by (Fun) 132] X >= X by (Meta) 133] Y >= Y by (Meta) 134] U102(tt, X, Y) >= U103(isNat, X, Y) because U102 = U103, U102 in Mul, [135], [132] and [133], by (Fun) 135] tt >= isNat because tt = isNat, by (Fun) 136] U103(tt, X, Y) >= U104(isNatKind, X, Y) because U103 = U104, U103 in Mul, [137], [132] and [133], by (Fun) 137] tt >= isNatKind because tt = isNatKind, by (Fun) 138] U104(tt, X, Y) >= plus(x(Y, X), Y) because [139], by (Star) 139] U104*(tt, X, Y) >= plus(x(Y, X), Y) because U104 > plus, [140] and [141], by (Copy) 140] U104*(tt, X, Y) >= x(Y, X) because U104 = x, U104 in Mul, [132] and [133], by (Stat) 141] U104*(tt, X, Y) >= Y because [133], by (Select) 142] U11 >= U12 because U11 = U12 and U11 in Mul, by (Fun) 143] U12 >= U13 because U12 = U13 and U12 in Mul, by (Fun) 144] U13 >= U14 because U13 = U14 and U13 in Mul, by (Fun) 145] U14 >= U15 because U14 = U15 and U14 in Mul, by (Fun) 146] U15 >= isNat because U15 = isNat and U15 in Mul, by (Fun) 147] tt >= tt by (Fun) 148] tt >= isNatKind because tt = isNatKind, by (Fun) 149] tt >= isNat because tt = isNat, by (Fun) 150] tt >= tt by (Fun) 151] U31 >= U32 because U31 = U32 and U31 in Mul, by (Fun) 152] U32 >= U33 because U32 = U33 and U32 in Mul, by (Fun) 153] U33 >= U34 because U33 = U34 and U33 in Mul, by (Fun) 154] U34 >= isNat because U34 = isNat and U34 in Mul, by (Fun) 155] tt >= isNat because tt = isNat, by (Fun) 156] tt >= tt by (Fun) 157] tt >= isNatKind because tt = isNatKind, by (Fun) 158] tt >= tt by (Fun) 159] tt >= tt by (Fun) 160] tt >= U62 because tt = U62, by (Fun) 161] U62 >= tt because U62 = tt, by (Fun) 162] U71(X) >= U72(X) because U71 = U72, U71 in Mul and [133], by (Fun) 163] U72(X) >= X because [164], by (Star) 164] U72*(X) >= X because [133], by (Select) 165] U81(tt, X, Y) >= U82(isNatKind, X, Y) because U81 = U82, U81 in Mul, [131], [132] and [133], by (Fun) 166] U82(tt, X, Y) >= U83(isNat, X, Y) because U82 = U83, U82 in Mul, [135], [132] and [133], by (Fun) 167] U83(tt, X, Y) >= U84(isNatKind, X, Y) because U83 = U84, U83 in Mul, [137], [132] and [133], by (Fun) 168] U84(tt, X, Y) >= s(plus(Y, X)) because [169], by (Star) 169] U84*(tt, X, Y) >= s(plus(Y, X)) because U84 > s and [170], by (Copy) 170] U84*(tt, X, Y) >= plus(Y, X) because U84 = plus, U84 in Mul, [132] and [133], by (Stat) 171] tt >= _|_ by (Bot) 172] _|_ >= _|_ by (Bot) 173] isNat >= tt because isNat = tt, by (Fun) 174] isNat >= U11 because isNat = U11 and isNat in Mul, by (Fun) 175] isNat >= isNatKind because isNat = isNatKind and isNat in Mul, by (Fun) 176] isNat >= U31 because isNat = U31 and isNat in Mul, by (Fun) 177] isNatKind >= tt because isNatKind = tt, by (Fun) 178] isNatKind >= isNatKind because isNatKind in Mul, by (Fun) 179] isNatKind >= isNatKind because isNatKind in Mul, by (Fun) 180] isNatKind >= isNatKind because isNatKind in Mul, by (Fun) 181] plus(X, _|_) >= U71(X) because [182], by (Star) 182] plus*(X, _|_) >= U71(X) because plus = U71, plus in Mul and [133], by (Stat) 183] plus(X, s(Y)) >= U81(isNat, Y, X) because [184], by (Star) 184] plus*(X, s(Y)) >= U81(isNat, Y, X) because plus = U81, plus in Mul, [133], [185] and [103], by (Stat) 185] s(Y) > isNat because [186], by definition 186] s*(Y) >= isNat because s > isNat, by (Copy) 187] x(X, _|_) >= isNat because [188], by (Star) 188] x*(X, _|_) >= isNat because x > isNat, by (Copy) 189] x(X, s(Y)) >= U101(isNat, Y, X) because [190], by (Star) 190] x*(X, s(Y)) >= U101(isNat, Y, X) because x = U101, x in Mul, [133], [185] and [103], by (Stat) 191] _|_ >= _|_ by (Bot) 192] plus(X, Y) >= n!6220!6220plus(X, Y) because plus = n!6220!6220plus, plus in Mul, [121] and [122], by (Fun) 193] s(X) >= n!6220!6220s(X) because s = n!6220!6220s, s in Mul and [194], by (Fun) 194] X >= X by (Meta) 195] x(X, Y) >= n!6220!6220x(X, Y) because x = n!6220!6220x, x in Mul, [121] and [122], by (Fun) 196] _|_ >= _|_ by (Bot) 197] n!6220!6220plus(X, Y) >= plus(X, Y) because n!6220!6220plus = plus, n!6220!6220plus in Mul, [121] and [122], by (Fun) 198] n!6220!6220s(X) >= s(X) because n!6220!6220s = s, n!6220!6220s in Mul and [199], by (Fun) 199] X >= X by (Meta) 200] n!6220!6220x(X, Y) >= x(X, Y) because n!6220!6220x = x, n!6220!6220x in Mul, [121] and [122], by (Fun) 201] X >= X by (Meta) By the observations in [Kop12, Sec. 6.6], this reduction pair suffices; we may thus replace the dependency pair problem (P_15, R_0, minimal, formative) by (P_16, R_0, minimal, formative), where P_16 consists of: U21#(tt, X) =#> activate#(X) U31#(tt, X, Y) =#> U32#(isNatKind(activate(X)), activate(X), activate(Y)) U31#(tt, X, Y) =#> isNatKind#(activate(X)) U31#(tt, X, Y) =#> activate#(X) U31#(tt, X, Y) =#> activate#(X) U31#(tt, X, Y) =#> activate#(Y) U32#(tt, X, Y) =#> U33#(isNatKind(activate(Y)), activate(X), activate(Y)) U32#(tt, X, Y) =#> isNatKind#(activate(Y)) U32#(tt, X, Y) =#> activate#(Y) U32#(tt, X, Y) =#> activate#(X) U32#(tt, X, Y) =#> activate#(Y) U33#(tt, X, Y) =#> U34#(isNatKind(activate(Y)), activate(X), activate(Y)) U33#(tt, X, Y) =#> activate#(Y) U33#(tt, X, Y) =#> activate#(X) U33#(tt, X, Y) =#> activate#(Y) U34#(tt, X, Y) =#> activate#(X) U61#(tt, X) =#> isNatKind#(activate(X)) isNat#(n!6220!6220plus(X, Y)) =#> activate#(X) isNat#(n!6220!6220plus(X, Y)) =#> activate#(X) isNat#(n!6220!6220plus(X, Y)) =#> activate#(Y) isNat#(n!6220!6220s(X)) =#> U21#(isNatKind(activate(X)), activate(X)) isNat#(n!6220!6220s(X)) =#> isNatKind#(activate(X)) isNat#(n!6220!6220s(X)) =#> activate#(X) isNat#(n!6220!6220s(X)) =#> activate#(X) isNat#(n!6220!6220x(X, Y)) =#> U31#(isNatKind(activate(X)), activate(X), activate(Y)) isNat#(n!6220!6220x(X, Y)) =#> isNatKind#(activate(X)) isNat#(n!6220!6220x(X, Y)) =#> activate#(Y) isNatKind#(n!6220!6220plus(X, Y)) =#> isNatKind#(activate(X)) isNatKind#(n!6220!6220plus(X, Y)) =#> activate#(X) isNatKind#(n!6220!6220plus(X, Y)) =#> activate#(Y) isNatKind#(n!6220!6220s(X)) =#> isNatKind#(activate(X)) isNatKind#(n!6220!6220s(X)) =#> activate#(X) isNatKind#(n!6220!6220x(X, Y)) =#> U61#(isNatKind(activate(X)), activate(Y)) isNatKind#(n!6220!6220x(X, Y)) =#> isNatKind#(activate(X)) isNatKind#(n!6220!6220x(X, Y)) =#> activate#(Y) x#(X, 0) =#> isNat#(X) x#(X, s(Y)) =#> isNat#(Y) activate#(n!6220!6220plus(X, Y)) =#> activate#(X) activate#(n!6220!6220plus(X, Y)) =#> activate#(Y) activate#(n!6220!6220s(X)) =#> activate#(X) activate#(n!6220!6220x(X, Y)) =#> x#(activate(X), activate(Y)) activate#(n!6220!6220x(X, Y)) =#> activate#(X) activate#(n!6220!6220x(X, Y)) =#> activate#(Y) Thus, the original system is terminating if (P_16, R_0, minimal, formative) is finite. We consider the dependency pair problem (P_16, R_0, minimal, formative). We will use the reduction pair processor [Kop12, Thm. 7.16]. It suffices to find a standard reduction pair [Kop12, Def. 6.69]. Thus, we must orient: U21#(tt, X) >? activate#(X) U31#(tt, X, Y) >? U32#(isNatKind(activate(X)), activate(X), activate(Y)) U31#(tt, X, Y) >? isNatKind#(activate(X)) U31#(tt, X, Y) >? activate#(X) U31#(tt, X, Y) >? activate#(X) U31#(tt, X, Y) >? activate#(Y) U32#(tt, X, Y) >? U33#(isNatKind(activate(Y)), activate(X), activate(Y)) U32#(tt, X, Y) >? isNatKind#(activate(Y)) U32#(tt, X, Y) >? activate#(Y) U32#(tt, X, Y) >? activate#(X) U32#(tt, X, Y) >? activate#(Y) U33#(tt, X, Y) >? U34#(isNatKind(activate(Y)), activate(X), activate(Y)) U33#(tt, X, Y) >? activate#(Y) U33#(tt, X, Y) >? activate#(X) U33#(tt, X, Y) >? activate#(Y) U34#(tt, X, Y) >? activate#(X) U61#(tt, X) >? isNatKind#(activate(X)) isNat#(n!6220!6220plus(X, Y)) >? activate#(X) isNat#(n!6220!6220plus(X, Y)) >? activate#(X) isNat#(n!6220!6220plus(X, Y)) >? activate#(Y) isNat#(n!6220!6220s(X)) >? U21#(isNatKind(activate(X)), activate(X)) isNat#(n!6220!6220s(X)) >? isNatKind#(activate(X)) isNat#(n!6220!6220s(X)) >? activate#(X) isNat#(n!6220!6220s(X)) >? activate#(X) isNat#(n!6220!6220x(X, Y)) >? U31#(isNatKind(activate(X)), activate(X), activate(Y)) isNat#(n!6220!6220x(X, Y)) >? isNatKind#(activate(X)) isNat#(n!6220!6220x(X, Y)) >? activate#(Y) isNatKind#(n!6220!6220plus(X, Y)) >? isNatKind#(activate(X)) isNatKind#(n!6220!6220plus(X, Y)) >? activate#(X) isNatKind#(n!6220!6220plus(X, Y)) >? activate#(Y) isNatKind#(n!6220!6220s(X)) >? isNatKind#(activate(X)) isNatKind#(n!6220!6220s(X)) >? activate#(X) isNatKind#(n!6220!6220x(X, Y)) >? U61#(isNatKind(activate(X)), activate(Y)) isNatKind#(n!6220!6220x(X, Y)) >? isNatKind#(activate(X)) isNatKind#(n!6220!6220x(X, Y)) >? activate#(Y) x#(X, 0) >? isNat#(X) x#(X, s(Y)) >? isNat#(Y) activate#(n!6220!6220plus(X, Y)) >? activate#(X) activate#(n!6220!6220plus(X, Y)) >? activate#(Y) activate#(n!6220!6220s(X)) >? activate#(X) activate#(n!6220!6220x(X, Y)) >? x#(activate(X), activate(Y)) activate#(n!6220!6220x(X, Y)) >? activate#(X) activate#(n!6220!6220x(X, Y)) >? activate#(Y) U101(tt, X, Y) >= U102(isNatKind(activate(X)), activate(X), activate(Y)) U102(tt, X, Y) >= U103(isNat(activate(Y)), activate(X), activate(Y)) U103(tt, X, Y) >= U104(isNatKind(activate(Y)), activate(X), activate(Y)) U104(tt, X, Y) >= plus(x(activate(Y), activate(X)), activate(Y)) U11(tt, X, Y) >= U12(isNatKind(activate(X)), activate(X), activate(Y)) U12(tt, X, Y) >= U13(isNatKind(activate(Y)), activate(X), activate(Y)) U13(tt, X, Y) >= U14(isNatKind(activate(Y)), activate(X), activate(Y)) U14(tt, X, Y) >= U15(isNat(activate(X)), activate(Y)) U15(tt, X) >= U16(isNat(activate(X))) U16(tt) >= tt U21(tt, X) >= U22(isNatKind(activate(X)), activate(X)) U22(tt, X) >= U23(isNat(activate(X))) U23(tt) >= tt U31(tt, X, Y) >= U32(isNatKind(activate(X)), activate(X), activate(Y)) U32(tt, X, Y) >= U33(isNatKind(activate(Y)), activate(X), activate(Y)) U33(tt, X, Y) >= U34(isNatKind(activate(Y)), activate(X), activate(Y)) U34(tt, X, Y) >= U35(isNat(activate(X)), activate(Y)) U35(tt, X) >= U36(isNat(activate(X))) U36(tt) >= tt U41(tt, X) >= U42(isNatKind(activate(X))) U42(tt) >= tt U51(tt) >= tt U61(tt, X) >= U62(isNatKind(activate(X))) U62(tt) >= tt U71(tt, X) >= U72(isNatKind(activate(X)), activate(X)) U72(tt, X) >= activate(X) U81(tt, X, Y) >= U82(isNatKind(activate(X)), activate(X), activate(Y)) U82(tt, X, Y) >= U83(isNat(activate(Y)), activate(X), activate(Y)) U83(tt, X, Y) >= U84(isNatKind(activate(Y)), activate(X), activate(Y)) U84(tt, X, Y) >= s(plus(activate(Y), activate(X))) U91(tt, X) >= U92(isNatKind(activate(X))) U92(tt) >= 0 isNat(n!6220!62200) >= tt isNat(n!6220!6220plus(X, Y)) >= U11(isNatKind(activate(X)), activate(X), activate(Y)) isNat(n!6220!6220s(X)) >= U21(isNatKind(activate(X)), activate(X)) isNat(n!6220!6220x(X, Y)) >= U31(isNatKind(activate(X)), activate(X), activate(Y)) isNatKind(n!6220!62200) >= tt isNatKind(n!6220!6220plus(X, Y)) >= U41(isNatKind(activate(X)), activate(Y)) isNatKind(n!6220!6220s(X)) >= U51(isNatKind(activate(X))) isNatKind(n!6220!6220x(X, Y)) >= U61(isNatKind(activate(X)), activate(Y)) plus(X, 0) >= U71(isNat(X), X) plus(X, s(Y)) >= U81(isNat(Y), Y, X) x(X, 0) >= U91(isNat(X), X) x(X, s(Y)) >= U101(isNat(Y), Y, X) 0 >= n!6220!62200 plus(X, Y) >= n!6220!6220plus(X, Y) s(X) >= n!6220!6220s(X) x(X, Y) >= n!6220!6220x(X, Y) activate(n!6220!62200) >= 0 activate(n!6220!6220plus(X, Y)) >= plus(activate(X), activate(Y)) activate(n!6220!6220s(X)) >= s(activate(X)) activate(n!6220!6220x(X, Y)) >= x(activate(X), activate(Y)) activate(X) >= X Since this representation is not advantageous for the higher-order recursive path ordering, we present the strict requirements in their unextended form, which is not problematic since for any F, s and substituion gamma: (F s)gamma beta-reduces to F(s)gamma.) We use a recursive path ordering as defined in [Kop12, Chapter 5]. Argument functions: [[0]] = _|_ [[U11(x_1, x_2, x_3)]] = x_1 [[U12(x_1, x_2, x_3)]] = _|_ [[U13(x_1, x_2, x_3)]] = x_1 [[U14(x_1, x_2, x_3)]] = _|_ [[U15(x_1, x_2)]] = _|_ [[U16(x_1)]] = _|_ [[U21(x_1, x_2)]] = _|_ [[U21#(x_1, x_2)]] = U21#(x_2) [[U22(x_1, x_2)]] = _|_ [[U23(x_1)]] = x_1 [[U31(x_1, x_2, x_3)]] = _|_ [[U32(x_1, x_2, x_3)]] = _|_ [[U33(x_1, x_2, x_3)]] = _|_ [[U34(x_1, x_2, x_3)]] = _|_ [[U35(x_1, x_2)]] = x_1 [[U36(x_1)]] = x_1 [[U41(x_1, x_2)]] = _|_ [[U42(x_1)]] = _|_ [[U51(x_1)]] = x_1 [[U61(x_1, x_2)]] = _|_ [[U61#(x_1, x_2)]] = U61#(x_2) [[U62(x_1)]] = _|_ [[U72(x_1, x_2)]] = U72(x_2) [[U91(x_1, x_2)]] = x_1 [[U92(x_1)]] = x_1 [[activate(x_1)]] = x_1 [[isNat(x_1)]] = _|_ [[isNatKind(x_1)]] = _|_ [[n!6220!62200]] = _|_ [[tt]] = _|_ We choose Lex = {} and Mul = {U101, U102, U103, U104, U21#, U31#, U32#, U33#, U34#, U61#, U71, U72, U81, U82, U83, U84, activate#, isNatKind#, isNat#, n!6220!6220plus, n!6220!6220s, n!6220!6220x, plus, s, x, x#}, and the following precedence: U101 = U102 = U103 = U104 = n!6220!6220x = x > U21# = U31# = U32# = U33# = U61# = isNatKind# = isNat# = x# > U34# > U71 = U72 = U81 = U82 = U83 = U84 = n!6220!6220plus = plus > activate# = n!6220!6220s = s Taking the argument function into account, and fixing the greater / greater equal choices, the constraints can be denoted as follows: U21#(X) >= activate#(X) U31#(_|_, X, Y) >= U32#(_|_, X, Y) U31#(_|_, X, Y) >= isNatKind#(X) U31#(_|_, X, Y) >= activate#(X) U31#(_|_, X, Y) >= activate#(X) U31#(_|_, X, Y) >= activate#(Y) U32#(_|_, X, Y) >= U33#(_|_, X, Y) U32#(_|_, X, Y) >= isNatKind#(Y) U32#(_|_, X, Y) >= activate#(Y) U32#(_|_, X, Y) >= activate#(X) U32#(_|_, X, Y) >= activate#(Y) U33#(_|_, X, Y) >= U34#(_|_, X, Y) U33#(_|_, X, Y) >= activate#(Y) U33#(_|_, X, Y) >= activate#(X) U33#(_|_, X, Y) >= activate#(Y) U34#(_|_, X, Y) > activate#(X) U61#(X) >= isNatKind#(X) isNat#(n!6220!6220plus(X, Y)) >= activate#(X) isNat#(n!6220!6220plus(X, Y)) >= activate#(X) isNat#(n!6220!6220plus(X, Y)) >= activate#(Y) isNat#(n!6220!6220s(X)) >= U21#(X) isNat#(n!6220!6220s(X)) >= isNatKind#(X) isNat#(n!6220!6220s(X)) >= activate#(X) isNat#(n!6220!6220s(X)) >= activate#(X) isNat#(n!6220!6220x(X, Y)) >= U31#(_|_, X, Y) isNat#(n!6220!6220x(X, Y)) >= isNatKind#(X) isNat#(n!6220!6220x(X, Y)) >= activate#(Y) isNatKind#(n!6220!6220plus(X, Y)) >= isNatKind#(X) isNatKind#(n!6220!6220plus(X, Y)) >= activate#(X) isNatKind#(n!6220!6220plus(X, Y)) >= activate#(Y) isNatKind#(n!6220!6220s(X)) >= isNatKind#(X) isNatKind#(n!6220!6220s(X)) >= activate#(X) isNatKind#(n!6220!6220x(X, Y)) >= U61#(Y) isNatKind#(n!6220!6220x(X, Y)) >= isNatKind#(X) isNatKind#(n!6220!6220x(X, Y)) >= activate#(Y) x#(X, _|_) >= isNat#(X) x#(X, s(Y)) >= isNat#(Y) activate#(n!6220!6220plus(X, Y)) >= activate#(X) activate#(n!6220!6220plus(X, Y)) >= activate#(Y) activate#(n!6220!6220s(X)) >= activate#(X) activate#(n!6220!6220x(X, Y)) >= x#(X, Y) activate#(n!6220!6220x(X, Y)) >= activate#(X) activate#(n!6220!6220x(X, Y)) >= activate#(Y) U101(_|_, X, Y) >= U102(_|_, X, Y) U102(_|_, X, Y) >= U103(_|_, X, Y) U103(_|_, X, Y) >= U104(_|_, X, Y) U104(_|_, X, Y) >= plus(x(Y, X), Y) _|_ >= _|_ _|_ >= _|_ _|_ >= _|_ _|_ >= _|_ _|_ >= _|_ _|_ >= _|_ _|_ >= _|_ _|_ >= _|_ _|_ >= _|_ _|_ >= _|_ _|_ >= _|_ _|_ >= _|_ _|_ >= _|_ _|_ >= _|_ _|_ >= _|_ _|_ >= _|_ _|_ >= _|_ _|_ >= _|_ _|_ >= _|_ _|_ >= _|_ U71(_|_, X) >= U72(X) U72(X) >= X U81(_|_, X, Y) >= U82(_|_, X, Y) U82(_|_, X, Y) >= U83(_|_, X, Y) U83(_|_, X, Y) >= U84(_|_, X, Y) U84(_|_, X, Y) >= s(plus(Y, X)) _|_ >= _|_ _|_ >= _|_ _|_ >= _|_ _|_ >= _|_ _|_ >= _|_ _|_ >= _|_ _|_ >= _|_ _|_ >= _|_ _|_ >= _|_ _|_ >= _|_ plus(X, _|_) >= U71(_|_, X) plus(X, s(Y)) >= U81(_|_, Y, X) x(X, _|_) >= _|_ x(X, s(Y)) >= U101(_|_, Y, X) _|_ >= _|_ plus(X, Y) >= n!6220!6220plus(X, Y) s(X) >= n!6220!6220s(X) x(X, Y) >= n!6220!6220x(X, Y) _|_ >= _|_ n!6220!6220plus(X, Y) >= plus(X, Y) n!6220!6220s(X) >= s(X) n!6220!6220x(X, Y) >= x(X, Y) X >= X With these choices, we have: 1] U21#(X) >= activate#(X) because [2], by (Star) 2] U21#*(X) >= activate#(X) because U21# > activate# and [3], by (Copy) 3] U21#*(X) >= X because [4], by (Select) 4] X >= X by (Meta) 5] U31#(_|_, X, Y) >= U32#(_|_, X, Y) because U31# = U32#, U31# in Mul, [6], [7] and [8], by (Fun) 6] _|_ >= _|_ by (Bot) 7] X >= X by (Meta) 8] Y >= Y by (Meta) 9] U31#(_|_, X, Y) >= isNatKind#(X) because [10], by (Star) 10] U31#*(_|_, X, Y) >= isNatKind#(X) because U31# = isNatKind#, U31# in Mul and [7], by (Stat) 11] U31#(_|_, X, Y) >= activate#(X) because [12], by (Star) 12] U31#*(_|_, X, Y) >= activate#(X) because U31# > activate# and [13], by (Copy) 13] U31#*(_|_, X, Y) >= X because [7], by (Select) 14] U31#(_|_, X, Y) >= activate#(X) because [12], by (Star) 15] U31#(_|_, X, Y) >= activate#(Y) because [16], by (Star) 16] U31#*(_|_, X, Y) >= activate#(Y) because U31# > activate# and [17], by (Copy) 17] U31#*(_|_, X, Y) >= Y because [8], by (Select) 18] U32#(_|_, X, Y) >= U33#(_|_, X, Y) because U32# = U33#, U32# in Mul, [19], [7] and [8], by (Fun) 19] _|_ >= _|_ by (Bot) 20] U32#(_|_, X, Y) >= isNatKind#(Y) because [21], by (Star) 21] U32#*(_|_, X, Y) >= isNatKind#(Y) because U32# = isNatKind#, U32# in Mul and [8], by (Stat) 22] U32#(_|_, X, Y) >= activate#(Y) because [23], by (Star) 23] U32#*(_|_, X, Y) >= activate#(Y) because U32# > activate# and [24], by (Copy) 24] U32#*(_|_, X, Y) >= Y because [8], by (Select) 25] U32#(_|_, X, Y) >= activate#(X) because [26], by (Star) 26] U32#*(_|_, X, Y) >= activate#(X) because U32# > activate# and [27], by (Copy) 27] U32#*(_|_, X, Y) >= X because [7], by (Select) 28] U32#(_|_, X, Y) >= activate#(Y) because [23], by (Star) 29] U33#(_|_, X, Y) >= U34#(_|_, X, Y) because [30], by (Star) 30] U33#*(_|_, X, Y) >= U34#(_|_, X, Y) because U33# > U34#, [31], [32] and [33], by (Copy) 31] U33#*(_|_, X, Y) >= _|_ by (Bot) 32] U33#*(_|_, X, Y) >= X because [7], by (Select) 33] U33#*(_|_, X, Y) >= Y because [8], by (Select) 34] U33#(_|_, X, Y) >= activate#(Y) because [35], by (Star) 35] U33#*(_|_, X, Y) >= activate#(Y) because U33# > activate# and [33], by (Copy) 36] U33#(_|_, X, Y) >= activate#(X) because [37], by (Star) 37] U33#*(_|_, X, Y) >= activate#(X) because U33# > activate# and [32], by (Copy) 38] U33#(_|_, X, Y) >= activate#(Y) because [35], by (Star) 39] U34#(_|_, X, Y) > activate#(X) because [40], by definition 40] U34#*(_|_, X, Y) >= activate#(X) because U34# > activate# and [41], by (Copy) 41] U34#*(_|_, X, Y) >= X because [7], by (Select) 42] U61#(X) >= isNatKind#(X) because U61# = isNatKind#, U61# in Mul and [8], by (Fun) 43] isNat#(n!6220!6220plus(X, Y)) >= activate#(X) because [44], by (Star) 44] isNat#*(n!6220!6220plus(X, Y)) >= activate#(X) because [45], by (Select) 45] n!6220!6220plus(X, Y) >= activate#(X) because [46], by (Star) 46] n!6220!6220plus*(X, Y) >= activate#(X) because n!6220!6220plus > activate# and [47], by (Copy) 47] n!6220!6220plus*(X, Y) >= X because [7], by (Select) 48] isNat#(n!6220!6220plus(X, Y)) >= activate#(X) because [44], by (Star) 49] isNat#(n!6220!6220plus(X, Y)) >= activate#(Y) because [50], by (Star) 50] isNat#*(n!6220!6220plus(X, Y)) >= activate#(Y) because [51], by (Select) 51] n!6220!6220plus(X, Y) >= activate#(Y) because [52], by (Star) 52] n!6220!6220plus*(X, Y) >= activate#(Y) because n!6220!6220plus > activate# and [53], by (Copy) 53] n!6220!6220plus*(X, Y) >= Y because [8], by (Select) 54] isNat#(n!6220!6220s(X)) >= U21#(X) because isNat# = U21#, isNat# in Mul and [55], by (Fun) 55] n!6220!6220s(X) >= X because [56], by (Star) 56] n!6220!6220s*(X) >= X because [7], by (Select) 57] isNat#(n!6220!6220s(X)) >= isNatKind#(X) because isNat# = isNatKind#, isNat# in Mul and [55], by (Fun) 58] isNat#(n!6220!6220s(X)) >= activate#(X) because [59], by (Star) 59] isNat#*(n!6220!6220s(X)) >= activate#(X) because isNat# > activate# and [60], by (Copy) 60] isNat#*(n!6220!6220s(X)) >= X because [55], by (Select) 61] isNat#(n!6220!6220s(X)) >= activate#(X) because [59], by (Star) 62] isNat#(n!6220!6220x(X, Y)) >= U31#(_|_, X, Y) because [63], by (Star) 63] isNat#*(n!6220!6220x(X, Y)) >= U31#(_|_, X, Y) because isNat# = U31#, isNat# in Mul, [64], [66] and [68], by (Stat) 64] n!6220!6220x(X, Y) > _|_ because [65], by definition 65] n!6220!6220x*(X, Y) >= _|_ by (Bot) 66] n!6220!6220x(X, Y) > X because [67], by definition 67] n!6220!6220x*(X, Y) >= X because [7], by (Select) 68] n!6220!6220x(X, Y) > Y because [69], by definition 69] n!6220!6220x*(X, Y) >= Y because [8], by (Select) 70] isNat#(n!6220!6220x(X, Y)) >= isNatKind#(X) because isNat# = isNatKind#, isNat# in Mul and [71], by (Fun) 71] n!6220!6220x(X, Y) >= X because [67], by (Star) 72] isNat#(n!6220!6220x(X, Y)) >= activate#(Y) because [73], by (Star) 73] isNat#*(n!6220!6220x(X, Y)) >= activate#(Y) because isNat# > activate# and [74], by (Copy) 74] isNat#*(n!6220!6220x(X, Y)) >= Y because [75], by (Select) 75] n!6220!6220x(X, Y) >= Y because [69], by (Star) 76] isNatKind#(n!6220!6220plus(X, Y)) >= isNatKind#(X) because [77], by (Star) 77] isNatKind#*(n!6220!6220plus(X, Y)) >= isNatKind#(X) because isNatKind# in Mul and [78], by (Stat) 78] n!6220!6220plus(X, Y) > X because [79], by definition 79] n!6220!6220plus*(X, Y) >= X because [7], by (Select) 80] isNatKind#(n!6220!6220plus(X, Y)) >= activate#(X) because [81], by (Star) 81] isNatKind#*(n!6220!6220plus(X, Y)) >= activate#(X) because [45], by (Select) 82] isNatKind#(n!6220!6220plus(X, Y)) >= activate#(Y) because [83], by (Star) 83] isNatKind#*(n!6220!6220plus(X, Y)) >= activate#(Y) because isNatKind# > activate# and [84], by (Copy) 84] isNatKind#*(n!6220!6220plus(X, Y)) >= Y because [85], by (Select) 85] n!6220!6220plus(X, Y) >= Y because [53], by (Star) 86] isNatKind#(n!6220!6220s(X)) >= isNatKind#(X) because isNatKind# in Mul and [55], by (Fun) 87] isNatKind#(n!6220!6220s(X)) >= activate#(X) because [88], by (Star) 88] isNatKind#*(n!6220!6220s(X)) >= activate#(X) because isNatKind# > activate# and [89], by (Copy) 89] isNatKind#*(n!6220!6220s(X)) >= X because [55], by (Select) 90] isNatKind#(n!6220!6220x(X, Y)) >= U61#(Y) because isNatKind# = U61#, isNatKind# in Mul and [91], by (Fun) 91] n!6220!6220x(X, Y) >= Y because [69], by (Star) 92] isNatKind#(n!6220!6220x(X, Y)) >= isNatKind#(X) because isNatKind# in Mul and [71], by (Fun) 93] isNatKind#(n!6220!6220x(X, Y)) >= activate#(Y) because [94], by (Star) 94] isNatKind#*(n!6220!6220x(X, Y)) >= activate#(Y) because isNatKind# > activate# and [95], by (Copy) 95] isNatKind#*(n!6220!6220x(X, Y)) >= Y because [91], by (Select) 96] x#(X, _|_) >= isNat#(X) because [97], by (Star) 97] x#*(X, _|_) >= isNat#(X) because x# = isNat#, x# in Mul and [98], by (Stat) 98] X >= X by (Meta) 99] x#(X, s(Y)) >= isNat#(Y) because [100], by (Star) 100] x#*(X, s(Y)) >= isNat#(Y) because x# = isNat#, x# in Mul and [101], by (Stat) 101] s(Y) > Y because [102], by definition 102] s*(Y) >= Y because [103], by (Select) 103] Y >= Y by (Meta) 104] activate#(n!6220!6220plus(X, Y)) >= activate#(X) because activate# in Mul and [105], by (Fun) 105] n!6220!6220plus(X, Y) >= X because [106], by (Star) 106] n!6220!6220plus*(X, Y) >= X because [107], by (Select) 107] X >= X by (Meta) 108] activate#(n!6220!6220plus(X, Y)) >= activate#(Y) because activate# in Mul and [109], by (Fun) 109] n!6220!6220plus(X, Y) >= Y because [110], by (Star) 110] n!6220!6220plus*(X, Y) >= Y because [111], by (Select) 111] Y >= Y by (Meta) 112] activate#(n!6220!6220s(X)) >= activate#(X) because [113], by (Star) 113] activate#*(n!6220!6220s(X)) >= activate#(X) because [114], by (Select) 114] n!6220!6220s(X) >= activate#(X) because n!6220!6220s = activate#, n!6220!6220s in Mul and [115], by (Fun) 115] X >= X by (Meta) 116] activate#(n!6220!6220x(X, Y)) >= x#(X, Y) because [117], by (Star) 117] activate#*(n!6220!6220x(X, Y)) >= x#(X, Y) because [118], by (Select) 118] n!6220!6220x(X, Y) >= x#(X, Y) because [119], by (Star) 119] n!6220!6220x*(X, Y) >= x#(X, Y) because n!6220!6220x > x#, [120] and [121], by (Copy) 120] n!6220!6220x*(X, Y) >= X because [107], by (Select) 121] n!6220!6220x*(X, Y) >= Y because [111], by (Select) 122] activate#(n!6220!6220x(X, Y)) >= activate#(X) because activate# in Mul and [123], by (Fun) 123] n!6220!6220x(X, Y) >= X because [120], by (Star) 124] activate#(n!6220!6220x(X, Y)) >= activate#(Y) because activate# in Mul and [125], by (Fun) 125] n!6220!6220x(X, Y) >= Y because [121], by (Star) 126] U101(_|_, X, Y) >= U102(_|_, X, Y) because U101 = U102, U101 in Mul, [127], [128] and [129], by (Fun) 127] _|_ >= _|_ by (Bot) 128] X >= X by (Meta) 129] Y >= Y by (Meta) 130] U102(_|_, X, Y) >= U103(_|_, X, Y) because U102 = U103, U102 in Mul, [131], [128] and [129], by (Fun) 131] _|_ >= _|_ by (Bot) 132] U103(_|_, X, Y) >= U104(_|_, X, Y) because U103 = U104, U103 in Mul, [133], [128] and [129], by (Fun) 133] _|_ >= _|_ by (Bot) 134] U104(_|_, X, Y) >= plus(x(Y, X), Y) because [135], by (Star) 135] U104*(_|_, X, Y) >= plus(x(Y, X), Y) because U104 > plus, [136] and [137], by (Copy) 136] U104*(_|_, X, Y) >= x(Y, X) because U104 = x, U104 in Mul, [128] and [129], by (Stat) 137] U104*(_|_, X, Y) >= Y because [129], by (Select) 138] _|_ >= _|_ by (Bot) 139] _|_ >= _|_ by (Bot) 140] _|_ >= _|_ by (Bot) 141] _|_ >= _|_ by (Bot) 142] _|_ >= _|_ by (Bot) 143] _|_ >= _|_ by (Bot) 144] _|_ >= _|_ by (Bot) 145] _|_ >= _|_ by (Bot) 146] _|_ >= _|_ by (Bot) 147] _|_ >= _|_ by (Bot) 148] _|_ >= _|_ by (Bot) 149] _|_ >= _|_ by (Bot) 150] _|_ >= _|_ by (Bot) 151] _|_ >= _|_ by (Bot) 152] _|_ >= _|_ by (Bot) 153] _|_ >= _|_ by (Bot) 154] _|_ >= _|_ by (Bot) 155] _|_ >= _|_ by (Bot) 156] _|_ >= _|_ by (Bot) 157] _|_ >= _|_ by (Bot) 158] U71(_|_, X) >= U72(X) because [159], by (Star) 159] U71*(_|_, X) >= U72(X) because U71 = U72, U71 in Mul and [129], by (Stat) 160] U72(X) >= X because [161], by (Star) 161] U72*(X) >= X because [129], by (Select) 162] U81(_|_, X, Y) >= U82(_|_, X, Y) because U81 = U82, U81 in Mul, [127], [128] and [129], by (Fun) 163] U82(_|_, X, Y) >= U83(_|_, X, Y) because U82 = U83, U82 in Mul, [131], [128] and [129], by (Fun) 164] U83(_|_, X, Y) >= U84(_|_, X, Y) because U83 = U84, U83 in Mul, [133], [128] and [129], by (Fun) 165] U84(_|_, X, Y) >= s(plus(Y, X)) because [166], by (Star) 166] U84*(_|_, X, Y) >= s(plus(Y, X)) because U84 > s and [167], by (Copy) 167] U84*(_|_, X, Y) >= plus(Y, X) because U84 = plus, U84 in Mul, [128] and [129], by (Stat) 168] _|_ >= _|_ by (Bot) 169] _|_ >= _|_ by (Bot) 170] _|_ >= _|_ by (Bot) 171] _|_ >= _|_ by (Bot) 172] _|_ >= _|_ by (Bot) 173] _|_ >= _|_ by (Bot) 174] _|_ >= _|_ by (Bot) 175] _|_ >= _|_ by (Bot) 176] _|_ >= _|_ by (Bot) 177] _|_ >= _|_ by (Bot) 178] plus(X, _|_) >= U71(_|_, X) because plus = U71, plus in Mul, [129] and [179], by (Fun) 179] _|_ >= _|_ by (Bot) 180] plus(X, s(Y)) >= U81(_|_, Y, X) because [181], by (Star) 181] plus*(X, s(Y)) >= U81(_|_, Y, X) because plus = U81, plus in Mul, [129], [182] and [101], by (Stat) 182] s(Y) > _|_ because [183], by definition 183] s*(Y) >= _|_ by (Bot) 184] x(X, _|_) >= _|_ by (Bot) 185] x(X, s(Y)) >= U101(_|_, Y, X) because [186], by (Star) 186] x*(X, s(Y)) >= U101(_|_, Y, X) because x = U101, x in Mul, [129], [182] and [101], by (Stat) 187] _|_ >= _|_ by (Bot) 188] plus(X, Y) >= n!6220!6220plus(X, Y) because plus = n!6220!6220plus, plus in Mul, [189] and [190], by (Fun) 189] X >= X by (Meta) 190] Y >= Y by (Meta) 191] s(X) >= n!6220!6220s(X) because s = n!6220!6220s, s in Mul and [115], by (Fun) 192] x(X, Y) >= n!6220!6220x(X, Y) because x = n!6220!6220x, x in Mul, [189] and [190], by (Fun) 193] _|_ >= _|_ by (Bot) 194] n!6220!6220plus(X, Y) >= plus(X, Y) because n!6220!6220plus = plus, n!6220!6220plus in Mul, [195] and [196], by (Fun) 195] X >= X by (Meta) 196] Y >= Y by (Meta) 197] n!6220!6220s(X) >= s(X) because n!6220!6220s = s, n!6220!6220s in Mul and [198], by (Fun) 198] X >= X by (Meta) 199] n!6220!6220x(X, Y) >= x(X, Y) because n!6220!6220x = x, n!6220!6220x in Mul, [195] and [196], by (Fun) 200] X >= X by (Meta) By the observations in [Kop12, Sec. 6.6], this reduction pair suffices; we may thus replace the dependency pair problem (P_16, R_0, minimal, formative) by (P_17, R_0, minimal, formative), where P_17 consists of: U21#(tt, X) =#> activate#(X) U31#(tt, X, Y) =#> U32#(isNatKind(activate(X)), activate(X), activate(Y)) U31#(tt, X, Y) =#> isNatKind#(activate(X)) U31#(tt, X, Y) =#> activate#(X) U31#(tt, X, Y) =#> activate#(X) U31#(tt, X, Y) =#> activate#(Y) U32#(tt, X, Y) =#> U33#(isNatKind(activate(Y)), activate(X), activate(Y)) U32#(tt, X, Y) =#> isNatKind#(activate(Y)) U32#(tt, X, Y) =#> activate#(Y) U32#(tt, X, Y) =#> activate#(X) U32#(tt, X, Y) =#> activate#(Y) U33#(tt, X, Y) =#> U34#(isNatKind(activate(Y)), activate(X), activate(Y)) U33#(tt, X, Y) =#> activate#(Y) U33#(tt, X, Y) =#> activate#(X) U33#(tt, X, Y) =#> activate#(Y) U61#(tt, X) =#> isNatKind#(activate(X)) isNat#(n!6220!6220plus(X, Y)) =#> activate#(X) isNat#(n!6220!6220plus(X, Y)) =#> activate#(X) isNat#(n!6220!6220plus(X, Y)) =#> activate#(Y) isNat#(n!6220!6220s(X)) =#> U21#(isNatKind(activate(X)), activate(X)) isNat#(n!6220!6220s(X)) =#> isNatKind#(activate(X)) isNat#(n!6220!6220s(X)) =#> activate#(X) isNat#(n!6220!6220s(X)) =#> activate#(X) isNat#(n!6220!6220x(X, Y)) =#> U31#(isNatKind(activate(X)), activate(X), activate(Y)) isNat#(n!6220!6220x(X, Y)) =#> isNatKind#(activate(X)) isNat#(n!6220!6220x(X, Y)) =#> activate#(Y) isNatKind#(n!6220!6220plus(X, Y)) =#> isNatKind#(activate(X)) isNatKind#(n!6220!6220plus(X, Y)) =#> activate#(X) isNatKind#(n!6220!6220plus(X, Y)) =#> activate#(Y) isNatKind#(n!6220!6220s(X)) =#> isNatKind#(activate(X)) isNatKind#(n!6220!6220s(X)) =#> activate#(X) isNatKind#(n!6220!6220x(X, Y)) =#> U61#(isNatKind(activate(X)), activate(Y)) isNatKind#(n!6220!6220x(X, Y)) =#> isNatKind#(activate(X)) isNatKind#(n!6220!6220x(X, Y)) =#> activate#(Y) x#(X, 0) =#> isNat#(X) x#(X, s(Y)) =#> isNat#(Y) activate#(n!6220!6220plus(X, Y)) =#> activate#(X) activate#(n!6220!6220plus(X, Y)) =#> activate#(Y) activate#(n!6220!6220s(X)) =#> activate#(X) activate#(n!6220!6220x(X, Y)) =#> x#(activate(X), activate(Y)) activate#(n!6220!6220x(X, Y)) =#> activate#(X) activate#(n!6220!6220x(X, Y)) =#> activate#(Y) Thus, the original system is terminating if (P_17, R_0, minimal, formative) is finite. We consider the dependency pair problem (P_17, R_0, minimal, formative). We place the elements of P in a dependency graph approximation G (see e.g. [Kop12, Thm. 7.27, 7.29], as follows: * 0 : 36, 37, 38, 39, 40, 41 * 1 : 6, 7, 8, 9, 10 * 2 : 26, 27, 28, 29, 30, 31, 32, 33 * 3 : 36, 37, 38, 39, 40, 41 * 4 : 36, 37, 38, 39, 40, 41 * 5 : 36, 37, 38, 39, 40, 41 * 6 : 11, 12, 13, 14 * 7 : 26, 27, 28, 29, 30, 31, 32, 33 * 8 : 36, 37, 38, 39, 40, 41 * 9 : 36, 37, 38, 39, 40, 41 * 10 : 36, 37, 38, 39, 40, 41 * 11 : * 12 : 36, 37, 38, 39, 40, 41 * 13 : 36, 37, 38, 39, 40, 41 * 14 : 36, 37, 38, 39, 40, 41 * 15 : 26, 27, 28, 29, 30, 31, 32, 33 * 16 : 36, 37, 38, 39, 40, 41 * 17 : 36, 37, 38, 39, 40, 41 * 18 : 36, 37, 38, 39, 40, 41 * 19 : 0 * 20 : 26, 27, 28, 29, 30, 31, 32, 33 * 21 : 36, 37, 38, 39, 40, 41 * 22 : 36, 37, 38, 39, 40, 41 * 23 : 1, 2, 3, 4, 5 * 24 : 26, 27, 28, 29, 30, 31, 32, 33 * 25 : 36, 37, 38, 39, 40, 41 * 26 : 26, 27, 28, 29, 30, 31, 32, 33 * 27 : 36, 37, 38, 39, 40, 41 * 28 : 36, 37, 38, 39, 40, 41 * 29 : 26, 27, 28, 29, 30, 31, 32, 33 * 30 : 36, 37, 38, 39, 40, 41 * 31 : 15 * 32 : 26, 27, 28, 29, 30, 31, 32, 33 * 33 : 36, 37, 38, 39, 40, 41 * 34 : 16, 17, 18, 19, 20, 21, 22, 23, 24, 25 * 35 : 16, 17, 18, 19, 20, 21, 22, 23, 24, 25 * 36 : 36, 37, 38, 39, 40, 41 * 37 : 36, 37, 38, 39, 40, 41 * 38 : 36, 37, 38, 39, 40, 41 * 39 : 34, 35 * 40 : 36, 37, 38, 39, 40, 41 * 41 : 36, 37, 38, 39, 40, 41 This graph has the following strongly connected components: P_18: U21#(tt, X) =#> activate#(X) U31#(tt, X, Y) =#> U32#(isNatKind(activate(X)), activate(X), activate(Y)) U31#(tt, X, Y) =#> isNatKind#(activate(X)) U31#(tt, X, Y) =#> activate#(X) U31#(tt, X, Y) =#> activate#(X) U31#(tt, X, Y) =#> activate#(Y) U32#(tt, X, Y) =#> U33#(isNatKind(activate(Y)), activate(X), activate(Y)) U32#(tt, X, Y) =#> isNatKind#(activate(Y)) U32#(tt, X, Y) =#> activate#(Y) U32#(tt, X, Y) =#> activate#(X) U32#(tt, X, Y) =#> activate#(Y) U33#(tt, X, Y) =#> activate#(Y) U33#(tt, X, Y) =#> activate#(X) U33#(tt, X, Y) =#> activate#(Y) U61#(tt, X) =#> isNatKind#(activate(X)) isNat#(n!6220!6220plus(X, Y)) =#> activate#(X) isNat#(n!6220!6220plus(X, Y)) =#> activate#(X) isNat#(n!6220!6220plus(X, Y)) =#> activate#(Y) isNat#(n!6220!6220s(X)) =#> U21#(isNatKind(activate(X)), activate(X)) isNat#(n!6220!6220s(X)) =#> isNatKind#(activate(X)) isNat#(n!6220!6220s(X)) =#> activate#(X) isNat#(n!6220!6220s(X)) =#> activate#(X) isNat#(n!6220!6220x(X, Y)) =#> U31#(isNatKind(activate(X)), activate(X), activate(Y)) isNat#(n!6220!6220x(X, Y)) =#> isNatKind#(activate(X)) isNat#(n!6220!6220x(X, Y)) =#> activate#(Y) isNatKind#(n!6220!6220plus(X, Y)) =#> isNatKind#(activate(X)) isNatKind#(n!6220!6220plus(X, Y)) =#> activate#(X) isNatKind#(n!6220!6220plus(X, Y)) =#> activate#(Y) isNatKind#(n!6220!6220s(X)) =#> isNatKind#(activate(X)) isNatKind#(n!6220!6220s(X)) =#> activate#(X) isNatKind#(n!6220!6220x(X, Y)) =#> U61#(isNatKind(activate(X)), activate(Y)) isNatKind#(n!6220!6220x(X, Y)) =#> isNatKind#(activate(X)) isNatKind#(n!6220!6220x(X, Y)) =#> activate#(Y) x#(X, 0) =#> isNat#(X) x#(X, s(Y)) =#> isNat#(Y) activate#(n!6220!6220plus(X, Y)) =#> activate#(X) activate#(n!6220!6220plus(X, Y)) =#> activate#(Y) activate#(n!6220!6220s(X)) =#> activate#(X) activate#(n!6220!6220x(X, Y)) =#> x#(activate(X), activate(Y)) activate#(n!6220!6220x(X, Y)) =#> activate#(X) activate#(n!6220!6220x(X, Y)) =#> activate#(Y) By [Kop12, Thm. 7.31], we may replace any dependency pair problem (P_17, R_0, m, f) by (P_18, R_0, m, f). Thus, the original system is terminating if (P_18, R_0, minimal, formative) is finite. We consider the dependency pair problem (P_18, R_0, minimal, formative). We will use the reduction pair processor [Kop12, Thm. 7.16]. It suffices to find a standard reduction pair [Kop12, Def. 6.69]. Thus, we must orient: U21#(tt, X) >? activate#(X) U31#(tt, X, Y) >? U32#(isNatKind(activate(X)), activate(X), activate(Y)) U31#(tt, X, Y) >? isNatKind#(activate(X)) U31#(tt, X, Y) >? activate#(X) U31#(tt, X, Y) >? activate#(X) U31#(tt, X, Y) >? activate#(Y) U32#(tt, X, Y) >? U33#(isNatKind(activate(Y)), activate(X), activate(Y)) U32#(tt, X, Y) >? isNatKind#(activate(Y)) U32#(tt, X, Y) >? activate#(Y) U32#(tt, X, Y) >? activate#(X) U32#(tt, X, Y) >? activate#(Y) U33#(tt, X, Y) >? activate#(Y) U33#(tt, X, Y) >? activate#(X) U33#(tt, X, Y) >? activate#(Y) U61#(tt, X) >? isNatKind#(activate(X)) isNat#(n!6220!6220plus(X, Y)) >? activate#(X) isNat#(n!6220!6220plus(X, Y)) >? activate#(X) isNat#(n!6220!6220plus(X, Y)) >? activate#(Y) isNat#(n!6220!6220s(X)) >? U21#(isNatKind(activate(X)), activate(X)) isNat#(n!6220!6220s(X)) >? isNatKind#(activate(X)) isNat#(n!6220!6220s(X)) >? activate#(X) isNat#(n!6220!6220s(X)) >? activate#(X) isNat#(n!6220!6220x(X, Y)) >? U31#(isNatKind(activate(X)), activate(X), activate(Y)) isNat#(n!6220!6220x(X, Y)) >? isNatKind#(activate(X)) isNat#(n!6220!6220x(X, Y)) >? activate#(Y) isNatKind#(n!6220!6220plus(X, Y)) >? isNatKind#(activate(X)) isNatKind#(n!6220!6220plus(X, Y)) >? activate#(X) isNatKind#(n!6220!6220plus(X, Y)) >? activate#(Y) isNatKind#(n!6220!6220s(X)) >? isNatKind#(activate(X)) isNatKind#(n!6220!6220s(X)) >? activate#(X) isNatKind#(n!6220!6220x(X, Y)) >? U61#(isNatKind(activate(X)), activate(Y)) isNatKind#(n!6220!6220x(X, Y)) >? isNatKind#(activate(X)) isNatKind#(n!6220!6220x(X, Y)) >? activate#(Y) x#(X, 0) >? isNat#(X) x#(X, s(Y)) >? isNat#(Y) activate#(n!6220!6220plus(X, Y)) >? activate#(X) activate#(n!6220!6220plus(X, Y)) >? activate#(Y) activate#(n!6220!6220s(X)) >? activate#(X) activate#(n!6220!6220x(X, Y)) >? x#(activate(X), activate(Y)) activate#(n!6220!6220x(X, Y)) >? activate#(X) activate#(n!6220!6220x(X, Y)) >? activate#(Y) U101(tt, X, Y) >= U102(isNatKind(activate(X)), activate(X), activate(Y)) U102(tt, X, Y) >= U103(isNat(activate(Y)), activate(X), activate(Y)) U103(tt, X, Y) >= U104(isNatKind(activate(Y)), activate(X), activate(Y)) U104(tt, X, Y) >= plus(x(activate(Y), activate(X)), activate(Y)) U11(tt, X, Y) >= U12(isNatKind(activate(X)), activate(X), activate(Y)) U12(tt, X, Y) >= U13(isNatKind(activate(Y)), activate(X), activate(Y)) U13(tt, X, Y) >= U14(isNatKind(activate(Y)), activate(X), activate(Y)) U14(tt, X, Y) >= U15(isNat(activate(X)), activate(Y)) U15(tt, X) >= U16(isNat(activate(X))) U16(tt) >= tt U21(tt, X) >= U22(isNatKind(activate(X)), activate(X)) U22(tt, X) >= U23(isNat(activate(X))) U23(tt) >= tt U31(tt, X, Y) >= U32(isNatKind(activate(X)), activate(X), activate(Y)) U32(tt, X, Y) >= U33(isNatKind(activate(Y)), activate(X), activate(Y)) U33(tt, X, Y) >= U34(isNatKind(activate(Y)), activate(X), activate(Y)) U34(tt, X, Y) >= U35(isNat(activate(X)), activate(Y)) U35(tt, X) >= U36(isNat(activate(X))) U36(tt) >= tt U41(tt, X) >= U42(isNatKind(activate(X))) U42(tt) >= tt U51(tt) >= tt U61(tt, X) >= U62(isNatKind(activate(X))) U62(tt) >= tt U71(tt, X) >= U72(isNatKind(activate(X)), activate(X)) U72(tt, X) >= activate(X) U81(tt, X, Y) >= U82(isNatKind(activate(X)), activate(X), activate(Y)) U82(tt, X, Y) >= U83(isNat(activate(Y)), activate(X), activate(Y)) U83(tt, X, Y) >= U84(isNatKind(activate(Y)), activate(X), activate(Y)) U84(tt, X, Y) >= s(plus(activate(Y), activate(X))) U91(tt, X) >= U92(isNatKind(activate(X))) U92(tt) >= 0 isNat(n!6220!62200) >= tt isNat(n!6220!6220plus(X, Y)) >= U11(isNatKind(activate(X)), activate(X), activate(Y)) isNat(n!6220!6220s(X)) >= U21(isNatKind(activate(X)), activate(X)) isNat(n!6220!6220x(X, Y)) >= U31(isNatKind(activate(X)), activate(X), activate(Y)) isNatKind(n!6220!62200) >= tt isNatKind(n!6220!6220plus(X, Y)) >= U41(isNatKind(activate(X)), activate(Y)) isNatKind(n!6220!6220s(X)) >= U51(isNatKind(activate(X))) isNatKind(n!6220!6220x(X, Y)) >= U61(isNatKind(activate(X)), activate(Y)) plus(X, 0) >= U71(isNat(X), X) plus(X, s(Y)) >= U81(isNat(Y), Y, X) x(X, 0) >= U91(isNat(X), X) x(X, s(Y)) >= U101(isNat(Y), Y, X) 0 >= n!6220!62200 plus(X, Y) >= n!6220!6220plus(X, Y) s(X) >= n!6220!6220s(X) x(X, Y) >= n!6220!6220x(X, Y) activate(n!6220!62200) >= 0 activate(n!6220!6220plus(X, Y)) >= plus(activate(X), activate(Y)) activate(n!6220!6220s(X)) >= s(activate(X)) activate(n!6220!6220x(X, Y)) >= x(activate(X), activate(Y)) activate(X) >= X Since this representation is not advantageous for the higher-order recursive path ordering, we present the strict requirements in their unextended form, which is not problematic since for any F, s and substituion gamma: (F s)gamma beta-reduces to F(s)gamma.) We use a recursive path ordering as defined in [Kop12, Chapter 5]. Argument functions: [[0]] = _|_ [[U11(x_1, x_2, x_3)]] = x_1 [[U12(x_1, x_2, x_3)]] = U12 [[U13(x_1, x_2, x_3)]] = x_1 [[U14(x_1, x_2, x_3)]] = U14 [[U15(x_1, x_2)]] = x_1 [[U16(x_1)]] = x_1 [[U21(x_1, x_2)]] = U21 [[U22(x_1, x_2)]] = U22 [[U23(x_1)]] = x_1 [[U31(x_1, x_2, x_3)]] = U31 [[U32(x_1, x_2, x_3)]] = U32 [[U33(x_1, x_2, x_3)]] = U33 [[U34(x_1, x_2, x_3)]] = x_1 [[U35(x_1, x_2)]] = x_1 [[U36(x_1)]] = x_1 [[U41(x_1, x_2)]] = x_1 [[U42(x_1)]] = x_1 [[U51(x_1)]] = x_1 [[U61(x_1, x_2)]] = x_1 [[U61#(x_1, x_2)]] = U61#(x_2) [[U62(x_1)]] = x_1 [[U71(x_1, x_2)]] = x_2 [[U72(x_1, x_2)]] = x_2 [[U92(x_1)]] = x_1 [[activate(x_1)]] = x_1 [[isNat(x_1)]] = isNat [[isNatKind(x_1)]] = isNatKind [[n!6220!62200]] = _|_ We choose Lex = {} and Mul = {U101, U102, U103, U104, U12, U14, U21, U21#, U22, U31, U31#, U32, U32#, U33, U33#, U61#, U81, U82, U83, U84, U91, activate#, isNat, isNatKind, isNatKind#, isNat#, n!6220!6220plus, n!6220!6220s, n!6220!6220x, plus, s, tt, x, x#}, and the following precedence: U101 = U102 = U103 = U104 = n!6220!6220x = x > isNat# = x# > U31# = U32# = U33# = U61# = isNatKind# > U21# > activate# > U81 = U82 = U83 = U84 = n!6220!6220plus = plus > n!6220!6220s = s > U12 = U14 = U21 = U22 = U31 = U32 = U33 = isNat = isNatKind = tt > U91 Taking the argument function into account, and fixing the greater / greater equal choices, the constraints can be denoted as follows: U21#(tt, X) >= activate#(X) U31#(tt, X, Y) >= U32#(isNatKind, X, Y) U31#(tt, X, Y) >= isNatKind#(X) U31#(tt, X, Y) >= activate#(X) U31#(tt, X, Y) >= activate#(X) U31#(tt, X, Y) >= activate#(Y) U32#(tt, X, Y) >= U33#(isNatKind, X, Y) U32#(tt, X, Y) >= isNatKind#(Y) U32#(tt, X, Y) >= activate#(Y) U32#(tt, X, Y) >= activate#(X) U32#(tt, X, Y) >= activate#(Y) U33#(tt, X, Y) >= activate#(Y) U33#(tt, X, Y) > activate#(X) U33#(tt, X, Y) >= activate#(Y) U61#(X) >= isNatKind#(X) isNat#(n!6220!6220plus(X, Y)) >= activate#(X) isNat#(n!6220!6220plus(X, Y)) >= activate#(X) isNat#(n!6220!6220plus(X, Y)) >= activate#(Y) isNat#(n!6220!6220s(X)) >= U21#(isNatKind, X) isNat#(n!6220!6220s(X)) >= isNatKind#(X) isNat#(n!6220!6220s(X)) >= activate#(X) isNat#(n!6220!6220s(X)) >= activate#(X) isNat#(n!6220!6220x(X, Y)) >= U31#(isNatKind, X, Y) isNat#(n!6220!6220x(X, Y)) >= isNatKind#(X) isNat#(n!6220!6220x(X, Y)) >= activate#(Y) isNatKind#(n!6220!6220plus(X, Y)) >= isNatKind#(X) isNatKind#(n!6220!6220plus(X, Y)) >= activate#(X) isNatKind#(n!6220!6220plus(X, Y)) >= activate#(Y) isNatKind#(n!6220!6220s(X)) >= isNatKind#(X) isNatKind#(n!6220!6220s(X)) >= activate#(X) isNatKind#(n!6220!6220x(X, Y)) >= U61#(Y) isNatKind#(n!6220!6220x(X, Y)) >= isNatKind#(X) isNatKind#(n!6220!6220x(X, Y)) >= activate#(Y) x#(X, _|_) >= isNat#(X) x#(X, s(Y)) >= isNat#(Y) activate#(n!6220!6220plus(X, Y)) >= activate#(X) activate#(n!6220!6220plus(X, Y)) >= activate#(Y) activate#(n!6220!6220s(X)) >= activate#(X) activate#(n!6220!6220x(X, Y)) >= x#(X, Y) activate#(n!6220!6220x(X, Y)) >= activate#(X) activate#(n!6220!6220x(X, Y)) >= activate#(Y) U101(tt, X, Y) >= U102(isNatKind, X, Y) U102(tt, X, Y) >= U103(isNat, X, Y) U103(tt, X, Y) >= U104(isNatKind, X, Y) U104(tt, X, Y) >= plus(x(Y, X), Y) tt >= U12 U12 >= isNatKind tt >= U14 U14 >= isNat tt >= isNat tt >= tt U21 >= U22 U22 >= isNat tt >= tt U31 >= U32 U32 >= U33 U33 >= isNatKind tt >= isNat tt >= isNat tt >= tt tt >= isNatKind tt >= tt tt >= tt tt >= isNatKind tt >= tt X >= X X >= X U81(tt, X, Y) >= U82(isNatKind, X, Y) U82(tt, X, Y) >= U83(isNat, X, Y) U83(tt, X, Y) >= U84(isNatKind, X, Y) U84(tt, X, Y) >= s(plus(Y, X)) U91(tt, X) >= isNatKind tt >= _|_ isNat >= tt isNat >= isNatKind isNat >= U21 isNat >= U31 isNatKind >= tt isNatKind >= isNatKind isNatKind >= isNatKind isNatKind >= isNatKind plus(X, _|_) >= X plus(X, s(Y)) >= U81(isNat, Y, X) x(X, _|_) >= U91(isNat, X) x(X, s(Y)) >= U101(isNat, Y, X) _|_ >= _|_ plus(X, Y) >= n!6220!6220plus(X, Y) s(X) >= n!6220!6220s(X) x(X, Y) >= n!6220!6220x(X, Y) _|_ >= _|_ n!6220!6220plus(X, Y) >= plus(X, Y) n!6220!6220s(X) >= s(X) n!6220!6220x(X, Y) >= x(X, Y) X >= X With these choices, we have: 1] U21#(tt, X) >= activate#(X) because [2], by (Star) 2] U21#*(tt, X) >= activate#(X) because U21# > activate# and [3], by (Copy) 3] U21#*(tt, X) >= X because [4], by (Select) 4] X >= X by (Meta) 5] U31#(tt, X, Y) >= U32#(isNatKind, X, Y) because U31# = U32#, U31# in Mul, [6], [7] and [8], by (Fun) 6] tt >= isNatKind because tt = isNatKind, by (Fun) 7] X >= X by (Meta) 8] Y >= Y by (Meta) 9] U31#(tt, X, Y) >= isNatKind#(X) because [10], by (Star) 10] U31#*(tt, X, Y) >= isNatKind#(X) because U31# = isNatKind#, U31# in Mul and [7], by (Stat) 11] U31#(tt, X, Y) >= activate#(X) because [12], by (Star) 12] U31#*(tt, X, Y) >= activate#(X) because U31# > activate# and [13], by (Copy) 13] U31#*(tt, X, Y) >= X because [7], by (Select) 14] U31#(tt, X, Y) >= activate#(X) because [12], by (Star) 15] U31#(tt, X, Y) >= activate#(Y) because [16], by (Star) 16] U31#*(tt, X, Y) >= activate#(Y) because U31# > activate# and [17], by (Copy) 17] U31#*(tt, X, Y) >= Y because [8], by (Select) 18] U32#(tt, X, Y) >= U33#(isNatKind, X, Y) because U32# = U33#, U32# in Mul, [19], [7] and [8], by (Fun) 19] tt >= isNatKind because tt = isNatKind, by (Fun) 20] U32#(tt, X, Y) >= isNatKind#(Y) because [21], by (Star) 21] U32#*(tt, X, Y) >= isNatKind#(Y) because U32# = isNatKind#, U32# in Mul and [8], by (Stat) 22] U32#(tt, X, Y) >= activate#(Y) because [23], by (Star) 23] U32#*(tt, X, Y) >= activate#(Y) because U32# > activate# and [24], by (Copy) 24] U32#*(tt, X, Y) >= Y because [8], by (Select) 25] U32#(tt, X, Y) >= activate#(X) because [26], by (Star) 26] U32#*(tt, X, Y) >= activate#(X) because U32# > activate# and [27], by (Copy) 27] U32#*(tt, X, Y) >= X because [7], by (Select) 28] U32#(tt, X, Y) >= activate#(Y) because [23], by (Star) 29] U33#(tt, X, Y) >= activate#(Y) because [30], by (Star) 30] U33#*(tt, X, Y) >= activate#(Y) because U33# > activate# and [31], by (Copy) 31] U33#*(tt, X, Y) >= Y because [8], by (Select) 32] U33#(tt, X, Y) > activate#(X) because [33], by definition 33] U33#*(tt, X, Y) >= activate#(X) because U33# > activate# and [34], by (Copy) 34] U33#*(tt, X, Y) >= X because [7], by (Select) 35] U33#(tt, X, Y) >= activate#(Y) because [30], by (Star) 36] U61#(X) >= isNatKind#(X) because U61# = isNatKind#, U61# in Mul and [8], by (Fun) 37] isNat#(n!6220!6220plus(X, Y)) >= activate#(X) because [38], by (Star) 38] isNat#*(n!6220!6220plus(X, Y)) >= activate#(X) because isNat# > activate# and [39], by (Copy) 39] isNat#*(n!6220!6220plus(X, Y)) >= X because [40], by (Select) 40] n!6220!6220plus(X, Y) >= X because [41], by (Star) 41] n!6220!6220plus*(X, Y) >= X because [7], by (Select) 42] isNat#(n!6220!6220plus(X, Y)) >= activate#(X) because [38], by (Star) 43] isNat#(n!6220!6220plus(X, Y)) >= activate#(Y) because [44], by (Star) 44] isNat#*(n!6220!6220plus(X, Y)) >= activate#(Y) because isNat# > activate# and [45], by (Copy) 45] isNat#*(n!6220!6220plus(X, Y)) >= Y because [46], by (Select) 46] n!6220!6220plus(X, Y) >= Y because [47], by (Star) 47] n!6220!6220plus*(X, Y) >= Y because [8], by (Select) 48] isNat#(n!6220!6220s(X)) >= U21#(isNatKind, X) because [49], by (Star) 49] isNat#*(n!6220!6220s(X)) >= U21#(isNatKind, X) because isNat# > U21#, [50] and [51], by (Copy) 50] isNat#*(n!6220!6220s(X)) >= isNatKind because isNat# > isNatKind, by (Copy) 51] isNat#*(n!6220!6220s(X)) >= X because [52], by (Select) 52] n!6220!6220s(X) >= X because [53], by (Star) 53] n!6220!6220s*(X) >= X because [7], by (Select) 54] isNat#(n!6220!6220s(X)) >= isNatKind#(X) because [55], by (Star) 55] isNat#*(n!6220!6220s(X)) >= isNatKind#(X) because isNat# > isNatKind# and [51], by (Copy) 56] isNat#(n!6220!6220s(X)) >= activate#(X) because [57], by (Star) 57] isNat#*(n!6220!6220s(X)) >= activate#(X) because isNat# > activate# and [51], by (Copy) 58] isNat#(n!6220!6220s(X)) >= activate#(X) because [57], by (Star) 59] isNat#(n!6220!6220x(X, Y)) >= U31#(isNatKind, X, Y) because [60], by (Star) 60] isNat#*(n!6220!6220x(X, Y)) >= U31#(isNatKind, X, Y) because isNat# > U31#, [61], [62] and [65], by (Copy) 61] isNat#*(n!6220!6220x(X, Y)) >= isNatKind because isNat# > isNatKind, by (Copy) 62] isNat#*(n!6220!6220x(X, Y)) >= X because [63], by (Select) 63] n!6220!6220x(X, Y) >= X because [64], by (Star) 64] n!6220!6220x*(X, Y) >= X because [7], by (Select) 65] isNat#*(n!6220!6220x(X, Y)) >= Y because [66], by (Select) 66] n!6220!6220x(X, Y) >= Y because [67], by (Star) 67] n!6220!6220x*(X, Y) >= Y because [8], by (Select) 68] isNat#(n!6220!6220x(X, Y)) >= isNatKind#(X) because [69], by (Star) 69] isNat#*(n!6220!6220x(X, Y)) >= isNatKind#(X) because [70], by (Select) 70] n!6220!6220x(X, Y) >= isNatKind#(X) because [71], by (Star) 71] n!6220!6220x*(X, Y) >= isNatKind#(X) because n!6220!6220x > isNatKind# and [72], by (Copy) 72] n!6220!6220x*(X, Y) >= X because [7], by (Select) 73] isNat#(n!6220!6220x(X, Y)) >= activate#(Y) because [74], by (Star) 74] isNat#*(n!6220!6220x(X, Y)) >= activate#(Y) because isNat# > activate# and [65], by (Copy) 75] isNatKind#(n!6220!6220plus(X, Y)) >= isNatKind#(X) because isNatKind# in Mul and [76], by (Fun) 76] n!6220!6220plus(X, Y) >= X because [41], by (Star) 77] isNatKind#(n!6220!6220plus(X, Y)) >= activate#(X) because [78], by (Star) 78] isNatKind#*(n!6220!6220plus(X, Y)) >= activate#(X) because isNatKind# > activate# and [79], by (Copy) 79] isNatKind#*(n!6220!6220plus(X, Y)) >= X because [76], by (Select) 80] isNatKind#(n!6220!6220plus(X, Y)) >= activate#(Y) because [81], by (Star) 81] isNatKind#*(n!6220!6220plus(X, Y)) >= activate#(Y) because isNatKind# > activate# and [82], by (Copy) 82] isNatKind#*(n!6220!6220plus(X, Y)) >= Y because [46], by (Select) 83] isNatKind#(n!6220!6220s(X)) >= isNatKind#(X) because isNatKind# in Mul and [84], by (Fun) 84] n!6220!6220s(X) >= X because [53], by (Star) 85] isNatKind#(n!6220!6220s(X)) >= activate#(X) because [86], by (Star) 86] isNatKind#*(n!6220!6220s(X)) >= activate#(X) because isNatKind# > activate# and [87], by (Copy) 87] isNatKind#*(n!6220!6220s(X)) >= X because [84], by (Select) 88] isNatKind#(n!6220!6220x(X, Y)) >= U61#(Y) because isNatKind# = U61#, isNatKind# in Mul and [89], by (Fun) 89] n!6220!6220x(X, Y) >= Y because [67], by (Star) 90] isNatKind#(n!6220!6220x(X, Y)) >= isNatKind#(X) because isNatKind# in Mul and [91], by (Fun) 91] n!6220!6220x(X, Y) >= X because [72], by (Star) 92] isNatKind#(n!6220!6220x(X, Y)) >= activate#(Y) because [93], by (Star) 93] isNatKind#*(n!6220!6220x(X, Y)) >= activate#(Y) because isNatKind# > activate# and [94], by (Copy) 94] isNatKind#*(n!6220!6220x(X, Y)) >= Y because [89], by (Select) 95] x#(X, _|_) >= isNat#(X) because [96], by (Star) 96] x#*(X, _|_) >= isNat#(X) because x# = isNat#, x# in Mul and [97], by (Stat) 97] X >= X by (Meta) 98] x#(X, s(Y)) >= isNat#(Y) because [99], by (Star) 99] x#*(X, s(Y)) >= isNat#(Y) because x# = isNat#, x# in Mul and [100], by (Stat) 100] s(Y) > Y because [101], by definition 101] s*(Y) >= Y because [102], by (Select) 102] Y >= Y by (Meta) 103] activate#(n!6220!6220plus(X, Y)) >= activate#(X) because activate# in Mul and [104], by (Fun) 104] n!6220!6220plus(X, Y) >= X because [105], by (Star) 105] n!6220!6220plus*(X, Y) >= X because [106], by (Select) 106] X >= X by (Meta) 107] activate#(n!6220!6220plus(X, Y)) >= activate#(Y) because activate# in Mul and [108], by (Fun) 108] n!6220!6220plus(X, Y) >= Y because [109], by (Star) 109] n!6220!6220plus*(X, Y) >= Y because [110], by (Select) 110] Y >= Y by (Meta) 111] activate#(n!6220!6220s(X)) >= activate#(X) because [112], by (Star) 112] activate#*(n!6220!6220s(X)) >= activate#(X) because activate# in Mul and [113], by (Stat) 113] n!6220!6220s(X) > X because [114], by definition 114] n!6220!6220s*(X) >= X because [115], by (Select) 115] X >= X by (Meta) 116] activate#(n!6220!6220x(X, Y)) >= x#(X, Y) because [117], by (Star) 117] activate#*(n!6220!6220x(X, Y)) >= x#(X, Y) because [118], by (Select) 118] n!6220!6220x(X, Y) >= x#(X, Y) because [119], by (Star) 119] n!6220!6220x*(X, Y) >= x#(X, Y) because n!6220!6220x > x#, [120] and [121], by (Copy) 120] n!6220!6220x*(X, Y) >= X because [106], by (Select) 121] n!6220!6220x*(X, Y) >= Y because [110], by (Select) 122] activate#(n!6220!6220x(X, Y)) >= activate#(X) because activate# in Mul and [123], by (Fun) 123] n!6220!6220x(X, Y) >= X because [120], by (Star) 124] activate#(n!6220!6220x(X, Y)) >= activate#(Y) because activate# in Mul and [125], by (Fun) 125] n!6220!6220x(X, Y) >= Y because [121], by (Star) 126] U101(tt, X, Y) >= U102(isNatKind, X, Y) because U101 = U102, U101 in Mul, [127], [128] and [129], by (Fun) 127] tt >= isNatKind because tt = isNatKind, by (Fun) 128] X >= X by (Meta) 129] Y >= Y by (Meta) 130] U102(tt, X, Y) >= U103(isNat, X, Y) because U102 = U103, U102 in Mul, [131], [128] and [129], by (Fun) 131] tt >= isNat because tt = isNat, by (Fun) 132] U103(tt, X, Y) >= U104(isNatKind, X, Y) because U103 = U104, U103 in Mul, [133], [128] and [129], by (Fun) 133] tt >= isNatKind because tt = isNatKind, by (Fun) 134] U104(tt, X, Y) >= plus(x(Y, X), Y) because [135], by (Star) 135] U104*(tt, X, Y) >= plus(x(Y, X), Y) because U104 > plus, [136] and [137], by (Copy) 136] U104*(tt, X, Y) >= x(Y, X) because U104 = x, U104 in Mul, [128] and [129], by (Stat) 137] U104*(tt, X, Y) >= Y because [129], by (Select) 138] tt >= U12 because tt = U12, by (Fun) 139] U12 >= isNatKind because U12 = isNatKind and U12 in Mul, by (Fun) 140] tt >= U14 because tt = U14, by (Fun) 141] U14 >= isNat because U14 = isNat and U14 in Mul, by (Fun) 142] tt >= isNat because tt = isNat, by (Fun) 143] tt >= tt by (Fun) 144] U21 >= U22 because U21 = U22 and U21 in Mul, by (Fun) 145] U22 >= isNat because U22 = isNat and U22 in Mul, by (Fun) 146] tt >= tt by (Fun) 147] U31 >= U32 because U31 = U32 and U31 in Mul, by (Fun) 148] U32 >= U33 because U32 = U33 and U32 in Mul, by (Fun) 149] U33 >= isNatKind because U33 = isNatKind and U33 in Mul, by (Fun) 150] tt >= isNat because tt = isNat, by (Fun) 151] tt >= isNat because tt = isNat, by (Fun) 152] tt >= tt by (Fun) 153] tt >= isNatKind because tt = isNatKind, by (Fun) 154] tt >= tt by (Fun) 155] tt >= tt by (Fun) 156] tt >= isNatKind because tt = isNatKind, by (Fun) 157] tt >= tt by (Fun) 158] X >= X by (Meta) 159] X >= X by (Meta) 160] U81(tt, X, Y) >= U82(isNatKind, X, Y) because U81 = U82, U81 in Mul, [127], [128] and [129], by (Fun) 161] U82(tt, X, Y) >= U83(isNat, X, Y) because U82 = U83, U82 in Mul, [131], [128] and [129], by (Fun) 162] U83(tt, X, Y) >= U84(isNatKind, X, Y) because U83 = U84, U83 in Mul, [133], [128] and [129], by (Fun) 163] U84(tt, X, Y) >= s(plus(Y, X)) because [164], by (Star) 164] U84*(tt, X, Y) >= s(plus(Y, X)) because U84 > s and [165], by (Copy) 165] U84*(tt, X, Y) >= plus(Y, X) because U84 = plus, U84 in Mul, [128] and [129], by (Stat) 166] U91(tt, X) >= isNatKind because [167], by (Star) 167] U91*(tt, X) >= isNatKind because [133], by (Select) 168] tt >= _|_ by (Bot) 169] isNat >= tt because isNat = tt, by (Fun) 170] isNat >= isNatKind because isNat = isNatKind and isNat in Mul, by (Fun) 171] isNat >= U21 because isNat = U21 and isNat in Mul, by (Fun) 172] isNat >= U31 because isNat = U31 and isNat in Mul, by (Fun) 173] isNatKind >= tt because isNatKind = tt, by (Fun) 174] isNatKind >= isNatKind because isNatKind in Mul, by (Fun) 175] isNatKind >= isNatKind because isNatKind in Mul, by (Fun) 176] isNatKind >= isNatKind because isNatKind in Mul, by (Fun) 177] plus(X, _|_) >= X because [178], by (Star) 178] plus*(X, _|_) >= X because [159], by (Select) 179] plus(X, s(Y)) >= U81(isNat, Y, X) because [180], by (Star) 180] plus*(X, s(Y)) >= U81(isNat, Y, X) because plus = U81, plus in Mul, [129], [181] and [100], by (Stat) 181] s(Y) > isNat because [182], by definition 182] s*(Y) >= isNat because s > isNat, by (Copy) 183] x(X, _|_) >= U91(isNat, X) because [184], by (Star) 184] x*(X, _|_) >= U91(isNat, X) because x > U91, [185] and [186], by (Copy) 185] x*(X, _|_) >= isNat because x > isNat, by (Copy) 186] x*(X, _|_) >= X because [159], by (Select) 187] x(X, s(Y)) >= U101(isNat, Y, X) because [188], by (Star) 188] x*(X, s(Y)) >= U101(isNat, Y, X) because x = U101, x in Mul, [129], [181] and [100], by (Stat) 189] _|_ >= _|_ by (Bot) 190] plus(X, Y) >= n!6220!6220plus(X, Y) because plus = n!6220!6220plus, plus in Mul, [191] and [192], by (Fun) 191] X >= X by (Meta) 192] Y >= Y by (Meta) 193] s(X) >= n!6220!6220s(X) because s = n!6220!6220s, s in Mul and [194], by (Fun) 194] X >= X by (Meta) 195] x(X, Y) >= n!6220!6220x(X, Y) because x = n!6220!6220x, x in Mul, [191] and [192], by (Fun) 196] _|_ >= _|_ by (Bot) 197] n!6220!6220plus(X, Y) >= plus(X, Y) because n!6220!6220plus = plus, n!6220!6220plus in Mul, [198] and [199], by (Fun) 198] X >= X by (Meta) 199] Y >= Y by (Meta) 200] n!6220!6220s(X) >= s(X) because n!6220!6220s = s, n!6220!6220s in Mul and [201], by (Fun) 201] X >= X by (Meta) 202] n!6220!6220x(X, Y) >= x(X, Y) because n!6220!6220x = x, n!6220!6220x in Mul, [198] and [199], by (Fun) 203] X >= X by (Meta) By the observations in [Kop12, Sec. 6.6], this reduction pair suffices; we may thus replace the dependency pair problem (P_18, R_0, minimal, formative) by (P_19, R_0, minimal, formative), where P_19 consists of: U21#(tt, X) =#> activate#(X) U31#(tt, X, Y) =#> U32#(isNatKind(activate(X)), activate(X), activate(Y)) U31#(tt, X, Y) =#> isNatKind#(activate(X)) U31#(tt, X, Y) =#> activate#(X) U31#(tt, X, Y) =#> activate#(X) U31#(tt, X, Y) =#> activate#(Y) U32#(tt, X, Y) =#> U33#(isNatKind(activate(Y)), activate(X), activate(Y)) U32#(tt, X, Y) =#> isNatKind#(activate(Y)) U32#(tt, X, Y) =#> activate#(Y) U32#(tt, X, Y) =#> activate#(X) U32#(tt, X, Y) =#> activate#(Y) U33#(tt, X, Y) =#> activate#(Y) U33#(tt, X, Y) =#> activate#(Y) U61#(tt, X) =#> isNatKind#(activate(X)) isNat#(n!6220!6220plus(X, Y)) =#> activate#(X) isNat#(n!6220!6220plus(X, Y)) =#> activate#(X) isNat#(n!6220!6220plus(X, Y)) =#> activate#(Y) isNat#(n!6220!6220s(X)) =#> U21#(isNatKind(activate(X)), activate(X)) isNat#(n!6220!6220s(X)) =#> isNatKind#(activate(X)) isNat#(n!6220!6220s(X)) =#> activate#(X) isNat#(n!6220!6220s(X)) =#> activate#(X) isNat#(n!6220!6220x(X, Y)) =#> U31#(isNatKind(activate(X)), activate(X), activate(Y)) isNat#(n!6220!6220x(X, Y)) =#> isNatKind#(activate(X)) isNat#(n!6220!6220x(X, Y)) =#> activate#(Y) isNatKind#(n!6220!6220plus(X, Y)) =#> isNatKind#(activate(X)) isNatKind#(n!6220!6220plus(X, Y)) =#> activate#(X) isNatKind#(n!6220!6220plus(X, Y)) =#> activate#(Y) isNatKind#(n!6220!6220s(X)) =#> isNatKind#(activate(X)) isNatKind#(n!6220!6220s(X)) =#> activate#(X) isNatKind#(n!6220!6220x(X, Y)) =#> U61#(isNatKind(activate(X)), activate(Y)) isNatKind#(n!6220!6220x(X, Y)) =#> isNatKind#(activate(X)) isNatKind#(n!6220!6220x(X, Y)) =#> activate#(Y) x#(X, 0) =#> isNat#(X) x#(X, s(Y)) =#> isNat#(Y) activate#(n!6220!6220plus(X, Y)) =#> activate#(X) activate#(n!6220!6220plus(X, Y)) =#> activate#(Y) activate#(n!6220!6220s(X)) =#> activate#(X) activate#(n!6220!6220x(X, Y)) =#> x#(activate(X), activate(Y)) activate#(n!6220!6220x(X, Y)) =#> activate#(X) activate#(n!6220!6220x(X, Y)) =#> activate#(Y) Thus, the original system is terminating if (P_19, R_0, minimal, formative) is finite. We consider the dependency pair problem (P_19, R_0, minimal, formative). We will use the reduction pair processor [Kop12, Thm. 7.16]. It suffices to find a standard reduction pair [Kop12, Def. 6.69]. Thus, we must orient: U21#(tt, X) >? activate#(X) U31#(tt, X, Y) >? U32#(isNatKind(activate(X)), activate(X), activate(Y)) U31#(tt, X, Y) >? isNatKind#(activate(X)) U31#(tt, X, Y) >? activate#(X) U31#(tt, X, Y) >? activate#(X) U31#(tt, X, Y) >? activate#(Y) U32#(tt, X, Y) >? U33#(isNatKind(activate(Y)), activate(X), activate(Y)) U32#(tt, X, Y) >? isNatKind#(activate(Y)) U32#(tt, X, Y) >? activate#(Y) U32#(tt, X, Y) >? activate#(X) U32#(tt, X, Y) >? activate#(Y) U33#(tt, X, Y) >? activate#(Y) U33#(tt, X, Y) >? activate#(Y) U61#(tt, X) >? isNatKind#(activate(X)) isNat#(n!6220!6220plus(X, Y)) >? activate#(X) isNat#(n!6220!6220plus(X, Y)) >? activate#(X) isNat#(n!6220!6220plus(X, Y)) >? activate#(Y) isNat#(n!6220!6220s(X)) >? U21#(isNatKind(activate(X)), activate(X)) isNat#(n!6220!6220s(X)) >? isNatKind#(activate(X)) isNat#(n!6220!6220s(X)) >? activate#(X) isNat#(n!6220!6220s(X)) >? activate#(X) isNat#(n!6220!6220x(X, Y)) >? U31#(isNatKind(activate(X)), activate(X), activate(Y)) isNat#(n!6220!6220x(X, Y)) >? isNatKind#(activate(X)) isNat#(n!6220!6220x(X, Y)) >? activate#(Y) isNatKind#(n!6220!6220plus(X, Y)) >? isNatKind#(activate(X)) isNatKind#(n!6220!6220plus(X, Y)) >? activate#(X) isNatKind#(n!6220!6220plus(X, Y)) >? activate#(Y) isNatKind#(n!6220!6220s(X)) >? isNatKind#(activate(X)) isNatKind#(n!6220!6220s(X)) >? activate#(X) isNatKind#(n!6220!6220x(X, Y)) >? U61#(isNatKind(activate(X)), activate(Y)) isNatKind#(n!6220!6220x(X, Y)) >? isNatKind#(activate(X)) isNatKind#(n!6220!6220x(X, Y)) >? activate#(Y) x#(X, 0) >? isNat#(X) x#(X, s(Y)) >? isNat#(Y) activate#(n!6220!6220plus(X, Y)) >? activate#(X) activate#(n!6220!6220plus(X, Y)) >? activate#(Y) activate#(n!6220!6220s(X)) >? activate#(X) activate#(n!6220!6220x(X, Y)) >? x#(activate(X), activate(Y)) activate#(n!6220!6220x(X, Y)) >? activate#(X) activate#(n!6220!6220x(X, Y)) >? activate#(Y) U101(tt, X, Y) >= U102(isNatKind(activate(X)), activate(X), activate(Y)) U102(tt, X, Y) >= U103(isNat(activate(Y)), activate(X), activate(Y)) U103(tt, X, Y) >= U104(isNatKind(activate(Y)), activate(X), activate(Y)) U104(tt, X, Y) >= plus(x(activate(Y), activate(X)), activate(Y)) U11(tt, X, Y) >= U12(isNatKind(activate(X)), activate(X), activate(Y)) U12(tt, X, Y) >= U13(isNatKind(activate(Y)), activate(X), activate(Y)) U13(tt, X, Y) >= U14(isNatKind(activate(Y)), activate(X), activate(Y)) U14(tt, X, Y) >= U15(isNat(activate(X)), activate(Y)) U15(tt, X) >= U16(isNat(activate(X))) U16(tt) >= tt U21(tt, X) >= U22(isNatKind(activate(X)), activate(X)) U22(tt, X) >= U23(isNat(activate(X))) U23(tt) >= tt U31(tt, X, Y) >= U32(isNatKind(activate(X)), activate(X), activate(Y)) U32(tt, X, Y) >= U33(isNatKind(activate(Y)), activate(X), activate(Y)) U33(tt, X, Y) >= U34(isNatKind(activate(Y)), activate(X), activate(Y)) U34(tt, X, Y) >= U35(isNat(activate(X)), activate(Y)) U35(tt, X) >= U36(isNat(activate(X))) U36(tt) >= tt U41(tt, X) >= U42(isNatKind(activate(X))) U42(tt) >= tt U51(tt) >= tt U61(tt, X) >= U62(isNatKind(activate(X))) U62(tt) >= tt U71(tt, X) >= U72(isNatKind(activate(X)), activate(X)) U72(tt, X) >= activate(X) U81(tt, X, Y) >= U82(isNatKind(activate(X)), activate(X), activate(Y)) U82(tt, X, Y) >= U83(isNat(activate(Y)), activate(X), activate(Y)) U83(tt, X, Y) >= U84(isNatKind(activate(Y)), activate(X), activate(Y)) U84(tt, X, Y) >= s(plus(activate(Y), activate(X))) U91(tt, X) >= U92(isNatKind(activate(X))) U92(tt) >= 0 isNat(n!6220!62200) >= tt isNat(n!6220!6220plus(X, Y)) >= U11(isNatKind(activate(X)), activate(X), activate(Y)) isNat(n!6220!6220s(X)) >= U21(isNatKind(activate(X)), activate(X)) isNat(n!6220!6220x(X, Y)) >= U31(isNatKind(activate(X)), activate(X), activate(Y)) isNatKind(n!6220!62200) >= tt isNatKind(n!6220!6220plus(X, Y)) >= U41(isNatKind(activate(X)), activate(Y)) isNatKind(n!6220!6220s(X)) >= U51(isNatKind(activate(X))) isNatKind(n!6220!6220x(X, Y)) >= U61(isNatKind(activate(X)), activate(Y)) plus(X, 0) >= U71(isNat(X), X) plus(X, s(Y)) >= U81(isNat(Y), Y, X) x(X, 0) >= U91(isNat(X), X) x(X, s(Y)) >= U101(isNat(Y), Y, X) 0 >= n!6220!62200 plus(X, Y) >= n!6220!6220plus(X, Y) s(X) >= n!6220!6220s(X) x(X, Y) >= n!6220!6220x(X, Y) activate(n!6220!62200) >= 0 activate(n!6220!6220plus(X, Y)) >= plus(activate(X), activate(Y)) activate(n!6220!6220s(X)) >= s(activate(X)) activate(n!6220!6220x(X, Y)) >= x(activate(X), activate(Y)) activate(X) >= X Since this representation is not advantageous for the higher-order recursive path ordering, we present the strict requirements in their unextended form, which is not problematic since for any F, s and substituion gamma: (F s)gamma beta-reduces to F(s)gamma.) We use a recursive path ordering as defined in [Kop12, Chapter 5]. Argument functions: [[0]] = _|_ [[U11(x_1, x_2, x_3)]] = U11 [[U12(x_1, x_2, x_3)]] = U12 [[U13(x_1, x_2, x_3)]] = U13 [[U14(x_1, x_2, x_3)]] = x_1 [[U15(x_1, x_2)]] = x_1 [[U16(x_1)]] = x_1 [[U21(x_1, x_2)]] = x_1 [[U22(x_1, x_2)]] = x_1 [[U23(x_1)]] = x_1 [[U31(x_1, x_2, x_3)]] = U31 [[U31#(x_1, x_2, x_3)]] = U31#(x_2, x_3) [[U32(x_1, x_2, x_3)]] = U32 [[U33(x_1, x_2, x_3)]] = U33 [[U33#(x_1, x_2, x_3)]] = U33#(x_1, x_3) [[U34(x_1, x_2, x_3)]] = U34 [[U35(x_1, x_2)]] = x_1 [[U36(x_1)]] = x_1 [[U41(x_1, x_2)]] = x_1 [[U42(x_1)]] = x_1 [[U51(x_1)]] = x_1 [[U61(x_1, x_2)]] = x_1 [[U62(x_1)]] = x_1 [[U91(x_1, x_2)]] = x_2 [[U92(x_1)]] = _|_ [[activate(x_1)]] = x_1 [[isNat(x_1)]] = isNat [[isNatKind(x_1)]] = isNatKind [[n!6220!62200]] = _|_ We choose Lex = {} and Mul = {U101, U102, U103, U104, U11, U12, U13, U21#, U31, U31#, U32, U32#, U33, U33#, U34, U61#, U71, U72, U81, U82, U83, U84, activate#, isNat, isNatKind, isNatKind#, isNat#, n!6220!6220plus, n!6220!6220s, n!6220!6220x, plus, s, tt, x, x#}, and the following precedence: U101 = U102 = U103 = U104 = U31# = n!6220!6220x = x > U81 = U82 = U83 = U84 = n!6220!6220plus = plus > U71 > U72 > U61# > U32# > U11 = U12 = U13 = U31 = U32 = U33 = U34 = isNat = isNatKind = n!6220!6220s = s = tt > U33# > x# > U21# > isNat# > activate# > isNatKind# Taking the argument function into account, and fixing the greater / greater equal choices, the constraints can be denoted as follows: U21#(tt, X) >= activate#(X) U31#(X, Y) >= U32#(isNatKind, X, Y) U31#(X, Y) >= isNatKind#(X) U31#(X, Y) >= activate#(X) U31#(X, Y) >= activate#(X) U31#(X, Y) > activate#(Y) U32#(tt, X, Y) >= U33#(isNatKind, Y) U32#(tt, X, Y) >= isNatKind#(Y) U32#(tt, X, Y) >= activate#(Y) U32#(tt, X, Y) >= activate#(X) U32#(tt, X, Y) >= activate#(Y) U33#(tt, X) >= activate#(X) U33#(tt, X) >= activate#(X) U61#(tt, X) >= isNatKind#(X) isNat#(n!6220!6220plus(X, Y)) >= activate#(X) isNat#(n!6220!6220plus(X, Y)) >= activate#(X) isNat#(n!6220!6220plus(X, Y)) >= activate#(Y) isNat#(n!6220!6220s(X)) >= U21#(isNatKind, X) isNat#(n!6220!6220s(X)) >= isNatKind#(X) isNat#(n!6220!6220s(X)) >= activate#(X) isNat#(n!6220!6220s(X)) >= activate#(X) isNat#(n!6220!6220x(X, Y)) > U31#(X, Y) isNat#(n!6220!6220x(X, Y)) >= isNatKind#(X) isNat#(n!6220!6220x(X, Y)) >= activate#(Y) isNatKind#(n!6220!6220plus(X, Y)) >= isNatKind#(X) isNatKind#(n!6220!6220plus(X, Y)) >= activate#(X) isNatKind#(n!6220!6220plus(X, Y)) >= activate#(Y) isNatKind#(n!6220!6220s(X)) >= isNatKind#(X) isNatKind#(n!6220!6220s(X)) >= activate#(X) isNatKind#(n!6220!6220x(X, Y)) >= U61#(isNatKind, Y) isNatKind#(n!6220!6220x(X, Y)) >= isNatKind#(X) isNatKind#(n!6220!6220x(X, Y)) >= activate#(Y) x#(X, _|_) >= isNat#(X) x#(X, s(Y)) >= isNat#(Y) activate#(n!6220!6220plus(X, Y)) >= activate#(X) activate#(n!6220!6220plus(X, Y)) >= activate#(Y) activate#(n!6220!6220s(X)) >= activate#(X) activate#(n!6220!6220x(X, Y)) >= x#(X, Y) activate#(n!6220!6220x(X, Y)) >= activate#(X) activate#(n!6220!6220x(X, Y)) >= activate#(Y) U101(tt, X, Y) >= U102(isNatKind, X, Y) U102(tt, X, Y) >= U103(isNat, X, Y) U103(tt, X, Y) >= U104(isNatKind, X, Y) U104(tt, X, Y) >= plus(x(Y, X), Y) U11 >= U12 U12 >= U13 U13 >= isNatKind tt >= isNat tt >= isNat tt >= tt tt >= isNatKind tt >= isNat tt >= tt U31 >= U32 U32 >= U33 U33 >= U34 U34 >= isNat tt >= isNat tt >= tt tt >= isNatKind tt >= tt tt >= tt tt >= isNatKind tt >= tt U71(tt, X) >= U72(isNatKind, X) U72(tt, X) >= X U81(tt, X, Y) >= U82(isNatKind, X, Y) U82(tt, X, Y) >= U83(isNat, X, Y) U83(tt, X, Y) >= U84(isNatKind, X, Y) U84(tt, X, Y) >= s(plus(Y, X)) X >= _|_ _|_ >= _|_ isNat >= tt isNat >= U11 isNat >= isNatKind isNat >= U31 isNatKind >= tt isNatKind >= isNatKind isNatKind >= isNatKind isNatKind >= isNatKind plus(X, _|_) >= U71(isNat, X) plus(X, s(Y)) >= U81(isNat, Y, X) x(X, _|_) >= X x(X, s(Y)) >= U101(isNat, Y, X) _|_ >= _|_ plus(X, Y) >= n!6220!6220plus(X, Y) s(X) >= n!6220!6220s(X) x(X, Y) >= n!6220!6220x(X, Y) _|_ >= _|_ n!6220!6220plus(X, Y) >= plus(X, Y) n!6220!6220s(X) >= s(X) n!6220!6220x(X, Y) >= x(X, Y) X >= X With these choices, we have: 1] U21#(tt, X) >= activate#(X) because [2], by (Star) 2] U21#*(tt, X) >= activate#(X) because U21# > activate# and [3], by (Copy) 3] U21#*(tt, X) >= X because [4], by (Select) 4] X >= X by (Meta) 5] U31#(X, Y) >= U32#(isNatKind, X, Y) because [6], by (Star) 6] U31#*(X, Y) >= U32#(isNatKind, X, Y) because U31# > U32#, [7], [8] and [9], by (Copy) 7] U31#*(X, Y) >= isNatKind because U31# > isNatKind, by (Copy) 8] U31#*(X, Y) >= X because [4], by (Select) 9] U31#*(X, Y) >= Y because [10], by (Select) 10] Y >= Y by (Meta) 11] U31#(X, Y) >= isNatKind#(X) because [12], by (Star) 12] U31#*(X, Y) >= isNatKind#(X) because U31# > isNatKind# and [8], by (Copy) 13] U31#(X, Y) >= activate#(X) because [14], by (Star) 14] U31#*(X, Y) >= activate#(X) because U31# > activate# and [8], by (Copy) 15] U31#(X, Y) >= activate#(X) because [14], by (Star) 16] U31#(X, Y) > activate#(Y) because [17], by definition 17] U31#*(X, Y) >= activate#(Y) because U31# > activate# and [9], by (Copy) 18] U32#(tt, X, Y) >= U33#(isNatKind, Y) because [19], by (Star) 19] U32#*(tt, X, Y) >= U33#(isNatKind, Y) because U32# > U33#, [20] and [22], by (Copy) 20] U32#*(tt, X, Y) >= isNatKind because [21], by (Select) 21] tt >= isNatKind because tt = isNatKind, by (Fun) 22] U32#*(tt, X, Y) >= Y because [10], by (Select) 23] U32#(tt, X, Y) >= isNatKind#(Y) because [24], by (Star) 24] U32#*(tt, X, Y) >= isNatKind#(Y) because U32# > isNatKind# and [22], by (Copy) 25] U32#(tt, X, Y) >= activate#(Y) because [26], by (Star) 26] U32#*(tt, X, Y) >= activate#(Y) because U32# > activate# and [22], by (Copy) 27] U32#(tt, X, Y) >= activate#(X) because [28], by (Star) 28] U32#*(tt, X, Y) >= activate#(X) because U32# > activate# and [29], by (Copy) 29] U32#*(tt, X, Y) >= X because [4], by (Select) 30] U32#(tt, X, Y) >= activate#(Y) because [26], by (Star) 31] U33#(tt, X) >= activate#(X) because [32], by (Star) 32] U33#*(tt, X) >= activate#(X) because U33# > activate# and [33], by (Copy) 33] U33#*(tt, X) >= X because [10], by (Select) 34] U33#(tt, X) >= activate#(X) because [32], by (Star) 35] U61#(tt, X) >= isNatKind#(X) because [36], by (Star) 36] U61#*(tt, X) >= isNatKind#(X) because U61# > isNatKind# and [37], by (Copy) 37] U61#*(tt, X) >= X because [10], by (Select) 38] isNat#(n!6220!6220plus(X, Y)) >= activate#(X) because [39], by (Star) 39] isNat#*(n!6220!6220plus(X, Y)) >= activate#(X) because [40], by (Select) 40] n!6220!6220plus(X, Y) >= activate#(X) because [41], by (Star) 41] n!6220!6220plus*(X, Y) >= activate#(X) because n!6220!6220plus > activate# and [42], by (Copy) 42] n!6220!6220plus*(X, Y) >= X because [4], by (Select) 43] isNat#(n!6220!6220plus(X, Y)) >= activate#(X) because [39], by (Star) 44] isNat#(n!6220!6220plus(X, Y)) >= activate#(Y) because [45], by (Star) 45] isNat#*(n!6220!6220plus(X, Y)) >= activate#(Y) because [46], by (Select) 46] n!6220!6220plus(X, Y) >= activate#(Y) because [47], by (Star) 47] n!6220!6220plus*(X, Y) >= activate#(Y) because n!6220!6220plus > activate# and [48], by (Copy) 48] n!6220!6220plus*(X, Y) >= Y because [10], by (Select) 49] isNat#(n!6220!6220s(X)) >= U21#(isNatKind, X) because [50], by (Star) 50] isNat#*(n!6220!6220s(X)) >= U21#(isNatKind, X) because [51], by (Select) 51] n!6220!6220s(X) >= U21#(isNatKind, X) because [52], by (Star) 52] n!6220!6220s*(X) >= U21#(isNatKind, X) because n!6220!6220s > U21#, [53] and [54], by (Copy) 53] n!6220!6220s*(X) >= isNatKind because n!6220!6220s = isNatKind and n!6220!6220s in Mul, by (Stat) 54] n!6220!6220s*(X) >= X because [4], by (Select) 55] isNat#(n!6220!6220s(X)) >= isNatKind#(X) because [56], by (Star) 56] isNat#*(n!6220!6220s(X)) >= isNatKind#(X) because isNat# > isNatKind# and [57], by (Copy) 57] isNat#*(n!6220!6220s(X)) >= X because [58], by (Select) 58] n!6220!6220s(X) >= X because [54], by (Star) 59] isNat#(n!6220!6220s(X)) >= activate#(X) because [60], by (Star) 60] isNat#*(n!6220!6220s(X)) >= activate#(X) because isNat# > activate# and [57], by (Copy) 61] isNat#(n!6220!6220s(X)) >= activate#(X) because [60], by (Star) 62] isNat#(n!6220!6220x(X, Y)) > U31#(X, Y) because [63], by definition 63] isNat#*(n!6220!6220x(X, Y)) >= U31#(X, Y) because [64], by (Select) 64] n!6220!6220x(X, Y) >= U31#(X, Y) because n!6220!6220x = U31#, n!6220!6220x in Mul, [65] and [66], by (Fun) 65] X >= X by (Meta) 66] Y >= Y by (Meta) 67] isNat#(n!6220!6220x(X, Y)) >= isNatKind#(X) because [68], by (Star) 68] isNat#*(n!6220!6220x(X, Y)) >= isNatKind#(X) because [69], by (Select) 69] n!6220!6220x(X, Y) >= isNatKind#(X) because [70], by (Star) 70] n!6220!6220x*(X, Y) >= isNatKind#(X) because n!6220!6220x > isNatKind# and [71], by (Copy) 71] n!6220!6220x*(X, Y) >= X because [65], by (Select) 72] isNat#(n!6220!6220x(X, Y)) >= activate#(Y) because [73], by (Star) 73] isNat#*(n!6220!6220x(X, Y)) >= activate#(Y) because isNat# > activate# and [74], by (Copy) 74] isNat#*(n!6220!6220x(X, Y)) >= Y because [75], by (Select) 75] n!6220!6220x(X, Y) >= Y because [76], by (Star) 76] n!6220!6220x*(X, Y) >= Y because [66], by (Select) 77] isNatKind#(n!6220!6220plus(X, Y)) >= isNatKind#(X) because [78], by (Star) 78] isNatKind#*(n!6220!6220plus(X, Y)) >= isNatKind#(X) because isNatKind# in Mul and [79], by (Stat) 79] n!6220!6220plus(X, Y) > X because [80], by definition 80] n!6220!6220plus*(X, Y) >= X because [65], by (Select) 81] isNatKind#(n!6220!6220plus(X, Y)) >= activate#(X) because [82], by (Star) 82] isNatKind#*(n!6220!6220plus(X, Y)) >= activate#(X) because [40], by (Select) 83] isNatKind#(n!6220!6220plus(X, Y)) >= activate#(Y) because [84], by (Star) 84] isNatKind#*(n!6220!6220plus(X, Y)) >= activate#(Y) because [46], by (Select) 85] isNatKind#(n!6220!6220s(X)) >= isNatKind#(X) because isNatKind# in Mul and [86], by (Fun) 86] n!6220!6220s(X) >= X because [54], by (Star) 87] isNatKind#(n!6220!6220s(X)) >= activate#(X) because [88], by (Star) 88] isNatKind#*(n!6220!6220s(X)) >= activate#(X) because [89], by (Select) 89] n!6220!6220s(X) >= activate#(X) because [90], by (Star) 90] n!6220!6220s*(X) >= activate#(X) because n!6220!6220s > activate# and [54], by (Copy) 91] isNatKind#(n!6220!6220x(X, Y)) >= U61#(isNatKind, Y) because [92], by (Star) 92] isNatKind#*(n!6220!6220x(X, Y)) >= U61#(isNatKind, Y) because [93], by (Select) 93] n!6220!6220x(X, Y) >= U61#(isNatKind, Y) because [94], by (Star) 94] n!6220!6220x*(X, Y) >= U61#(isNatKind, Y) because n!6220!6220x > U61#, [95] and [96], by (Copy) 95] n!6220!6220x*(X, Y) >= isNatKind because n!6220!6220x > isNatKind, by (Copy) 96] n!6220!6220x*(X, Y) >= Y because [66], by (Select) 97] isNatKind#(n!6220!6220x(X, Y)) >= isNatKind#(X) because [98], by (Star) 98] isNatKind#*(n!6220!6220x(X, Y)) >= isNatKind#(X) because isNatKind# in Mul and [99], by (Stat) 99] n!6220!6220x(X, Y) > X because [71], by definition 100] isNatKind#(n!6220!6220x(X, Y)) >= activate#(Y) because [101], by (Star) 101] isNatKind#*(n!6220!6220x(X, Y)) >= activate#(Y) because [102], by (Select) 102] n!6220!6220x(X, Y) >= activate#(Y) because [103], by (Star) 103] n!6220!6220x*(X, Y) >= activate#(Y) because n!6220!6220x > activate# and [96], by (Copy) 104] x#(X, _|_) >= isNat#(X) because [105], by (Star) 105] x#*(X, _|_) >= isNat#(X) because x# > isNat# and [106], by (Copy) 106] x#*(X, _|_) >= X because [107], by (Select) 107] X >= X by (Meta) 108] x#(X, s(Y)) >= isNat#(Y) because [109], by (Star) 109] x#*(X, s(Y)) >= isNat#(Y) because x# > isNat# and [110], by (Copy) 110] x#*(X, s(Y)) >= Y because [111], by (Select) 111] s(Y) >= Y because [112], by (Star) 112] s*(Y) >= Y because [113], by (Select) 113] Y >= Y by (Meta) 114] activate#(n!6220!6220plus(X, Y)) >= activate#(X) because [115], by (Star) 115] activate#*(n!6220!6220plus(X, Y)) >= activate#(X) because activate# in Mul and [116], by (Stat) 116] n!6220!6220plus(X, Y) > X because [117], by definition 117] n!6220!6220plus*(X, Y) >= X because [118], by (Select) 118] X >= X by (Meta) 119] activate#(n!6220!6220plus(X, Y)) >= activate#(Y) because [120], by (Star) 120] activate#*(n!6220!6220plus(X, Y)) >= activate#(Y) because [121], by (Select) 121] n!6220!6220plus(X, Y) >= activate#(Y) because [122], by (Star) 122] n!6220!6220plus*(X, Y) >= activate#(Y) because n!6220!6220plus > activate# and [123], by (Copy) 123] n!6220!6220plus*(X, Y) >= Y because [124], by (Select) 124] Y >= Y by (Meta) 125] activate#(n!6220!6220s(X)) >= activate#(X) because [126], by (Star) 126] activate#*(n!6220!6220s(X)) >= activate#(X) because [127], by (Select) 127] n!6220!6220s(X) >= activate#(X) because [128], by (Star) 128] n!6220!6220s*(X) >= activate#(X) because n!6220!6220s > activate# and [129], by (Copy) 129] n!6220!6220s*(X) >= X because [130], by (Select) 130] X >= X by (Meta) 131] activate#(n!6220!6220x(X, Y)) >= x#(X, Y) because [132], by (Star) 132] activate#*(n!6220!6220x(X, Y)) >= x#(X, Y) because [133], by (Select) 133] n!6220!6220x(X, Y) >= x#(X, Y) because [134], by (Star) 134] n!6220!6220x*(X, Y) >= x#(X, Y) because n!6220!6220x > x#, [135] and [136], by (Copy) 135] n!6220!6220x*(X, Y) >= X because [118], by (Select) 136] n!6220!6220x*(X, Y) >= Y because [124], by (Select) 137] activate#(n!6220!6220x(X, Y)) >= activate#(X) because activate# in Mul and [138], by (Fun) 138] n!6220!6220x(X, Y) >= X because [135], by (Star) 139] activate#(n!6220!6220x(X, Y)) >= activate#(Y) because activate# in Mul and [140], by (Fun) 140] n!6220!6220x(X, Y) >= Y because [136], by (Star) 141] U101(tt, X, Y) >= U102(isNatKind, X, Y) because U101 = U102, U101 in Mul, [142], [143] and [144], by (Fun) 142] tt >= isNatKind because tt = isNatKind, by (Fun) 143] X >= X by (Meta) 144] Y >= Y by (Meta) 145] U102(tt, X, Y) >= U103(isNat, X, Y) because U102 = U103, U102 in Mul, [146], [143] and [144], by (Fun) 146] tt >= isNat because tt = isNat, by (Fun) 147] U103(tt, X, Y) >= U104(isNatKind, X, Y) because U103 = U104, U103 in Mul, [148], [143] and [144], by (Fun) 148] tt >= isNatKind because tt = isNatKind, by (Fun) 149] U104(tt, X, Y) >= plus(x(Y, X), Y) because [150], by (Star) 150] U104*(tt, X, Y) >= plus(x(Y, X), Y) because U104 > plus, [151] and [152], by (Copy) 151] U104*(tt, X, Y) >= x(Y, X) because U104 = x, U104 in Mul, [143] and [144], by (Stat) 152] U104*(tt, X, Y) >= Y because [144], by (Select) 153] U11 >= U12 because U11 = U12 and U11 in Mul, by (Fun) 154] U12 >= U13 because U12 = U13 and U12 in Mul, by (Fun) 155] U13 >= isNatKind because U13 = isNatKind and U13 in Mul, by (Fun) 156] tt >= isNat because tt = isNat, by (Fun) 157] tt >= isNat because tt = isNat, by (Fun) 158] tt >= tt by (Fun) 159] tt >= isNatKind because tt = isNatKind, by (Fun) 160] tt >= isNat because tt = isNat, by (Fun) 161] tt >= tt by (Fun) 162] U31 >= U32 because U31 = U32 and U31 in Mul, by (Fun) 163] U32 >= U33 because U32 = U33 and U32 in Mul, by (Fun) 164] U33 >= U34 because U33 = U34 and U33 in Mul, by (Fun) 165] U34 >= isNat because U34 = isNat and U34 in Mul, by (Fun) 166] tt >= isNat because tt = isNat, by (Fun) 167] tt >= tt by (Fun) 168] tt >= isNatKind because tt = isNatKind, by (Fun) 169] tt >= tt by (Fun) 170] tt >= tt by (Fun) 171] tt >= isNatKind because tt = isNatKind, by (Fun) 172] tt >= tt by (Fun) 173] U71(tt, X) >= U72(isNatKind, X) because [174], by (Star) 174] U71*(tt, X) >= U72(isNatKind, X) because U71 > U72, [175] and [176], by (Copy) 175] U71*(tt, X) >= isNatKind because U71 > isNatKind, by (Copy) 176] U71*(tt, X) >= X because [144], by (Select) 177] U72(tt, X) >= X because [178], by (Star) 178] U72*(tt, X) >= X because [144], by (Select) 179] U81(tt, X, Y) >= U82(isNatKind, X, Y) because U81 = U82, U81 in Mul, [142], [143] and [144], by (Fun) 180] U82(tt, X, Y) >= U83(isNat, X, Y) because U82 = U83, U82 in Mul, [146], [143] and [144], by (Fun) 181] U83(tt, X, Y) >= U84(isNatKind, X, Y) because U83 = U84, U83 in Mul, [148], [143] and [144], by (Fun) 182] U84(tt, X, Y) >= s(plus(Y, X)) because [183], by (Star) 183] U84*(tt, X, Y) >= s(plus(Y, X)) because U84 > s and [184], by (Copy) 184] U84*(tt, X, Y) >= plus(Y, X) because U84 = plus, U84 in Mul, [143] and [144], by (Stat) 185] X >= _|_ by (Bot) 186] _|_ >= _|_ by (Bot) 187] isNat >= tt because isNat = tt, by (Fun) 188] isNat >= U11 because isNat = U11 and isNat in Mul, by (Fun) 189] isNat >= isNatKind because isNat = isNatKind and isNat in Mul, by (Fun) 190] isNat >= U31 because isNat = U31 and isNat in Mul, by (Fun) 191] isNatKind >= tt because isNatKind = tt, by (Fun) 192] isNatKind >= isNatKind because isNatKind in Mul, by (Fun) 193] isNatKind >= isNatKind because isNatKind in Mul, by (Fun) 194] isNatKind >= isNatKind because isNatKind in Mul, by (Fun) 195] plus(X, _|_) >= U71(isNat, X) because [196], by (Star) 196] plus*(X, _|_) >= U71(isNat, X) because plus > U71, [197] and [198], by (Copy) 197] plus*(X, _|_) >= isNat because plus > isNat, by (Copy) 198] plus*(X, _|_) >= X because [144], by (Select) 199] plus(X, s(Y)) >= U81(isNat, Y, X) because [200], by (Star) 200] plus*(X, s(Y)) >= U81(isNat, Y, X) because plus = U81, plus in Mul, [144], [201] and [203], by (Stat) 201] s(Y) > isNat because [202], by definition 202] s*(Y) >= isNat because s = isNat and s in Mul, by (Stat) 203] s(Y) > Y because [204], by definition 204] s*(Y) >= Y because [143], by (Select) 205] x(X, _|_) >= X because [206], by (Star) 206] x*(X, _|_) >= X because [144], by (Select) 207] x(X, s(Y)) >= U101(isNat, Y, X) because [208], by (Star) 208] x*(X, s(Y)) >= U101(isNat, Y, X) because x = U101, x in Mul, [144], [201] and [203], by (Stat) 209] _|_ >= _|_ by (Bot) 210] plus(X, Y) >= n!6220!6220plus(X, Y) because plus = n!6220!6220plus, plus in Mul, [211] and [212], by (Fun) 211] X >= X by (Meta) 212] Y >= Y by (Meta) 213] s(X) >= n!6220!6220s(X) because s = n!6220!6220s, s in Mul and [214], by (Fun) 214] X >= X by (Meta) 215] x(X, Y) >= n!6220!6220x(X, Y) because x = n!6220!6220x, x in Mul, [211] and [212], by (Fun) 216] _|_ >= _|_ by (Bot) 217] n!6220!6220plus(X, Y) >= plus(X, Y) because n!6220!6220plus = plus, n!6220!6220plus in Mul, [218] and [219], by (Fun) 218] X >= X by (Meta) 219] Y >= Y by (Meta) 220] n!6220!6220s(X) >= s(X) because n!6220!6220s = s, n!6220!6220s in Mul and [221], by (Fun) 221] X >= X by (Meta) 222] n!6220!6220x(X, Y) >= x(X, Y) because n!6220!6220x = x, n!6220!6220x in Mul, [218] and [219], by (Fun) 223] X >= X by (Meta) By the observations in [Kop12, Sec. 6.6], this reduction pair suffices; we may thus replace the dependency pair problem (P_19, R_0, minimal, formative) by (P_20, R_0, minimal, formative), where P_20 consists of: U21#(tt, X) =#> activate#(X) U31#(tt, X, Y) =#> U32#(isNatKind(activate(X)), activate(X), activate(Y)) U31#(tt, X, Y) =#> isNatKind#(activate(X)) U31#(tt, X, Y) =#> activate#(X) U31#(tt, X, Y) =#> activate#(X) U32#(tt, X, Y) =#> U33#(isNatKind(activate(Y)), activate(X), activate(Y)) U32#(tt, X, Y) =#> isNatKind#(activate(Y)) U32#(tt, X, Y) =#> activate#(Y) U32#(tt, X, Y) =#> activate#(X) U32#(tt, X, Y) =#> activate#(Y) U33#(tt, X, Y) =#> activate#(Y) U33#(tt, X, Y) =#> activate#(Y) U61#(tt, X) =#> isNatKind#(activate(X)) isNat#(n!6220!6220plus(X, Y)) =#> activate#(X) isNat#(n!6220!6220plus(X, Y)) =#> activate#(X) isNat#(n!6220!6220plus(X, Y)) =#> activate#(Y) isNat#(n!6220!6220s(X)) =#> U21#(isNatKind(activate(X)), activate(X)) isNat#(n!6220!6220s(X)) =#> isNatKind#(activate(X)) isNat#(n!6220!6220s(X)) =#> activate#(X) isNat#(n!6220!6220s(X)) =#> activate#(X) isNat#(n!6220!6220x(X, Y)) =#> isNatKind#(activate(X)) isNat#(n!6220!6220x(X, Y)) =#> activate#(Y) isNatKind#(n!6220!6220plus(X, Y)) =#> isNatKind#(activate(X)) isNatKind#(n!6220!6220plus(X, Y)) =#> activate#(X) isNatKind#(n!6220!6220plus(X, Y)) =#> activate#(Y) isNatKind#(n!6220!6220s(X)) =#> isNatKind#(activate(X)) isNatKind#(n!6220!6220s(X)) =#> activate#(X) isNatKind#(n!6220!6220x(X, Y)) =#> U61#(isNatKind(activate(X)), activate(Y)) isNatKind#(n!6220!6220x(X, Y)) =#> isNatKind#(activate(X)) isNatKind#(n!6220!6220x(X, Y)) =#> activate#(Y) x#(X, 0) =#> isNat#(X) x#(X, s(Y)) =#> isNat#(Y) activate#(n!6220!6220plus(X, Y)) =#> activate#(X) activate#(n!6220!6220plus(X, Y)) =#> activate#(Y) activate#(n!6220!6220s(X)) =#> activate#(X) activate#(n!6220!6220x(X, Y)) =#> x#(activate(X), activate(Y)) activate#(n!6220!6220x(X, Y)) =#> activate#(X) activate#(n!6220!6220x(X, Y)) =#> activate#(Y) Thus, the original system is terminating if (P_20, R_0, minimal, formative) is finite. We consider the dependency pair problem (P_20, R_0, minimal, formative). We place the elements of P in a dependency graph approximation G (see e.g. [Kop12, Thm. 7.27, 7.29], as follows: * 0 : 32, 33, 34, 35, 36, 37 * 1 : 5, 6, 7, 8, 9 * 2 : 22, 23, 24, 25, 26, 27, 28, 29 * 3 : 32, 33, 34, 35, 36, 37 * 4 : 32, 33, 34, 35, 36, 37 * 5 : 10, 11 * 6 : 22, 23, 24, 25, 26, 27, 28, 29 * 7 : 32, 33, 34, 35, 36, 37 * 8 : 32, 33, 34, 35, 36, 37 * 9 : 32, 33, 34, 35, 36, 37 * 10 : 32, 33, 34, 35, 36, 37 * 11 : 32, 33, 34, 35, 36, 37 * 12 : 22, 23, 24, 25, 26, 27, 28, 29 * 13 : 32, 33, 34, 35, 36, 37 * 14 : 32, 33, 34, 35, 36, 37 * 15 : 32, 33, 34, 35, 36, 37 * 16 : 0 * 17 : 22, 23, 24, 25, 26, 27, 28, 29 * 18 : 32, 33, 34, 35, 36, 37 * 19 : 32, 33, 34, 35, 36, 37 * 20 : 22, 23, 24, 25, 26, 27, 28, 29 * 21 : 32, 33, 34, 35, 36, 37 * 22 : 22, 23, 24, 25, 26, 27, 28, 29 * 23 : 32, 33, 34, 35, 36, 37 * 24 : 32, 33, 34, 35, 36, 37 * 25 : 22, 23, 24, 25, 26, 27, 28, 29 * 26 : 32, 33, 34, 35, 36, 37 * 27 : 12 * 28 : 22, 23, 24, 25, 26, 27, 28, 29 * 29 : 32, 33, 34, 35, 36, 37 * 30 : 13, 14, 15, 16, 17, 18, 19, 20, 21 * 31 : 13, 14, 15, 16, 17, 18, 19, 20, 21 * 32 : 32, 33, 34, 35, 36, 37 * 33 : 32, 33, 34, 35, 36, 37 * 34 : 32, 33, 34, 35, 36, 37 * 35 : 30, 31 * 36 : 32, 33, 34, 35, 36, 37 * 37 : 32, 33, 34, 35, 36, 37 This graph has the following strongly connected components: P_21: U21#(tt, X) =#> activate#(X) U61#(tt, X) =#> isNatKind#(activate(X)) isNat#(n!6220!6220plus(X, Y)) =#> activate#(X) isNat#(n!6220!6220plus(X, Y)) =#> activate#(X) isNat#(n!6220!6220plus(X, Y)) =#> activate#(Y) isNat#(n!6220!6220s(X)) =#> U21#(isNatKind(activate(X)), activate(X)) isNat#(n!6220!6220s(X)) =#> isNatKind#(activate(X)) isNat#(n!6220!6220s(X)) =#> activate#(X) isNat#(n!6220!6220s(X)) =#> activate#(X) isNat#(n!6220!6220x(X, Y)) =#> isNatKind#(activate(X)) isNat#(n!6220!6220x(X, Y)) =#> activate#(Y) isNatKind#(n!6220!6220plus(X, Y)) =#> isNatKind#(activate(X)) isNatKind#(n!6220!6220plus(X, Y)) =#> activate#(X) isNatKind#(n!6220!6220plus(X, Y)) =#> activate#(Y) isNatKind#(n!6220!6220s(X)) =#> isNatKind#(activate(X)) isNatKind#(n!6220!6220s(X)) =#> activate#(X) isNatKind#(n!6220!6220x(X, Y)) =#> U61#(isNatKind(activate(X)), activate(Y)) isNatKind#(n!6220!6220x(X, Y)) =#> isNatKind#(activate(X)) isNatKind#(n!6220!6220x(X, Y)) =#> activate#(Y) x#(X, 0) =#> isNat#(X) x#(X, s(Y)) =#> isNat#(Y) activate#(n!6220!6220plus(X, Y)) =#> activate#(X) activate#(n!6220!6220plus(X, Y)) =#> activate#(Y) activate#(n!6220!6220s(X)) =#> activate#(X) activate#(n!6220!6220x(X, Y)) =#> x#(activate(X), activate(Y)) activate#(n!6220!6220x(X, Y)) =#> activate#(X) activate#(n!6220!6220x(X, Y)) =#> activate#(Y) By [Kop12, Thm. 7.31], we may replace any dependency pair problem (P_20, R_0, m, f) by (P_21, R_0, m, f). Thus, the original system is terminating if (P_21, R_0, minimal, formative) is finite. We consider the dependency pair problem (P_21, R_0, minimal, formative). We will use the reduction pair processor [Kop12, Thm. 7.16]. It suffices to find a standard reduction pair [Kop12, Def. 6.69]. Thus, we must orient: U21#(tt, X) >? activate#(X) U61#(tt, X) >? isNatKind#(activate(X)) isNat#(n!6220!6220plus(X, Y)) >? activate#(X) isNat#(n!6220!6220plus(X, Y)) >? activate#(X) isNat#(n!6220!6220plus(X, Y)) >? activate#(Y) isNat#(n!6220!6220s(X)) >? U21#(isNatKind(activate(X)), activate(X)) isNat#(n!6220!6220s(X)) >? isNatKind#(activate(X)) isNat#(n!6220!6220s(X)) >? activate#(X) isNat#(n!6220!6220s(X)) >? activate#(X) isNat#(n!6220!6220x(X, Y)) >? isNatKind#(activate(X)) isNat#(n!6220!6220x(X, Y)) >? activate#(Y) isNatKind#(n!6220!6220plus(X, Y)) >? isNatKind#(activate(X)) isNatKind#(n!6220!6220plus(X, Y)) >? activate#(X) isNatKind#(n!6220!6220plus(X, Y)) >? activate#(Y) isNatKind#(n!6220!6220s(X)) >? isNatKind#(activate(X)) isNatKind#(n!6220!6220s(X)) >? activate#(X) isNatKind#(n!6220!6220x(X, Y)) >? U61#(isNatKind(activate(X)), activate(Y)) isNatKind#(n!6220!6220x(X, Y)) >? isNatKind#(activate(X)) isNatKind#(n!6220!6220x(X, Y)) >? activate#(Y) x#(X, 0) >? isNat#(X) x#(X, s(Y)) >? isNat#(Y) activate#(n!6220!6220plus(X, Y)) >? activate#(X) activate#(n!6220!6220plus(X, Y)) >? activate#(Y) activate#(n!6220!6220s(X)) >? activate#(X) activate#(n!6220!6220x(X, Y)) >? x#(activate(X), activate(Y)) activate#(n!6220!6220x(X, Y)) >? activate#(X) activate#(n!6220!6220x(X, Y)) >? activate#(Y) U101(tt, X, Y) >= U102(isNatKind(activate(X)), activate(X), activate(Y)) U102(tt, X, Y) >= U103(isNat(activate(Y)), activate(X), activate(Y)) U103(tt, X, Y) >= U104(isNatKind(activate(Y)), activate(X), activate(Y)) U104(tt, X, Y) >= plus(x(activate(Y), activate(X)), activate(Y)) U11(tt, X, Y) >= U12(isNatKind(activate(X)), activate(X), activate(Y)) U12(tt, X, Y) >= U13(isNatKind(activate(Y)), activate(X), activate(Y)) U13(tt, X, Y) >= U14(isNatKind(activate(Y)), activate(X), activate(Y)) U14(tt, X, Y) >= U15(isNat(activate(X)), activate(Y)) U15(tt, X) >= U16(isNat(activate(X))) U16(tt) >= tt U21(tt, X) >= U22(isNatKind(activate(X)), activate(X)) U22(tt, X) >= U23(isNat(activate(X))) U23(tt) >= tt U31(tt, X, Y) >= U32(isNatKind(activate(X)), activate(X), activate(Y)) U32(tt, X, Y) >= U33(isNatKind(activate(Y)), activate(X), activate(Y)) U33(tt, X, Y) >= U34(isNatKind(activate(Y)), activate(X), activate(Y)) U34(tt, X, Y) >= U35(isNat(activate(X)), activate(Y)) U35(tt, X) >= U36(isNat(activate(X))) U36(tt) >= tt U41(tt, X) >= U42(isNatKind(activate(X))) U42(tt) >= tt U51(tt) >= tt U61(tt, X) >= U62(isNatKind(activate(X))) U62(tt) >= tt U71(tt, X) >= U72(isNatKind(activate(X)), activate(X)) U72(tt, X) >= activate(X) U81(tt, X, Y) >= U82(isNatKind(activate(X)), activate(X), activate(Y)) U82(tt, X, Y) >= U83(isNat(activate(Y)), activate(X), activate(Y)) U83(tt, X, Y) >= U84(isNatKind(activate(Y)), activate(X), activate(Y)) U84(tt, X, Y) >= s(plus(activate(Y), activate(X))) U91(tt, X) >= U92(isNatKind(activate(X))) U92(tt) >= 0 isNat(n!6220!62200) >= tt isNat(n!6220!6220plus(X, Y)) >= U11(isNatKind(activate(X)), activate(X), activate(Y)) isNat(n!6220!6220s(X)) >= U21(isNatKind(activate(X)), activate(X)) isNat(n!6220!6220x(X, Y)) >= U31(isNatKind(activate(X)), activate(X), activate(Y)) isNatKind(n!6220!62200) >= tt isNatKind(n!6220!6220plus(X, Y)) >= U41(isNatKind(activate(X)), activate(Y)) isNatKind(n!6220!6220s(X)) >= U51(isNatKind(activate(X))) isNatKind(n!6220!6220x(X, Y)) >= U61(isNatKind(activate(X)), activate(Y)) plus(X, 0) >= U71(isNat(X), X) plus(X, s(Y)) >= U81(isNat(Y), Y, X) x(X, 0) >= U91(isNat(X), X) x(X, s(Y)) >= U101(isNat(Y), Y, X) 0 >= n!6220!62200 plus(X, Y) >= n!6220!6220plus(X, Y) s(X) >= n!6220!6220s(X) x(X, Y) >= n!6220!6220x(X, Y) activate(n!6220!62200) >= 0 activate(n!6220!6220plus(X, Y)) >= plus(activate(X), activate(Y)) activate(n!6220!6220s(X)) >= s(activate(X)) activate(n!6220!6220x(X, Y)) >= x(activate(X), activate(Y)) activate(X) >= X Since this representation is not advantageous for the higher-order recursive path ordering, we present the strict requirements in their unextended form, which is not problematic since for any F, s and substituion gamma: (F s)gamma beta-reduces to F(s)gamma.) We use a recursive path ordering as defined in [Kop12, Chapter 5]. Argument functions: [[0]] = _|_ [[U11(x_1, x_2, x_3)]] = _|_ [[U12(x_1, x_2, x_3)]] = _|_ [[U13(x_1, x_2, x_3)]] = _|_ [[U14(x_1, x_2, x_3)]] = x_1 [[U15(x_1, x_2)]] = x_1 [[U16(x_1)]] = x_1 [[U21(x_1, x_2)]] = x_1 [[U22(x_1, x_2)]] = x_1 [[U23(x_1)]] = x_1 [[U31(x_1, x_2, x_3)]] = _|_ [[U32(x_1, x_2, x_3)]] = _|_ [[U33(x_1, x_2, x_3)]] = _|_ [[U34(x_1, x_2, x_3)]] = _|_ [[U35(x_1, x_2)]] = _|_ [[U36(x_1)]] = _|_ [[U41(x_1, x_2)]] = x_1 [[U42(x_1)]] = x_1 [[U51(x_1)]] = x_1 [[U61(x_1, x_2)]] = x_1 [[U62(x_1)]] = x_1 [[U71(x_1, x_2)]] = x_2 [[U72(x_1, x_2)]] = x_2 [[U91(x_1, x_2)]] = U91(x_2) [[U92(x_1)]] = x_1 [[activate(x_1)]] = x_1 [[isNat(x_1)]] = _|_ [[isNatKind(x_1)]] = _|_ [[n!6220!62200]] = _|_ [[tt]] = _|_ We choose Lex = {} and Mul = {U101, U102, U103, U104, U21#, U61#, U81, U82, U83, U84, U91, activate#, isNatKind#, isNat#, n!6220!6220plus, n!6220!6220s, n!6220!6220x, plus, s, x, x#}, and the following precedence: U101 = U102 = U103 = U104 = n!6220!6220x = x > U21# = U61# = U81 = U82 = U83 = U84 = activate# = isNatKind# = isNat# = n!6220!6220plus = plus = x# > U91 > n!6220!6220s = s Taking the argument function into account, and fixing the greater / greater equal choices, the constraints can be denoted as follows: U21#(_|_, X) >= activate#(X) U61#(_|_, X) >= isNatKind#(X) isNat#(n!6220!6220plus(X, Y)) >= activate#(X) isNat#(n!6220!6220plus(X, Y)) >= activate#(X) isNat#(n!6220!6220plus(X, Y)) >= activate#(Y) isNat#(n!6220!6220s(X)) >= U21#(_|_, X) isNat#(n!6220!6220s(X)) >= isNatKind#(X) isNat#(n!6220!6220s(X)) >= activate#(X) isNat#(n!6220!6220s(X)) >= activate#(X) isNat#(n!6220!6220x(X, Y)) >= isNatKind#(X) isNat#(n!6220!6220x(X, Y)) >= activate#(Y) isNatKind#(n!6220!6220plus(X, Y)) >= isNatKind#(X) isNatKind#(n!6220!6220plus(X, Y)) >= activate#(X) isNatKind#(n!6220!6220plus(X, Y)) >= activate#(Y) isNatKind#(n!6220!6220s(X)) >= isNatKind#(X) isNatKind#(n!6220!6220s(X)) >= activate#(X) isNatKind#(n!6220!6220x(X, Y)) >= U61#(_|_, Y) isNatKind#(n!6220!6220x(X, Y)) >= isNatKind#(X) isNatKind#(n!6220!6220x(X, Y)) >= activate#(Y) x#(X, _|_) >= isNat#(X) x#(X, s(Y)) >= isNat#(Y) activate#(n!6220!6220plus(X, Y)) >= activate#(X) activate#(n!6220!6220plus(X, Y)) > activate#(Y) activate#(n!6220!6220s(X)) >= activate#(X) activate#(n!6220!6220x(X, Y)) > x#(X, Y) activate#(n!6220!6220x(X, Y)) >= activate#(X) activate#(n!6220!6220x(X, Y)) >= activate#(Y) U101(_|_, X, Y) >= U102(_|_, X, Y) U102(_|_, X, Y) >= U103(_|_, X, Y) U103(_|_, X, Y) >= U104(_|_, X, Y) U104(_|_, X, Y) >= plus(x(Y, X), Y) _|_ >= _|_ _|_ >= _|_ _|_ >= _|_ _|_ >= _|_ _|_ >= _|_ _|_ >= _|_ _|_ >= _|_ _|_ >= _|_ _|_ >= _|_ _|_ >= _|_ _|_ >= _|_ _|_ >= _|_ _|_ >= _|_ _|_ >= _|_ _|_ >= _|_ _|_ >= _|_ _|_ >= _|_ _|_ >= _|_ _|_ >= _|_ _|_ >= _|_ X >= X X >= X U81(_|_, X, Y) >= U82(_|_, X, Y) U82(_|_, X, Y) >= U83(_|_, X, Y) U83(_|_, X, Y) >= U84(_|_, X, Y) U84(_|_, X, Y) >= s(plus(Y, X)) U91(X) >= _|_ _|_ >= _|_ _|_ >= _|_ _|_ >= _|_ _|_ >= _|_ _|_ >= _|_ _|_ >= _|_ _|_ >= _|_ _|_ >= _|_ _|_ >= _|_ plus(X, _|_) >= X plus(X, s(Y)) >= U81(_|_, Y, X) x(X, _|_) >= U91(X) x(X, s(Y)) >= U101(_|_, Y, X) _|_ >= _|_ plus(X, Y) >= n!6220!6220plus(X, Y) s(X) >= n!6220!6220s(X) x(X, Y) >= n!6220!6220x(X, Y) _|_ >= _|_ n!6220!6220plus(X, Y) >= plus(X, Y) n!6220!6220s(X) >= s(X) n!6220!6220x(X, Y) >= x(X, Y) X >= X With these choices, we have: 1] U21#(_|_, X) >= activate#(X) because [2], by (Star) 2] U21#*(_|_, X) >= activate#(X) because U21# = activate#, U21# in Mul and [3], by (Stat) 3] X >= X by (Meta) 4] U61#(_|_, X) >= isNatKind#(X) because [5], by (Star) 5] U61#*(_|_, X) >= isNatKind#(X) because U61# = isNatKind#, U61# in Mul and [6], by (Stat) 6] X >= X by (Meta) 7] isNat#(n!6220!6220plus(X, Y)) >= activate#(X) because [8], by (Star) 8] isNat#*(n!6220!6220plus(X, Y)) >= activate#(X) because [9], by (Select) 9] n!6220!6220plus(X, Y) >= activate#(X) because [10], by (Star) 10] n!6220!6220plus*(X, Y) >= activate#(X) because n!6220!6220plus = activate#, n!6220!6220plus in Mul and [3], by (Stat) 11] isNat#(n!6220!6220plus(X, Y)) >= activate#(X) because [8], by (Star) 12] isNat#(n!6220!6220plus(X, Y)) >= activate#(Y) because [13], by (Star) 13] isNat#*(n!6220!6220plus(X, Y)) >= activate#(Y) because isNat# = activate#, isNat# in Mul and [14], by (Stat) 14] n!6220!6220plus(X, Y) > Y because [15], by definition 15] n!6220!6220plus*(X, Y) >= Y because [6], by (Select) 16] isNat#(n!6220!6220s(X)) >= U21#(_|_, X) because [17], by (Star) 17] isNat#*(n!6220!6220s(X)) >= U21#(_|_, X) because isNat# = U21#, isNat# in Mul, [18] and [20], by (Stat) 18] n!6220!6220s(X) > _|_ because [19], by definition 19] n!6220!6220s*(X) >= _|_ by (Bot) 20] n!6220!6220s(X) > X because [21], by definition 21] n!6220!6220s*(X) >= X because [3], by (Select) 22] isNat#(n!6220!6220s(X)) >= isNatKind#(X) because [23], by (Star) 23] isNat#*(n!6220!6220s(X)) >= isNatKind#(X) because isNat# = isNatKind#, isNat# in Mul and [20], by (Stat) 24] isNat#(n!6220!6220s(X)) >= activate#(X) because isNat# = activate#, isNat# in Mul and [25], by (Fun) 25] n!6220!6220s(X) >= X because [21], by (Star) 26] isNat#(n!6220!6220s(X)) >= activate#(X) because isNat# = activate#, isNat# in Mul and [25], by (Fun) 27] isNat#(n!6220!6220x(X, Y)) >= isNatKind#(X) because isNat# = isNatKind#, isNat# in Mul and [28], by (Fun) 28] n!6220!6220x(X, Y) >= X because [29], by (Star) 29] n!6220!6220x*(X, Y) >= X because [3], by (Select) 30] isNat#(n!6220!6220x(X, Y)) >= activate#(Y) because isNat# = activate#, isNat# in Mul and [31], by (Fun) 31] n!6220!6220x(X, Y) >= Y because [32], by (Star) 32] n!6220!6220x*(X, Y) >= Y because [6], by (Select) 33] isNatKind#(n!6220!6220plus(X, Y)) >= isNatKind#(X) because [34], by (Star) 34] isNatKind#*(n!6220!6220plus(X, Y)) >= isNatKind#(X) because [35], by (Select) 35] n!6220!6220plus(X, Y) >= isNatKind#(X) because [36], by (Star) 36] n!6220!6220plus*(X, Y) >= isNatKind#(X) because n!6220!6220plus = isNatKind#, n!6220!6220plus in Mul and [37], by (Stat) 37] X >= X by (Meta) 38] isNatKind#(n!6220!6220plus(X, Y)) >= activate#(X) because [39], by (Star) 39] isNatKind#*(n!6220!6220plus(X, Y)) >= activate#(X) because [9], by (Select) 40] isNatKind#(n!6220!6220plus(X, Y)) >= activate#(Y) because [41], by (Star) 41] isNatKind#*(n!6220!6220plus(X, Y)) >= activate#(Y) because isNatKind# = activate#, isNatKind# in Mul and [14], by (Stat) 42] isNatKind#(n!6220!6220s(X)) >= isNatKind#(X) because [43], by (Star) 43] isNatKind#*(n!6220!6220s(X)) >= isNatKind#(X) because isNatKind# in Mul and [20], by (Stat) 44] isNatKind#(n!6220!6220s(X)) >= activate#(X) because isNatKind# = activate#, isNatKind# in Mul and [25], by (Fun) 45] isNatKind#(n!6220!6220x(X, Y)) >= U61#(_|_, Y) because [46], by (Star) 46] isNatKind#*(n!6220!6220x(X, Y)) >= U61#(_|_, Y) because isNatKind# = U61#, isNatKind# in Mul, [47] and [49], by (Stat) 47] n!6220!6220x(X, Y) > _|_ because [48], by definition 48] n!6220!6220x*(X, Y) >= _|_ by (Bot) 49] n!6220!6220x(X, Y) > Y because [50], by definition 50] n!6220!6220x*(X, Y) >= Y because [6], by (Select) 51] isNatKind#(n!6220!6220x(X, Y)) >= isNatKind#(X) because isNatKind# in Mul and [28], by (Fun) 52] isNatKind#(n!6220!6220x(X, Y)) >= activate#(Y) because isNatKind# = activate#, isNatKind# in Mul and [31], by (Fun) 53] x#(X, _|_) >= isNat#(X) because [54], by (Star) 54] x#*(X, _|_) >= isNat#(X) because x# = isNat#, x# in Mul and [55], by (Stat) 55] X >= X by (Meta) 56] x#(X, s(Y)) >= isNat#(Y) because [57], by (Star) 57] x#*(X, s(Y)) >= isNat#(Y) because x# = isNat#, x# in Mul and [58], by (Stat) 58] s(Y) > Y because [59], by definition 59] s*(Y) >= Y because [60], by (Select) 60] Y >= Y by (Meta) 61] activate#(n!6220!6220plus(X, Y)) >= activate#(X) because [62], by (Star) 62] activate#*(n!6220!6220plus(X, Y)) >= activate#(X) because [63], by (Select) 63] n!6220!6220plus(X, Y) >= activate#(X) because [64], by (Star) 64] n!6220!6220plus*(X, Y) >= activate#(X) because n!6220!6220plus = activate#, n!6220!6220plus in Mul and [65], by (Stat) 65] X >= X by (Meta) 66] activate#(n!6220!6220plus(X, Y)) > activate#(Y) because [67], by definition 67] activate#*(n!6220!6220plus(X, Y)) >= activate#(Y) because [68], by (Select) 68] n!6220!6220plus(X, Y) >= activate#(Y) because [69], by (Star) 69] n!6220!6220plus*(X, Y) >= activate#(Y) because n!6220!6220plus = activate#, n!6220!6220plus in Mul and [70], by (Stat) 70] Y >= Y by (Meta) 71] activate#(n!6220!6220s(X)) >= activate#(X) because activate# in Mul and [72], by (Fun) 72] n!6220!6220s(X) >= X because [73], by (Star) 73] n!6220!6220s*(X) >= X because [74], by (Select) 74] X >= X by (Meta) 75] activate#(n!6220!6220x(X, Y)) > x#(X, Y) because [76], by definition 76] activate#*(n!6220!6220x(X, Y)) >= x#(X, Y) because activate# = x#, activate# in Mul, [77] and [79], by (Stat) 77] n!6220!6220x(X, Y) > X because [78], by definition 78] n!6220!6220x*(X, Y) >= X because [65], by (Select) 79] n!6220!6220x(X, Y) > Y because [80], by definition 80] n!6220!6220x*(X, Y) >= Y because [70], by (Select) 81] activate#(n!6220!6220x(X, Y)) >= activate#(X) because activate# in Mul and [82], by (Fun) 82] n!6220!6220x(X, Y) >= X because [78], by (Star) 83] activate#(n!6220!6220x(X, Y)) >= activate#(Y) because [84], by (Star) 84] activate#*(n!6220!6220x(X, Y)) >= activate#(Y) because activate# in Mul and [85], by (Stat) 85] n!6220!6220x(X, Y) > Y because [80], by definition 86] U101(_|_, X, Y) >= U102(_|_, X, Y) because U101 = U102, U101 in Mul, [87], [88] and [89], by (Fun) 87] _|_ >= _|_ by (Bot) 88] X >= X by (Meta) 89] Y >= Y by (Meta) 90] U102(_|_, X, Y) >= U103(_|_, X, Y) because U102 = U103, U102 in Mul, [91], [88] and [89], by (Fun) 91] _|_ >= _|_ by (Bot) 92] U103(_|_, X, Y) >= U104(_|_, X, Y) because U103 = U104, U103 in Mul, [93], [88] and [89], by (Fun) 93] _|_ >= _|_ by (Bot) 94] U104(_|_, X, Y) >= plus(x(Y, X), Y) because [95], by (Star) 95] U104*(_|_, X, Y) >= plus(x(Y, X), Y) because U104 > plus, [96] and [97], by (Copy) 96] U104*(_|_, X, Y) >= x(Y, X) because U104 = x, U104 in Mul, [88] and [89], by (Stat) 97] U104*(_|_, X, Y) >= Y because [89], by (Select) 98] _|_ >= _|_ by (Bot) 99] _|_ >= _|_ by (Bot) 100] _|_ >= _|_ by (Bot) 101] _|_ >= _|_ by (Bot) 102] _|_ >= _|_ by (Bot) 103] _|_ >= _|_ by (Bot) 104] _|_ >= _|_ by (Bot) 105] _|_ >= _|_ by (Bot) 106] _|_ >= _|_ by (Bot) 107] _|_ >= _|_ by (Bot) 108] _|_ >= _|_ by (Bot) 109] _|_ >= _|_ by (Bot) 110] _|_ >= _|_ by (Bot) 111] _|_ >= _|_ by (Bot) 112] _|_ >= _|_ by (Bot) 113] _|_ >= _|_ by (Bot) 114] _|_ >= _|_ by (Bot) 115] _|_ >= _|_ by (Bot) 116] _|_ >= _|_ by (Bot) 117] _|_ >= _|_ by (Bot) 118] X >= X by (Meta) 119] X >= X by (Meta) 120] U81(_|_, X, Y) >= U82(_|_, X, Y) because U81 = U82, U81 in Mul, [87], [88] and [89], by (Fun) 121] U82(_|_, X, Y) >= U83(_|_, X, Y) because U82 = U83, U82 in Mul, [91], [88] and [89], by (Fun) 122] U83(_|_, X, Y) >= U84(_|_, X, Y) because U83 = U84, U83 in Mul, [93], [88] and [89], by (Fun) 123] U84(_|_, X, Y) >= s(plus(Y, X)) because [124], by (Star) 124] U84*(_|_, X, Y) >= s(plus(Y, X)) because U84 > s and [125], by (Copy) 125] U84*(_|_, X, Y) >= plus(Y, X) because U84 = plus, U84 in Mul, [88] and [89], by (Stat) 126] U91(X) >= _|_ by (Bot) 127] _|_ >= _|_ by (Bot) 128] _|_ >= _|_ by (Bot) 129] _|_ >= _|_ by (Bot) 130] _|_ >= _|_ by (Bot) 131] _|_ >= _|_ by (Bot) 132] _|_ >= _|_ by (Bot) 133] _|_ >= _|_ by (Bot) 134] _|_ >= _|_ by (Bot) 135] _|_ >= _|_ by (Bot) 136] plus(X, _|_) >= X because [137], by (Star) 137] plus*(X, _|_) >= X because [119], by (Select) 138] plus(X, s(Y)) >= U81(_|_, Y, X) because [139], by (Star) 139] plus*(X, s(Y)) >= U81(_|_, Y, X) because plus = U81, plus in Mul, [89], [140] and [58], by (Stat) 140] s(Y) > _|_ because [141], by definition 141] s*(Y) >= _|_ by (Bot) 142] x(X, _|_) >= U91(X) because [143], by (Star) 143] x*(X, _|_) >= U91(X) because x > U91 and [144], by (Copy) 144] x*(X, _|_) >= X because [119], by (Select) 145] x(X, s(Y)) >= U101(_|_, Y, X) because [146], by (Star) 146] x*(X, s(Y)) >= U101(_|_, Y, X) because x = U101, x in Mul, [89], [140] and [58], by (Stat) 147] _|_ >= _|_ by (Bot) 148] plus(X, Y) >= n!6220!6220plus(X, Y) because plus = n!6220!6220plus, plus in Mul, [65] and [70], by (Fun) 149] s(X) >= n!6220!6220s(X) because s = n!6220!6220s, s in Mul and [150], by (Fun) 150] X >= X by (Meta) 151] x(X, Y) >= n!6220!6220x(X, Y) because x = n!6220!6220x, x in Mul, [65] and [70], by (Fun) 152] _|_ >= _|_ by (Bot) 153] n!6220!6220plus(X, Y) >= plus(X, Y) because n!6220!6220plus = plus, n!6220!6220plus in Mul, [154] and [155], by (Fun) 154] X >= X by (Meta) 155] Y >= Y by (Meta) 156] n!6220!6220s(X) >= s(X) because n!6220!6220s = s, n!6220!6220s in Mul and [157], by (Fun) 157] X >= X by (Meta) 158] n!6220!6220x(X, Y) >= x(X, Y) because n!6220!6220x = x, n!6220!6220x in Mul, [154] and [155], by (Fun) 159] X >= X by (Meta) By the observations in [Kop12, Sec. 6.6], this reduction pair suffices; we may thus replace the dependency pair problem (P_21, R_0, minimal, formative) by (P_22, R_0, minimal, formative), where P_22 consists of: U21#(tt, X) =#> activate#(X) U61#(tt, X) =#> isNatKind#(activate(X)) isNat#(n!6220!6220plus(X, Y)) =#> activate#(X) isNat#(n!6220!6220plus(X, Y)) =#> activate#(X) isNat#(n!6220!6220plus(X, Y)) =#> activate#(Y) isNat#(n!6220!6220s(X)) =#> U21#(isNatKind(activate(X)), activate(X)) isNat#(n!6220!6220s(X)) =#> isNatKind#(activate(X)) isNat#(n!6220!6220s(X)) =#> activate#(X) isNat#(n!6220!6220s(X)) =#> activate#(X) isNat#(n!6220!6220x(X, Y)) =#> isNatKind#(activate(X)) isNat#(n!6220!6220x(X, Y)) =#> activate#(Y) isNatKind#(n!6220!6220plus(X, Y)) =#> isNatKind#(activate(X)) isNatKind#(n!6220!6220plus(X, Y)) =#> activate#(X) isNatKind#(n!6220!6220plus(X, Y)) =#> activate#(Y) isNatKind#(n!6220!6220s(X)) =#> isNatKind#(activate(X)) isNatKind#(n!6220!6220s(X)) =#> activate#(X) isNatKind#(n!6220!6220x(X, Y)) =#> U61#(isNatKind(activate(X)), activate(Y)) isNatKind#(n!6220!6220x(X, Y)) =#> isNatKind#(activate(X)) isNatKind#(n!6220!6220x(X, Y)) =#> activate#(Y) x#(X, 0) =#> isNat#(X) x#(X, s(Y)) =#> isNat#(Y) activate#(n!6220!6220plus(X, Y)) =#> activate#(X) activate#(n!6220!6220s(X)) =#> activate#(X) activate#(n!6220!6220x(X, Y)) =#> activate#(X) activate#(n!6220!6220x(X, Y)) =#> activate#(Y) Thus, the original system is terminating if (P_22, R_0, minimal, formative) is finite. We consider the dependency pair problem (P_22, R_0, minimal, formative). We place the elements of P in a dependency graph approximation G (see e.g. [Kop12, Thm. 7.27, 7.29], as follows: * 0 : 21, 22, 23, 24 * 1 : 11, 12, 13, 14, 15, 16, 17, 18 * 2 : 21, 22, 23, 24 * 3 : 21, 22, 23, 24 * 4 : 21, 22, 23, 24 * 5 : 0 * 6 : 11, 12, 13, 14, 15, 16, 17, 18 * 7 : 21, 22, 23, 24 * 8 : 21, 22, 23, 24 * 9 : 11, 12, 13, 14, 15, 16, 17, 18 * 10 : 21, 22, 23, 24 * 11 : 11, 12, 13, 14, 15, 16, 17, 18 * 12 : 21, 22, 23, 24 * 13 : 21, 22, 23, 24 * 14 : 11, 12, 13, 14, 15, 16, 17, 18 * 15 : 21, 22, 23, 24 * 16 : 1 * 17 : 11, 12, 13, 14, 15, 16, 17, 18 * 18 : 21, 22, 23, 24 * 19 : 2, 3, 4, 5, 6, 7, 8, 9, 10 * 20 : 2, 3, 4, 5, 6, 7, 8, 9, 10 * 21 : 21, 22, 23, 24 * 22 : 21, 22, 23, 24 * 23 : 21, 22, 23, 24 * 24 : 21, 22, 23, 24 This graph has the following strongly connected components: P_23: U61#(tt, X) =#> isNatKind#(activate(X)) isNatKind#(n!6220!6220plus(X, Y)) =#> isNatKind#(activate(X)) isNatKind#(n!6220!6220s(X)) =#> isNatKind#(activate(X)) isNatKind#(n!6220!6220x(X, Y)) =#> U61#(isNatKind(activate(X)), activate(Y)) isNatKind#(n!6220!6220x(X, Y)) =#> isNatKind#(activate(X)) P_24: activate#(n!6220!6220plus(X, Y)) =#> activate#(X) activate#(n!6220!6220s(X)) =#> activate#(X) activate#(n!6220!6220x(X, Y)) =#> activate#(X) activate#(n!6220!6220x(X, Y)) =#> activate#(Y) By [Kop12, Thm. 7.31], we may replace any dependency pair problem (P_22, R_0, m, f) by (P_23, R_0, m, f) and (P_24, R_0, m, f). Thus, the original system is terminating if each of (P_23, R_0, minimal, formative) and (P_24, R_0, minimal, formative) is finite. We consider the dependency pair problem (P_24, R_0, minimal, formative). We apply the subterm criterion with the following projection function: nu(activate#) = 1 Thus, we can orient the dependency pairs as follows: nu(activate#(n!6220!6220plus(X, Y))) = n!6220!6220plus(X, Y) |> X = nu(activate#(X)) nu(activate#(n!6220!6220s(X))) = n!6220!6220s(X) |> X = nu(activate#(X)) nu(activate#(n!6220!6220x(X, Y))) = n!6220!6220x(X, Y) |> X = nu(activate#(X)) nu(activate#(n!6220!6220x(X, Y))) = n!6220!6220x(X, Y) |> Y = nu(activate#(Y)) By [Kop12, Thm. 7.35], we may replace a dependency pair problem (P_24, R_0, minimal, f) by ({}, R_0, minimal, f). By the empty set processor [Kop12, Thm. 7.15] this problem may be immediately removed. Thus, the original system is terminating if (P_23, R_0, minimal, formative) is finite. We consider the dependency pair problem (P_23, R_0, minimal, formative). We will use the reduction pair processor [Kop12, Thm. 7.16]. It suffices to find a standard reduction pair [Kop12, Def. 6.69]. Thus, we must orient: U61#(tt, X) >? isNatKind#(activate(X)) isNatKind#(n!6220!6220plus(X, Y)) >? isNatKind#(activate(X)) isNatKind#(n!6220!6220s(X)) >? isNatKind#(activate(X)) isNatKind#(n!6220!6220x(X, Y)) >? U61#(isNatKind(activate(X)), activate(Y)) isNatKind#(n!6220!6220x(X, Y)) >? isNatKind#(activate(X)) U101(tt, X, Y) >= U102(isNatKind(activate(X)), activate(X), activate(Y)) U102(tt, X, Y) >= U103(isNat(activate(Y)), activate(X), activate(Y)) U103(tt, X, Y) >= U104(isNatKind(activate(Y)), activate(X), activate(Y)) U104(tt, X, Y) >= plus(x(activate(Y), activate(X)), activate(Y)) U11(tt, X, Y) >= U12(isNatKind(activate(X)), activate(X), activate(Y)) U12(tt, X, Y) >= U13(isNatKind(activate(Y)), activate(X), activate(Y)) U13(tt, X, Y) >= U14(isNatKind(activate(Y)), activate(X), activate(Y)) U14(tt, X, Y) >= U15(isNat(activate(X)), activate(Y)) U15(tt, X) >= U16(isNat(activate(X))) U16(tt) >= tt U21(tt, X) >= U22(isNatKind(activate(X)), activate(X)) U22(tt, X) >= U23(isNat(activate(X))) U23(tt) >= tt U31(tt, X, Y) >= U32(isNatKind(activate(X)), activate(X), activate(Y)) U32(tt, X, Y) >= U33(isNatKind(activate(Y)), activate(X), activate(Y)) U33(tt, X, Y) >= U34(isNatKind(activate(Y)), activate(X), activate(Y)) U34(tt, X, Y) >= U35(isNat(activate(X)), activate(Y)) U35(tt, X) >= U36(isNat(activate(X))) U36(tt) >= tt U41(tt, X) >= U42(isNatKind(activate(X))) U42(tt) >= tt U51(tt) >= tt U61(tt, X) >= U62(isNatKind(activate(X))) U62(tt) >= tt U71(tt, X) >= U72(isNatKind(activate(X)), activate(X)) U72(tt, X) >= activate(X) U81(tt, X, Y) >= U82(isNatKind(activate(X)), activate(X), activate(Y)) U82(tt, X, Y) >= U83(isNat(activate(Y)), activate(X), activate(Y)) U83(tt, X, Y) >= U84(isNatKind(activate(Y)), activate(X), activate(Y)) U84(tt, X, Y) >= s(plus(activate(Y), activate(X))) U91(tt, X) >= U92(isNatKind(activate(X))) U92(tt) >= 0 isNat(n!6220!62200) >= tt isNat(n!6220!6220plus(X, Y)) >= U11(isNatKind(activate(X)), activate(X), activate(Y)) isNat(n!6220!6220s(X)) >= U21(isNatKind(activate(X)), activate(X)) isNat(n!6220!6220x(X, Y)) >= U31(isNatKind(activate(X)), activate(X), activate(Y)) isNatKind(n!6220!62200) >= tt isNatKind(n!6220!6220plus(X, Y)) >= U41(isNatKind(activate(X)), activate(Y)) isNatKind(n!6220!6220s(X)) >= U51(isNatKind(activate(X))) isNatKind(n!6220!6220x(X, Y)) >= U61(isNatKind(activate(X)), activate(Y)) plus(X, 0) >= U71(isNat(X), X) plus(X, s(Y)) >= U81(isNat(Y), Y, X) x(X, 0) >= U91(isNat(X), X) x(X, s(Y)) >= U101(isNat(Y), Y, X) 0 >= n!6220!62200 plus(X, Y) >= n!6220!6220plus(X, Y) s(X) >= n!6220!6220s(X) x(X, Y) >= n!6220!6220x(X, Y) activate(n!6220!62200) >= 0 activate(n!6220!6220plus(X, Y)) >= plus(activate(X), activate(Y)) activate(n!6220!6220s(X)) >= s(activate(X)) activate(n!6220!6220x(X, Y)) >= x(activate(X), activate(Y)) activate(X) >= X We orient these requirements with a polynomial interpretation in the natural numbers. We consider usable_rules with respect to the following argument filtering: U101(x_1,x_2,x_3) = U101(x_2x_3) U102(x_1,x_2,x_3) = U102(x_2x_3) U103(x_1,x_2,x_3) = U103(x_2x_3) U104(x_1,x_2,x_3) = U104(x_2x_3) U61#(x_1,x_2) = U61#(x_2) U71(x_1,x_2) = U71(x_2) U72(x_1,x_2) = U72(x_2) U81(x_1,x_2,x_3) = U81(x_2x_3) U82(x_1,x_2,x_3) = U82(x_2x_3) U83(x_1,x_2,x_3) = U83(x_2x_3) U84(x_1,x_2,x_3) = U84(x_2x_3) U91(x_1,x_2) = U91(x_2) U92(x_1) = U92() This leaves the following ordering requirements: U61#(tt, X) >= isNatKind#(activate(X)) isNatKind#(n!6220!6220plus(X, Y)) >= isNatKind#(activate(X)) isNatKind#(n!6220!6220s(X)) >= isNatKind#(activate(X)) isNatKind#(n!6220!6220x(X, Y)) > U61#(isNatKind(activate(X)), activate(Y)) isNatKind#(n!6220!6220x(X, Y)) >= isNatKind#(activate(X)) U101(tt, X, Y) >= U102(isNatKind(activate(X)), activate(X), activate(Y)) U102(tt, X, Y) >= U103(isNat(activate(Y)), activate(X), activate(Y)) U103(tt, X, Y) >= U104(isNatKind(activate(Y)), activate(X), activate(Y)) U104(tt, X, Y) >= plus(x(activate(Y), activate(X)), activate(Y)) U71(tt, X) >= U72(isNatKind(activate(X)), activate(X)) U72(tt, X) >= activate(X) U81(tt, X, Y) >= U82(isNatKind(activate(X)), activate(X), activate(Y)) U82(tt, X, Y) >= U83(isNat(activate(Y)), activate(X), activate(Y)) U83(tt, X, Y) >= U84(isNatKind(activate(Y)), activate(X), activate(Y)) U84(tt, X, Y) >= s(plus(activate(Y), activate(X))) U91(tt, X) >= U92(isNatKind(activate(X))) U92(tt) >= 0 plus(X, 0) >= U71(isNat(X), X) plus(X, s(Y)) >= U81(isNat(Y), Y, X) x(X, 0) >= U91(isNat(X), X) x(X, s(Y)) >= U101(isNat(Y), Y, X) 0 >= n!6220!62200 plus(X, Y) >= n!6220!6220plus(X, Y) s(X) >= n!6220!6220s(X) x(X, Y) >= n!6220!6220x(X, Y) activate(n!6220!62200) >= 0 activate(n!6220!6220plus(X, Y)) >= plus(activate(X), activate(Y)) activate(n!6220!6220s(X)) >= s(activate(X)) activate(n!6220!6220x(X, Y)) >= x(activate(X), activate(Y)) activate(X) >= X The following interpretation satisfies the requirements: 0 = 0 U101 = \y0y1y2.1 + y1 + y2 U102 = \y0y1y2.1 + y1 + y2 U103 = \y0y1y2.1 + y1 + y2 U104 = \y0y1y2.1 + y1 + y2 U11 = \y0y1y2.0 U12 = \y0y1y2.0 U13 = \y0y1y2.0 U14 = \y0y1y2.0 U15 = \y0y1.0 U16 = \y0.0 U21 = \y0y1.0 U22 = \y0y1.0 U23 = \y0.0 U31 = \y0y1y2.0 U32 = \y0y1y2.0 U33 = \y0y1y2.0 U34 = \y0y1y2.0 U35 = \y0y1.0 U36 = \y0.0 U41 = \y0y1.0 U42 = \y0.0 U51 = \y0.0 U61 = \y0y1.0 U61# = \y0y1.y1 U62 = \y0.0 U71 = \y0y1.y1 U72 = \y0y1.y1 U81 = \y0y1y2.y2 U82 = \y0y1y2.y2 U83 = \y0y1y2.y2 U84 = \y0y1y2.y2 U91 = \y0y1.0 U92 = \y0.0 activate = \y0.y0 isNat = \y0.0 isNatKind = \y0.0 isNatKind# = \y0.y0 n!6220!62200 = 0 n!6220!6220plus = \y0y1.y0 n!6220!6220s = \y0.y0 n!6220!6220x = \y0y1.1 + y0 + y1 plus = \y0y1.y0 s = \y0.y0 tt = 0 x = \y0y1.1 + y0 + y1 Using this interpretation, the requirements translate to: [[U61#(tt, _x0)]] = x0 >= x0 = [[isNatKind#(activate(_x0))]] [[isNatKind#(n!6220!6220plus(_x0, _x1))]] = x0 >= x0 = [[isNatKind#(activate(_x0))]] [[isNatKind#(n!6220!6220s(_x0))]] = x0 >= x0 = [[isNatKind#(activate(_x0))]] [[isNatKind#(n!6220!6220x(_x0, _x1))]] = 1 + x0 + x1 > x1 = [[U61#(isNatKind(activate(_x0)), activate(_x1))]] [[isNatKind#(n!6220!6220x(_x0, _x1))]] = 1 + x0 + x1 > x0 = [[isNatKind#(activate(_x0))]] [[U101(tt, _x0, _x1)]] = 1 + x0 + x1 >= 1 + x0 + x1 = [[U102(isNatKind(activate(_x0)), activate(_x0), activate(_x1))]] [[U102(tt, _x0, _x1)]] = 1 + x0 + x1 >= 1 + x0 + x1 = [[U103(isNat(activate(_x1)), activate(_x0), activate(_x1))]] [[U103(tt, _x0, _x1)]] = 1 + x0 + x1 >= 1 + x0 + x1 = [[U104(isNatKind(activate(_x1)), activate(_x0), activate(_x1))]] [[U104(tt, _x0, _x1)]] = 1 + x0 + x1 >= 1 + x0 + x1 = [[plus(x(activate(_x1), activate(_x0)), activate(_x1))]] [[U71(tt, _x0)]] = x0 >= x0 = [[U72(isNatKind(activate(_x0)), activate(_x0))]] [[U72(tt, _x0)]] = x0 >= x0 = [[activate(_x0)]] [[U81(tt, _x0, _x1)]] = x1 >= x1 = [[U82(isNatKind(activate(_x0)), activate(_x0), activate(_x1))]] [[U82(tt, _x0, _x1)]] = x1 >= x1 = [[U83(isNat(activate(_x1)), activate(_x0), activate(_x1))]] [[U83(tt, _x0, _x1)]] = x1 >= x1 = [[U84(isNatKind(activate(_x1)), activate(_x0), activate(_x1))]] [[U84(tt, _x0, _x1)]] = x1 >= x1 = [[s(plus(activate(_x1), activate(_x0)))]] [[U91(tt, _x0)]] = 0 >= 0 = [[U92(isNatKind(activate(_x0)))]] [[U92(tt)]] = 0 >= 0 = [[0]] [[plus(_x0, 0)]] = x0 >= x0 = [[U71(isNat(_x0), _x0)]] [[plus(_x0, s(_x1))]] = x0 >= x0 = [[U81(isNat(_x1), _x1, _x0)]] [[x(_x0, 0)]] = 1 + x0 >= 0 = [[U91(isNat(_x0), _x0)]] [[x(_x0, s(_x1))]] = 1 + x0 + x1 >= 1 + x0 + x1 = [[U101(isNat(_x1), _x1, _x0)]] [[0]] = 0 >= 0 = [[n!6220!62200]] [[plus(_x0, _x1)]] = x0 >= x0 = [[n!6220!6220plus(_x0, _x1)]] [[s(_x0)]] = x0 >= x0 = [[n!6220!6220s(_x0)]] [[x(_x0, _x1)]] = 1 + x0 + x1 >= 1 + x0 + x1 = [[n!6220!6220x(_x0, _x1)]] [[activate(n!6220!62200)]] = 0 >= 0 = [[0]] [[activate(n!6220!6220plus(_x0, _x1))]] = x0 >= x0 = [[plus(activate(_x0), activate(_x1))]] [[activate(n!6220!6220s(_x0))]] = x0 >= x0 = [[s(activate(_x0))]] [[activate(n!6220!6220x(_x0, _x1))]] = 1 + x0 + x1 >= 1 + x0 + x1 = [[x(activate(_x0), activate(_x1))]] [[activate(_x0)]] = x0 >= x0 = [[_x0]] By the observations in [Kop12, Sec. 6.6], this reduction pair suffices; we may thus replace the dependency pair problem (P_23, R_0, minimal, formative) by (P_25, R_0, minimal, formative), where P_25 consists of: U61#(tt, X) =#> isNatKind#(activate(X)) isNatKind#(n!6220!6220plus(X, Y)) =#> isNatKind#(activate(X)) isNatKind#(n!6220!6220s(X)) =#> isNatKind#(activate(X)) Thus, the original system is terminating if (P_25, R_0, minimal, formative) is finite. We consider the dependency pair problem (P_25, R_0, minimal, formative). We place the elements of P in a dependency graph approximation G (see e.g. [Kop12, Thm. 7.27, 7.29], as follows: * 0 : 1, 2 * 1 : 1, 2 * 2 : 1, 2 This graph has the following strongly connected components: P_26: isNatKind#(n!6220!6220plus(X, Y)) =#> isNatKind#(activate(X)) isNatKind#(n!6220!6220s(X)) =#> isNatKind#(activate(X)) By [Kop12, Thm. 7.31], we may replace any dependency pair problem (P_25, R_0, m, f) by (P_26, R_0, m, f). Thus, the original system is terminating if (P_26, R_0, minimal, formative) is finite. We consider the dependency pair problem (P_26, R_0, minimal, formative). We will use the reduction pair processor [Kop12, Thm. 7.16]. It suffices to find a standard reduction pair [Kop12, Def. 6.69]. Thus, we must orient: isNatKind#(n!6220!6220plus(X, Y)) >? isNatKind#(activate(X)) isNatKind#(n!6220!6220s(X)) >? isNatKind#(activate(X)) U101(tt, X, Y) >= U102(isNatKind(activate(X)), activate(X), activate(Y)) U102(tt, X, Y) >= U103(isNat(activate(Y)), activate(X), activate(Y)) U103(tt, X, Y) >= U104(isNatKind(activate(Y)), activate(X), activate(Y)) U104(tt, X, Y) >= plus(x(activate(Y), activate(X)), activate(Y)) U11(tt, X, Y) >= U12(isNatKind(activate(X)), activate(X), activate(Y)) U12(tt, X, Y) >= U13(isNatKind(activate(Y)), activate(X), activate(Y)) U13(tt, X, Y) >= U14(isNatKind(activate(Y)), activate(X), activate(Y)) U14(tt, X, Y) >= U15(isNat(activate(X)), activate(Y)) U15(tt, X) >= U16(isNat(activate(X))) U16(tt) >= tt U21(tt, X) >= U22(isNatKind(activate(X)), activate(X)) U22(tt, X) >= U23(isNat(activate(X))) U23(tt) >= tt U31(tt, X, Y) >= U32(isNatKind(activate(X)), activate(X), activate(Y)) U32(tt, X, Y) >= U33(isNatKind(activate(Y)), activate(X), activate(Y)) U33(tt, X, Y) >= U34(isNatKind(activate(Y)), activate(X), activate(Y)) U34(tt, X, Y) >= U35(isNat(activate(X)), activate(Y)) U35(tt, X) >= U36(isNat(activate(X))) U36(tt) >= tt U41(tt, X) >= U42(isNatKind(activate(X))) U42(tt) >= tt U51(tt) >= tt U61(tt, X) >= U62(isNatKind(activate(X))) U62(tt) >= tt U71(tt, X) >= U72(isNatKind(activate(X)), activate(X)) U72(tt, X) >= activate(X) U81(tt, X, Y) >= U82(isNatKind(activate(X)), activate(X), activate(Y)) U82(tt, X, Y) >= U83(isNat(activate(Y)), activate(X), activate(Y)) U83(tt, X, Y) >= U84(isNatKind(activate(Y)), activate(X), activate(Y)) U84(tt, X, Y) >= s(plus(activate(Y), activate(X))) U91(tt, X) >= U92(isNatKind(activate(X))) U92(tt) >= 0 isNat(n!6220!62200) >= tt isNat(n!6220!6220plus(X, Y)) >= U11(isNatKind(activate(X)), activate(X), activate(Y)) isNat(n!6220!6220s(X)) >= U21(isNatKind(activate(X)), activate(X)) isNat(n!6220!6220x(X, Y)) >= U31(isNatKind(activate(X)), activate(X), activate(Y)) isNatKind(n!6220!62200) >= tt isNatKind(n!6220!6220plus(X, Y)) >= U41(isNatKind(activate(X)), activate(Y)) isNatKind(n!6220!6220s(X)) >= U51(isNatKind(activate(X))) isNatKind(n!6220!6220x(X, Y)) >= U61(isNatKind(activate(X)), activate(Y)) plus(X, 0) >= U71(isNat(X), X) plus(X, s(Y)) >= U81(isNat(Y), Y, X) x(X, 0) >= U91(isNat(X), X) x(X, s(Y)) >= U101(isNat(Y), Y, X) 0 >= n!6220!62200 plus(X, Y) >= n!6220!6220plus(X, Y) s(X) >= n!6220!6220s(X) x(X, Y) >= n!6220!6220x(X, Y) activate(n!6220!62200) >= 0 activate(n!6220!6220plus(X, Y)) >= plus(activate(X), activate(Y)) activate(n!6220!6220s(X)) >= s(activate(X)) activate(n!6220!6220x(X, Y)) >= x(activate(X), activate(Y)) activate(X) >= X Since this representation is not advantageous for the higher-order recursive path ordering, we present the strict requirements in their unextended form, which is not problematic since for any F, s and substituion gamma: (F s)gamma beta-reduces to F(s)gamma.) We use a recursive path ordering as defined in [Kop12, Chapter 5]. Argument functions: [[0]] = _|_ [[U11(x_1, x_2, x_3)]] = U11 [[U12(x_1, x_2, x_3)]] = U12 [[U13(x_1, x_2, x_3)]] = U13 [[U14(x_1, x_2, x_3)]] = U14 [[U15(x_1, x_2)]] = x_1 [[U16(x_1)]] = x_1 [[U21(x_1, x_2)]] = x_1 [[U22(x_1, x_2)]] = x_1 [[U23(x_1)]] = x_1 [[U31(x_1, x_2, x_3)]] = x_1 [[U32(x_1, x_2, x_3)]] = x_1 [[U33(x_1, x_2, x_3)]] = x_1 [[U34(x_1, x_2, x_3)]] = U34 [[U35(x_1, x_2)]] = U35 [[U36(x_1)]] = x_1 [[U41(x_1, x_2)]] = U41 [[U42(x_1)]] = x_1 [[U51(x_1)]] = U51 [[U61(x_1, x_2)]] = U61 [[U62(x_1)]] = U62 [[U72(x_1, x_2)]] = x_2 [[U91(x_1, x_2)]] = x_2 [[U92(x_1)]] = _|_ [[activate(x_1)]] = x_1 [[isNat(x_1)]] = isNat [[isNatKind(x_1)]] = isNatKind [[n!6220!62200]] = _|_ We choose Lex = {} and Mul = {U101, U102, U103, U104, U11, U12, U13, U14, U34, U35, U41, U51, U61, U62, U71, U81, U82, U83, U84, isNat, isNatKind, isNatKind#, n!6220!6220plus, n!6220!6220s, n!6220!6220x, plus, s, tt, x}, and the following precedence: U101 = U102 = U103 = U104 = n!6220!6220x = x > U81 = U82 = U83 = U84 = n!6220!6220plus = plus > U71 > isNatKind# = n!6220!6220s = s > U11 = U12 = U13 = U14 = U34 = U35 = U41 = U51 = U61 = U62 = isNat = isNatKind = tt Taking the argument function into account, and fixing the greater / greater equal choices, the constraints can be denoted as follows: isNatKind#(n!6220!6220plus(X, Y)) >= isNatKind#(X) isNatKind#(n!6220!6220s(X)) > isNatKind#(X) U101(tt, X, Y) >= U102(isNatKind, X, Y) U102(tt, X, Y) >= U103(isNat, X, Y) U103(tt, X, Y) >= U104(isNatKind, X, Y) U104(tt, X, Y) >= plus(x(Y, X), Y) U11 >= U12 U12 >= U13 U13 >= U14 U14 >= isNat tt >= isNat tt >= tt tt >= isNatKind tt >= isNat tt >= tt tt >= isNatKind tt >= isNatKind tt >= U34 U34 >= U35 U35 >= isNat tt >= tt U41 >= isNatKind tt >= tt U51 >= tt U61 >= U62 U62 >= tt U71(tt, X) >= X X >= X U81(tt, X, Y) >= U82(isNatKind, X, Y) U82(tt, X, Y) >= U83(isNat, X, Y) U83(tt, X, Y) >= U84(isNatKind, X, Y) U84(tt, X, Y) >= s(plus(Y, X)) X >= _|_ _|_ >= _|_ isNat >= tt isNat >= U11 isNat >= isNatKind isNat >= isNatKind isNatKind >= tt isNatKind >= U41 isNatKind >= U51 isNatKind >= U61 plus(X, _|_) >= U71(isNat, X) plus(X, s(Y)) >= U81(isNat, Y, X) x(X, _|_) >= X x(X, s(Y)) >= U101(isNat, Y, X) _|_ >= _|_ plus(X, Y) >= n!6220!6220plus(X, Y) s(X) >= n!6220!6220s(X) x(X, Y) >= n!6220!6220x(X, Y) _|_ >= _|_ n!6220!6220plus(X, Y) >= plus(X, Y) n!6220!6220s(X) >= s(X) n!6220!6220x(X, Y) >= x(X, Y) X >= X With these choices, we have: 1] isNatKind#(n!6220!6220plus(X, Y)) >= isNatKind#(X) because [2], by (Star) 2] isNatKind#*(n!6220!6220plus(X, Y)) >= isNatKind#(X) because isNatKind# in Mul and [3], by (Stat) 3] n!6220!6220plus(X, Y) > X because [4], by definition 4] n!6220!6220plus*(X, Y) >= X because [5], by (Select) 5] X >= X by (Meta) 6] isNatKind#(n!6220!6220s(X)) > isNatKind#(X) because [7], by definition 7] isNatKind#*(n!6220!6220s(X)) >= isNatKind#(X) because [8], by (Select) 8] n!6220!6220s(X) >= isNatKind#(X) because n!6220!6220s = isNatKind#, n!6220!6220s in Mul and [9], by (Fun) 9] X >= X by (Meta) 10] U101(tt, X, Y) >= U102(isNatKind, X, Y) because U101 = U102, U101 in Mul, [11], [12] and [13], by (Fun) 11] tt >= isNatKind because tt = isNatKind, by (Fun) 12] X >= X by (Meta) 13] Y >= Y by (Meta) 14] U102(tt, X, Y) >= U103(isNat, X, Y) because U102 = U103, U102 in Mul, [15], [12] and [13], by (Fun) 15] tt >= isNat because tt = isNat, by (Fun) 16] U103(tt, X, Y) >= U104(isNatKind, X, Y) because U103 = U104, U103 in Mul, [17], [12] and [13], by (Fun) 17] tt >= isNatKind because tt = isNatKind, by (Fun) 18] U104(tt, X, Y) >= plus(x(Y, X), Y) because [19], by (Star) 19] U104*(tt, X, Y) >= plus(x(Y, X), Y) because U104 > plus, [20] and [21], by (Copy) 20] U104*(tt, X, Y) >= x(Y, X) because U104 = x, U104 in Mul, [12] and [13], by (Stat) 21] U104*(tt, X, Y) >= Y because [13], by (Select) 22] U11 >= U12 because U11 = U12 and U11 in Mul, by (Fun) 23] U12 >= U13 because U12 = U13 and U12 in Mul, by (Fun) 24] U13 >= U14 because U13 = U14 and U13 in Mul, by (Fun) 25] U14 >= isNat because U14 = isNat and U14 in Mul, by (Fun) 26] tt >= isNat because tt = isNat, by (Fun) 27] tt >= tt by (Fun) 28] tt >= isNatKind because tt = isNatKind, by (Fun) 29] tt >= isNat because tt = isNat, by (Fun) 30] tt >= tt by (Fun) 31] tt >= isNatKind because tt = isNatKind, by (Fun) 32] tt >= isNatKind because tt = isNatKind, by (Fun) 33] tt >= U34 because tt = U34, by (Fun) 34] U34 >= U35 because U34 = U35 and U34 in Mul, by (Fun) 35] U35 >= isNat because U35 = isNat and U35 in Mul, by (Fun) 36] tt >= tt by (Fun) 37] U41 >= isNatKind because U41 = isNatKind and U41 in Mul, by (Fun) 38] tt >= tt by (Fun) 39] U51 >= tt because U51 = tt, by (Fun) 40] U61 >= U62 because U61 = U62 and U61 in Mul, by (Fun) 41] U62 >= tt because U62 = tt, by (Fun) 42] U71(tt, X) >= X because [43], by (Star) 43] U71*(tt, X) >= X because [13], by (Select) 44] X >= X by (Meta) 45] U81(tt, X, Y) >= U82(isNatKind, X, Y) because U81 = U82, U81 in Mul, [11], [12] and [13], by (Fun) 46] U82(tt, X, Y) >= U83(isNat, X, Y) because U82 = U83, U82 in Mul, [15], [12] and [13], by (Fun) 47] U83(tt, X, Y) >= U84(isNatKind, X, Y) because U83 = U84, U83 in Mul, [17], [12] and [13], by (Fun) 48] U84(tt, X, Y) >= s(plus(Y, X)) because [49], by (Star) 49] U84*(tt, X, Y) >= s(plus(Y, X)) because U84 > s and [50], by (Copy) 50] U84*(tt, X, Y) >= plus(Y, X) because U84 = plus, U84 in Mul, [12] and [13], by (Stat) 51] X >= _|_ by (Bot) 52] _|_ >= _|_ by (Bot) 53] isNat >= tt because isNat = tt, by (Fun) 54] isNat >= U11 because isNat = U11 and isNat in Mul, by (Fun) 55] isNat >= isNatKind because isNat = isNatKind and isNat in Mul, by (Fun) 56] isNat >= isNatKind because isNat = isNatKind and isNat in Mul, by (Fun) 57] isNatKind >= tt because isNatKind = tt, by (Fun) 58] isNatKind >= U41 because isNatKind = U41 and isNatKind in Mul, by (Fun) 59] isNatKind >= U51 because isNatKind = U51 and isNatKind in Mul, by (Fun) 60] isNatKind >= U61 because isNatKind = U61 and isNatKind in Mul, by (Fun) 61] plus(X, _|_) >= U71(isNat, X) because [62], by (Star) 62] plus*(X, _|_) >= U71(isNat, X) because plus > U71, [63] and [64], by (Copy) 63] plus*(X, _|_) >= isNat because plus > isNat, by (Copy) 64] plus*(X, _|_) >= X because [44], by (Select) 65] plus(X, s(Y)) >= U81(isNat, Y, X) because [66], by (Star) 66] plus*(X, s(Y)) >= U81(isNat, Y, X) because plus = U81, plus in Mul, [13], [67] and [69], by (Stat) 67] s(Y) > isNat because [68], by definition 68] s*(Y) >= isNat because s > isNat, by (Copy) 69] s(Y) > Y because [70], by definition 70] s*(Y) >= Y because [12], by (Select) 71] x(X, _|_) >= X because [72], by (Star) 72] x*(X, _|_) >= X because [44], by (Select) 73] x(X, s(Y)) >= U101(isNat, Y, X) because [74], by (Star) 74] x*(X, s(Y)) >= U101(isNat, Y, X) because x = U101, x in Mul, [13], [67] and [69], by (Stat) 75] _|_ >= _|_ by (Bot) 76] plus(X, Y) >= n!6220!6220plus(X, Y) because plus = n!6220!6220plus, plus in Mul, [77] and [78], by (Fun) 77] X >= X by (Meta) 78] Y >= Y by (Meta) 79] s(X) >= n!6220!6220s(X) because s = n!6220!6220s, s in Mul and [80], by (Fun) 80] X >= X by (Meta) 81] x(X, Y) >= n!6220!6220x(X, Y) because x = n!6220!6220x, x in Mul, [77] and [78], by (Fun) 82] _|_ >= _|_ by (Bot) 83] n!6220!6220plus(X, Y) >= plus(X, Y) because n!6220!6220plus = plus, n!6220!6220plus in Mul, [84] and [85], by (Fun) 84] X >= X by (Meta) 85] Y >= Y by (Meta) 86] n!6220!6220s(X) >= s(X) because n!6220!6220s = s, n!6220!6220s in Mul and [87], by (Fun) 87] X >= X by (Meta) 88] n!6220!6220x(X, Y) >= x(X, Y) because n!6220!6220x = x, n!6220!6220x in Mul, [84] and [85], by (Fun) 89] X >= X by (Meta) By the observations in [Kop12, Sec. 6.6], this reduction pair suffices; we may thus replace the dependency pair problem (P_26, R_0, minimal, formative) by (P_27, R_0, minimal, formative), where P_27 consists of: isNatKind#(n!6220!6220plus(X, Y)) =#> isNatKind#(activate(X)) Thus, the original system is terminating if (P_27, R_0, minimal, formative) is finite. We consider the dependency pair problem (P_27, R_0, minimal, formative). We will use the reduction pair processor [Kop12, Thm. 7.16]. It suffices to find a standard reduction pair [Kop12, Def. 6.69]. Thus, we must orient: isNatKind#(n!6220!6220plus(X, Y)) >? isNatKind#(activate(X)) U101(tt, X, Y) >= U102(isNatKind(activate(X)), activate(X), activate(Y)) U102(tt, X, Y) >= U103(isNat(activate(Y)), activate(X), activate(Y)) U103(tt, X, Y) >= U104(isNatKind(activate(Y)), activate(X), activate(Y)) U104(tt, X, Y) >= plus(x(activate(Y), activate(X)), activate(Y)) U11(tt, X, Y) >= U12(isNatKind(activate(X)), activate(X), activate(Y)) U12(tt, X, Y) >= U13(isNatKind(activate(Y)), activate(X), activate(Y)) U13(tt, X, Y) >= U14(isNatKind(activate(Y)), activate(X), activate(Y)) U14(tt, X, Y) >= U15(isNat(activate(X)), activate(Y)) U15(tt, X) >= U16(isNat(activate(X))) U16(tt) >= tt U21(tt, X) >= U22(isNatKind(activate(X)), activate(X)) U22(tt, X) >= U23(isNat(activate(X))) U23(tt) >= tt U31(tt, X, Y) >= U32(isNatKind(activate(X)), activate(X), activate(Y)) U32(tt, X, Y) >= U33(isNatKind(activate(Y)), activate(X), activate(Y)) U33(tt, X, Y) >= U34(isNatKind(activate(Y)), activate(X), activate(Y)) U34(tt, X, Y) >= U35(isNat(activate(X)), activate(Y)) U35(tt, X) >= U36(isNat(activate(X))) U36(tt) >= tt U41(tt, X) >= U42(isNatKind(activate(X))) U42(tt) >= tt U51(tt) >= tt U61(tt, X) >= U62(isNatKind(activate(X))) U62(tt) >= tt U71(tt, X) >= U72(isNatKind(activate(X)), activate(X)) U72(tt, X) >= activate(X) U81(tt, X, Y) >= U82(isNatKind(activate(X)), activate(X), activate(Y)) U82(tt, X, Y) >= U83(isNat(activate(Y)), activate(X), activate(Y)) U83(tt, X, Y) >= U84(isNatKind(activate(Y)), activate(X), activate(Y)) U84(tt, X, Y) >= s(plus(activate(Y), activate(X))) U91(tt, X) >= U92(isNatKind(activate(X))) U92(tt) >= 0 isNat(n!6220!62200) >= tt isNat(n!6220!6220plus(X, Y)) >= U11(isNatKind(activate(X)), activate(X), activate(Y)) isNat(n!6220!6220s(X)) >= U21(isNatKind(activate(X)), activate(X)) isNat(n!6220!6220x(X, Y)) >= U31(isNatKind(activate(X)), activate(X), activate(Y)) isNatKind(n!6220!62200) >= tt isNatKind(n!6220!6220plus(X, Y)) >= U41(isNatKind(activate(X)), activate(Y)) isNatKind(n!6220!6220s(X)) >= U51(isNatKind(activate(X))) isNatKind(n!6220!6220x(X, Y)) >= U61(isNatKind(activate(X)), activate(Y)) plus(X, 0) >= U71(isNat(X), X) plus(X, s(Y)) >= U81(isNat(Y), Y, X) x(X, 0) >= U91(isNat(X), X) x(X, s(Y)) >= U101(isNat(Y), Y, X) 0 >= n!6220!62200 plus(X, Y) >= n!6220!6220plus(X, Y) s(X) >= n!6220!6220s(X) x(X, Y) >= n!6220!6220x(X, Y) activate(n!6220!62200) >= 0 activate(n!6220!6220plus(X, Y)) >= plus(activate(X), activate(Y)) activate(n!6220!6220s(X)) >= s(activate(X)) activate(n!6220!6220x(X, Y)) >= x(activate(X), activate(Y)) activate(X) >= X Since this representation is not advantageous for the higher-order recursive path ordering, we present the strict requirements in their unextended form, which is not problematic since for any F, s and substituion gamma: (F s)gamma beta-reduces to F(s)gamma.) We use a recursive path ordering as defined in [Kop12, Chapter 5]. Argument functions: [[0]] = _|_ [[U11(x_1, x_2, x_3)]] = x_1 [[U12(x_1, x_2, x_3)]] = U12 [[U13(x_1, x_2, x_3)]] = U13 [[U14(x_1, x_2, x_3)]] = U14 [[U15(x_1, x_2)]] = x_1 [[U16(x_1)]] = U16 [[U21(x_1, x_2)]] = x_1 [[U22(x_1, x_2)]] = x_1 [[U23(x_1)]] = x_1 [[U31(x_1, x_2, x_3)]] = U31 [[U32(x_1, x_2, x_3)]] = U32 [[U33(x_1, x_2, x_3)]] = x_1 [[U34(x_1, x_2, x_3)]] = x_1 [[U35(x_1, x_2)]] = U35 [[U36(x_1)]] = U36 [[U41(x_1, x_2)]] = U41 [[U42(x_1)]] = x_1 [[U51(x_1)]] = x_1 [[U61(x_1, x_2)]] = x_1 [[U62(x_1)]] = x_1 [[U71(x_1, x_2)]] = U71(x_2) [[U91(x_1, x_2)]] = _|_ [[U92(x_1)]] = _|_ [[activate(x_1)]] = x_1 [[isNat(x_1)]] = isNat [[isNatKind(x_1)]] = isNatKind [[n!6220!62200]] = _|_ We choose Lex = {} and Mul = {U101, U102, U103, U104, U12, U13, U14, U16, U31, U32, U35, U36, U41, U71, U72, U81, U82, U83, U84, isNat, isNatKind, isNatKind#, n!6220!6220plus, n!6220!6220s, n!6220!6220x, plus, s, tt, x}, and the following precedence: U101 = U102 = U103 = U104 = n!6220!6220x = x > U81 = U82 = U83 = U84 = isNatKind# = n!6220!6220plus = plus > U71 > U72 > n!6220!6220s = s > U12 = U13 = U14 = U16 = U31 = U32 = U35 = U36 = U41 = isNat = isNatKind = tt Taking the argument function into account, and fixing the greater / greater equal choices, the constraints can be denoted as follows: isNatKind#(n!6220!6220plus(X, Y)) > isNatKind#(X) U101(tt, X, Y) >= U102(isNatKind, X, Y) U102(tt, X, Y) >= U103(isNat, X, Y) U103(tt, X, Y) >= U104(isNatKind, X, Y) U104(tt, X, Y) >= plus(x(Y, X), Y) tt >= U12 U12 >= U13 U13 >= U14 U14 >= isNat tt >= U16 U16 >= tt tt >= isNatKind tt >= isNat tt >= tt U31 >= U32 U32 >= isNatKind tt >= isNatKind tt >= U35 U35 >= U36 U36 >= tt U41 >= isNatKind tt >= tt tt >= tt tt >= isNatKind tt >= tt U71(X) >= U72(isNatKind, X) U72(tt, X) >= X U81(tt, X, Y) >= U82(isNatKind, X, Y) U82(tt, X, Y) >= U83(isNat, X, Y) U83(tt, X, Y) >= U84(isNatKind, X, Y) U84(tt, X, Y) >= s(plus(Y, X)) _|_ >= _|_ _|_ >= _|_ isNat >= tt isNat >= isNatKind isNat >= isNatKind isNat >= U31 isNatKind >= tt isNatKind >= U41 isNatKind >= isNatKind isNatKind >= isNatKind plus(X, _|_) >= U71(X) plus(X, s(Y)) >= U81(isNat, Y, X) x(X, _|_) >= _|_ x(X, s(Y)) >= U101(isNat, Y, X) _|_ >= _|_ plus(X, Y) >= n!6220!6220plus(X, Y) s(X) >= n!6220!6220s(X) x(X, Y) >= n!6220!6220x(X, Y) _|_ >= _|_ n!6220!6220plus(X, Y) >= plus(X, Y) n!6220!6220s(X) >= s(X) n!6220!6220x(X, Y) >= x(X, Y) X >= X With these choices, we have: 1] isNatKind#(n!6220!6220plus(X, Y)) > isNatKind#(X) because [2], by definition 2] isNatKind#*(n!6220!6220plus(X, Y)) >= isNatKind#(X) because [3], by (Select) 3] n!6220!6220plus(X, Y) >= isNatKind#(X) because [4], by (Star) 4] n!6220!6220plus*(X, Y) >= isNatKind#(X) because n!6220!6220plus = isNatKind#, n!6220!6220plus in Mul and [5], by (Stat) 5] X >= X by (Meta) 6] U101(tt, X, Y) >= U102(isNatKind, X, Y) because U101 = U102, U101 in Mul, [7], [8] and [9], by (Fun) 7] tt >= isNatKind because tt = isNatKind, by (Fun) 8] X >= X by (Meta) 9] Y >= Y by (Meta) 10] U102(tt, X, Y) >= U103(isNat, X, Y) because U102 = U103, U102 in Mul, [11], [8] and [9], by (Fun) 11] tt >= isNat because tt = isNat, by (Fun) 12] U103(tt, X, Y) >= U104(isNatKind, X, Y) because U103 = U104, U103 in Mul, [13], [8] and [9], by (Fun) 13] tt >= isNatKind because tt = isNatKind, by (Fun) 14] U104(tt, X, Y) >= plus(x(Y, X), Y) because [15], by (Star) 15] U104*(tt, X, Y) >= plus(x(Y, X), Y) because U104 > plus, [16] and [17], by (Copy) 16] U104*(tt, X, Y) >= x(Y, X) because U104 = x, U104 in Mul, [8] and [9], by (Stat) 17] U104*(tt, X, Y) >= Y because [9], by (Select) 18] tt >= U12 because tt = U12, by (Fun) 19] U12 >= U13 because U12 = U13 and U12 in Mul, by (Fun) 20] U13 >= U14 because U13 = U14 and U13 in Mul, by (Fun) 21] U14 >= isNat because U14 = isNat and U14 in Mul, by (Fun) 22] tt >= U16 because tt = U16, by (Fun) 23] U16 >= tt because U16 = tt, by (Fun) 24] tt >= isNatKind because tt = isNatKind, by (Fun) 25] tt >= isNat because tt = isNat, by (Fun) 26] tt >= tt by (Fun) 27] U31 >= U32 because U31 = U32 and U31 in Mul, by (Fun) 28] U32 >= isNatKind because U32 = isNatKind and U32 in Mul, by (Fun) 29] tt >= isNatKind because tt = isNatKind, by (Fun) 30] tt >= U35 because tt = U35, by (Fun) 31] U35 >= U36 because U35 = U36 and U35 in Mul, by (Fun) 32] U36 >= tt because U36 = tt, by (Fun) 33] U41 >= isNatKind because U41 = isNatKind and U41 in Mul, by (Fun) 34] tt >= tt by (Fun) 35] tt >= tt by (Fun) 36] tt >= isNatKind because tt = isNatKind, by (Fun) 37] tt >= tt by (Fun) 38] U71(X) >= U72(isNatKind, X) because [39], by (Star) 39] U71*(X) >= U72(isNatKind, X) because U71 > U72, [40] and [41], by (Copy) 40] U71*(X) >= isNatKind because U71 > isNatKind, by (Copy) 41] U71*(X) >= X because [9], by (Select) 42] U72(tt, X) >= X because [43], by (Star) 43] U72*(tt, X) >= X because [9], by (Select) 44] U81(tt, X, Y) >= U82(isNatKind, X, Y) because U81 = U82, U81 in Mul, [7], [8] and [9], by (Fun) 45] U82(tt, X, Y) >= U83(isNat, X, Y) because U82 = U83, U82 in Mul, [11], [8] and [9], by (Fun) 46] U83(tt, X, Y) >= U84(isNatKind, X, Y) because U83 = U84, U83 in Mul, [13], [8] and [9], by (Fun) 47] U84(tt, X, Y) >= s(plus(Y, X)) because [48], by (Star) 48] U84*(tt, X, Y) >= s(plus(Y, X)) because U84 > s and [49], by (Copy) 49] U84*(tt, X, Y) >= plus(Y, X) because U84 = plus, U84 in Mul, [8] and [9], by (Stat) 50] _|_ >= _|_ by (Bot) 51] _|_ >= _|_ by (Bot) 52] isNat >= tt because isNat = tt, by (Fun) 53] isNat >= isNatKind because isNat = isNatKind and isNat in Mul, by (Fun) 54] isNat >= isNatKind because isNat = isNatKind and isNat in Mul, by (Fun) 55] isNat >= U31 because isNat = U31 and isNat in Mul, by (Fun) 56] isNatKind >= tt because isNatKind = tt, by (Fun) 57] isNatKind >= U41 because isNatKind = U41 and isNatKind in Mul, by (Fun) 58] isNatKind >= isNatKind because isNatKind in Mul, by (Fun) 59] isNatKind >= isNatKind because isNatKind in Mul, by (Fun) 60] plus(X, _|_) >= U71(X) because [61], by (Star) 61] plus*(X, _|_) >= U71(X) because plus > U71 and [62], by (Copy) 62] plus*(X, _|_) >= X because [9], by (Select) 63] plus(X, s(Y)) >= U81(isNat, Y, X) because [64], by (Star) 64] plus*(X, s(Y)) >= U81(isNat, Y, X) because plus = U81, plus in Mul, [9], [65] and [67], by (Stat) 65] s(Y) > isNat because [66], by definition 66] s*(Y) >= isNat because s > isNat, by (Copy) 67] s(Y) > Y because [68], by definition 68] s*(Y) >= Y because [8], by (Select) 69] x(X, _|_) >= _|_ by (Bot) 70] x(X, s(Y)) >= U101(isNat, Y, X) because [71], by (Star) 71] x*(X, s(Y)) >= U101(isNat, Y, X) because x = U101, x in Mul, [9], [65] and [67], by (Stat) 72] _|_ >= _|_ by (Bot) 73] plus(X, Y) >= n!6220!6220plus(X, Y) because plus = n!6220!6220plus, plus in Mul, [74] and [75], by (Fun) 74] X >= X by (Meta) 75] Y >= Y by (Meta) 76] s(X) >= n!6220!6220s(X) because s = n!6220!6220s, s in Mul and [77], by (Fun) 77] X >= X by (Meta) 78] x(X, Y) >= n!6220!6220x(X, Y) because x = n!6220!6220x, x in Mul, [74] and [75], by (Fun) 79] _|_ >= _|_ by (Bot) 80] n!6220!6220plus(X, Y) >= plus(X, Y) because n!6220!6220plus = plus, n!6220!6220plus in Mul, [81] and [82], by (Fun) 81] X >= X by (Meta) 82] Y >= Y by (Meta) 83] n!6220!6220s(X) >= s(X) because n!6220!6220s = s, n!6220!6220s in Mul and [84], by (Fun) 84] X >= X by (Meta) 85] n!6220!6220x(X, Y) >= x(X, Y) because n!6220!6220x = x, n!6220!6220x in Mul, [81] and [82], by (Fun) 86] X >= X by (Meta) By the observations in [Kop12, Sec. 6.6], this reduction pair suffices; we may thus replace a dependency pair problem (P_27, R_0) by ({}, R_0). By the empty set processor [Kop12, Thm. 7.15] this problem may be immediately removed. As all dependency pair problems were succesfully simplified with sound (and complete) processors until nothing remained, we conclude termination. +++ Citations +++ [Kop12] C. Kop. Higher Order Termination. PhD Thesis, 2012. [KusIsoSakBla09] K. Kusakari, Y. Isogai, M. Sakai, and F. Blanqui. Static Dependency Pair Method Based On Strong Computability for Higher-Order Rewrite Systems. In volume 92(10) of IEICE Transactions on Information and Systems. 2007--2015, 2009.