/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 U105 : [o * o] --> o U106 : [o] --> o U11 : [o * o] --> o U111 : [o * o * o] --> o U112 : [o * o * o] --> o U113 : [o * o * o] --> o U114 : [o * o] --> o U12 : [o * o] --> o U121 : [o * o] --> o U122 : [o] --> o U13 : [o] --> o U131 : [o * o * o * o] --> o U132 : [o * o * o * o] --> o U133 : [o * o * o * o] --> o U134 : [o * o * o * o] --> o U135 : [o * o * o * o] --> o U136 : [o * o * o * o] --> o U21 : [o * o] --> o U22 : [o * o] --> o U23 : [o] --> o U31 : [o * o] --> o U32 : [o * o] --> o U33 : [o] --> o U41 : [o * o * o] --> o U42 : [o * o * o] --> o U43 : [o * o * o] --> o U44 : [o * o * o] --> o U45 : [o * o] --> o U46 : [o] --> o U51 : [o * o] --> o U52 : [o] --> o U61 : [o * o] --> o U62 : [o] --> o U71 : [o] --> o U81 : [o] --> o U91 : [o * o * o] --> o U92 : [o * o * o] --> o U93 : [o * o * o] --> o U94 : [o * o * o] --> o U95 : [o * o] --> o U96 : [o] --> o a!6220!6220U101 : [o * o * o] --> o a!6220!6220U102 : [o * o * o] --> o a!6220!6220U103 : [o * o * o] --> o a!6220!6220U104 : [o * o * o] --> o a!6220!6220U105 : [o * o] --> o a!6220!6220U106 : [o] --> o a!6220!6220U11 : [o * o] --> o a!6220!6220U111 : [o * o * o] --> o a!6220!6220U112 : [o * o * o] --> o a!6220!6220U113 : [o * o * o] --> o a!6220!6220U114 : [o * o] --> o a!6220!6220U12 : [o * o] --> o a!6220!6220U121 : [o * o] --> o a!6220!6220U122 : [o] --> o a!6220!6220U13 : [o] --> o a!6220!6220U131 : [o * o * o * o] --> o a!6220!6220U132 : [o * o * o * o] --> o a!6220!6220U133 : [o * o * o * o] --> o a!6220!6220U134 : [o * o * o * o] --> o a!6220!6220U135 : [o * o * o * o] --> o a!6220!6220U136 : [o * o * o * o] --> o a!6220!6220U21 : [o * o] --> o a!6220!6220U22 : [o * o] --> o a!6220!6220U23 : [o] --> o a!6220!6220U31 : [o * o] --> o a!6220!6220U32 : [o * o] --> o a!6220!6220U33 : [o] --> o a!6220!6220U41 : [o * o * o] --> o a!6220!6220U42 : [o * o * o] --> o a!6220!6220U43 : [o * o * o] --> o a!6220!6220U44 : [o * o * o] --> o a!6220!6220U45 : [o * o] --> o a!6220!6220U46 : [o] --> o a!6220!6220U51 : [o * o] --> o a!6220!6220U52 : [o] --> o a!6220!6220U61 : [o * o] --> o a!6220!6220U62 : [o] --> o a!6220!6220U71 : [o] --> o a!6220!6220U81 : [o] --> o a!6220!6220U91 : [o * o * o] --> o a!6220!6220U92 : [o * o * o] --> o a!6220!6220U93 : [o * o * o] --> o a!6220!6220U94 : [o * o * o] --> o a!6220!6220U95 : [o * o] --> o a!6220!6220U96 : [o] --> o a!6220!6220isNat : [o] --> o a!6220!6220isNatIList : [o] --> o a!6220!6220isNatIListKind : [o] --> o a!6220!6220isNatKind : [o] --> o a!6220!6220isNatList : [o] --> o a!6220!6220length : [o] --> o a!6220!6220take : [o * o] --> o a!6220!6220zeros : [] --> o cons : [o * o] --> o isNat : [o] --> o isNatIList : [o] --> o isNatIListKind : [o] --> o isNatKind : [o] --> o isNatList : [o] --> o length : [o] --> o mark : [o] --> o nil : [] --> o s : [o] --> o take : [o * o] --> o tt : [] --> o zeros : [] --> o a!6220!6220zeros => cons(0, zeros) a!6220!6220U101(tt, X, Y) => a!6220!6220U102(a!6220!6220isNatKind(X), X, Y) a!6220!6220U102(tt, X, Y) => a!6220!6220U103(a!6220!6220isNatIListKind(Y), X, Y) a!6220!6220U103(tt, X, Y) => a!6220!6220U104(a!6220!6220isNatIListKind(Y), X, Y) a!6220!6220U104(tt, X, Y) => a!6220!6220U105(a!6220!6220isNat(X), Y) a!6220!6220U105(tt, X) => a!6220!6220U106(a!6220!6220isNatIList(X)) a!6220!6220U106(tt) => tt a!6220!6220U11(tt, X) => a!6220!6220U12(a!6220!6220isNatIListKind(X), X) a!6220!6220U111(tt, X, Y) => a!6220!6220U112(a!6220!6220isNatIListKind(X), X, Y) a!6220!6220U112(tt, X, Y) => a!6220!6220U113(a!6220!6220isNat(Y), X, Y) a!6220!6220U113(tt, X, Y) => a!6220!6220U114(a!6220!6220isNatKind(Y), X) a!6220!6220U114(tt, X) => s(a!6220!6220length(mark(X))) a!6220!6220U12(tt, X) => a!6220!6220U13(a!6220!6220isNatList(X)) a!6220!6220U121(tt, X) => a!6220!6220U122(a!6220!6220isNatIListKind(X)) a!6220!6220U122(tt) => nil a!6220!6220U13(tt) => tt a!6220!6220U131(tt, X, Y, Z) => a!6220!6220U132(a!6220!6220isNatIListKind(X), X, Y, Z) a!6220!6220U132(tt, X, Y, Z) => a!6220!6220U133(a!6220!6220isNat(Y), X, Y, Z) a!6220!6220U133(tt, X, Y, Z) => a!6220!6220U134(a!6220!6220isNatKind(Y), X, Y, Z) a!6220!6220U134(tt, X, Y, Z) => a!6220!6220U135(a!6220!6220isNat(Z), X, Y, Z) a!6220!6220U135(tt, X, Y, Z) => a!6220!6220U136(a!6220!6220isNatKind(Z), X, Y, Z) a!6220!6220U136(tt, X, Y, Z) => cons(mark(Z), take(Y, X)) a!6220!6220U21(tt, X) => a!6220!6220U22(a!6220!6220isNatKind(X), X) a!6220!6220U22(tt, X) => a!6220!6220U23(a!6220!6220isNat(X)) a!6220!6220U23(tt) => tt a!6220!6220U31(tt, X) => a!6220!6220U32(a!6220!6220isNatIListKind(X), X) a!6220!6220U32(tt, X) => a!6220!6220U33(a!6220!6220isNatList(X)) a!6220!6220U33(tt) => tt a!6220!6220U41(tt, X, Y) => a!6220!6220U42(a!6220!6220isNatKind(X), X, Y) a!6220!6220U42(tt, X, Y) => a!6220!6220U43(a!6220!6220isNatIListKind(Y), X, Y) a!6220!6220U43(tt, X, Y) => a!6220!6220U44(a!6220!6220isNatIListKind(Y), X, Y) a!6220!6220U44(tt, X, Y) => a!6220!6220U45(a!6220!6220isNat(X), Y) a!6220!6220U45(tt, X) => a!6220!6220U46(a!6220!6220isNatIList(X)) a!6220!6220U46(tt) => tt a!6220!6220U51(tt, X) => a!6220!6220U52(a!6220!6220isNatIListKind(X)) a!6220!6220U52(tt) => tt a!6220!6220U61(tt, X) => a!6220!6220U62(a!6220!6220isNatIListKind(X)) a!6220!6220U62(tt) => tt a!6220!6220U71(tt) => tt a!6220!6220U81(tt) => tt a!6220!6220U91(tt, X, Y) => a!6220!6220U92(a!6220!6220isNatKind(X), X, Y) a!6220!6220U92(tt, X, Y) => a!6220!6220U93(a!6220!6220isNatIListKind(Y), X, Y) a!6220!6220U93(tt, X, Y) => a!6220!6220U94(a!6220!6220isNatIListKind(Y), X, Y) a!6220!6220U94(tt, X, Y) => a!6220!6220U95(a!6220!6220isNat(X), Y) a!6220!6220U95(tt, X) => a!6220!6220U96(a!6220!6220isNatList(X)) a!6220!6220U96(tt) => tt a!6220!6220isNat(0) => tt a!6220!6220isNat(length(X)) => a!6220!6220U11(a!6220!6220isNatIListKind(X), X) a!6220!6220isNat(s(X)) => a!6220!6220U21(a!6220!6220isNatKind(X), X) a!6220!6220isNatIList(X) => a!6220!6220U31(a!6220!6220isNatIListKind(X), X) a!6220!6220isNatIList(zeros) => tt a!6220!6220isNatIList(cons(X, Y)) => a!6220!6220U41(a!6220!6220isNatKind(X), X, Y) a!6220!6220isNatIListKind(nil) => tt a!6220!6220isNatIListKind(zeros) => tt a!6220!6220isNatIListKind(cons(X, Y)) => a!6220!6220U51(a!6220!6220isNatKind(X), Y) a!6220!6220isNatIListKind(take(X, Y)) => a!6220!6220U61(a!6220!6220isNatKind(X), Y) a!6220!6220isNatKind(0) => tt a!6220!6220isNatKind(length(X)) => a!6220!6220U71(a!6220!6220isNatIListKind(X)) a!6220!6220isNatKind(s(X)) => a!6220!6220U81(a!6220!6220isNatKind(X)) a!6220!6220isNatList(nil) => tt a!6220!6220isNatList(cons(X, Y)) => a!6220!6220U91(a!6220!6220isNatKind(X), X, Y) a!6220!6220isNatList(take(X, Y)) => a!6220!6220U101(a!6220!6220isNatKind(X), X, Y) a!6220!6220length(nil) => 0 a!6220!6220length(cons(X, Y)) => a!6220!6220U111(a!6220!6220isNatList(Y), Y, X) a!6220!6220take(0, X) => a!6220!6220U121(a!6220!6220isNatIList(X), X) a!6220!6220take(s(X), cons(Y, Z)) => a!6220!6220U131(a!6220!6220isNatIList(Z), Z, X, Y) mark(zeros) => a!6220!6220zeros mark(U101(X, Y, Z)) => a!6220!6220U101(mark(X), Y, Z) mark(U102(X, Y, Z)) => a!6220!6220U102(mark(X), Y, Z) mark(isNatKind(X)) => a!6220!6220isNatKind(X) mark(U103(X, Y, Z)) => a!6220!6220U103(mark(X), Y, Z) mark(isNatIListKind(X)) => a!6220!6220isNatIListKind(X) mark(U104(X, Y, Z)) => a!6220!6220U104(mark(X), Y, Z) mark(U105(X, Y)) => a!6220!6220U105(mark(X), Y) mark(isNat(X)) => a!6220!6220isNat(X) mark(U106(X)) => a!6220!6220U106(mark(X)) mark(isNatIList(X)) => a!6220!6220isNatIList(X) mark(U11(X, Y)) => a!6220!6220U11(mark(X), Y) mark(U12(X, Y)) => a!6220!6220U12(mark(X), Y) mark(U111(X, Y, Z)) => a!6220!6220U111(mark(X), Y, Z) mark(U112(X, Y, Z)) => a!6220!6220U112(mark(X), Y, Z) mark(U113(X, Y, Z)) => a!6220!6220U113(mark(X), Y, Z) mark(U114(X, Y)) => a!6220!6220U114(mark(X), Y) mark(length(X)) => a!6220!6220length(mark(X)) mark(U13(X)) => a!6220!6220U13(mark(X)) mark(isNatList(X)) => a!6220!6220isNatList(X) mark(U121(X, Y)) => a!6220!6220U121(mark(X), Y) mark(U122(X)) => a!6220!6220U122(mark(X)) mark(U131(X, Y, Z, U)) => a!6220!6220U131(mark(X), Y, Z, U) mark(U132(X, Y, Z, U)) => a!6220!6220U132(mark(X), Y, Z, U) mark(U133(X, Y, Z, U)) => a!6220!6220U133(mark(X), Y, Z, U) mark(U134(X, Y, Z, U)) => a!6220!6220U134(mark(X), Y, Z, U) mark(U135(X, Y, Z, U)) => a!6220!6220U135(mark(X), Y, Z, U) mark(U136(X, Y, Z, U)) => a!6220!6220U136(mark(X), Y, Z, U) mark(take(X, Y)) => a!6220!6220take(mark(X), mark(Y)) mark(U21(X, Y)) => a!6220!6220U21(mark(X), Y) mark(U22(X, Y)) => a!6220!6220U22(mark(X), Y) mark(U23(X)) => a!6220!6220U23(mark(X)) mark(U31(X, Y)) => a!6220!6220U31(mark(X), Y) mark(U32(X, Y)) => a!6220!6220U32(mark(X), Y) mark(U33(X)) => a!6220!6220U33(mark(X)) mark(U41(X, Y, Z)) => a!6220!6220U41(mark(X), Y, Z) mark(U42(X, Y, Z)) => a!6220!6220U42(mark(X), Y, Z) mark(U43(X, Y, Z)) => a!6220!6220U43(mark(X), Y, Z) mark(U44(X, Y, Z)) => a!6220!6220U44(mark(X), Y, Z) mark(U45(X, Y)) => a!6220!6220U45(mark(X), Y) mark(U46(X)) => a!6220!6220U46(mark(X)) mark(U51(X, Y)) => a!6220!6220U51(mark(X), Y) mark(U52(X)) => a!6220!6220U52(mark(X)) mark(U61(X, Y)) => a!6220!6220U61(mark(X), Y) mark(U62(X)) => a!6220!6220U62(mark(X)) mark(U71(X)) => a!6220!6220U71(mark(X)) mark(U81(X)) => a!6220!6220U81(mark(X)) mark(U91(X, Y, Z)) => a!6220!6220U91(mark(X), Y, Z) mark(U92(X, Y, Z)) => a!6220!6220U92(mark(X), Y, Z) mark(U93(X, Y, Z)) => a!6220!6220U93(mark(X), Y, Z) mark(U94(X, Y, Z)) => a!6220!6220U94(mark(X), Y, Z) mark(U95(X, Y)) => a!6220!6220U95(mark(X), Y) mark(U96(X)) => a!6220!6220U96(mark(X)) mark(cons(X, Y)) => cons(mark(X), Y) mark(0) => 0 mark(tt) => tt mark(s(X)) => s(mark(X)) mark(nil) => nil a!6220!6220zeros => zeros a!6220!6220U101(X, Y, Z) => U101(X, Y, Z) a!6220!6220U102(X, Y, Z) => U102(X, Y, Z) a!6220!6220isNatKind(X) => isNatKind(X) a!6220!6220U103(X, Y, Z) => U103(X, Y, Z) a!6220!6220isNatIListKind(X) => isNatIListKind(X) a!6220!6220U104(X, Y, Z) => U104(X, Y, Z) a!6220!6220U105(X, Y) => U105(X, Y) a!6220!6220isNat(X) => isNat(X) a!6220!6220U106(X) => U106(X) a!6220!6220isNatIList(X) => isNatIList(X) a!6220!6220U11(X, Y) => U11(X, Y) a!6220!6220U12(X, Y) => U12(X, Y) a!6220!6220U111(X, Y, Z) => U111(X, Y, Z) a!6220!6220U112(X, Y, Z) => U112(X, Y, Z) a!6220!6220U113(X, Y, Z) => U113(X, Y, Z) a!6220!6220U114(X, Y) => U114(X, Y) a!6220!6220length(X) => length(X) a!6220!6220U13(X) => U13(X) a!6220!6220isNatList(X) => isNatList(X) a!6220!6220U121(X, Y) => U121(X, Y) a!6220!6220U122(X) => U122(X) a!6220!6220U131(X, Y, Z, U) => U131(X, Y, Z, U) a!6220!6220U132(X, Y, Z, U) => U132(X, Y, Z, U) a!6220!6220U133(X, Y, Z, U) => U133(X, Y, Z, U) a!6220!6220U134(X, Y, Z, U) => U134(X, Y, Z, U) a!6220!6220U135(X, Y, Z, U) => U135(X, Y, Z, U) a!6220!6220U136(X, Y, Z, U) => U136(X, Y, Z, U) a!6220!6220take(X, Y) => take(X, Y) a!6220!6220U21(X, Y) => U21(X, Y) a!6220!6220U22(X, Y) => U22(X, Y) a!6220!6220U23(X) => U23(X) a!6220!6220U31(X, Y) => U31(X, Y) a!6220!6220U32(X, Y) => U32(X, Y) a!6220!6220U33(X) => U33(X) a!6220!6220U41(X, Y, Z) => U41(X, Y, Z) a!6220!6220U42(X, Y, Z) => U42(X, Y, Z) a!6220!6220U43(X, Y, Z) => U43(X, Y, Z) a!6220!6220U44(X, Y, Z) => U44(X, Y, Z) a!6220!6220U45(X, Y) => U45(X, Y) a!6220!6220U46(X) => U46(X) a!6220!6220U51(X, Y) => U51(X, Y) a!6220!6220U52(X) => U52(X) a!6220!6220U61(X, Y) => U61(X, Y) a!6220!6220U62(X) => U62(X) a!6220!6220U71(X) => U71(X) a!6220!6220U81(X) => U81(X) a!6220!6220U91(X, Y, Z) => U91(X, Y, Z) a!6220!6220U92(X, Y, Z) => U92(X, Y, Z) a!6220!6220U93(X, Y, Z) => U93(X, Y, Z) a!6220!6220U94(X, Y, Z) => U94(X, Y, Z) a!6220!6220U95(X, Y) => U95(X, Y) a!6220!6220U96(X) => U96(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] a!6220!6220U101#(tt, X, Y) =#> a!6220!6220U102#(a!6220!6220isNatKind(X), X, Y) 1] a!6220!6220U101#(tt, X, Y) =#> a!6220!6220isNatKind#(X) 2] a!6220!6220U102#(tt, X, Y) =#> a!6220!6220U103#(a!6220!6220isNatIListKind(Y), X, Y) 3] a!6220!6220U102#(tt, X, Y) =#> a!6220!6220isNatIListKind#(Y) 4] a!6220!6220U103#(tt, X, Y) =#> a!6220!6220U104#(a!6220!6220isNatIListKind(Y), X, Y) 5] a!6220!6220U103#(tt, X, Y) =#> a!6220!6220isNatIListKind#(Y) 6] a!6220!6220U104#(tt, X, Y) =#> a!6220!6220U105#(a!6220!6220isNat(X), Y) 7] a!6220!6220U104#(tt, X, Y) =#> a!6220!6220isNat#(X) 8] a!6220!6220U105#(tt, X) =#> a!6220!6220U106#(a!6220!6220isNatIList(X)) 9] a!6220!6220U105#(tt, X) =#> a!6220!6220isNatIList#(X) 10] a!6220!6220U11#(tt, X) =#> a!6220!6220U12#(a!6220!6220isNatIListKind(X), X) 11] a!6220!6220U11#(tt, X) =#> a!6220!6220isNatIListKind#(X) 12] a!6220!6220U111#(tt, X, Y) =#> a!6220!6220U112#(a!6220!6220isNatIListKind(X), X, Y) 13] a!6220!6220U111#(tt, X, Y) =#> a!6220!6220isNatIListKind#(X) 14] a!6220!6220U112#(tt, X, Y) =#> a!6220!6220U113#(a!6220!6220isNat(Y), X, Y) 15] a!6220!6220U112#(tt, X, Y) =#> a!6220!6220isNat#(Y) 16] a!6220!6220U113#(tt, X, Y) =#> a!6220!6220U114#(a!6220!6220isNatKind(Y), X) 17] a!6220!6220U113#(tt, X, Y) =#> a!6220!6220isNatKind#(Y) 18] a!6220!6220U114#(tt, X) =#> a!6220!6220length#(mark(X)) 19] a!6220!6220U114#(tt, X) =#> mark#(X) 20] a!6220!6220U12#(tt, X) =#> a!6220!6220U13#(a!6220!6220isNatList(X)) 21] a!6220!6220U12#(tt, X) =#> a!6220!6220isNatList#(X) 22] a!6220!6220U121#(tt, X) =#> a!6220!6220U122#(a!6220!6220isNatIListKind(X)) 23] a!6220!6220U121#(tt, X) =#> a!6220!6220isNatIListKind#(X) 24] a!6220!6220U131#(tt, X, Y, Z) =#> a!6220!6220U132#(a!6220!6220isNatIListKind(X), X, Y, Z) 25] a!6220!6220U131#(tt, X, Y, Z) =#> a!6220!6220isNatIListKind#(X) 26] a!6220!6220U132#(tt, X, Y, Z) =#> a!6220!6220U133#(a!6220!6220isNat(Y), X, Y, Z) 27] a!6220!6220U132#(tt, X, Y, Z) =#> a!6220!6220isNat#(Y) 28] a!6220!6220U133#(tt, X, Y, Z) =#> a!6220!6220U134#(a!6220!6220isNatKind(Y), X, Y, Z) 29] a!6220!6220U133#(tt, X, Y, Z) =#> a!6220!6220isNatKind#(Y) 30] a!6220!6220U134#(tt, X, Y, Z) =#> a!6220!6220U135#(a!6220!6220isNat(Z), X, Y, Z) 31] a!6220!6220U134#(tt, X, Y, Z) =#> a!6220!6220isNat#(Z) 32] a!6220!6220U135#(tt, X, Y, Z) =#> a!6220!6220U136#(a!6220!6220isNatKind(Z), X, Y, Z) 33] a!6220!6220U135#(tt, X, Y, Z) =#> a!6220!6220isNatKind#(Z) 34] a!6220!6220U136#(tt, X, Y, Z) =#> mark#(Z) 35] a!6220!6220U21#(tt, X) =#> a!6220!6220U22#(a!6220!6220isNatKind(X), X) 36] a!6220!6220U21#(tt, X) =#> a!6220!6220isNatKind#(X) 37] a!6220!6220U22#(tt, X) =#> a!6220!6220U23#(a!6220!6220isNat(X)) 38] a!6220!6220U22#(tt, X) =#> a!6220!6220isNat#(X) 39] a!6220!6220U31#(tt, X) =#> a!6220!6220U32#(a!6220!6220isNatIListKind(X), X) 40] a!6220!6220U31#(tt, X) =#> a!6220!6220isNatIListKind#(X) 41] a!6220!6220U32#(tt, X) =#> a!6220!6220U33#(a!6220!6220isNatList(X)) 42] a!6220!6220U32#(tt, X) =#> a!6220!6220isNatList#(X) 43] a!6220!6220U41#(tt, X, Y) =#> a!6220!6220U42#(a!6220!6220isNatKind(X), X, Y) 44] a!6220!6220U41#(tt, X, Y) =#> a!6220!6220isNatKind#(X) 45] a!6220!6220U42#(tt, X, Y) =#> a!6220!6220U43#(a!6220!6220isNatIListKind(Y), X, Y) 46] a!6220!6220U42#(tt, X, Y) =#> a!6220!6220isNatIListKind#(Y) 47] a!6220!6220U43#(tt, X, Y) =#> a!6220!6220U44#(a!6220!6220isNatIListKind(Y), X, Y) 48] a!6220!6220U43#(tt, X, Y) =#> a!6220!6220isNatIListKind#(Y) 49] a!6220!6220U44#(tt, X, Y) =#> a!6220!6220U45#(a!6220!6220isNat(X), Y) 50] a!6220!6220U44#(tt, X, Y) =#> a!6220!6220isNat#(X) 51] a!6220!6220U45#(tt, X) =#> a!6220!6220U46#(a!6220!6220isNatIList(X)) 52] a!6220!6220U45#(tt, X) =#> a!6220!6220isNatIList#(X) 53] a!6220!6220U51#(tt, X) =#> a!6220!6220U52#(a!6220!6220isNatIListKind(X)) 54] a!6220!6220U51#(tt, X) =#> a!6220!6220isNatIListKind#(X) 55] a!6220!6220U61#(tt, X) =#> a!6220!6220U62#(a!6220!6220isNatIListKind(X)) 56] a!6220!6220U61#(tt, X) =#> a!6220!6220isNatIListKind#(X) 57] a!6220!6220U91#(tt, X, Y) =#> a!6220!6220U92#(a!6220!6220isNatKind(X), X, Y) 58] a!6220!6220U91#(tt, X, Y) =#> a!6220!6220isNatKind#(X) 59] a!6220!6220U92#(tt, X, Y) =#> a!6220!6220U93#(a!6220!6220isNatIListKind(Y), X, Y) 60] a!6220!6220U92#(tt, X, Y) =#> a!6220!6220isNatIListKind#(Y) 61] a!6220!6220U93#(tt, X, Y) =#> a!6220!6220U94#(a!6220!6220isNatIListKind(Y), X, Y) 62] a!6220!6220U93#(tt, X, Y) =#> a!6220!6220isNatIListKind#(Y) 63] a!6220!6220U94#(tt, X, Y) =#> a!6220!6220U95#(a!6220!6220isNat(X), Y) 64] a!6220!6220U94#(tt, X, Y) =#> a!6220!6220isNat#(X) 65] a!6220!6220U95#(tt, X) =#> a!6220!6220U96#(a!6220!6220isNatList(X)) 66] a!6220!6220U95#(tt, X) =#> a!6220!6220isNatList#(X) 67] a!6220!6220isNat#(length(X)) =#> a!6220!6220U11#(a!6220!6220isNatIListKind(X), X) 68] a!6220!6220isNat#(length(X)) =#> a!6220!6220isNatIListKind#(X) 69] a!6220!6220isNat#(s(X)) =#> a!6220!6220U21#(a!6220!6220isNatKind(X), X) 70] a!6220!6220isNat#(s(X)) =#> a!6220!6220isNatKind#(X) 71] a!6220!6220isNatIList#(X) =#> a!6220!6220U31#(a!6220!6220isNatIListKind(X), X) 72] a!6220!6220isNatIList#(X) =#> a!6220!6220isNatIListKind#(X) 73] a!6220!6220isNatIList#(cons(X, Y)) =#> a!6220!6220U41#(a!6220!6220isNatKind(X), X, Y) 74] a!6220!6220isNatIList#(cons(X, Y)) =#> a!6220!6220isNatKind#(X) 75] a!6220!6220isNatIListKind#(cons(X, Y)) =#> a!6220!6220U51#(a!6220!6220isNatKind(X), Y) 76] a!6220!6220isNatIListKind#(cons(X, Y)) =#> a!6220!6220isNatKind#(X) 77] a!6220!6220isNatIListKind#(take(X, Y)) =#> a!6220!6220U61#(a!6220!6220isNatKind(X), Y) 78] a!6220!6220isNatIListKind#(take(X, Y)) =#> a!6220!6220isNatKind#(X) 79] a!6220!6220isNatKind#(length(X)) =#> a!6220!6220U71#(a!6220!6220isNatIListKind(X)) 80] a!6220!6220isNatKind#(length(X)) =#> a!6220!6220isNatIListKind#(X) 81] a!6220!6220isNatKind#(s(X)) =#> a!6220!6220U81#(a!6220!6220isNatKind(X)) 82] a!6220!6220isNatKind#(s(X)) =#> a!6220!6220isNatKind#(X) 83] a!6220!6220isNatList#(cons(X, Y)) =#> a!6220!6220U91#(a!6220!6220isNatKind(X), X, Y) 84] a!6220!6220isNatList#(cons(X, Y)) =#> a!6220!6220isNatKind#(X) 85] a!6220!6220isNatList#(take(X, Y)) =#> a!6220!6220U101#(a!6220!6220isNatKind(X), X, Y) 86] a!6220!6220isNatList#(take(X, Y)) =#> a!6220!6220isNatKind#(X) 87] a!6220!6220length#(cons(X, Y)) =#> a!6220!6220U111#(a!6220!6220isNatList(Y), Y, X) 88] a!6220!6220length#(cons(X, Y)) =#> a!6220!6220isNatList#(Y) 89] a!6220!6220take#(0, X) =#> a!6220!6220U121#(a!6220!6220isNatIList(X), X) 90] a!6220!6220take#(0, X) =#> a!6220!6220isNatIList#(X) 91] a!6220!6220take#(s(X), cons(Y, Z)) =#> a!6220!6220U131#(a!6220!6220isNatIList(Z), Z, X, Y) 92] a!6220!6220take#(s(X), cons(Y, Z)) =#> a!6220!6220isNatIList#(Z) 93] mark#(zeros) =#> a!6220!6220zeros# 94] mark#(U101(X, Y, Z)) =#> a!6220!6220U101#(mark(X), Y, Z) 95] mark#(U101(X, Y, Z)) =#> mark#(X) 96] mark#(U102(X, Y, Z)) =#> a!6220!6220U102#(mark(X), Y, Z) 97] mark#(U102(X, Y, Z)) =#> mark#(X) 98] mark#(isNatKind(X)) =#> a!6220!6220isNatKind#(X) 99] mark#(U103(X, Y, Z)) =#> a!6220!6220U103#(mark(X), Y, Z) 100] mark#(U103(X, Y, Z)) =#> mark#(X) 101] mark#(isNatIListKind(X)) =#> a!6220!6220isNatIListKind#(X) 102] mark#(U104(X, Y, Z)) =#> a!6220!6220U104#(mark(X), Y, Z) 103] mark#(U104(X, Y, Z)) =#> mark#(X) 104] mark#(U105(X, Y)) =#> a!6220!6220U105#(mark(X), Y) 105] mark#(U105(X, Y)) =#> mark#(X) 106] mark#(isNat(X)) =#> a!6220!6220isNat#(X) 107] mark#(U106(X)) =#> a!6220!6220U106#(mark(X)) 108] mark#(U106(X)) =#> mark#(X) 109] mark#(isNatIList(X)) =#> a!6220!6220isNatIList#(X) 110] mark#(U11(X, Y)) =#> a!6220!6220U11#(mark(X), Y) 111] mark#(U11(X, Y)) =#> mark#(X) 112] mark#(U12(X, Y)) =#> a!6220!6220U12#(mark(X), Y) 113] mark#(U12(X, Y)) =#> mark#(X) 114] mark#(U111(X, Y, Z)) =#> a!6220!6220U111#(mark(X), Y, Z) 115] mark#(U111(X, Y, Z)) =#> mark#(X) 116] mark#(U112(X, Y, Z)) =#> a!6220!6220U112#(mark(X), Y, Z) 117] mark#(U112(X, Y, Z)) =#> mark#(X) 118] mark#(U113(X, Y, Z)) =#> a!6220!6220U113#(mark(X), Y, Z) 119] mark#(U113(X, Y, Z)) =#> mark#(X) 120] mark#(U114(X, Y)) =#> a!6220!6220U114#(mark(X), Y) 121] mark#(U114(X, Y)) =#> mark#(X) 122] mark#(length(X)) =#> a!6220!6220length#(mark(X)) 123] mark#(length(X)) =#> mark#(X) 124] mark#(U13(X)) =#> a!6220!6220U13#(mark(X)) 125] mark#(U13(X)) =#> mark#(X) 126] mark#(isNatList(X)) =#> a!6220!6220isNatList#(X) 127] mark#(U121(X, Y)) =#> a!6220!6220U121#(mark(X), Y) 128] mark#(U121(X, Y)) =#> mark#(X) 129] mark#(U122(X)) =#> a!6220!6220U122#(mark(X)) 130] mark#(U122(X)) =#> mark#(X) 131] mark#(U131(X, Y, Z, U)) =#> a!6220!6220U131#(mark(X), Y, Z, U) 132] mark#(U131(X, Y, Z, U)) =#> mark#(X) 133] mark#(U132(X, Y, Z, U)) =#> a!6220!6220U132#(mark(X), Y, Z, U) 134] mark#(U132(X, Y, Z, U)) =#> mark#(X) 135] mark#(U133(X, Y, Z, U)) =#> a!6220!6220U133#(mark(X), Y, Z, U) 136] mark#(U133(X, Y, Z, U)) =#> mark#(X) 137] mark#(U134(X, Y, Z, U)) =#> a!6220!6220U134#(mark(X), Y, Z, U) 138] mark#(U134(X, Y, Z, U)) =#> mark#(X) 139] mark#(U135(X, Y, Z, U)) =#> a!6220!6220U135#(mark(X), Y, Z, U) 140] mark#(U135(X, Y, Z, U)) =#> mark#(X) 141] mark#(U136(X, Y, Z, U)) =#> a!6220!6220U136#(mark(X), Y, Z, U) 142] mark#(U136(X, Y, Z, U)) =#> mark#(X) 143] mark#(take(X, Y)) =#> a!6220!6220take#(mark(X), mark(Y)) 144] mark#(take(X, Y)) =#> mark#(X) 145] mark#(take(X, Y)) =#> mark#(Y) 146] mark#(U21(X, Y)) =#> a!6220!6220U21#(mark(X), Y) 147] mark#(U21(X, Y)) =#> mark#(X) 148] mark#(U22(X, Y)) =#> a!6220!6220U22#(mark(X), Y) 149] mark#(U22(X, Y)) =#> mark#(X) 150] mark#(U23(X)) =#> a!6220!6220U23#(mark(X)) 151] mark#(U23(X)) =#> mark#(X) 152] mark#(U31(X, Y)) =#> a!6220!6220U31#(mark(X), Y) 153] mark#(U31(X, Y)) =#> mark#(X) 154] mark#(U32(X, Y)) =#> a!6220!6220U32#(mark(X), Y) 155] mark#(U32(X, Y)) =#> mark#(X) 156] mark#(U33(X)) =#> a!6220!6220U33#(mark(X)) 157] mark#(U33(X)) =#> mark#(X) 158] mark#(U41(X, Y, Z)) =#> a!6220!6220U41#(mark(X), Y, Z) 159] mark#(U41(X, Y, Z)) =#> mark#(X) 160] mark#(U42(X, Y, Z)) =#> a!6220!6220U42#(mark(X), Y, Z) 161] mark#(U42(X, Y, Z)) =#> mark#(X) 162] mark#(U43(X, Y, Z)) =#> a!6220!6220U43#(mark(X), Y, Z) 163] mark#(U43(X, Y, Z)) =#> mark#(X) 164] mark#(U44(X, Y, Z)) =#> a!6220!6220U44#(mark(X), Y, Z) 165] mark#(U44(X, Y, Z)) =#> mark#(X) 166] mark#(U45(X, Y)) =#> a!6220!6220U45#(mark(X), Y) 167] mark#(U45(X, Y)) =#> mark#(X) 168] mark#(U46(X)) =#> a!6220!6220U46#(mark(X)) 169] mark#(U46(X)) =#> mark#(X) 170] mark#(U51(X, Y)) =#> a!6220!6220U51#(mark(X), Y) 171] mark#(U51(X, Y)) =#> mark#(X) 172] mark#(U52(X)) =#> a!6220!6220U52#(mark(X)) 173] mark#(U52(X)) =#> mark#(X) 174] mark#(U61(X, Y)) =#> a!6220!6220U61#(mark(X), Y) 175] mark#(U61(X, Y)) =#> mark#(X) 176] mark#(U62(X)) =#> a!6220!6220U62#(mark(X)) 177] mark#(U62(X)) =#> mark#(X) 178] mark#(U71(X)) =#> a!6220!6220U71#(mark(X)) 179] mark#(U71(X)) =#> mark#(X) 180] mark#(U81(X)) =#> a!6220!6220U81#(mark(X)) 181] mark#(U81(X)) =#> mark#(X) 182] mark#(U91(X, Y, Z)) =#> a!6220!6220U91#(mark(X), Y, Z) 183] mark#(U91(X, Y, Z)) =#> mark#(X) 184] mark#(U92(X, Y, Z)) =#> a!6220!6220U92#(mark(X), Y, Z) 185] mark#(U92(X, Y, Z)) =#> mark#(X) 186] mark#(U93(X, Y, Z)) =#> a!6220!6220U93#(mark(X), Y, Z) 187] mark#(U93(X, Y, Z)) =#> mark#(X) 188] mark#(U94(X, Y, Z)) =#> a!6220!6220U94#(mark(X), Y, Z) 189] mark#(U94(X, Y, Z)) =#> mark#(X) 190] mark#(U95(X, Y)) =#> a!6220!6220U95#(mark(X), Y) 191] mark#(U95(X, Y)) =#> mark#(X) 192] mark#(U96(X)) =#> a!6220!6220U96#(mark(X)) 193] mark#(U96(X)) =#> mark#(X) 194] mark#(cons(X, Y)) =#> mark#(X) 195] mark#(s(X)) =#> mark#(X) Rules R_0: a!6220!6220zeros => cons(0, zeros) a!6220!6220U101(tt, X, Y) => a!6220!6220U102(a!6220!6220isNatKind(X), X, Y) a!6220!6220U102(tt, X, Y) => a!6220!6220U103(a!6220!6220isNatIListKind(Y), X, Y) a!6220!6220U103(tt, X, Y) => a!6220!6220U104(a!6220!6220isNatIListKind(Y), X, Y) a!6220!6220U104(tt, X, Y) => a!6220!6220U105(a!6220!6220isNat(X), Y) a!6220!6220U105(tt, X) => a!6220!6220U106(a!6220!6220isNatIList(X)) a!6220!6220U106(tt) => tt a!6220!6220U11(tt, X) => a!6220!6220U12(a!6220!6220isNatIListKind(X), X) a!6220!6220U111(tt, X, Y) => a!6220!6220U112(a!6220!6220isNatIListKind(X), X, Y) a!6220!6220U112(tt, X, Y) => a!6220!6220U113(a!6220!6220isNat(Y), X, Y) a!6220!6220U113(tt, X, Y) => a!6220!6220U114(a!6220!6220isNatKind(Y), X) a!6220!6220U114(tt, X) => s(a!6220!6220length(mark(X))) a!6220!6220U12(tt, X) => a!6220!6220U13(a!6220!6220isNatList(X)) a!6220!6220U121(tt, X) => a!6220!6220U122(a!6220!6220isNatIListKind(X)) a!6220!6220U122(tt) => nil a!6220!6220U13(tt) => tt a!6220!6220U131(tt, X, Y, Z) => a!6220!6220U132(a!6220!6220isNatIListKind(X), X, Y, Z) a!6220!6220U132(tt, X, Y, Z) => a!6220!6220U133(a!6220!6220isNat(Y), X, Y, Z) a!6220!6220U133(tt, X, Y, Z) => a!6220!6220U134(a!6220!6220isNatKind(Y), X, Y, Z) a!6220!6220U134(tt, X, Y, Z) => a!6220!6220U135(a!6220!6220isNat(Z), X, Y, Z) a!6220!6220U135(tt, X, Y, Z) => a!6220!6220U136(a!6220!6220isNatKind(Z), X, Y, Z) a!6220!6220U136(tt, X, Y, Z) => cons(mark(Z), take(Y, X)) a!6220!6220U21(tt, X) => a!6220!6220U22(a!6220!6220isNatKind(X), X) a!6220!6220U22(tt, X) => a!6220!6220U23(a!6220!6220isNat(X)) a!6220!6220U23(tt) => tt a!6220!6220U31(tt, X) => a!6220!6220U32(a!6220!6220isNatIListKind(X), X) a!6220!6220U32(tt, X) => a!6220!6220U33(a!6220!6220isNatList(X)) a!6220!6220U33(tt) => tt a!6220!6220U41(tt, X, Y) => a!6220!6220U42(a!6220!6220isNatKind(X), X, Y) a!6220!6220U42(tt, X, Y) => a!6220!6220U43(a!6220!6220isNatIListKind(Y), X, Y) a!6220!6220U43(tt, X, Y) => a!6220!6220U44(a!6220!6220isNatIListKind(Y), X, Y) a!6220!6220U44(tt, X, Y) => a!6220!6220U45(a!6220!6220isNat(X), Y) a!6220!6220U45(tt, X) => a!6220!6220U46(a!6220!6220isNatIList(X)) a!6220!6220U46(tt) => tt a!6220!6220U51(tt, X) => a!6220!6220U52(a!6220!6220isNatIListKind(X)) a!6220!6220U52(tt) => tt a!6220!6220U61(tt, X) => a!6220!6220U62(a!6220!6220isNatIListKind(X)) a!6220!6220U62(tt) => tt a!6220!6220U71(tt) => tt a!6220!6220U81(tt) => tt a!6220!6220U91(tt, X, Y) => a!6220!6220U92(a!6220!6220isNatKind(X), X, Y) a!6220!6220U92(tt, X, Y) => a!6220!6220U93(a!6220!6220isNatIListKind(Y), X, Y) a!6220!6220U93(tt, X, Y) => a!6220!6220U94(a!6220!6220isNatIListKind(Y), X, Y) a!6220!6220U94(tt, X, Y) => a!6220!6220U95(a!6220!6220isNat(X), Y) a!6220!6220U95(tt, X) => a!6220!6220U96(a!6220!6220isNatList(X)) a!6220!6220U96(tt) => tt a!6220!6220isNat(0) => tt a!6220!6220isNat(length(X)) => a!6220!6220U11(a!6220!6220isNatIListKind(X), X) a!6220!6220isNat(s(X)) => a!6220!6220U21(a!6220!6220isNatKind(X), X) a!6220!6220isNatIList(X) => a!6220!6220U31(a!6220!6220isNatIListKind(X), X) a!6220!6220isNatIList(zeros) => tt a!6220!6220isNatIList(cons(X, Y)) => a!6220!6220U41(a!6220!6220isNatKind(X), X, Y) a!6220!6220isNatIListKind(nil) => tt a!6220!6220isNatIListKind(zeros) => tt a!6220!6220isNatIListKind(cons(X, Y)) => a!6220!6220U51(a!6220!6220isNatKind(X), Y) a!6220!6220isNatIListKind(take(X, Y)) => a!6220!6220U61(a!6220!6220isNatKind(X), Y) a!6220!6220isNatKind(0) => tt a!6220!6220isNatKind(length(X)) => a!6220!6220U71(a!6220!6220isNatIListKind(X)) a!6220!6220isNatKind(s(X)) => a!6220!6220U81(a!6220!6220isNatKind(X)) a!6220!6220isNatList(nil) => tt a!6220!6220isNatList(cons(X, Y)) => a!6220!6220U91(a!6220!6220isNatKind(X), X, Y) a!6220!6220isNatList(take(X, Y)) => a!6220!6220U101(a!6220!6220isNatKind(X), X, Y) a!6220!6220length(nil) => 0 a!6220!6220length(cons(X, Y)) => a!6220!6220U111(a!6220!6220isNatList(Y), Y, X) a!6220!6220take(0, X) => a!6220!6220U121(a!6220!6220isNatIList(X), X) a!6220!6220take(s(X), cons(Y, Z)) => a!6220!6220U131(a!6220!6220isNatIList(Z), Z, X, Y) mark(zeros) => a!6220!6220zeros mark(U101(X, Y, Z)) => a!6220!6220U101(mark(X), Y, Z) mark(U102(X, Y, Z)) => a!6220!6220U102(mark(X), Y, Z) mark(isNatKind(X)) => a!6220!6220isNatKind(X) mark(U103(X, Y, Z)) => a!6220!6220U103(mark(X), Y, Z) mark(isNatIListKind(X)) => a!6220!6220isNatIListKind(X) mark(U104(X, Y, Z)) => a!6220!6220U104(mark(X), Y, Z) mark(U105(X, Y)) => a!6220!6220U105(mark(X), Y) mark(isNat(X)) => a!6220!6220isNat(X) mark(U106(X)) => a!6220!6220U106(mark(X)) mark(isNatIList(X)) => a!6220!6220isNatIList(X) mark(U11(X, Y)) => a!6220!6220U11(mark(X), Y) mark(U12(X, Y)) => a!6220!6220U12(mark(X), Y) mark(U111(X, Y, Z)) => a!6220!6220U111(mark(X), Y, Z) mark(U112(X, Y, Z)) => a!6220!6220U112(mark(X), Y, Z) mark(U113(X, Y, Z)) => a!6220!6220U113(mark(X), Y, Z) mark(U114(X, Y)) => a!6220!6220U114(mark(X), Y) mark(length(X)) => a!6220!6220length(mark(X)) mark(U13(X)) => a!6220!6220U13(mark(X)) mark(isNatList(X)) => a!6220!6220isNatList(X) mark(U121(X, Y)) => a!6220!6220U121(mark(X), Y) mark(U122(X)) => a!6220!6220U122(mark(X)) mark(U131(X, Y, Z, U)) => a!6220!6220U131(mark(X), Y, Z, U) mark(U132(X, Y, Z, U)) => a!6220!6220U132(mark(X), Y, Z, U) mark(U133(X, Y, Z, U)) => a!6220!6220U133(mark(X), Y, Z, U) mark(U134(X, Y, Z, U)) => a!6220!6220U134(mark(X), Y, Z, U) mark(U135(X, Y, Z, U)) => a!6220!6220U135(mark(X), Y, Z, U) mark(U136(X, Y, Z, U)) => a!6220!6220U136(mark(X), Y, Z, U) mark(take(X, Y)) => a!6220!6220take(mark(X), mark(Y)) mark(U21(X, Y)) => a!6220!6220U21(mark(X), Y) mark(U22(X, Y)) => a!6220!6220U22(mark(X), Y) mark(U23(X)) => a!6220!6220U23(mark(X)) mark(U31(X, Y)) => a!6220!6220U31(mark(X), Y) mark(U32(X, Y)) => a!6220!6220U32(mark(X), Y) mark(U33(X)) => a!6220!6220U33(mark(X)) mark(U41(X, Y, Z)) => a!6220!6220U41(mark(X), Y, Z) mark(U42(X, Y, Z)) => a!6220!6220U42(mark(X), Y, Z) mark(U43(X, Y, Z)) => a!6220!6220U43(mark(X), Y, Z) mark(U44(X, Y, Z)) => a!6220!6220U44(mark(X), Y, Z) mark(U45(X, Y)) => a!6220!6220U45(mark(X), Y) mark(U46(X)) => a!6220!6220U46(mark(X)) mark(U51(X, Y)) => a!6220!6220U51(mark(X), Y) mark(U52(X)) => a!6220!6220U52(mark(X)) mark(U61(X, Y)) => a!6220!6220U61(mark(X), Y) mark(U62(X)) => a!6220!6220U62(mark(X)) mark(U71(X)) => a!6220!6220U71(mark(X)) mark(U81(X)) => a!6220!6220U81(mark(X)) mark(U91(X, Y, Z)) => a!6220!6220U91(mark(X), Y, Z) mark(U92(X, Y, Z)) => a!6220!6220U92(mark(X), Y, Z) mark(U93(X, Y, Z)) => a!6220!6220U93(mark(X), Y, Z) mark(U94(X, Y, Z)) => a!6220!6220U94(mark(X), Y, Z) mark(U95(X, Y)) => a!6220!6220U95(mark(X), Y) mark(U96(X)) => a!6220!6220U96(mark(X)) mark(cons(X, Y)) => cons(mark(X), Y) mark(0) => 0 mark(tt) => tt mark(s(X)) => s(mark(X)) mark(nil) => nil a!6220!6220zeros => zeros a!6220!6220U101(X, Y, Z) => U101(X, Y, Z) a!6220!6220U102(X, Y, Z) => U102(X, Y, Z) a!6220!6220isNatKind(X) => isNatKind(X) a!6220!6220U103(X, Y, Z) => U103(X, Y, Z) a!6220!6220isNatIListKind(X) => isNatIListKind(X) a!6220!6220U104(X, Y, Z) => U104(X, Y, Z) a!6220!6220U105(X, Y) => U105(X, Y) a!6220!6220isNat(X) => isNat(X) a!6220!6220U106(X) => U106(X) a!6220!6220isNatIList(X) => isNatIList(X) a!6220!6220U11(X, Y) => U11(X, Y) a!6220!6220U12(X, Y) => U12(X, Y) a!6220!6220U111(X, Y, Z) => U111(X, Y, Z) a!6220!6220U112(X, Y, Z) => U112(X, Y, Z) a!6220!6220U113(X, Y, Z) => U113(X, Y, Z) a!6220!6220U114(X, Y) => U114(X, Y) a!6220!6220length(X) => length(X) a!6220!6220U13(X) => U13(X) a!6220!6220isNatList(X) => isNatList(X) a!6220!6220U121(X, Y) => U121(X, Y) a!6220!6220U122(X) => U122(X) a!6220!6220U131(X, Y, Z, U) => U131(X, Y, Z, U) a!6220!6220U132(X, Y, Z, U) => U132(X, Y, Z, U) a!6220!6220U133(X, Y, Z, U) => U133(X, Y, Z, U) a!6220!6220U134(X, Y, Z, U) => U134(X, Y, Z, U) a!6220!6220U135(X, Y, Z, U) => U135(X, Y, Z, U) a!6220!6220U136(X, Y, Z, U) => U136(X, Y, Z, U) a!6220!6220take(X, Y) => take(X, Y) a!6220!6220U21(X, Y) => U21(X, Y) a!6220!6220U22(X, Y) => U22(X, Y) a!6220!6220U23(X) => U23(X) a!6220!6220U31(X, Y) => U31(X, Y) a!6220!6220U32(X, Y) => U32(X, Y) a!6220!6220U33(X) => U33(X) a!6220!6220U41(X, Y, Z) => U41(X, Y, Z) a!6220!6220U42(X, Y, Z) => U42(X, Y, Z) a!6220!6220U43(X, Y, Z) => U43(X, Y, Z) a!6220!6220U44(X, Y, Z) => U44(X, Y, Z) a!6220!6220U45(X, Y) => U45(X, Y) a!6220!6220U46(X) => U46(X) a!6220!6220U51(X, Y) => U51(X, Y) a!6220!6220U52(X) => U52(X) a!6220!6220U61(X, Y) => U61(X, Y) a!6220!6220U62(X) => U62(X) a!6220!6220U71(X) => U71(X) a!6220!6220U81(X) => U81(X) a!6220!6220U91(X, Y, Z) => U91(X, Y, Z) a!6220!6220U92(X, Y, Z) => U92(X, Y, Z) a!6220!6220U93(X, Y, Z) => U93(X, Y, Z) a!6220!6220U94(X, Y, Z) => U94(X, Y, Z) a!6220!6220U95(X, Y) => U95(X, Y) a!6220!6220U96(X) => U96(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 : 2, 3 * 1 : 79, 80, 81, 82 * 2 : 4, 5 * 3 : 75, 76, 77, 78 * 4 : 6, 7 * 5 : 75, 76, 77, 78 * 6 : 8, 9 * 7 : 67, 68, 69, 70 * 8 : * 9 : 71, 72, 73, 74 * 10 : 20, 21 * 11 : 75, 76, 77, 78 * 12 : 14, 15 * 13 : 75, 76, 77, 78 * 14 : 16, 17 * 15 : 67, 68, 69, 70 * 16 : 18, 19 * 17 : 79, 80, 81, 82 * 18 : 87, 88 * 19 : 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195 * 20 : * 21 : 83, 84, 85, 86 * 22 : * 23 : 75, 76, 77, 78 * 24 : 26, 27 * 25 : 75, 76, 77, 78 * 26 : 28, 29 * 27 : 67, 68, 69, 70 * 28 : 30, 31 * 29 : 79, 80, 81, 82 * 30 : 32, 33 * 31 : 67, 68, 69, 70 * 32 : 34 * 33 : 79, 80, 81, 82 * 34 : 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195 * 35 : 37, 38 * 36 : 79, 80, 81, 82 * 37 : * 38 : 67, 68, 69, 70 * 39 : 41, 42 * 40 : 75, 76, 77, 78 * 41 : * 42 : 83, 84, 85, 86 * 43 : 45, 46 * 44 : 79, 80, 81, 82 * 45 : 47, 48 * 46 : 75, 76, 77, 78 * 47 : 49, 50 * 48 : 75, 76, 77, 78 * 49 : 51, 52 * 50 : 67, 68, 69, 70 * 51 : * 52 : 71, 72, 73, 74 * 53 : * 54 : 75, 76, 77, 78 * 55 : * 56 : 75, 76, 77, 78 * 57 : 59, 60 * 58 : 79, 80, 81, 82 * 59 : 61, 62 * 60 : 75, 76, 77, 78 * 61 : 63, 64 * 62 : 75, 76, 77, 78 * 63 : 65, 66 * 64 : 67, 68, 69, 70 * 65 : * 66 : 83, 84, 85, 86 * 67 : 10, 11 * 68 : 75, 76, 77, 78 * 69 : 35, 36 * 70 : 79, 80, 81, 82 * 71 : 39, 40 * 72 : 75, 76, 77, 78 * 73 : 43, 44 * 74 : 79, 80, 81, 82 * 75 : 53, 54 * 76 : 79, 80, 81, 82 * 77 : 55, 56 * 78 : 79, 80, 81, 82 * 79 : * 80 : 75, 76, 77, 78 * 81 : * 82 : 79, 80, 81, 82 * 83 : 57, 58 * 84 : 79, 80, 81, 82 * 85 : 0, 1 * 86 : 79, 80, 81, 82 * 87 : 12, 13 * 88 : 83, 84, 85, 86 * 89 : 22, 23 * 90 : 71, 72, 73, 74 * 91 : 24, 25 * 92 : 71, 72, 73, 74 * 93 : * 94 : 0, 1 * 95 : 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195 * 96 : 2, 3 * 97 : 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195 * 98 : 79, 80, 81, 82 * 99 : 4, 5 * 100 : 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195 * 101 : 75, 76, 77, 78 * 102 : 6, 7 * 103 : 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195 * 104 : 8, 9 * 105 : 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195 * 106 : 67, 68, 69, 70 * 107 : * 108 : 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195 * 109 : 71, 72, 73, 74 * 110 : 10, 11 * 111 : 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195 * 112 : 20, 21 * 113 : 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195 * 114 : 12, 13 * 115 : 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195 * 116 : 14, 15 * 117 : 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195 * 118 : 16, 17 * 119 : 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195 * 120 : 18, 19 * 121 : 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195 * 122 : 87, 88 * 123 : 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195 * 124 : * 125 : 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195 * 126 : 83, 84, 85, 86 * 127 : 22, 23 * 128 : 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195 * 129 : * 130 : 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195 * 131 : 24, 25 * 132 : 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195 * 133 : 26, 27 * 134 : 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195 * 135 : 28, 29 * 136 : 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195 * 137 : 30, 31 * 138 : 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195 * 139 : 32, 33 * 140 : 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195 * 141 : 34 * 142 : 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195 * 143 : 89, 90, 91, 92 * 144 : 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195 * 145 : 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195 * 146 : 35, 36 * 147 : 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195 * 148 : 37, 38 * 149 : 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195 * 150 : * 151 : 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195 * 152 : 39, 40 * 153 : 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195 * 154 : 41, 42 * 155 : 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195 * 156 : * 157 : 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195 * 158 : 43, 44 * 159 : 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195 * 160 : 45, 46 * 161 : 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195 * 162 : 47, 48 * 163 : 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195 * 164 : 49, 50 * 165 : 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195 * 166 : 51, 52 * 167 : 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195 * 168 : * 169 : 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195 * 170 : 53, 54 * 171 : 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195 * 172 : * 173 : 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195 * 174 : 55, 56 * 175 : 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195 * 176 : * 177 : 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195 * 178 : * 179 : 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195 * 180 : * 181 : 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195 * 182 : 57, 58 * 183 : 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195 * 184 : 59, 60 * 185 : 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195 * 186 : 61, 62 * 187 : 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195 * 188 : 63, 64 * 189 : 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195 * 190 : 65, 66 * 191 : 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195 * 192 : * 193 : 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195 * 194 : 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195 * 195 : 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195 This graph has the following strongly connected components: P_1: a!6220!6220U101#(tt, X, Y) =#> a!6220!6220U102#(a!6220!6220isNatKind(X), X, Y) a!6220!6220U102#(tt, X, Y) =#> a!6220!6220U103#(a!6220!6220isNatIListKind(Y), X, Y) a!6220!6220U103#(tt, X, Y) =#> a!6220!6220U104#(a!6220!6220isNatIListKind(Y), X, Y) a!6220!6220U104#(tt, X, Y) =#> a!6220!6220U105#(a!6220!6220isNat(X), Y) a!6220!6220U104#(tt, X, Y) =#> a!6220!6220isNat#(X) a!6220!6220U105#(tt, X) =#> a!6220!6220isNatIList#(X) a!6220!6220U11#(tt, X) =#> a!6220!6220U12#(a!6220!6220isNatIListKind(X), X) a!6220!6220U12#(tt, X) =#> a!6220!6220isNatList#(X) a!6220!6220U21#(tt, X) =#> a!6220!6220U22#(a!6220!6220isNatKind(X), X) a!6220!6220U22#(tt, X) =#> a!6220!6220isNat#(X) a!6220!6220U31#(tt, X) =#> a!6220!6220U32#(a!6220!6220isNatIListKind(X), X) a!6220!6220U32#(tt, X) =#> a!6220!6220isNatList#(X) a!6220!6220U41#(tt, X, Y) =#> a!6220!6220U42#(a!6220!6220isNatKind(X), X, Y) a!6220!6220U42#(tt, X, Y) =#> a!6220!6220U43#(a!6220!6220isNatIListKind(Y), X, Y) a!6220!6220U43#(tt, X, Y) =#> a!6220!6220U44#(a!6220!6220isNatIListKind(Y), X, Y) a!6220!6220U44#(tt, X, Y) =#> a!6220!6220U45#(a!6220!6220isNat(X), Y) a!6220!6220U44#(tt, X, Y) =#> a!6220!6220isNat#(X) a!6220!6220U45#(tt, X) =#> a!6220!6220isNatIList#(X) a!6220!6220U91#(tt, X, Y) =#> a!6220!6220U92#(a!6220!6220isNatKind(X), X, Y) a!6220!6220U92#(tt, X, Y) =#> a!6220!6220U93#(a!6220!6220isNatIListKind(Y), X, Y) a!6220!6220U93#(tt, X, Y) =#> a!6220!6220U94#(a!6220!6220isNatIListKind(Y), X, Y) a!6220!6220U94#(tt, X, Y) =#> a!6220!6220U95#(a!6220!6220isNat(X), Y) a!6220!6220U94#(tt, X, Y) =#> a!6220!6220isNat#(X) a!6220!6220U95#(tt, X) =#> a!6220!6220isNatList#(X) a!6220!6220isNat#(length(X)) =#> a!6220!6220U11#(a!6220!6220isNatIListKind(X), X) a!6220!6220isNat#(s(X)) =#> a!6220!6220U21#(a!6220!6220isNatKind(X), X) a!6220!6220isNatIList#(X) =#> a!6220!6220U31#(a!6220!6220isNatIListKind(X), X) a!6220!6220isNatIList#(cons(X, Y)) =#> a!6220!6220U41#(a!6220!6220isNatKind(X), X, Y) a!6220!6220isNatList#(cons(X, Y)) =#> a!6220!6220U91#(a!6220!6220isNatKind(X), X, Y) a!6220!6220isNatList#(take(X, Y)) =#> a!6220!6220U101#(a!6220!6220isNatKind(X), X, Y) P_2: a!6220!6220U111#(tt, X, Y) =#> a!6220!6220U112#(a!6220!6220isNatIListKind(X), X, Y) a!6220!6220U112#(tt, X, Y) =#> a!6220!6220U113#(a!6220!6220isNat(Y), X, Y) a!6220!6220U113#(tt, X, Y) =#> a!6220!6220U114#(a!6220!6220isNatKind(Y), X) a!6220!6220U114#(tt, X) =#> a!6220!6220length#(mark(X)) a!6220!6220U114#(tt, X) =#> mark#(X) a!6220!6220U131#(tt, X, Y, Z) =#> a!6220!6220U132#(a!6220!6220isNatIListKind(X), X, Y, Z) a!6220!6220U132#(tt, X, Y, Z) =#> a!6220!6220U133#(a!6220!6220isNat(Y), X, Y, Z) a!6220!6220U133#(tt, X, Y, Z) =#> a!6220!6220U134#(a!6220!6220isNatKind(Y), X, Y, Z) a!6220!6220U134#(tt, X, Y, Z) =#> a!6220!6220U135#(a!6220!6220isNat(Z), X, Y, Z) a!6220!6220U135#(tt, X, Y, Z) =#> a!6220!6220U136#(a!6220!6220isNatKind(Z), X, Y, Z) a!6220!6220U136#(tt, X, Y, Z) =#> mark#(Z) a!6220!6220length#(cons(X, Y)) =#> a!6220!6220U111#(a!6220!6220isNatList(Y), Y, X) a!6220!6220take#(s(X), cons(Y, Z)) =#> a!6220!6220U131#(a!6220!6220isNatIList(Z), Z, X, Y) mark#(U101(X, Y, Z)) =#> mark#(X) mark#(U102(X, Y, Z)) =#> mark#(X) mark#(U103(X, Y, Z)) =#> mark#(X) mark#(U104(X, Y, Z)) =#> mark#(X) mark#(U105(X, Y)) =#> mark#(X) mark#(U106(X)) =#> mark#(X) mark#(U11(X, Y)) =#> mark#(X) mark#(U12(X, Y)) =#> mark#(X) mark#(U111(X, Y, Z)) =#> a!6220!6220U111#(mark(X), Y, Z) mark#(U111(X, Y, Z)) =#> mark#(X) mark#(U112(X, Y, Z)) =#> a!6220!6220U112#(mark(X), Y, Z) mark#(U112(X, Y, Z)) =#> mark#(X) mark#(U113(X, Y, Z)) =#> a!6220!6220U113#(mark(X), Y, Z) mark#(U113(X, Y, Z)) =#> mark#(X) mark#(U114(X, Y)) =#> a!6220!6220U114#(mark(X), Y) mark#(U114(X, Y)) =#> mark#(X) mark#(length(X)) =#> a!6220!6220length#(mark(X)) mark#(length(X)) =#> mark#(X) mark#(U13(X)) =#> mark#(X) mark#(U121(X, Y)) =#> mark#(X) mark#(U122(X)) =#> mark#(X) mark#(U131(X, Y, Z, U)) =#> a!6220!6220U131#(mark(X), Y, Z, U) mark#(U131(X, Y, Z, U)) =#> mark#(X) mark#(U132(X, Y, Z, U)) =#> a!6220!6220U132#(mark(X), Y, Z, U) mark#(U132(X, Y, Z, U)) =#> mark#(X) mark#(U133(X, Y, Z, U)) =#> a!6220!6220U133#(mark(X), Y, Z, U) mark#(U133(X, Y, Z, U)) =#> mark#(X) mark#(U134(X, Y, Z, U)) =#> a!6220!6220U134#(mark(X), Y, Z, U) mark#(U134(X, Y, Z, U)) =#> mark#(X) mark#(U135(X, Y, Z, U)) =#> a!6220!6220U135#(mark(X), Y, Z, U) mark#(U135(X, Y, Z, U)) =#> mark#(X) mark#(U136(X, Y, Z, U)) =#> a!6220!6220U136#(mark(X), Y, Z, U) mark#(U136(X, Y, Z, U)) =#> mark#(X) mark#(take(X, Y)) =#> a!6220!6220take#(mark(X), mark(Y)) mark#(take(X, Y)) =#> mark#(X) mark#(take(X, Y)) =#> mark#(Y) mark#(U21(X, Y)) =#> mark#(X) mark#(U22(X, Y)) =#> mark#(X) mark#(U23(X)) =#> mark#(X) mark#(U31(X, Y)) =#> mark#(X) mark#(U32(X, Y)) =#> mark#(X) mark#(U33(X)) =#> mark#(X) mark#(U41(X, Y, Z)) =#> mark#(X) mark#(U42(X, Y, Z)) =#> mark#(X) mark#(U43(X, Y, Z)) =#> mark#(X) mark#(U44(X, Y, Z)) =#> mark#(X) mark#(U45(X, Y)) =#> mark#(X) mark#(U46(X)) =#> mark#(X) mark#(U51(X, Y)) =#> mark#(X) mark#(U52(X)) =#> mark#(X) mark#(U61(X, Y)) =#> mark#(X) mark#(U62(X)) =#> mark#(X) mark#(U71(X)) =#> mark#(X) mark#(U81(X)) =#> mark#(X) mark#(U91(X, Y, Z)) =#> mark#(X) mark#(U92(X, Y, Z)) =#> mark#(X) mark#(U93(X, Y, Z)) =#> mark#(X) mark#(U94(X, Y, Z)) =#> mark#(X) mark#(U95(X, Y)) =#> mark#(X) mark#(U96(X)) =#> mark#(X) mark#(cons(X, Y)) =#> mark#(X) mark#(s(X)) =#> mark#(X) P_3: a!6220!6220U51#(tt, X) =#> a!6220!6220isNatIListKind#(X) a!6220!6220U61#(tt, X) =#> a!6220!6220isNatIListKind#(X) a!6220!6220isNatIListKind#(cons(X, Y)) =#> a!6220!6220U51#(a!6220!6220isNatKind(X), Y) a!6220!6220isNatIListKind#(cons(X, Y)) =#> a!6220!6220isNatKind#(X) a!6220!6220isNatIListKind#(take(X, Y)) =#> a!6220!6220U61#(a!6220!6220isNatKind(X), Y) a!6220!6220isNatIListKind#(take(X, Y)) =#> a!6220!6220isNatKind#(X) a!6220!6220isNatKind#(length(X)) =#> a!6220!6220isNatIListKind#(X) a!6220!6220isNatKind#(s(X)) =#> a!6220!6220isNatKind#(X) 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), (P_2, R_0, m, f) and (P_3, R_0, m, f). Thus, the original system is terminating if each of (P_1, R_0, minimal, formative), (P_2, R_0, minimal, formative) and (P_3, R_0, minimal, formative) is finite. We consider the dependency pair problem (P_3, R_0, minimal, formative). We apply the subterm criterion with the following projection function: nu(a!6220!6220U51#) = 2 nu(a!6220!6220U61#) = 2 nu(a!6220!6220isNatIListKind#) = 1 nu(a!6220!6220isNatKind#) = 1 Thus, we can orient the dependency pairs as follows: nu(a!6220!6220U51#(tt, X)) = X = X = nu(a!6220!6220isNatIListKind#(X)) nu(a!6220!6220U61#(tt, X)) = X = X = nu(a!6220!6220isNatIListKind#(X)) nu(a!6220!6220isNatIListKind#(cons(X, Y))) = cons(X, Y) |> Y = nu(a!6220!6220U51#(a!6220!6220isNatKind(X), Y)) nu(a!6220!6220isNatIListKind#(cons(X, Y))) = cons(X, Y) |> X = nu(a!6220!6220isNatKind#(X)) nu(a!6220!6220isNatIListKind#(take(X, Y))) = take(X, Y) |> Y = nu(a!6220!6220U61#(a!6220!6220isNatKind(X), Y)) nu(a!6220!6220isNatIListKind#(take(X, Y))) = take(X, Y) |> X = nu(a!6220!6220isNatKind#(X)) nu(a!6220!6220isNatKind#(length(X))) = length(X) |> X = nu(a!6220!6220isNatIListKind#(X)) nu(a!6220!6220isNatKind#(s(X))) = s(X) |> X = nu(a!6220!6220isNatKind#(X)) By [Kop12, Thm. 7.35], we may replace a dependency pair problem (P_3, R_0, minimal, f) by (P_4, R_0, minimal, f), where P_4 contains: a!6220!6220U51#(tt, X) =#> a!6220!6220isNatIListKind#(X) a!6220!6220U61#(tt, X) =#> a!6220!6220isNatIListKind#(X) Thus, the original system is terminating if each of (P_1, R_0, minimal, formative), (P_2, R_0, minimal, formative) and (P_4, R_0, minimal, formative) is finite. We consider the dependency pair problem (P_4, 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 : This graph has no strongly connected components. By [Kop12, Thm. 7.31], this implies finiteness of the dependency pair problem. Thus, the original system is terminating if each of (P_1, R_0, minimal, formative) and (P_2, R_0, minimal, formative) is finite. We consider the dependency pair problem (P_2, 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: a!6220!6220U111#(tt, X, Y) >? a!6220!6220U112#(a!6220!6220isNatIListKind(X), X, Y) a!6220!6220U112#(tt, X, Y) >? a!6220!6220U113#(a!6220!6220isNat(Y), X, Y) a!6220!6220U113#(tt, X, Y) >? a!6220!6220U114#(a!6220!6220isNatKind(Y), X) a!6220!6220U114#(tt, X) >? a!6220!6220length#(mark(X)) a!6220!6220U114#(tt, X) >? mark#(X) a!6220!6220U131#(tt, X, Y, Z) >? a!6220!6220U132#(a!6220!6220isNatIListKind(X), X, Y, Z) a!6220!6220U132#(tt, X, Y, Z) >? a!6220!6220U133#(a!6220!6220isNat(Y), X, Y, Z) a!6220!6220U133#(tt, X, Y, Z) >? a!6220!6220U134#(a!6220!6220isNatKind(Y), X, Y, Z) a!6220!6220U134#(tt, X, Y, Z) >? a!6220!6220U135#(a!6220!6220isNat(Z), X, Y, Z) a!6220!6220U135#(tt, X, Y, Z) >? a!6220!6220U136#(a!6220!6220isNatKind(Z), X, Y, Z) a!6220!6220U136#(tt, X, Y, Z) >? mark#(Z) a!6220!6220length#(cons(X, Y)) >? a!6220!6220U111#(a!6220!6220isNatList(Y), Y, X) a!6220!6220take#(s(X), cons(Y, Z)) >? a!6220!6220U131#(a!6220!6220isNatIList(Z), Z, X, Y) mark#(U101(X, Y, Z)) >? mark#(X) mark#(U102(X, Y, Z)) >? mark#(X) mark#(U103(X, Y, Z)) >? mark#(X) mark#(U104(X, Y, Z)) >? mark#(X) mark#(U105(X, Y)) >? mark#(X) mark#(U106(X)) >? mark#(X) mark#(U11(X, Y)) >? mark#(X) mark#(U12(X, Y)) >? mark#(X) mark#(U111(X, Y, Z)) >? a!6220!6220U111#(mark(X), Y, Z) mark#(U111(X, Y, Z)) >? mark#(X) mark#(U112(X, Y, Z)) >? a!6220!6220U112#(mark(X), Y, Z) mark#(U112(X, Y, Z)) >? mark#(X) mark#(U113(X, Y, Z)) >? a!6220!6220U113#(mark(X), Y, Z) mark#(U113(X, Y, Z)) >? mark#(X) mark#(U114(X, Y)) >? a!6220!6220U114#(mark(X), Y) mark#(U114(X, Y)) >? mark#(X) mark#(length(X)) >? a!6220!6220length#(mark(X)) mark#(length(X)) >? mark#(X) mark#(U13(X)) >? mark#(X) mark#(U121(X, Y)) >? mark#(X) mark#(U122(X)) >? mark#(X) mark#(U131(X, Y, Z, U)) >? a!6220!6220U131#(mark(X), Y, Z, U) mark#(U131(X, Y, Z, U)) >? mark#(X) mark#(U132(X, Y, Z, U)) >? a!6220!6220U132#(mark(X), Y, Z, U) mark#(U132(X, Y, Z, U)) >? mark#(X) mark#(U133(X, Y, Z, U)) >? a!6220!6220U133#(mark(X), Y, Z, U) mark#(U133(X, Y, Z, U)) >? mark#(X) mark#(U134(X, Y, Z, U)) >? a!6220!6220U134#(mark(X), Y, Z, U) mark#(U134(X, Y, Z, U)) >? mark#(X) mark#(U135(X, Y, Z, U)) >? a!6220!6220U135#(mark(X), Y, Z, U) mark#(U135(X, Y, Z, U)) >? mark#(X) mark#(U136(X, Y, Z, U)) >? a!6220!6220U136#(mark(X), Y, Z, U) mark#(U136(X, Y, Z, U)) >? mark#(X) mark#(take(X, Y)) >? a!6220!6220take#(mark(X), mark(Y)) mark#(take(X, Y)) >? mark#(X) mark#(take(X, Y)) >? mark#(Y) mark#(U21(X, Y)) >? mark#(X) mark#(U22(X, Y)) >? mark#(X) mark#(U23(X)) >? mark#(X) mark#(U31(X, Y)) >? mark#(X) mark#(U32(X, Y)) >? mark#(X) mark#(U33(X)) >? mark#(X) mark#(U41(X, Y, Z)) >? mark#(X) mark#(U42(X, Y, Z)) >? mark#(X) mark#(U43(X, Y, Z)) >? mark#(X) mark#(U44(X, Y, Z)) >? mark#(X) mark#(U45(X, Y)) >? mark#(X) mark#(U46(X)) >? mark#(X) mark#(U51(X, Y)) >? mark#(X) mark#(U52(X)) >? mark#(X) mark#(U61(X, Y)) >? mark#(X) mark#(U62(X)) >? mark#(X) mark#(U71(X)) >? mark#(X) mark#(U81(X)) >? mark#(X) mark#(U91(X, Y, Z)) >? mark#(X) mark#(U92(X, Y, Z)) >? mark#(X) mark#(U93(X, Y, Z)) >? mark#(X) mark#(U94(X, Y, Z)) >? mark#(X) mark#(U95(X, Y)) >? mark#(X) mark#(U96(X)) >? mark#(X) mark#(cons(X, Y)) >? mark#(X) mark#(s(X)) >? mark#(X) a!6220!6220zeros >= cons(0, zeros) a!6220!6220U101(tt, X, Y) >= a!6220!6220U102(a!6220!6220isNatKind(X), X, Y) a!6220!6220U102(tt, X, Y) >= a!6220!6220U103(a!6220!6220isNatIListKind(Y), X, Y) a!6220!6220U103(tt, X, Y) >= a!6220!6220U104(a!6220!6220isNatIListKind(Y), X, Y) a!6220!6220U104(tt, X, Y) >= a!6220!6220U105(a!6220!6220isNat(X), Y) a!6220!6220U105(tt, X) >= a!6220!6220U106(a!6220!6220isNatIList(X)) a!6220!6220U106(tt) >= tt a!6220!6220U11(tt, X) >= a!6220!6220U12(a!6220!6220isNatIListKind(X), X) a!6220!6220U111(tt, X, Y) >= a!6220!6220U112(a!6220!6220isNatIListKind(X), X, Y) a!6220!6220U112(tt, X, Y) >= a!6220!6220U113(a!6220!6220isNat(Y), X, Y) a!6220!6220U113(tt, X, Y) >= a!6220!6220U114(a!6220!6220isNatKind(Y), X) a!6220!6220U114(tt, X) >= s(a!6220!6220length(mark(X))) a!6220!6220U12(tt, X) >= a!6220!6220U13(a!6220!6220isNatList(X)) a!6220!6220U121(tt, X) >= a!6220!6220U122(a!6220!6220isNatIListKind(X)) a!6220!6220U122(tt) >= nil a!6220!6220U13(tt) >= tt a!6220!6220U131(tt, X, Y, Z) >= a!6220!6220U132(a!6220!6220isNatIListKind(X), X, Y, Z) a!6220!6220U132(tt, X, Y, Z) >= a!6220!6220U133(a!6220!6220isNat(Y), X, Y, Z) a!6220!6220U133(tt, X, Y, Z) >= a!6220!6220U134(a!6220!6220isNatKind(Y), X, Y, Z) a!6220!6220U134(tt, X, Y, Z) >= a!6220!6220U135(a!6220!6220isNat(Z), X, Y, Z) a!6220!6220U135(tt, X, Y, Z) >= a!6220!6220U136(a!6220!6220isNatKind(Z), X, Y, Z) a!6220!6220U136(tt, X, Y, Z) >= cons(mark(Z), take(Y, X)) a!6220!6220U21(tt, X) >= a!6220!6220U22(a!6220!6220isNatKind(X), X) a!6220!6220U22(tt, X) >= a!6220!6220U23(a!6220!6220isNat(X)) a!6220!6220U23(tt) >= tt a!6220!6220U31(tt, X) >= a!6220!6220U32(a!6220!6220isNatIListKind(X), X) a!6220!6220U32(tt, X) >= a!6220!6220U33(a!6220!6220isNatList(X)) a!6220!6220U33(tt) >= tt a!6220!6220U41(tt, X, Y) >= a!6220!6220U42(a!6220!6220isNatKind(X), X, Y) a!6220!6220U42(tt, X, Y) >= a!6220!6220U43(a!6220!6220isNatIListKind(Y), X, Y) a!6220!6220U43(tt, X, Y) >= a!6220!6220U44(a!6220!6220isNatIListKind(Y), X, Y) a!6220!6220U44(tt, X, Y) >= a!6220!6220U45(a!6220!6220isNat(X), Y) a!6220!6220U45(tt, X) >= a!6220!6220U46(a!6220!6220isNatIList(X)) a!6220!6220U46(tt) >= tt a!6220!6220U51(tt, X) >= a!6220!6220U52(a!6220!6220isNatIListKind(X)) a!6220!6220U52(tt) >= tt a!6220!6220U61(tt, X) >= a!6220!6220U62(a!6220!6220isNatIListKind(X)) a!6220!6220U62(tt) >= tt a!6220!6220U71(tt) >= tt a!6220!6220U81(tt) >= tt a!6220!6220U91(tt, X, Y) >= a!6220!6220U92(a!6220!6220isNatKind(X), X, Y) a!6220!6220U92(tt, X, Y) >= a!6220!6220U93(a!6220!6220isNatIListKind(Y), X, Y) a!6220!6220U93(tt, X, Y) >= a!6220!6220U94(a!6220!6220isNatIListKind(Y), X, Y) a!6220!6220U94(tt, X, Y) >= a!6220!6220U95(a!6220!6220isNat(X), Y) a!6220!6220U95(tt, X) >= a!6220!6220U96(a!6220!6220isNatList(X)) a!6220!6220U96(tt) >= tt a!6220!6220isNat(0) >= tt a!6220!6220isNat(length(X)) >= a!6220!6220U11(a!6220!6220isNatIListKind(X), X) a!6220!6220isNat(s(X)) >= a!6220!6220U21(a!6220!6220isNatKind(X), X) a!6220!6220isNatIList(X) >= a!6220!6220U31(a!6220!6220isNatIListKind(X), X) a!6220!6220isNatIList(zeros) >= tt a!6220!6220isNatIList(cons(X, Y)) >= a!6220!6220U41(a!6220!6220isNatKind(X), X, Y) a!6220!6220isNatIListKind(nil) >= tt a!6220!6220isNatIListKind(zeros) >= tt a!6220!6220isNatIListKind(cons(X, Y)) >= a!6220!6220U51(a!6220!6220isNatKind(X), Y) a!6220!6220isNatIListKind(take(X, Y)) >= a!6220!6220U61(a!6220!6220isNatKind(X), Y) a!6220!6220isNatKind(0) >= tt a!6220!6220isNatKind(length(X)) >= a!6220!6220U71(a!6220!6220isNatIListKind(X)) a!6220!6220isNatKind(s(X)) >= a!6220!6220U81(a!6220!6220isNatKind(X)) a!6220!6220isNatList(nil) >= tt a!6220!6220isNatList(cons(X, Y)) >= a!6220!6220U91(a!6220!6220isNatKind(X), X, Y) a!6220!6220isNatList(take(X, Y)) >= a!6220!6220U101(a!6220!6220isNatKind(X), X, Y) a!6220!6220length(nil) >= 0 a!6220!6220length(cons(X, Y)) >= a!6220!6220U111(a!6220!6220isNatList(Y), Y, X) a!6220!6220take(0, X) >= a!6220!6220U121(a!6220!6220isNatIList(X), X) a!6220!6220take(s(X), cons(Y, Z)) >= a!6220!6220U131(a!6220!6220isNatIList(Z), Z, X, Y) mark(zeros) >= a!6220!6220zeros mark(U101(X, Y, Z)) >= a!6220!6220U101(mark(X), Y, Z) mark(U102(X, Y, Z)) >= a!6220!6220U102(mark(X), Y, Z) mark(isNatKind(X)) >= a!6220!6220isNatKind(X) mark(U103(X, Y, Z)) >= a!6220!6220U103(mark(X), Y, Z) mark(isNatIListKind(X)) >= a!6220!6220isNatIListKind(X) mark(U104(X, Y, Z)) >= a!6220!6220U104(mark(X), Y, Z) mark(U105(X, Y)) >= a!6220!6220U105(mark(X), Y) mark(isNat(X)) >= a!6220!6220isNat(X) mark(U106(X)) >= a!6220!6220U106(mark(X)) mark(isNatIList(X)) >= a!6220!6220isNatIList(X) mark(U11(X, Y)) >= a!6220!6220U11(mark(X), Y) mark(U12(X, Y)) >= a!6220!6220U12(mark(X), Y) mark(U111(X, Y, Z)) >= a!6220!6220U111(mark(X), Y, Z) mark(U112(X, Y, Z)) >= a!6220!6220U112(mark(X), Y, Z) mark(U113(X, Y, Z)) >= a!6220!6220U113(mark(X), Y, Z) mark(U114(X, Y)) >= a!6220!6220U114(mark(X), Y) mark(length(X)) >= a!6220!6220length(mark(X)) mark(U13(X)) >= a!6220!6220U13(mark(X)) mark(isNatList(X)) >= a!6220!6220isNatList(X) mark(U121(X, Y)) >= a!6220!6220U121(mark(X), Y) mark(U122(X)) >= a!6220!6220U122(mark(X)) mark(U131(X, Y, Z, U)) >= a!6220!6220U131(mark(X), Y, Z, U) mark(U132(X, Y, Z, U)) >= a!6220!6220U132(mark(X), Y, Z, U) mark(U133(X, Y, Z, U)) >= a!6220!6220U133(mark(X), Y, Z, U) mark(U134(X, Y, Z, U)) >= a!6220!6220U134(mark(X), Y, Z, U) mark(U135(X, Y, Z, U)) >= a!6220!6220U135(mark(X), Y, Z, U) mark(U136(X, Y, Z, U)) >= a!6220!6220U136(mark(X), Y, Z, U) mark(take(X, Y)) >= a!6220!6220take(mark(X), mark(Y)) mark(U21(X, Y)) >= a!6220!6220U21(mark(X), Y) mark(U22(X, Y)) >= a!6220!6220U22(mark(X), Y) mark(U23(X)) >= a!6220!6220U23(mark(X)) mark(U31(X, Y)) >= a!6220!6220U31(mark(X), Y) mark(U32(X, Y)) >= a!6220!6220U32(mark(X), Y) mark(U33(X)) >= a!6220!6220U33(mark(X)) mark(U41(X, Y, Z)) >= a!6220!6220U41(mark(X), Y, Z) mark(U42(X, Y, Z)) >= a!6220!6220U42(mark(X), Y, Z) mark(U43(X, Y, Z)) >= a!6220!6220U43(mark(X), Y, Z) mark(U44(X, Y, Z)) >= a!6220!6220U44(mark(X), Y, Z) mark(U45(X, Y)) >= a!6220!6220U45(mark(X), Y) mark(U46(X)) >= a!6220!6220U46(mark(X)) mark(U51(X, Y)) >= a!6220!6220U51(mark(X), Y) mark(U52(X)) >= a!6220!6220U52(mark(X)) mark(U61(X, Y)) >= a!6220!6220U61(mark(X), Y) mark(U62(X)) >= a!6220!6220U62(mark(X)) mark(U71(X)) >= a!6220!6220U71(mark(X)) mark(U81(X)) >= a!6220!6220U81(mark(X)) mark(U91(X, Y, Z)) >= a!6220!6220U91(mark(X), Y, Z) mark(U92(X, Y, Z)) >= a!6220!6220U92(mark(X), Y, Z) mark(U93(X, Y, Z)) >= a!6220!6220U93(mark(X), Y, Z) mark(U94(X, Y, Z)) >= a!6220!6220U94(mark(X), Y, Z) mark(U95(X, Y)) >= a!6220!6220U95(mark(X), Y) mark(U96(X)) >= a!6220!6220U96(mark(X)) mark(cons(X, Y)) >= cons(mark(X), Y) mark(0) >= 0 mark(tt) >= tt mark(s(X)) >= s(mark(X)) mark(nil) >= nil a!6220!6220zeros >= zeros a!6220!6220U101(X, Y, Z) >= U101(X, Y, Z) a!6220!6220U102(X, Y, Z) >= U102(X, Y, Z) a!6220!6220isNatKind(X) >= isNatKind(X) a!6220!6220U103(X, Y, Z) >= U103(X, Y, Z) a!6220!6220isNatIListKind(X) >= isNatIListKind(X) a!6220!6220U104(X, Y, Z) >= U104(X, Y, Z) a!6220!6220U105(X, Y) >= U105(X, Y) a!6220!6220isNat(X) >= isNat(X) a!6220!6220U106(X) >= U106(X) a!6220!6220isNatIList(X) >= isNatIList(X) a!6220!6220U11(X, Y) >= U11(X, Y) a!6220!6220U12(X, Y) >= U12(X, Y) a!6220!6220U111(X, Y, Z) >= U111(X, Y, Z) a!6220!6220U112(X, Y, Z) >= U112(X, Y, Z) a!6220!6220U113(X, Y, Z) >= U113(X, Y, Z) a!6220!6220U114(X, Y) >= U114(X, Y) a!6220!6220length(X) >= length(X) a!6220!6220U13(X) >= U13(X) a!6220!6220isNatList(X) >= isNatList(X) a!6220!6220U121(X, Y) >= U121(X, Y) a!6220!6220U122(X) >= U122(X) a!6220!6220U131(X, Y, Z, U) >= U131(X, Y, Z, U) a!6220!6220U132(X, Y, Z, U) >= U132(X, Y, Z, U) a!6220!6220U133(X, Y, Z, U) >= U133(X, Y, Z, U) a!6220!6220U134(X, Y, Z, U) >= U134(X, Y, Z, U) a!6220!6220U135(X, Y, Z, U) >= U135(X, Y, Z, U) a!6220!6220U136(X, Y, Z, U) >= U136(X, Y, Z, U) a!6220!6220take(X, Y) >= take(X, Y) a!6220!6220U21(X, Y) >= U21(X, Y) a!6220!6220U22(X, Y) >= U22(X, Y) a!6220!6220U23(X) >= U23(X) a!6220!6220U31(X, Y) >= U31(X, Y) a!6220!6220U32(X, Y) >= U32(X, Y) a!6220!6220U33(X) >= U33(X) a!6220!6220U41(X, Y, Z) >= U41(X, Y, Z) a!6220!6220U42(X, Y, Z) >= U42(X, Y, Z) a!6220!6220U43(X, Y, Z) >= U43(X, Y, Z) a!6220!6220U44(X, Y, Z) >= U44(X, Y, Z) a!6220!6220U45(X, Y) >= U45(X, Y) a!6220!6220U46(X) >= U46(X) a!6220!6220U51(X, Y) >= U51(X, Y) a!6220!6220U52(X) >= U52(X) a!6220!6220U61(X, Y) >= U61(X, Y) a!6220!6220U62(X) >= U62(X) a!6220!6220U71(X) >= U71(X) a!6220!6220U81(X) >= U81(X) a!6220!6220U91(X, Y, Z) >= U91(X, Y, Z) a!6220!6220U92(X, Y, Z) >= U92(X, Y, Z) a!6220!6220U93(X, Y, Z) >= U93(X, Y, Z) a!6220!6220U94(X, Y, Z) >= U94(X, Y, Z) a!6220!6220U95(X, Y) >= U95(X, Y) a!6220!6220U96(X) >= U96(X) We orient these requirements with a polynomial interpretation in the natural numbers. The following interpretation satisfies the requirements: 0 = 0 U101 = \y0y1y2.2y0 U102 = \y0y1y2.2y0 U103 = \y0y1y2.2y0 U104 = \y0y1y2.2y0 U105 = \y0y1.2y0 U106 = \y0.y0 U11 = \y0y1.y0 U111 = \y0y1y2.2 + y0 + y1 U112 = \y0y1y2.2 + y0 + y1 U113 = \y0y1y2.2 + y0 + y1 U114 = \y0y1.2 + y0 + y1 U12 = \y0y1.y0 U121 = \y0y1.y0 + 2y1 U122 = \y0.y0 U13 = \y0.y0 U131 = \y0y1y2y3.y2 + 2y0 + 2y1 + 2y3 U132 = \y0y1y2y3.y0 + y2 + 2y1 + 2y3 U133 = \y0y1y2y3.y0 + y2 + 2y1 + 2y3 U134 = \y0y1y2y3.y0 + y2 + 2y1 + 2y3 U135 = \y0y1y2y3.y2 + 2y0 + 2y1 + 2y3 U136 = \y0y1y2y3.y0 + y2 + y3 + 2y1 U21 = \y0y1.y0 U22 = \y0y1.y0 U23 = \y0.2y0 U31 = \y0y1.y0 U32 = \y0y1.y0 U33 = \y0.y0 U41 = \y0y1y2.y0 U42 = \y0y1y2.y0 U43 = \y0y1y2.y0 U44 = \y0y1y2.y0 U45 = \y0y1.y0 U46 = \y0.2y0 U51 = \y0y1.2y0 U52 = \y0.y0 U61 = \y0y1.2y0 U62 = \y0.y0 U71 = \y0.y0 U81 = \y0.y0 U91 = \y0y1y2.2y0 U92 = \y0y1y2.y0 U93 = \y0y1y2.2y0 U94 = \y0y1y2.y0 U95 = \y0y1.y0 U96 = \y0.y0 a!6220!6220U101 = \y0y1y2.2y0 a!6220!6220U102 = \y0y1y2.2y0 a!6220!6220U103 = \y0y1y2.2y0 a!6220!6220U104 = \y0y1y2.2y0 a!6220!6220U105 = \y0y1.2y0 a!6220!6220U106 = \y0.y0 a!6220!6220U11 = \y0y1.y0 a!6220!6220U111 = \y0y1y2.2 + y0 + y1 a!6220!6220U111# = \y0y1y2.y1 a!6220!6220U112 = \y0y1y2.2 + y0 + y1 a!6220!6220U112# = \y0y1y2.y1 a!6220!6220U113 = \y0y1y2.2 + y0 + y1 a!6220!6220U113# = \y0y1y2.y1 a!6220!6220U114 = \y0y1.2 + y0 + y1 a!6220!6220U114# = \y0y1.y1 a!6220!6220U12 = \y0y1.y0 a!6220!6220U121 = \y0y1.y0 + 2y1 a!6220!6220U122 = \y0.y0 a!6220!6220U13 = \y0.y0 a!6220!6220U131 = \y0y1y2y3.y2 + 2y0 + 2y1 + 2y3 a!6220!6220U131# = \y0y1y2y3.y3 a!6220!6220U132 = \y0y1y2y3.y0 + y2 + 2y1 + 2y3 a!6220!6220U132# = \y0y1y2y3.y3 a!6220!6220U133 = \y0y1y2y3.y0 + y2 + 2y1 + 2y3 a!6220!6220U133# = \y0y1y2y3.y3 a!6220!6220U134 = \y0y1y2y3.y0 + y2 + 2y1 + 2y3 a!6220!6220U134# = \y0y1y2y3.y3 a!6220!6220U135 = \y0y1y2y3.y2 + 2y0 + 2y1 + 2y3 a!6220!6220U135# = \y0y1y2y3.y3 a!6220!6220U136 = \y0y1y2y3.y0 + y2 + y3 + 2y1 a!6220!6220U136# = \y0y1y2y3.y3 a!6220!6220U21 = \y0y1.y0 a!6220!6220U22 = \y0y1.y0 a!6220!6220U23 = \y0.2y0 a!6220!6220U31 = \y0y1.y0 a!6220!6220U32 = \y0y1.y0 a!6220!6220U33 = \y0.y0 a!6220!6220U41 = \y0y1y2.y0 a!6220!6220U42 = \y0y1y2.y0 a!6220!6220U43 = \y0y1y2.y0 a!6220!6220U44 = \y0y1y2.y0 a!6220!6220U45 = \y0y1.y0 a!6220!6220U46 = \y0.2y0 a!6220!6220U51 = \y0y1.2y0 a!6220!6220U52 = \y0.y0 a!6220!6220U61 = \y0y1.2y0 a!6220!6220U62 = \y0.y0 a!6220!6220U71 = \y0.y0 a!6220!6220U81 = \y0.y0 a!6220!6220U91 = \y0y1y2.2y0 a!6220!6220U92 = \y0y1y2.y0 a!6220!6220U93 = \y0y1y2.2y0 a!6220!6220U94 = \y0y1y2.y0 a!6220!6220U95 = \y0y1.y0 a!6220!6220U96 = \y0.y0 a!6220!6220isNat = \y0.0 a!6220!6220isNatIList = \y0.0 a!6220!6220isNatIListKind = \y0.0 a!6220!6220isNatKind = \y0.0 a!6220!6220isNatList = \y0.0 a!6220!6220length = \y0.2 + y0 a!6220!6220length# = \y0.y0 a!6220!6220take = \y0y1.y0 + 2y1 a!6220!6220take# = \y0y1.y1 a!6220!6220zeros = 0 cons = \y0y1.y0 + y1 isNat = \y0.0 isNatIList = \y0.0 isNatIListKind = \y0.0 isNatKind = \y0.0 isNatList = \y0.0 length = \y0.2 + y0 mark = \y0.y0 mark# = \y0.y0 nil = 0 s = \y0.y0 take = \y0y1.y0 + 2y1 tt = 0 zeros = 0 Using this interpretation, the requirements translate to: [[a!6220!6220U111#(tt, _x0, _x1)]] = x0 >= x0 = [[a!6220!6220U112#(a!6220!6220isNatIListKind(_x0), _x0, _x1)]] [[a!6220!6220U112#(tt, _x0, _x1)]] = x0 >= x0 = [[a!6220!6220U113#(a!6220!6220isNat(_x1), _x0, _x1)]] [[a!6220!6220U113#(tt, _x0, _x1)]] = x0 >= x0 = [[a!6220!6220U114#(a!6220!6220isNatKind(_x1), _x0)]] [[a!6220!6220U114#(tt, _x0)]] = x0 >= x0 = [[a!6220!6220length#(mark(_x0))]] [[a!6220!6220U114#(tt, _x0)]] = x0 >= x0 = [[mark#(_x0)]] [[a!6220!6220U131#(tt, _x0, _x1, _x2)]] = x2 >= x2 = [[a!6220!6220U132#(a!6220!6220isNatIListKind(_x0), _x0, _x1, _x2)]] [[a!6220!6220U132#(tt, _x0, _x1, _x2)]] = x2 >= x2 = [[a!6220!6220U133#(a!6220!6220isNat(_x1), _x0, _x1, _x2)]] [[a!6220!6220U133#(tt, _x0, _x1, _x2)]] = x2 >= x2 = [[a!6220!6220U134#(a!6220!6220isNatKind(_x1), _x0, _x1, _x2)]] [[a!6220!6220U134#(tt, _x0, _x1, _x2)]] = x2 >= x2 = [[a!6220!6220U135#(a!6220!6220isNat(_x2), _x0, _x1, _x2)]] [[a!6220!6220U135#(tt, _x0, _x1, _x2)]] = x2 >= x2 = [[a!6220!6220U136#(a!6220!6220isNatKind(_x2), _x0, _x1, _x2)]] [[a!6220!6220U136#(tt, _x0, _x1, _x2)]] = x2 >= x2 = [[mark#(_x2)]] [[a!6220!6220length#(cons(_x0, _x1))]] = x0 + x1 >= x1 = [[a!6220!6220U111#(a!6220!6220isNatList(_x1), _x1, _x0)]] [[a!6220!6220take#(s(_x0), cons(_x1, _x2))]] = x1 + x2 >= x1 = [[a!6220!6220U131#(a!6220!6220isNatIList(_x2), _x2, _x0, _x1)]] [[mark#(U101(_x0, _x1, _x2))]] = 2x0 >= x0 = [[mark#(_x0)]] [[mark#(U102(_x0, _x1, _x2))]] = 2x0 >= x0 = [[mark#(_x0)]] [[mark#(U103(_x0, _x1, _x2))]] = 2x0 >= x0 = [[mark#(_x0)]] [[mark#(U104(_x0, _x1, _x2))]] = 2x0 >= x0 = [[mark#(_x0)]] [[mark#(U105(_x0, _x1))]] = 2x0 >= x0 = [[mark#(_x0)]] [[mark#(U106(_x0))]] = x0 >= x0 = [[mark#(_x0)]] [[mark#(U11(_x0, _x1))]] = x0 >= x0 = [[mark#(_x0)]] [[mark#(U12(_x0, _x1))]] = x0 >= x0 = [[mark#(_x0)]] [[mark#(U111(_x0, _x1, _x2))]] = 2 + x0 + x1 > x1 = [[a!6220!6220U111#(mark(_x0), _x1, _x2)]] [[mark#(U111(_x0, _x1, _x2))]] = 2 + x0 + x1 > x0 = [[mark#(_x0)]] [[mark#(U112(_x0, _x1, _x2))]] = 2 + x0 + x1 > x1 = [[a!6220!6220U112#(mark(_x0), _x1, _x2)]] [[mark#(U112(_x0, _x1, _x2))]] = 2 + x0 + x1 > x0 = [[mark#(_x0)]] [[mark#(U113(_x0, _x1, _x2))]] = 2 + x0 + x1 > x1 = [[a!6220!6220U113#(mark(_x0), _x1, _x2)]] [[mark#(U113(_x0, _x1, _x2))]] = 2 + x0 + x1 > x0 = [[mark#(_x0)]] [[mark#(U114(_x0, _x1))]] = 2 + x0 + x1 > x1 = [[a!6220!6220U114#(mark(_x0), _x1)]] [[mark#(U114(_x0, _x1))]] = 2 + x0 + x1 > x0 = [[mark#(_x0)]] [[mark#(length(_x0))]] = 2 + x0 > x0 = [[a!6220!6220length#(mark(_x0))]] [[mark#(length(_x0))]] = 2 + x0 > x0 = [[mark#(_x0)]] [[mark#(U13(_x0))]] = x0 >= x0 = [[mark#(_x0)]] [[mark#(U121(_x0, _x1))]] = x0 + 2x1 >= x0 = [[mark#(_x0)]] [[mark#(U122(_x0))]] = x0 >= x0 = [[mark#(_x0)]] [[mark#(U131(_x0, _x1, _x2, _x3))]] = x2 + 2x0 + 2x1 + 2x3 >= x3 = [[a!6220!6220U131#(mark(_x0), _x1, _x2, _x3)]] [[mark#(U131(_x0, _x1, _x2, _x3))]] = x2 + 2x0 + 2x1 + 2x3 >= x0 = [[mark#(_x0)]] [[mark#(U132(_x0, _x1, _x2, _x3))]] = x0 + x2 + 2x1 + 2x3 >= x3 = [[a!6220!6220U132#(mark(_x0), _x1, _x2, _x3)]] [[mark#(U132(_x0, _x1, _x2, _x3))]] = x0 + x2 + 2x1 + 2x3 >= x0 = [[mark#(_x0)]] [[mark#(U133(_x0, _x1, _x2, _x3))]] = x0 + x2 + 2x1 + 2x3 >= x3 = [[a!6220!6220U133#(mark(_x0), _x1, _x2, _x3)]] [[mark#(U133(_x0, _x1, _x2, _x3))]] = x0 + x2 + 2x1 + 2x3 >= x0 = [[mark#(_x0)]] [[mark#(U134(_x0, _x1, _x2, _x3))]] = x0 + x2 + 2x1 + 2x3 >= x3 = [[a!6220!6220U134#(mark(_x0), _x1, _x2, _x3)]] [[mark#(U134(_x0, _x1, _x2, _x3))]] = x0 + x2 + 2x1 + 2x3 >= x0 = [[mark#(_x0)]] [[mark#(U135(_x0, _x1, _x2, _x3))]] = x2 + 2x0 + 2x1 + 2x3 >= x3 = [[a!6220!6220U135#(mark(_x0), _x1, _x2, _x3)]] [[mark#(U135(_x0, _x1, _x2, _x3))]] = x2 + 2x0 + 2x1 + 2x3 >= x0 = [[mark#(_x0)]] [[mark#(U136(_x0, _x1, _x2, _x3))]] = x0 + x2 + x3 + 2x1 >= x3 = [[a!6220!6220U136#(mark(_x0), _x1, _x2, _x3)]] [[mark#(U136(_x0, _x1, _x2, _x3))]] = x0 + x2 + x3 + 2x1 >= x0 = [[mark#(_x0)]] [[mark#(take(_x0, _x1))]] = x0 + 2x1 >= x1 = [[a!6220!6220take#(mark(_x0), mark(_x1))]] [[mark#(take(_x0, _x1))]] = x0 + 2x1 >= x0 = [[mark#(_x0)]] [[mark#(take(_x0, _x1))]] = x0 + 2x1 >= x1 = [[mark#(_x1)]] [[mark#(U21(_x0, _x1))]] = x0 >= x0 = [[mark#(_x0)]] [[mark#(U22(_x0, _x1))]] = x0 >= x0 = [[mark#(_x0)]] [[mark#(U23(_x0))]] = 2x0 >= x0 = [[mark#(_x0)]] [[mark#(U31(_x0, _x1))]] = x0 >= x0 = [[mark#(_x0)]] [[mark#(U32(_x0, _x1))]] = x0 >= x0 = [[mark#(_x0)]] [[mark#(U33(_x0))]] = x0 >= x0 = [[mark#(_x0)]] [[mark#(U41(_x0, _x1, _x2))]] = x0 >= x0 = [[mark#(_x0)]] [[mark#(U42(_x0, _x1, _x2))]] = x0 >= x0 = [[mark#(_x0)]] [[mark#(U43(_x0, _x1, _x2))]] = x0 >= x0 = [[mark#(_x0)]] [[mark#(U44(_x0, _x1, _x2))]] = x0 >= x0 = [[mark#(_x0)]] [[mark#(U45(_x0, _x1))]] = x0 >= x0 = [[mark#(_x0)]] [[mark#(U46(_x0))]] = 2x0 >= x0 = [[mark#(_x0)]] [[mark#(U51(_x0, _x1))]] = 2x0 >= x0 = [[mark#(_x0)]] [[mark#(U52(_x0))]] = x0 >= x0 = [[mark#(_x0)]] [[mark#(U61(_x0, _x1))]] = 2x0 >= x0 = [[mark#(_x0)]] [[mark#(U62(_x0))]] = x0 >= x0 = [[mark#(_x0)]] [[mark#(U71(_x0))]] = x0 >= x0 = [[mark#(_x0)]] [[mark#(U81(_x0))]] = x0 >= x0 = [[mark#(_x0)]] [[mark#(U91(_x0, _x1, _x2))]] = 2x0 >= x0 = [[mark#(_x0)]] [[mark#(U92(_x0, _x1, _x2))]] = x0 >= x0 = [[mark#(_x0)]] [[mark#(U93(_x0, _x1, _x2))]] = 2x0 >= x0 = [[mark#(_x0)]] [[mark#(U94(_x0, _x1, _x2))]] = x0 >= x0 = [[mark#(_x0)]] [[mark#(U95(_x0, _x1))]] = x0 >= x0 = [[mark#(_x0)]] [[mark#(U96(_x0))]] = x0 >= x0 = [[mark#(_x0)]] [[mark#(cons(_x0, _x1))]] = x0 + x1 >= x0 = [[mark#(_x0)]] [[mark#(s(_x0))]] = x0 >= x0 = [[mark#(_x0)]] [[a!6220!6220zeros]] = 0 >= 0 = [[cons(0, zeros)]] [[a!6220!6220U101(tt, _x0, _x1)]] = 0 >= 0 = [[a!6220!6220U102(a!6220!6220isNatKind(_x0), _x0, _x1)]] [[a!6220!6220U102(tt, _x0, _x1)]] = 0 >= 0 = [[a!6220!6220U103(a!6220!6220isNatIListKind(_x1), _x0, _x1)]] [[a!6220!6220U103(tt, _x0, _x1)]] = 0 >= 0 = [[a!6220!6220U104(a!6220!6220isNatIListKind(_x1), _x0, _x1)]] [[a!6220!6220U104(tt, _x0, _x1)]] = 0 >= 0 = [[a!6220!6220U105(a!6220!6220isNat(_x0), _x1)]] [[a!6220!6220U105(tt, _x0)]] = 0 >= 0 = [[a!6220!6220U106(a!6220!6220isNatIList(_x0))]] [[a!6220!6220U106(tt)]] = 0 >= 0 = [[tt]] [[a!6220!6220U11(tt, _x0)]] = 0 >= 0 = [[a!6220!6220U12(a!6220!6220isNatIListKind(_x0), _x0)]] [[a!6220!6220U111(tt, _x0, _x1)]] = 2 + x0 >= 2 + x0 = [[a!6220!6220U112(a!6220!6220isNatIListKind(_x0), _x0, _x1)]] [[a!6220!6220U112(tt, _x0, _x1)]] = 2 + x0 >= 2 + x0 = [[a!6220!6220U113(a!6220!6220isNat(_x1), _x0, _x1)]] [[a!6220!6220U113(tt, _x0, _x1)]] = 2 + x0 >= 2 + x0 = [[a!6220!6220U114(a!6220!6220isNatKind(_x1), _x0)]] [[a!6220!6220U114(tt, _x0)]] = 2 + x0 >= 2 + x0 = [[s(a!6220!6220length(mark(_x0)))]] [[a!6220!6220U12(tt, _x0)]] = 0 >= 0 = [[a!6220!6220U13(a!6220!6220isNatList(_x0))]] [[a!6220!6220U121(tt, _x0)]] = 2x0 >= 0 = [[a!6220!6220U122(a!6220!6220isNatIListKind(_x0))]] [[a!6220!6220U122(tt)]] = 0 >= 0 = [[nil]] [[a!6220!6220U13(tt)]] = 0 >= 0 = [[tt]] [[a!6220!6220U131(tt, _x0, _x1, _x2)]] = x1 + 2x0 + 2x2 >= x1 + 2x0 + 2x2 = [[a!6220!6220U132(a!6220!6220isNatIListKind(_x0), _x0, _x1, _x2)]] [[a!6220!6220U132(tt, _x0, _x1, _x2)]] = x1 + 2x0 + 2x2 >= x1 + 2x0 + 2x2 = [[a!6220!6220U133(a!6220!6220isNat(_x1), _x0, _x1, _x2)]] [[a!6220!6220U133(tt, _x0, _x1, _x2)]] = x1 + 2x0 + 2x2 >= x1 + 2x0 + 2x2 = [[a!6220!6220U134(a!6220!6220isNatKind(_x1), _x0, _x1, _x2)]] [[a!6220!6220U134(tt, _x0, _x1, _x2)]] = x1 + 2x0 + 2x2 >= x1 + 2x0 + 2x2 = [[a!6220!6220U135(a!6220!6220isNat(_x2), _x0, _x1, _x2)]] [[a!6220!6220U135(tt, _x0, _x1, _x2)]] = x1 + 2x0 + 2x2 >= x1 + x2 + 2x0 = [[a!6220!6220U136(a!6220!6220isNatKind(_x2), _x0, _x1, _x2)]] [[a!6220!6220U136(tt, _x0, _x1, _x2)]] = x1 + x2 + 2x0 >= x1 + x2 + 2x0 = [[cons(mark(_x2), take(_x1, _x0))]] [[a!6220!6220U21(tt, _x0)]] = 0 >= 0 = [[a!6220!6220U22(a!6220!6220isNatKind(_x0), _x0)]] [[a!6220!6220U22(tt, _x0)]] = 0 >= 0 = [[a!6220!6220U23(a!6220!6220isNat(_x0))]] [[a!6220!6220U23(tt)]] = 0 >= 0 = [[tt]] [[a!6220!6220U31(tt, _x0)]] = 0 >= 0 = [[a!6220!6220U32(a!6220!6220isNatIListKind(_x0), _x0)]] [[a!6220!6220U32(tt, _x0)]] = 0 >= 0 = [[a!6220!6220U33(a!6220!6220isNatList(_x0))]] [[a!6220!6220U33(tt)]] = 0 >= 0 = [[tt]] [[a!6220!6220U41(tt, _x0, _x1)]] = 0 >= 0 = [[a!6220!6220U42(a!6220!6220isNatKind(_x0), _x0, _x1)]] [[a!6220!6220U42(tt, _x0, _x1)]] = 0 >= 0 = [[a!6220!6220U43(a!6220!6220isNatIListKind(_x1), _x0, _x1)]] [[a!6220!6220U43(tt, _x0, _x1)]] = 0 >= 0 = [[a!6220!6220U44(a!6220!6220isNatIListKind(_x1), _x0, _x1)]] [[a!6220!6220U44(tt, _x0, _x1)]] = 0 >= 0 = [[a!6220!6220U45(a!6220!6220isNat(_x0), _x1)]] [[a!6220!6220U45(tt, _x0)]] = 0 >= 0 = [[a!6220!6220U46(a!6220!6220isNatIList(_x0))]] [[a!6220!6220U46(tt)]] = 0 >= 0 = [[tt]] [[a!6220!6220U51(tt, _x0)]] = 0 >= 0 = [[a!6220!6220U52(a!6220!6220isNatIListKind(_x0))]] [[a!6220!6220U52(tt)]] = 0 >= 0 = [[tt]] [[a!6220!6220U61(tt, _x0)]] = 0 >= 0 = [[a!6220!6220U62(a!6220!6220isNatIListKind(_x0))]] [[a!6220!6220U62(tt)]] = 0 >= 0 = [[tt]] [[a!6220!6220U71(tt)]] = 0 >= 0 = [[tt]] [[a!6220!6220U81(tt)]] = 0 >= 0 = [[tt]] [[a!6220!6220U91(tt, _x0, _x1)]] = 0 >= 0 = [[a!6220!6220U92(a!6220!6220isNatKind(_x0), _x0, _x1)]] [[a!6220!6220U92(tt, _x0, _x1)]] = 0 >= 0 = [[a!6220!6220U93(a!6220!6220isNatIListKind(_x1), _x0, _x1)]] [[a!6220!6220U93(tt, _x0, _x1)]] = 0 >= 0 = [[a!6220!6220U94(a!6220!6220isNatIListKind(_x1), _x0, _x1)]] [[a!6220!6220U94(tt, _x0, _x1)]] = 0 >= 0 = [[a!6220!6220U95(a!6220!6220isNat(_x0), _x1)]] [[a!6220!6220U95(tt, _x0)]] = 0 >= 0 = [[a!6220!6220U96(a!6220!6220isNatList(_x0))]] [[a!6220!6220U96(tt)]] = 0 >= 0 = [[tt]] [[a!6220!6220isNat(0)]] = 0 >= 0 = [[tt]] [[a!6220!6220isNat(length(_x0))]] = 0 >= 0 = [[a!6220!6220U11(a!6220!6220isNatIListKind(_x0), _x0)]] [[a!6220!6220isNat(s(_x0))]] = 0 >= 0 = [[a!6220!6220U21(a!6220!6220isNatKind(_x0), _x0)]] [[a!6220!6220isNatIList(_x0)]] = 0 >= 0 = [[a!6220!6220U31(a!6220!6220isNatIListKind(_x0), _x0)]] [[a!6220!6220isNatIList(zeros)]] = 0 >= 0 = [[tt]] [[a!6220!6220isNatIList(cons(_x0, _x1))]] = 0 >= 0 = [[a!6220!6220U41(a!6220!6220isNatKind(_x0), _x0, _x1)]] [[a!6220!6220isNatIListKind(nil)]] = 0 >= 0 = [[tt]] [[a!6220!6220isNatIListKind(zeros)]] = 0 >= 0 = [[tt]] [[a!6220!6220isNatIListKind(cons(_x0, _x1))]] = 0 >= 0 = [[a!6220!6220U51(a!6220!6220isNatKind(_x0), _x1)]] [[a!6220!6220isNatIListKind(take(_x0, _x1))]] = 0 >= 0 = [[a!6220!6220U61(a!6220!6220isNatKind(_x0), _x1)]] [[a!6220!6220isNatKind(0)]] = 0 >= 0 = [[tt]] [[a!6220!6220isNatKind(length(_x0))]] = 0 >= 0 = [[a!6220!6220U71(a!6220!6220isNatIListKind(_x0))]] [[a!6220!6220isNatKind(s(_x0))]] = 0 >= 0 = [[a!6220!6220U81(a!6220!6220isNatKind(_x0))]] [[a!6220!6220isNatList(nil)]] = 0 >= 0 = [[tt]] [[a!6220!6220isNatList(cons(_x0, _x1))]] = 0 >= 0 = [[a!6220!6220U91(a!6220!6220isNatKind(_x0), _x0, _x1)]] [[a!6220!6220isNatList(take(_x0, _x1))]] = 0 >= 0 = [[a!6220!6220U101(a!6220!6220isNatKind(_x0), _x0, _x1)]] [[a!6220!6220length(nil)]] = 2 >= 0 = [[0]] [[a!6220!6220length(cons(_x0, _x1))]] = 2 + x0 + x1 >= 2 + x1 = [[a!6220!6220U111(a!6220!6220isNatList(_x1), _x1, _x0)]] [[a!6220!6220take(0, _x0)]] = 2x0 >= 2x0 = [[a!6220!6220U121(a!6220!6220isNatIList(_x0), _x0)]] [[a!6220!6220take(s(_x0), cons(_x1, _x2))]] = x0 + 2x1 + 2x2 >= x0 + 2x1 + 2x2 = [[a!6220!6220U131(a!6220!6220isNatIList(_x2), _x2, _x0, _x1)]] [[mark(zeros)]] = 0 >= 0 = [[a!6220!6220zeros]] [[mark(U101(_x0, _x1, _x2))]] = 2x0 >= 2x0 = [[a!6220!6220U101(mark(_x0), _x1, _x2)]] [[mark(U102(_x0, _x1, _x2))]] = 2x0 >= 2x0 = [[a!6220!6220U102(mark(_x0), _x1, _x2)]] [[mark(isNatKind(_x0))]] = 0 >= 0 = [[a!6220!6220isNatKind(_x0)]] [[mark(U103(_x0, _x1, _x2))]] = 2x0 >= 2x0 = [[a!6220!6220U103(mark(_x0), _x1, _x2)]] [[mark(isNatIListKind(_x0))]] = 0 >= 0 = [[a!6220!6220isNatIListKind(_x0)]] [[mark(U104(_x0, _x1, _x2))]] = 2x0 >= 2x0 = [[a!6220!6220U104(mark(_x0), _x1, _x2)]] [[mark(U105(_x0, _x1))]] = 2x0 >= 2x0 = [[a!6220!6220U105(mark(_x0), _x1)]] [[mark(isNat(_x0))]] = 0 >= 0 = [[a!6220!6220isNat(_x0)]] [[mark(U106(_x0))]] = x0 >= x0 = [[a!6220!6220U106(mark(_x0))]] [[mark(isNatIList(_x0))]] = 0 >= 0 = [[a!6220!6220isNatIList(_x0)]] [[mark(U11(_x0, _x1))]] = x0 >= x0 = [[a!6220!6220U11(mark(_x0), _x1)]] [[mark(U12(_x0, _x1))]] = x0 >= x0 = [[a!6220!6220U12(mark(_x0), _x1)]] [[mark(U111(_x0, _x1, _x2))]] = 2 + x0 + x1 >= 2 + x0 + x1 = [[a!6220!6220U111(mark(_x0), _x1, _x2)]] [[mark(U112(_x0, _x1, _x2))]] = 2 + x0 + x1 >= 2 + x0 + x1 = [[a!6220!6220U112(mark(_x0), _x1, _x2)]] [[mark(U113(_x0, _x1, _x2))]] = 2 + x0 + x1 >= 2 + x0 + x1 = [[a!6220!6220U113(mark(_x0), _x1, _x2)]] [[mark(U114(_x0, _x1))]] = 2 + x0 + x1 >= 2 + x0 + x1 = [[a!6220!6220U114(mark(_x0), _x1)]] [[mark(length(_x0))]] = 2 + x0 >= 2 + x0 = [[a!6220!6220length(mark(_x0))]] [[mark(U13(_x0))]] = x0 >= x0 = [[a!6220!6220U13(mark(_x0))]] [[mark(isNatList(_x0))]] = 0 >= 0 = [[a!6220!6220isNatList(_x0)]] [[mark(U121(_x0, _x1))]] = x0 + 2x1 >= x0 + 2x1 = [[a!6220!6220U121(mark(_x0), _x1)]] [[mark(U122(_x0))]] = x0 >= x0 = [[a!6220!6220U122(mark(_x0))]] [[mark(U131(_x0, _x1, _x2, _x3))]] = x2 + 2x0 + 2x1 + 2x3 >= x2 + 2x0 + 2x1 + 2x3 = [[a!6220!6220U131(mark(_x0), _x1, _x2, _x3)]] [[mark(U132(_x0, _x1, _x2, _x3))]] = x0 + x2 + 2x1 + 2x3 >= x0 + x2 + 2x1 + 2x3 = [[a!6220!6220U132(mark(_x0), _x1, _x2, _x3)]] [[mark(U133(_x0, _x1, _x2, _x3))]] = x0 + x2 + 2x1 + 2x3 >= x0 + x2 + 2x1 + 2x3 = [[a!6220!6220U133(mark(_x0), _x1, _x2, _x3)]] [[mark(U134(_x0, _x1, _x2, _x3))]] = x0 + x2 + 2x1 + 2x3 >= x0 + x2 + 2x1 + 2x3 = [[a!6220!6220U134(mark(_x0), _x1, _x2, _x3)]] [[mark(U135(_x0, _x1, _x2, _x3))]] = x2 + 2x0 + 2x1 + 2x3 >= x2 + 2x0 + 2x1 + 2x3 = [[a!6220!6220U135(mark(_x0), _x1, _x2, _x3)]] [[mark(U136(_x0, _x1, _x2, _x3))]] = x0 + x2 + x3 + 2x1 >= x0 + x2 + x3 + 2x1 = [[a!6220!6220U136(mark(_x0), _x1, _x2, _x3)]] [[mark(take(_x0, _x1))]] = x0 + 2x1 >= x0 + 2x1 = [[a!6220!6220take(mark(_x0), mark(_x1))]] [[mark(U21(_x0, _x1))]] = x0 >= x0 = [[a!6220!6220U21(mark(_x0), _x1)]] [[mark(U22(_x0, _x1))]] = x0 >= x0 = [[a!6220!6220U22(mark(_x0), _x1)]] [[mark(U23(_x0))]] = 2x0 >= 2x0 = [[a!6220!6220U23(mark(_x0))]] [[mark(U31(_x0, _x1))]] = x0 >= x0 = [[a!6220!6220U31(mark(_x0), _x1)]] [[mark(U32(_x0, _x1))]] = x0 >= x0 = [[a!6220!6220U32(mark(_x0), _x1)]] [[mark(U33(_x0))]] = x0 >= x0 = [[a!6220!6220U33(mark(_x0))]] [[mark(U41(_x0, _x1, _x2))]] = x0 >= x0 = [[a!6220!6220U41(mark(_x0), _x1, _x2)]] [[mark(U42(_x0, _x1, _x2))]] = x0 >= x0 = [[a!6220!6220U42(mark(_x0), _x1, _x2)]] [[mark(U43(_x0, _x1, _x2))]] = x0 >= x0 = [[a!6220!6220U43(mark(_x0), _x1, _x2)]] [[mark(U44(_x0, _x1, _x2))]] = x0 >= x0 = [[a!6220!6220U44(mark(_x0), _x1, _x2)]] [[mark(U45(_x0, _x1))]] = x0 >= x0 = [[a!6220!6220U45(mark(_x0), _x1)]] [[mark(U46(_x0))]] = 2x0 >= 2x0 = [[a!6220!6220U46(mark(_x0))]] [[mark(U51(_x0, _x1))]] = 2x0 >= 2x0 = [[a!6220!6220U51(mark(_x0), _x1)]] [[mark(U52(_x0))]] = x0 >= x0 = [[a!6220!6220U52(mark(_x0))]] [[mark(U61(_x0, _x1))]] = 2x0 >= 2x0 = [[a!6220!6220U61(mark(_x0), _x1)]] [[mark(U62(_x0))]] = x0 >= x0 = [[a!6220!6220U62(mark(_x0))]] [[mark(U71(_x0))]] = x0 >= x0 = [[a!6220!6220U71(mark(_x0))]] [[mark(U81(_x0))]] = x0 >= x0 = [[a!6220!6220U81(mark(_x0))]] [[mark(U91(_x0, _x1, _x2))]] = 2x0 >= 2x0 = [[a!6220!6220U91(mark(_x0), _x1, _x2)]] [[mark(U92(_x0, _x1, _x2))]] = x0 >= x0 = [[a!6220!6220U92(mark(_x0), _x1, _x2)]] [[mark(U93(_x0, _x1, _x2))]] = 2x0 >= 2x0 = [[a!6220!6220U93(mark(_x0), _x1, _x2)]] [[mark(U94(_x0, _x1, _x2))]] = x0 >= x0 = [[a!6220!6220U94(mark(_x0), _x1, _x2)]] [[mark(U95(_x0, _x1))]] = x0 >= x0 = [[a!6220!6220U95(mark(_x0), _x1)]] [[mark(U96(_x0))]] = x0 >= x0 = [[a!6220!6220U96(mark(_x0))]] [[mark(cons(_x0, _x1))]] = x0 + x1 >= x0 + x1 = [[cons(mark(_x0), _x1)]] [[mark(0)]] = 0 >= 0 = [[0]] [[mark(tt)]] = 0 >= 0 = [[tt]] [[mark(s(_x0))]] = x0 >= x0 = [[s(mark(_x0))]] [[mark(nil)]] = 0 >= 0 = [[nil]] [[a!6220!6220zeros]] = 0 >= 0 = [[zeros]] [[a!6220!6220U101(_x0, _x1, _x2)]] = 2x0 >= 2x0 = [[U101(_x0, _x1, _x2)]] [[a!6220!6220U102(_x0, _x1, _x2)]] = 2x0 >= 2x0 = [[U102(_x0, _x1, _x2)]] [[a!6220!6220isNatKind(_x0)]] = 0 >= 0 = [[isNatKind(_x0)]] [[a!6220!6220U103(_x0, _x1, _x2)]] = 2x0 >= 2x0 = [[U103(_x0, _x1, _x2)]] [[a!6220!6220isNatIListKind(_x0)]] = 0 >= 0 = [[isNatIListKind(_x0)]] [[a!6220!6220U104(_x0, _x1, _x2)]] = 2x0 >= 2x0 = [[U104(_x0, _x1, _x2)]] [[a!6220!6220U105(_x0, _x1)]] = 2x0 >= 2x0 = [[U105(_x0, _x1)]] [[a!6220!6220isNat(_x0)]] = 0 >= 0 = [[isNat(_x0)]] [[a!6220!6220U106(_x0)]] = x0 >= x0 = [[U106(_x0)]] [[a!6220!6220isNatIList(_x0)]] = 0 >= 0 = [[isNatIList(_x0)]] [[a!6220!6220U11(_x0, _x1)]] = x0 >= x0 = [[U11(_x0, _x1)]] [[a!6220!6220U12(_x0, _x1)]] = x0 >= x0 = [[U12(_x0, _x1)]] [[a!6220!6220U111(_x0, _x1, _x2)]] = 2 + x0 + x1 >= 2 + x0 + x1 = [[U111(_x0, _x1, _x2)]] [[a!6220!6220U112(_x0, _x1, _x2)]] = 2 + x0 + x1 >= 2 + x0 + x1 = [[U112(_x0, _x1, _x2)]] [[a!6220!6220U113(_x0, _x1, _x2)]] = 2 + x0 + x1 >= 2 + x0 + x1 = [[U113(_x0, _x1, _x2)]] [[a!6220!6220U114(_x0, _x1)]] = 2 + x0 + x1 >= 2 + x0 + x1 = [[U114(_x0, _x1)]] [[a!6220!6220length(_x0)]] = 2 + x0 >= 2 + x0 = [[length(_x0)]] [[a!6220!6220U13(_x0)]] = x0 >= x0 = [[U13(_x0)]] [[a!6220!6220isNatList(_x0)]] = 0 >= 0 = [[isNatList(_x0)]] [[a!6220!6220U121(_x0, _x1)]] = x0 + 2x1 >= x0 + 2x1 = [[U121(_x0, _x1)]] [[a!6220!6220U122(_x0)]] = x0 >= x0 = [[U122(_x0)]] [[a!6220!6220U131(_x0, _x1, _x2, _x3)]] = x2 + 2x0 + 2x1 + 2x3 >= x2 + 2x0 + 2x1 + 2x3 = [[U131(_x0, _x1, _x2, _x3)]] [[a!6220!6220U132(_x0, _x1, _x2, _x3)]] = x0 + x2 + 2x1 + 2x3 >= x0 + x2 + 2x1 + 2x3 = [[U132(_x0, _x1, _x2, _x3)]] [[a!6220!6220U133(_x0, _x1, _x2, _x3)]] = x0 + x2 + 2x1 + 2x3 >= x0 + x2 + 2x1 + 2x3 = [[U133(_x0, _x1, _x2, _x3)]] [[a!6220!6220U134(_x0, _x1, _x2, _x3)]] = x0 + x2 + 2x1 + 2x3 >= x0 + x2 + 2x1 + 2x3 = [[U134(_x0, _x1, _x2, _x3)]] [[a!6220!6220U135(_x0, _x1, _x2, _x3)]] = x2 + 2x0 + 2x1 + 2x3 >= x2 + 2x0 + 2x1 + 2x3 = [[U135(_x0, _x1, _x2, _x3)]] [[a!6220!6220U136(_x0, _x1, _x2, _x3)]] = x0 + x2 + x3 + 2x1 >= x0 + x2 + x3 + 2x1 = [[U136(_x0, _x1, _x2, _x3)]] [[a!6220!6220take(_x0, _x1)]] = x0 + 2x1 >= x0 + 2x1 = [[take(_x0, _x1)]] [[a!6220!6220U21(_x0, _x1)]] = x0 >= x0 = [[U21(_x0, _x1)]] [[a!6220!6220U22(_x0, _x1)]] = x0 >= x0 = [[U22(_x0, _x1)]] [[a!6220!6220U23(_x0)]] = 2x0 >= 2x0 = [[U23(_x0)]] [[a!6220!6220U31(_x0, _x1)]] = x0 >= x0 = [[U31(_x0, _x1)]] [[a!6220!6220U32(_x0, _x1)]] = x0 >= x0 = [[U32(_x0, _x1)]] [[a!6220!6220U33(_x0)]] = x0 >= x0 = [[U33(_x0)]] [[a!6220!6220U41(_x0, _x1, _x2)]] = x0 >= x0 = [[U41(_x0, _x1, _x2)]] [[a!6220!6220U42(_x0, _x1, _x2)]] = x0 >= x0 = [[U42(_x0, _x1, _x2)]] [[a!6220!6220U43(_x0, _x1, _x2)]] = x0 >= x0 = [[U43(_x0, _x1, _x2)]] [[a!6220!6220U44(_x0, _x1, _x2)]] = x0 >= x0 = [[U44(_x0, _x1, _x2)]] [[a!6220!6220U45(_x0, _x1)]] = x0 >= x0 = [[U45(_x0, _x1)]] [[a!6220!6220U46(_x0)]] = 2x0 >= 2x0 = [[U46(_x0)]] [[a!6220!6220U51(_x0, _x1)]] = 2x0 >= 2x0 = [[U51(_x0, _x1)]] [[a!6220!6220U52(_x0)]] = x0 >= x0 = [[U52(_x0)]] [[a!6220!6220U61(_x0, _x1)]] = 2x0 >= 2x0 = [[U61(_x0, _x1)]] [[a!6220!6220U62(_x0)]] = x0 >= x0 = [[U62(_x0)]] [[a!6220!6220U71(_x0)]] = x0 >= x0 = [[U71(_x0)]] [[a!6220!6220U81(_x0)]] = x0 >= x0 = [[U81(_x0)]] [[a!6220!6220U91(_x0, _x1, _x2)]] = 2x0 >= 2x0 = [[U91(_x0, _x1, _x2)]] [[a!6220!6220U92(_x0, _x1, _x2)]] = x0 >= x0 = [[U92(_x0, _x1, _x2)]] [[a!6220!6220U93(_x0, _x1, _x2)]] = 2x0 >= 2x0 = [[U93(_x0, _x1, _x2)]] [[a!6220!6220U94(_x0, _x1, _x2)]] = x0 >= x0 = [[U94(_x0, _x1, _x2)]] [[a!6220!6220U95(_x0, _x1)]] = x0 >= x0 = [[U95(_x0, _x1)]] [[a!6220!6220U96(_x0)]] = x0 >= x0 = [[U96(_x0)]] By the observations in [Kop12, Sec. 6.6], this reduction pair suffices; we may thus replace the dependency pair problem (P_2, R_0, minimal, formative) by (P_5, R_0, minimal, formative), where P_5 consists of: a!6220!6220U111#(tt, X, Y) =#> a!6220!6220U112#(a!6220!6220isNatIListKind(X), X, Y) a!6220!6220U112#(tt, X, Y) =#> a!6220!6220U113#(a!6220!6220isNat(Y), X, Y) a!6220!6220U113#(tt, X, Y) =#> a!6220!6220U114#(a!6220!6220isNatKind(Y), X) a!6220!6220U114#(tt, X) =#> a!6220!6220length#(mark(X)) a!6220!6220U114#(tt, X) =#> mark#(X) a!6220!6220U131#(tt, X, Y, Z) =#> a!6220!6220U132#(a!6220!6220isNatIListKind(X), X, Y, Z) a!6220!6220U132#(tt, X, Y, Z) =#> a!6220!6220U133#(a!6220!6220isNat(Y), X, Y, Z) a!6220!6220U133#(tt, X, Y, Z) =#> a!6220!6220U134#(a!6220!6220isNatKind(Y), X, Y, Z) a!6220!6220U134#(tt, X, Y, Z) =#> a!6220!6220U135#(a!6220!6220isNat(Z), X, Y, Z) a!6220!6220U135#(tt, X, Y, Z) =#> a!6220!6220U136#(a!6220!6220isNatKind(Z), X, Y, Z) a!6220!6220U136#(tt, X, Y, Z) =#> mark#(Z) a!6220!6220length#(cons(X, Y)) =#> a!6220!6220U111#(a!6220!6220isNatList(Y), Y, X) a!6220!6220take#(s(X), cons(Y, Z)) =#> a!6220!6220U131#(a!6220!6220isNatIList(Z), Z, X, Y) mark#(U101(X, Y, Z)) =#> mark#(X) mark#(U102(X, Y, Z)) =#> mark#(X) mark#(U103(X, Y, Z)) =#> mark#(X) mark#(U104(X, Y, Z)) =#> mark#(X) mark#(U105(X, Y)) =#> mark#(X) mark#(U106(X)) =#> mark#(X) mark#(U11(X, Y)) =#> mark#(X) mark#(U12(X, Y)) =#> mark#(X) mark#(U13(X)) =#> mark#(X) mark#(U121(X, Y)) =#> mark#(X) mark#(U122(X)) =#> mark#(X) mark#(U131(X, Y, Z, U)) =#> a!6220!6220U131#(mark(X), Y, Z, U) mark#(U131(X, Y, Z, U)) =#> mark#(X) mark#(U132(X, Y, Z, U)) =#> a!6220!6220U132#(mark(X), Y, Z, U) mark#(U132(X, Y, Z, U)) =#> mark#(X) mark#(U133(X, Y, Z, U)) =#> a!6220!6220U133#(mark(X), Y, Z, U) mark#(U133(X, Y, Z, U)) =#> mark#(X) mark#(U134(X, Y, Z, U)) =#> a!6220!6220U134#(mark(X), Y, Z, U) mark#(U134(X, Y, Z, U)) =#> mark#(X) mark#(U135(X, Y, Z, U)) =#> a!6220!6220U135#(mark(X), Y, Z, U) mark#(U135(X, Y, Z, U)) =#> mark#(X) mark#(U136(X, Y, Z, U)) =#> a!6220!6220U136#(mark(X), Y, Z, U) mark#(U136(X, Y, Z, U)) =#> mark#(X) mark#(take(X, Y)) =#> a!6220!6220take#(mark(X), mark(Y)) mark#(take(X, Y)) =#> mark#(X) mark#(take(X, Y)) =#> mark#(Y) mark#(U21(X, Y)) =#> mark#(X) mark#(U22(X, Y)) =#> mark#(X) mark#(U23(X)) =#> mark#(X) mark#(U31(X, Y)) =#> mark#(X) mark#(U32(X, Y)) =#> mark#(X) mark#(U33(X)) =#> mark#(X) mark#(U41(X, Y, Z)) =#> mark#(X) mark#(U42(X, Y, Z)) =#> mark#(X) mark#(U43(X, Y, Z)) =#> mark#(X) mark#(U44(X, Y, Z)) =#> mark#(X) mark#(U45(X, Y)) =#> mark#(X) mark#(U46(X)) =#> mark#(X) mark#(U51(X, Y)) =#> mark#(X) mark#(U52(X)) =#> mark#(X) mark#(U61(X, Y)) =#> mark#(X) mark#(U62(X)) =#> mark#(X) mark#(U71(X)) =#> mark#(X) mark#(U81(X)) =#> mark#(X) mark#(U91(X, Y, Z)) =#> mark#(X) mark#(U92(X, Y, Z)) =#> mark#(X) mark#(U93(X, Y, Z)) =#> mark#(X) mark#(U94(X, Y, Z)) =#> mark#(X) mark#(U95(X, Y)) =#> mark#(X) mark#(U96(X)) =#> mark#(X) mark#(cons(X, Y)) =#> mark#(X) mark#(s(X)) =#> mark#(X) Thus, the original system is terminating if each of (P_1, R_0, minimal, formative) and (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 * 1 : 2 * 2 : 3, 4 * 3 : 11 * 4 : 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64 * 5 : 6 * 6 : 7 * 7 : 8 * 8 : 9 * 9 : 10 * 10 : 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64 * 11 : 0 * 12 : 5 * 13 : 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64 * 14 : 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64 * 15 : 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64 * 16 : 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64 * 17 : 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64 * 18 : 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64 * 19 : 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64 * 20 : 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64 * 21 : 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64 * 22 : 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64 * 23 : 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64 * 24 : 5 * 25 : 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64 * 26 : 6 * 27 : 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64 * 28 : 7 * 29 : 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64 * 30 : 8 * 31 : 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64 * 32 : 9 * 33 : 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64 * 34 : 10 * 35 : 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64 * 36 : 12 * 37 : 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64 * 38 : 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64 * 39 : 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64 * 40 : 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64 * 41 : 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64 * 42 : 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64 * 43 : 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64 * 44 : 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64 * 45 : 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64 * 46 : 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64 * 47 : 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64 * 48 : 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64 * 49 : 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64 * 50 : 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64 * 51 : 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64 * 52 : 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64 * 53 : 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64 * 54 : 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64 * 55 : 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64 * 56 : 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64 * 57 : 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64 * 58 : 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64 * 59 : 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64 * 60 : 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64 * 61 : 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64 * 62 : 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64 * 63 : 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64 * 64 : 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64 This graph has the following strongly connected components: P_6: a!6220!6220U111#(tt, X, Y) =#> a!6220!6220U112#(a!6220!6220isNatIListKind(X), X, Y) a!6220!6220U112#(tt, X, Y) =#> a!6220!6220U113#(a!6220!6220isNat(Y), X, Y) a!6220!6220U113#(tt, X, Y) =#> a!6220!6220U114#(a!6220!6220isNatKind(Y), X) a!6220!6220U114#(tt, X) =#> a!6220!6220length#(mark(X)) a!6220!6220length#(cons(X, Y)) =#> a!6220!6220U111#(a!6220!6220isNatList(Y), Y, X) P_7: a!6220!6220U131#(tt, X, Y, Z) =#> a!6220!6220U132#(a!6220!6220isNatIListKind(X), X, Y, Z) a!6220!6220U132#(tt, X, Y, Z) =#> a!6220!6220U133#(a!6220!6220isNat(Y), X, Y, Z) a!6220!6220U133#(tt, X, Y, Z) =#> a!6220!6220U134#(a!6220!6220isNatKind(Y), X, Y, Z) a!6220!6220U134#(tt, X, Y, Z) =#> a!6220!6220U135#(a!6220!6220isNat(Z), X, Y, Z) a!6220!6220U135#(tt, X, Y, Z) =#> a!6220!6220U136#(a!6220!6220isNatKind(Z), X, Y, Z) a!6220!6220U136#(tt, X, Y, Z) =#> mark#(Z) a!6220!6220take#(s(X), cons(Y, Z)) =#> a!6220!6220U131#(a!6220!6220isNatIList(Z), Z, X, Y) mark#(U101(X, Y, Z)) =#> mark#(X) mark#(U102(X, Y, Z)) =#> mark#(X) mark#(U103(X, Y, Z)) =#> mark#(X) mark#(U104(X, Y, Z)) =#> mark#(X) mark#(U105(X, Y)) =#> mark#(X) mark#(U106(X)) =#> mark#(X) mark#(U11(X, Y)) =#> mark#(X) mark#(U12(X, Y)) =#> mark#(X) mark#(U13(X)) =#> mark#(X) mark#(U121(X, Y)) =#> mark#(X) mark#(U122(X)) =#> mark#(X) mark#(U131(X, Y, Z, U)) =#> a!6220!6220U131#(mark(X), Y, Z, U) mark#(U131(X, Y, Z, U)) =#> mark#(X) mark#(U132(X, Y, Z, U)) =#> a!6220!6220U132#(mark(X), Y, Z, U) mark#(U132(X, Y, Z, U)) =#> mark#(X) mark#(U133(X, Y, Z, U)) =#> a!6220!6220U133#(mark(X), Y, Z, U) mark#(U133(X, Y, Z, U)) =#> mark#(X) mark#(U134(X, Y, Z, U)) =#> a!6220!6220U134#(mark(X), Y, Z, U) mark#(U134(X, Y, Z, U)) =#> mark#(X) mark#(U135(X, Y, Z, U)) =#> a!6220!6220U135#(mark(X), Y, Z, U) mark#(U135(X, Y, Z, U)) =#> mark#(X) mark#(U136(X, Y, Z, U)) =#> a!6220!6220U136#(mark(X), Y, Z, U) mark#(U136(X, Y, Z, U)) =#> mark#(X) mark#(take(X, Y)) =#> a!6220!6220take#(mark(X), mark(Y)) mark#(take(X, Y)) =#> mark#(X) mark#(take(X, Y)) =#> mark#(Y) mark#(U21(X, Y)) =#> mark#(X) mark#(U22(X, Y)) =#> mark#(X) mark#(U23(X)) =#> mark#(X) mark#(U31(X, Y)) =#> mark#(X) mark#(U32(X, Y)) =#> mark#(X) mark#(U33(X)) =#> mark#(X) mark#(U41(X, Y, Z)) =#> mark#(X) mark#(U42(X, Y, Z)) =#> mark#(X) mark#(U43(X, Y, Z)) =#> mark#(X) mark#(U44(X, Y, Z)) =#> mark#(X) mark#(U45(X, Y)) =#> mark#(X) mark#(U46(X)) =#> mark#(X) mark#(U51(X, Y)) =#> mark#(X) mark#(U52(X)) =#> mark#(X) mark#(U61(X, Y)) =#> mark#(X) mark#(U62(X)) =#> mark#(X) mark#(U71(X)) =#> mark#(X) mark#(U81(X)) =#> mark#(X) mark#(U91(X, Y, Z)) =#> mark#(X) mark#(U92(X, Y, Z)) =#> mark#(X) mark#(U93(X, Y, Z)) =#> mark#(X) mark#(U94(X, Y, Z)) =#> mark#(X) mark#(U95(X, Y)) =#> mark#(X) mark#(U96(X)) =#> mark#(X) mark#(cons(X, Y)) =#> mark#(X) mark#(s(X)) =#> mark#(X) 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) and (P_7, R_0, m, f). Thus, the original system is terminating if each of (P_1, R_0, minimal, formative), (P_6, R_0, minimal, formative) and (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: a!6220!6220U131#(tt, X, Y, Z) >? a!6220!6220U132#(a!6220!6220isNatIListKind(X), X, Y, Z) a!6220!6220U132#(tt, X, Y, Z) >? a!6220!6220U133#(a!6220!6220isNat(Y), X, Y, Z) a!6220!6220U133#(tt, X, Y, Z) >? a!6220!6220U134#(a!6220!6220isNatKind(Y), X, Y, Z) a!6220!6220U134#(tt, X, Y, Z) >? a!6220!6220U135#(a!6220!6220isNat(Z), X, Y, Z) a!6220!6220U135#(tt, X, Y, Z) >? a!6220!6220U136#(a!6220!6220isNatKind(Z), X, Y, Z) a!6220!6220U136#(tt, X, Y, Z) >? mark#(Z) a!6220!6220take#(s(X), cons(Y, Z)) >? a!6220!6220U131#(a!6220!6220isNatIList(Z), Z, X, Y) mark#(U101(X, Y, Z)) >? mark#(X) mark#(U102(X, Y, Z)) >? mark#(X) mark#(U103(X, Y, Z)) >? mark#(X) mark#(U104(X, Y, Z)) >? mark#(X) mark#(U105(X, Y)) >? mark#(X) mark#(U106(X)) >? mark#(X) mark#(U11(X, Y)) >? mark#(X) mark#(U12(X, Y)) >? mark#(X) mark#(U13(X)) >? mark#(X) mark#(U121(X, Y)) >? mark#(X) mark#(U122(X)) >? mark#(X) mark#(U131(X, Y, Z, U)) >? a!6220!6220U131#(mark(X), Y, Z, U) mark#(U131(X, Y, Z, U)) >? mark#(X) mark#(U132(X, Y, Z, U)) >? a!6220!6220U132#(mark(X), Y, Z, U) mark#(U132(X, Y, Z, U)) >? mark#(X) mark#(U133(X, Y, Z, U)) >? a!6220!6220U133#(mark(X), Y, Z, U) mark#(U133(X, Y, Z, U)) >? mark#(X) mark#(U134(X, Y, Z, U)) >? a!6220!6220U134#(mark(X), Y, Z, U) mark#(U134(X, Y, Z, U)) >? mark#(X) mark#(U135(X, Y, Z, U)) >? a!6220!6220U135#(mark(X), Y, Z, U) mark#(U135(X, Y, Z, U)) >? mark#(X) mark#(U136(X, Y, Z, U)) >? a!6220!6220U136#(mark(X), Y, Z, U) mark#(U136(X, Y, Z, U)) >? mark#(X) mark#(take(X, Y)) >? a!6220!6220take#(mark(X), mark(Y)) mark#(take(X, Y)) >? mark#(X) mark#(take(X, Y)) >? mark#(Y) mark#(U21(X, Y)) >? mark#(X) mark#(U22(X, Y)) >? mark#(X) mark#(U23(X)) >? mark#(X) mark#(U31(X, Y)) >? mark#(X) mark#(U32(X, Y)) >? mark#(X) mark#(U33(X)) >? mark#(X) mark#(U41(X, Y, Z)) >? mark#(X) mark#(U42(X, Y, Z)) >? mark#(X) mark#(U43(X, Y, Z)) >? mark#(X) mark#(U44(X, Y, Z)) >? mark#(X) mark#(U45(X, Y)) >? mark#(X) mark#(U46(X)) >? mark#(X) mark#(U51(X, Y)) >? mark#(X) mark#(U52(X)) >? mark#(X) mark#(U61(X, Y)) >? mark#(X) mark#(U62(X)) >? mark#(X) mark#(U71(X)) >? mark#(X) mark#(U81(X)) >? mark#(X) mark#(U91(X, Y, Z)) >? mark#(X) mark#(U92(X, Y, Z)) >? mark#(X) mark#(U93(X, Y, Z)) >? mark#(X) mark#(U94(X, Y, Z)) >? mark#(X) mark#(U95(X, Y)) >? mark#(X) mark#(U96(X)) >? mark#(X) mark#(cons(X, Y)) >? mark#(X) mark#(s(X)) >? mark#(X) a!6220!6220zeros >= cons(0, zeros) a!6220!6220U101(tt, X, Y) >= a!6220!6220U102(a!6220!6220isNatKind(X), X, Y) a!6220!6220U102(tt, X, Y) >= a!6220!6220U103(a!6220!6220isNatIListKind(Y), X, Y) a!6220!6220U103(tt, X, Y) >= a!6220!6220U104(a!6220!6220isNatIListKind(Y), X, Y) a!6220!6220U104(tt, X, Y) >= a!6220!6220U105(a!6220!6220isNat(X), Y) a!6220!6220U105(tt, X) >= a!6220!6220U106(a!6220!6220isNatIList(X)) a!6220!6220U106(tt) >= tt a!6220!6220U11(tt, X) >= a!6220!6220U12(a!6220!6220isNatIListKind(X), X) a!6220!6220U111(tt, X, Y) >= a!6220!6220U112(a!6220!6220isNatIListKind(X), X, Y) a!6220!6220U112(tt, X, Y) >= a!6220!6220U113(a!6220!6220isNat(Y), X, Y) a!6220!6220U113(tt, X, Y) >= a!6220!6220U114(a!6220!6220isNatKind(Y), X) a!6220!6220U114(tt, X) >= s(a!6220!6220length(mark(X))) a!6220!6220U12(tt, X) >= a!6220!6220U13(a!6220!6220isNatList(X)) a!6220!6220U121(tt, X) >= a!6220!6220U122(a!6220!6220isNatIListKind(X)) a!6220!6220U122(tt) >= nil a!6220!6220U13(tt) >= tt a!6220!6220U131(tt, X, Y, Z) >= a!6220!6220U132(a!6220!6220isNatIListKind(X), X, Y, Z) a!6220!6220U132(tt, X, Y, Z) >= a!6220!6220U133(a!6220!6220isNat(Y), X, Y, Z) a!6220!6220U133(tt, X, Y, Z) >= a!6220!6220U134(a!6220!6220isNatKind(Y), X, Y, Z) a!6220!6220U134(tt, X, Y, Z) >= a!6220!6220U135(a!6220!6220isNat(Z), X, Y, Z) a!6220!6220U135(tt, X, Y, Z) >= a!6220!6220U136(a!6220!6220isNatKind(Z), X, Y, Z) a!6220!6220U136(tt, X, Y, Z) >= cons(mark(Z), take(Y, X)) a!6220!6220U21(tt, X) >= a!6220!6220U22(a!6220!6220isNatKind(X), X) a!6220!6220U22(tt, X) >= a!6220!6220U23(a!6220!6220isNat(X)) a!6220!6220U23(tt) >= tt a!6220!6220U31(tt, X) >= a!6220!6220U32(a!6220!6220isNatIListKind(X), X) a!6220!6220U32(tt, X) >= a!6220!6220U33(a!6220!6220isNatList(X)) a!6220!6220U33(tt) >= tt a!6220!6220U41(tt, X, Y) >= a!6220!6220U42(a!6220!6220isNatKind(X), X, Y) a!6220!6220U42(tt, X, Y) >= a!6220!6220U43(a!6220!6220isNatIListKind(Y), X, Y) a!6220!6220U43(tt, X, Y) >= a!6220!6220U44(a!6220!6220isNatIListKind(Y), X, Y) a!6220!6220U44(tt, X, Y) >= a!6220!6220U45(a!6220!6220isNat(X), Y) a!6220!6220U45(tt, X) >= a!6220!6220U46(a!6220!6220isNatIList(X)) a!6220!6220U46(tt) >= tt a!6220!6220U51(tt, X) >= a!6220!6220U52(a!6220!6220isNatIListKind(X)) a!6220!6220U52(tt) >= tt a!6220!6220U61(tt, X) >= a!6220!6220U62(a!6220!6220isNatIListKind(X)) a!6220!6220U62(tt) >= tt a!6220!6220U71(tt) >= tt a!6220!6220U81(tt) >= tt a!6220!6220U91(tt, X, Y) >= a!6220!6220U92(a!6220!6220isNatKind(X), X, Y) a!6220!6220U92(tt, X, Y) >= a!6220!6220U93(a!6220!6220isNatIListKind(Y), X, Y) a!6220!6220U93(tt, X, Y) >= a!6220!6220U94(a!6220!6220isNatIListKind(Y), X, Y) a!6220!6220U94(tt, X, Y) >= a!6220!6220U95(a!6220!6220isNat(X), Y) a!6220!6220U95(tt, X) >= a!6220!6220U96(a!6220!6220isNatList(X)) a!6220!6220U96(tt) >= tt a!6220!6220isNat(0) >= tt a!6220!6220isNat(length(X)) >= a!6220!6220U11(a!6220!6220isNatIListKind(X), X) a!6220!6220isNat(s(X)) >= a!6220!6220U21(a!6220!6220isNatKind(X), X) a!6220!6220isNatIList(X) >= a!6220!6220U31(a!6220!6220isNatIListKind(X), X) a!6220!6220isNatIList(zeros) >= tt a!6220!6220isNatIList(cons(X, Y)) >= a!6220!6220U41(a!6220!6220isNatKind(X), X, Y) a!6220!6220isNatIListKind(nil) >= tt a!6220!6220isNatIListKind(zeros) >= tt a!6220!6220isNatIListKind(cons(X, Y)) >= a!6220!6220U51(a!6220!6220isNatKind(X), Y) a!6220!6220isNatIListKind(take(X, Y)) >= a!6220!6220U61(a!6220!6220isNatKind(X), Y) a!6220!6220isNatKind(0) >= tt a!6220!6220isNatKind(length(X)) >= a!6220!6220U71(a!6220!6220isNatIListKind(X)) a!6220!6220isNatKind(s(X)) >= a!6220!6220U81(a!6220!6220isNatKind(X)) a!6220!6220isNatList(nil) >= tt a!6220!6220isNatList(cons(X, Y)) >= a!6220!6220U91(a!6220!6220isNatKind(X), X, Y) a!6220!6220isNatList(take(X, Y)) >= a!6220!6220U101(a!6220!6220isNatKind(X), X, Y) a!6220!6220length(nil) >= 0 a!6220!6220length(cons(X, Y)) >= a!6220!6220U111(a!6220!6220isNatList(Y), Y, X) a!6220!6220take(0, X) >= a!6220!6220U121(a!6220!6220isNatIList(X), X) a!6220!6220take(s(X), cons(Y, Z)) >= a!6220!6220U131(a!6220!6220isNatIList(Z), Z, X, Y) mark(zeros) >= a!6220!6220zeros mark(U101(X, Y, Z)) >= a!6220!6220U101(mark(X), Y, Z) mark(U102(X, Y, Z)) >= a!6220!6220U102(mark(X), Y, Z) mark(isNatKind(X)) >= a!6220!6220isNatKind(X) mark(U103(X, Y, Z)) >= a!6220!6220U103(mark(X), Y, Z) mark(isNatIListKind(X)) >= a!6220!6220isNatIListKind(X) mark(U104(X, Y, Z)) >= a!6220!6220U104(mark(X), Y, Z) mark(U105(X, Y)) >= a!6220!6220U105(mark(X), Y) mark(isNat(X)) >= a!6220!6220isNat(X) mark(U106(X)) >= a!6220!6220U106(mark(X)) mark(isNatIList(X)) >= a!6220!6220isNatIList(X) mark(U11(X, Y)) >= a!6220!6220U11(mark(X), Y) mark(U12(X, Y)) >= a!6220!6220U12(mark(X), Y) mark(U111(X, Y, Z)) >= a!6220!6220U111(mark(X), Y, Z) mark(U112(X, Y, Z)) >= a!6220!6220U112(mark(X), Y, Z) mark(U113(X, Y, Z)) >= a!6220!6220U113(mark(X), Y, Z) mark(U114(X, Y)) >= a!6220!6220U114(mark(X), Y) mark(length(X)) >= a!6220!6220length(mark(X)) mark(U13(X)) >= a!6220!6220U13(mark(X)) mark(isNatList(X)) >= a!6220!6220isNatList(X) mark(U121(X, Y)) >= a!6220!6220U121(mark(X), Y) mark(U122(X)) >= a!6220!6220U122(mark(X)) mark(U131(X, Y, Z, U)) >= a!6220!6220U131(mark(X), Y, Z, U) mark(U132(X, Y, Z, U)) >= a!6220!6220U132(mark(X), Y, Z, U) mark(U133(X, Y, Z, U)) >= a!6220!6220U133(mark(X), Y, Z, U) mark(U134(X, Y, Z, U)) >= a!6220!6220U134(mark(X), Y, Z, U) mark(U135(X, Y, Z, U)) >= a!6220!6220U135(mark(X), Y, Z, U) mark(U136(X, Y, Z, U)) >= a!6220!6220U136(mark(X), Y, Z, U) mark(take(X, Y)) >= a!6220!6220take(mark(X), mark(Y)) mark(U21(X, Y)) >= a!6220!6220U21(mark(X), Y) mark(U22(X, Y)) >= a!6220!6220U22(mark(X), Y) mark(U23(X)) >= a!6220!6220U23(mark(X)) mark(U31(X, Y)) >= a!6220!6220U31(mark(X), Y) mark(U32(X, Y)) >= a!6220!6220U32(mark(X), Y) mark(U33(X)) >= a!6220!6220U33(mark(X)) mark(U41(X, Y, Z)) >= a!6220!6220U41(mark(X), Y, Z) mark(U42(X, Y, Z)) >= a!6220!6220U42(mark(X), Y, Z) mark(U43(X, Y, Z)) >= a!6220!6220U43(mark(X), Y, Z) mark(U44(X, Y, Z)) >= a!6220!6220U44(mark(X), Y, Z) mark(U45(X, Y)) >= a!6220!6220U45(mark(X), Y) mark(U46(X)) >= a!6220!6220U46(mark(X)) mark(U51(X, Y)) >= a!6220!6220U51(mark(X), Y) mark(U52(X)) >= a!6220!6220U52(mark(X)) mark(U61(X, Y)) >= a!6220!6220U61(mark(X), Y) mark(U62(X)) >= a!6220!6220U62(mark(X)) mark(U71(X)) >= a!6220!6220U71(mark(X)) mark(U81(X)) >= a!6220!6220U81(mark(X)) mark(U91(X, Y, Z)) >= a!6220!6220U91(mark(X), Y, Z) mark(U92(X, Y, Z)) >= a!6220!6220U92(mark(X), Y, Z) mark(U93(X, Y, Z)) >= a!6220!6220U93(mark(X), Y, Z) mark(U94(X, Y, Z)) >= a!6220!6220U94(mark(X), Y, Z) mark(U95(X, Y)) >= a!6220!6220U95(mark(X), Y) mark(U96(X)) >= a!6220!6220U96(mark(X)) mark(cons(X, Y)) >= cons(mark(X), Y) mark(0) >= 0 mark(tt) >= tt mark(s(X)) >= s(mark(X)) mark(nil) >= nil a!6220!6220zeros >= zeros a!6220!6220U101(X, Y, Z) >= U101(X, Y, Z) a!6220!6220U102(X, Y, Z) >= U102(X, Y, Z) a!6220!6220isNatKind(X) >= isNatKind(X) a!6220!6220U103(X, Y, Z) >= U103(X, Y, Z) a!6220!6220isNatIListKind(X) >= isNatIListKind(X) a!6220!6220U104(X, Y, Z) >= U104(X, Y, Z) a!6220!6220U105(X, Y) >= U105(X, Y) a!6220!6220isNat(X) >= isNat(X) a!6220!6220U106(X) >= U106(X) a!6220!6220isNatIList(X) >= isNatIList(X) a!6220!6220U11(X, Y) >= U11(X, Y) a!6220!6220U12(X, Y) >= U12(X, Y) a!6220!6220U111(X, Y, Z) >= U111(X, Y, Z) a!6220!6220U112(X, Y, Z) >= U112(X, Y, Z) a!6220!6220U113(X, Y, Z) >= U113(X, Y, Z) a!6220!6220U114(X, Y) >= U114(X, Y) a!6220!6220length(X) >= length(X) a!6220!6220U13(X) >= U13(X) a!6220!6220isNatList(X) >= isNatList(X) a!6220!6220U121(X, Y) >= U121(X, Y) a!6220!6220U122(X) >= U122(X) a!6220!6220U131(X, Y, Z, U) >= U131(X, Y, Z, U) a!6220!6220U132(X, Y, Z, U) >= U132(X, Y, Z, U) a!6220!6220U133(X, Y, Z, U) >= U133(X, Y, Z, U) a!6220!6220U134(X, Y, Z, U) >= U134(X, Y, Z, U) a!6220!6220U135(X, Y, Z, U) >= U135(X, Y, Z, U) a!6220!6220U136(X, Y, Z, U) >= U136(X, Y, Z, U) a!6220!6220take(X, Y) >= take(X, Y) a!6220!6220U21(X, Y) >= U21(X, Y) a!6220!6220U22(X, Y) >= U22(X, Y) a!6220!6220U23(X) >= U23(X) a!6220!6220U31(X, Y) >= U31(X, Y) a!6220!6220U32(X, Y) >= U32(X, Y) a!6220!6220U33(X) >= U33(X) a!6220!6220U41(X, Y, Z) >= U41(X, Y, Z) a!6220!6220U42(X, Y, Z) >= U42(X, Y, Z) a!6220!6220U43(X, Y, Z) >= U43(X, Y, Z) a!6220!6220U44(X, Y, Z) >= U44(X, Y, Z) a!6220!6220U45(X, Y) >= U45(X, Y) a!6220!6220U46(X) >= U46(X) a!6220!6220U51(X, Y) >= U51(X, Y) a!6220!6220U52(X) >= U52(X) a!6220!6220U61(X, Y) >= U61(X, Y) a!6220!6220U62(X) >= U62(X) a!6220!6220U71(X) >= U71(X) a!6220!6220U81(X) >= U81(X) a!6220!6220U91(X, Y, Z) >= U91(X, Y, Z) a!6220!6220U92(X, Y, Z) >= U92(X, Y, Z) a!6220!6220U93(X, Y, Z) >= U93(X, Y, Z) a!6220!6220U94(X, Y, Z) >= U94(X, Y, Z) a!6220!6220U95(X, Y) >= U95(X, Y) a!6220!6220U96(X) >= U96(X) We orient these requirements with a polynomial interpretation in the natural numbers. The following interpretation satisfies the requirements: 0 = 0 U101 = \y0y1y2.y0 U102 = \y0y1y2.y0 U103 = \y0y1y2.2y0 U104 = \y0y1y2.y0 U105 = \y0y1.y0 U106 = \y0.y0 U11 = \y0y1.2y0 U111 = \y0y1y2.0 U112 = \y0y1y2.0 U113 = \y0y1y2.0 U114 = \y0y1.0 U12 = \y0y1.y0 U121 = \y0y1.1 + 2y0 U122 = \y0.1 + y0 U13 = \y0.y0 U131 = \y0y1y2y3.y3 + 2y0 U132 = \y0y1y2y3.y0 + 2y3 U133 = \y0y1y2y3.y0 + 2y3 U134 = \y0y1y2y3.y0 + 2y3 U135 = \y0y1y2y3.y0 + y3 U136 = \y0y1y2y3.y0 + 2y3 U21 = \y0y1.y0 U22 = \y0y1.2y0 U23 = \y0.y0 U31 = \y0y1.y0 U32 = \y0y1.y0 U33 = \y0.2y0 U41 = \y0y1y2.2y0 U42 = \y0y1y2.y0 U43 = \y0y1y2.y0 U44 = \y0y1y2.2y0 U45 = \y0y1.y0 U46 = \y0.y0 U51 = \y0y1.y0 U52 = \y0.y0 U61 = \y0y1.2y0 U62 = \y0.y0 U71 = \y0.2y0 U81 = \y0.2y0 U91 = \y0y1y2.y0 U92 = \y0y1y2.y0 U93 = \y0y1y2.y0 U94 = \y0y1y2.y0 U95 = \y0y1.y0 U96 = \y0.2y0 a!6220!6220U101 = \y0y1y2.y0 a!6220!6220U102 = \y0y1y2.y0 a!6220!6220U103 = \y0y1y2.2y0 a!6220!6220U104 = \y0y1y2.y0 a!6220!6220U105 = \y0y1.y0 a!6220!6220U106 = \y0.y0 a!6220!6220U11 = \y0y1.2y0 a!6220!6220U111 = \y0y1y2.0 a!6220!6220U112 = \y0y1y2.0 a!6220!6220U113 = \y0y1y2.0 a!6220!6220U114 = \y0y1.0 a!6220!6220U12 = \y0y1.y0 a!6220!6220U121 = \y0y1.1 + 2y0 a!6220!6220U122 = \y0.1 + y0 a!6220!6220U13 = \y0.y0 a!6220!6220U131 = \y0y1y2y3.2y0 + 2y3 a!6220!6220U131# = \y0y1y2y3.y3 a!6220!6220U132 = \y0y1y2y3.y0 + 2y3 a!6220!6220U132# = \y0y1y2y3.y3 a!6220!6220U133 = \y0y1y2y3.y0 + 2y3 a!6220!6220U133# = \y0y1y2y3.y3 a!6220!6220U134 = \y0y1y2y3.y0 + 2y3 a!6220!6220U134# = \y0y1y2y3.y3 a!6220!6220U135 = \y0y1y2y3.y0 + 2y3 a!6220!6220U135# = \y0y1y2y3.y3 a!6220!6220U136 = \y0y1y2y3.y0 + 2y3 a!6220!6220U136# = \y0y1y2y3.y3 a!6220!6220U21 = \y0y1.y0 a!6220!6220U22 = \y0y1.2y0 a!6220!6220U23 = \y0.y0 a!6220!6220U31 = \y0y1.y0 a!6220!6220U32 = \y0y1.y0 a!6220!6220U33 = \y0.2y0 a!6220!6220U41 = \y0y1y2.2y0 a!6220!6220U42 = \y0y1y2.y0 a!6220!6220U43 = \y0y1y2.y0 a!6220!6220U44 = \y0y1y2.2y0 a!6220!6220U45 = \y0y1.y0 a!6220!6220U46 = \y0.y0 a!6220!6220U51 = \y0y1.y0 a!6220!6220U52 = \y0.y0 a!6220!6220U61 = \y0y1.2y0 a!6220!6220U62 = \y0.y0 a!6220!6220U71 = \y0.2y0 a!6220!6220U81 = \y0.2y0 a!6220!6220U91 = \y0y1y2.y0 a!6220!6220U92 = \y0y1y2.y0 a!6220!6220U93 = \y0y1y2.y0 a!6220!6220U94 = \y0y1y2.y0 a!6220!6220U95 = \y0y1.y0 a!6220!6220U96 = \y0.2y0 a!6220!6220isNat = \y0.0 a!6220!6220isNatIList = \y0.0 a!6220!6220isNatIListKind = \y0.0 a!6220!6220isNatKind = \y0.0 a!6220!6220isNatList = \y0.0 a!6220!6220length = \y0.0 a!6220!6220take = \y0y1.1 + 2y0 + 2y1 a!6220!6220take# = \y0y1.y1 a!6220!6220zeros = 1 cons = \y0y1.y0 isNat = \y0.0 isNatIList = \y0.0 isNatIListKind = \y0.0 isNatKind = \y0.0 isNatList = \y0.0 length = \y0.0 mark = \y0.2y0 mark# = \y0.y0 nil = 0 s = \y0.y0 take = \y0y1.1 + 2y0 + 2y1 tt = 0 zeros = 1 Using this interpretation, the requirements translate to: [[a!6220!6220U131#(tt, _x0, _x1, _x2)]] = x2 >= x2 = [[a!6220!6220U132#(a!6220!6220isNatIListKind(_x0), _x0, _x1, _x2)]] [[a!6220!6220U132#(tt, _x0, _x1, _x2)]] = x2 >= x2 = [[a!6220!6220U133#(a!6220!6220isNat(_x1), _x0, _x1, _x2)]] [[a!6220!6220U133#(tt, _x0, _x1, _x2)]] = x2 >= x2 = [[a!6220!6220U134#(a!6220!6220isNatKind(_x1), _x0, _x1, _x2)]] [[a!6220!6220U134#(tt, _x0, _x1, _x2)]] = x2 >= x2 = [[a!6220!6220U135#(a!6220!6220isNat(_x2), _x0, _x1, _x2)]] [[a!6220!6220U135#(tt, _x0, _x1, _x2)]] = x2 >= x2 = [[a!6220!6220U136#(a!6220!6220isNatKind(_x2), _x0, _x1, _x2)]] [[a!6220!6220U136#(tt, _x0, _x1, _x2)]] = x2 >= x2 = [[mark#(_x2)]] [[a!6220!6220take#(s(_x0), cons(_x1, _x2))]] = x1 >= x1 = [[a!6220!6220U131#(a!6220!6220isNatIList(_x2), _x2, _x0, _x1)]] [[mark#(U101(_x0, _x1, _x2))]] = x0 >= x0 = [[mark#(_x0)]] [[mark#(U102(_x0, _x1, _x2))]] = x0 >= x0 = [[mark#(_x0)]] [[mark#(U103(_x0, _x1, _x2))]] = 2x0 >= x0 = [[mark#(_x0)]] [[mark#(U104(_x0, _x1, _x2))]] = x0 >= x0 = [[mark#(_x0)]] [[mark#(U105(_x0, _x1))]] = x0 >= x0 = [[mark#(_x0)]] [[mark#(U106(_x0))]] = x0 >= x0 = [[mark#(_x0)]] [[mark#(U11(_x0, _x1))]] = 2x0 >= x0 = [[mark#(_x0)]] [[mark#(U12(_x0, _x1))]] = x0 >= x0 = [[mark#(_x0)]] [[mark#(U13(_x0))]] = x0 >= x0 = [[mark#(_x0)]] [[mark#(U121(_x0, _x1))]] = 1 + 2x0 > x0 = [[mark#(_x0)]] [[mark#(U122(_x0))]] = 1 + x0 > x0 = [[mark#(_x0)]] [[mark#(U131(_x0, _x1, _x2, _x3))]] = x3 + 2x0 >= x3 = [[a!6220!6220U131#(mark(_x0), _x1, _x2, _x3)]] [[mark#(U131(_x0, _x1, _x2, _x3))]] = x3 + 2x0 >= x0 = [[mark#(_x0)]] [[mark#(U132(_x0, _x1, _x2, _x3))]] = x0 + 2x3 >= x3 = [[a!6220!6220U132#(mark(_x0), _x1, _x2, _x3)]] [[mark#(U132(_x0, _x1, _x2, _x3))]] = x0 + 2x3 >= x0 = [[mark#(_x0)]] [[mark#(U133(_x0, _x1, _x2, _x3))]] = x0 + 2x3 >= x3 = [[a!6220!6220U133#(mark(_x0), _x1, _x2, _x3)]] [[mark#(U133(_x0, _x1, _x2, _x3))]] = x0 + 2x3 >= x0 = [[mark#(_x0)]] [[mark#(U134(_x0, _x1, _x2, _x3))]] = x0 + 2x3 >= x3 = [[a!6220!6220U134#(mark(_x0), _x1, _x2, _x3)]] [[mark#(U134(_x0, _x1, _x2, _x3))]] = x0 + 2x3 >= x0 = [[mark#(_x0)]] [[mark#(U135(_x0, _x1, _x2, _x3))]] = x0 + x3 >= x3 = [[a!6220!6220U135#(mark(_x0), _x1, _x2, _x3)]] [[mark#(U135(_x0, _x1, _x2, _x3))]] = x0 + x3 >= x0 = [[mark#(_x0)]] [[mark#(U136(_x0, _x1, _x2, _x3))]] = x0 + 2x3 >= x3 = [[a!6220!6220U136#(mark(_x0), _x1, _x2, _x3)]] [[mark#(U136(_x0, _x1, _x2, _x3))]] = x0 + 2x3 >= x0 = [[mark#(_x0)]] [[mark#(take(_x0, _x1))]] = 1 + 2x0 + 2x1 > 2x1 = [[a!6220!6220take#(mark(_x0), mark(_x1))]] [[mark#(take(_x0, _x1))]] = 1 + 2x0 + 2x1 > x0 = [[mark#(_x0)]] [[mark#(take(_x0, _x1))]] = 1 + 2x0 + 2x1 > x1 = [[mark#(_x1)]] [[mark#(U21(_x0, _x1))]] = x0 >= x0 = [[mark#(_x0)]] [[mark#(U22(_x0, _x1))]] = 2x0 >= x0 = [[mark#(_x0)]] [[mark#(U23(_x0))]] = x0 >= x0 = [[mark#(_x0)]] [[mark#(U31(_x0, _x1))]] = x0 >= x0 = [[mark#(_x0)]] [[mark#(U32(_x0, _x1))]] = x0 >= x0 = [[mark#(_x0)]] [[mark#(U33(_x0))]] = 2x0 >= x0 = [[mark#(_x0)]] [[mark#(U41(_x0, _x1, _x2))]] = 2x0 >= x0 = [[mark#(_x0)]] [[mark#(U42(_x0, _x1, _x2))]] = x0 >= x0 = [[mark#(_x0)]] [[mark#(U43(_x0, _x1, _x2))]] = x0 >= x0 = [[mark#(_x0)]] [[mark#(U44(_x0, _x1, _x2))]] = 2x0 >= x0 = [[mark#(_x0)]] [[mark#(U45(_x0, _x1))]] = x0 >= x0 = [[mark#(_x0)]] [[mark#(U46(_x0))]] = x0 >= x0 = [[mark#(_x0)]] [[mark#(U51(_x0, _x1))]] = x0 >= x0 = [[mark#(_x0)]] [[mark#(U52(_x0))]] = x0 >= x0 = [[mark#(_x0)]] [[mark#(U61(_x0, _x1))]] = 2x0 >= x0 = [[mark#(_x0)]] [[mark#(U62(_x0))]] = x0 >= x0 = [[mark#(_x0)]] [[mark#(U71(_x0))]] = 2x0 >= x0 = [[mark#(_x0)]] [[mark#(U81(_x0))]] = 2x0 >= x0 = [[mark#(_x0)]] [[mark#(U91(_x0, _x1, _x2))]] = x0 >= x0 = [[mark#(_x0)]] [[mark#(U92(_x0, _x1, _x2))]] = x0 >= x0 = [[mark#(_x0)]] [[mark#(U93(_x0, _x1, _x2))]] = x0 >= x0 = [[mark#(_x0)]] [[mark#(U94(_x0, _x1, _x2))]] = x0 >= x0 = [[mark#(_x0)]] [[mark#(U95(_x0, _x1))]] = x0 >= x0 = [[mark#(_x0)]] [[mark#(U96(_x0))]] = 2x0 >= x0 = [[mark#(_x0)]] [[mark#(cons(_x0, _x1))]] = x0 >= x0 = [[mark#(_x0)]] [[mark#(s(_x0))]] = x0 >= x0 = [[mark#(_x0)]] [[a!6220!6220zeros]] = 1 >= 0 = [[cons(0, zeros)]] [[a!6220!6220U101(tt, _x0, _x1)]] = 0 >= 0 = [[a!6220!6220U102(a!6220!6220isNatKind(_x0), _x0, _x1)]] [[a!6220!6220U102(tt, _x0, _x1)]] = 0 >= 0 = [[a!6220!6220U103(a!6220!6220isNatIListKind(_x1), _x0, _x1)]] [[a!6220!6220U103(tt, _x0, _x1)]] = 0 >= 0 = [[a!6220!6220U104(a!6220!6220isNatIListKind(_x1), _x0, _x1)]] [[a!6220!6220U104(tt, _x0, _x1)]] = 0 >= 0 = [[a!6220!6220U105(a!6220!6220isNat(_x0), _x1)]] [[a!6220!6220U105(tt, _x0)]] = 0 >= 0 = [[a!6220!6220U106(a!6220!6220isNatIList(_x0))]] [[a!6220!6220U106(tt)]] = 0 >= 0 = [[tt]] [[a!6220!6220U11(tt, _x0)]] = 0 >= 0 = [[a!6220!6220U12(a!6220!6220isNatIListKind(_x0), _x0)]] [[a!6220!6220U111(tt, _x0, _x1)]] = 0 >= 0 = [[a!6220!6220U112(a!6220!6220isNatIListKind(_x0), _x0, _x1)]] [[a!6220!6220U112(tt, _x0, _x1)]] = 0 >= 0 = [[a!6220!6220U113(a!6220!6220isNat(_x1), _x0, _x1)]] [[a!6220!6220U113(tt, _x0, _x1)]] = 0 >= 0 = [[a!6220!6220U114(a!6220!6220isNatKind(_x1), _x0)]] [[a!6220!6220U114(tt, _x0)]] = 0 >= 0 = [[s(a!6220!6220length(mark(_x0)))]] [[a!6220!6220U12(tt, _x0)]] = 0 >= 0 = [[a!6220!6220U13(a!6220!6220isNatList(_x0))]] [[a!6220!6220U121(tt, _x0)]] = 1 >= 1 = [[a!6220!6220U122(a!6220!6220isNatIListKind(_x0))]] [[a!6220!6220U122(tt)]] = 1 >= 0 = [[nil]] [[a!6220!6220U13(tt)]] = 0 >= 0 = [[tt]] [[a!6220!6220U131(tt, _x0, _x1, _x2)]] = 2x2 >= 2x2 = [[a!6220!6220U132(a!6220!6220isNatIListKind(_x0), _x0, _x1, _x2)]] [[a!6220!6220U132(tt, _x0, _x1, _x2)]] = 2x2 >= 2x2 = [[a!6220!6220U133(a!6220!6220isNat(_x1), _x0, _x1, _x2)]] [[a!6220!6220U133(tt, _x0, _x1, _x2)]] = 2x2 >= 2x2 = [[a!6220!6220U134(a!6220!6220isNatKind(_x1), _x0, _x1, _x2)]] [[a!6220!6220U134(tt, _x0, _x1, _x2)]] = 2x2 >= 2x2 = [[a!6220!6220U135(a!6220!6220isNat(_x2), _x0, _x1, _x2)]] [[a!6220!6220U135(tt, _x0, _x1, _x2)]] = 2x2 >= 2x2 = [[a!6220!6220U136(a!6220!6220isNatKind(_x2), _x0, _x1, _x2)]] [[a!6220!6220U136(tt, _x0, _x1, _x2)]] = 2x2 >= 2x2 = [[cons(mark(_x2), take(_x1, _x0))]] [[a!6220!6220U21(tt, _x0)]] = 0 >= 0 = [[a!6220!6220U22(a!6220!6220isNatKind(_x0), _x0)]] [[a!6220!6220U22(tt, _x0)]] = 0 >= 0 = [[a!6220!6220U23(a!6220!6220isNat(_x0))]] [[a!6220!6220U23(tt)]] = 0 >= 0 = [[tt]] [[a!6220!6220U31(tt, _x0)]] = 0 >= 0 = [[a!6220!6220U32(a!6220!6220isNatIListKind(_x0), _x0)]] [[a!6220!6220U32(tt, _x0)]] = 0 >= 0 = [[a!6220!6220U33(a!6220!6220isNatList(_x0))]] [[a!6220!6220U33(tt)]] = 0 >= 0 = [[tt]] [[a!6220!6220U41(tt, _x0, _x1)]] = 0 >= 0 = [[a!6220!6220U42(a!6220!6220isNatKind(_x0), _x0, _x1)]] [[a!6220!6220U42(tt, _x0, _x1)]] = 0 >= 0 = [[a!6220!6220U43(a!6220!6220isNatIListKind(_x1), _x0, _x1)]] [[a!6220!6220U43(tt, _x0, _x1)]] = 0 >= 0 = [[a!6220!6220U44(a!6220!6220isNatIListKind(_x1), _x0, _x1)]] [[a!6220!6220U44(tt, _x0, _x1)]] = 0 >= 0 = [[a!6220!6220U45(a!6220!6220isNat(_x0), _x1)]] [[a!6220!6220U45(tt, _x0)]] = 0 >= 0 = [[a!6220!6220U46(a!6220!6220isNatIList(_x0))]] [[a!6220!6220U46(tt)]] = 0 >= 0 = [[tt]] [[a!6220!6220U51(tt, _x0)]] = 0 >= 0 = [[a!6220!6220U52(a!6220!6220isNatIListKind(_x0))]] [[a!6220!6220U52(tt)]] = 0 >= 0 = [[tt]] [[a!6220!6220U61(tt, _x0)]] = 0 >= 0 = [[a!6220!6220U62(a!6220!6220isNatIListKind(_x0))]] [[a!6220!6220U62(tt)]] = 0 >= 0 = [[tt]] [[a!6220!6220U71(tt)]] = 0 >= 0 = [[tt]] [[a!6220!6220U81(tt)]] = 0 >= 0 = [[tt]] [[a!6220!6220U91(tt, _x0, _x1)]] = 0 >= 0 = [[a!6220!6220U92(a!6220!6220isNatKind(_x0), _x0, _x1)]] [[a!6220!6220U92(tt, _x0, _x1)]] = 0 >= 0 = [[a!6220!6220U93(a!6220!6220isNatIListKind(_x1), _x0, _x1)]] [[a!6220!6220U93(tt, _x0, _x1)]] = 0 >= 0 = [[a!6220!6220U94(a!6220!6220isNatIListKind(_x1), _x0, _x1)]] [[a!6220!6220U94(tt, _x0, _x1)]] = 0 >= 0 = [[a!6220!6220U95(a!6220!6220isNat(_x0), _x1)]] [[a!6220!6220U95(tt, _x0)]] = 0 >= 0 = [[a!6220!6220U96(a!6220!6220isNatList(_x0))]] [[a!6220!6220U96(tt)]] = 0 >= 0 = [[tt]] [[a!6220!6220isNat(0)]] = 0 >= 0 = [[tt]] [[a!6220!6220isNat(length(_x0))]] = 0 >= 0 = [[a!6220!6220U11(a!6220!6220isNatIListKind(_x0), _x0)]] [[a!6220!6220isNat(s(_x0))]] = 0 >= 0 = [[a!6220!6220U21(a!6220!6220isNatKind(_x0), _x0)]] [[a!6220!6220isNatIList(_x0)]] = 0 >= 0 = [[a!6220!6220U31(a!6220!6220isNatIListKind(_x0), _x0)]] [[a!6220!6220isNatIList(zeros)]] = 0 >= 0 = [[tt]] [[a!6220!6220isNatIList(cons(_x0, _x1))]] = 0 >= 0 = [[a!6220!6220U41(a!6220!6220isNatKind(_x0), _x0, _x1)]] [[a!6220!6220isNatIListKind(nil)]] = 0 >= 0 = [[tt]] [[a!6220!6220isNatIListKind(zeros)]] = 0 >= 0 = [[tt]] [[a!6220!6220isNatIListKind(cons(_x0, _x1))]] = 0 >= 0 = [[a!6220!6220U51(a!6220!6220isNatKind(_x0), _x1)]] [[a!6220!6220isNatIListKind(take(_x0, _x1))]] = 0 >= 0 = [[a!6220!6220U61(a!6220!6220isNatKind(_x0), _x1)]] [[a!6220!6220isNatKind(0)]] = 0 >= 0 = [[tt]] [[a!6220!6220isNatKind(length(_x0))]] = 0 >= 0 = [[a!6220!6220U71(a!6220!6220isNatIListKind(_x0))]] [[a!6220!6220isNatKind(s(_x0))]] = 0 >= 0 = [[a!6220!6220U81(a!6220!6220isNatKind(_x0))]] [[a!6220!6220isNatList(nil)]] = 0 >= 0 = [[tt]] [[a!6220!6220isNatList(cons(_x0, _x1))]] = 0 >= 0 = [[a!6220!6220U91(a!6220!6220isNatKind(_x0), _x0, _x1)]] [[a!6220!6220isNatList(take(_x0, _x1))]] = 0 >= 0 = [[a!6220!6220U101(a!6220!6220isNatKind(_x0), _x0, _x1)]] [[a!6220!6220length(nil)]] = 0 >= 0 = [[0]] [[a!6220!6220length(cons(_x0, _x1))]] = 0 >= 0 = [[a!6220!6220U111(a!6220!6220isNatList(_x1), _x1, _x0)]] [[a!6220!6220take(0, _x0)]] = 1 + 2x0 >= 1 = [[a!6220!6220U121(a!6220!6220isNatIList(_x0), _x0)]] [[a!6220!6220take(s(_x0), cons(_x1, _x2))]] = 1 + 2x0 + 2x1 >= 2x1 = [[a!6220!6220U131(a!6220!6220isNatIList(_x2), _x2, _x0, _x1)]] [[mark(zeros)]] = 2 >= 1 = [[a!6220!6220zeros]] [[mark(U101(_x0, _x1, _x2))]] = 2x0 >= 2x0 = [[a!6220!6220U101(mark(_x0), _x1, _x2)]] [[mark(U102(_x0, _x1, _x2))]] = 2x0 >= 2x0 = [[a!6220!6220U102(mark(_x0), _x1, _x2)]] [[mark(isNatKind(_x0))]] = 0 >= 0 = [[a!6220!6220isNatKind(_x0)]] [[mark(U103(_x0, _x1, _x2))]] = 4x0 >= 4x0 = [[a!6220!6220U103(mark(_x0), _x1, _x2)]] [[mark(isNatIListKind(_x0))]] = 0 >= 0 = [[a!6220!6220isNatIListKind(_x0)]] [[mark(U104(_x0, _x1, _x2))]] = 2x0 >= 2x0 = [[a!6220!6220U104(mark(_x0), _x1, _x2)]] [[mark(U105(_x0, _x1))]] = 2x0 >= 2x0 = [[a!6220!6220U105(mark(_x0), _x1)]] [[mark(isNat(_x0))]] = 0 >= 0 = [[a!6220!6220isNat(_x0)]] [[mark(U106(_x0))]] = 2x0 >= 2x0 = [[a!6220!6220U106(mark(_x0))]] [[mark(isNatIList(_x0))]] = 0 >= 0 = [[a!6220!6220isNatIList(_x0)]] [[mark(U11(_x0, _x1))]] = 4x0 >= 4x0 = [[a!6220!6220U11(mark(_x0), _x1)]] [[mark(U12(_x0, _x1))]] = 2x0 >= 2x0 = [[a!6220!6220U12(mark(_x0), _x1)]] [[mark(U111(_x0, _x1, _x2))]] = 0 >= 0 = [[a!6220!6220U111(mark(_x0), _x1, _x2)]] [[mark(U112(_x0, _x1, _x2))]] = 0 >= 0 = [[a!6220!6220U112(mark(_x0), _x1, _x2)]] [[mark(U113(_x0, _x1, _x2))]] = 0 >= 0 = [[a!6220!6220U113(mark(_x0), _x1, _x2)]] [[mark(U114(_x0, _x1))]] = 0 >= 0 = [[a!6220!6220U114(mark(_x0), _x1)]] [[mark(length(_x0))]] = 0 >= 0 = [[a!6220!6220length(mark(_x0))]] [[mark(U13(_x0))]] = 2x0 >= 2x0 = [[a!6220!6220U13(mark(_x0))]] [[mark(isNatList(_x0))]] = 0 >= 0 = [[a!6220!6220isNatList(_x0)]] [[mark(U121(_x0, _x1))]] = 2 + 4x0 >= 1 + 4x0 = [[a!6220!6220U121(mark(_x0), _x1)]] [[mark(U122(_x0))]] = 2 + 2x0 >= 1 + 2x0 = [[a!6220!6220U122(mark(_x0))]] [[mark(U131(_x0, _x1, _x2, _x3))]] = 2x3 + 4x0 >= 2x3 + 4x0 = [[a!6220!6220U131(mark(_x0), _x1, _x2, _x3)]] [[mark(U132(_x0, _x1, _x2, _x3))]] = 2x0 + 4x3 >= 2x0 + 2x3 = [[a!6220!6220U132(mark(_x0), _x1, _x2, _x3)]] [[mark(U133(_x0, _x1, _x2, _x3))]] = 2x0 + 4x3 >= 2x0 + 2x3 = [[a!6220!6220U133(mark(_x0), _x1, _x2, _x3)]] [[mark(U134(_x0, _x1, _x2, _x3))]] = 2x0 + 4x3 >= 2x0 + 2x3 = [[a!6220!6220U134(mark(_x0), _x1, _x2, _x3)]] [[mark(U135(_x0, _x1, _x2, _x3))]] = 2x0 + 2x3 >= 2x0 + 2x3 = [[a!6220!6220U135(mark(_x0), _x1, _x2, _x3)]] [[mark(U136(_x0, _x1, _x2, _x3))]] = 2x0 + 4x3 >= 2x0 + 2x3 = [[a!6220!6220U136(mark(_x0), _x1, _x2, _x3)]] [[mark(take(_x0, _x1))]] = 2 + 4x0 + 4x1 >= 1 + 4x0 + 4x1 = [[a!6220!6220take(mark(_x0), mark(_x1))]] [[mark(U21(_x0, _x1))]] = 2x0 >= 2x0 = [[a!6220!6220U21(mark(_x0), _x1)]] [[mark(U22(_x0, _x1))]] = 4x0 >= 4x0 = [[a!6220!6220U22(mark(_x0), _x1)]] [[mark(U23(_x0))]] = 2x0 >= 2x0 = [[a!6220!6220U23(mark(_x0))]] [[mark(U31(_x0, _x1))]] = 2x0 >= 2x0 = [[a!6220!6220U31(mark(_x0), _x1)]] [[mark(U32(_x0, _x1))]] = 2x0 >= 2x0 = [[a!6220!6220U32(mark(_x0), _x1)]] [[mark(U33(_x0))]] = 4x0 >= 4x0 = [[a!6220!6220U33(mark(_x0))]] [[mark(U41(_x0, _x1, _x2))]] = 4x0 >= 4x0 = [[a!6220!6220U41(mark(_x0), _x1, _x2)]] [[mark(U42(_x0, _x1, _x2))]] = 2x0 >= 2x0 = [[a!6220!6220U42(mark(_x0), _x1, _x2)]] [[mark(U43(_x0, _x1, _x2))]] = 2x0 >= 2x0 = [[a!6220!6220U43(mark(_x0), _x1, _x2)]] [[mark(U44(_x0, _x1, _x2))]] = 4x0 >= 4x0 = [[a!6220!6220U44(mark(_x0), _x1, _x2)]] [[mark(U45(_x0, _x1))]] = 2x0 >= 2x0 = [[a!6220!6220U45(mark(_x0), _x1)]] [[mark(U46(_x0))]] = 2x0 >= 2x0 = [[a!6220!6220U46(mark(_x0))]] [[mark(U51(_x0, _x1))]] = 2x0 >= 2x0 = [[a!6220!6220U51(mark(_x0), _x1)]] [[mark(U52(_x0))]] = 2x0 >= 2x0 = [[a!6220!6220U52(mark(_x0))]] [[mark(U61(_x0, _x1))]] = 4x0 >= 4x0 = [[a!6220!6220U61(mark(_x0), _x1)]] [[mark(U62(_x0))]] = 2x0 >= 2x0 = [[a!6220!6220U62(mark(_x0))]] [[mark(U71(_x0))]] = 4x0 >= 4x0 = [[a!6220!6220U71(mark(_x0))]] [[mark(U81(_x0))]] = 4x0 >= 4x0 = [[a!6220!6220U81(mark(_x0))]] [[mark(U91(_x0, _x1, _x2))]] = 2x0 >= 2x0 = [[a!6220!6220U91(mark(_x0), _x1, _x2)]] [[mark(U92(_x0, _x1, _x2))]] = 2x0 >= 2x0 = [[a!6220!6220U92(mark(_x0), _x1, _x2)]] [[mark(U93(_x0, _x1, _x2))]] = 2x0 >= 2x0 = [[a!6220!6220U93(mark(_x0), _x1, _x2)]] [[mark(U94(_x0, _x1, _x2))]] = 2x0 >= 2x0 = [[a!6220!6220U94(mark(_x0), _x1, _x2)]] [[mark(U95(_x0, _x1))]] = 2x0 >= 2x0 = [[a!6220!6220U95(mark(_x0), _x1)]] [[mark(U96(_x0))]] = 4x0 >= 4x0 = [[a!6220!6220U96(mark(_x0))]] [[mark(cons(_x0, _x1))]] = 2x0 >= 2x0 = [[cons(mark(_x0), _x1)]] [[mark(0)]] = 0 >= 0 = [[0]] [[mark(tt)]] = 0 >= 0 = [[tt]] [[mark(s(_x0))]] = 2x0 >= 2x0 = [[s(mark(_x0))]] [[mark(nil)]] = 0 >= 0 = [[nil]] [[a!6220!6220zeros]] = 1 >= 1 = [[zeros]] [[a!6220!6220U101(_x0, _x1, _x2)]] = x0 >= x0 = [[U101(_x0, _x1, _x2)]] [[a!6220!6220U102(_x0, _x1, _x2)]] = x0 >= x0 = [[U102(_x0, _x1, _x2)]] [[a!6220!6220isNatKind(_x0)]] = 0 >= 0 = [[isNatKind(_x0)]] [[a!6220!6220U103(_x0, _x1, _x2)]] = 2x0 >= 2x0 = [[U103(_x0, _x1, _x2)]] [[a!6220!6220isNatIListKind(_x0)]] = 0 >= 0 = [[isNatIListKind(_x0)]] [[a!6220!6220U104(_x0, _x1, _x2)]] = x0 >= x0 = [[U104(_x0, _x1, _x2)]] [[a!6220!6220U105(_x0, _x1)]] = x0 >= x0 = [[U105(_x0, _x1)]] [[a!6220!6220isNat(_x0)]] = 0 >= 0 = [[isNat(_x0)]] [[a!6220!6220U106(_x0)]] = x0 >= x0 = [[U106(_x0)]] [[a!6220!6220isNatIList(_x0)]] = 0 >= 0 = [[isNatIList(_x0)]] [[a!6220!6220U11(_x0, _x1)]] = 2x0 >= 2x0 = [[U11(_x0, _x1)]] [[a!6220!6220U12(_x0, _x1)]] = x0 >= x0 = [[U12(_x0, _x1)]] [[a!6220!6220U111(_x0, _x1, _x2)]] = 0 >= 0 = [[U111(_x0, _x1, _x2)]] [[a!6220!6220U112(_x0, _x1, _x2)]] = 0 >= 0 = [[U112(_x0, _x1, _x2)]] [[a!6220!6220U113(_x0, _x1, _x2)]] = 0 >= 0 = [[U113(_x0, _x1, _x2)]] [[a!6220!6220U114(_x0, _x1)]] = 0 >= 0 = [[U114(_x0, _x1)]] [[a!6220!6220length(_x0)]] = 0 >= 0 = [[length(_x0)]] [[a!6220!6220U13(_x0)]] = x0 >= x0 = [[U13(_x0)]] [[a!6220!6220isNatList(_x0)]] = 0 >= 0 = [[isNatList(_x0)]] [[a!6220!6220U121(_x0, _x1)]] = 1 + 2x0 >= 1 + 2x0 = [[U121(_x0, _x1)]] [[a!6220!6220U122(_x0)]] = 1 + x0 >= 1 + x0 = [[U122(_x0)]] [[a!6220!6220U131(_x0, _x1, _x2, _x3)]] = 2x0 + 2x3 >= x3 + 2x0 = [[U131(_x0, _x1, _x2, _x3)]] [[a!6220!6220U132(_x0, _x1, _x2, _x3)]] = x0 + 2x3 >= x0 + 2x3 = [[U132(_x0, _x1, _x2, _x3)]] [[a!6220!6220U133(_x0, _x1, _x2, _x3)]] = x0 + 2x3 >= x0 + 2x3 = [[U133(_x0, _x1, _x2, _x3)]] [[a!6220!6220U134(_x0, _x1, _x2, _x3)]] = x0 + 2x3 >= x0 + 2x3 = [[U134(_x0, _x1, _x2, _x3)]] [[a!6220!6220U135(_x0, _x1, _x2, _x3)]] = x0 + 2x3 >= x0 + x3 = [[U135(_x0, _x1, _x2, _x3)]] [[a!6220!6220U136(_x0, _x1, _x2, _x3)]] = x0 + 2x3 >= x0 + 2x3 = [[U136(_x0, _x1, _x2, _x3)]] [[a!6220!6220take(_x0, _x1)]] = 1 + 2x0 + 2x1 >= 1 + 2x0 + 2x1 = [[take(_x0, _x1)]] [[a!6220!6220U21(_x0, _x1)]] = x0 >= x0 = [[U21(_x0, _x1)]] [[a!6220!6220U22(_x0, _x1)]] = 2x0 >= 2x0 = [[U22(_x0, _x1)]] [[a!6220!6220U23(_x0)]] = x0 >= x0 = [[U23(_x0)]] [[a!6220!6220U31(_x0, _x1)]] = x0 >= x0 = [[U31(_x0, _x1)]] [[a!6220!6220U32(_x0, _x1)]] = x0 >= x0 = [[U32(_x0, _x1)]] [[a!6220!6220U33(_x0)]] = 2x0 >= 2x0 = [[U33(_x0)]] [[a!6220!6220U41(_x0, _x1, _x2)]] = 2x0 >= 2x0 = [[U41(_x0, _x1, _x2)]] [[a!6220!6220U42(_x0, _x1, _x2)]] = x0 >= x0 = [[U42(_x0, _x1, _x2)]] [[a!6220!6220U43(_x0, _x1, _x2)]] = x0 >= x0 = [[U43(_x0, _x1, _x2)]] [[a!6220!6220U44(_x0, _x1, _x2)]] = 2x0 >= 2x0 = [[U44(_x0, _x1, _x2)]] [[a!6220!6220U45(_x0, _x1)]] = x0 >= x0 = [[U45(_x0, _x1)]] [[a!6220!6220U46(_x0)]] = x0 >= x0 = [[U46(_x0)]] [[a!6220!6220U51(_x0, _x1)]] = x0 >= x0 = [[U51(_x0, _x1)]] [[a!6220!6220U52(_x0)]] = x0 >= x0 = [[U52(_x0)]] [[a!6220!6220U61(_x0, _x1)]] = 2x0 >= 2x0 = [[U61(_x0, _x1)]] [[a!6220!6220U62(_x0)]] = x0 >= x0 = [[U62(_x0)]] [[a!6220!6220U71(_x0)]] = 2x0 >= 2x0 = [[U71(_x0)]] [[a!6220!6220U81(_x0)]] = 2x0 >= 2x0 = [[U81(_x0)]] [[a!6220!6220U91(_x0, _x1, _x2)]] = x0 >= x0 = [[U91(_x0, _x1, _x2)]] [[a!6220!6220U92(_x0, _x1, _x2)]] = x0 >= x0 = [[U92(_x0, _x1, _x2)]] [[a!6220!6220U93(_x0, _x1, _x2)]] = x0 >= x0 = [[U93(_x0, _x1, _x2)]] [[a!6220!6220U94(_x0, _x1, _x2)]] = x0 >= x0 = [[U94(_x0, _x1, _x2)]] [[a!6220!6220U95(_x0, _x1)]] = x0 >= x0 = [[U95(_x0, _x1)]] [[a!6220!6220U96(_x0)]] = 2x0 >= 2x0 = [[U96(_x0)]] 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: a!6220!6220U131#(tt, X, Y, Z) =#> a!6220!6220U132#(a!6220!6220isNatIListKind(X), X, Y, Z) a!6220!6220U132#(tt, X, Y, Z) =#> a!6220!6220U133#(a!6220!6220isNat(Y), X, Y, Z) a!6220!6220U133#(tt, X, Y, Z) =#> a!6220!6220U134#(a!6220!6220isNatKind(Y), X, Y, Z) a!6220!6220U134#(tt, X, Y, Z) =#> a!6220!6220U135#(a!6220!6220isNat(Z), X, Y, Z) a!6220!6220U135#(tt, X, Y, Z) =#> a!6220!6220U136#(a!6220!6220isNatKind(Z), X, Y, Z) a!6220!6220U136#(tt, X, Y, Z) =#> mark#(Z) a!6220!6220take#(s(X), cons(Y, Z)) =#> a!6220!6220U131#(a!6220!6220isNatIList(Z), Z, X, Y) mark#(U101(X, Y, Z)) =#> mark#(X) mark#(U102(X, Y, Z)) =#> mark#(X) mark#(U103(X, Y, Z)) =#> mark#(X) mark#(U104(X, Y, Z)) =#> mark#(X) mark#(U105(X, Y)) =#> mark#(X) mark#(U106(X)) =#> mark#(X) mark#(U11(X, Y)) =#> mark#(X) mark#(U12(X, Y)) =#> mark#(X) mark#(U13(X)) =#> mark#(X) mark#(U131(X, Y, Z, U)) =#> a!6220!6220U131#(mark(X), Y, Z, U) mark#(U131(X, Y, Z, U)) =#> mark#(X) mark#(U132(X, Y, Z, U)) =#> a!6220!6220U132#(mark(X), Y, Z, U) mark#(U132(X, Y, Z, U)) =#> mark#(X) mark#(U133(X, Y, Z, U)) =#> a!6220!6220U133#(mark(X), Y, Z, U) mark#(U133(X, Y, Z, U)) =#> mark#(X) mark#(U134(X, Y, Z, U)) =#> a!6220!6220U134#(mark(X), Y, Z, U) mark#(U134(X, Y, Z, U)) =#> mark#(X) mark#(U135(X, Y, Z, U)) =#> a!6220!6220U135#(mark(X), Y, Z, U) mark#(U135(X, Y, Z, U)) =#> mark#(X) mark#(U136(X, Y, Z, U)) =#> a!6220!6220U136#(mark(X), Y, Z, U) mark#(U136(X, Y, Z, U)) =#> mark#(X) mark#(U21(X, Y)) =#> mark#(X) mark#(U22(X, Y)) =#> mark#(X) mark#(U23(X)) =#> mark#(X) mark#(U31(X, Y)) =#> mark#(X) mark#(U32(X, Y)) =#> mark#(X) mark#(U33(X)) =#> mark#(X) mark#(U41(X, Y, Z)) =#> mark#(X) mark#(U42(X, Y, Z)) =#> mark#(X) mark#(U43(X, Y, Z)) =#> mark#(X) mark#(U44(X, Y, Z)) =#> mark#(X) mark#(U45(X, Y)) =#> mark#(X) mark#(U46(X)) =#> mark#(X) mark#(U51(X, Y)) =#> mark#(X) mark#(U52(X)) =#> mark#(X) mark#(U61(X, Y)) =#> mark#(X) mark#(U62(X)) =#> mark#(X) mark#(U71(X)) =#> mark#(X) mark#(U81(X)) =#> mark#(X) mark#(U91(X, Y, Z)) =#> mark#(X) mark#(U92(X, Y, Z)) =#> mark#(X) mark#(U93(X, Y, Z)) =#> mark#(X) mark#(U94(X, Y, Z)) =#> mark#(X) mark#(U95(X, Y)) =#> mark#(X) mark#(U96(X)) =#> mark#(X) mark#(cons(X, Y)) =#> mark#(X) mark#(s(X)) =#> mark#(X) Thus, the original system is terminating if each of (P_1, R_0, minimal, formative), (P_6, R_0, minimal, formative) and (P_8, R_0, minimal, formative) is finite. We consider the dependency pair problem (P_8, 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 * 1 : 2 * 2 : 3 * 3 : 4 * 4 : 5 * 5 : 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53 * 6 : 0 * 7 : 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53 * 8 : 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53 * 9 : 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53 * 10 : 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53 * 11 : 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53 * 12 : 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53 * 13 : 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53 * 14 : 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53 * 15 : 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53 * 16 : 0 * 17 : 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53 * 18 : 1 * 19 : 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53 * 20 : 2 * 21 : 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53 * 22 : 3 * 23 : 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53 * 24 : 4 * 25 : 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53 * 26 : 5 * 27 : 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53 * 28 : 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53 * 29 : 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53 * 30 : 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53 * 31 : 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53 * 32 : 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53 * 33 : 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53 * 34 : 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53 * 35 : 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53 * 36 : 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53 * 37 : 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53 * 38 : 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53 * 39 : 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53 * 40 : 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53 * 41 : 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53 * 42 : 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53 * 43 : 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53 * 44 : 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53 * 45 : 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53 * 46 : 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53 * 47 : 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53 * 48 : 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53 * 49 : 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53 * 50 : 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53 * 51 : 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53 * 52 : 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53 * 53 : 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53 This graph has the following strongly connected components: P_9: a!6220!6220U131#(tt, X, Y, Z) =#> a!6220!6220U132#(a!6220!6220isNatIListKind(X), X, Y, Z) a!6220!6220U132#(tt, X, Y, Z) =#> a!6220!6220U133#(a!6220!6220isNat(Y), X, Y, Z) a!6220!6220U133#(tt, X, Y, Z) =#> a!6220!6220U134#(a!6220!6220isNatKind(Y), X, Y, Z) a!6220!6220U134#(tt, X, Y, Z) =#> a!6220!6220U135#(a!6220!6220isNat(Z), X, Y, Z) a!6220!6220U135#(tt, X, Y, Z) =#> a!6220!6220U136#(a!6220!6220isNatKind(Z), X, Y, Z) a!6220!6220U136#(tt, X, Y, Z) =#> mark#(Z) mark#(U101(X, Y, Z)) =#> mark#(X) mark#(U102(X, Y, Z)) =#> mark#(X) mark#(U103(X, Y, Z)) =#> mark#(X) mark#(U104(X, Y, Z)) =#> mark#(X) mark#(U105(X, Y)) =#> mark#(X) mark#(U106(X)) =#> mark#(X) mark#(U11(X, Y)) =#> mark#(X) mark#(U12(X, Y)) =#> mark#(X) mark#(U13(X)) =#> mark#(X) mark#(U131(X, Y, Z, U)) =#> a!6220!6220U131#(mark(X), Y, Z, U) mark#(U131(X, Y, Z, U)) =#> mark#(X) mark#(U132(X, Y, Z, U)) =#> a!6220!6220U132#(mark(X), Y, Z, U) mark#(U132(X, Y, Z, U)) =#> mark#(X) mark#(U133(X, Y, Z, U)) =#> a!6220!6220U133#(mark(X), Y, Z, U) mark#(U133(X, Y, Z, U)) =#> mark#(X) mark#(U134(X, Y, Z, U)) =#> a!6220!6220U134#(mark(X), Y, Z, U) mark#(U134(X, Y, Z, U)) =#> mark#(X) mark#(U135(X, Y, Z, U)) =#> a!6220!6220U135#(mark(X), Y, Z, U) mark#(U135(X, Y, Z, U)) =#> mark#(X) mark#(U136(X, Y, Z, U)) =#> a!6220!6220U136#(mark(X), Y, Z, U) mark#(U136(X, Y, Z, U)) =#> mark#(X) mark#(U21(X, Y)) =#> mark#(X) mark#(U22(X, Y)) =#> mark#(X) mark#(U23(X)) =#> mark#(X) mark#(U31(X, Y)) =#> mark#(X) mark#(U32(X, Y)) =#> mark#(X) mark#(U33(X)) =#> mark#(X) mark#(U41(X, Y, Z)) =#> mark#(X) mark#(U42(X, Y, Z)) =#> mark#(X) mark#(U43(X, Y, Z)) =#> mark#(X) mark#(U44(X, Y, Z)) =#> mark#(X) mark#(U45(X, Y)) =#> mark#(X) mark#(U46(X)) =#> mark#(X) mark#(U51(X, Y)) =#> mark#(X) mark#(U52(X)) =#> mark#(X) mark#(U61(X, Y)) =#> mark#(X) mark#(U62(X)) =#> mark#(X) mark#(U71(X)) =#> mark#(X) mark#(U81(X)) =#> mark#(X) mark#(U91(X, Y, Z)) =#> mark#(X) mark#(U92(X, Y, Z)) =#> mark#(X) mark#(U93(X, Y, Z)) =#> mark#(X) mark#(U94(X, Y, Z)) =#> mark#(X) mark#(U95(X, Y)) =#> mark#(X) mark#(U96(X)) =#> mark#(X) mark#(cons(X, Y)) =#> mark#(X) mark#(s(X)) =#> mark#(X) By [Kop12, Thm. 7.31], we may replace any dependency pair problem (P_8, R_0, m, f) by (P_9, R_0, m, f). Thus, the original system is terminating if each of (P_1, R_0, minimal, formative), (P_6, R_0, minimal, formative) and (P_9, R_0, minimal, formative) is finite. We consider the dependency pair problem (P_9, R_0, minimal, formative). We apply the subterm criterion with the following projection function: nu(a!6220!6220U131#) = 4 nu(a!6220!6220U132#) = 4 nu(a!6220!6220U133#) = 4 nu(a!6220!6220U134#) = 4 nu(a!6220!6220U135#) = 4 nu(a!6220!6220U136#) = 4 nu(mark#) = 1 Thus, we can orient the dependency pairs as follows: nu(a!6220!6220U131#(tt, X, Y, Z)) = Z = Z = nu(a!6220!6220U132#(a!6220!6220isNatIListKind(X), X, Y, Z)) nu(a!6220!6220U132#(tt, X, Y, Z)) = Z = Z = nu(a!6220!6220U133#(a!6220!6220isNat(Y), X, Y, Z)) nu(a!6220!6220U133#(tt, X, Y, Z)) = Z = Z = nu(a!6220!6220U134#(a!6220!6220isNatKind(Y), X, Y, Z)) nu(a!6220!6220U134#(tt, X, Y, Z)) = Z = Z = nu(a!6220!6220U135#(a!6220!6220isNat(Z), X, Y, Z)) nu(a!6220!6220U135#(tt, X, Y, Z)) = Z = Z = nu(a!6220!6220U136#(a!6220!6220isNatKind(Z), X, Y, Z)) nu(a!6220!6220U136#(tt, X, Y, Z)) = Z = Z = nu(mark#(Z)) nu(mark#(U101(X, Y, Z))) = U101(X, Y, Z) |> X = nu(mark#(X)) nu(mark#(U102(X, Y, Z))) = U102(X, Y, Z) |> X = nu(mark#(X)) nu(mark#(U103(X, Y, Z))) = U103(X, Y, Z) |> X = nu(mark#(X)) nu(mark#(U104(X, Y, Z))) = U104(X, Y, Z) |> X = nu(mark#(X)) nu(mark#(U105(X, Y))) = U105(X, Y) |> X = nu(mark#(X)) nu(mark#(U106(X))) = U106(X) |> X = nu(mark#(X)) nu(mark#(U11(X, Y))) = U11(X, Y) |> X = nu(mark#(X)) nu(mark#(U12(X, Y))) = U12(X, Y) |> X = nu(mark#(X)) nu(mark#(U13(X))) = U13(X) |> X = nu(mark#(X)) nu(mark#(U131(X, Y, Z, U))) = U131(X, Y, Z, U) |> U = nu(a!6220!6220U131#(mark(X), Y, Z, U)) nu(mark#(U131(X, Y, Z, U))) = U131(X, Y, Z, U) |> X = nu(mark#(X)) nu(mark#(U132(X, Y, Z, U))) = U132(X, Y, Z, U) |> U = nu(a!6220!6220U132#(mark(X), Y, Z, U)) nu(mark#(U132(X, Y, Z, U))) = U132(X, Y, Z, U) |> X = nu(mark#(X)) nu(mark#(U133(X, Y, Z, U))) = U133(X, Y, Z, U) |> U = nu(a!6220!6220U133#(mark(X), Y, Z, U)) nu(mark#(U133(X, Y, Z, U))) = U133(X, Y, Z, U) |> X = nu(mark#(X)) nu(mark#(U134(X, Y, Z, U))) = U134(X, Y, Z, U) |> U = nu(a!6220!6220U134#(mark(X), Y, Z, U)) nu(mark#(U134(X, Y, Z, U))) = U134(X, Y, Z, U) |> X = nu(mark#(X)) nu(mark#(U135(X, Y, Z, U))) = U135(X, Y, Z, U) |> U = nu(a!6220!6220U135#(mark(X), Y, Z, U)) nu(mark#(U135(X, Y, Z, U))) = U135(X, Y, Z, U) |> X = nu(mark#(X)) nu(mark#(U136(X, Y, Z, U))) = U136(X, Y, Z, U) |> U = nu(a!6220!6220U136#(mark(X), Y, Z, U)) nu(mark#(U136(X, Y, Z, U))) = U136(X, Y, Z, U) |> X = nu(mark#(X)) nu(mark#(U21(X, Y))) = U21(X, Y) |> X = nu(mark#(X)) nu(mark#(U22(X, Y))) = U22(X, Y) |> X = nu(mark#(X)) nu(mark#(U23(X))) = U23(X) |> X = nu(mark#(X)) nu(mark#(U31(X, Y))) = U31(X, Y) |> X = nu(mark#(X)) nu(mark#(U32(X, Y))) = U32(X, Y) |> X = nu(mark#(X)) nu(mark#(U33(X))) = U33(X) |> X = nu(mark#(X)) nu(mark#(U41(X, Y, Z))) = U41(X, Y, Z) |> X = nu(mark#(X)) nu(mark#(U42(X, Y, Z))) = U42(X, Y, Z) |> X = nu(mark#(X)) nu(mark#(U43(X, Y, Z))) = U43(X, Y, Z) |> X = nu(mark#(X)) nu(mark#(U44(X, Y, Z))) = U44(X, Y, Z) |> X = nu(mark#(X)) nu(mark#(U45(X, Y))) = U45(X, Y) |> X = nu(mark#(X)) nu(mark#(U46(X))) = U46(X) |> X = nu(mark#(X)) nu(mark#(U51(X, Y))) = U51(X, Y) |> X = nu(mark#(X)) nu(mark#(U52(X))) = U52(X) |> X = nu(mark#(X)) nu(mark#(U61(X, Y))) = U61(X, Y) |> X = nu(mark#(X)) nu(mark#(U62(X))) = U62(X) |> X = nu(mark#(X)) nu(mark#(U71(X))) = U71(X) |> X = nu(mark#(X)) nu(mark#(U81(X))) = U81(X) |> X = nu(mark#(X)) nu(mark#(U91(X, Y, Z))) = U91(X, Y, Z) |> X = nu(mark#(X)) nu(mark#(U92(X, Y, Z))) = U92(X, Y, Z) |> X = nu(mark#(X)) nu(mark#(U93(X, Y, Z))) = U93(X, Y, Z) |> X = nu(mark#(X)) nu(mark#(U94(X, Y, Z))) = U94(X, Y, Z) |> X = nu(mark#(X)) nu(mark#(U95(X, Y))) = U95(X, Y) |> X = nu(mark#(X)) nu(mark#(U96(X))) = U96(X) |> X = nu(mark#(X)) nu(mark#(cons(X, Y))) = cons(X, Y) |> X = nu(mark#(X)) nu(mark#(s(X))) = s(X) |> X = nu(mark#(X)) By [Kop12, Thm. 7.35], we may replace a dependency pair problem (P_9, R_0, minimal, f) by (P_10, R_0, minimal, f), where P_10 contains: a!6220!6220U131#(tt, X, Y, Z) =#> a!6220!6220U132#(a!6220!6220isNatIListKind(X), X, Y, Z) a!6220!6220U132#(tt, X, Y, Z) =#> a!6220!6220U133#(a!6220!6220isNat(Y), X, Y, Z) a!6220!6220U133#(tt, X, Y, Z) =#> a!6220!6220U134#(a!6220!6220isNatKind(Y), X, Y, Z) a!6220!6220U134#(tt, X, Y, Z) =#> a!6220!6220U135#(a!6220!6220isNat(Z), X, Y, Z) a!6220!6220U135#(tt, X, Y, Z) =#> a!6220!6220U136#(a!6220!6220isNatKind(Z), X, Y, Z) a!6220!6220U136#(tt, X, Y, Z) =#> mark#(Z) Thus, the original system is terminating if each of (P_1, R_0, minimal, formative), (P_6, R_0, minimal, formative) and (P_10, R_0, minimal, formative) is finite. We consider the dependency pair problem (P_10, 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 * 1 : 2 * 2 : 3 * 3 : 4 * 4 : 5 * 5 : This graph has no strongly connected components. By [Kop12, Thm. 7.31], this implies finiteness of the dependency pair problem. Thus, the original system is terminating if each of (P_1, R_0, minimal, formative) and (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: a!6220!6220U111#(tt, X, Y) >? a!6220!6220U112#(a!6220!6220isNatIListKind(X), X, Y) a!6220!6220U112#(tt, X, Y) >? a!6220!6220U113#(a!6220!6220isNat(Y), X, Y) a!6220!6220U113#(tt, X, Y) >? a!6220!6220U114#(a!6220!6220isNatKind(Y), X) a!6220!6220U114#(tt, X) >? a!6220!6220length#(mark(X)) a!6220!6220length#(cons(X, Y)) >? a!6220!6220U111#(a!6220!6220isNatList(Y), Y, X) a!6220!6220zeros >= cons(0, zeros) a!6220!6220U101(tt, X, Y) >= a!6220!6220U102(a!6220!6220isNatKind(X), X, Y) a!6220!6220U102(tt, X, Y) >= a!6220!6220U103(a!6220!6220isNatIListKind(Y), X, Y) a!6220!6220U103(tt, X, Y) >= a!6220!6220U104(a!6220!6220isNatIListKind(Y), X, Y) a!6220!6220U104(tt, X, Y) >= a!6220!6220U105(a!6220!6220isNat(X), Y) a!6220!6220U105(tt, X) >= a!6220!6220U106(a!6220!6220isNatIList(X)) a!6220!6220U106(tt) >= tt a!6220!6220U11(tt, X) >= a!6220!6220U12(a!6220!6220isNatIListKind(X), X) a!6220!6220U111(tt, X, Y) >= a!6220!6220U112(a!6220!6220isNatIListKind(X), X, Y) a!6220!6220U112(tt, X, Y) >= a!6220!6220U113(a!6220!6220isNat(Y), X, Y) a!6220!6220U113(tt, X, Y) >= a!6220!6220U114(a!6220!6220isNatKind(Y), X) a!6220!6220U114(tt, X) >= s(a!6220!6220length(mark(X))) a!6220!6220U12(tt, X) >= a!6220!6220U13(a!6220!6220isNatList(X)) a!6220!6220U121(tt, X) >= a!6220!6220U122(a!6220!6220isNatIListKind(X)) a!6220!6220U122(tt) >= nil a!6220!6220U13(tt) >= tt a!6220!6220U131(tt, X, Y, Z) >= a!6220!6220U132(a!6220!6220isNatIListKind(X), X, Y, Z) a!6220!6220U132(tt, X, Y, Z) >= a!6220!6220U133(a!6220!6220isNat(Y), X, Y, Z) a!6220!6220U133(tt, X, Y, Z) >= a!6220!6220U134(a!6220!6220isNatKind(Y), X, Y, Z) a!6220!6220U134(tt, X, Y, Z) >= a!6220!6220U135(a!6220!6220isNat(Z), X, Y, Z) a!6220!6220U135(tt, X, Y, Z) >= a!6220!6220U136(a!6220!6220isNatKind(Z), X, Y, Z) a!6220!6220U136(tt, X, Y, Z) >= cons(mark(Z), take(Y, X)) a!6220!6220U21(tt, X) >= a!6220!6220U22(a!6220!6220isNatKind(X), X) a!6220!6220U22(tt, X) >= a!6220!6220U23(a!6220!6220isNat(X)) a!6220!6220U23(tt) >= tt a!6220!6220U31(tt, X) >= a!6220!6220U32(a!6220!6220isNatIListKind(X), X) a!6220!6220U32(tt, X) >= a!6220!6220U33(a!6220!6220isNatList(X)) a!6220!6220U33(tt) >= tt a!6220!6220U41(tt, X, Y) >= a!6220!6220U42(a!6220!6220isNatKind(X), X, Y) a!6220!6220U42(tt, X, Y) >= a!6220!6220U43(a!6220!6220isNatIListKind(Y), X, Y) a!6220!6220U43(tt, X, Y) >= a!6220!6220U44(a!6220!6220isNatIListKind(Y), X, Y) a!6220!6220U44(tt, X, Y) >= a!6220!6220U45(a!6220!6220isNat(X), Y) a!6220!6220U45(tt, X) >= a!6220!6220U46(a!6220!6220isNatIList(X)) a!6220!6220U46(tt) >= tt a!6220!6220U51(tt, X) >= a!6220!6220U52(a!6220!6220isNatIListKind(X)) a!6220!6220U52(tt) >= tt a!6220!6220U61(tt, X) >= a!6220!6220U62(a!6220!6220isNatIListKind(X)) a!6220!6220U62(tt) >= tt a!6220!6220U71(tt) >= tt a!6220!6220U81(tt) >= tt a!6220!6220U91(tt, X, Y) >= a!6220!6220U92(a!6220!6220isNatKind(X), X, Y) a!6220!6220U92(tt, X, Y) >= a!6220!6220U93(a!6220!6220isNatIListKind(Y), X, Y) a!6220!6220U93(tt, X, Y) >= a!6220!6220U94(a!6220!6220isNatIListKind(Y), X, Y) a!6220!6220U94(tt, X, Y) >= a!6220!6220U95(a!6220!6220isNat(X), Y) a!6220!6220U95(tt, X) >= a!6220!6220U96(a!6220!6220isNatList(X)) a!6220!6220U96(tt) >= tt a!6220!6220isNat(0) >= tt a!6220!6220isNat(length(X)) >= a!6220!6220U11(a!6220!6220isNatIListKind(X), X) a!6220!6220isNat(s(X)) >= a!6220!6220U21(a!6220!6220isNatKind(X), X) a!6220!6220isNatIList(X) >= a!6220!6220U31(a!6220!6220isNatIListKind(X), X) a!6220!6220isNatIList(zeros) >= tt a!6220!6220isNatIList(cons(X, Y)) >= a!6220!6220U41(a!6220!6220isNatKind(X), X, Y) a!6220!6220isNatIListKind(nil) >= tt a!6220!6220isNatIListKind(zeros) >= tt a!6220!6220isNatIListKind(cons(X, Y)) >= a!6220!6220U51(a!6220!6220isNatKind(X), Y) a!6220!6220isNatIListKind(take(X, Y)) >= a!6220!6220U61(a!6220!6220isNatKind(X), Y) a!6220!6220isNatKind(0) >= tt a!6220!6220isNatKind(length(X)) >= a!6220!6220U71(a!6220!6220isNatIListKind(X)) a!6220!6220isNatKind(s(X)) >= a!6220!6220U81(a!6220!6220isNatKind(X)) a!6220!6220isNatList(nil) >= tt a!6220!6220isNatList(cons(X, Y)) >= a!6220!6220U91(a!6220!6220isNatKind(X), X, Y) a!6220!6220isNatList(take(X, Y)) >= a!6220!6220U101(a!6220!6220isNatKind(X), X, Y) a!6220!6220length(nil) >= 0 a!6220!6220length(cons(X, Y)) >= a!6220!6220U111(a!6220!6220isNatList(Y), Y, X) a!6220!6220take(0, X) >= a!6220!6220U121(a!6220!6220isNatIList(X), X) a!6220!6220take(s(X), cons(Y, Z)) >= a!6220!6220U131(a!6220!6220isNatIList(Z), Z, X, Y) mark(zeros) >= a!6220!6220zeros mark(U101(X, Y, Z)) >= a!6220!6220U101(mark(X), Y, Z) mark(U102(X, Y, Z)) >= a!6220!6220U102(mark(X), Y, Z) mark(isNatKind(X)) >= a!6220!6220isNatKind(X) mark(U103(X, Y, Z)) >= a!6220!6220U103(mark(X), Y, Z) mark(isNatIListKind(X)) >= a!6220!6220isNatIListKind(X) mark(U104(X, Y, Z)) >= a!6220!6220U104(mark(X), Y, Z) mark(U105(X, Y)) >= a!6220!6220U105(mark(X), Y) mark(isNat(X)) >= a!6220!6220isNat(X) mark(U106(X)) >= a!6220!6220U106(mark(X)) mark(isNatIList(X)) >= a!6220!6220isNatIList(X) mark(U11(X, Y)) >= a!6220!6220U11(mark(X), Y) mark(U12(X, Y)) >= a!6220!6220U12(mark(X), Y) mark(U111(X, Y, Z)) >= a!6220!6220U111(mark(X), Y, Z) mark(U112(X, Y, Z)) >= a!6220!6220U112(mark(X), Y, Z) mark(U113(X, Y, Z)) >= a!6220!6220U113(mark(X), Y, Z) mark(U114(X, Y)) >= a!6220!6220U114(mark(X), Y) mark(length(X)) >= a!6220!6220length(mark(X)) mark(U13(X)) >= a!6220!6220U13(mark(X)) mark(isNatList(X)) >= a!6220!6220isNatList(X) mark(U121(X, Y)) >= a!6220!6220U121(mark(X), Y) mark(U122(X)) >= a!6220!6220U122(mark(X)) mark(U131(X, Y, Z, U)) >= a!6220!6220U131(mark(X), Y, Z, U) mark(U132(X, Y, Z, U)) >= a!6220!6220U132(mark(X), Y, Z, U) mark(U133(X, Y, Z, U)) >= a!6220!6220U133(mark(X), Y, Z, U) mark(U134(X, Y, Z, U)) >= a!6220!6220U134(mark(X), Y, Z, U) mark(U135(X, Y, Z, U)) >= a!6220!6220U135(mark(X), Y, Z, U) mark(U136(X, Y, Z, U)) >= a!6220!6220U136(mark(X), Y, Z, U) mark(take(X, Y)) >= a!6220!6220take(mark(X), mark(Y)) mark(U21(X, Y)) >= a!6220!6220U21(mark(X), Y) mark(U22(X, Y)) >= a!6220!6220U22(mark(X), Y) mark(U23(X)) >= a!6220!6220U23(mark(X)) mark(U31(X, Y)) >= a!6220!6220U31(mark(X), Y) mark(U32(X, Y)) >= a!6220!6220U32(mark(X), Y) mark(U33(X)) >= a!6220!6220U33(mark(X)) mark(U41(X, Y, Z)) >= a!6220!6220U41(mark(X), Y, Z) mark(U42(X, Y, Z)) >= a!6220!6220U42(mark(X), Y, Z) mark(U43(X, Y, Z)) >= a!6220!6220U43(mark(X), Y, Z) mark(U44(X, Y, Z)) >= a!6220!6220U44(mark(X), Y, Z) mark(U45(X, Y)) >= a!6220!6220U45(mark(X), Y) mark(U46(X)) >= a!6220!6220U46(mark(X)) mark(U51(X, Y)) >= a!6220!6220U51(mark(X), Y) mark(U52(X)) >= a!6220!6220U52(mark(X)) mark(U61(X, Y)) >= a!6220!6220U61(mark(X), Y) mark(U62(X)) >= a!6220!6220U62(mark(X)) mark(U71(X)) >= a!6220!6220U71(mark(X)) mark(U81(X)) >= a!6220!6220U81(mark(X)) mark(U91(X, Y, Z)) >= a!6220!6220U91(mark(X), Y, Z) mark(U92(X, Y, Z)) >= a!6220!6220U92(mark(X), Y, Z) mark(U93(X, Y, Z)) >= a!6220!6220U93(mark(X), Y, Z) mark(U94(X, Y, Z)) >= a!6220!6220U94(mark(X), Y, Z) mark(U95(X, Y)) >= a!6220!6220U95(mark(X), Y) mark(U96(X)) >= a!6220!6220U96(mark(X)) mark(cons(X, Y)) >= cons(mark(X), Y) mark(0) >= 0 mark(tt) >= tt mark(s(X)) >= s(mark(X)) mark(nil) >= nil a!6220!6220zeros >= zeros a!6220!6220U101(X, Y, Z) >= U101(X, Y, Z) a!6220!6220U102(X, Y, Z) >= U102(X, Y, Z) a!6220!6220isNatKind(X) >= isNatKind(X) a!6220!6220U103(X, Y, Z) >= U103(X, Y, Z) a!6220!6220isNatIListKind(X) >= isNatIListKind(X) a!6220!6220U104(X, Y, Z) >= U104(X, Y, Z) a!6220!6220U105(X, Y) >= U105(X, Y) a!6220!6220isNat(X) >= isNat(X) a!6220!6220U106(X) >= U106(X) a!6220!6220isNatIList(X) >= isNatIList(X) a!6220!6220U11(X, Y) >= U11(X, Y) a!6220!6220U12(X, Y) >= U12(X, Y) a!6220!6220U111(X, Y, Z) >= U111(X, Y, Z) a!6220!6220U112(X, Y, Z) >= U112(X, Y, Z) a!6220!6220U113(X, Y, Z) >= U113(X, Y, Z) a!6220!6220U114(X, Y) >= U114(X, Y) a!6220!6220length(X) >= length(X) a!6220!6220U13(X) >= U13(X) a!6220!6220isNatList(X) >= isNatList(X) a!6220!6220U121(X, Y) >= U121(X, Y) a!6220!6220U122(X) >= U122(X) a!6220!6220U131(X, Y, Z, U) >= U131(X, Y, Z, U) a!6220!6220U132(X, Y, Z, U) >= U132(X, Y, Z, U) a!6220!6220U133(X, Y, Z, U) >= U133(X, Y, Z, U) a!6220!6220U134(X, Y, Z, U) >= U134(X, Y, Z, U) a!6220!6220U135(X, Y, Z, U) >= U135(X, Y, Z, U) a!6220!6220U136(X, Y, Z, U) >= U136(X, Y, Z, U) a!6220!6220take(X, Y) >= take(X, Y) a!6220!6220U21(X, Y) >= U21(X, Y) a!6220!6220U22(X, Y) >= U22(X, Y) a!6220!6220U23(X) >= U23(X) a!6220!6220U31(X, Y) >= U31(X, Y) a!6220!6220U32(X, Y) >= U32(X, Y) a!6220!6220U33(X) >= U33(X) a!6220!6220U41(X, Y, Z) >= U41(X, Y, Z) a!6220!6220U42(X, Y, Z) >= U42(X, Y, Z) a!6220!6220U43(X, Y, Z) >= U43(X, Y, Z) a!6220!6220U44(X, Y, Z) >= U44(X, Y, Z) a!6220!6220U45(X, Y) >= U45(X, Y) a!6220!6220U46(X) >= U46(X) a!6220!6220U51(X, Y) >= U51(X, Y) a!6220!6220U52(X) >= U52(X) a!6220!6220U61(X, Y) >= U61(X, Y) a!6220!6220U62(X) >= U62(X) a!6220!6220U71(X) >= U71(X) a!6220!6220U81(X) >= U81(X) a!6220!6220U91(X, Y, Z) >= U91(X, Y, Z) a!6220!6220U92(X, Y, Z) >= U92(X, Y, Z) a!6220!6220U93(X, Y, Z) >= U93(X, Y, Z) a!6220!6220U94(X, Y, Z) >= U94(X, Y, Z) a!6220!6220U95(X, Y) >= U95(X, Y) a!6220!6220U96(X) >= U96(X) We orient these requirements with a polynomial interpretation in the natural numbers. The following interpretation satisfies the requirements: 0 = 1 U101 = \y0y1y2.2y1 U102 = \y0y1y2.2y1 U103 = \y0y1y2.2y1 U104 = \y0y1y2.2y1 U105 = \y0y1.y0 U106 = \y0.2 U11 = \y0y1.2y1 U111 = \y0y1y2.3y1 U112 = \y0y1y2.3y1 U113 = \y0y1y2.3y1 U114 = \y0y1.3y1 U12 = \y0y1.2y1 U121 = \y0y1.1 U122 = \y0.1 U13 = \y0.y0 U131 = \y0y1y2y3.3y2 U132 = \y0y1y2y3.3y2 U133 = \y0y1y2y3.3y2 U134 = \y0y1y2y3.3y2 U135 = \y0y1y2y3.3y2 U136 = \y0y1y2y3.3y2 U21 = \y0y1.2y1 U22 = \y0y1.2y1 U23 = \y0.y0 U31 = \y0y1.y0 U32 = \y0y1.2 U33 = \y0.2 U41 = \y0y1y2.y0 U42 = \y0y1y2.y0 U43 = \y0y1y2.y0 U44 = \y0y1y2.y0 U45 = \y0y1.2 U46 = \y0.y0 U51 = \y0y1.2 U52 = \y0.2 U61 = \y0y1.y0 U62 = \y0.y0 U71 = \y0.y0 U81 = \y0.y0 U91 = \y0y1y2.2y2 U92 = \y0y1y2.2y2 U93 = \y0y1y2.2y2 U94 = \y0y1y2.2y2 U95 = \y0y1.2y1 U96 = \y0.y0 a!6220!6220U101 = \y0y1y2.2y1 a!6220!6220U102 = \y0y1y2.2y1 a!6220!6220U103 = \y0y1y2.2y1 a!6220!6220U104 = \y0y1y2.2y1 a!6220!6220U105 = \y0y1.y0 a!6220!6220U106 = \y0.2 a!6220!6220U11 = \y0y1.2y1 a!6220!6220U111 = \y0y1y2.3y1 a!6220!6220U111# = \y0y1y2.2y0 + 2y1 a!6220!6220U112 = \y0y1y2.3y1 a!6220!6220U112# = \y0y1y2.2y1 a!6220!6220U113 = \y0y1y2.3y1 a!6220!6220U113# = \y0y1y2.2y1 a!6220!6220U114 = \y0y1.3y1 a!6220!6220U114# = \y0y1.2y1 a!6220!6220U12 = \y0y1.2y1 a!6220!6220U121 = \y0y1.1 a!6220!6220U122 = \y0.1 a!6220!6220U13 = \y0.y0 a!6220!6220U131 = \y0y1y2y3.3y2 a!6220!6220U132 = \y0y1y2y3.3y2 a!6220!6220U133 = \y0y1y2y3.3y2 a!6220!6220U134 = \y0y1y2y3.3y2 a!6220!6220U135 = \y0y1y2y3.3y2 a!6220!6220U136 = \y0y1y2y3.3y2 a!6220!6220U21 = \y0y1.2y1 a!6220!6220U22 = \y0y1.2y1 a!6220!6220U23 = \y0.y0 a!6220!6220U31 = \y0y1.y0 a!6220!6220U32 = \y0y1.2 a!6220!6220U33 = \y0.2 a!6220!6220U41 = \y0y1y2.y0 a!6220!6220U42 = \y0y1y2.y0 a!6220!6220U43 = \y0y1y2.y0 a!6220!6220U44 = \y0y1y2.y0 a!6220!6220U45 = \y0y1.2 a!6220!6220U46 = \y0.y0 a!6220!6220U51 = \y0y1.2 a!6220!6220U52 = \y0.2 a!6220!6220U61 = \y0y1.y0 a!6220!6220U62 = \y0.y0 a!6220!6220U71 = \y0.y0 a!6220!6220U81 = \y0.y0 a!6220!6220U91 = \y0y1y2.2y2 a!6220!6220U92 = \y0y1y2.2y2 a!6220!6220U93 = \y0y1y2.2y2 a!6220!6220U94 = \y0y1y2.2y2 a!6220!6220U95 = \y0y1.2y1 a!6220!6220U96 = \y0.y0 a!6220!6220isNat = \y0.2y0 a!6220!6220isNatIList = \y0.2 a!6220!6220isNatIListKind = \y0.2 a!6220!6220isNatKind = \y0.2 a!6220!6220isNatList = \y0.2y0 a!6220!6220length = \y0.y0 a!6220!6220length# = \y0.2y0 a!6220!6220take = \y0y1.y0 a!6220!6220zeros = 0 cons = \y0y1.3y1 isNat = \y0.2y0 isNatIList = \y0.2 isNatIListKind = \y0.2 isNatKind = \y0.2 isNatList = \y0.2y0 length = \y0.y0 mark = \y0.y0 nil = 1 s = \y0.3y0 take = \y0y1.y0 tt = 2 zeros = 0 Using this interpretation, the requirements translate to: [[a!6220!6220U111#(tt, _x0, _x1)]] = 4 + 2x0 > 2x0 = [[a!6220!6220U112#(a!6220!6220isNatIListKind(_x0), _x0, _x1)]] [[a!6220!6220U112#(tt, _x0, _x1)]] = 2x0 >= 2x0 = [[a!6220!6220U113#(a!6220!6220isNat(_x1), _x0, _x1)]] [[a!6220!6220U113#(tt, _x0, _x1)]] = 2x0 >= 2x0 = [[a!6220!6220U114#(a!6220!6220isNatKind(_x1), _x0)]] [[a!6220!6220U114#(tt, _x0)]] = 2x0 >= 2x0 = [[a!6220!6220length#(mark(_x0))]] [[a!6220!6220length#(cons(_x0, _x1))]] = 6x1 >= 6x1 = [[a!6220!6220U111#(a!6220!6220isNatList(_x1), _x1, _x0)]] [[a!6220!6220zeros]] = 0 >= 0 = [[cons(0, zeros)]] [[a!6220!6220U101(tt, _x0, _x1)]] = 2x0 >= 2x0 = [[a!6220!6220U102(a!6220!6220isNatKind(_x0), _x0, _x1)]] [[a!6220!6220U102(tt, _x0, _x1)]] = 2x0 >= 2x0 = [[a!6220!6220U103(a!6220!6220isNatIListKind(_x1), _x0, _x1)]] [[a!6220!6220U103(tt, _x0, _x1)]] = 2x0 >= 2x0 = [[a!6220!6220U104(a!6220!6220isNatIListKind(_x1), _x0, _x1)]] [[a!6220!6220U104(tt, _x0, _x1)]] = 2x0 >= 2x0 = [[a!6220!6220U105(a!6220!6220isNat(_x0), _x1)]] [[a!6220!6220U105(tt, _x0)]] = 2 >= 2 = [[a!6220!6220U106(a!6220!6220isNatIList(_x0))]] [[a!6220!6220U106(tt)]] = 2 >= 2 = [[tt]] [[a!6220!6220U11(tt, _x0)]] = 2x0 >= 2x0 = [[a!6220!6220U12(a!6220!6220isNatIListKind(_x0), _x0)]] [[a!6220!6220U111(tt, _x0, _x1)]] = 3x0 >= 3x0 = [[a!6220!6220U112(a!6220!6220isNatIListKind(_x0), _x0, _x1)]] [[a!6220!6220U112(tt, _x0, _x1)]] = 3x0 >= 3x0 = [[a!6220!6220U113(a!6220!6220isNat(_x1), _x0, _x1)]] [[a!6220!6220U113(tt, _x0, _x1)]] = 3x0 >= 3x0 = [[a!6220!6220U114(a!6220!6220isNatKind(_x1), _x0)]] [[a!6220!6220U114(tt, _x0)]] = 3x0 >= 3x0 = [[s(a!6220!6220length(mark(_x0)))]] [[a!6220!6220U12(tt, _x0)]] = 2x0 >= 2x0 = [[a!6220!6220U13(a!6220!6220isNatList(_x0))]] [[a!6220!6220U121(tt, _x0)]] = 1 >= 1 = [[a!6220!6220U122(a!6220!6220isNatIListKind(_x0))]] [[a!6220!6220U122(tt)]] = 1 >= 1 = [[nil]] [[a!6220!6220U13(tt)]] = 2 >= 2 = [[tt]] [[a!6220!6220U131(tt, _x0, _x1, _x2)]] = 3x1 >= 3x1 = [[a!6220!6220U132(a!6220!6220isNatIListKind(_x0), _x0, _x1, _x2)]] [[a!6220!6220U132(tt, _x0, _x1, _x2)]] = 3x1 >= 3x1 = [[a!6220!6220U133(a!6220!6220isNat(_x1), _x0, _x1, _x2)]] [[a!6220!6220U133(tt, _x0, _x1, _x2)]] = 3x1 >= 3x1 = [[a!6220!6220U134(a!6220!6220isNatKind(_x1), _x0, _x1, _x2)]] [[a!6220!6220U134(tt, _x0, _x1, _x2)]] = 3x1 >= 3x1 = [[a!6220!6220U135(a!6220!6220isNat(_x2), _x0, _x1, _x2)]] [[a!6220!6220U135(tt, _x0, _x1, _x2)]] = 3x1 >= 3x1 = [[a!6220!6220U136(a!6220!6220isNatKind(_x2), _x0, _x1, _x2)]] [[a!6220!6220U136(tt, _x0, _x1, _x2)]] = 3x1 >= 3x1 = [[cons(mark(_x2), take(_x1, _x0))]] [[a!6220!6220U21(tt, _x0)]] = 2x0 >= 2x0 = [[a!6220!6220U22(a!6220!6220isNatKind(_x0), _x0)]] [[a!6220!6220U22(tt, _x0)]] = 2x0 >= 2x0 = [[a!6220!6220U23(a!6220!6220isNat(_x0))]] [[a!6220!6220U23(tt)]] = 2 >= 2 = [[tt]] [[a!6220!6220U31(tt, _x0)]] = 2 >= 2 = [[a!6220!6220U32(a!6220!6220isNatIListKind(_x0), _x0)]] [[a!6220!6220U32(tt, _x0)]] = 2 >= 2 = [[a!6220!6220U33(a!6220!6220isNatList(_x0))]] [[a!6220!6220U33(tt)]] = 2 >= 2 = [[tt]] [[a!6220!6220U41(tt, _x0, _x1)]] = 2 >= 2 = [[a!6220!6220U42(a!6220!6220isNatKind(_x0), _x0, _x1)]] [[a!6220!6220U42(tt, _x0, _x1)]] = 2 >= 2 = [[a!6220!6220U43(a!6220!6220isNatIListKind(_x1), _x0, _x1)]] [[a!6220!6220U43(tt, _x0, _x1)]] = 2 >= 2 = [[a!6220!6220U44(a!6220!6220isNatIListKind(_x1), _x0, _x1)]] [[a!6220!6220U44(tt, _x0, _x1)]] = 2 >= 2 = [[a!6220!6220U45(a!6220!6220isNat(_x0), _x1)]] [[a!6220!6220U45(tt, _x0)]] = 2 >= 2 = [[a!6220!6220U46(a!6220!6220isNatIList(_x0))]] [[a!6220!6220U46(tt)]] = 2 >= 2 = [[tt]] [[a!6220!6220U51(tt, _x0)]] = 2 >= 2 = [[a!6220!6220U52(a!6220!6220isNatIListKind(_x0))]] [[a!6220!6220U52(tt)]] = 2 >= 2 = [[tt]] [[a!6220!6220U61(tt, _x0)]] = 2 >= 2 = [[a!6220!6220U62(a!6220!6220isNatIListKind(_x0))]] [[a!6220!6220U62(tt)]] = 2 >= 2 = [[tt]] [[a!6220!6220U71(tt)]] = 2 >= 2 = [[tt]] [[a!6220!6220U81(tt)]] = 2 >= 2 = [[tt]] [[a!6220!6220U91(tt, _x0, _x1)]] = 2x1 >= 2x1 = [[a!6220!6220U92(a!6220!6220isNatKind(_x0), _x0, _x1)]] [[a!6220!6220U92(tt, _x0, _x1)]] = 2x1 >= 2x1 = [[a!6220!6220U93(a!6220!6220isNatIListKind(_x1), _x0, _x1)]] [[a!6220!6220U93(tt, _x0, _x1)]] = 2x1 >= 2x1 = [[a!6220!6220U94(a!6220!6220isNatIListKind(_x1), _x0, _x1)]] [[a!6220!6220U94(tt, _x0, _x1)]] = 2x1 >= 2x1 = [[a!6220!6220U95(a!6220!6220isNat(_x0), _x1)]] [[a!6220!6220U95(tt, _x0)]] = 2x0 >= 2x0 = [[a!6220!6220U96(a!6220!6220isNatList(_x0))]] [[a!6220!6220U96(tt)]] = 2 >= 2 = [[tt]] [[a!6220!6220isNat(0)]] = 2 >= 2 = [[tt]] [[a!6220!6220isNat(length(_x0))]] = 2x0 >= 2x0 = [[a!6220!6220U11(a!6220!6220isNatIListKind(_x0), _x0)]] [[a!6220!6220isNat(s(_x0))]] = 6x0 >= 2x0 = [[a!6220!6220U21(a!6220!6220isNatKind(_x0), _x0)]] [[a!6220!6220isNatIList(_x0)]] = 2 >= 2 = [[a!6220!6220U31(a!6220!6220isNatIListKind(_x0), _x0)]] [[a!6220!6220isNatIList(zeros)]] = 2 >= 2 = [[tt]] [[a!6220!6220isNatIList(cons(_x0, _x1))]] = 2 >= 2 = [[a!6220!6220U41(a!6220!6220isNatKind(_x0), _x0, _x1)]] [[a!6220!6220isNatIListKind(nil)]] = 2 >= 2 = [[tt]] [[a!6220!6220isNatIListKind(zeros)]] = 2 >= 2 = [[tt]] [[a!6220!6220isNatIListKind(cons(_x0, _x1))]] = 2 >= 2 = [[a!6220!6220U51(a!6220!6220isNatKind(_x0), _x1)]] [[a!6220!6220isNatIListKind(take(_x0, _x1))]] = 2 >= 2 = [[a!6220!6220U61(a!6220!6220isNatKind(_x0), _x1)]] [[a!6220!6220isNatKind(0)]] = 2 >= 2 = [[tt]] [[a!6220!6220isNatKind(length(_x0))]] = 2 >= 2 = [[a!6220!6220U71(a!6220!6220isNatIListKind(_x0))]] [[a!6220!6220isNatKind(s(_x0))]] = 2 >= 2 = [[a!6220!6220U81(a!6220!6220isNatKind(_x0))]] [[a!6220!6220isNatList(nil)]] = 2 >= 2 = [[tt]] [[a!6220!6220isNatList(cons(_x0, _x1))]] = 6x1 >= 2x1 = [[a!6220!6220U91(a!6220!6220isNatKind(_x0), _x0, _x1)]] [[a!6220!6220isNatList(take(_x0, _x1))]] = 2x0 >= 2x0 = [[a!6220!6220U101(a!6220!6220isNatKind(_x0), _x0, _x1)]] [[a!6220!6220length(nil)]] = 1 >= 1 = [[0]] [[a!6220!6220length(cons(_x0, _x1))]] = 3x1 >= 3x1 = [[a!6220!6220U111(a!6220!6220isNatList(_x1), _x1, _x0)]] [[a!6220!6220take(0, _x0)]] = 1 >= 1 = [[a!6220!6220U121(a!6220!6220isNatIList(_x0), _x0)]] [[a!6220!6220take(s(_x0), cons(_x1, _x2))]] = 3x0 >= 3x0 = [[a!6220!6220U131(a!6220!6220isNatIList(_x2), _x2, _x0, _x1)]] [[mark(zeros)]] = 0 >= 0 = [[a!6220!6220zeros]] [[mark(U101(_x0, _x1, _x2))]] = 2x1 >= 2x1 = [[a!6220!6220U101(mark(_x0), _x1, _x2)]] [[mark(U102(_x0, _x1, _x2))]] = 2x1 >= 2x1 = [[a!6220!6220U102(mark(_x0), _x1, _x2)]] [[mark(isNatKind(_x0))]] = 2 >= 2 = [[a!6220!6220isNatKind(_x0)]] [[mark(U103(_x0, _x1, _x2))]] = 2x1 >= 2x1 = [[a!6220!6220U103(mark(_x0), _x1, _x2)]] [[mark(isNatIListKind(_x0))]] = 2 >= 2 = [[a!6220!6220isNatIListKind(_x0)]] [[mark(U104(_x0, _x1, _x2))]] = 2x1 >= 2x1 = [[a!6220!6220U104(mark(_x0), _x1, _x2)]] [[mark(U105(_x0, _x1))]] = x0 >= x0 = [[a!6220!6220U105(mark(_x0), _x1)]] [[mark(isNat(_x0))]] = 2x0 >= 2x0 = [[a!6220!6220isNat(_x0)]] [[mark(U106(_x0))]] = 2 >= 2 = [[a!6220!6220U106(mark(_x0))]] [[mark(isNatIList(_x0))]] = 2 >= 2 = [[a!6220!6220isNatIList(_x0)]] [[mark(U11(_x0, _x1))]] = 2x1 >= 2x1 = [[a!6220!6220U11(mark(_x0), _x1)]] [[mark(U12(_x0, _x1))]] = 2x1 >= 2x1 = [[a!6220!6220U12(mark(_x0), _x1)]] [[mark(U111(_x0, _x1, _x2))]] = 3x1 >= 3x1 = [[a!6220!6220U111(mark(_x0), _x1, _x2)]] [[mark(U112(_x0, _x1, _x2))]] = 3x1 >= 3x1 = [[a!6220!6220U112(mark(_x0), _x1, _x2)]] [[mark(U113(_x0, _x1, _x2))]] = 3x1 >= 3x1 = [[a!6220!6220U113(mark(_x0), _x1, _x2)]] [[mark(U114(_x0, _x1))]] = 3x1 >= 3x1 = [[a!6220!6220U114(mark(_x0), _x1)]] [[mark(length(_x0))]] = x0 >= x0 = [[a!6220!6220length(mark(_x0))]] [[mark(U13(_x0))]] = x0 >= x0 = [[a!6220!6220U13(mark(_x0))]] [[mark(isNatList(_x0))]] = 2x0 >= 2x0 = [[a!6220!6220isNatList(_x0)]] [[mark(U121(_x0, _x1))]] = 1 >= 1 = [[a!6220!6220U121(mark(_x0), _x1)]] [[mark(U122(_x0))]] = 1 >= 1 = [[a!6220!6220U122(mark(_x0))]] [[mark(U131(_x0, _x1, _x2, _x3))]] = 3x2 >= 3x2 = [[a!6220!6220U131(mark(_x0), _x1, _x2, _x3)]] [[mark(U132(_x0, _x1, _x2, _x3))]] = 3x2 >= 3x2 = [[a!6220!6220U132(mark(_x0), _x1, _x2, _x3)]] [[mark(U133(_x0, _x1, _x2, _x3))]] = 3x2 >= 3x2 = [[a!6220!6220U133(mark(_x0), _x1, _x2, _x3)]] [[mark(U134(_x0, _x1, _x2, _x3))]] = 3x2 >= 3x2 = [[a!6220!6220U134(mark(_x0), _x1, _x2, _x3)]] [[mark(U135(_x0, _x1, _x2, _x3))]] = 3x2 >= 3x2 = [[a!6220!6220U135(mark(_x0), _x1, _x2, _x3)]] [[mark(U136(_x0, _x1, _x2, _x3))]] = 3x2 >= 3x2 = [[a!6220!6220U136(mark(_x0), _x1, _x2, _x3)]] [[mark(take(_x0, _x1))]] = x0 >= x0 = [[a!6220!6220take(mark(_x0), mark(_x1))]] [[mark(U21(_x0, _x1))]] = 2x1 >= 2x1 = [[a!6220!6220U21(mark(_x0), _x1)]] [[mark(U22(_x0, _x1))]] = 2x1 >= 2x1 = [[a!6220!6220U22(mark(_x0), _x1)]] [[mark(U23(_x0))]] = x0 >= x0 = [[a!6220!6220U23(mark(_x0))]] [[mark(U31(_x0, _x1))]] = x0 >= x0 = [[a!6220!6220U31(mark(_x0), _x1)]] [[mark(U32(_x0, _x1))]] = 2 >= 2 = [[a!6220!6220U32(mark(_x0), _x1)]] [[mark(U33(_x0))]] = 2 >= 2 = [[a!6220!6220U33(mark(_x0))]] [[mark(U41(_x0, _x1, _x2))]] = x0 >= x0 = [[a!6220!6220U41(mark(_x0), _x1, _x2)]] [[mark(U42(_x0, _x1, _x2))]] = x0 >= x0 = [[a!6220!6220U42(mark(_x0), _x1, _x2)]] [[mark(U43(_x0, _x1, _x2))]] = x0 >= x0 = [[a!6220!6220U43(mark(_x0), _x1, _x2)]] [[mark(U44(_x0, _x1, _x2))]] = x0 >= x0 = [[a!6220!6220U44(mark(_x0), _x1, _x2)]] [[mark(U45(_x0, _x1))]] = 2 >= 2 = [[a!6220!6220U45(mark(_x0), _x1)]] [[mark(U46(_x0))]] = x0 >= x0 = [[a!6220!6220U46(mark(_x0))]] [[mark(U51(_x0, _x1))]] = 2 >= 2 = [[a!6220!6220U51(mark(_x0), _x1)]] [[mark(U52(_x0))]] = 2 >= 2 = [[a!6220!6220U52(mark(_x0))]] [[mark(U61(_x0, _x1))]] = x0 >= x0 = [[a!6220!6220U61(mark(_x0), _x1)]] [[mark(U62(_x0))]] = x0 >= x0 = [[a!6220!6220U62(mark(_x0))]] [[mark(U71(_x0))]] = x0 >= x0 = [[a!6220!6220U71(mark(_x0))]] [[mark(U81(_x0))]] = x0 >= x0 = [[a!6220!6220U81(mark(_x0))]] [[mark(U91(_x0, _x1, _x2))]] = 2x2 >= 2x2 = [[a!6220!6220U91(mark(_x0), _x1, _x2)]] [[mark(U92(_x0, _x1, _x2))]] = 2x2 >= 2x2 = [[a!6220!6220U92(mark(_x0), _x1, _x2)]] [[mark(U93(_x0, _x1, _x2))]] = 2x2 >= 2x2 = [[a!6220!6220U93(mark(_x0), _x1, _x2)]] [[mark(U94(_x0, _x1, _x2))]] = 2x2 >= 2x2 = [[a!6220!6220U94(mark(_x0), _x1, _x2)]] [[mark(U95(_x0, _x1))]] = 2x1 >= 2x1 = [[a!6220!6220U95(mark(_x0), _x1)]] [[mark(U96(_x0))]] = x0 >= x0 = [[a!6220!6220U96(mark(_x0))]] [[mark(cons(_x0, _x1))]] = 3x1 >= 3x1 = [[cons(mark(_x0), _x1)]] [[mark(0)]] = 1 >= 1 = [[0]] [[mark(tt)]] = 2 >= 2 = [[tt]] [[mark(s(_x0))]] = 3x0 >= 3x0 = [[s(mark(_x0))]] [[mark(nil)]] = 1 >= 1 = [[nil]] [[a!6220!6220zeros]] = 0 >= 0 = [[zeros]] [[a!6220!6220U101(_x0, _x1, _x2)]] = 2x1 >= 2x1 = [[U101(_x0, _x1, _x2)]] [[a!6220!6220U102(_x0, _x1, _x2)]] = 2x1 >= 2x1 = [[U102(_x0, _x1, _x2)]] [[a!6220!6220isNatKind(_x0)]] = 2 >= 2 = [[isNatKind(_x0)]] [[a!6220!6220U103(_x0, _x1, _x2)]] = 2x1 >= 2x1 = [[U103(_x0, _x1, _x2)]] [[a!6220!6220isNatIListKind(_x0)]] = 2 >= 2 = [[isNatIListKind(_x0)]] [[a!6220!6220U104(_x0, _x1, _x2)]] = 2x1 >= 2x1 = [[U104(_x0, _x1, _x2)]] [[a!6220!6220U105(_x0, _x1)]] = x0 >= x0 = [[U105(_x0, _x1)]] [[a!6220!6220isNat(_x0)]] = 2x0 >= 2x0 = [[isNat(_x0)]] [[a!6220!6220U106(_x0)]] = 2 >= 2 = [[U106(_x0)]] [[a!6220!6220isNatIList(_x0)]] = 2 >= 2 = [[isNatIList(_x0)]] [[a!6220!6220U11(_x0, _x1)]] = 2x1 >= 2x1 = [[U11(_x0, _x1)]] [[a!6220!6220U12(_x0, _x1)]] = 2x1 >= 2x1 = [[U12(_x0, _x1)]] [[a!6220!6220U111(_x0, _x1, _x2)]] = 3x1 >= 3x1 = [[U111(_x0, _x1, _x2)]] [[a!6220!6220U112(_x0, _x1, _x2)]] = 3x1 >= 3x1 = [[U112(_x0, _x1, _x2)]] [[a!6220!6220U113(_x0, _x1, _x2)]] = 3x1 >= 3x1 = [[U113(_x0, _x1, _x2)]] [[a!6220!6220U114(_x0, _x1)]] = 3x1 >= 3x1 = [[U114(_x0, _x1)]] [[a!6220!6220length(_x0)]] = x0 >= x0 = [[length(_x0)]] [[a!6220!6220U13(_x0)]] = x0 >= x0 = [[U13(_x0)]] [[a!6220!6220isNatList(_x0)]] = 2x0 >= 2x0 = [[isNatList(_x0)]] [[a!6220!6220U121(_x0, _x1)]] = 1 >= 1 = [[U121(_x0, _x1)]] [[a!6220!6220U122(_x0)]] = 1 >= 1 = [[U122(_x0)]] [[a!6220!6220U131(_x0, _x1, _x2, _x3)]] = 3x2 >= 3x2 = [[U131(_x0, _x1, _x2, _x3)]] [[a!6220!6220U132(_x0, _x1, _x2, _x3)]] = 3x2 >= 3x2 = [[U132(_x0, _x1, _x2, _x3)]] [[a!6220!6220U133(_x0, _x1, _x2, _x3)]] = 3x2 >= 3x2 = [[U133(_x0, _x1, _x2, _x3)]] [[a!6220!6220U134(_x0, _x1, _x2, _x3)]] = 3x2 >= 3x2 = [[U134(_x0, _x1, _x2, _x3)]] [[a!6220!6220U135(_x0, _x1, _x2, _x3)]] = 3x2 >= 3x2 = [[U135(_x0, _x1, _x2, _x3)]] [[a!6220!6220U136(_x0, _x1, _x2, _x3)]] = 3x2 >= 3x2 = [[U136(_x0, _x1, _x2, _x3)]] [[a!6220!6220take(_x0, _x1)]] = x0 >= x0 = [[take(_x0, _x1)]] [[a!6220!6220U21(_x0, _x1)]] = 2x1 >= 2x1 = [[U21(_x0, _x1)]] [[a!6220!6220U22(_x0, _x1)]] = 2x1 >= 2x1 = [[U22(_x0, _x1)]] [[a!6220!6220U23(_x0)]] = x0 >= x0 = [[U23(_x0)]] [[a!6220!6220U31(_x0, _x1)]] = x0 >= x0 = [[U31(_x0, _x1)]] [[a!6220!6220U32(_x0, _x1)]] = 2 >= 2 = [[U32(_x0, _x1)]] [[a!6220!6220U33(_x0)]] = 2 >= 2 = [[U33(_x0)]] [[a!6220!6220U41(_x0, _x1, _x2)]] = x0 >= x0 = [[U41(_x0, _x1, _x2)]] [[a!6220!6220U42(_x0, _x1, _x2)]] = x0 >= x0 = [[U42(_x0, _x1, _x2)]] [[a!6220!6220U43(_x0, _x1, _x2)]] = x0 >= x0 = [[U43(_x0, _x1, _x2)]] [[a!6220!6220U44(_x0, _x1, _x2)]] = x0 >= x0 = [[U44(_x0, _x1, _x2)]] [[a!6220!6220U45(_x0, _x1)]] = 2 >= 2 = [[U45(_x0, _x1)]] [[a!6220!6220U46(_x0)]] = x0 >= x0 = [[U46(_x0)]] [[a!6220!6220U51(_x0, _x1)]] = 2 >= 2 = [[U51(_x0, _x1)]] [[a!6220!6220U52(_x0)]] = 2 >= 2 = [[U52(_x0)]] [[a!6220!6220U61(_x0, _x1)]] = x0 >= x0 = [[U61(_x0, _x1)]] [[a!6220!6220U62(_x0)]] = x0 >= x0 = [[U62(_x0)]] [[a!6220!6220U71(_x0)]] = x0 >= x0 = [[U71(_x0)]] [[a!6220!6220U81(_x0)]] = x0 >= x0 = [[U81(_x0)]] [[a!6220!6220U91(_x0, _x1, _x2)]] = 2x2 >= 2x2 = [[U91(_x0, _x1, _x2)]] [[a!6220!6220U92(_x0, _x1, _x2)]] = 2x2 >= 2x2 = [[U92(_x0, _x1, _x2)]] [[a!6220!6220U93(_x0, _x1, _x2)]] = 2x2 >= 2x2 = [[U93(_x0, _x1, _x2)]] [[a!6220!6220U94(_x0, _x1, _x2)]] = 2x2 >= 2x2 = [[U94(_x0, _x1, _x2)]] [[a!6220!6220U95(_x0, _x1)]] = 2x1 >= 2x1 = [[U95(_x0, _x1)]] [[a!6220!6220U96(_x0)]] = x0 >= x0 = [[U96(_x0)]] 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_11, R_0, minimal, formative), where P_11 consists of: a!6220!6220U112#(tt, X, Y) =#> a!6220!6220U113#(a!6220!6220isNat(Y), X, Y) a!6220!6220U113#(tt, X, Y) =#> a!6220!6220U114#(a!6220!6220isNatKind(Y), X) a!6220!6220U114#(tt, X) =#> a!6220!6220length#(mark(X)) a!6220!6220length#(cons(X, Y)) =#> a!6220!6220U111#(a!6220!6220isNatList(Y), Y, X) Thus, the original system is terminating if each of (P_1, R_0, minimal, formative) and (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 : 1 * 1 : 2 * 2 : 3 * 3 : This graph has no strongly connected components. By [Kop12, Thm. 7.31], this implies finiteness of the dependency pair problem. 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 with usable rules [Kop12, Thm. 7.44]. The usable rules of (P_1, R_0) are: a!6220!6220U101(tt, X, Y) => a!6220!6220U102(a!6220!6220isNatKind(X), X, Y) a!6220!6220U102(tt, X, Y) => a!6220!6220U103(a!6220!6220isNatIListKind(Y), X, Y) a!6220!6220U103(tt, X, Y) => a!6220!6220U104(a!6220!6220isNatIListKind(Y), X, Y) a!6220!6220U104(tt, X, Y) => a!6220!6220U105(a!6220!6220isNat(X), Y) a!6220!6220U105(tt, X) => a!6220!6220U106(a!6220!6220isNatIList(X)) a!6220!6220U106(tt) => tt a!6220!6220U11(tt, X) => a!6220!6220U12(a!6220!6220isNatIListKind(X), X) a!6220!6220U12(tt, X) => a!6220!6220U13(a!6220!6220isNatList(X)) a!6220!6220U13(tt) => tt a!6220!6220U21(tt, X) => a!6220!6220U22(a!6220!6220isNatKind(X), X) a!6220!6220U22(tt, X) => a!6220!6220U23(a!6220!6220isNat(X)) a!6220!6220U23(tt) => tt a!6220!6220U31(tt, X) => a!6220!6220U32(a!6220!6220isNatIListKind(X), X) a!6220!6220U32(tt, X) => a!6220!6220U33(a!6220!6220isNatList(X)) a!6220!6220U33(tt) => tt a!6220!6220U41(tt, X, Y) => a!6220!6220U42(a!6220!6220isNatKind(X), X, Y) a!6220!6220U42(tt, X, Y) => a!6220!6220U43(a!6220!6220isNatIListKind(Y), X, Y) a!6220!6220U43(tt, X, Y) => a!6220!6220U44(a!6220!6220isNatIListKind(Y), X, Y) a!6220!6220U44(tt, X, Y) => a!6220!6220U45(a!6220!6220isNat(X), Y) a!6220!6220U45(tt, X) => a!6220!6220U46(a!6220!6220isNatIList(X)) a!6220!6220U46(tt) => tt a!6220!6220U51(tt, X) => a!6220!6220U52(a!6220!6220isNatIListKind(X)) a!6220!6220U52(tt) => tt a!6220!6220U61(tt, X) => a!6220!6220U62(a!6220!6220isNatIListKind(X)) a!6220!6220U62(tt) => tt a!6220!6220U71(tt) => tt a!6220!6220U81(tt) => tt a!6220!6220U91(tt, X, Y) => a!6220!6220U92(a!6220!6220isNatKind(X), X, Y) a!6220!6220U92(tt, X, Y) => a!6220!6220U93(a!6220!6220isNatIListKind(Y), X, Y) a!6220!6220U93(tt, X, Y) => a!6220!6220U94(a!6220!6220isNatIListKind(Y), X, Y) a!6220!6220U94(tt, X, Y) => a!6220!6220U95(a!6220!6220isNat(X), Y) a!6220!6220U95(tt, X) => a!6220!6220U96(a!6220!6220isNatList(X)) a!6220!6220U96(tt) => tt a!6220!6220isNat(0) => tt a!6220!6220isNat(length(X)) => a!6220!6220U11(a!6220!6220isNatIListKind(X), X) a!6220!6220isNat(s(X)) => a!6220!6220U21(a!6220!6220isNatKind(X), X) a!6220!6220isNatIList(X) => a!6220!6220U31(a!6220!6220isNatIListKind(X), X) a!6220!6220isNatIList(zeros) => tt a!6220!6220isNatIList(cons(X, Y)) => a!6220!6220U41(a!6220!6220isNatKind(X), X, Y) a!6220!6220isNatIListKind(nil) => tt a!6220!6220isNatIListKind(zeros) => tt a!6220!6220isNatIListKind(cons(X, Y)) => a!6220!6220U51(a!6220!6220isNatKind(X), Y) a!6220!6220isNatIListKind(take(X, Y)) => a!6220!6220U61(a!6220!6220isNatKind(X), Y) a!6220!6220isNatKind(0) => tt a!6220!6220isNatKind(length(X)) => a!6220!6220U71(a!6220!6220isNatIListKind(X)) a!6220!6220isNatKind(s(X)) => a!6220!6220U81(a!6220!6220isNatKind(X)) a!6220!6220isNatList(nil) => tt a!6220!6220isNatList(cons(X, Y)) => a!6220!6220U91(a!6220!6220isNatKind(X), X, Y) a!6220!6220isNatList(take(X, Y)) => a!6220!6220U101(a!6220!6220isNatKind(X), X, Y) a!6220!6220U101(X, Y, Z) => U101(X, Y, Z) a!6220!6220U102(X, Y, Z) => U102(X, Y, Z) a!6220!6220isNatKind(X) => isNatKind(X) a!6220!6220U103(X, Y, Z) => U103(X, Y, Z) a!6220!6220isNatIListKind(X) => isNatIListKind(X) a!6220!6220U104(X, Y, Z) => U104(X, Y, Z) a!6220!6220U105(X, Y) => U105(X, Y) a!6220!6220isNat(X) => isNat(X) a!6220!6220U106(X) => U106(X) a!6220!6220isNatIList(X) => isNatIList(X) a!6220!6220U11(X, Y) => U11(X, Y) a!6220!6220U12(X, Y) => U12(X, Y) a!6220!6220U13(X) => U13(X) a!6220!6220isNatList(X) => isNatList(X) a!6220!6220U21(X, Y) => U21(X, Y) a!6220!6220U22(X, Y) => U22(X, Y) a!6220!6220U23(X) => U23(X) a!6220!6220U31(X, Y) => U31(X, Y) a!6220!6220U32(X, Y) => U32(X, Y) a!6220!6220U33(X) => U33(X) a!6220!6220U41(X, Y, Z) => U41(X, Y, Z) a!6220!6220U42(X, Y, Z) => U42(X, Y, Z) a!6220!6220U43(X, Y, Z) => U43(X, Y, Z) a!6220!6220U44(X, Y, Z) => U44(X, Y, Z) a!6220!6220U45(X, Y) => U45(X, Y) a!6220!6220U46(X) => U46(X) a!6220!6220U51(X, Y) => U51(X, Y) a!6220!6220U52(X) => U52(X) a!6220!6220U61(X, Y) => U61(X, Y) a!6220!6220U62(X) => U62(X) a!6220!6220U71(X) => U71(X) a!6220!6220U81(X) => U81(X) a!6220!6220U91(X, Y, Z) => U91(X, Y, Z) a!6220!6220U92(X, Y, Z) => U92(X, Y, Z) a!6220!6220U93(X, Y, Z) => U93(X, Y, Z) a!6220!6220U94(X, Y, Z) => U94(X, Y, Z) a!6220!6220U95(X, Y) => U95(X, Y) a!6220!6220U96(X) => U96(X) It suffices to find a standard reduction pair [Kop12, Def. 6.69]. Thus, we must orient: a!6220!6220U101#(tt, X, Y) >? a!6220!6220U102#(a!6220!6220isNatKind(X), X, Y) a!6220!6220U102#(tt, X, Y) >? a!6220!6220U103#(a!6220!6220isNatIListKind(Y), X, Y) a!6220!6220U103#(tt, X, Y) >? a!6220!6220U104#(a!6220!6220isNatIListKind(Y), X, Y) a!6220!6220U104#(tt, X, Y) >? a!6220!6220U105#(a!6220!6220isNat(X), Y) a!6220!6220U104#(tt, X, Y) >? a!6220!6220isNat#(X) a!6220!6220U105#(tt, X) >? a!6220!6220isNatIList#(X) a!6220!6220U11#(tt, X) >? a!6220!6220U12#(a!6220!6220isNatIListKind(X), X) a!6220!6220U12#(tt, X) >? a!6220!6220isNatList#(X) a!6220!6220U21#(tt, X) >? a!6220!6220U22#(a!6220!6220isNatKind(X), X) a!6220!6220U22#(tt, X) >? a!6220!6220isNat#(X) a!6220!6220U31#(tt, X) >? a!6220!6220U32#(a!6220!6220isNatIListKind(X), X) a!6220!6220U32#(tt, X) >? a!6220!6220isNatList#(X) a!6220!6220U41#(tt, X, Y) >? a!6220!6220U42#(a!6220!6220isNatKind(X), X, Y) a!6220!6220U42#(tt, X, Y) >? a!6220!6220U43#(a!6220!6220isNatIListKind(Y), X, Y) a!6220!6220U43#(tt, X, Y) >? a!6220!6220U44#(a!6220!6220isNatIListKind(Y), X, Y) a!6220!6220U44#(tt, X, Y) >? a!6220!6220U45#(a!6220!6220isNat(X), Y) a!6220!6220U44#(tt, X, Y) >? a!6220!6220isNat#(X) a!6220!6220U45#(tt, X) >? a!6220!6220isNatIList#(X) a!6220!6220U91#(tt, X, Y) >? a!6220!6220U92#(a!6220!6220isNatKind(X), X, Y) a!6220!6220U92#(tt, X, Y) >? a!6220!6220U93#(a!6220!6220isNatIListKind(Y), X, Y) a!6220!6220U93#(tt, X, Y) >? a!6220!6220U94#(a!6220!6220isNatIListKind(Y), X, Y) a!6220!6220U94#(tt, X, Y) >? a!6220!6220U95#(a!6220!6220isNat(X), Y) a!6220!6220U94#(tt, X, Y) >? a!6220!6220isNat#(X) a!6220!6220U95#(tt, X) >? a!6220!6220isNatList#(X) a!6220!6220isNat#(length(X)) >? a!6220!6220U11#(a!6220!6220isNatIListKind(X), X) a!6220!6220isNat#(s(X)) >? a!6220!6220U21#(a!6220!6220isNatKind(X), X) a!6220!6220isNatIList#(X) >? a!6220!6220U31#(a!6220!6220isNatIListKind(X), X) a!6220!6220isNatIList#(cons(X, Y)) >? a!6220!6220U41#(a!6220!6220isNatKind(X), X, Y) a!6220!6220isNatList#(cons(X, Y)) >? a!6220!6220U91#(a!6220!6220isNatKind(X), X, Y) a!6220!6220isNatList#(take(X, Y)) >? a!6220!6220U101#(a!6220!6220isNatKind(X), X, Y) a!6220!6220U101(tt, X, Y) >= a!6220!6220U102(a!6220!6220isNatKind(X), X, Y) a!6220!6220U102(tt, X, Y) >= a!6220!6220U103(a!6220!6220isNatIListKind(Y), X, Y) a!6220!6220U103(tt, X, Y) >= a!6220!6220U104(a!6220!6220isNatIListKind(Y), X, Y) a!6220!6220U104(tt, X, Y) >= a!6220!6220U105(a!6220!6220isNat(X), Y) a!6220!6220U105(tt, X) >= a!6220!6220U106(a!6220!6220isNatIList(X)) a!6220!6220U106(tt) >= tt a!6220!6220U11(tt, X) >= a!6220!6220U12(a!6220!6220isNatIListKind(X), X) a!6220!6220U12(tt, X) >= a!6220!6220U13(a!6220!6220isNatList(X)) a!6220!6220U13(tt) >= tt a!6220!6220U21(tt, X) >= a!6220!6220U22(a!6220!6220isNatKind(X), X) a!6220!6220U22(tt, X) >= a!6220!6220U23(a!6220!6220isNat(X)) a!6220!6220U23(tt) >= tt a!6220!6220U31(tt, X) >= a!6220!6220U32(a!6220!6220isNatIListKind(X), X) a!6220!6220U32(tt, X) >= a!6220!6220U33(a!6220!6220isNatList(X)) a!6220!6220U33(tt) >= tt a!6220!6220U41(tt, X, Y) >= a!6220!6220U42(a!6220!6220isNatKind(X), X, Y) a!6220!6220U42(tt, X, Y) >= a!6220!6220U43(a!6220!6220isNatIListKind(Y), X, Y) a!6220!6220U43(tt, X, Y) >= a!6220!6220U44(a!6220!6220isNatIListKind(Y), X, Y) a!6220!6220U44(tt, X, Y) >= a!6220!6220U45(a!6220!6220isNat(X), Y) a!6220!6220U45(tt, X) >= a!6220!6220U46(a!6220!6220isNatIList(X)) a!6220!6220U46(tt) >= tt a!6220!6220U51(tt, X) >= a!6220!6220U52(a!6220!6220isNatIListKind(X)) a!6220!6220U52(tt) >= tt a!6220!6220U61(tt, X) >= a!6220!6220U62(a!6220!6220isNatIListKind(X)) a!6220!6220U62(tt) >= tt a!6220!6220U71(tt) >= tt a!6220!6220U81(tt) >= tt a!6220!6220U91(tt, X, Y) >= a!6220!6220U92(a!6220!6220isNatKind(X), X, Y) a!6220!6220U92(tt, X, Y) >= a!6220!6220U93(a!6220!6220isNatIListKind(Y), X, Y) a!6220!6220U93(tt, X, Y) >= a!6220!6220U94(a!6220!6220isNatIListKind(Y), X, Y) a!6220!6220U94(tt, X, Y) >= a!6220!6220U95(a!6220!6220isNat(X), Y) a!6220!6220U95(tt, X) >= a!6220!6220U96(a!6220!6220isNatList(X)) a!6220!6220U96(tt) >= tt a!6220!6220isNat(0) >= tt a!6220!6220isNat(length(X)) >= a!6220!6220U11(a!6220!6220isNatIListKind(X), X) a!6220!6220isNat(s(X)) >= a!6220!6220U21(a!6220!6220isNatKind(X), X) a!6220!6220isNatIList(X) >= a!6220!6220U31(a!6220!6220isNatIListKind(X), X) a!6220!6220isNatIList(zeros) >= tt a!6220!6220isNatIList(cons(X, Y)) >= a!6220!6220U41(a!6220!6220isNatKind(X), X, Y) a!6220!6220isNatIListKind(nil) >= tt a!6220!6220isNatIListKind(zeros) >= tt a!6220!6220isNatIListKind(cons(X, Y)) >= a!6220!6220U51(a!6220!6220isNatKind(X), Y) a!6220!6220isNatIListKind(take(X, Y)) >= a!6220!6220U61(a!6220!6220isNatKind(X), Y) a!6220!6220isNatKind(0) >= tt a!6220!6220isNatKind(length(X)) >= a!6220!6220U71(a!6220!6220isNatIListKind(X)) a!6220!6220isNatKind(s(X)) >= a!6220!6220U81(a!6220!6220isNatKind(X)) a!6220!6220isNatList(nil) >= tt a!6220!6220isNatList(cons(X, Y)) >= a!6220!6220U91(a!6220!6220isNatKind(X), X, Y) a!6220!6220isNatList(take(X, Y)) >= a!6220!6220U101(a!6220!6220isNatKind(X), X, Y) a!6220!6220U101(X, Y, Z) >= U101(X, Y, Z) a!6220!6220U102(X, Y, Z) >= U102(X, Y, Z) a!6220!6220isNatKind(X) >= isNatKind(X) a!6220!6220U103(X, Y, Z) >= U103(X, Y, Z) a!6220!6220isNatIListKind(X) >= isNatIListKind(X) a!6220!6220U104(X, Y, Z) >= U104(X, Y, Z) a!6220!6220U105(X, Y) >= U105(X, Y) a!6220!6220isNat(X) >= isNat(X) a!6220!6220U106(X) >= U106(X) a!6220!6220isNatIList(X) >= isNatIList(X) a!6220!6220U11(X, Y) >= U11(X, Y) a!6220!6220U12(X, Y) >= U12(X, Y) a!6220!6220U13(X) >= U13(X) a!6220!6220isNatList(X) >= isNatList(X) a!6220!6220U21(X, Y) >= U21(X, Y) a!6220!6220U22(X, Y) >= U22(X, Y) a!6220!6220U23(X) >= U23(X) a!6220!6220U31(X, Y) >= U31(X, Y) a!6220!6220U32(X, Y) >= U32(X, Y) a!6220!6220U33(X) >= U33(X) a!6220!6220U41(X, Y, Z) >= U41(X, Y, Z) a!6220!6220U42(X, Y, Z) >= U42(X, Y, Z) a!6220!6220U43(X, Y, Z) >= U43(X, Y, Z) a!6220!6220U44(X, Y, Z) >= U44(X, Y, Z) a!6220!6220U45(X, Y) >= U45(X, Y) a!6220!6220U46(X) >= U46(X) a!6220!6220U51(X, Y) >= U51(X, Y) a!6220!6220U52(X) >= U52(X) a!6220!6220U61(X, Y) >= U61(X, Y) a!6220!6220U62(X) >= U62(X) a!6220!6220U71(X) >= U71(X) a!6220!6220U81(X) >= U81(X) a!6220!6220U91(X, Y, Z) >= U91(X, Y, Z) a!6220!6220U92(X, Y, Z) >= U92(X, Y, Z) a!6220!6220U93(X, Y, Z) >= U93(X, Y, Z) a!6220!6220U94(X, Y, Z) >= U94(X, Y, Z) a!6220!6220U95(X, Y) >= U95(X, Y) a!6220!6220U96(X) >= U96(X) We orient these requirements with a polynomial interpretation in the natural numbers. We consider usable_rules with respect to the following argument filtering: a!6220!6220U101#(x_1,x_2,x_3) = a!6220!6220U101#(x_2x_3) a!6220!6220U102#(x_1,x_2,x_3) = a!6220!6220U102#(x_2x_3) a!6220!6220U103#(x_1,x_2,x_3) = a!6220!6220U103#(x_2x_3) a!6220!6220U104#(x_1,x_2,x_3) = a!6220!6220U104#(x_2x_3) a!6220!6220U105#(x_1,x_2) = a!6220!6220U105#(x_2) a!6220!6220U11#(x_1,x_2) = a!6220!6220U11#(x_2) a!6220!6220U12#(x_1,x_2) = a!6220!6220U12#(x_2) a!6220!6220U21#(x_1,x_2) = a!6220!6220U21#(x_2) a!6220!6220U22#(x_1,x_2) = a!6220!6220U22#(x_2) a!6220!6220U31#(x_1,x_2) = a!6220!6220U31#(x_2) a!6220!6220U32#(x_1,x_2) = a!6220!6220U32#(x_2) a!6220!6220U41#(x_1,x_2,x_3) = a!6220!6220U41#(x_2x_3) a!6220!6220U42#(x_1,x_2,x_3) = a!6220!6220U42#(x_2x_3) a!6220!6220U43#(x_1,x_2,x_3) = a!6220!6220U43#(x_2x_3) a!6220!6220U44#(x_1,x_2,x_3) = a!6220!6220U44#(x_2x_3) a!6220!6220U45#(x_1,x_2) = a!6220!6220U45#(x_2) a!6220!6220U91#(x_1,x_2,x_3) = a!6220!6220U91#(x_2x_3) a!6220!6220U92#(x_1,x_2,x_3) = a!6220!6220U92#(x_2x_3) a!6220!6220U93#(x_1,x_2,x_3) = a!6220!6220U93#(x_2x_3) a!6220!6220U94#(x_1,x_2,x_3) = a!6220!6220U94#(x_2x_3) a!6220!6220U95#(x_1,x_2) = a!6220!6220U95#(x_2) This leaves the following ordering requirements: a!6220!6220U101#(tt, X, Y) > a!6220!6220U102#(a!6220!6220isNatKind(X), X, Y) a!6220!6220U102#(tt, X, Y) >= a!6220!6220U103#(a!6220!6220isNatIListKind(Y), X, Y) a!6220!6220U103#(tt, X, Y) >= a!6220!6220U104#(a!6220!6220isNatIListKind(Y), X, Y) a!6220!6220U104#(tt, X, Y) >= a!6220!6220U105#(a!6220!6220isNat(X), Y) a!6220!6220U104#(tt, X, Y) >= a!6220!6220isNat#(X) a!6220!6220U105#(tt, X) >= a!6220!6220isNatIList#(X) a!6220!6220U11#(tt, X) >= a!6220!6220U12#(a!6220!6220isNatIListKind(X), X) a!6220!6220U12#(tt, X) >= a!6220!6220isNatList#(X) a!6220!6220U21#(tt, X) >= a!6220!6220U22#(a!6220!6220isNatKind(X), X) a!6220!6220U22#(tt, X) >= a!6220!6220isNat#(X) a!6220!6220U31#(tt, X) >= a!6220!6220U32#(a!6220!6220isNatIListKind(X), X) a!6220!6220U32#(tt, X) >= a!6220!6220isNatList#(X) a!6220!6220U41#(tt, X, Y) >= a!6220!6220U42#(a!6220!6220isNatKind(X), X, Y) a!6220!6220U42#(tt, X, Y) >= a!6220!6220U43#(a!6220!6220isNatIListKind(Y), X, Y) a!6220!6220U43#(tt, X, Y) >= a!6220!6220U44#(a!6220!6220isNatIListKind(Y), X, Y) a!6220!6220U44#(tt, X, Y) >= a!6220!6220U45#(a!6220!6220isNat(X), Y) a!6220!6220U44#(tt, X, Y) >= a!6220!6220isNat#(X) a!6220!6220U45#(tt, X) >= a!6220!6220isNatIList#(X) a!6220!6220U91#(tt, X, Y) >= a!6220!6220U92#(a!6220!6220isNatKind(X), X, Y) a!6220!6220U92#(tt, X, Y) >= a!6220!6220U93#(a!6220!6220isNatIListKind(Y), X, Y) a!6220!6220U93#(tt, X, Y) >= a!6220!6220U94#(a!6220!6220isNatIListKind(Y), X, Y) a!6220!6220U94#(tt, X, Y) > a!6220!6220U95#(a!6220!6220isNat(X), Y) a!6220!6220U94#(tt, X, Y) >= a!6220!6220isNat#(X) a!6220!6220U95#(tt, X) >= a!6220!6220isNatList#(X) a!6220!6220isNat#(length(X)) >= a!6220!6220U11#(a!6220!6220isNatIListKind(X), X) a!6220!6220isNat#(s(X)) > a!6220!6220U21#(a!6220!6220isNatKind(X), X) a!6220!6220isNatIList#(X) >= a!6220!6220U31#(a!6220!6220isNatIListKind(X), X) a!6220!6220isNatIList#(cons(X, Y)) >= a!6220!6220U41#(a!6220!6220isNatKind(X), X, Y) a!6220!6220isNatList#(cons(X, Y)) >= a!6220!6220U91#(a!6220!6220isNatKind(X), X, Y) a!6220!6220isNatList#(take(X, Y)) > a!6220!6220U101#(a!6220!6220isNatKind(X), X, Y) The following interpretation satisfies the requirements: 0 = 3 U101 = \y0y1y2.0 U102 = \y0y1y2.0 U103 = \y0y1y2.0 U104 = \y0y1y2.0 U105 = \y0y1.0 U106 = \y0.0 U11 = \y0y1.0 U12 = \y0y1.0 U13 = \y0.0 U21 = \y0y1.0 U22 = \y0y1.0 U23 = \y0.0 U31 = \y0y1.0 U32 = \y0y1.0 U33 = \y0.0 U41 = \y0y1y2.0 U42 = \y0y1y2.0 U43 = \y0y1y2.0 U44 = \y0y1y2.0 U45 = \y0y1.0 U46 = \y0.0 U51 = \y0y1.0 U52 = \y0.0 U61 = \y0y1.0 U62 = \y0.0 U71 = \y0.0 U81 = \y0.0 U91 = \y0y1y2.0 U92 = \y0y1y2.0 U93 = \y0y1y2.0 U94 = \y0y1y2.0 U95 = \y0y1.0 U96 = \y0.0 a!6220!6220U101 = \y0y1y2.0 a!6220!6220U101# = \y0y1y2.1 + 2y1 + 2y2 a!6220!6220U102 = \y0y1y2.0 a!6220!6220U102# = \y0y1y2.2y1 + 2y2 a!6220!6220U103 = \y0y1y2.0 a!6220!6220U103# = \y0y1y2.y2 + 2y1 a!6220!6220U104 = \y0y1y2.0 a!6220!6220U104# = \y0y1y2.y2 + 2y1 a!6220!6220U105 = \y0y1.0 a!6220!6220U105# = \y0y1.y1 a!6220!6220U106 = \y0.0 a!6220!6220U11 = \y0y1.0 a!6220!6220U11# = \y0y1.y1 a!6220!6220U12 = \y0y1.0 a!6220!6220U12# = \y0y1.y1 a!6220!6220U13 = \y0.0 a!6220!6220U21 = \y0y1.0 a!6220!6220U21# = \y0y1.2y1 a!6220!6220U22 = \y0y1.0 a!6220!6220U22# = \y0y1.2y1 a!6220!6220U23 = \y0.0 a!6220!6220U31 = \y0y1.0 a!6220!6220U31# = \y0y1.y1 a!6220!6220U32 = \y0y1.0 a!6220!6220U32# = \y0y1.y1 a!6220!6220U33 = \y0.0 a!6220!6220U41 = \y0y1y2.0 a!6220!6220U41# = \y0y1y2.y2 + 2y1 a!6220!6220U42 = \y0y1y2.0 a!6220!6220U42# = \y0y1y2.y2 + 2y1 a!6220!6220U43 = \y0y1y2.0 a!6220!6220U43# = \y0y1y2.y2 + 2y1 a!6220!6220U44 = \y0y1y2.0 a!6220!6220U44# = \y0y1y2.y2 + 2y1 a!6220!6220U45 = \y0y1.0 a!6220!6220U45# = \y0y1.y1 a!6220!6220U46 = \y0.0 a!6220!6220U51 = \y0y1.0 a!6220!6220U52 = \y0.0 a!6220!6220U61 = \y0y1.0 a!6220!6220U62 = \y0.0 a!6220!6220U71 = \y0.0 a!6220!6220U81 = \y0.0 a!6220!6220U91 = \y0y1y2.0 a!6220!6220U91# = \y0y1y2.2 + y2 + 2y1 a!6220!6220U92 = \y0y1y2.0 a!6220!6220U92# = \y0y1y2.2 + y2 + 2y1 a!6220!6220U93 = \y0y1y2.0 a!6220!6220U93# = \y0y1y2.2 + y2 + 2y1 a!6220!6220U94 = \y0y1y2.0 a!6220!6220U94# = \y0y1y2.1 + y2 + 2y1 a!6220!6220U95 = \y0y1.0 a!6220!6220U95# = \y0y1.y1 a!6220!6220U96 = \y0.0 a!6220!6220isNat = \y0.0 a!6220!6220isNatIList = \y0.0 a!6220!6220isNatIListKind = \y0.0 a!6220!6220isNatIList# = \y0.y0 a!6220!6220isNatKind = \y0.0 a!6220!6220isNatList = \y0.0 a!6220!6220isNatList# = \y0.y0 a!6220!6220isNat# = \y0.2y0 cons = \y0y1.3 + y1 + 2y0 isNat = \y0.0 isNatIList = \y0.0 isNatIListKind = \y0.0 isNatKind = \y0.0 isNatList = \y0.0 length = \y0.3 + 2y0 nil = 3 s = \y0.3 + y0 take = \y0y1.3 + 2y0 + 2y1 tt = 0 zeros = 3 Using this interpretation, the requirements translate to: [[a!6220!6220U101#(tt, _x0, _x1)]] = 1 + 2x0 + 2x1 > 2x0 + 2x1 = [[a!6220!6220U102#(a!6220!6220isNatKind(_x0), _x0, _x1)]] [[a!6220!6220U102#(tt, _x0, _x1)]] = 2x0 + 2x1 >= x1 + 2x0 = [[a!6220!6220U103#(a!6220!6220isNatIListKind(_x1), _x0, _x1)]] [[a!6220!6220U103#(tt, _x0, _x1)]] = x1 + 2x0 >= x1 + 2x0 = [[a!6220!6220U104#(a!6220!6220isNatIListKind(_x1), _x0, _x1)]] [[a!6220!6220U104#(tt, _x0, _x1)]] = x1 + 2x0 >= x1 = [[a!6220!6220U105#(a!6220!6220isNat(_x0), _x1)]] [[a!6220!6220U104#(tt, _x0, _x1)]] = x1 + 2x0 >= 2x0 = [[a!6220!6220isNat#(_x0)]] [[a!6220!6220U105#(tt, _x0)]] = x0 >= x0 = [[a!6220!6220isNatIList#(_x0)]] [[a!6220!6220U11#(tt, _x0)]] = x0 >= x0 = [[a!6220!6220U12#(a!6220!6220isNatIListKind(_x0), _x0)]] [[a!6220!6220U12#(tt, _x0)]] = x0 >= x0 = [[a!6220!6220isNatList#(_x0)]] [[a!6220!6220U21#(tt, _x0)]] = 2x0 >= 2x0 = [[a!6220!6220U22#(a!6220!6220isNatKind(_x0), _x0)]] [[a!6220!6220U22#(tt, _x0)]] = 2x0 >= 2x0 = [[a!6220!6220isNat#(_x0)]] [[a!6220!6220U31#(tt, _x0)]] = x0 >= x0 = [[a!6220!6220U32#(a!6220!6220isNatIListKind(_x0), _x0)]] [[a!6220!6220U32#(tt, _x0)]] = x0 >= x0 = [[a!6220!6220isNatList#(_x0)]] [[a!6220!6220U41#(tt, _x0, _x1)]] = x1 + 2x0 >= x1 + 2x0 = [[a!6220!6220U42#(a!6220!6220isNatKind(_x0), _x0, _x1)]] [[a!6220!6220U42#(tt, _x0, _x1)]] = x1 + 2x0 >= x1 + 2x0 = [[a!6220!6220U43#(a!6220!6220isNatIListKind(_x1), _x0, _x1)]] [[a!6220!6220U43#(tt, _x0, _x1)]] = x1 + 2x0 >= x1 + 2x0 = [[a!6220!6220U44#(a!6220!6220isNatIListKind(_x1), _x0, _x1)]] [[a!6220!6220U44#(tt, _x0, _x1)]] = x1 + 2x0 >= x1 = [[a!6220!6220U45#(a!6220!6220isNat(_x0), _x1)]] [[a!6220!6220U44#(tt, _x0, _x1)]] = x1 + 2x0 >= 2x0 = [[a!6220!6220isNat#(_x0)]] [[a!6220!6220U45#(tt, _x0)]] = x0 >= x0 = [[a!6220!6220isNatIList#(_x0)]] [[a!6220!6220U91#(tt, _x0, _x1)]] = 2 + x1 + 2x0 >= 2 + x1 + 2x0 = [[a!6220!6220U92#(a!6220!6220isNatKind(_x0), _x0, _x1)]] [[a!6220!6220U92#(tt, _x0, _x1)]] = 2 + x1 + 2x0 >= 2 + x1 + 2x0 = [[a!6220!6220U93#(a!6220!6220isNatIListKind(_x1), _x0, _x1)]] [[a!6220!6220U93#(tt, _x0, _x1)]] = 2 + x1 + 2x0 > 1 + x1 + 2x0 = [[a!6220!6220U94#(a!6220!6220isNatIListKind(_x1), _x0, _x1)]] [[a!6220!6220U94#(tt, _x0, _x1)]] = 1 + x1 + 2x0 > x1 = [[a!6220!6220U95#(a!6220!6220isNat(_x0), _x1)]] [[a!6220!6220U94#(tt, _x0, _x1)]] = 1 + x1 + 2x0 > 2x0 = [[a!6220!6220isNat#(_x0)]] [[a!6220!6220U95#(tt, _x0)]] = x0 >= x0 = [[a!6220!6220isNatList#(_x0)]] [[a!6220!6220isNat#(length(_x0))]] = 6 + 4x0 > x0 = [[a!6220!6220U11#(a!6220!6220isNatIListKind(_x0), _x0)]] [[a!6220!6220isNat#(s(_x0))]] = 6 + 2x0 > 2x0 = [[a!6220!6220U21#(a!6220!6220isNatKind(_x0), _x0)]] [[a!6220!6220isNatIList#(_x0)]] = x0 >= x0 = [[a!6220!6220U31#(a!6220!6220isNatIListKind(_x0), _x0)]] [[a!6220!6220isNatIList#(cons(_x0, _x1))]] = 3 + x1 + 2x0 > x1 + 2x0 = [[a!6220!6220U41#(a!6220!6220isNatKind(_x0), _x0, _x1)]] [[a!6220!6220isNatList#(cons(_x0, _x1))]] = 3 + x1 + 2x0 > 2 + x1 + 2x0 = [[a!6220!6220U91#(a!6220!6220isNatKind(_x0), _x0, _x1)]] [[a!6220!6220isNatList#(take(_x0, _x1))]] = 3 + 2x0 + 2x1 > 1 + 2x0 + 2x1 = [[a!6220!6220U101#(a!6220!6220isNatKind(_x0), _x0, _x1)]] 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_12, R_0, minimal, formative), where P_12 consists of: a!6220!6220U102#(tt, X, Y) =#> a!6220!6220U103#(a!6220!6220isNatIListKind(Y), X, Y) a!6220!6220U103#(tt, X, Y) =#> a!6220!6220U104#(a!6220!6220isNatIListKind(Y), X, Y) a!6220!6220U104#(tt, X, Y) =#> a!6220!6220U105#(a!6220!6220isNat(X), Y) a!6220!6220U104#(tt, X, Y) =#> a!6220!6220isNat#(X) a!6220!6220U105#(tt, X) =#> a!6220!6220isNatIList#(X) a!6220!6220U11#(tt, X) =#> a!6220!6220U12#(a!6220!6220isNatIListKind(X), X) a!6220!6220U12#(tt, X) =#> a!6220!6220isNatList#(X) a!6220!6220U21#(tt, X) =#> a!6220!6220U22#(a!6220!6220isNatKind(X), X) a!6220!6220U22#(tt, X) =#> a!6220!6220isNat#(X) a!6220!6220U31#(tt, X) =#> a!6220!6220U32#(a!6220!6220isNatIListKind(X), X) a!6220!6220U32#(tt, X) =#> a!6220!6220isNatList#(X) a!6220!6220U41#(tt, X, Y) =#> a!6220!6220U42#(a!6220!6220isNatKind(X), X, Y) a!6220!6220U42#(tt, X, Y) =#> a!6220!6220U43#(a!6220!6220isNatIListKind(Y), X, Y) a!6220!6220U43#(tt, X, Y) =#> a!6220!6220U44#(a!6220!6220isNatIListKind(Y), X, Y) a!6220!6220U44#(tt, X, Y) =#> a!6220!6220U45#(a!6220!6220isNat(X), Y) a!6220!6220U44#(tt, X, Y) =#> a!6220!6220isNat#(X) a!6220!6220U45#(tt, X) =#> a!6220!6220isNatIList#(X) a!6220!6220U91#(tt, X, Y) =#> a!6220!6220U92#(a!6220!6220isNatKind(X), X, Y) a!6220!6220U92#(tt, X, Y) =#> a!6220!6220U93#(a!6220!6220isNatIListKind(Y), X, Y) a!6220!6220U95#(tt, X) =#> a!6220!6220isNatList#(X) a!6220!6220isNatIList#(X) =#> a!6220!6220U31#(a!6220!6220isNatIListKind(X), X) 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 place the elements of P in a dependency graph approximation G (see e.g. [Kop12, Thm. 7.27, 7.29], as follows: * 0 : 1 * 1 : 2, 3 * 2 : 4 * 3 : * 4 : 20 * 5 : 6 * 6 : * 7 : 8 * 8 : * 9 : 10 * 10 : * 11 : 12 * 12 : 13 * 13 : 14, 15 * 14 : 16 * 15 : * 16 : 20 * 17 : 18 * 18 : * 19 : * 20 : 9 This graph has no strongly connected components. By [Kop12, Thm. 7.31], this implies finiteness of the dependency pair problem. 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.